aarch64: add support for unpacked EOR, ORR and AND
authorJoe Ramsay <joe.ramsay@arm.com>
Fri, 29 May 2020 07:44:37 +0000 (08:44 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Fri, 29 May 2020 07:44:37 +0000 (08:44 +0100)
commit6802b5ba8234427598abfd9f0163eb5e7c0d6aa8
tree094fe3e2e66e99029a44eb37c80837e3d6b2a367
parent697eab1b3e8936fd6932cc81646934651337cc39
aarch64: add support for unpacked EOR, ORR and AND

Extended patterns for these instructions to support unpacked vectors.
BIC will have to wait, as there is not currently support for unpacked
NOT.

2020-05-29  Joe Ramsay  <joe.ramsay@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support
for unpacked EOR, ORR, AND.

gcc/testsuite/
* gcc.target/aarch64/sve/load_const_offset_2.c: Force using packed
vectors.
* gcc.target/aarch64/sve/logical_unpacked_and_1.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_and_2.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_and_3.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_and_4.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_and_5.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_and_6.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_and_7.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_1.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_2.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_3.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_4.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_5.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_6.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_eor_7.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_1.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_2.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_3.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_4.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_5.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_6.c: New test.
* gcc.target/aarch64/sve/logical_unpacked_orr_7.c: New test.
* gcc.target/aarch64/sve/scatter_store_6.c: Force using packed vectors.
* gcc.target/aarch64/sve/scatter_store_7.c: Force using packed vectors.
* gcc.target/aarch64/sve/strided_load_3.c: Force using packed vectors.
* gcc.target/aarch64/sve/strided_store_3.c: Force using packed vectors.
* gcc.target/aarch64/sve/unpack_signed_1.c: Force using packed vectors.
28 files changed:
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_2.c
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_eor_7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_orr_7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/scatter_store_6.c
gcc/testsuite/gcc.target/aarch64/sve/scatter_store_7.c
gcc/testsuite/gcc.target/aarch64/sve/strided_load_3.c
gcc/testsuite/gcc.target/aarch64/sve/strided_store_3.c
gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1.c