[AArch64] Add SVE conditional conversion patterns
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 14 Aug 2019 10:56:57 +0000 (10:56 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 14 Aug 2019 10:56:57 +0000 (10:56 +0000)
commitc5e16983cd1bd6dd6eca1b939c3c8859f0c6c866
tree62277739e93b1c6948530bbaa31a1d3c18036bb1
parentb21f7d53095b253753c5622f99809e9c82fd3009
[AArch64] Add SVE conditional conversion patterns

This patch adds patterns to match conditional conversions between
integers and like-sized floats.  The patterns are actually more
general than that, but the other combinations can only be tested
via the ACLE.

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

gcc/
* config/aarch64/aarch64-sve.md
(*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
(*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
New patterns.

gcc/testsuite/
* gcc.target/aarch64/sve/cond_convert_1.c: New test.
* gcc.target/aarch64/sve/cond_convert_1_run.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_2.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_2_run.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_3.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_3_run.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_4.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_4_run.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_5.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_5_run.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_6.c: Likewise.
* gcc.target/aarch64/sve/cond_convert_6_run.c: Likewise.

From-SVN: r274478
15 files changed:
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_1_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_2_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_3_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_4_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6_run.c [new file with mode: 0644]