[llvm-bugs] [Bug 52135] New: [InstSimplify] fold compare of no-wrap subtract
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Oct 11 05:51:36 PDT 2021
https://bugs.llvm.org/show_bug.cgi?id=52135
Bug ID: 52135
Summary: [InstSimplify] fold compare of no-wrap subtract
Product: libraries
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: Scalar Optimizations
Assignee: unassignedbugs at nondot.org
Reporter: spatel+llvm at rotateright.com
CC: llvm-bugs at lists.llvm.org
Noticed in https://reviews.llvm.org/rGda210f5d3425 :
define i1 @test_negative_combined_sub_signed_overflow(i8 %x) {
%y = sub nsw i8 127, %x
%z = icmp slt i8 %y, -1
ret i1 %z
}
This is always false.
define i1 @test_negative_combined_sub_unsigned_overflow(i64 %x) {
%y = sub nuw i64 10, %x
%z = icmp ult i64 %y, 11
ret i1 %z
}
This is always true.
--------------------------------------------------------------------------
-instcombine will now handle those transforms in multiple steps, but it won't
work if the subtract has an extra use.
This should be added to -instsimplify, so we don't have that limitation, and
the analysis can be used by other passes.
The transforms should not be limited to "less-than" predicates. The check might
be implemented with a ConstantRange or an overflow check on constant math.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20211011/80871efd/attachment.html>
More information about the llvm-bugs
mailing list