aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2019-06-19 16:38:58 +0200
committerUros Bizjak <uros@gcc.gnu.org>2019-06-19 16:38:58 +0200
commit7a907deeeb0b17ed332eb6e3a181a35b1873daf5 (patch)
tree047fbeb44b327bfb0e2a2cd5565adbaca248b9e2 /gcc
parent25403c416e5f12d681d1fc45a8789d19ab40297f (diff)
downloadgcc-7a907deeeb0b17ed332eb6e3a181a35b1873daf5.zip
gcc-7a907deeeb0b17ed332eb6e3a181a35b1873daf5.tar.gz
gcc-7a907deeeb0b17ed332eb6e3a181a35b1873daf5.tar.bz2
i386.md (cmpstrnsi): Remove dead code.
* config/i386/i386.md (cmpstrnsi): Remove dead code. From-SVN: r272474
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.md26
2 files changed, 13 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b39712f..aa92a3e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (cmpstrnsi): Remove dead code.
+
2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
PR middle-end/84521
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index e9b6923..6c14a37 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -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,17 +17035,16 @@
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
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,12 +17059,9 @@
operands[1], operands[2]));
}
- outlow = gen_lowpart (QImode, out);
- emit_insn (gen_cmpintqi (outlow));
- emit_move_insn (out, gen_rtx_SIGN_EXTEND (SImode, outlow));
-
- if (operands[0] != out)
- emit_move_insn (operands[0], out);
+ out = gen_lowpart (QImode, operands[0]);
+ emit_insn (gen_cmpintqi (out));
+ emit_move_insn (operands[0], gen_rtx_SIGN_EXTEND (SImode, 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";