R600/SI: Fix definitions for ds_read2 / ds_write2 instructions.
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 4 Aug 2014 18:49:22 +0000 (18:49 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 4 Aug 2014 18:49:22 +0000 (18:49 +0000)
These were just wrong, using the wrong register classes
and store2 was missing an operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214756 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/SIInstrInfo.td
lib/Target/R600/SIInstructions.td

index 91e4d0d79d00e3bae5f2aa18393084b0acf591e9..b8e6f23d8c38cab3145b8f903c9efb8cfe56e7d5 100644 (file)
@@ -818,7 +818,8 @@ class DS_Store_Helper <bits<8> op, string asm, RegisterClass regClass> : DS_1A <
 class DS_Store2_Helper <bits<8> op, string asm, RegisterClass regClass> : DS_1A <
   op,
   (outs),
-  (ins i1imm:$gds, VReg_32:$addr, regClass:$data0, u8imm:$offset0, u8imm:$offset1),
+  (ins i1imm:$gds, VReg_32:$addr, regClass:$data0, regClass:$data1,
+       u8imm:$offset0, u8imm:$offset1),
   asm#" $addr, $data0, $data1, $offset0, $offset1 [M0]",
   []> {
   let mayStore = 1;
index 5ddc8ddafa1fc3c6f6c6923c63f1c4c6778aeb19..b171dd227aa152c692969c601a85ace893cc2e4a 100644 (file)
@@ -826,8 +826,8 @@ def DS_READ_U16 : DS_Load_Helper <0x0000003c, "DS_READ_U16", VReg_32>;
 def DS_READ_B64 : DS_Load_Helper <0x00000076, "DS_READ_B64", VReg_64>;
 
 // 2 forms.
-def DS_WRITE2_B32 : DS_Load2_Helper <0x0000000E, "DS_WRITE2_B32", VReg_64>;
-def DS_WRITE2_B64 : DS_Load2_Helper <0x0000004E, "DS_WRITE2_B64", VReg_128>;
+def DS_WRITE2_B32 : DS_Store2_Helper <0x0000000E, "DS_WRITE2_B32", VReg_32>;
+def DS_WRITE2_B64 : DS_Store2_Helper <0x0000004E, "DS_WRITE2_B64", VReg_64>;
 
 def DS_READ2_B32 : DS_Load2_Helper <0x00000037, "DS_READ2_B32", VReg_64>;
 def DS_READ2_B64 : DS_Load2_Helper <0x00000075, "DS_READ2_B64", VReg_128>;