re PR rtl-optimization/83628 (performance regression when accessing arrays on alpha)
authorUros Bizjak <uros@gcc.gnu.org>
Thu, 4 Jan 2018 09:42:01 +0000 (10:42 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 4 Jan 2018 09:42:01 +0000 (10:42 +0100)
commit02ea1c7689351ad76d17e423dbc4e91badb921ca
treec99c5ad75f8e659b2518af2f51ce0e9ba43285db
parent6f3102fdbbfd0596c6f86a953a0e0a955ade4540
re PR rtl-optimization/83628 (performance regression when accessing arrays on alpha)

PR target/83628
* config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
instead of MULT rtx.  Update all corresponding splitters.
(*saddl_se): Ditto.
(*ssub<modesuffix>): Ditto.
(*ssubl_se): Ditto.
(*cmp_sadd_di): Update split patterns.
(*cmp_sadd_si): Ditto.
(*cmp_sadd_sidi): Ditto.
(*cmp_ssub_di): Ditto.
(*cmp_ssub_si): Ditto.
(*cmp_ssub_sidi): Ditto.
* config/alpha/predicates.md (const23_operand): New predicate.
* config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
Look for ASHIFT, not MULT inner operand.
(alpha_split_conditional_move): Update for *sadd<modesuffix> change.

testsuite/ChangeLog:

PR target/83628
* gcc.target/alpha/pr83628-1.c: New test.
* gcc.target/alpha/pr83628-2.c: Ditto.

From-SVN: r256228
gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.md
gcc/config/alpha/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/alpha/pr83628-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/alpha/pr83628-2.c [new file with mode: 0644]