Add insertelement and shufflevector constantexpr support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27520 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index d77b7ee..d95ea31 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1547,8 +1547,17 @@
     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);