]> git.ipfire.org Git - thirdparty/gcc.git/commit
[AArch64] Fix wrong-code bug in right-shift SISD patterns
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 20 Feb 2015 14:23:02 +0000 (14:23 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Fri, 20 Feb 2015 14:23:02 +0000 (14:23 +0000)
commit8904dbc570881edf188f6889e38c5fbef7a41bcd
treebcca7f82705362f672ed1485bf33b86b5c69f8c5
parenta1d05c447a6f94fd77eea25f16ebeb52172ed989
[AArch64] Fix wrong-code bug in right-shift SISD patterns

Backport from mainline
2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
Mark operand 0 as earlyclobber in 2nd alternative.
(1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
Write negated shift amount into QI lowpart operand 0 and use it
in the shift step.
(2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.

* gcc.target/aarch64/sisd-shft-neg_1.c: New test.

From-SVN: r220863
gcc/ChangeLog
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c [new file with mode: 0644]