[AArch64] Handle scalars in cmp and shift immediate queries
authorRichard Sandiford <richard.sandiford@arm.com>
Tue, 29 Oct 2019 08:41:52 +0000 (08:41 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 29 Oct 2019 08:41:52 +0000 (08:41 +0000)
commit6bc67182b6500b942674d6031c1bf0f02c779cbd
tree45542b94da4989cd732b7c03e46259a96705b808
parentac2cfa6cc35175311f92c25acbdd244f0f3bbb87
[AArch64] Handle scalars in cmp and shift immediate queries

The SVE ACLE has convenience functions that take scalar arguments
instead of vectors.  This patch makes it easier to implement the shift
and compare functions by making the associated immediate queries work
for scalar immediates as well as vector duplicates of them.

The "const" codes in the predicates were a holdover from an early
version of the SVE port in which we used (const ...) wrappers for
variable-length vector constants.  I'll remove other instances
of them in a separate patch.

2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
(aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
* config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
(aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
accept "const".

From-SVN: r277556
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/predicates.md