[AArch64] Fix reversed vcond_mask invocation in aarch64_evpc_sel
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 10 Jan 2020 16:31:13 +0000 (16:31 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 10 Jan 2020 16:31:13 +0000 (16:31 +0000)
commitb2f5b38042f6a8772237d37cdf20fc139ed0f8fe
tree9f72ef29568529b357b87403c90cfd27e366edef
parent3a33f87ffb921ba469a0c25d22e6b225be38d084
[AArch64] Fix reversed vcond_mask invocation in aarch64_evpc_sel

aarch64_evpc_sel (new in GCC 10) got the true and false vectors
the wrong way round, leading to execution failures with fixed-length
128-bit SVE.

Now that the ACLE types are in trunk, it's much easier to match
the exact asm sequence for a permute.

2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
invocation.

gcc/testsuite/
* gcc.target/aarch64/sve/sel_1.c: Use SVE types for the arguments and
return values.  Use check-function-bodies instead of scan-assembler.
* gcc.target/aarch64/sve/sel_2.c: Likewise
* gcc.target/aarch64/sve/sel_3.c: Likewise.

From-SVN: r280121
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/sel_1.c
gcc/testsuite/gcc.target/aarch64/sve/sel_2.c
gcc/testsuite/gcc.target/aarch64/sve/sel_3.c