diff options
Diffstat (limited to 'llvm/unittests/Analysis')
-rw-r--r-- | llvm/unittests/Analysis/ValueTrackingTest.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp index 559a0b7..bb0280ee 100644 --- a/llvm/unittests/Analysis/ValueTrackingTest.cpp +++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp @@ -1091,6 +1091,16 @@ TEST_F(ValueTrackingTest, isGuaranteedNotToBeUndefOrPoison) { } } +TEST_F(ValueTrackingTest, isGuaranteedNotToBeUndefOrPoison_splat) { + parseAssembly( + "define <4 x i32> @test(i32 noundef %x) {\n" + " %ins = insertelement <4 x i32> poison, i32 %x, i32 0\n" + " %A = shufflevector <4 x i32> %ins, <4 x i32> poison, <4 x i32> zeroinitializer\n" + " ret <4 x i32> %A\n" + "}"); + EXPECT_TRUE(isGuaranteedNotToBeUndefOrPoison(A)); +} + TEST_F(ValueTrackingTest, isGuaranteedNotToBeUndefOrPoison_assume) { parseAssembly("declare i1 @f_i1()\n" "declare i32 @f_i32()\n" |