diff options
Diffstat (limited to 'unittests/VMCore/InstructionsTest.cpp')
-rw-r--r-- | unittests/VMCore/InstructionsTest.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/unittests/VMCore/InstructionsTest.cpp b/unittests/VMCore/InstructionsTest.cpp index 8edcce4..9624b81 100644 --- a/unittests/VMCore/InstructionsTest.cpp +++ b/unittests/VMCore/InstructionsTest.cpp @@ -114,11 +114,19 @@ TEST(InstructionsTest, CastInst) { const Type* Int8Ty = Type::getInt8Ty(C); const Type* Int64Ty = Type::getInt64Ty(C); const Type* V8x8Ty = VectorType::get(Int8Ty, 8); + const Type* V8x64Ty = VectorType::get(Int64Ty, 8); const Type* X86MMXTy = Type::getX86_MMXTy(C); + const Constant* c8 = Constant::getNullValue(V8x8Ty); + const Constant* c64 = Constant::getNullValue(V8x64Ty); + EXPECT_TRUE(CastInst::isCastable(V8x8Ty, X86MMXTy)); EXPECT_TRUE(CastInst::isCastable(X86MMXTy, V8x8Ty)); EXPECT_FALSE(CastInst::isCastable(Int64Ty, X86MMXTy)); + EXPECT_TRUE(CastInst::isCastable(V8x64Ty, V8x8Ty)); + EXPECT_TRUE(CastInst::isCastable(V8x8Ty, V8x64Ty)); + EXPECT_EQ(CastInst::getCastOpcode(c64, true, V8x8Ty, true), CastInst::Trunc); + EXPECT_EQ(CastInst::getCastOpcode(c8, true, V8x64Ty, true), CastInst::SExt); } } // end anonymous namespace |