[AArch64] Split gcc.target/aarch64/sve/vcond_4*
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 31 Oct 2019 17:27:02 +0000 (17:27 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 31 Oct 2019 17:27:02 +0000 (17:27 +0000)
commit354ee867075b474b6f561a161b4140c7971fb2c0
tree9a55350094a707145c26797168d3abdf5606f181
parent37115224b2ee1f03ce8d7816182c267c9ff9d545
[AArch64] Split gcc.target/aarch64/sve/vcond_4*

vcond_4.c combined too much stuff into one test, so that when we needed
to add XFAILs for one set of routines, we lost testing of others that
used the same instructions.  This patch splits it into four:

vcond_4.c:
  The main test for selects between a vector and a scalar, with all
  elements having the same size.

  After Prathamesh's fix for PR91272, we are now guaranteed to use the
  conditionally-loaded vector as the "then" value and the scalar as the
  "else" value.

vcond_4_zero.c:
  Like vcond_4.c, but comparing with zero.

vcond_4_sel.c:
  Tests for selects between two scalars, with all elements having
  the same size.  The optimisers can legitimately switch the "then"
  and "else" order and adjust the comparison to match.

vcond_4_costly.c:
  Like vcnod_4.c, but with mixed element sizes.  The sequences tested
  here will not be the preferred ones once we support mixtures of vector
  sizes, but it still tests an important code path.

This means that vcond_4_run.c now only tests what's left in vcond_4.c,
but that seems OK, since the main point was to ensure correct exception
behaviour.

Similarly it means that vcond_5.c only tests what's left in vcond_4.c,
but that too is OK, since the point of the test was to compare the
default handling of each comparison in vcond_4.c with the
-fno-trapping-math equivalent.

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

gcc/testsuite/
* gcc.target/aarch64/sve/vcond_4.c: Split parts out into...
* gcc.target/aarch64/sve/vcond_4_costly.c,
* gcc.target/aarch64/sve/vcond_4_sel.c,
* gcc.target/aarch64/sve/vcond_4_zero.c: ...these new tests.
* gcc.target/aarch64/sve/vcond_4_run.c: Adjust accordingly.
* gcc.target/aarch64/sve/vcond_5.c: Likewise.

From-SVN: r277682
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/vcond_4.c
gcc/testsuite/gcc.target/aarch64/sve/vcond_4_costly.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/vcond_4_run.c
gcc/testsuite/gcc.target/aarch64/sve/vcond_4_sel.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/vcond_4_zero.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/vcond_5.c