| extractelement "(" ^ ConstVal ^ "," ConstVal ^ ")"
| insertelement "(" ^ ConstVal ^ "," ConstVal ^ "," ConstVal ^ ")"
| shufflevector "(" ^ ConstVal ^ "," ConstVal ^ "," ConstVal ^ ")"
- | extractvalue "(" ^ ConstVal IndexList ^ ")"
- | insertvalue "(" ^ ConstVal ^ "," ConstVal IndexList ^ ")" ;
+ | extractvalue "(" ^ ConstVal ^ ConstantIndexList ^ ")"
+ | insertvalue "(" ^ ConstVal ^ "," ConstVal ^ ConstantIndexList ^ ")" ;
ConstVector ::= ConstVector ^ "," ConstVal | ConstVal ;
| undef
| zeroinitializer
| "<" ConstVector ">"
+ | "[" ConstVector "]"
+ | "[" "]"
+ | "c" ^ STRINGCONSTANT
+ | "{" ConstVector "}"
+ | "{" "}"
+ | "<" ^ "{" ConstVector "}" ^ ">"
+ | "<" ^ "{" "}" ^ ">"
| ConstExpr
| asm OptSideEffect STRINGCONSTANT ^ "," STRINGCONSTANT ;
IndexList ::= _ | IndexList ^ "," ResolvedVal ;
+ConstantIndexList ::= "," EUINT64VAL | ConstantIndexList ^ "," EUINT64VAL ;
+
OptTailCall ::= tail call | call ;
InstVal ::=
| vfcmp FPredicates Types ValueRef ^ "," ValueRef
| CastOps ResolvedVal to Types
| select ResolvedVal ^ "," ResolvedVal ^ "," ResolvedVal
- | vaarg ResolvedVal ^ "," Types
+ | "va_arg" ResolvedVal ^ "," Types
| extractelement ResolvedVal ^ "," ResolvedVal
| insertelement ResolvedVal ^ "," ResolvedVal ^ "," ResolvedVal
| shufflevector ResolvedVal ^ "," ResolvedVal ^ "," ResolvedVal
| OptVolatile store ResolvedVal ^ "," Types ValueRef OptCAlign
| getresult Types ValueRef ^ "," EUINT64VAL
| getelementptr Types ValueRef IndexList
- | extractvalue Types ValueRef IndexList
- | insertvalue Types ValueRef ^ "," Types ValueRef IndexList ;
+ | extractvalue Types ValueRef ^ ConstantIndexList
+ | insertvalue Types ValueRef ^ "," Types ValueRef ^ ConstantIndexList ;