summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SIInstrFormats.td
diff options
context:
space:
mode:
authorSam Kolton <Sam.Kolton@amd.com>2016-03-09 12:29:31 +0000
committerSam Kolton <Sam.Kolton@amd.com>2016-03-09 12:29:31 +0000
commitdfa29f7c5bfc45bcc9a31bb113b1519d1332b6a6 (patch)
tree5f7e7d7ac194e0510028d40818e6a734cff259f5 /llvm/lib/Target/AMDGPU/SIInstrFormats.td
parent10d6f9ac0403710fefaee324bfccd2a01e41a6c3 (diff)
downloadbcm5719-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.td22
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];
OpenPOWER on IntegriCloud