[AArch64] Use SVE BIC for conditional arithmetic

Programming / Compilers / GCC - rsandifo [138bc75d-0d04-0410-961f-82ee72b054a4] - 14 August 2019 11:04 EDT

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 Kugan Vivekanandarajah

gcc/
- config/aarch64/aarch64-sve.md (*cond_bic_2) (*cond_bic_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.

c20d54e5457 [AArch64] Use SVE BIC for conditional arithmetic
gcc/ChangeLog | 6 ++
gcc/config/aarch64/aarch64-sve.md | 44 +++++++++++++++
gcc/testsuite/ChangeLog | 14 +++++
.../gcc.target/aarch64/sve/cond_logical_1.c | 62 ++++++++++++++++++++
.../gcc.target/aarch64/sve/cond_logical_1_run.c | 33 +++++++++++
.../gcc.target/aarch64/sve/cond_logical_2.c | 63 +++++++++++++++++++++
.../gcc.target/aarch64/sve/cond_logical_2_run.c | 33 +++++++++++
.../gcc.target/aarch64/sve/cond_logical_3.c | 66 ++++++++++++++++++++++
.../gcc.target/aarch64/sve/cond_logical_3_run.c | 33 +++++++++++
.../gcc.target/aarch64/sve/cond_logical_4.c | 62 ++++++++++++++++++++
.../gcc.target/aarch64/sve/cond_logical_4_run.c | 33 +++++++++++
.../gcc.target/aarch64/sve/cond_logical_5.c | 66 ++++++++++++++++++++++
.../gcc.target/aarch64/sve/cond_logical_5_run.c | 33 +++++++++++
13 files changed, 548 insertions(+)

Upstream: gcc.gnu.org


  • Share