2019-02-27 Jakub Jelinek PR target/89434 * config/arm/arm.md (*subsi3_carryin_compare_const): Use trunc_int_for_mode (-INTVAL (...), SImode), just instead of -UINTVAL (...). --- gcc/config/arm/arm.md.jj 2019-02-25 11:32:02.914684615 +0100 +++ gcc/config/arm/arm.md 2019-02-26 14:41:41.128767480 +0100 @@ -1185,7 +1187,9 @@ (define_insn "*subsi3_carryin_compare_co (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")]