]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: TEST insn should be merged with ADC/SBB insn [PR122390]
authorUros Bizjak <ubizjak@gmail.com>
Tue, 4 Nov 2025 09:18:03 +0000 (10:18 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Tue, 4 Nov 2025 16:22:25 +0000 (17:22 +0100)
commit0983945b7c1cdc575fefe9c61609e27f18b1ba3f
tree2f228a8f274fb2cea4e097bb526cb77279050746
parent7e7091bfa87dab24d36c50233ca04cb6319c5b91
i386: TEST insn should be merged with ADC/SBB insn [PR122390]

The attached testcase is currently compiled to:

f1:
        cmpl    %esi, %edi
        adcl    %esi, %edi
        testl   %edi, %edi
        js      .L4
...

TEST insn should be merged with ADC/SBB insn.  The patch provides missing
combined insn patterns.

PR target/122390

gcc/ChangeLog:

* config/i386/i386.md (*add<mode>3_carry_2): New insn pattern.
(*add<mode>3_carry_0_cc): Ditto.
(*add<mode>3_carry_0r_cc): Ditto.
(*sub<mode>3_carry_2): Ditto.
(*sub<mode>3_carry_0_cc): Ditto.
(*sub<mode>3_carry_0r_cc): Ditt.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr122390.c: New test.
* gcc.target/i386/pr122390-1.c: New test.
gcc/config/i386/i386.md
gcc/testsuite/gcc.target/i386/pr122390-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr122390.c [new file with mode: 0644]