From: Petar Avramovic Date: Mon, 1 Aug 2022 08:37:20 +0000 (+0200) Subject: [AMDGPU] gfx11 allow dlc for MUBUF atomics X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e8d260753e7ebd2d03141d21bafc952790747a8f;p=platform%2Fupstream%2Fllvm.git [AMDGPU] gfx11 allow dlc for MUBUF atomics Add MC support for dlc in gfx11 MUBUF atomic instructions. Differential Revision: https://reviews.llvm.org/D129075 --- diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td index 04dd3e9..8ad0c8e 100644 --- a/llvm/lib/Target/AMDGPU/BUFInstructions.td +++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td @@ -2078,6 +2078,12 @@ class MUBUF_Real_gfx11 op, MUBUF_Pseudo ps, let Inst{55} = ps.idxen; } +class Base_MUBUF_Real_Atomic_gfx11 op, MUBUF_Pseudo ps, + string real_name> : + MUBUF_Real_gfx11 { + let Inst{13} = cpol{CPolBit.DLC}; +} + class Base_MUBUF_Real_gfx6_gfx7_gfx10 op, MUBUF_Pseudo ps, int ef> : Base_MUBUF_Real_gfx6_gfx7_gfx10_gfx11 { let Inst{12} = ps.offen; @@ -2104,62 +2110,66 @@ class MUBUF_Real_gfx6_gfx7 op, MUBUF_Pseudo ps> : // MUBUF - GFX11. //===----------------------------------------------------------------------===// +// Shortcut to default Mnemonic from MUBUF_Pseudo. Hides the cast to the +// specific pseudo (bothen in this case) since any of them will work. +class get_MUBUF_ps { + string Mnemonic = !cast(name # "_BOTHEN").Mnemonic; +} + +// gfx11 instruction that accept both old and new assembler name. +class Pre_gfx11_MUBUF_Name : + MnemonicAlias, Requires<[isGFX11Plus]>; + +class MUBUF_Real_gfx11_impl op, string ps_name, string real_name> : + MUBUF_Real_gfx11(ps_name), real_name>; let AssemblerPredicate = isGFX11Only, DecoderNamespace = "GFX11" in multiclass MUBUF_Real_AllAddr_gfx11_Renamed_Impl op, string real_name> { - def _BOTHEN_gfx11 : - MUBUF_Real_gfx11(NAME#"_BOTHEN"), real_name>, - AtomicNoRet; - def _IDXEN_gfx11 : - MUBUF_Real_gfx11(NAME#"_IDXEN"), real_name>, - AtomicNoRet; - def _OFFEN_gfx11 : - MUBUF_Real_gfx11(NAME#"_OFFEN"), real_name>, - AtomicNoRet; - def _OFFSET_gfx11 : - MUBUF_Real_gfx11(NAME#"_OFFSET"), real_name>, - AtomicNoRet; + def _BOTHEN_gfx11 : MUBUF_Real_gfx11_impl; + def _IDXEN_gfx11 : MUBUF_Real_gfx11_impl; + def _OFFEN_gfx11 : MUBUF_Real_gfx11_impl; + def _OFFSET_gfx11 : MUBUF_Real_gfx11_impl; } -multiclass MUBUF_Real_AllAddr_gfx11_Impl op, MUBUF_Pseudo ps> : - MUBUF_Real_AllAddr_gfx11_Renamed_Impl; +// Non-renamed, non-atomic gfx11 mubuf instructions. multiclass MUBUF_Real_AllAddr_gfx11 op> : - MUBUF_Real_AllAddr_gfx11_Impl(NAME#"_BOTHEN")>; + MUBUF_Real_AllAddr_gfx11_Renamed_Impl.Mnemonic>; -class Pre_gfx11_MUBUF_Name : - MnemonicAlias, Requires<[isGFX11Plus]>; multiclass MUBUF_Real_AllAddr_gfx11_Renamed op, string real_name> : MUBUF_Real_AllAddr_gfx11_Renamed_Impl { - def : Pre_gfx11_MUBUF_Name(NAME#"_BOTHEN"), real_name>; + def : Pre_gfx11_MUBUF_Name.Mnemonic, real_name>; } +class MUBUF_Real_Atomic_gfx11_impl op, string ps_name, + string real_name> : + Base_MUBUF_Real_Atomic_gfx11(ps_name), real_name>; let AssemblerPredicate = isGFX11Only, DecoderNamespace = "GFX11" in -multiclass MUBUF_Real_Atomics_RTN_gfx11_Renamed op, string real_name> { - def _BOTHEN_RTN_gfx11 : - MUBUF_Real_gfx11(NAME#"_BOTHEN_RTN"), real_name>, - AtomicNoRet; - def _IDXEN_RTN_gfx11 : - MUBUF_Real_gfx11(NAME#"_IDXEN_RTN"), real_name>, - AtomicNoRet; - def _OFFEN_RTN_gfx11 : - MUBUF_Real_gfx11(NAME#"_OFFEN_RTN"), real_name>, - AtomicNoRet; - def _OFFSET_RTN_gfx11 : - MUBUF_Real_gfx11(NAME#"_OFFSET_RTN"), real_name>, - AtomicNoRet; -} - -multiclass MUBUF_Real_Atomics_RTN_gfx11_impl op, MUBUF_Pseudo ps> : - MUBUF_Real_Atomics_RTN_gfx11_Renamed; -multiclass MUBUF_Real_Atomics_RTN_gfx11 op> : - MUBUF_Real_Atomics_RTN_gfx11_impl(NAME#"_BOTHEN")>; - -multiclass MUBUF_Real_Atomics_gfx11 op> : - MUBUF_Real_AllAddr_gfx11, - MUBUF_Real_Atomics_RTN_gfx11; - -multiclass MUBUF_Real_Atomics_gfx11_Renamed op, string real_name> : - MUBUF_Real_AllAddr_gfx11_Renamed, - MUBUF_Real_Atomics_RTN_gfx11_Renamed; +multiclass MUBUF_Real_Atomic_gfx11_Renamed_impl op, bit is_return, + string real_name> { + defvar Rtn = !if(!eq(is_return, 1), "_RTN", ""); + def _BOTHEN#Rtn#_gfx11 : + MUBUF_Real_Atomic_gfx11_impl, + AtomicNoRet; + def _IDXEN#Rtn#_gfx11 : + MUBUF_Real_Atomic_gfx11_impl, + AtomicNoRet; + def _OFFEN#Rtn#_gfx11 : + MUBUF_Real_Atomic_gfx11_impl, + AtomicNoRet; + def _OFFSET#Rtn#_gfx11 : + MUBUF_Real_Atomic_gfx11_impl, + AtomicNoRet; +} + +// Non-renamed gfx11 mubuf atomic. +multiclass MUBUF_Real_Atomic_gfx11 op> : + MUBUF_Real_Atomic_gfx11_Renamed_impl.Mnemonic>, + MUBUF_Real_Atomic_gfx11_Renamed_impl.Mnemonic>; + +multiclass MUBUF_Real_Atomic_gfx11_Renamed op, string real_name> : + MUBUF_Real_Atomic_gfx11_Renamed_impl, + MUBUF_Real_Atomic_gfx11_Renamed_impl { + def : Pre_gfx11_MUBUF_Name.Mnemonic, real_name>; +} let AssemblerPredicate = isGFX11Only, DecoderNamespace = "GFX11" in { def BUFFER_GL0_INV_gfx11 : MUBUF_Real_gfx11<0x02B, BUFFER_GL0_INV>; @@ -2212,38 +2222,38 @@ defm BUFFER_STORE_FORMAT_X : MUBUF_Real_AllAddr_gfx11<0x004>; defm BUFFER_STORE_FORMAT_XY : MUBUF_Real_AllAddr_gfx11<0x005>; defm BUFFER_STORE_FORMAT_XYZ : MUBUF_Real_AllAddr_gfx11<0x006>; defm BUFFER_STORE_FORMAT_XYZW : MUBUF_Real_AllAddr_gfx11<0x007>; -defm BUFFER_ATOMIC_ADD_F32 : MUBUF_Real_Atomics_gfx11<0x056>; -defm BUFFER_ATOMIC_ADD : MUBUF_Real_Atomics_gfx11_Renamed<0x035, "buffer_atomic_add_u32">; -defm BUFFER_ATOMIC_ADD_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x043, "buffer_atomic_add_u64">; -defm BUFFER_ATOMIC_AND : MUBUF_Real_Atomics_gfx11_Renamed<0x03C, "buffer_atomic_and_b32">; -defm BUFFER_ATOMIC_AND_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x049, "buffer_atomic_and_b64">; -defm BUFFER_ATOMIC_CMPSWAP : MUBUF_Real_Atomics_gfx11_Renamed<0x034, "buffer_atomic_cmpswap_b32">; -defm BUFFER_ATOMIC_CMPSWAP_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x042, "buffer_atomic_cmpswap_b64">; -defm BUFFER_ATOMIC_FCMPSWAP : MUBUF_Real_Atomics_gfx11_Renamed<0x050, "buffer_atomic_cmpswap_f32">; -defm BUFFER_ATOMIC_CSUB : MUBUF_Real_Atomics_RTN_gfx11_Renamed<0x037, "buffer_atomic_csub_u32">; -def : MnemonicAlias<"buffer_atomic_csub", "buffer_atomic_csub_u32">, Requires<[isGFX11Plus]>; -defm BUFFER_ATOMIC_DEC : MUBUF_Real_Atomics_gfx11_Renamed<0x040, "buffer_atomic_dec_u32">; -defm BUFFER_ATOMIC_DEC_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x04D, "buffer_atomic_dec_u64">; -defm BUFFER_ATOMIC_INC : MUBUF_Real_Atomics_gfx11_Renamed<0x03F, "buffer_atomic_inc_u32">; -defm BUFFER_ATOMIC_INC_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x04C, "buffer_atomic_inc_u64">; -defm BUFFER_ATOMIC_FMAX : MUBUF_Real_Atomics_gfx11_Renamed<0x052, "buffer_atomic_max_f32">; -defm BUFFER_ATOMIC_SMAX : MUBUF_Real_Atomics_gfx11_Renamed<0x03A, "buffer_atomic_max_i32">; -defm BUFFER_ATOMIC_SMAX_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x047, "buffer_atomic_max_i64">; -defm BUFFER_ATOMIC_UMAX : MUBUF_Real_Atomics_gfx11_Renamed<0x03B, "buffer_atomic_max_u32">; -defm BUFFER_ATOMIC_UMAX_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x048, "buffer_atomic_max_u64">; -defm BUFFER_ATOMIC_FMIN : MUBUF_Real_Atomics_gfx11_Renamed<0x051, "buffer_atomic_min_f32">; -defm BUFFER_ATOMIC_SMIN : MUBUF_Real_Atomics_gfx11_Renamed<0x038, "buffer_atomic_min_i32">; -defm BUFFER_ATOMIC_SMIN_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x045, "buffer_atomic_min_i64">; -defm BUFFER_ATOMIC_UMIN : MUBUF_Real_Atomics_gfx11_Renamed<0x039, "buffer_atomic_min_u32">; -defm BUFFER_ATOMIC_UMIN_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x046, "buffer_atomic_min_u64">; -defm BUFFER_ATOMIC_OR : MUBUF_Real_Atomics_gfx11_Renamed<0x03D, "buffer_atomic_or_b32">; -defm BUFFER_ATOMIC_OR_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x04A, "buffer_atomic_or_b64">; -defm BUFFER_ATOMIC_SUB : MUBUF_Real_Atomics_gfx11_Renamed<0x036, "buffer_atomic_sub_u32">; -defm BUFFER_ATOMIC_SUB_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x044, "buffer_atomic_sub_u64">; -defm BUFFER_ATOMIC_SWAP : MUBUF_Real_Atomics_gfx11_Renamed<0x033, "buffer_atomic_swap_b32">; -defm BUFFER_ATOMIC_SWAP_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x041, "buffer_atomic_swap_b64">; -defm BUFFER_ATOMIC_XOR : MUBUF_Real_Atomics_gfx11_Renamed<0x03E, "buffer_atomic_xor_b32">; -defm BUFFER_ATOMIC_XOR_X2 : MUBUF_Real_Atomics_gfx11_Renamed<0x04B, "buffer_atomic_xor_b64">; +defm BUFFER_ATOMIC_ADD_F32 : MUBUF_Real_Atomic_gfx11<0x056>; +defm BUFFER_ATOMIC_ADD : MUBUF_Real_Atomic_gfx11_Renamed<0x035, "buffer_atomic_add_u32">; +defm BUFFER_ATOMIC_ADD_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x043, "buffer_atomic_add_u64">; +defm BUFFER_ATOMIC_AND : MUBUF_Real_Atomic_gfx11_Renamed<0x03C, "buffer_atomic_and_b32">; +defm BUFFER_ATOMIC_AND_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x049, "buffer_atomic_and_b64">; +defm BUFFER_ATOMIC_CMPSWAP : MUBUF_Real_Atomic_gfx11_Renamed<0x034, "buffer_atomic_cmpswap_b32">; +defm BUFFER_ATOMIC_CMPSWAP_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x042, "buffer_atomic_cmpswap_b64">; +defm BUFFER_ATOMIC_FCMPSWAP : MUBUF_Real_Atomic_gfx11_Renamed<0x050, "buffer_atomic_cmpswap_f32">; +defm BUFFER_ATOMIC_CSUB : MUBUF_Real_Atomic_gfx11_Renamed_impl<0x037, 1, "buffer_atomic_csub_u32">; +def : Pre_gfx11_MUBUF_Name<"buffer_atomic_csub", "buffer_atomic_csub_u32">; +defm BUFFER_ATOMIC_DEC : MUBUF_Real_Atomic_gfx11_Renamed<0x040, "buffer_atomic_dec_u32">; +defm BUFFER_ATOMIC_DEC_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x04D, "buffer_atomic_dec_u64">; +defm BUFFER_ATOMIC_INC : MUBUF_Real_Atomic_gfx11_Renamed<0x03F, "buffer_atomic_inc_u32">; +defm BUFFER_ATOMIC_INC_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x04C, "buffer_atomic_inc_u64">; +defm BUFFER_ATOMIC_FMAX : MUBUF_Real_Atomic_gfx11_Renamed<0x052, "buffer_atomic_max_f32">; +defm BUFFER_ATOMIC_SMAX : MUBUF_Real_Atomic_gfx11_Renamed<0x03A, "buffer_atomic_max_i32">; +defm BUFFER_ATOMIC_SMAX_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x047, "buffer_atomic_max_i64">; +defm BUFFER_ATOMIC_UMAX : MUBUF_Real_Atomic_gfx11_Renamed<0x03B, "buffer_atomic_max_u32">; +defm BUFFER_ATOMIC_UMAX_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x048, "buffer_atomic_max_u64">; +defm BUFFER_ATOMIC_FMIN : MUBUF_Real_Atomic_gfx11_Renamed<0x051, "buffer_atomic_min_f32">; +defm BUFFER_ATOMIC_SMIN : MUBUF_Real_Atomic_gfx11_Renamed<0x038, "buffer_atomic_min_i32">; +defm BUFFER_ATOMIC_SMIN_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x045, "buffer_atomic_min_i64">; +defm BUFFER_ATOMIC_UMIN : MUBUF_Real_Atomic_gfx11_Renamed<0x039, "buffer_atomic_min_u32">; +defm BUFFER_ATOMIC_UMIN_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x046, "buffer_atomic_min_u64">; +defm BUFFER_ATOMIC_OR : MUBUF_Real_Atomic_gfx11_Renamed<0x03D, "buffer_atomic_or_b32">; +defm BUFFER_ATOMIC_OR_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x04A, "buffer_atomic_or_b64">; +defm BUFFER_ATOMIC_SUB : MUBUF_Real_Atomic_gfx11_Renamed<0x036, "buffer_atomic_sub_u32">; +defm BUFFER_ATOMIC_SUB_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x044, "buffer_atomic_sub_u64">; +defm BUFFER_ATOMIC_SWAP : MUBUF_Real_Atomic_gfx11_Renamed<0x033, "buffer_atomic_swap_b32">; +defm BUFFER_ATOMIC_SWAP_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x041, "buffer_atomic_swap_b64">; +defm BUFFER_ATOMIC_XOR : MUBUF_Real_Atomic_gfx11_Renamed<0x03E, "buffer_atomic_xor_b32">; +defm BUFFER_ATOMIC_XOR_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x04B, "buffer_atomic_xor_b64">; //===----------------------------------------------------------------------===// // MUBUF - GFX10. diff --git a/llvm/test/MC/AMDGPU/gfx11_mubuf.s b/llvm/test/MC/AMDGPU/gfx11_mubuf.s index 858a691..fca0bab 100644 --- a/llvm/test/MC/AMDGPU/gfx11_mubuf.s +++ b/llvm/test/MC/AMDGPU/gfx11_mubuf.s @@ -2740,8 +2740,11 @@ buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xd4,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xd4,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xd4,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xd4,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0x03] @@ -2794,8 +2797,11 @@ buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x0c,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x0c,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x0c,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x0c,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xf0,0xe0,0x00,0x05,0x02,0x03] @@ -2848,8 +2854,11 @@ buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xf0,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xf0,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xf0,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xf0,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0x03] @@ -2902,8 +2911,11 @@ buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x24,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x24,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x24,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x24,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xd0,0xe0,0x00,0x05,0x02,0x03] @@ -2956,8 +2968,11 @@ buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xd0,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xd0,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xd0,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xd0,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0x03] @@ -3010,8 +3025,11 @@ buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 glc buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x08,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x08,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x08,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x08,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x40,0xe1,0x00,0x05,0x02,0x03] @@ -3064,8 +3082,11 @@ buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x40,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x40,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x40,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x40,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 // GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc @@ -3121,6 +3142,12 @@ buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc slc // GFX11: encoding: [0xff,0x5f,0xdc,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc dlc +// GFX11: encoding: [0xff,0x6f,0xdc,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xdc,0xe0,0x00,0x05,0x02,0x03] + buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0x03] @@ -3172,8 +3199,11 @@ buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x00,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x00,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x00,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x00,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03] @@ -3226,8 +3256,11 @@ buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x34,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x34,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x34,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x34,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xfc,0xe0,0x00,0x05,0x02,0x03] @@ -3280,8 +3313,11 @@ buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xfc,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xfc,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xfc,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xfc,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0x03] @@ -3334,8 +3370,11 @@ buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x30,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x30,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x30,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x30,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03] @@ -3388,8 +3427,11 @@ buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x48,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x48,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x48,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xe8,0xe0,0x00,0x05,0x02,0x03] @@ -3442,8 +3484,11 @@ buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xe8,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xe8,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xe8,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xe8,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0x03] @@ -3496,8 +3541,11 @@ buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x1c,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x1c,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x1c,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x1c,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xec,0xe0,0x00,0x05,0x02,0x03] @@ -3550,8 +3598,11 @@ buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xec,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xec,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xec,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xec,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0x03] @@ -3604,8 +3655,11 @@ buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x20,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x20,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x20,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x20,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x44,0xe1,0x00,0x05,0x02,0x03] @@ -3658,8 +3712,11 @@ buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x44,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x44,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x44,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x44,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xe0,0xe0,0x00,0x05,0x02,0x03] @@ -3712,8 +3769,11 @@ buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xe0,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xe0,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xe0,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xe0,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0x03] @@ -3766,8 +3826,11 @@ buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x14,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x14,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x14,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x14,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xe4,0xe0,0x00,0x05,0x02,0x03] @@ -3820,8 +3883,11 @@ buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xe4,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xe4,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xe4,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xe4,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0x03] @@ -3874,8 +3940,11 @@ buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x18,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x18,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x18,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x18,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xf4,0xe0,0x00,0x05,0x02,0x03] @@ -3928,8 +3997,11 @@ buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xf4,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xf4,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xf4,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xf4,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0x03] @@ -3982,8 +4054,11 @@ buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x28,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x28,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x28,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x28,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xd8,0xe0,0x00,0x05,0x02,0x03] @@ -4036,8 +4111,11 @@ buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xd8,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xd8,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xd8,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xd8,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0x03] @@ -4090,8 +4168,11 @@ buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x10,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x10,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x10,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x10,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xcc,0xe0,0x00,0x05,0x02,0x03] @@ -4144,8 +4225,11 @@ buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xcc,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xcc,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xcc,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xcc,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0x03] @@ -4198,8 +4282,11 @@ buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x04,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x04,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x04,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x04,0xe1,0x00,0x05,0x02,0x03] buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0xf8,0xe0,0x00,0x05,0x02,0x03] @@ -4252,8 +4339,11 @@ buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 glc buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0xf8,0xe0,0x00,0x05,0x02,0x03] -buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0xf8,0xe0,0x00,0x05,0x02,0x03] +buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0xf8,0xe0,0x00,0x05,0x02,0x03] + +buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0xf8,0xe0,0x00,0x05,0x02,0x03] buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 // GFX11: encoding: [0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0x03] @@ -4306,5 +4396,8 @@ buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 glc buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 slc // GFX11: encoding: [0xff,0x1f,0x2c,0xe1,0x00,0x05,0x02,0x03] -buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc -// GFX11: encoding: [0xff,0x5f,0x2c,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc +// GFX11: encoding: [0xff,0x2f,0x2c,0xe1,0x00,0x05,0x02,0x03] + +buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc +// GFX11: encoding: [0xff,0x7f,0x2c,0xe1,0x00,0x05,0x02,0x03] diff --git a/llvm/test/MC/Disassembler/AMDGPU/mubuf_dasm_gfx11.txt b/llvm/test/MC/Disassembler/AMDGPU/mubuf_dasm_gfx11.txt index 1a2032d..752a603 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/mubuf_dasm_gfx11.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/mubuf_dasm_gfx11.txt @@ -2733,8 +2733,11 @@ # GFX11: buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xd4,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xd4,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xd4,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xd4,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xd4,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xd4,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xd4,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xd4,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0x03 @@ -2787,8 +2790,11 @@ # GFX11: buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x0c,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x0c,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x0c,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x0c,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x0c,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x0c,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x0c,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x0c,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xf0,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xf0,0xe0,0x00,0x05,0x02,0x03 @@ -2841,8 +2847,11 @@ # GFX11: buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xf0,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xf0,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xf0,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xf0,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xf0,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xf0,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xf0,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xf0,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0x03 @@ -2895,8 +2904,11 @@ # GFX11: buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x24,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x24,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x24,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x24,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x24,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x24,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x24,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x24,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xd0,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xd0,0xe0,0x00,0x05,0x02,0x03 @@ -2949,8 +2961,11 @@ # GFX11: buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xd0,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xd0,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xd0,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xd0,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xd0,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xd0,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xd0,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xd0,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0x03 @@ -3003,8 +3018,11 @@ # GFX11: buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x08,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x08,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x08,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x08,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x08,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x08,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x08,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x08,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x40,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x40,0xe1,0x00,0x05,0x02,0x03 @@ -3057,8 +3075,11 @@ # GFX11: buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x40,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x40,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x40,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x40,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x40,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x40,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x40,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x40,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc ; encoding: [0xff,0x4f,0xdc,0xe0,0x00,0x05,0x02,0x03] 0xff,0x4f,0xdc,0xe0,0x00,0x05,0x02,0x03 @@ -3111,6 +3132,12 @@ # GFX11: buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xdc,0xe0,0x00,0x05,0x02,0x03] 0xff,0x5f,0xdc,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc dlc ; encoding: [0xff,0x6f,0xdc,0xe0,0x00,0x05,0x02,0x03] +0xff,0x6f,0xdc,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_csub_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xdc,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xdc,0xe0,0x00,0x05,0x02,0x03 + # GFX11: buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0x03 @@ -3162,8 +3189,11 @@ # GFX11: buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x00,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x00,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x00,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x00,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x00,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x00,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x00,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x00,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03 @@ -3216,8 +3246,11 @@ # GFX11: buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x34,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x34,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x34,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x34,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x34,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x34,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x34,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x34,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xfc,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xfc,0xe0,0x00,0x05,0x02,0x03 @@ -3270,8 +3303,11 @@ # GFX11: buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xfc,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xfc,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xfc,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xfc,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xfc,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xfc,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xfc,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xfc,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0x03 @@ -3324,8 +3360,11 @@ # GFX11: buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x30,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x30,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x30,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x30,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x30,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x30,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x30,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x30,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03 @@ -3378,8 +3417,11 @@ # GFX11: buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x48,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x48,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x48,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x48,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x48,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x48,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x48,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xe8,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xe8,0xe0,0x00,0x05,0x02,0x03 @@ -3432,8 +3474,11 @@ # GFX11: buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xe8,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xe8,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xe8,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xe8,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xe8,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xe8,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xe8,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xe8,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0x03 @@ -3486,8 +3531,11 @@ # GFX11: buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x1c,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x1c,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x1c,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x1c,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x1c,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x1c,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x1c,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x1c,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xec,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xec,0xe0,0x00,0x05,0x02,0x03 @@ -3540,8 +3588,11 @@ # GFX11: buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xec,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xec,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xec,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xec,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xec,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xec,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xec,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xec,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0x03 @@ -3594,8 +3645,11 @@ # GFX11: buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x20,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x20,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x20,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x20,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x20,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x20,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x20,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x20,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x44,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x44,0xe1,0x00,0x05,0x02,0x03 @@ -3648,8 +3702,11 @@ # GFX11: buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x44,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x44,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x44,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x44,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x44,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x44,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x44,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x44,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xe0,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xe0,0xe0,0x00,0x05,0x02,0x03 @@ -3702,8 +3759,11 @@ # GFX11: buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xe0,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xe0,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xe0,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xe0,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xe0,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xe0,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xe0,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xe0,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0x03 @@ -3756,8 +3816,11 @@ # GFX11: buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x14,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x14,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x14,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x14,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x14,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x14,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x14,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x14,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xe4,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xe4,0xe0,0x00,0x05,0x02,0x03 @@ -3810,8 +3873,11 @@ # GFX11: buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xe4,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xe4,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xe4,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xe4,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xe4,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xe4,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xe4,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xe4,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0x03 @@ -3864,8 +3930,11 @@ # GFX11: buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x18,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x18,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x18,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x18,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x18,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x18,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x18,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x18,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xf4,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xf4,0xe0,0x00,0x05,0x02,0x03 @@ -3918,8 +3987,11 @@ # GFX11: buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xf4,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xf4,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xf4,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xf4,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xf4,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xf4,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xf4,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xf4,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0x03 @@ -3972,8 +4044,11 @@ # GFX11: buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x28,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x28,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x28,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x28,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x28,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x28,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x28,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x28,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xd8,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xd8,0xe0,0x00,0x05,0x02,0x03 @@ -4026,8 +4101,11 @@ # GFX11: buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xd8,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xd8,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xd8,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xd8,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xd8,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xd8,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xd8,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xd8,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0x03 @@ -4080,8 +4158,11 @@ # GFX11: buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x10,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x10,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x10,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x10,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x10,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x10,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x10,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x10,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xcc,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xcc,0xe0,0x00,0x05,0x02,0x03 @@ -4134,8 +4215,11 @@ # GFX11: buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xcc,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xcc,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xcc,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xcc,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xcc,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xcc,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xcc,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xcc,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0x03 @@ -4188,8 +4272,11 @@ # GFX11: buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x04,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x04,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x04,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x04,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x04,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x04,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x04,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x04,0xe1,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xf8,0xe0,0x00,0x05,0x02,0x03] 0xff,0x0f,0xf8,0xe0,0x00,0x05,0x02,0x03 @@ -4242,8 +4329,11 @@ # GFX11: buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0xf8,0xe0,0x00,0x05,0x02,0x03] 0xff,0x1f,0xf8,0xe0,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0xf8,0xe0,0x00,0x05,0x02,0x03] -0xff,0x5f,0xf8,0xe0,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0xf8,0xe0,0x00,0x05,0x02,0x03] +0xff,0x2f,0xf8,0xe0,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0xf8,0xe0,0x00,0x05,0x02,0x03] +0xff,0x7f,0xf8,0xe0,0x00,0x05,0x02,0x03 # GFX11: buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0x03] 0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0x03 @@ -4296,6 +4386,9 @@ # GFX11: buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x1f,0x2c,0xe1,0x00,0x05,0x02,0x03] 0xff,0x1f,0x2c,0xe1,0x00,0x05,0x02,0x03 -# GFX11: buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc ; encoding: [0xff,0x5f,0x2c,0xe1,0x00,0x05,0x02,0x03] -0xff,0x5f,0x2c,0xe1,0x00,0x05,0x02,0x03 +# GFX11: buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 dlc ; encoding: [0xff,0x2f,0x2c,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x2c,0xe1,0x00,0x05,0x02,0x03 + +# GFX11: buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 glc slc dlc ; encoding: [0xff,0x7f,0x2c,0xe1,0x00,0x05,0x02,0x03] +0xff,0x7f,0x2c,0xe1,0x00,0x05,0x02,0x03