Hi, While working on a larger patch for PR 67591 (ARM v8 Thumb IT blocks deprecated), I have noticed that the predicable_short_it attribute for arm_movqi_insn is incorrect: the values for alternatives 3 and 4 should be swapped.
This is what this small patch does. Validated on several arm* configurations, with improvements on: c-c++-common/torture/builtin-arith-overflow-18.c c-c++-common/torture/builtin-arith-overflow-p-18.c c-c++-common/torture/builtin-arith-overflow-p-19.c for configurations involving armv8 and thumb mode. OK for trunk? Thanks, Christophe
2016-08-23 Christophe Lyon <christophe.l...@linaro.org> * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it attribute for alternatives 3 and 4.
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 04714a1..219b664 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -6518,7 +6518,7 @@ strb%?\\t%1, %0" [(set_attr "type" "mov_reg,mov_reg,mov_imm,mov_imm,mvn_imm,load1,store1,load1,store1") (set_attr "predicable" "yes") - (set_attr "predicable_short_it" "yes,yes,yes,no,no,no,no,no,no") + (set_attr "predicable_short_it" "yes,yes,no,yes,no,no,no,no,no") (set_attr "arch" "t2,any,any,t2,any,t2,t2,any,any") (set_attr "length" "2,4,4,2,4,2,2,4,4")] )