[llvm] 008e3a0 - [ValueTracking] Test for trunc nuw cond in assume. (NFC)
Andreas Jonson via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 5 03:12:14 PDT 2025
Author: Andreas Jonson
Date: 2025-04-05T12:07:38+02:00
New Revision: 008e3a0b3d08a863f777d67e067eed75f0c08402
URL: https://github.com/llvm/llvm-project/commit/008e3a0b3d08a863f777d67e067eed75f0c08402
DIFF: https://github.com/llvm/llvm-project/commit/008e3a0b3d08a863f777d67e067eed75f0c08402.diff
LOG: [ValueTracking] Test for trunc nuw cond in assume. (NFC)
Added:
Modified:
llvm/test/Transforms/InstCombine/assume.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/assume.ll b/llvm/test/Transforms/InstCombine/assume.ll
index 17473a225ff95..1f8fa1716b2aa 100644
--- a/llvm/test/Transforms/InstCombine/assume.ll
+++ b/llvm/test/Transforms/InstCombine/assume.ll
@@ -1009,6 +1009,32 @@ define i1 @not_cond_use(i8 %x) {
ret i1 %rval
}
+define i1 @assume_trunc_nuw_eq_one(i8 %x) {
+; CHECK-LABEL: @assume_trunc_nuw_eq_one(
+; CHECK-NEXT: [[A:%.*]] = trunc nuw i8 [[X:%.*]] to i1
+; CHECK-NEXT: call void @llvm.assume(i1 [[A]])
+; CHECK-NEXT: [[Q:%.*]] = icmp eq i8 [[X]], 1
+; CHECK-NEXT: ret i1 [[Q]]
+;
+ %a = trunc nuw i8 %x to i1
+ call void @llvm.assume(i1 %a)
+ %q = icmp eq i8 %x, 1
+ ret i1 %q
+}
+
+define i1 @neg_assume_trunc_eq_one(i8 %x) {
+; CHECK-LABEL: @neg_assume_trunc_eq_one(
+; CHECK-NEXT: [[A:%.*]] = trunc i8 [[X:%.*]] to i1
+; CHECK-NEXT: call void @llvm.assume(i1 [[A]])
+; CHECK-NEXT: [[Q:%.*]] = icmp eq i8 [[X]], 1
+; CHECK-NEXT: ret i1 [[Q]]
+;
+ %a = trunc i8 %x to i1
+ call void @llvm.assume(i1 %a)
+ %q = icmp eq i8 %x, 1
+ ret i1 %q
+}
+
declare void @use(i1)
declare void @llvm.dbg.value(metadata, metadata, metadata)
More information about the llvm-commits
mailing list