From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1363) id 6ECAC3858D3C; Thu, 26 Aug 2021 20:09:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6ECAC3858D3C MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Uros Bizjak To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-3171] [i386] Call force_reg unconditionally. X-Act-Checkin: gcc X-Git-Author: Uros Bizjak X-Git-Refname: refs/heads/master X-Git-Oldrev: 352d5e85a7060cd0e069d81c61b22ca3d16ffc49 X-Git-Newrev: 5a6c626710ad2ac4baa2dba02fac0750177e3305 Message-Id: <20210826200936.6ECAC3858D3C@sourceware.org> Date: Thu, 26 Aug 2021 20:09:36 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2021 20:09:36 -0000 https://gcc.gnu.org/g:5a6c626710ad2ac4baa2dba02fac0750177e3305 commit r12-3171-g5a6c626710ad2ac4baa2dba02fac0750177e3305 Author: Uros Bizjak Date: Thu Aug 26 22:08:25 2021 +0200 [i386] Call force_reg unconditionally. There is no point to check RTXes before calling force_reg, force_reg checks for REG RTX by itself. 2021-08-26 Uroš Bizjak gcc/ * config/i386/i386.md (*btr_1): Call force_reg unconditionally. (conditional moves with memory inputs splitters): Ditto. * config/i386/sse.md (one_cmpl2): Simplify. Diff: --- gcc/config/i386/i386.md | 15 +++++---------- gcc/config/i386/sse.md | 6 +++--- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index c80dcb57a18..528116dfe2d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -12728,8 +12728,7 @@ (clobber (reg:CC FLAGS_REG))])] { operands[0] = lowpart_subreg (SImode, operands[0], mode); - if (MEM_P (operands[1])) - operands[1] = force_reg (mode, operands[1]); + operands[1] = force_reg (mode, operands[1]); operands[1] = lowpart_subreg (SImode, operands[1], mode); }) @@ -19352,10 +19351,8 @@ [(set (match_dup 0) (if_then_else:SWI248 (match_dup 1) (match_dup 2) (match_dup 3)))] { - if (MEM_P (operands[2])) - operands[2] = force_reg (mode, operands[2]); - if (MEM_P (operands[3])) - operands[3] = force_reg (mode, operands[3]); + operands[2] = force_reg (mode, operands[2]); + operands[3] = force_reg (mode, operands[3]); }) (define_insn "*movqicc_noc" @@ -19603,10 +19600,8 @@ [(set (match_dup 0) (if_then_else:MODEF (match_dup 1) (match_dup 2) (match_dup 3)))] { - if (MEM_P (operands[2])) - operands[2] = force_reg (mode, operands[2]); - if (MEM_P (operands[3])) - operands[3] = force_reg (mode, operands[3]); + operands[2] = force_reg (mode, operands[2]); + operands[3] = force_reg (mode, operands[3]); }) ;; Don't do conditional moves with memory inputs diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 03fc2df1fb0..0ca322996ce 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -14318,10 +14318,10 @@ (match_dup 2)))] "TARGET_SSE" { + operands[2] = CONSTM1_RTX (mode); + if (!TARGET_AVX512F) - operands[2] = force_reg (mode, CONSTM1_RTX (mode)); - else - operands[2] = CONSTM1_RTX (mode); + operands[2] = force_reg (mode, operands[2]); }) (define_insn "one_cmpl2"