Add insertelement and shufflevector constantexpr support
authorChris Lattner <sabre@nondot.org>
Sat, 8 Apr 2006 03:53:34 +0000 (03:53 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 8 Apr 2006 03:53:34 +0000 (03:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27520 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/llvmAsmParser.y

index d77b7eebfc76d103bc3f90085bbeb0700fe70b7f..d95ea31bebe01ee3a981f82a2ba16b12d581ef45 100644 (file)
@@ -1547,8 +1547,17 @@ ConstExpr: CAST '(' ConstVal TO Types ')' {
     if ($5->getType() != Type::UIntTy)
       ThrowException("Second operand of extractelement must be uint!");
     $$ = ConstantExpr::getExtractElement($3, $5);
+  }
+  | INSERTELEMENT '(' ConstVal ',' ConstVal ',' ConstVal ')' {
+    $$ = ConstantExpr::getInsertElement($3, $5, $7);
+  }
+  | SHUFFLEVECTOR '(' ConstVal ',' ConstVal ',' ConstVal ')' {
+    if (!ShuffleVectorInst::isValidOperands($3, $5, $7))
+      ThrowException("Invalid shufflevector operands!");
+    $$ = ConstantExpr::getShuffleVector($3, $5, $7);
   };
 
+
 // ConstVector - A list of comma separated constants.
 ConstVector : ConstVector ',' ConstVal {
     ($$ = $1)->push_back($3);