brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.8 KiB · 4a375c2 Raw
428 lines · plain
1// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefix=GFX10 %s2// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefix=GFX10 %s3 4//===----------------------------------------------------------------------===//5// ENC_FLAT.6//===----------------------------------------------------------------------===//7 8flat_load_ubyte v5, v[1:2]9// GFX10: encoding: [0x00,0x00,0x20,0xdc,0x01,0x00,0x7d,0x05]10 11flat_load_sbyte v5, v[1:2]12// GFX10: encoding: [0x00,0x00,0x24,0xdc,0x01,0x00,0x7d,0x05]13 14flat_load_ushort v5, v[1:2]15// GFX10: encoding: [0x00,0x00,0x28,0xdc,0x01,0x00,0x7d,0x05]16 17flat_load_sshort v5, v[1:2]18// GFX10: encoding: [0x00,0x00,0x2c,0xdc,0x01,0x00,0x7d,0x05]19 20flat_load_dword v5, v[1:2]21// GFX10: encoding: [0x00,0x00,0x30,0xdc,0x01,0x00,0x7d,0x05]22 23flat_load_dwordx2 v[5:6], v[1:2]24// GFX10: encoding: [0x00,0x00,0x34,0xdc,0x01,0x00,0x7d,0x05]25 26flat_load_dwordx3 v[5:7], v[1:2]27// GFX10: encoding: [0x00,0x00,0x3c,0xdc,0x01,0x00,0x7d,0x05]28 29flat_load_dwordx4 v[5:8], v[1:2]30// GFX10: encoding: [0x00,0x00,0x38,0xdc,0x01,0x00,0x7d,0x05]31 32flat_store_byte v[1:2], v233// GFX10: encoding: [0x00,0x00,0x60,0xdc,0x01,0x02,0x7d,0x00]34 35flat_store_short v[1:2], v236// GFX10: encoding: [0x00,0x00,0x68,0xdc,0x01,0x02,0x7d,0x00]37 38flat_store_dword v[1:2], v239// GFX10: encoding: [0x00,0x00,0x70,0xdc,0x01,0x02,0x7d,0x00]40 41flat_store_dwordx2 v[1:2], v[2:3]42// GFX10: encoding: [0x00,0x00,0x74,0xdc,0x01,0x02,0x7d,0x00]43 44flat_store_dwordx3 v[1:2], v[2:4]45// GFX10: encoding: [0x00,0x00,0x7c,0xdc,0x01,0x02,0x7d,0x00]46 47flat_store_dwordx4 v[1:2], v[2:5]48// GFX10: encoding: [0x00,0x00,0x78,0xdc,0x01,0x02,0x7d,0x00]49 50flat_atomic_swap v[1:2], v251// GFX10: encoding: [0x00,0x00,0xc0,0xdc,0x01,0x02,0x7d,0x00]52 53flat_atomic_cmpswap v[1:2], v[2:3]54// GFX10: encoding: [0x00,0x00,0xc4,0xdc,0x01,0x02,0x7d,0x00]55 56flat_atomic_add v[1:2], v257// GFX10: encoding: [0x00,0x00,0xc8,0xdc,0x01,0x02,0x7d,0x00]58 59flat_atomic_sub v[1:2], v260// GFX10: encoding: [0x00,0x00,0xcc,0xdc,0x01,0x02,0x7d,0x00]61 62flat_atomic_smin v[1:2], v263// GFX10: encoding: [0x00,0x00,0xd4,0xdc,0x01,0x02,0x7d,0x00]64 65flat_atomic_umin v[1:2], v266// GFX10: encoding: [0x00,0x00,0xd8,0xdc,0x01,0x02,0x7d,0x00]67 68flat_atomic_smax v[1:2], v269// GFX10: encoding: [0x00,0x00,0xdc,0xdc,0x01,0x02,0x7d,0x00]70 71flat_atomic_umax v[1:2], v272// GFX10: encoding: [0x00,0x00,0xe0,0xdc,0x01,0x02,0x7d,0x00]73 74flat_atomic_and v[1:2], v275// GFX10: encoding: [0x00,0x00,0xe4,0xdc,0x01,0x02,0x7d,0x00]76 77flat_atomic_or v[1:2], v278// GFX10: encoding: [0x00,0x00,0xe8,0xdc,0x01,0x02,0x7d,0x00]79 80flat_atomic_xor v[1:2], v281// GFX10: encoding: [0x00,0x00,0xec,0xdc,0x01,0x02,0x7d,0x00]82 83flat_atomic_inc v[1:2], v284// GFX10: encoding: [0x00,0x00,0xf0,0xdc,0x01,0x02,0x7d,0x00]85 86flat_atomic_dec v[1:2], v287// GFX10: encoding: [0x00,0x00,0xf4,0xdc,0x01,0x02,0x7d,0x00]88 89flat_atomic_swap_x2 v[1:2], v[2:3]90// GFX10: encoding: [0x00,0x00,0x40,0xdd,0x01,0x02,0x7d,0x00]91 92flat_atomic_cmpswap_x2 v[1:2], v[2:5]93// GFX10: encoding: [0x00,0x00,0x44,0xdd,0x01,0x02,0x7d,0x00]94 95flat_atomic_add_x2 v[1:2], v[2:3]96// GFX10: encoding: [0x00,0x00,0x48,0xdd,0x01,0x02,0x7d,0x00]97 98flat_atomic_sub_x2 v[1:2], v[2:3]99// GFX10: encoding: [0x00,0x00,0x4c,0xdd,0x01,0x02,0x7d,0x00]100 101flat_atomic_smin_x2 v[1:2], v[2:3]102// GFX10: encoding: [0x00,0x00,0x54,0xdd,0x01,0x02,0x7d,0x00]103 104flat_atomic_umin_x2 v[1:2], v[2:3]105// GFX10: encoding: [0x00,0x00,0x58,0xdd,0x01,0x02,0x7d,0x00]106 107flat_atomic_smax_x2 v[1:2], v[2:3]108// GFX10: encoding: [0x00,0x00,0x5c,0xdd,0x01,0x02,0x7d,0x00]109 110flat_atomic_umax_x2 v[1:2], v[2:3]111// GFX10: encoding: [0x00,0x00,0x60,0xdd,0x01,0x02,0x7d,0x00]112 113flat_atomic_and_x2 v[1:2], v[2:3]114// GFX10: encoding: [0x00,0x00,0x64,0xdd,0x01,0x02,0x7d,0x00]115 116flat_atomic_or_x2 v[1:2], v[2:3]117// GFX10: encoding: [0x00,0x00,0x68,0xdd,0x01,0x02,0x7d,0x00]118 119flat_atomic_xor_x2 v[1:2], v[2:3]120// GFX10: encoding: [0x00,0x00,0x6c,0xdd,0x01,0x02,0x7d,0x00]121 122flat_atomic_inc_x2 v[1:2], v[2:3]123// GFX10: encoding: [0x00,0x00,0x70,0xdd,0x01,0x02,0x7d,0x00]124 125flat_atomic_dec_x2 v[1:2], v[2:3]126// GFX10: encoding: [0x00,0x00,0x74,0xdd,0x01,0x02,0x7d,0x00]127 128//===----------------------------------------------------------------------===//129// ENC_FLAT: dlc support for atomics.130//===----------------------------------------------------------------------===//131 132flat_atomic_add v[1:2], v2 dlc133// GFX10: [0x00,0x10,0xc8,0xdc,0x01,0x02,0x7d,0x00]134 135flat_atomic_add_x2 v[1:2], v[2:3] dlc136// GFX10: [0x00,0x10,0x48,0xdd,0x01,0x02,0x7d,0x00]137 138flat_atomic_and v[1:2], v2 dlc139// GFX10: [0x00,0x10,0xe4,0xdc,0x01,0x02,0x7d,0x00]140 141flat_atomic_and_x2 v[1:2], v[2:3] dlc142// GFX10: [0x00,0x10,0x64,0xdd,0x01,0x02,0x7d,0x00]143 144flat_atomic_cmpswap v[1:2], v[2:3] dlc145// GFX10: [0x00,0x10,0xc4,0xdc,0x01,0x02,0x7d,0x00]146 147flat_atomic_cmpswap_x2 v[1:2], v[2:5] dlc148// GFX10: [0x00,0x10,0x44,0xdd,0x01,0x02,0x7d,0x00]149 150flat_atomic_dec v[1:2], v2 dlc151// GFX10: [0x00,0x10,0xf4,0xdc,0x01,0x02,0x7d,0x00]152 153flat_atomic_dec_x2 v[1:2], v[2:3] dlc154// GFX10: [0x00,0x10,0x74,0xdd,0x01,0x02,0x7d,0x00]155 156flat_atomic_fcmpswap v[1:2], v[2:3] dlc157// GFX10: [0x00,0x10,0xf8,0xdc,0x01,0x02,0x7d,0x00]158 159flat_atomic_fcmpswap_x2 v[1:2], v[2:5] dlc160// GFX10: [0x00,0x10,0x78,0xdd,0x01,0x02,0x7d,0x00]161 162flat_atomic_fmax v[1:2], v2 dlc163// GFX10: [0x00,0x10,0x00,0xdd,0x01,0x02,0x7d,0x00]164 165flat_atomic_fmax_x2 v[1:2], v[2:3] dlc166// GFX10: [0x00,0x10,0x80,0xdd,0x01,0x02,0x7d,0x00]167 168flat_atomic_fmin v[1:2], v2 dlc169// GFX10: [0x00,0x10,0xfc,0xdc,0x01,0x02,0x7d,0x00]170 171flat_atomic_fmin_x2 v[1:2], v[2:3] dlc172// GFX10: [0x00,0x10,0x7c,0xdd,0x01,0x02,0x7d,0x00]173 174flat_atomic_inc v[1:2], v2 dlc175// GFX10: [0x00,0x10,0xf0,0xdc,0x01,0x02,0x7d,0x00]176 177flat_atomic_inc_x2 v[1:2], v[2:3] dlc178// GFX10: [0x00,0x10,0x70,0xdd,0x01,0x02,0x7d,0x00]179 180flat_atomic_or v[1:2], v2 dlc181// GFX10: [0x00,0x10,0xe8,0xdc,0x01,0x02,0x7d,0x00]182 183flat_atomic_or_x2 v[1:2], v[2:3] dlc184// GFX10: [0x00,0x10,0x68,0xdd,0x01,0x02,0x7d,0x00]185 186flat_atomic_smax v[1:2], v2 dlc187// GFX10: [0x00,0x10,0xdc,0xdc,0x01,0x02,0x7d,0x00]188 189flat_atomic_smax_x2 v[1:2], v[2:3] dlc190// GFX10: [0x00,0x10,0x5c,0xdd,0x01,0x02,0x7d,0x00]191 192flat_atomic_smin v[1:2], v2 dlc193// GFX10: [0x00,0x10,0xd4,0xdc,0x01,0x02,0x7d,0x00]194 195flat_atomic_smin_x2 v[1:2], v[2:3] dlc196// GFX10: [0x00,0x10,0x54,0xdd,0x01,0x02,0x7d,0x00]197 198flat_atomic_sub v[1:2], v2 dlc199// GFX10: [0x00,0x10,0xcc,0xdc,0x01,0x02,0x7d,0x00]200 201flat_atomic_sub_x2 v[1:2], v[2:3] dlc202// GFX10: [0x00,0x10,0x4c,0xdd,0x01,0x02,0x7d,0x00]203 204flat_atomic_swap v[1:2], v2 dlc205// GFX10: [0x00,0x10,0xc0,0xdc,0x01,0x02,0x7d,0x00]206 207flat_atomic_swap_x2 v[1:2], v[2:3] dlc208// GFX10: [0x00,0x10,0x40,0xdd,0x01,0x02,0x7d,0x00]209 210flat_atomic_umax v[1:2], v2 dlc211// GFX10: [0x00,0x10,0xe0,0xdc,0x01,0x02,0x7d,0x00]212 213flat_atomic_umax_x2 v[1:2], v[2:3] dlc214// GFX10: [0x00,0x10,0x60,0xdd,0x01,0x02,0x7d,0x00]215 216flat_atomic_umin v[1:2], v2 dlc217// GFX10: [0x00,0x10,0xd8,0xdc,0x01,0x02,0x7d,0x00]218 219flat_atomic_umin_x2 v[1:2], v[2:3] dlc220// GFX10: [0x00,0x10,0x58,0xdd,0x01,0x02,0x7d,0x00]221 222flat_atomic_xor v[1:2], v2 dlc223// GFX10: [0x00,0x10,0xec,0xdc,0x01,0x02,0x7d,0x00]224 225flat_atomic_xor_x2 v[1:2], v[2:3] dlc226// GFX10: [0x00,0x10,0x6c,0xdd,0x01,0x02,0x7d,0x00]227 228//===----------------------------------------------------------------------===//229// ENC_FLAT_GLOBAL: fcmpswap.230//===----------------------------------------------------------------------===//231 232global_atomic_fcmpswap v[1:2], v[2:3], off offset:-1233// GFX10: [0xff,0x8f,0xf8,0xdc,0x01,0x02,0x7d,0x00]234 235global_atomic_fcmpswap v5, v[1:2], v[2:3], off offset:-1 glc236// GFX10: [0xff,0x8f,0xf9,0xdc,0x01,0x02,0x7d,0x05]237 238global_atomic_fcmpswap v[1:2], v[2:3], off offset:2047239// GFX10: [0xff,0x87,0xf8,0xdc,0x01,0x02,0x7d,0x00]240 241global_atomic_fcmpswap v[1:2], v[2:3], off offset:-2048242// GFX10: [0x00,0x88,0xf8,0xdc,0x01,0x02,0x7d,0x00]243 244global_atomic_fcmpswap v[1:2], v[2:3], off offset:-1 slc245// GFX10: [0xff,0x8f,0xfa,0xdc,0x01,0x02,0x7d,0x00]246 247global_atomic_fcmpswap v[1:2], v[2:3], off offset:-1 dlc248// GFX10: [0xff,0x9f,0xf8,0xdc,0x01,0x02,0x7d,0x00]249 250global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-1251// GFX10: [0xff,0x8f,0x78,0xdd,0x01,0x02,0x7d,0x00]252 253global_atomic_fcmpswap_x2 v[5:6], v[1:2], v[2:5], off offset:-1 glc254// GFX10: [0xff,0x8f,0x79,0xdd,0x01,0x02,0x7d,0x05]255 256global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:2047257// GFX10: [0xff,0x87,0x78,0xdd,0x01,0x02,0x7d,0x00]258 259global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-2048260// GFX10: [0x00,0x88,0x78,0xdd,0x01,0x02,0x7d,0x00]261 262global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-1 slc263// GFX10: [0xff,0x8f,0x7a,0xdd,0x01,0x02,0x7d,0x00]264 265global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-1 dlc266// GFX10: [0xff,0x9f,0x78,0xdd,0x01,0x02,0x7d,0x00]267 268//===----------------------------------------------------------------------===//269// ENC_FLAT_GLOBAL: dlc support for atomics.270//===----------------------------------------------------------------------===//271 272global_atomic_add v[1:2], v2, off dlc273// GFX10: [0x00,0x90,0xc8,0xdc,0x01,0x02,0x7d,0x00]274 275global_atomic_add_x2 v[1:2], v[2:3], off dlc276// GFX10: [0x00,0x90,0x48,0xdd,0x01,0x02,0x7d,0x00]277 278global_atomic_and v[1:2], v2, off dlc279// GFX10: [0x00,0x90,0xe4,0xdc,0x01,0x02,0x7d,0x00]280 281global_atomic_and_x2 v[1:2], v[2:3], off dlc282// GFX10: [0x00,0x90,0x64,0xdd,0x01,0x02,0x7d,0x00]283 284global_atomic_cmpswap v[1:2], v[2:3], off dlc285// GFX10: [0x00,0x90,0xc4,0xdc,0x01,0x02,0x7d,0x00]286 287global_atomic_cmpswap_x2 v[1:2], v[2:5], off dlc288// GFX10: [0x00,0x90,0x44,0xdd,0x01,0x02,0x7d,0x00]289 290global_atomic_dec v[1:2], v2, off dlc291// GFX10: [0x00,0x90,0xf4,0xdc,0x01,0x02,0x7d,0x00]292 293global_atomic_dec_x2 v[1:2], v[2:3], off dlc294// GFX10: [0x00,0x90,0x74,0xdd,0x01,0x02,0x7d,0x00]295 296global_atomic_fmax v[1:2], v2, off dlc297// GFX10: [0x00,0x90,0x00,0xdd,0x01,0x02,0x7d,0x00]298 299global_atomic_fmax_x2 v[1:2], v[2:3], off dlc300// GFX10: [0x00,0x90,0x80,0xdd,0x01,0x02,0x7d,0x00]301 302global_atomic_fmin v[1:2], v2, off dlc303// GFX10: [0x00,0x90,0xfc,0xdc,0x01,0x02,0x7d,0x00]304 305global_atomic_fmin_x2 v[1:2], v[2:3], off dlc306// GFX10: [0x00,0x90,0x7c,0xdd,0x01,0x02,0x7d,0x00]307 308global_atomic_inc v[1:2], v2, off dlc309// GFX10: [0x00,0x90,0xf0,0xdc,0x01,0x02,0x7d,0x00]310 311global_atomic_inc_x2 v[1:2], v[2:3], off dlc312// GFX10: [0x00,0x90,0x70,0xdd,0x01,0x02,0x7d,0x00]313 314global_atomic_or v[1:2], v2, off dlc315// GFX10: [0x00,0x90,0xe8,0xdc,0x01,0x02,0x7d,0x00]316 317global_atomic_or_x2 v[1:2], v[2:3], off dlc318// GFX10: [0x00,0x90,0x68,0xdd,0x01,0x02,0x7d,0x00]319 320global_atomic_smax v[1:2], v2, off dlc321// GFX10: [0x00,0x90,0xdc,0xdc,0x01,0x02,0x7d,0x00]322 323global_atomic_smax_x2 v[1:2], v[2:3], off dlc324// GFX10: [0x00,0x90,0x5c,0xdd,0x01,0x02,0x7d,0x00]325 326global_atomic_smin v[1:2], v2, off dlc327// GFX10: [0x00,0x90,0xd4,0xdc,0x01,0x02,0x7d,0x00]328 329global_atomic_smin_x2 v[1:2], v[2:3], off dlc330// GFX10: [0x00,0x90,0x54,0xdd,0x01,0x02,0x7d,0x00]331 332global_atomic_sub v[1:2], v2, off dlc333// GFX10: [0x00,0x90,0xcc,0xdc,0x01,0x02,0x7d,0x00]334 335global_atomic_sub_x2 v[1:2], v[2:3], off dlc336// GFX10: [0x00,0x90,0x4c,0xdd,0x01,0x02,0x7d,0x00]337 338global_atomic_swap v[1:2], v2, off dlc339// GFX10: [0x00,0x90,0xc0,0xdc,0x01,0x02,0x7d,0x00]340 341global_atomic_swap_x2 v[1:2], v[2:3], off dlc342// GFX10: [0x00,0x90,0x40,0xdd,0x01,0x02,0x7d,0x00]343 344global_atomic_umax v[1:2], v2, off dlc345// GFX10: [0x00,0x90,0xe0,0xdc,0x01,0x02,0x7d,0x00]346 347global_atomic_umax_x2 v[1:2], v[2:3], off dlc348// GFX10: [0x00,0x90,0x60,0xdd,0x01,0x02,0x7d,0x00]349 350global_atomic_umin v[1:2], v2, off dlc351// GFX10: [0x00,0x90,0xd8,0xdc,0x01,0x02,0x7d,0x00]352 353global_atomic_umin_x2 v[1:2], v[2:3], off dlc354// GFX10: [0x00,0x90,0x58,0xdd,0x01,0x02,0x7d,0x00]355 356global_atomic_xor v[1:2], v2, off dlc357// GFX10: [0x00,0x90,0xec,0xdc,0x01,0x02,0x7d,0x00]358 359global_atomic_xor_x2 v[1:2], v[2:3], off dlc360// GFX10: [0x00,0x90,0x6c,0xdd,0x01,0x02,0x7d,0x00]361 362global_load_dword v2, s[4:5] offset:1024 lds363// GFX10: [0x00,0xa4,0x30,0xdc,0x02,0x00,0x04,0x00]364 365global_load_dword v2, s[4:5] offset:1024 lds366// GFX10: [0x00,0xa4,0x30,0xdc,0x02,0x00,0x04,0x00]367 368global_load_ubyte v2, s[4:5] offset:1024 lds369// GFX10: [0x00,0xa4,0x20,0xdc,0x02,0x00,0x04,0x00]370 371global_load_sbyte v2, s[4:5] offset:1024 lds372// GFX10: [0x00,0xa4,0x24,0xdc,0x02,0x00,0x04,0x00]373 374global_load_ushort v2, s[4:5] offset:1024 lds375// GFX10: [0x00,0xa4,0x28,0xdc,0x02,0x00,0x04,0x00]376 377global_load_sshort v2, s[4:5] offset:1024 lds378// GFX10: [0x00,0xa4,0x2c,0xdc,0x02,0x00,0x04,0x00]379 380global_load_dword v[2:3], off offset:1024 lds381// GFX10: [0x00,0xa4,0x30,0xdc,0x02,0x00,0x7d,0x00]382 383global_load_ubyte v[2:3], off offset:1024 lds384// GFX10: [0x00,0xa4,0x20,0xdc,0x02,0x00,0x7d,0x00]385 386global_load_sbyte v[2:3], off offset:1024 lds387// GFX10: [0x00,0xa4,0x24,0xdc,0x02,0x00,0x7d,0x00]388 389global_load_ushort v[2:3], off offset:1024 lds390// GFX10: [0x00,0xa4,0x28,0xdc,0x02,0x00,0x7d,0x00]391 392global_load_sshort v[2:3], off offset:1024 lds393// GFX10: [0x00,0xa4,0x2c,0xdc,0x02,0x00,0x7d,0x00]394 395scratch_load_dword v2, off offset:1024 lds396// GFX10: [0x00,0x64,0x30,0xdc,0x02,0x00,0x7d,0x00]397 398scratch_load_ubyte v2, off offset:1024 lds399// GFX10: [0x00,0x64,0x20,0xdc,0x02,0x00,0x7d,0x00]400 401scratch_load_sbyte v2, off offset:1024 lds402// GFX10: [0x00,0x64,0x24,0xdc,0x02,0x00,0x7d,0x00]403 404scratch_load_ushort v2, off offset:1024 lds405// GFX10: [0x00,0x64,0x28,0xdc,0x02,0x00,0x7d,0x00]406 407scratch_load_sshort v2, off offset:1024 lds408// GFX10: [0x00,0x64,0x2c,0xdc,0x02,0x00,0x7d,0x00]409 410scratch_load_dword off, s4 offset:1024 lds411// GFX10: [0x00,0x64,0x30,0xdc,0x00,0x00,0x04,0x00]412 413scratch_load_ubyte off, s4 offset:1024 lds414// GFX10: [0x00,0x64,0x20,0xdc,0x00,0x00,0x04,0x00]415 416scratch_load_sbyte off, s4 offset:1024 lds417// GFX10: [0x00,0x64,0x24,0xdc,0x00,0x00,0x04,0x00]418 419scratch_load_ushort off, s4 offset:1024 lds420// GFX10: [0x00,0x64,0x28,0xdc,0x00,0x00,0x04,0x00]421 422scratch_load_sshort off, s4 offset:1024 lds423// GFX10: [0x00,0x64,0x2c,0xdc,0x00,0x00,0x04,0x00]424 425//===----------------------------------------------------------------------===//426// Also see flat-gfx10.s, flat-global.s, flat-scratch-instructions.s.427//===----------------------------------------------------------------------===//428