[llvm] 8530259 - [ConstraintElimination] Add test where offset additions overflow.
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 25 11:08:43 PDT 2022
Author: Florian Hahn
Date: 2022-03-25T18:08:18Z
New Revision: 8530259985db001326ea72cf05942afd6a45acc2
URL: https://github.com/llvm/llvm-project/commit/8530259985db001326ea72cf05942afd6a45acc2
DIFF: https://github.com/llvm/llvm-project/commit/8530259985db001326ea72cf05942afd6a45acc2.diff
LOG: [ConstraintElimination] Add test where offset additions overflow.
Added:
Modified:
llvm/test/Transforms/ConstraintElimination/sub-nuw.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/ConstraintElimination/sub-nuw.ll b/llvm/test/Transforms/ConstraintElimination/sub-nuw.ll
index a1d0269e9acef..f2d4990ef6b2e 100644
--- a/llvm/test/Transforms/ConstraintElimination/sub-nuw.ll
+++ b/llvm/test/Transforms/ConstraintElimination/sub-nuw.ll
@@ -353,3 +353,20 @@ exit.2:
%c.3 = icmp ugt i16 %a, 0
ret i1 %c.3
}
+
+declare void @llvm.assume(i1)
+
+define i1 @wrapping_offset_sum(i64 %x) {
+; CHECK-LABEL: @wrapping_offset_sum(
+; CHECK-NEXT: [[NON_ZERO:%.*]] = icmp ugt i64 [[X:%.*]], 0
+; CHECK-NEXT: call void @llvm.assume(i1 [[NON_ZERO]])
+; CHECK-NEXT: [[ADD:%.*]] = sub nuw i64 [[X]], 9223372036854775802
+; CHECK-NEXT: [[ULT:%.*]] = icmp ugt i64 200, [[ADD]]
+; CHECK-NEXT: ret i1 false
+;
+ %non.zero = icmp ugt i64 %x, 0
+ call void @llvm.assume(i1 %non.zero)
+ %add = sub nuw i64 %x, 9223372036854775802
+ %ult = icmp ugt i64 200, %add
+ ret i1 %ult
+}
More information about the llvm-commits
mailing list