From ad7abff56e3bd04f9e5f34bfe89facb647f3a54a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 28 Feb 2019 14:13:33 +0100 Subject: [PATCH] re PR target/89434 (wrong code with -Og and __builtin_mul_overflow()) 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 | 7 +++++++ gcc/config/arm/arm.md | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7ca0e4c15e..34c3bbdae2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-02-28 Jakub Jelinek + + 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 PR target/88530 diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index baf71a546bc..8668937ac5a 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -1185,7 +1185,9 @@ (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")] -- 2.30.2