diff mbox series

[i386] Call force_reg unconditionally.

Message ID CAFULd4aj9zCb6oY-H3p_Vpt6bqY7sYXN4EKj42w3hzF6xebCJQ@mail.gmail.com
State New
Headers show
Series [i386] Call force_reg unconditionally. | expand

Commit Message

Uros Bizjak Aug. 26, 2021, 8:11 p.m. UTC
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.

No functional changes.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Pushed to master.

Uros.
diff mbox series

Patch

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 41d85623ad6..de34916c1cc 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>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);
 })
 
@@ -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>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"
@@ -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>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
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 13889687793..d689617ac39 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -14084,10 +14084,10 @@ 
 		(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>"