]> gcc.gnu.org Git - gcc.git/commit
RISC-V/testsuite: Add branchless cases for generic integer cond adds
authorMaciej W. Rozycki <macro@embecosm.com>
Wed, 22 Nov 2023 01:18:29 +0000 (01:18 +0000)
committerJeff Law <jlaw@ventanamicro.com>
Wed, 22 Nov 2023 05:05:16 +0000 (22:05 -0700)
commit4051719d872008a0e382782d59891c3f420fd8d2
treed0e238ea444378091394dbbcac846d9f188e69d0
parent87462222fc58077ae0c174645ecf9efd6b554632
RISC-V/testsuite: Add branchless cases for generic integer cond adds

Verify, for generic integer conditional-add operations, if-conversion
to trigger via `noce_try_addcc' at the respective sufficiently high
`-mbranch-cost=' settings that make branchless code sequences produced
by if-conversion cheaper than their original branched equivalents, and,
where applicable, that extraneous instructions such as SNEZ, etc. are
not present in output.  Cover all integer relational operations to make
sure no corner case escapes.

The reason to XFAIL SImode tests for RV64 targets is the compiler thinks
it has to sign-extend addends, which causes if-conversion to give up.

gcc/testsuite/
* gcc.target/riscv/adddieq.c: New test.
* gcc.target/riscv/adddige.c: New test.
* gcc.target/riscv/adddigeu.c: New test.
* gcc.target/riscv/adddigt.c: New test.
* gcc.target/riscv/adddigtu.c: New test.
* gcc.target/riscv/adddile.c: New test.
* gcc.target/riscv/adddileu.c: New test.
* gcc.target/riscv/adddilt.c: New test.
* gcc.target/riscv/adddiltu.c: New test.
* gcc.target/riscv/adddine.c: New test.
* gcc.target/riscv/addsieq.c: New test.
* gcc.target/riscv/addsige.c: New test.
* gcc.target/riscv/addsigeu.c: New test.
* gcc.target/riscv/addsigt.c: New test.
* gcc.target/riscv/addsigtu.c: New test.
* gcc.target/riscv/addsile.c: New test.
* gcc.target/riscv/addsileu.c: New test.
* gcc.target/riscv/addsilt.c: New test.
* gcc.target/riscv/addsiltu.c: New test.
* gcc.target/riscv/addsine.c: New test.

(cherry picked from commit 5e6903ddd39e058b9a8304a77765529d64819966)
20 files changed:
gcc/testsuite/gcc.target/riscv/adddieq.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddige.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddigeu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddigt.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddigtu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddile.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddileu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddilt.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddiltu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/adddine.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsieq.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsige.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsigeu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsigt.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsigtu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsile.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsileu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsilt.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsiltu.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/addsine.c [new file with mode: 0644]
This page took 0.064557 seconds and 5 git commands to generate.