i386: Use ADD to implement compares with negated operand [PR94913]
Use carry flag from addition to implement GEU/LTU compares
with negated operand, so e.g.
~x < y
compiles to:
addq %rsi, %rdi
setc %al
instead of:
notq %rdi
cmpq %rsi, %rdi
setb %al
PR target/94913
* config/i386/predicates.md (add_comparison_operator): New predicate.
* config/i386/i386.md (compare->add splitter): New splitters.
testsuite/ChangeLog:
PR target/94913
* gcc.target/i386/pr94913-1.c: New test.
* gcc.target/i386/pr94913-2.c: Ditto.