1// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -show-encoding %s | FileCheck --check-prefix=GFX11 %s 2 3buffer_load_dword v5, off, s[8:11], s3 offset:4095 4// GFX11: buffer_load_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x50,0xe0,0x00,0x05,0x02,0x03] 5 6buffer_load_dwordx2 v[5:6], off, s[8:11], s3 offset:4095 7// GFX11: buffer_load_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x54,0xe0,0x00,0x05,0x02,0x03] 8 9buffer_load_dwordx3 v[5:7], off, s[8:11], s3 offset:4095 10// GFX11: buffer_load_b96 v[5:7], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x58,0xe0,0x00,0x05,0x02,0x03] 11 12buffer_load_dwordx4 v[5:8], off, s[8:11], s3 offset:4095 13// GFX11: buffer_load_b128 v[5:8], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x5c,0xe0,0x00,0x05,0x02,0x03] 14 15buffer_load_short_d16 v5, off, s[8:11], s3 offset:4095 16// GFX11: buffer_load_d16_b16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x80,0xe0,0x00,0x05,0x02,0x03] 17 18buffer_load_format_d16_x v5, off, s[8:11], s3 offset:4095 19// GFX11: buffer_load_d16_format_x v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x20,0xe0,0x00,0x05,0x02,0x03] 20 21buffer_load_format_d16_xy v5, off, s[8:11], s3 offset:4095 22// GFX11: buffer_load_d16_format_xy v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x24,0xe0,0x00,0x05,0x02,0x03] 23 24buffer_load_format_d16_xyz v[5:6], off, s[8:11], s3 offset:4095 25// GFX11: buffer_load_d16_format_xyz v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x28,0xe0,0x00,0x05,0x02,0x03] 26 27buffer_load_format_d16_xyzw v[5:6], off, s[8:11], s3 offset:4095 28// GFX11: buffer_load_d16_format_xyzw v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x2c,0xe0,0x00,0x05,0x02,0x03] 29 30buffer_load_short_d16_hi v5, off, s[8:11], s3 offset:4095 31// GFX11: buffer_load_d16_hi_b16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x8c,0xe0,0x00,0x05,0x02,0x03] 32 33buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 34// GFX11: buffer_load_d16_hi_format_x v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x98,0xe0,0x00,0x05,0x02,0x03] 35 36buffer_load_sbyte_d16_hi v5, off, s[8:11], s3 offset:4095 37// GFX11: buffer_load_d16_hi_i8 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x88,0xe0,0x00,0x05,0x02,0x03] 38 39buffer_load_ubyte_d16_hi v5, off, s[8:11], s3 offset:4095 40// GFX11: buffer_load_d16_hi_u8 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x84,0xe0,0x00,0x05,0x02,0x03] 41 42buffer_load_sbyte_d16 v5, off, s[8:11], s3 offset:4095 43// GFX11: buffer_load_d16_i8 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x7c,0xe0,0x00,0x05,0x02,0x03] 44 45buffer_load_ubyte_d16 v5, off, s[8:11], s3 offset:4095 46// GFX11: buffer_load_d16_u8 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x78,0xe0,0x00,0x05,0x02,0x03] 47 48buffer_load_sbyte v5, off, s[8:11], s3 offset:4095 49// GFX11: buffer_load_i8 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x44,0xe0,0x00,0x05,0x02,0x03] 50 51buffer_load_sshort v5, off, s[8:11], s3 offset:4095 52// GFX11: buffer_load_i16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x4c,0xe0,0x00,0x05,0x02,0x03] 53 54buffer_load_ubyte v5, off, s[8:11], s3 offset:4095 55// GFX11: buffer_load_u8 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x40,0xe0,0x00,0x05,0x02,0x03] 56 57buffer_load_ushort v5, off, s[8:11], s3 offset:4095 58// GFX11: buffer_load_u16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe0,0x00,0x05,0x02,0x03] 59 60buffer_store_byte v1, off, s[12:15], s4 offset:4095 61// GFX11: buffer_store_b8 v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x60,0xe0,0x00,0x01,0x03,0x04] 62 63buffer_store_short v1, off, s[12:15], s4 offset:4095 64// GFX11: buffer_store_b16 v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x64,0xe0,0x00,0x01,0x03,0x04] 65 66buffer_store_dword v1, off, s[12:15], s4 offset:4095 67// GFX11: buffer_store_b32 v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x68,0xe0,0x00,0x01,0x03,0x04] 68 69buffer_store_dwordx2 v[1:2], off, s[12:15], s4 offset:4095 70// GFX11: buffer_store_b64 v[1:2], off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x6c,0xe0,0x00,0x01,0x03,0x04] 71 72buffer_store_dwordx3 v[1:3], off, s[12:15], s4 offset:4095 73// GFX11: buffer_store_b96 v[1:3], off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x70,0xe0,0x00,0x01,0x03,0x04] 74 75buffer_store_dwordx4 v[1:4], off, s[12:15], s4 offset:4095 76// GFX11: buffer_store_b128 v[1:4], off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x74,0xe0,0x00,0x01,0x03,0x04] 77 78buffer_store_format_d16_x v1, off, s[12:15], s4 offset:4095 79// GFX11: buffer_store_d16_format_x v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x30,0xe0,0x00,0x01,0x03,0x04] 80 81buffer_store_format_d16_xy v1, off, s[12:15], s4 offset:4095 82// GFX11: buffer_store_d16_format_xy v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe0,0x00,0x01,0x03,0x04] 83 84buffer_store_format_d16_xyz v[1:2], off, s[12:15], s4 offset:4095 85// GFX11: buffer_store_d16_format_xyz v[1:2], off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe0,0x00,0x01,0x03,0x04] 86 87buffer_store_format_d16_xyzw v[1:2], off, s[12:15], s4 offset:4095 88// GFX11: buffer_store_d16_format_xyzw v[1:2], off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x3c,0xe0,0x00,0x01,0x03,0x04] 89 90buffer_store_byte_d16_hi v1, off, s[12:15], s4 offset:4095 91// GFX11: buffer_store_d16_hi_b8 v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x90,0xe0,0x00,0x01,0x03,0x04] 92 93buffer_store_short_d16_hi v1, off, s[12:15], s4 offset:4095 94// GFX11: buffer_store_d16_hi_b16 v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x94,0xe0,0x00,0x01,0x03,0x04] 95 96buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 97// GFX11: buffer_store_d16_hi_format_x v1, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x9c,0xe0,0x00,0x01,0x03,0x04] 98 99buffer_atomic_add v5, off, s[8:11], s3 offset:4095 100// GFX11: buffer_atomic_add_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xd4,0xe0,0x00,0x05,0x02,0x03] 101 102buffer_atomic_add_x2 v[5:6], off, s[8:11], s3 offset:4095 103// GFX11: buffer_atomic_add_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0x03] 104 105buffer_atomic_and v5, off, s[8:11], s3 offset:4095 106// GFX11: buffer_atomic_and_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xf0,0xe0,0x00,0x05,0x02,0x03] 107 108buffer_atomic_and_x2 v[5:6], off, s[8:11], s3 offset:4095 109// GFX11: buffer_atomic_and_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0x03] 110 111buffer_atomic_cmpswap v[5:6], off, s[8:11], s3 offset:4095 112// GFX11: buffer_atomic_cmpswap_b32 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xd0,0xe0,0x00,0x05,0x02,0x03] 113 114buffer_atomic_cmpswap_x2 v[5:8], off, s[8:11], s3 offset:4095 115// GFX11: buffer_atomic_cmpswap_b64 v[5:8], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0x03] 116 117buffer_atomic_fcmpswap v[5:6], off, s[8:11], s3 offset:4095 118// GFX11: buffer_atomic_cmpswap_f32 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x40,0xe1,0x00,0x05,0x02,0x03] 119 120buffer_atomic_csub v255, off, s[8:11], s3 offset:4095 glc 121// GFX11: buffer_atomic_csub_u32 v255, off, s[8:11], s3 offset:4095 glc ; encoding: [0xff,0x4f,0xdc,0xe0,0x00,0xff,0x02,0x03] 122 123buffer_atomic_dec v5, off, s[8:11], s3 offset:4095 124// GFX11: buffer_atomic_dec_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0x03] 125 126buffer_atomic_dec_x2 v[5:6], off, s[8:11], s3 offset:4095 127// GFX11: buffer_atomic_dec_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03] 128 129buffer_atomic_inc v5, off, s[8:11], s3 offset:4095 130// GFX11: buffer_atomic_inc_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xfc,0xe0,0x00,0x05,0x02,0x03] 131 132buffer_atomic_inc_x2 v[5:6], off, s[8:11], s3 offset:4095 133// GFX11: buffer_atomic_inc_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0x03] 134 135buffer_atomic_fmax v5, off, s[8:11], s3 offset:4095 136// GFX11: buffer_atomic_max_f32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03] 137 138buffer_atomic_smax v5, off, s[8:11], s3 offset:4095 139// GFX11: buffer_atomic_max_i32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xe8,0xe0,0x00,0x05,0x02,0x03] 140 141buffer_atomic_smax_x2 v[5:6], off, s[8:11], s3 offset:4095 142// GFX11: buffer_atomic_max_i64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0x03] 143 144buffer_atomic_umax v5, off, s[8:11], s3 offset:4095 145// GFX11: buffer_atomic_max_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xec,0xe0,0x00,0x05,0x02,0x03] 146 147buffer_atomic_umax_x2 v[5:6], off, s[8:11], s3 offset:4095 148// GFX11: buffer_atomic_max_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0x03] 149 150buffer_atomic_fmin v5, off, s[8:11], s3 offset:4095 151// GFX11: buffer_atomic_min_f32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x44,0xe1,0x00,0x05,0x02,0x03] 152 153buffer_atomic_smin v5, off, s[8:11], s3 offset:4095 154// GFX11: buffer_atomic_min_i32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xe0,0xe0,0x00,0x05,0x02,0x03] 155 156buffer_atomic_smin_x2 v[5:6], off, s[8:11], s3 offset:4095 157// GFX11: buffer_atomic_min_i64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0x03] 158 159buffer_atomic_umin v5, off, s[8:11], s3 offset:4095 160// GFX11: buffer_atomic_min_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xe4,0xe0,0x00,0x05,0x02,0x03] 161 162buffer_atomic_umin_x2 v[5:6], off, s[8:11], s3 offset:4095 163// GFX11: buffer_atomic_min_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0x03] 164 165buffer_atomic_or v5, off, s[8:11], s3 offset:4095 166// GFX11: buffer_atomic_or_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xf4,0xe0,0x00,0x05,0x02,0x03] 167 168buffer_atomic_or_x2 v[5:6], off, s[8:11], s3 offset:4095 169// GFX11: buffer_atomic_or_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0x03] 170 171buffer_atomic_sub v5, off, s[8:11], s3 offset:4095 172// GFX11: buffer_atomic_sub_u32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xd8,0xe0,0x00,0x05,0x02,0x03] 173 174buffer_atomic_sub_x2 v[5:6], off, s[8:11], s3 offset:4095 175// GFX11: buffer_atomic_sub_u64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0x03] 176 177buffer_atomic_swap v5, off, s[8:11], s3 offset:4095 178// GFX11: buffer_atomic_swap_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xcc,0xe0,0x00,0x05,0x02,0x03] 179 180buffer_atomic_swap_x2 v[5:6], off, s[8:11], s3 offset:4095 181// GFX11: buffer_atomic_swap_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0x03] 182 183buffer_atomic_xor v5, off, s[8:11], s3 offset:4095 184// GFX11: buffer_atomic_xor_b32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0xf8,0xe0,0x00,0x05,0x02,0x03] 185 186buffer_atomic_xor_x2 v[5:6], off, s[8:11], s3 offset:4095 187// GFX11: buffer_atomic_xor_b64 v[5:6], off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0x03] 188