Remove various MULS/MLAS patterns which are enabled when optimizing for size. However the codesize gain from these patterns is so minimal that there is no point in keeping them.
Bootstrap OK on armhf, regress passes. ChangeLog: 2019-09-03 Wilco Dijkstra <wdijk...@arm.com> * config/arm/arm.md (mulsi3_compare0): Remove pattern. (mulsi3_compare0_v6): Likewise. (mulsi_compare0_scratch): Likewise. (mulsi_compare0_scratch_v6): Likewise. (mulsi3addsi_compare0): Likewise. (mulsi3addsi_compare0_v6): Likewise. (mulsi3addsi_compare0_scratch): Likewise. (mulsi3addsi_compare0_scratch_v6): Likewise. * config/arm/thumb2.md (thumb2_mulsi_short_compare0): Remove pattern. (thumb2_mulsi_short_compare0_scratch): Likewise. -- diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 738d42fd164f117f1dec1108a824d984ccd70d09..66dafdc47b7cfc37c131764e482d47bcaab90538 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -1618,60 +1618,6 @@ (define_insn "*arm_mulsi3_v6" (set_attr "predicable_short_it" "yes,yes,no")] ) -(define_insn "*mulsi3_compare0" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV (mult:SI - (match_operand:SI 2 "s_register_operand" "r,r") - (match_operand:SI 1 "s_register_operand" "%0,r")) - (const_int 0))) - (set (match_operand:SI 0 "s_register_operand" "=&r,&r") - (mult:SI (match_dup 2) (match_dup 1)))] - "TARGET_ARM && !arm_arch6" - "muls%?\\t%0, %2, %1" - [(set_attr "conds" "set") - (set_attr "type" "muls")] -) - -(define_insn "*mulsi3_compare0_v6" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV (mult:SI - (match_operand:SI 2 "s_register_operand" "r") - (match_operand:SI 1 "s_register_operand" "r")) - (const_int 0))) - (set (match_operand:SI 0 "s_register_operand" "=r") - (mult:SI (match_dup 2) (match_dup 1)))] - "TARGET_ARM && arm_arch6 && optimize_size" - "muls%?\\t%0, %2, %1" - [(set_attr "conds" "set") - (set_attr "type" "muls")] -) - -(define_insn "*mulsi_compare0_scratch" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV (mult:SI - (match_operand:SI 2 "s_register_operand" "r,r") - (match_operand:SI 1 "s_register_operand" "%0,r")) - (const_int 0))) - (clobber (match_scratch:SI 0 "=&r,&r"))] - "TARGET_ARM && !arm_arch6" - "muls%?\\t%0, %2, %1" - [(set_attr "conds" "set") - (set_attr "type" "muls")] -) - -(define_insn "*mulsi_compare0_scratch_v6" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV (mult:SI - (match_operand:SI 2 "s_register_operand" "r") - (match_operand:SI 1 "s_register_operand" "r")) - (const_int 0))) - (clobber (match_scratch:SI 0 "=r"))] - "TARGET_ARM && arm_arch6 && optimize_size" - "muls%?\\t%0, %2, %1" - [(set_attr "conds" "set") - (set_attr "type" "muls")] -) - ;; Unnamed templates to match MLA instruction. (define_insn "*mulsi3addsi" @@ -1698,70 +1644,6 @@ (define_insn "*mulsi3addsi_v6" (set_attr "predicable" "yes")] ) -(define_insn "*mulsi3addsi_compare0" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV - (plus:SI (mult:SI - (match_operand:SI 2 "s_register_operand" "r,r,r,r") - (match_operand:SI 1 "s_register_operand" "%0,r,0,r")) - (match_operand:SI 3 "s_register_operand" "r,r,0,0")) - (const_int 0))) - (set (match_operand:SI 0 "s_register_operand" "=&r,&r,&r,&r") - (plus:SI (mult:SI (match_dup 2) (match_dup 1)) - (match_dup 3)))] - "TARGET_ARM && arm_arch6" - "mlas%?\\t%0, %2, %1, %3" - [(set_attr "conds" "set") - (set_attr "type" "mlas")] -) - -(define_insn "*mulsi3addsi_compare0_v6" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV - (plus:SI (mult:SI - (match_operand:SI 2 "s_register_operand" "r") - (match_operand:SI 1 "s_register_operand" "r")) - (match_operand:SI 3 "s_register_operand" "r")) - (const_int 0))) - (set (match_operand:SI 0 "s_register_operand" "=r") - (plus:SI (mult:SI (match_dup 2) (match_dup 1)) - (match_dup 3)))] - "TARGET_ARM && arm_arch6 && optimize_size" - "mlas%?\\t%0, %2, %1, %3" - [(set_attr "conds" "set") - (set_attr "type" "mlas")] -) - -(define_insn "*mulsi3addsi_compare0_scratch" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV - (plus:SI (mult:SI - (match_operand:SI 2 "s_register_operand" "r,r,r,r") - (match_operand:SI 1 "s_register_operand" "%0,r,0,r")) - (match_operand:SI 3 "s_register_operand" "?r,r,0,0")) - (const_int 0))) - (clobber (match_scratch:SI 0 "=&r,&r,&r,&r"))] - "TARGET_ARM && !arm_arch6" - "mlas%?\\t%0, %2, %1, %3" - [(set_attr "conds" "set") - (set_attr "type" "mlas")] -) - -(define_insn "*mulsi3addsi_compare0_scratch_v6" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV - (plus:SI (mult:SI - (match_operand:SI 2 "s_register_operand" "r") - (match_operand:SI 1 "s_register_operand" "r")) - (match_operand:SI 3 "s_register_operand" "r")) - (const_int 0))) - (clobber (match_scratch:SI 0 "=r"))] - "TARGET_ARM && arm_arch6 && optimize_size" - "mlas%?\\t%0, %2, %1, %3" - [(set_attr "conds" "set") - (set_attr "type" "mlas")] -) - (define_insn "*mulsi3subsi" [(set (match_operand:SI 0 "s_register_operand" "=r") (minus:SI diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md index 6ccc875e2b4e7b8ce256e52da966dfe220c6f5d6..8e26689b66263e7304a0da6163ceccfb4483d3e7 100644 --- a/gcc/config/arm/thumb2.md +++ b/gcc/config/arm/thumb2.md @@ -1381,31 +1381,6 @@ (define_insn "*thumb2_mulsi_short" (set_attr "length" "2") (set_attr "type" "muls")]) -(define_insn "*thumb2_mulsi_short_compare0" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV - (mult:SI (match_operand:SI 1 "register_operand" "%0") - (match_operand:SI 2 "register_operand" "l")) - (const_int 0))) - (set (match_operand:SI 0 "register_operand" "=l") - (mult:SI (match_dup 1) (match_dup 2)))] - "TARGET_THUMB2 && optimize_size" - "muls\\t%0, %2, %0" - [(set_attr "length" "2") - (set_attr "type" "muls")]) - -(define_insn "*thumb2_mulsi_short_compare0_scratch" - [(set (reg:CC_NOOV CC_REGNUM) - (compare:CC_NOOV - (mult:SI (match_operand:SI 1 "register_operand" "%0") - (match_operand:SI 2 "register_operand" "l")) - (const_int 0))) - (clobber (match_scratch:SI 0 "=l"))] - "TARGET_THUMB2 && optimize_size" - "muls\\t%0, %2, %0" - [(set_attr "length" "2") - (set_attr "type" "muls")]) - (define_insn "*thumb2_cbz" [(set (pc) (if_then_else (eq (match_operand:SI 0 "s_register_operand" "l,?r")