- FUNC_CODE_INST_STORE = 21, // STORE: [ptrty,val,ptr, align, vol]
- FUNC_CODE_INST_CALL = 22, // CALL: [fnty, fnid, arg0, arg1...]
- FUNC_CODE_INST_VAARG = 23 // VAARG: [valistty, valist, instty]
+ // FIXME: Remove STORE in favor of STORE2 in LLVM 3.0
+ FUNC_CODE_INST_STORE = 21, // STORE: [valty,val,ptr, align, vol]
+ FUNC_CODE_INST_CALL = 22, // CALL: [attr, fnty, fnid, args...]
+ FUNC_CODE_INST_VAARG = 23, // VAARG: [valistty, valist, instty]
+ // This store code encodes the pointer type, rather than the value type
+ // this is so information only available in the pointer type (e.g. address
+ // spaces) is retained.
+ FUNC_CODE_INST_STORE2 = 24, // STORE: [ptrty,ptr,val, align, vol]
+ // FIXME: Remove GETRESULT in favor of EXTRACTVAL in LLVM 3.0
+ FUNC_CODE_INST_GETRESULT = 25, // GETRESULT: [ty, opval, n]
+ FUNC_CODE_INST_EXTRACTVAL = 26, // EXTRACTVAL: [n x operands]
+ FUNC_CODE_INST_INSERTVAL = 27, // INSERTVAL: [n x operands]
+ // fcmp/icmp returning Int1TY or vector of Int1Ty, NOT for vicmp/vfcmp
+ FUNC_CODE_INST_CMP2 = 28, // VCMP: [opty, opval, opval, pred]
+ // new select on i1 or [N x i1]
+ FUNC_CODE_INST_VSELECT = 29 // VSELECT: [ty,opval,opval,predty,pred]