diff mbox series

[i386] : Remove dead code from cmpstrnsi expander

Message ID CAFULd4aFT7dBSG8=_XgfCvyQZetyws1aLzV3bWwppS8-B1e7KA@mail.gmail.com
State New
Headers show
Series [i386] : Remove dead code from cmpstrnsi expander | expand

Commit Message

Uros Bizjak June 19, 2019, 2:41 p.m. UTC
Operand 0 is always a register due to register_operand predicate.

2019-06-19  Uroš Bizjak  <ubizjak@gmail.com>

    * config/i386/i386.md (cmpstrnsi): Remove dead code.

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

Committed to mainline SVN.

Uros.
diff mbox series

Patch

Index: config/i386/i386.md
===================================================================
--- config/i386/i386.md	(revision 272473)
+++ config/i386/i386.md	(working copy)
@@ -17004,7 +17004,7 @@ 
    (use (match_operand 4 "immediate_operand"))]
   ""
 {
-  rtx addr1, addr2, out, outlow, count, countreg, align;
+  rtx addr1, addr2, countreg, align, out;
 
   if (optimize_insn_for_size_p () && !TARGET_INLINE_ALL_STRINGOPS)
     FAIL;
@@ -17028,10 +17028,6 @@ 
           && TREE_CODE (TREE_OPERAND (TREE_OPERAND (t2, 0), 0)) == STRING_CST)))
     FAIL;
 
-  out = operands[0];
-  if (!REG_P (out))
-    out = gen_reg_rtx (SImode);
-
   addr1 = copy_addr_to_reg (XEXP (operands[1], 0));
   addr2 = copy_addr_to_reg (XEXP (operands[2], 0));
   if (addr1 != XEXP (operands[1], 0))
@@ -17039,8 +17035,7 @@ 
   if (addr2 != XEXP (operands[2], 0))
     operands[2] = replace_equiv_address_nv (operands[2], addr2);
 
-  count = operands[3];
-  countreg = ix86_zero_extend_to_Pmode (count);
+  countreg = ix86_zero_extend_to_Pmode (operands[3]);
 
   /* %%% Iff we are testing strict equality, we can use known alignment
      to good advantage.  This may be possible with combine, particularly
@@ -17047,9 +17042,9 @@ 
      once cc0 is dead.  */
   align = operands[4];
 
-  if (CONST_INT_P (count))
+  if (CONST_INT_P (operands[3]))
     {
-      if (INTVAL (count) == 0)
+      if (operands[3] == const0_rtx)
 	{
 	  emit_move_insn (operands[0], const0_rtx);
 	  DONE;
@@ -17064,13 +17059,10 @@ 
 				  operands[1], operands[2]));
     }
 
-  outlow = gen_lowpart (QImode, out);
-  emit_insn (gen_cmpintqi (outlow));
-  emit_move_insn (out, gen_rtx_SIGN_EXTEND (SImode, outlow));
+  out = gen_lowpart (QImode, operands[0]);
+  emit_insn (gen_cmpintqi (out));
+  emit_move_insn (operands[0], gen_rtx_SIGN_EXTEND (SImode, out));
 
-  if (operands[0] != out)
-    emit_move_insn (operands[0], out);
-
   DONE;
 })
 
@@ -19320,7 +19312,7 @@ 
 	     (match_operand:SI 2 "const_int_operand"))]
   "TARGET_3DNOW || TARGET_PREFETCH_SSE || TARGET_PRFCHW || TARGET_PREFETCHWT1"
 {
-  bool write = INTVAL (operands[1]) != 0;
+  bool write = operands[1] != const0_rtx;
   int locality = INTVAL (operands[2]);
 
   gcc_assert (IN_RANGE (locality, 0, 3));
@@ -19385,7 +19377,7 @@ 
 	     (const_int 3))]
   "TARGET_3DNOW || TARGET_PRFCHW || TARGET_PREFETCHWT1"
 {
-  if (INTVAL (operands[1]) == 0)
+  if (operands[1] == const0_rtx)
     return "prefetch\t%a0";
   else
     return "prefetchw\t%a0";