[ARC] Add/update combiner patterns.
authorClaudiu Zissulescu <claziss@synopsys.com>
Mon, 9 Apr 2018 15:05:19 +0000 (17:05 +0200)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Mon, 9 Apr 2018 15:05:19 +0000 (17:05 +0200)
commitf7ace5d5c21d3db30d9fb87cd8a632e7509e6fef
tree91cade17984df7dd342878d6531393f3df12a842
parent46e58e180d6ab1fa37acc96f0b8cbf569bbf4105
[ARC] Add/update combiner patterns.

gcc/
2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (add_shift): New pattern.
(add_shift2): Likewise.
(sub_shift): Likewise.
(sub_shift_cmp0_noout): Likewise.
(compare_si_ashiftsi): Likewise.
(xbfu_cmp0_noout): New combine pattern.
(xbfu_cmp0"): Likewise.
(movsi_set_cc_insn): Place the predicable variant first.
(commutative_binary_cmp0_noout): Remove clobber.
(commutative_binary_cmp0): New pattern.
(noncommutative_binary_cmp0): Likewise.
(noncommutative_binary_cmp0_noout): Likewise.
(noncommutative_binary_comparison_result_used): Removed.
(rsub_cmp0): New pattern.
(rsub_cmp0_noout): Likewise.
(extzvsi): Changed, keep only meaningful variants.
(SQH, SEZ): New iterators.
(SQH_postfix): New mode attribute.
(SEZ_prefix): New code attribute.
(<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
(<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
* config/arc/predicates.md (cc_set_register): Use CC_REG instead
of numerical value.
(noncommutative_operator): Check the availability of barrel
shifter option.

From-SVN: r259237
gcc/ChangeLog
gcc/config/arc/arc.md
gcc/config/arc/predicates.md