diff options
Diffstat (limited to 'llvm/include/llvm/Target/GenericOpcodes.td')
-rw-r--r-- | llvm/include/llvm/Target/GenericOpcodes.td | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/include/llvm/Target/GenericOpcodes.td b/llvm/include/llvm/Target/GenericOpcodes.td index 880fbc46374..fecdd72d6a5 100644 --- a/llvm/include/llvm/Target/GenericOpcodes.td +++ b/llvm/include/llvm/Target/GenericOpcodes.td @@ -434,6 +434,15 @@ def G_EXTRACT : Instruction { let hasSideEffects = 0; } +// Extract multiple registers specified size, starting from blocks given by +// indexes. This will almost certainly be mapped to sub-register COPYs after +// register banks have been selected. +def G_UNMERGE_VALUES : Instruction { + let OutOperandList = (outs); + let InOperandList = (ins variable_ops); + let hasSideEffects = 0; +} + // Insert a sequence of smaller registers into a larger one at the specified // indices (interleaved with the values in the operand list "op0, bit0, op1, // bit1, ...")). @@ -452,6 +461,12 @@ def G_SEQUENCE : Instruction { let hasSideEffects = 0; } +def G_MERGE_VALUES : Instruction { + let OutOperandList = (outs type0:$dst); + let InOperandList = (ins variable_ops); + let hasSideEffects = 0; +} + // Intrinsic without side effects. def G_INTRINSIC : Instruction { let OutOperandList = (outs); |