]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V/testsuite: Add branchless cases for FP cond-move operations
authorMaciej W. Rozycki <macro@embecosm.com>
Wed, 22 Nov 2023 01:18:25 +0000 (01:18 +0000)
committerMaciej W. Rozycki <macro@embecosm.com>
Wed, 22 Nov 2023 01:18:25 +0000 (01:18 +0000)
commit814485b2564a453ce9c0731344282f18e12ed0b5
tree3afbe4245fc42260ee1f9917bc9c924ff67546e2
parentbc40013cd6074f506f488c4717871ebcb7bb9087
RISC-V/testsuite: Add branchless cases for FP cond-move operations

Verify, for short forward branch, T-Head, Ventana and Zicond targets and
the ordered floating-point conditional-move operations that already work
as expected, that if-conversion triggers via `noce_try_cmove' at the
respective sufficiently high `-mbranch-cost=' settings that make
branchless code sequences produced by if-conversion cheaper than their
original branched equivalents, and that extraneous instructions such as
SNEZ, etc. are not present in output.  Cover all ordered floating-point
relational operations to make sure no corner case escapes.

gcc/testsuite/
* gcc.target/riscv/movdifge-sfb.c: New test.
* gcc.target/riscv/movdifge-thead.c: New test.
* gcc.target/riscv/movdifge-ventana.c: New test.
* gcc.target/riscv/movdifge-zicond.c: New test.
* gcc.target/riscv/movdifgt-sfb.c: New test.
* gcc.target/riscv/movdifgt-thead.c: New test.
* gcc.target/riscv/movdifgt-ventana.c: New test.
* gcc.target/riscv/movdifgt-zicond.c: New test.
* gcc.target/riscv/movdifle-sfb.c: New test.
* gcc.target/riscv/movdifle-thead.c: New test.
* gcc.target/riscv/movdifle-ventana.c: New test.
* gcc.target/riscv/movdifle-zicond.c: New test.
* gcc.target/riscv/movdiflt-sfb.c: New test.
* gcc.target/riscv/movdiflt-thead.c: New test.
* gcc.target/riscv/movdiflt-ventana.c: New test.
* gcc.target/riscv/movdiflt-zicond.c: New test.
* gcc.target/riscv/movdifne-sfb.c: New test.
* gcc.target/riscv/movdifne-thead.c: New test.
* gcc.target/riscv/movdifne-ventana.c: New test.
* gcc.target/riscv/movdifne-zicond.c: New test.
* gcc.target/riscv/movsifge-sfb.c: New test.
* gcc.target/riscv/movsifge-thead.c: New test.
* gcc.target/riscv/movsifge-ventana.c: New test.
* gcc.target/riscv/movsifge-zicond.c: New test.
* gcc.target/riscv/movsifgt-sfb.c: New test.
* gcc.target/riscv/movsifgt-thead.c: New test.
* gcc.target/riscv/movsifgt-ventana.c: New test.
* gcc.target/riscv/movsifgt-zicond.c: New test.
* gcc.target/riscv/movsifle-sfb.c: New test.
* gcc.target/riscv/movsifle-thead.c: New test.
* gcc.target/riscv/movsifle-ventana.c: New test.
* gcc.target/riscv/movsifle-zicond.c: New test.
* gcc.target/riscv/movsiflt-sfb.c: New test.
* gcc.target/riscv/movsiflt-thead.c: New test.
* gcc.target/riscv/movsiflt-ventana.c: New test.
* gcc.target/riscv/movsiflt-zicond.c: New test.
* gcc.target/riscv/movsifne-sfb.c: New test.
* gcc.target/riscv/movsifne-thead.c: New test.
* gcc.target/riscv/movsifne-ventana.c: New test.
* gcc.target/riscv/movsifne-zicond.c: New test.
40 files changed:
gcc/testsuite/gcc.target/riscv/movdifge-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifge-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifge-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifge-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifgt-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifgt-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifgt-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifgt-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifle-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifle-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifle-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifle-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdiflt-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdiflt-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdiflt-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdiflt-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifne-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifne-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifne-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movdifne-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifge-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifge-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifge-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifge-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifgt-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifgt-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifgt-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifgt-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifle-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifle-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifle-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifle-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsiflt-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsiflt-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsiflt-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsiflt-zicond.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifne-sfb.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifne-thead.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifne-ventana.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/movsifne-zicond.c [new file with mode: 0644]