(comparison): Don't emit invalid optimization for (set (reg) (comparison)) and...
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 12 Nov 1993 15:24:51 +0000 (10:24 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 12 Nov 1993 15:24:51 +0000 (10:24 -0500)
(comparison): Don't emit invalid optimization
for (set (reg) (comparison)) and (set (reg) (neg (comparison)))
when comparison is LT.

From-SVN: r6075

gcc/config/arm/arm.md

index 68d5c15838a44c93cebc9ed073e3b2a0f25bd863..8b2cd62965bb72dacd6b404e4277a56a42fbbd4b 100644 (file)
    (clobber (reg 24))]
   ""
   "*
-  if (GET_CODE (operands[1]) == LT)
-    {
-      if (operands[3] == const0_rtx)
-       return arm_output_asm_insn (\"mov\\t%0, %2, lsr #31\", operands);
-      if (GET_CODE (operands[3]) == CONST_INT
-         && !const_ok_for_arm (INTVAL (operands[3])))
-       arm_output_asm_insn (\"add\\t%0, %2, #%n3\", operands);
-      else
-        arm_output_asm_insn (\"sub\\t%0, %2, %3\", operands);
-      return arm_output_asm_insn (\"mov\\t%0, %0, lsr #31\", operands);
-    }
+  if (GET_CODE (operands[1]) == LT && operands[3] == const0_rtx)
+    return arm_output_asm_insn (\"mov\\t%0, %2, lsr #31\", operands);
   if (GET_CODE (operands[1]) == GE && operands[3] == const0_rtx)
     {
       arm_output_asm_insn (\"mvn\\t%0, %2\", operands);
    (clobber (reg 24))]
   ""
   "*
-  if (GET_CODE (operands[3]) == LT)
-    {
-      if (operands[3] == const0_rtx)
-       return arm_output_asm_insn (\"mov\\t%0, %1, asr #31\", operands);
-      arm_output_asm_insn (\"sub\\t%0, %1, %2\", operands);
-      return arm_output_asm_insn (\"mov\\t%0, %0, asr #31\", operands);
-    }
+  if (GET_CODE (operands[3]) == LT && operands[3] == const0_rtx)
+    return arm_output_asm_insn (\"mov\\t%0, %1, asr #31\", operands);
   if (GET_CODE (operands[3]) == NE)
     {
       arm_output_asm_insn (\"subs\\t%0, %1, %2\", operands);