[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