[i386] Call force_reg unconditionally.
authorUros Bizjak <ubizjak@gmail.com>
Thu, 26 Aug 2021 20:08:25 +0000 (22:08 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Thu, 26 Aug 2021 20:09:20 +0000 (22:09 +0200)
There is no point to check RTXes before calling force_reg,
force_reg checks for REG RTX by itself.

2021-08-26  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
* config/i386/i386.md (*btr<mode>_1): Call force_reg unconditionally.
(conditional moves with memory inputs splitters): Ditto.
* config/i386/sse.md (one_cmpl<mode>2): Simplify.

gcc/config/i386/i386.md
gcc/config/i386/sse.md

index c80dcb5..528116d 100644 (file)
       (clobber (reg:CC FLAGS_REG))])]
 {
   operands[0] = lowpart_subreg (SImode, operands[0], <MODE>mode);
-  if (MEM_P (operands[1]))
-    operands[1] = force_reg (<MODE>mode, operands[1]);
+  operands[1] = force_reg (<MODE>mode, operands[1]);
   operands[1] = lowpart_subreg (SImode, operands[1], <MODE>mode);
 })
 
   [(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>mode, operands[2]);
-  if (MEM_P (operands[3]))
-    operands[3] = force_reg (<MODE>mode, operands[3]);
+  operands[2] = force_reg (<MODE>mode, operands[2]);
+  operands[3] = force_reg (<MODE>mode, operands[3]);
 })
 
 (define_insn "*movqicc_noc"
   [(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>mode, operands[2]);
-  if (MEM_P (operands[3]))
-    operands[3] = force_reg (<MODE>mode, operands[3]);
+  operands[2] = force_reg (<MODE>mode, operands[2]);
+  operands[3] = force_reg (<MODE>mode, operands[3]);
 })
 
 ;; Don't do conditional moves with memory inputs
index 03fc2df..0ca3229 100644 (file)
                (match_dup 2)))]
   "TARGET_SSE"
 {
+  operands[2] = CONSTM1_RTX (<MODE>mode);
+
   if (!TARGET_AVX512F)
-    operands[2] = force_reg (<MODE>mode, CONSTM1_RTX (<MODE>mode));
-  else
-    operands[2] = CONSTM1_RTX (<MODE>mode);
+    operands[2] = force_reg (<MODE>mode, operands[2]);
 })
 
 (define_insn "<mask_codefor>one_cmpl<mode>2<mask_name>"