diff options
| author | Sam Kolton <Sam.Kolton@amd.com> | 2016-03-09 12:29:31 +0000 |
|---|---|---|
| committer | Sam Kolton <Sam.Kolton@amd.com> | 2016-03-09 12:29:31 +0000 |
| commit | dfa29f7c5bfc45bcc9a31bb113b1519d1332b6a6 (patch) | |
| tree | 5f7e7d7ac194e0510028d40818e6a734cff259f5 /llvm/lib/Target/AMDGPU/SIInstrFormats.td | |
| parent | 10d6f9ac0403710fefaee324bfccd2a01e41a6c3 (diff) | |
| download | bcm5719-llvm-dfa29f7c5bfc45bcc9a31bb113b1519d1332b6a6.tar.gz bcm5719-llvm-dfa29f7c5bfc45bcc9a31bb113b1519d1332b6a6.zip | |
[AMDGPU] Assembler: Support DPP instructions.
Supprot DPP syntax as used in SP3 (except several operands syntax).
Added dpp-specific operands in td-files.
Added DPP flag to TSFlags to determine if instruction is dpp in InstPrinter.
Support for VOP2 DPP instructions in td-files.
Some tests for DPP instructions.
ToDo:
- VOP2bInst:
- vcc is considered as operand
- AsmMatcher doesn't apply mnemonic aliases when parsing operands
- v_mac_f32
- v_nop
- disable instructions with 64-bit operands
- change dpp_ctrl assembler representation to conform sp3
Review: http://reviews.llvm.org/D17804
llvm-svn: 263008
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIInstrFormats.td')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrFormats.td | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrFormats.td b/llvm/lib/Target/AMDGPU/SIInstrFormats.td index a6bed7803aa..ea7b6a1c138 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrFormats.td +++ b/llvm/lib/Target/AMDGPU/SIInstrFormats.td @@ -31,6 +31,7 @@ class InstSI <dag outs, dag ins, string asm, list<dag> pattern> : field bits<1> VOP2 = 0; field bits<1> VOP3 = 0; field bits<1> VOPC = 0; + field bits<1> DPP = 0; field bits<1> MUBUF = 0; field bits<1> MTBUF = 0; @@ -63,16 +64,17 @@ class InstSI <dag outs, dag ins, string asm, list<dag> pattern> : let TSFlags{11} = VOP2; let TSFlags{12} = VOP3; let TSFlags{13} = VOPC; - - let TSFlags{14} = MUBUF; - let TSFlags{15} = MTBUF; - let TSFlags{16} = SMRD; - let TSFlags{17} = DS; - let TSFlags{18} = MIMG; - let TSFlags{19} = FLAT; - let TSFlags{20} = WQM; - let TSFlags{21} = VGPRSpill; - let TSFlags{22} = VOPAsmPrefer32Bit; + let TSFlags{14} = DPP; + + let TSFlags{15} = MUBUF; + let TSFlags{16} = MTBUF; + let TSFlags{17} = SMRD; + let TSFlags{18} = DS; + let TSFlags{19} = MIMG; + let TSFlags{20} = FLAT; + let TSFlags{21} = WQM; + let TSFlags{22} = VGPRSpill; + let TSFlags{23} = VOPAsmPrefer32Bit; let SchedRW = [Write32Bit]; |

