diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-04-08 04:08:32 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-04-08 04:08:32 +0000 |
| commit | 80f554f20999f226bccf710707797053d812de74 (patch) | |
| tree | 525f6ffa30389ef4e208ad0f834170bd77379f82 /llvm/lib | |
| parent | 38c4cb2f9e01edb4af31c88d22ee5f3c6f01bdd6 (diff) | |
| download | bcm5719-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.y | 27 |
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 { |

