aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore/Verifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VMCore/Verifier.cpp')
-rw-r--r--lib/VMCore/Verifier.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index 8b371f9..4b13a6b 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -178,6 +178,7 @@ namespace { // Anonymous namespace for class
void visitPHINode(PHINode &PN);
void visitBinaryOperator(BinaryOperator &B);
void visitShiftInst(ShiftInst &SI);
+ void visitExtractElementInst(ExtractElementInst &EI);
void visitVAArgInst(VAArgInst &VAA) { visitInstruction(VAA); }
void visitCallInst(CallInst &CI);
void visitGetElementPtrInst(GetElementPtrInst &GEP);
@@ -532,6 +533,18 @@ void Verifier::visitShiftInst(ShiftInst &SI) {
visitInstruction(SI);
}
+void Verifier::visitExtractElementInst(ExtractElementInst &EI) {
+ Assert1(isa<PackedType>(EI.getOperand(0)->getType()),
+ "First operand to extractelement must be packed type!", &EI);
+ Assert1(EI.getOperand(1)->getType() == Type::UIntTy,
+ "Second operand to extractelement must be uint type!", &EI);
+ Assert1(EI.getType() ==
+ cast<PackedType>(EI.getOperand(0)->getType())->getElementType(),
+ "Extractelement return type must be same as "
+ "first operand element type!", &EI);
+ visitInstruction(EI);
+}
+
void Verifier::visitGetElementPtrInst(GetElementPtrInst &GEP) {
const Type *ElTy =
GetElementPtrInst::getIndexedType(GEP.getOperand(0)->getType(),