[AArch64] Use SVE BIC for conditional arithmetic
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 14 Aug 2019 11:04:11 +0000 (11:04 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 14 Aug 2019 11:04:11 +0000 (11:04 +0000)
commit1b187f36ec16d43d0227805955d8fae51af26970
tree038efa855b617788fd2c3fc5b515415a666f6ba2
parentd113ece60450b2efb07e9057b6d2732b08fee2c4
[AArch64] Use SVE BIC for conditional arithmetic

This patch uses BIC to pattern-match conditional AND with an inverted
third input.  It also adds extra tests for AND, ORR and EOR.

2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
    Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

gcc/
* config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
(*cond_bic<mode>_any): New patterns.

gcc/testsuite/
* gcc.target/aarch64/sve/cond_logical_1.c: New test.
* gcc.target/aarch64/sve/cond_logical_1_run.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_2.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_2_run.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_3.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_3_run.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_4.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_4_run.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_5.c: Likewise.
* gcc.target/aarch64/sve/cond_logical_5_run.c: Likewise.

Co-Authored-By: Kugan Vivekanandarajah <kuganv@linaro.org>
From-SVN: r274480
13 files changed:
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_1_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_2_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_3_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_4_run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/cond_logical_5_run.c [new file with mode: 0644]