diff options
Diffstat (limited to 'lib/VMCore/Verifier.cpp')
| -rw-r--r-- | lib/VMCore/Verifier.cpp | 13 |
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(), |
