Skip to content
Snippets Groups Projects
  • Maciej W. Rozycki's avatar
    5e6903dd
    RISC-V/testsuite: Add branchless cases for generic integer cond adds · 5e6903dd
    Maciej W. Rozycki authored
    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.
    5e6903dd
    History
    RISC-V/testsuite: Add branchless cases for generic integer cond adds
    Maciej W. Rozycki authored
    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.
adddiltu.c 860 B