diff options
Diffstat (limited to 'llvm/unittests/IR/ConstantsTest.cpp')
-rw-r--r-- | llvm/unittests/IR/ConstantsTest.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/llvm/unittests/IR/ConstantsTest.cpp b/llvm/unittests/IR/ConstantsTest.cpp index d02217dc355..7741b448fa8 100644 --- a/llvm/unittests/IR/ConstantsTest.cpp +++ b/llvm/unittests/IR/ConstantsTest.cpp @@ -190,7 +190,10 @@ TEST(ConstantsTest, AsInstructionsTest) { Constant *Two = ConstantInt::get(Int64Ty, 2); Constant *Big = ConstantInt::get(getGlobalContext(), APInt{256, uint64_t(-1), true}); - Constant *Undef = UndefValue::get(Int64Ty); + Constant *Elt = ConstantInt::get(Int16Ty, 2015); + Constant *Undef16 = UndefValue::get(Int16Ty); + Constant *Undef64 = UndefValue::get(Int64Ty); + Constant *UndefV16 = UndefValue::get(P6->getType()); #define P0STR "ptrtoint (i32** @dummy to i32)" #define P1STR "uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" @@ -260,9 +263,15 @@ TEST(ConstantsTest, AsInstructionsTest) { CHECK(ConstantExpr::getExtractElement(P6, One), "extractelement <2 x i16> " P6STR ", i32 1"); - EXPECT_TRUE(isa<UndefValue>(ConstantExpr::getExtractElement(P6, Two))); - EXPECT_TRUE(isa<UndefValue>(ConstantExpr::getExtractElement(P6, Big))); - EXPECT_TRUE(isa<UndefValue>(ConstantExpr::getExtractElement(P6, Undef))); + EXPECT_EQ(Undef16, ConstantExpr::getExtractElement(P6, Two)); + EXPECT_EQ(Undef16, ConstantExpr::getExtractElement(P6, Big)); + EXPECT_EQ(Undef16, ConstantExpr::getExtractElement(P6, Undef64)); + + EXPECT_EQ(Elt, ConstantExpr::getExtractElement( + ConstantExpr::getInsertElement(P6, Elt, One), One)); + EXPECT_EQ(UndefV16, ConstantExpr::getInsertElement(P6, Elt, Two)); + EXPECT_EQ(UndefV16, ConstantExpr::getInsertElement(P6, Elt, Big)); + EXPECT_EQ(UndefV16, ConstantExpr::getInsertElement(P6, Elt, Undef64)); } #ifdef GTEST_HAS_DEATH_TEST |