@@ -17,20 +17,6 @@ def MUBUFOffset : ComplexPattern<i64, 7, "SelectMUBUFOffset">;
17
17
def MUBUFOffsetNoGLC : ComplexPattern<i64, 3, "SelectMUBUFOffset">;
18
18
def MUBUFOffsetAtomic : ComplexPattern<i64, 4, "SelectMUBUFOffset">;
19
19
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
-
34
20
def BUFAddrKind {
35
21
int Offset = 0;
36
22
int OffEn = 1;
@@ -833,28 +819,28 @@ let SubtargetPredicate = HasPackedD16VMem, D16Buf = 1 in {
833
819
} // End HasPackedD16VMem.
834
820
835
821
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
837
823
>;
838
824
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
840
826
>;
841
827
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
843
829
>;
844
830
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
846
832
>;
847
833
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
849
835
>;
850
836
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
852
838
>;
853
839
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
855
841
>;
856
842
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
858
844
>;
859
845
860
846
// This is not described in AMD documentation,
@@ -1387,8 +1373,8 @@ def : MUBUFLoad_PatternADDR64 <BUFFER_LOAD_UBYTE_ADDR64, i32, az_extloadi8_const
1387
1373
def : MUBUFLoad_PatternADDR64 <BUFFER_LOAD_SSHORT_ADDR64, i32, sextloadi16_constant>;
1388
1374
def : MUBUFLoad_PatternADDR64 <BUFFER_LOAD_USHORT_ADDR64, i32, az_extloadi16_constant>;
1389
1375
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 >;
1392
1378
} // End SubtargetPredicate = isGFX6GFX7
1393
1379
1394
1380
multiclass MUBUFLoad_Pattern <MUBUF_Pseudo Instr_OFFSET, ValueType vt,
@@ -1405,10 +1391,10 @@ let OtherPredicates = [Has16BitInsts] in {
1405
1391
1406
1392
defm : MUBUFLoad_Pattern <BUFFER_LOAD_SBYTE_OFFSET, i16, sextloadi8_constant>;
1407
1393
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 >;
1410
1396
1411
- defm : MUBUFLoad_Pattern <BUFFER_LOAD_USHORT_OFFSET, i16, mubuf_load >;
1397
+ defm : MUBUFLoad_Pattern <BUFFER_LOAD_USHORT_OFFSET, i16, load_global >;
1412
1398
1413
1399
} // End OtherPredicates = [Has16BitInsts]
1414
1400
0 commit comments