re PR target/89434 (wrong code with -Og and __builtin_mul_overflow())
authorJakub Jelinek <jakub@redhat.com>
Thu, 28 Feb 2019 13:13:33 +0000 (14:13 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 28 Feb 2019 13:13:33 +0000 (14:13 +0100)
PR target/89434
* config/arm/arm.md (*subsi3_carryin_compare_const): Use
trunc_int_for_mode (-INTVAL (...), SImode), just instead of
-UINTVAL (...).

From-SVN: r269277

gcc/ChangeLog
gcc/config/arm/arm.md

index e7ca0e4c15efffb682f6816cc856e9d0a015e0bd..34c3bbdae2ca61ae180ce949bf57b0a020d1fc32 100644 (file)
@@ -1,3 +1,10 @@
+2019-02-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/89434
+       * config/arm/arm.md (*subsi3_carryin_compare_const): Use
+       trunc_int_for_mode (-INTVAL (...), SImode), just instead of
+       -UINTVAL (...).
+
 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
 
        PR target/88530
index baf71a546bc431a24ebdadf8623496a8efbcb840..8668937ac5a8aff39729681cfe767c50df5e05ab 100644 (file)
         (minus:SI (plus:SI (match_dup 1)
                            (match_operand:SI 3 "arm_neg_immediate_operand" "L"))
                   (ltu:SI (reg:CC_C CC_REGNUM) (const_int 0))))]
-  "TARGET_32BIT && UINTVAL (operands[2]) == -UINTVAL (operands[3])"
+  "TARGET_32BIT
+   && (INTVAL (operands[2])
+       == trunc_int_for_mode (-INTVAL (operands[3]), SImode))"
   "sbcs\\t%0, %1, #%n3"
   [(set_attr "conds" "set")
    (set_attr "type" "adcs_imm")]