Skip to content

Commit 224d8cd

Browse files
committed
AMDGPU: Remove mubuf specific PatFrags
These are identical to the *_global PatFrag, and will only create more work to get the GlobalISel importer to handle them. llvm-svn: 365350
1 parent 430b049 commit 224d8cd

File tree

1 file changed

+13
-27
lines changed

1 file changed

+13
-27
lines changed

llvm/lib/Target/AMDGPU/BUFInstructions.td

+13-27
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,6 @@ def MUBUFOffset : ComplexPattern<i64, 7, "SelectMUBUFOffset">;
1717
def MUBUFOffsetNoGLC : ComplexPattern<i64, 3, "SelectMUBUFOffset">;
1818
def MUBUFOffsetAtomic : ComplexPattern<i64, 4, "SelectMUBUFOffset">;
1919

20-
class MubufLoad <SDPatternOperator op> : PatFrag <
21-
(ops node:$ptr), (op node:$ptr), [{
22-
auto const AS = cast<MemSDNode>(N)->getAddressSpace();
23-
return AS == AMDGPUAS::GLOBAL_ADDRESS ||
24-
AS == AMDGPUAS::CONSTANT_ADDRESS;
25-
}]>;
26-
27-
def mubuf_load : MubufLoad <load>;
28-
def mubuf_az_extloadi8 : MubufLoad <az_extloadi8>;
29-
def mubuf_sextloadi8 : MubufLoad <sextloadi8>;
30-
def mubuf_az_extloadi16 : MubufLoad <az_extloadi16>;
31-
def mubuf_sextloadi16 : MubufLoad <sextloadi16>;
32-
def mubuf_load_atomic : MubufLoad <atomic_load>;
33-
3420
def BUFAddrKind {
3521
int Offset = 0;
3622
int OffEn = 1;
@@ -833,28 +819,28 @@ let SubtargetPredicate = HasPackedD16VMem, D16Buf = 1 in {
833819
} // End HasPackedD16VMem.
834820

835821
defm BUFFER_LOAD_UBYTE : MUBUF_Pseudo_Loads_Lds <
836-
"buffer_load_ubyte", VGPR_32, i32, mubuf_az_extloadi8
822+
"buffer_load_ubyte", VGPR_32, i32, az_extloadi8_global
837823
>;
838824
defm BUFFER_LOAD_SBYTE : MUBUF_Pseudo_Loads_Lds <
839-
"buffer_load_sbyte", VGPR_32, i32, mubuf_sextloadi8
825+
"buffer_load_sbyte", VGPR_32, i32, sextloadi8_global
840826
>;
841827
defm BUFFER_LOAD_USHORT : MUBUF_Pseudo_Loads_Lds <
842-
"buffer_load_ushort", VGPR_32, i32, mubuf_az_extloadi16
828+
"buffer_load_ushort", VGPR_32, i32, az_extloadi16_global
843829
>;
844830
defm BUFFER_LOAD_SSHORT : MUBUF_Pseudo_Loads_Lds <
845-
"buffer_load_sshort", VGPR_32, i32, mubuf_sextloadi16
831+
"buffer_load_sshort", VGPR_32, i32, sextloadi16_global
846832
>;
847833
defm BUFFER_LOAD_DWORD : MUBUF_Pseudo_Loads_Lds <
848-
"buffer_load_dword", VGPR_32, i32, mubuf_load
834+
"buffer_load_dword", VGPR_32, i32, load_global
849835
>;
850836
defm BUFFER_LOAD_DWORDX2 : MUBUF_Pseudo_Loads <
851-
"buffer_load_dwordx2", VReg_64, v2i32, mubuf_load
837+
"buffer_load_dwordx2", VReg_64, v2i32, load_global
852838
>;
853839
defm BUFFER_LOAD_DWORDX3 : MUBUF_Pseudo_Loads <
854-
"buffer_load_dwordx3", VReg_96, v3i32, mubuf_load
840+
"buffer_load_dwordx3", VReg_96, v3i32, load_global
855841
>;
856842
defm BUFFER_LOAD_DWORDX4 : MUBUF_Pseudo_Loads <
857-
"buffer_load_dwordx4", VReg_128, v4i32, mubuf_load
843+
"buffer_load_dwordx4", VReg_128, v4i32, load_global
858844
>;
859845

860846
// This is not described in AMD documentation,
@@ -1387,8 +1373,8 @@ def : MUBUFLoad_PatternADDR64 <BUFFER_LOAD_UBYTE_ADDR64, i32, az_extloadi8_const
13871373
def : MUBUFLoad_PatternADDR64 <BUFFER_LOAD_SSHORT_ADDR64, i32, sextloadi16_constant>;
13881374
def : MUBUFLoad_PatternADDR64 <BUFFER_LOAD_USHORT_ADDR64, i32, az_extloadi16_constant>;
13891375

1390-
defm : MUBUFLoad_Atomic_Pattern <BUFFER_LOAD_DWORD_ADDR64, BUFFER_LOAD_DWORD_OFFSET, i32, mubuf_load_atomic>;
1391-
defm : MUBUFLoad_Atomic_Pattern <BUFFER_LOAD_DWORDX2_ADDR64, BUFFER_LOAD_DWORDX2_OFFSET, i64, mubuf_load_atomic>;
1376+
defm : MUBUFLoad_Atomic_Pattern <BUFFER_LOAD_DWORD_ADDR64, BUFFER_LOAD_DWORD_OFFSET, i32, atomic_load_global>;
1377+
defm : MUBUFLoad_Atomic_Pattern <BUFFER_LOAD_DWORDX2_ADDR64, BUFFER_LOAD_DWORDX2_OFFSET, i64, atomic_load_global>;
13921378
} // End SubtargetPredicate = isGFX6GFX7
13931379

13941380
multiclass MUBUFLoad_Pattern <MUBUF_Pseudo Instr_OFFSET, ValueType vt,
@@ -1405,10 +1391,10 @@ let OtherPredicates = [Has16BitInsts] in {
14051391

14061392
defm : MUBUFLoad_Pattern <BUFFER_LOAD_SBYTE_OFFSET, i16, sextloadi8_constant>;
14071393
defm : MUBUFLoad_Pattern <BUFFER_LOAD_UBYTE_OFFSET, i16, az_extloadi8_constant>;
1408-
defm : MUBUFLoad_Pattern <BUFFER_LOAD_SBYTE_OFFSET, i16, mubuf_sextloadi8>;
1409-
defm : MUBUFLoad_Pattern <BUFFER_LOAD_UBYTE_OFFSET, i16, mubuf_az_extloadi8>;
1394+
defm : MUBUFLoad_Pattern <BUFFER_LOAD_SBYTE_OFFSET, i16, sextloadi8_global>;
1395+
defm : MUBUFLoad_Pattern <BUFFER_LOAD_UBYTE_OFFSET, i16, az_extloadi8_global>;
14101396

1411-
defm : MUBUFLoad_Pattern <BUFFER_LOAD_USHORT_OFFSET, i16, mubuf_load>;
1397+
defm : MUBUFLoad_Pattern <BUFFER_LOAD_USHORT_OFFSET, i16, load_global>;
14121398

14131399
} // End OtherPredicates = [Has16BitInsts]
14141400

0 commit comments

Comments
 (0)