summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-04-08 04:08:32 +0000
committerChris Lattner <sabre@nondot.org>2006-04-08 04:08:32 +0000
commit80f554f20999f226bccf710707797053d812de74 (patch)
tree525f6ffa30389ef4e208ad0f834170bd77379f82 /llvm/lib
parent38c4cb2f9e01edb4af31c88d22ee5f3c6f01bdd6 (diff)
downloadbcm5719-llvm-80f554f20999f226bccf710707797053d812de74.tar.gz
bcm5719-llvm-80f554f20999f226bccf710707797053d812de74.zip
Use isValidOperands instead of duplicating or eliding checks.
llvm-svn: 27525
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/AsmParser/llvmAsmParser.y27
1 files changed, 8 insertions, 19 deletions
diff --git a/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y
index d95ea31bebe..cf746007a20 100644
--- a/llvm/lib/AsmParser/llvmAsmParser.y
+++ b/llvm/lib/AsmParser/llvmAsmParser.y
@@ -1541,14 +1541,13 @@ ConstExpr: CAST '(' ConstVal TO Types ')' {
$$ = ConstantExpr::get($1, $3, $5);
}
| EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
- if (!isa<PackedType>($3->getType()))
- ThrowException("First operand of extractelement must be "
- "packed type!");
- if ($5->getType() != Type::UIntTy)
- ThrowException("Second operand of extractelement must be uint!");
+ if (!ExtractElementInst::isValidOperands($3, $5))
+ ThrowException("Invalid extractelement operands!");
$$ = ConstantExpr::getExtractElement($3, $5);
}
| INSERTELEMENT '(' ConstVal ',' ConstVal ',' ConstVal ')' {
+ if (!InsertElementInst::isValidOperands($3, $5, $7))
+ ThrowException("Invalid insertelement operands!");
$$ = ConstantExpr::getInsertElement($3, $5, $7);
}
| SHUFFLEVECTOR '(' ConstVal ',' ConstVal ',' ConstVal ')' {
@@ -2250,23 +2249,13 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef {
delete $4;
}
| EXTRACTELEMENT ResolvedVal ',' ResolvedVal {
- if (!isa<PackedType>($2->getType()))
- ThrowException("First operand of extractelement must be "
- "packed type!");
- if ($4->getType() != Type::UIntTy)
- ThrowException("Second operand of extractelement must be uint!");
+ if (!ExtractElementInst::isValidOperands($2, $4))
+ ThrowException("Invalid extractelement operands!");
$$ = new ExtractElementInst($2, $4);
}
| INSERTELEMENT ResolvedVal ',' ResolvedVal ',' ResolvedVal {
- if (!isa<PackedType>($2->getType()))
- ThrowException("First operand of insertelement must be "
- "packed type!");
- if ($4->getType() !=
- cast<PackedType>($2->getType())->getElementType())
- ThrowException("Second operand of insertelement must be "
- "packed element type!");
- if ($6->getType() != Type::UIntTy)
- ThrowException("Third operand of insertelement must be uint!");
+ if (!InsertElementInst::isValidOperands($2, $4, $6))
+ ThrowException("Invalid insertelement operands!");
$$ = new InsertElementInst($2, $4, $6);
}
| SHUFFLEVECTOR ResolvedVal ',' ResolvedVal ',' ResolvedVal {
OpenPOWER on IntegriCloud