[llvm] c7902d8 - [InstCombine] Add test for isKnownNonZero() undef miscompile (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 14 21:54:20 PDT 2024
Author: Nikita Popov
Date: 2024-04-15T13:54:09+09:00
New Revision: c7902d87a5a050b816edfe99e7e093ae63f4e564
URL: https://github.com/llvm/llvm-project/commit/c7902d87a5a050b816edfe99e7e093ae63f4e564
DIFF: https://github.com/llvm/llvm-project/commit/c7902d87a5a050b816edfe99e7e093ae63f4e564.diff
LOG: [InstCombine] Add test for isKnownNonZero() undef miscompile (NFC)
Added:
Modified:
llvm/test/Transforms/InstCombine/add.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/add.ll b/llvm/test/Transforms/InstCombine/add.ll
index 23eee8547597e4..515b80d9d6ea07 100644
--- a/llvm/test/Transforms/InstCombine/add.ll
+++ b/llvm/test/Transforms/InstCombine/add.ll
@@ -3093,6 +3093,32 @@ define <2 x i32> @dec_zext_add_nonzero_vec(<2 x i8> %x) {
ret <2 x i32> %c
}
+define <2 x i32> @dec_zext_add_nonzero_vec_undef0(<2 x i8> %x) {
+; CHECK-LABEL: @dec_zext_add_nonzero_vec_undef0(
+; CHECK-NEXT: [[O:%.*]] = or <2 x i8> [[X:%.*]], <i8 8, i8 undef>
+; CHECK-NEXT: [[C:%.*]] = zext <2 x i8> [[O]] to <2 x i32>
+; CHECK-NEXT: ret <2 x i32> [[C]]
+;
+ %o = or <2 x i8> %x, <i8 8, i8 undef>
+ %a = add <2 x i8> %o, <i8 -1, i8 -1>
+ %b = zext <2 x i8> %a to <2 x i32>
+ %c = add <2 x i32> %b, <i32 1, i32 1>
+ ret <2 x i32> %c
+}
+
+define <2 x i32> @dec_zext_add_nonzero_poison0(<2 x i8> %x) {
+; CHECK-LABEL: @dec_zext_add_nonzero_poison0(
+; CHECK-NEXT: [[O:%.*]] = or <2 x i8> [[X:%.*]], <i8 8, i8 poison>
+; CHECK-NEXT: [[C:%.*]] = zext <2 x i8> [[O]] to <2 x i32>
+; CHECK-NEXT: ret <2 x i32> [[C]]
+;
+ %o = or <2 x i8> %x, <i8 8, i8 poison>
+ %a = add <2 x i8> %o, <i8 -1, i8 -1>
+ %b = zext <2 x i8> %a to <2 x i32>
+ %c = add <2 x i32> %b, <i32 1, i32 1>
+ ret <2 x i32> %c
+}
+
define <2 x i32> @dec_zext_add_nonzero_vec_poison1(<2 x i8> %x) {
; CHECK-LABEL: @dec_zext_add_nonzero_vec_poison1(
; CHECK-NEXT: [[O:%.*]] = or <2 x i8> [[X:%.*]], <i8 8, i8 8>
More information about the llvm-commits
mailing list