]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Canonicalize (compare (minus (a b)) a) to (compare (a b)) [PR122518]
authorUros Bizjak <ubizjak@gmail.com>
Sun, 2 Nov 2025 19:30:55 +0000 (20:30 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Sun, 2 Nov 2025 19:31:42 +0000 (20:31 +0100)
commit0eb6b0f474ff13f5e98d2c26a3669fdd17b40dd4
tree6fda0f82fb19456c18b2cd2bb78e50d36b893c09
parenta06228ca4dddac44bba28c8e9ebd2f7000167c2e
i386: Canonicalize (compare (minus (a b)) a) to (compare (a b)) [PR122518]

SUB (a, b) underflows precisely when a < b.  Convert (compare (minus (a b)) a)
to (compare (a b)) to match *sub<mode>_3 pattern.

PR target/122518

gcc/ChangeLog:

* config/i386/i386.cc (ix86_canonicalize_comparison): Convert
(compare (minus (a b)) a) to (compare (a b)) to
match *sub<mode>_3 pattern.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr122518.c: New test.
gcc/config/i386/i386.cc
gcc/testsuite/gcc.target/i386/pr122518.c [new file with mode: 0644]