@@ -2301,7 +2301,8 @@ class MUBUF_Real_gfx11<bits<8> op, MUBUF_Pseudo ps,
23012301 string real_name = ps.Mnemonic> :
23022302 Base_MUBUF_Real_gfx6_gfx7_gfx10_gfx11<ps, SIEncodingFamily.GFX11, real_name> {
23032303 let Inst{12} = !if(ps.has_slc, cpol{CPolBit.SLC}, ?);
2304- let Inst{13} = !if(ps.has_dlc, cpol{CPolBit.DLC}, ps.dlc_value);
2304+ // In GFX11 dlc is applicable to all loads/stores/atomics.
2305+ let Inst{13} = !if(!or(ps.mayLoad, ps.mayStore), cpol{CPolBit.DLC}, ps.dlc_value);
23052306 let Inst{14} = !if(ps.has_glc, cpol{CPolBit.GLC}, ps.glc_value);
23062307 let Inst{25-18} = op;
23072308 let Inst{53} = ps.tfe;
@@ -2311,12 +2312,6 @@ class MUBUF_Real_gfx11<bits<8> op, MUBUF_Pseudo ps,
23112312 let DecoderNamespace = "GFX11";
23122313}
23132314
2314- class Base_MUBUF_Real_Atomic_gfx11<bits<8> op, MUBUF_Pseudo ps,
2315- string real_name> :
2316- MUBUF_Real_gfx11<op, ps, real_name> {
2317- let Inst{13} = cpol{CPolBit.DLC};
2318- }
2319-
23202315class Base_MUBUF_Real_gfx6_gfx7_gfx10<bits<7> op, MUBUF_Pseudo ps, int ef> :
23212316 Base_MUBUF_Real_gfx6_gfx7_gfx10_gfx11<ps, ef> {
23222317 let Inst{12} = ps.offen;
@@ -2499,7 +2494,7 @@ multiclass MUBUF_Real_AllAddr_gfx11_gfx12_Renamed<bits<8> op, string real_name>
24992494
25002495class MUBUF_Real_Atomic_gfx11_impl<bits<8> op, string ps_name,
25012496 string real_name> :
2502- Base_MUBUF_Real_Atomic_gfx11 <op, !cast<MUBUF_Pseudo>(ps_name), real_name>;
2497+ MUBUF_Real_gfx11 <op, !cast<MUBUF_Pseudo>(ps_name), real_name>;
25032498
25042499class MUBUF_Real_Atomic_gfx12_impl<bits<8> op, string ps_name,
25052500 string real_name> :
0 commit comments