[AArch64] Fix PR target/77822: Use tighter predicates for zero_extract patterns
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Mon, 7 Nov 2016 11:43:57 +0000 (11:43 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Mon, 7 Nov 2016 11:43:57 +0000 (11:43 +0000)
commite27bfda2fc621864fd0ffd2ba3a2cee38b3c7965
treeb0f153e7129725b8e57e7efb443bdddfc0ab95d2
parent00d6b7a1a7959ba0814bd4e8af368efc2f351487
[AArch64] Fix PR target/77822: Use tighter predicates for zero_extract patterns

PR target/77822
* config/aarch64/aarch64.md (*tb<optab><mode>1): Use
aarch64_simd_shift_imm_<mode> predicate for operand 1.
(<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
to restrict them to an appropriate range and add FAIL check if the
region they specify is out of range.  Delete useless constraint
strings.
(*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
2 and 3 to restrict their range and add pattern predicate.

* g++.dg/torture/pr77822.C: New test.

From-SVN: r241898
gcc/ChangeLog
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/torture/pr77822.C [new file with mode: 0644]