]> git.ipfire.org Git - people/ms/gcc.git/commit
aarch64: Fix matching of BRKNS
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 20 Oct 2022 09:37:33 +0000 (10:37 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 20 Oct 2022 09:37:33 +0000 (10:37 +0100)
commit6bec66640597e2604f51fc1642c7d279164cd442
tree798eb6a2df4cb7c6f12f0117a98e1be0f723ccf8
parent8e2b5cf7cde999582d1b8fff021faa487c8e34b0
aarch64: Fix matching of BRKNS

Unlike other flag-setting SVE instructions, BRKNS sets the flags
based on an all-true governing predicate, rather than the GP operand.

gcc/
* config/aarch64/iterators.md (SVE_BRKP): New iterator.
* config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
(*aarch64_brkn_ptest): Likewise.
(*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
(*aarch64_brk<brk_op>_ptest): Likewise.

gcc/testsuite/
* gcc.target/aarch64/sve/acle/general/brkn_1.c: Expect separate
PTEST instructions.
* gcc.target/aarch64/sve/acle/general/brkn_2.c: New test.
gcc/config/aarch64/aarch64-sve.md
gcc/config/aarch64/iterators.md
gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c [new file with mode: 0644]