# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -disassemble -show-encoding < %s | FileCheck %s
#===------------------------------------------------------------------------===#
# scratch_load
#===------------------------------------------------------------------------===#
# CHECK: scratch_load_dword v1, v255, off offset:-1 glc dlc ; encoding: [0xff,0x5f,0x31,0xdc,0xff,0x00,0x7d,0x01]
0xff 0x5f 0x31 0xdc 0xff 0x00 0x7d 0x01
# CHECK: scratch_load_dword v5, v255, off offset:-1 glc slc ; encoding: [0xff,0x4f,0x33,0xdc,0xff,0x00,0x7d,0x05]
0xff 0x4f 0x33 0xdc 0xff 0x00 0x7d 0x05
# CHECK: scratch_load_dword v0, v1, off offset:-2048 glc slc dlc ; encoding: [0x00,0x58,0x33,0xdc,0x01,0x00,0x7d,0x00]
0x00 0x58 0x33 0xdc 0x01 0x00 0x7d 0x00
# CHECK: scratch_load_dword v255, off, s105 offset:2047 dlc ; encoding: [0xff,0x57,0x30,0xdc,0x00,0x00,0x69,0xff]
0xff 0x57 0x30 0xdc 0x00 0x00 0x69 0xff
# CHECK: scratch_load_dword v255, v2, off ; encoding: [0x00,0x40,0x30,0xdc,0x02,0x00,0x7d,0xff]
0x00 0x40 0x30 0xdc 0x02 0x00 0x7d 0xff
# CHECK: scratch_load_dword v5, v0, off dlc ; encoding: [0x00,0x50,0x30,0xdc,0x00,0x00,0x7d,0x05]
0x00 0x50 0x30 0xdc 0x00 0x00 0x7d 0x05
# CHECK: scratch_load_dword v5, v3, off slc ; encoding: [0x00,0x40,0x32,0xdc,0x03,0x00,0x7d,0x05]
0x00 0x40 0x32 0xdc 0x03 0x00 0x7d 0x05
# CHECK: scratch_load_dword v5, v255, off slc dlc ; encoding: [0x00,0x50,0x32,0xdc,0xff,0x00,0x7d,0x05]
0x00 0x50 0x32 0xdc 0xff 0x00 0x7d 0x05
# CHECK: scratch_load_dword v255, off, s2 offset:1 ; encoding: [0x01,0x40,0x30,0xdc,0x00,0x00,0x02,0xff]
0x01 0x40 0x30 0xdc 0x00 0x00 0x02 0xff
#===------------------------------------------------------------------------===#
# scratch_store
#===------------------------------------------------------------------------===#
# CHECK: scratch_store_dword off, v2, s3 offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0x02,0x03,0x00]
0xff,0x4f,0x70,0xdc,0x00,0x02,0x03,0x00
# CHECK: scratch_store_dword off, v255, s3 offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0xff,0x03,0x00]
0xff,0x4f,0x70,0xdc,0x00,0xff,0x03,0x00
# CHECK: scratch_store_dword off, v2, s105 offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0x02,0x69,0x00]
0xff,0x4f,0x70,0xdc,0x00,0x02,0x69,0x00
# CHECK: scratch_store_dword off, v2, vcc_lo offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0x02,0x6a,0x00]
0xff,0x4f,0x70,0xdc,0x00,0x02,0x6a,0x00
# CHECK: scratch_store_dword off, v2, vcc_hi offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0x02,0x6b,0x00]
0xff,0x4f,0x70,0xdc,0x00,0x02,0x6b,0x00
# CHECK: scratch_store_dword off, v2, ttmp15 offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0x02,0x7b,0x00]
0xff,0x4f,0x70,0xdc,0x00,0x02,0x7b,0x00
# CHECK: scratch_store_dword v0, v2, off offset:-1 ; encoding: [0xff,0x4f,0x70,0xdc,0x00,0x02,0x7d,0x00]
0xff,0x4f,0x70,0xdc,0x00,0x02,0x7d,0x00
# CHECK: scratch_store_dword off, v2, s3 ; encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x03,0x00]
0x00,0x40,0x70,0xdc,0x00,0x02,0x03,0x00
# CHECK: scratch_store_dword off, v2, s3 offset:2047 ; encoding: [0xff,0x47,0x70,0xdc,0x00,0x02,0x03,0x00]
0xff,0x47,0x70,0xdc,0x00,0x02,0x03,0x00
# CHECK: scratch_store_dword off, v2, s3 offset:-2048 ; encoding: [0x00,0x48,0x70,0xdc,0x00,0x02,0x03,0x00]
0x00,0x48,0x70,0xdc,0x00,0x02,0x03,0x00
# CHECK: scratch_store_dword off, v2, s3 offset:-1 glc ; encoding: [0xff,0x4f,0x71,0xdc,0x00,0x02,0x03,0x00]
0xff,0x4f,0x71,0xdc,0x00,0x02,0x03,0x00
# CHECK: scratch_store_dword off, v2, s3 offset:-1 slc ; encoding: [0xff,0x4f,0x72,0xdc,0x00,0x02,0x03,0x00]
0xff,0x4f,0x72,0xdc,0x00,0x02,0x03,0x00
# CHECK: scratch_store_dword off, v2, s3 offset:-1 dlc ; encoding: [0xff,0x5f,0x70,0xdc,0x00,0x02,0x03,0x00]
0xff,0x5f,0x70,0xdc,0x00,0x02,0x03,0x00
#===------------------------------------------------------------------------===#
# FLAT opcodes: dlc support for atomics
#===------------------------------------------------------------------------===#
# CHECK: flat_atomic_add v[1:2], v2 dlc ; encoding: [0x00,0x10,0xc8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xc8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_add_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x48,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x48,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_and v[1:2], v2 dlc ; encoding: [0x00,0x10,0xe4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xe4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_and_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x64,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x64,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_cmpswap v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0xc4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xc4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_cmpswap_x2 v[1:2], v[2:5] dlc ; encoding: [0x00,0x10,0x44,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x44,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_dec v[1:2], v2 dlc ; encoding: [0x00,0x10,0xf4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xf4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_dec_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x74,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x74,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_fcmpswap v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0xf8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xf8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_fcmpswap_x2 v[1:2], v[2:5] dlc ; encoding: [0x00,0x10,0x78,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x78,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_fmax v[1:2], v2 dlc ; encoding: [0x00,0x10,0x00,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x00,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_fmax_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x80,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x80,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_fmin v[1:2], v2 dlc ; encoding: [0x00,0x10,0xfc,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xfc,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_fmin_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x7c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x7c,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_inc v[1:2], v2 dlc ; encoding: [0x00,0x10,0xf0,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xf0,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_inc_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x70,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x70,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_or v[1:2], v2 dlc ; encoding: [0x00,0x10,0xe8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xe8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_or_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x68,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x68,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_smax v[1:2], v2 dlc ; encoding: [0x00,0x10,0xdc,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xdc,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_smax_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x5c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x5c,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_smin v[1:2], v2 dlc ; encoding: [0x00,0x10,0xd4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xd4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_smin_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x54,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x54,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_sub v[1:2], v2 dlc ; encoding: [0x00,0x10,0xcc,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xcc,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_sub_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x4c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x4c,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_swap v[1:2], v2 dlc ; encoding: [0x00,0x10,0xc0,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xc0,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_swap_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x40,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x40,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_umax v[1:2], v2 dlc ; encoding: [0x00,0x10,0xe0,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xe0,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_umax_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x60,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x60,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_umin v[1:2], v2 dlc ; encoding: [0x00,0x10,0xd8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xd8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_umin_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x58,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x58,0xdd,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_xor v[1:2], v2 dlc ; encoding: [0x00,0x10,0xec,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x10,0xec,0xdc,0x01,0x02,0x7d,0x00
# CHECK: flat_atomic_xor_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x6c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x10,0x6c,0xdd,0x01,0x02,0x7d,0x00
#===------------------------------------------------------------------------===#
# FLAT GLOBAL opcodes: dlc support for atomics
#===------------------------------------------------------------------------===#
# CHECK: global_atomic_add v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xc8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xc8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_add_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x48,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x48,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_and v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xe4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xe4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_and_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x64,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x64,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_cmpswap v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0xc4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xc4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_cmpswap_x2 v[1:2], v[2:5], off dlc ; encoding: [0x00,0x90,0x44,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x44,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_dec v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xf4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xf4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_dec_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x74,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x74,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fmax v[1:2], v2, off dlc ; encoding: [0x00,0x90,0x00,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x00,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fmax_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x80,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x80,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fmin v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xfc,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xfc,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fmin_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x7c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x7c,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_inc v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xf0,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xf0,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_inc_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x70,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x70,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_or v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xe8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xe8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_or_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x68,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x68,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_smax v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xdc,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xdc,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_smax_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x5c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x5c,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_smin v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xd4,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xd4,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_smin_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x54,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x54,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_sub v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xcc,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xcc,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_sub_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x4c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x4c,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_swap v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xc0,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xc0,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_swap_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x40,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x40,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_umax v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xe0,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xe0,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_umax_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x60,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x60,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_umin v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xd8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xd8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_umin_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x58,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x58,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_xor v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xec,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x90,0xec,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_xor_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x6c,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x90,0x6c,0xdd,0x01,0x02,0x7d,0x00
#===------------------------------------------------------------------------===#
# FLAT GLOBAL opcodes: fcmpswap
#===------------------------------------------------------------------------===#
# CHECK: global_atomic_fcmpswap v[1:2], v[2:3], off offset:-1 ; encoding: [0xff,0x8f,0xf8,0xdc,0x01,0x02,0x7d,0x00]
0xff,0x8f,0xf8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap v5, v[1:2], v[2:3], off offset:-1 glc ; encoding: [0xff,0x8f,0xf9,0xdc,0x01,0x02,0x7d,0x05]
0xff,0x8f,0xf9,0xdc,0x01,0x02,0x7d,0x05
# CHECK: global_atomic_fcmpswap v[1:2], v[2:3], off offset:2047 ; encoding: [0xff,0x87,0xf8,0xdc,0x01,0x02,0x7d,0x00]
0xff,0x87,0xf8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap v[1:2], v[2:3], off offset:-2048 ; encoding: [0x00,0x88,0xf8,0xdc,0x01,0x02,0x7d,0x00]
0x00,0x88,0xf8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap v[1:2], v[2:3], off offset:-1 slc ; encoding: [0xff,0x8f,0xfa,0xdc,0x01,0x02,0x7d,0x00]
0xff,0x8f,0xfa,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap v[1:2], v[2:3], off offset:-1 dlc ; encoding: [0xff,0x9f,0xf8,0xdc,0x01,0x02,0x7d,0x00]
0xff,0x9f,0xf8,0xdc,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-1 ; encoding: [0xff,0x8f,0x78,0xdd,0x01,0x02,0x7d,0x00]
0xff,0x8f,0x78,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap_x2 v[5:6], v[1:2], v[2:5], off offset:-1 glc ; encoding: [0xff,0x8f,0x79,0xdd,0x01,0x02,0x7d,0x05]
0xff,0x8f,0x79,0xdd,0x01,0x02,0x7d,0x05
# CHECK: global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:2047 ; encoding: [0xff,0x87,0x78,0xdd,0x01,0x02,0x7d,0x00]
0xff,0x87,0x78,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-2048 ; encoding: [0x00,0x88,0x78,0xdd,0x01,0x02,0x7d,0x00]
0x00,0x88,0x78,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-1 slc ; encoding: [0xff,0x8f,0x7a,0xdd,0x01,0x02,0x7d,0x00]
0xff,0x8f,0x7a,0xdd,0x01,0x02,0x7d,0x00
# CHECK: global_atomic_fcmpswap_x2 v[1:2], v[2:5], off offset:-1 dlc ; encoding: [0xff,0x9f,0x78,0xdd,0x01,0x02,0x7d,0x00]
0xff,0x9f,0x78,0xdd,0x01,0x02,0x7d,0x00