aarch64: Support conditional unpacked integer unary arithmetic on SVE
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 7 Jan 2021 15:00:39 +0000 (15:00 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 7 Jan 2021 15:00:39 +0000 (15:00 +0000)
commit0f9d2c1a318ed30a66b75bd6b7fa3dc3630e362e
tree10206feddad15219254c439a27ca213cf056b0ad
parent298e76e6562bb79ed42cb4bc88aca817e6e58417
aarch64: Support conditional unpacked integer unary arithmetic on SVE

This patch extends the conditional unary integer operations
from SVE_FULL_I to SVE_I.  In each case the type suffix is
taken from the element size rather than the container size:
this matters for ABS and NEG, but doesn't matter for NOT.

gcc/
* config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
(*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
(*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.

gcc/testsuite/
* gcc.target/aarch64/sve/cond_unary_5.c: New test.
* gcc.target/aarch64/sve/cond_unary_5_run.c: Likewise.
* gcc.target/aarch64/sve/cond_unary_6.c: Likewise.
* gcc.target/aarch64/sve/cond_unary_6_run.c: Likewise.
* gcc.target/aarch64/sve/cond_unary_7.c: Likewise.
* gcc.target/aarch64/sve/cond_unary_7_run.c: Likewise.
* gcc.target/aarch64/sve/cond_unary_8.c: Likewise.
* gcc.target/aarch64/sve/cond_unary_8_run.c: Likewise.
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_7_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_unary_8_run.c [new file with mode: 0644]