]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Fix matching of BRKNS
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 20 Oct 2022 14:34:09 +0000 (15:34 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 20 Oct 2022 14:34:09 +0000 (15:34 +0100)
commita0c07ddfc0c7ec413f9dbf380fdcb5c428e00abe
treeb6d04960e459c9f3f23fb7391b4749c2333063aa
parent40a727379f3e8e6a83aea4e94c38dfa5dd8ef33d
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.

(cherry picked from commit 6bec66640597e2604f51fc1642c7d279164cd442)
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]