[llvm] 38c1ff8 - [CVP] Add additional tests for undef check (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 21 06:40:22 PST 2023
Author: Nikita Popov
Date: 2023-12-21T15:40:14+01:00
New Revision: 38c1ff89eee769d19ae07b585530f8edd69e124a
URL: https://github.com/llvm/llvm-project/commit/38c1ff89eee769d19ae07b585530f8edd69e124a
DIFF: https://github.com/llvm/llvm-project/commit/38c1ff89eee769d19ae07b585530f8edd69e124a.diff
LOG: [CVP] Add additional tests for undef check (NFC)
Added:
Modified:
llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll b/llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
index 7ec1028d65e0e9..546baf086cdbb0 100644
--- a/llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
+++ b/llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
@@ -567,3 +567,33 @@ define i16 @cond_value_may_not_well_defined(i16 %x) {
%sel = select i1 %cmp, i16 %and, i16 24
ret i16 %sel
}
+
+define i16 @and_elide_poison_flags(i16 noundef %a) {
+; CHECK-LABEL: @and_elide_poison_flags(
+; CHECK-NEXT: [[X:%.*]] = add nuw i16 [[A:%.*]], 1
+; CHECK-NEXT: [[AND:%.*]] = and i16 [[X]], 7
+; CHECK-NEXT: [[CMP:%.*]] = icmp ult i16 [[X]], 8
+; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], i16 [[AND]], i16 24
+; CHECK-NEXT: ret i16 [[SEL]]
+;
+ %x = add nuw i16 %a, 1
+ %and = and i16 %x, 7
+ %cmp = icmp ult i16 %x, 8
+ %sel = select i1 %cmp, i16 %and, i16 24
+ ret i16 %sel
+}
+
+define i16 @and_elide_poison_flags_missing_noundef(i16 %a) {
+; CHECK-LABEL: @and_elide_poison_flags_missing_noundef(
+; CHECK-NEXT: [[X:%.*]] = add nuw i16 [[A:%.*]], 1
+; CHECK-NEXT: [[AND:%.*]] = and i16 [[X]], 7
+; CHECK-NEXT: [[CMP:%.*]] = icmp ult i16 [[X]], 8
+; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], i16 [[AND]], i16 24
+; CHECK-NEXT: ret i16 [[SEL]]
+;
+ %x = add nuw i16 %a, 1
+ %and = and i16 %x, 7
+ %cmp = icmp ult i16 %x, 8
+ %sel = select i1 %cmp, i16 %and, i16 24
+ ret i16 %sel
+}
More information about the llvm-commits
mailing list