[PATCH] R600/SI: Use SGPR_64 as reister class for S_LOAD_DWORDX2
Matt Arsenault
Matthew.Arsenault at amd.com
Fri Aug 1 16:05:53 PDT 2014
There's no reason to ever load into the special registers
in the superclass SReg_64. This helps avoid the verifier
error "Expected a SGPR_64 register, but got a SReg_64 register"
because SGPR_64 is not a superclass of SReg_64 when trying
to use a loaded kernel argument register in some cases.
http://reviews.llvm.org/D4762
Files:
lib/Target/R600/SIInstructions.td
Index: lib/Target/R600/SIInstructions.td
===================================================================
--- lib/Target/R600/SIInstructions.td
+++ lib/Target/R600/SIInstructions.td
@@ -49,7 +49,7 @@
// SMRD instructions, because the SGPR_32 register class does not include M0
// and writing to M0 from an SMRD instruction will hang the GPU.
defm S_LOAD_DWORD : SMRD_Helper <0x00, "S_LOAD_DWORD", SReg_64, SGPR_32>;
-defm S_LOAD_DWORDX2 : SMRD_Helper <0x01, "S_LOAD_DWORDX2", SReg_64, SReg_64>;
+defm S_LOAD_DWORDX2 : SMRD_Helper <0x01, "S_LOAD_DWORDX2", SReg_64, SGPR_64>;
defm S_LOAD_DWORDX4 : SMRD_Helper <0x02, "S_LOAD_DWORDX4", SReg_64, SReg_128>;
defm S_LOAD_DWORDX8 : SMRD_Helper <0x03, "S_LOAD_DWORDX8", SReg_64, SReg_256>;
defm S_LOAD_DWORDX16 : SMRD_Helper <0x04, "S_LOAD_DWORDX16", SReg_64, SReg_512>;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4762.12124.patch
Type: text/x-patch
Size: 822 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140801/c6606f9b/attachment.bin>
More information about the llvm-commits
mailing list