[AArch64] Use simd_immediate_info for SVE predicate constants
authorRichard Sandiford <richard.sandiford@arm.com>
Tue, 13 Aug 2019 10:21:37 +0000 (10:21 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 13 Aug 2019 10:21:37 +0000 (10:21 +0000)
commit1044fa32e2b456b59b3cdc31b4f261145f1589cc
treeb797c75b65591dfed0f621f3d4d064a5477ceb66
parent1da83ccee8e7b61e7777abb63eb0e5a0ff1f1e93
[AArch64] Use simd_immediate_info for SVE predicate constants

This patch makes predicate constants use the normal simd_immediate_info
machinery, rather than treating PFALSE and PTRUE as special cases.
This makes it easier to add other types of predicate constant later.

2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
* config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
Use a single Dn alternative instead of separate Dz and Dm
alternatives.  Use aarch64_output_sve_move_immediate.
* config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
function.
(aarch64_simd_valid_immediate): Fill in the simd_immediate_info
for predicates too.
(aarch64_output_sve_mov_immediate): Handle predicate modes.
(aarch64_output_ptrue): Delete.

From-SVN: r274372
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-sve.md
gcc/config/aarch64/aarch64.c