diff options
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUInstructions.td')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUInstructions.td | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUInstructions.td b/llvm/lib/Target/R600/AMDGPUInstructions.td index 04618f27e17..d6a7759503c 100644 --- a/llvm/lib/Target/R600/AMDGPUInstructions.td +++ b/llvm/lib/Target/R600/AMDGPUInstructions.td @@ -173,6 +173,9 @@ def FP_ONE : PatLeaf < [{return N->isExactlyValue(1.0);}] >; +def U24 : ComplexPattern<i32, 1, "SelectU24", [], []>; +def I24 : ComplexPattern<i32, 1, "SelectI24", [], []>; + let isCodeGenOnly = 1, isPseudo = 1 in { let usesCustomInserter = 1 in { @@ -366,6 +369,16 @@ class ROTRPattern <Instruction BIT_ALIGN> : Pat < (BIT_ALIGN $src0, $src0, $src1) >; +// 24-bit arithmetic patterns +def umul24 : PatFrag <(ops node:$x, node:$y), (mul node:$x, node:$y)>; + +/* +class UMUL24Pattern <Instruction UMUL24> : Pat < + (mul U24:$x, U24:$y), + (UMUL24 $x, $y) +>; +*/ + include "R600Instructions.td" include "SIInstrInfo.td" |