249 lines · plain
1// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1030 -show-encoding %s | FileCheck --check-prefix=GFX10 %s2// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1031 -show-encoding %s | FileCheck --check-prefix=GFX10 %s3// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1032 -show-encoding %s | FileCheck --check-prefix=GFX10 %s4// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1033 -show-encoding %s | FileCheck --check-prefix=GFX10 %s5// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1034 -show-encoding %s | FileCheck --check-prefix=GFX10 %s6// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1035 -show-encoding %s | FileCheck --check-prefix=GFX10 %s7// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1036 -show-encoding %s | FileCheck --check-prefix=GFX10 %s8 9global_load_dword_addtid v1, s[2:3] offset:1610// GFX10: encoding: [0x10,0x80,0x58,0xdc,0x00,0x00,0x02,0x01]11 12global_load_dword_addtid v1, s[2:3] offset:16 glc slc dlc13// GFX10: encoding: [0x10,0x90,0x5b,0xdc,0x00,0x00,0x02,0x01]14 15global_store_dword_addtid v1, s[2:3] offset:16 glc slc dlc16// GFX10: encoding: [0x10,0x90,0x5f,0xdc,0x00,0x01,0x02,0x00]17 18global_load_dword_addtid v1, off offset:1619// GFX10: encoding: [0x10,0x80,0x58,0xdc,0x00,0x00,0x7d,0x01]20 21global_load_dword_addtid v1, off offset:16 glc slc dlc22// GFX10: encoding: [0x10,0x90,0x5b,0xdc,0x00,0x00,0x7d,0x01]23 24global_store_dword_addtid v1, off offset:16 glc slc dlc25// GFX10: encoding: [0x10,0x90,0x5f,0xdc,0x00,0x01,0x7d,0x00]26 27global_store_dword v254, v1, s[2:3] offset:1628// GFX10: encoding: [0x10,0x80,0x70,0xdc,0xfe,0x01,0x02,0x00]29 30global_atomic_csub v2, v[0:1], v2, off offset:100 glc slc31// GFX10: encoding: [0x64,0x80,0xd3,0xdc,0x00,0x02,0x7d,0x02]32 33global_atomic_csub v[0:1], v2, off offset:100 slc34// GFX10: encoding: [0x64,0x80,0xd2,0xdc,0x00,0x02,0x7d,0x00]35 36global_atomic_csub v2, v[0:1], v2, off glc37// GFX10: encoding: [0x00,0x80,0xd1,0xdc,0x00,0x02,0x7d,0x02]38 39global_atomic_csub v[0:1], v2, off40// GFX10: encoding: [0x00,0x80,0xd0,0xdc,0x00,0x02,0x7d,0x00]41 42global_atomic_csub v2, v0, v2, s[2:3] glc43// GFX10: encoding: [0x00,0x80,0xd1,0xdc,0x00,0x02,0x02,0x02]44 45global_atomic_csub v0, v2, s[2:3]46// GFX10: encoding: [0x00,0x80,0xd0,0xdc,0x00,0x02,0x02,0x00]47 48global_atomic_csub v2, v0, v2, s[2:3] offset:100 glc slc49// GFX10: encoding: [0x64,0x80,0xd3,0xdc,0x00,0x02,0x02,0x02]50 51buffer_atomic_csub v5, off, s[8:11], s3 glc52// GFX10: encoding: [0x00,0x40,0xd0,0xe0,0x00,0x05,0x02,0x03]53 54buffer_atomic_csub v5, off, s[8:11], s355// GFX10: encoding: [0x00,0x00,0xd0,0xe0,0x00,0x05,0x02,0x03]56 57buffer_atomic_csub v5, off, s[8:11], s3 offset:4095 glc58// GFX10: encoding: [0xff,0x4f,0xd0,0xe0,0x00,0x05,0x02,0x03]59 60buffer_atomic_csub v5, off, s[8:11], -1 offset:4095 glc61// GFX10: encoding: [0xff,0x4f,0xd0,0xe0,0x00,0x05,0x02,0xc1]62 63buffer_atomic_csub v5, v0, s[8:11], s3 offen offset:4095 glc64// GFX10: encoding: [0xff,0x5f,0xd0,0xe0,0x00,0x05,0x02,0x03]65 66buffer_atomic_csub v5, v0, s[8:11], s3 offen offset:409567// GFX10: encoding: [0xff,0x1f,0xd0,0xe0,0x00,0x05,0x02,0x03]68 69buffer_atomic_csub v5, v0, s[8:11], s3 idxen offset:4095 glc70// GFX10: encoding: [0xff,0x6f,0xd0,0xe0,0x00,0x05,0x02,0x03]71 72buffer_atomic_csub v5, v0, s[8:11], s3 idxen offset:409573// GFX10: encoding: [0xff,0x2f,0xd0,0xe0,0x00,0x05,0x02,0x03]74 75buffer_atomic_csub v5, off, s[8:11], s3 glc slc76// GFX10: encoding: [0x00,0x40,0xd0,0xe0,0x00,0x05,0x42,0x03]77 78buffer_atomic_csub v5, off, s[8:11], s3 slc79// GFX10: encoding: [0x00,0x00,0xd0,0xe0,0x00,0x05,0x42,0x03]80 81s_getreg_b32 s2, hwreg(HW_REG_SHADER_CYCLES)82// GFX10: encoding: [0x1d,0xf8,0x02,0xb9]83 84s_getreg_b32 s2, 2985// GFX10: s_getreg_b32 s2, hwreg(HW_REG_SHADER_CYCLES, 0, 1) ; encoding: [0x1d,0x00,0x02,0xb9]86 87s_getreg_b32 s2, hwreg(22)88// GFX10: s_getreg_b32 s2, hwreg(22) ; encoding: [0x16,0xf8,0x02,0xb9]89 90v_fma_legacy_f32 v0, v1, v2, v391// GFX10: encoding: [0x00,0x00,0x40,0xd5,0x01,0x05,0x0e,0x04]92 93v_fma_legacy_f32 v0, v1, |v2|, -v394// GFX10: encoding: [0x00,0x02,0x40,0xd5,0x01,0x05,0x0e,0x84]95 96v_fma_legacy_f32 v0, s1, 2.0, -v397// GFX10: encoding: [0x00,0x00,0x40,0xd5,0x01,0xe8,0x0d,0x84]98 99v_fmac_legacy_f32 v0, v1, v2100// GFX10: encoding: [0x01,0x05,0x00,0x0c]101 102v_fmac_legacy_f32 v0, |v1|, -v2103// GFX10: encoding: [0x00,0x01,0x06,0xd5,0x01,0x05,0x02,0x40]104 105v_fmac_legacy_f32 v0, s1, 2.0106// GFX10: encoding: [0x00,0x00,0x06,0xd5,0x01,0xe8,0x01,0x00]107 108image_bvh_intersect_ray v[4:7], v[9:19], s[4:7]109// GFX10: encoding: [0x01,0x9f,0x98,0xf1,0x09,0x04,0x01,0x00]110 111image_bvh_intersect_ray v[4:7], v[9:19], s[4:7] noa16112// GFX10: encoding: [0x01,0x9f,0x98,0xf1,0x09,0x04,0x01,0x00]113 114image_bvh_intersect_ray v[4:7], v[9:16], s[4:7] a16115// GFX10: encoding: [0x01,0x9f,0x98,0xf1,0x09,0x04,0x01,0x40]116 117image_bvh64_intersect_ray v[4:7], v[9:20], s[4:7]118// GFX10: encoding: [0x01,0x9f,0x9c,0xf1,0x09,0x04,0x01,0x00]119 120image_bvh64_intersect_ray v[4:7], v[9:17], s[4:7] a16121// GFX10: encoding: [0x01,0x9f,0x9c,0xf1,0x09,0x04,0x01,0x40]122 123image_bvh_intersect_ray v[39:42], [v50, v46, v23, v17, v16, v15, v21, v20, v19, v37, v40], s[12:15]124// GFX10: encoding: [0x07,0x9f,0x98,0xf1,0x32,0x27,0x03,0x00,0x2e,0x17,0x11,0x10,0x0f,0x15,0x14,0x13,0x25,0x28,0x00,0x00]125 126image_bvh_intersect_ray v[39:42], [v50, v46, v23, v17, v16, v15, v21, v20, v19, v37, v40], s[12:15] noa16127// GFX10: encoding: [0x07,0x9f,0x98,0xf1,0x32,0x27,0x03,0x00,0x2e,0x17,0x11,0x10,0x0f,0x15,0x14,0x13,0x25,0x28,0x00,0x00]128 129image_bvh_intersect_ray v[39:42], [v50, v46, v23, v17, v16, v15, v21, v20], s[12:15] a16130// GFX10: encoding: [0x05,0x9f,0x98,0xf1,0x32,0x27,0x03,0x40,0x2e,0x17,0x11,0x10,0x0f,0x15,0x14,0x00]131 132image_bvh64_intersect_ray v[39:42], [v50, v46, v23, v17, v16, v15, v21, v20, v19, v37, v40, v42], s[12:15]133// GFX10: encoding: [0x07,0x9f,0x9c,0xf1,0x32,0x27,0x03,0x00,0x2e,0x17,0x11,0x10,0x0f,0x15,0x14,0x13,0x25,0x28,0x2a,0x00]134 135image_bvh64_intersect_ray v[39:42], [v50, v46, v23, v17, v16, v15, v21, v20, v19], s[12:15] a16136// GFX10: encoding: [0x05,0x9f,0x9c,0xf1,0x32,0x27,0x03,0x40,0x2e,0x17,0x11,0x10,0x0f,0x15,0x14,0x13]137 138image_msaa_load v[1:4], v[5:7], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA139// GFX10: encoding: [0x31,0x0f,0x00,0xf0,0x05,0x01,0x02,0x00]140 141image_msaa_load v[1:4], v[5:7], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA glc142// GFX10: encoding: [0x31,0x2f,0x00,0xf0,0x05,0x01,0x02,0x00]143 144image_msaa_load v5, v[1:3], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA d16145// GFX10: encoding: [0x31,0x01,0x00,0xf0,0x01,0x05,0x02,0x80]146 147image_msaa_load v[1:4], v[5:8], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY148// GFX10: encoding: [0x39,0x0f,0x00,0xf0,0x05,0x01,0x02,0x00]149 150image_msaa_load v14, [v204,v11,v14,v19], s[40:47] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY151// GFX10: encoding: [0x3b,0x01,0x00,0xf0,0xcc,0x0e,0x0a,0x00,0x0b,0x0e,0x13,0x00]152 153//===----------------------------------------------------------------------===//154// s_waitcnt_depctr.155//===----------------------------------------------------------------------===//156 157s_waitcnt_depctr -32768158// GFX10: encoding: [0x00,0x80,0xa3,0xbf]159 160s_waitcnt_depctr 65535161// GFX10: encoding: [0xff,0xff,0xa3,0xbf]162 163s_waitcnt_depctr depctr_hold_cnt(0)164// GFX10: encoding: [0x1f,0xff,0xa3,0xbf]165 166s_waitcnt_depctr depctr_hold_cnt(1)167// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]168 169s_waitcnt_depctr depctr_sa_sdst(0)170// GFX10: encoding: [0x9e,0xff,0xa3,0xbf]171 172s_waitcnt_depctr depctr_sa_sdst(1)173// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]174 175s_waitcnt_depctr depctr_va_vdst(0)176// GFX10: encoding: [0x9f,0x0f,0xa3,0xbf]177 178s_waitcnt_depctr depctr_va_vdst(1)179// GFX10: encoding: [0x9f,0x1f,0xa3,0xbf]180 181s_waitcnt_depctr depctr_va_vdst(14)182// GFX10: encoding: [0x9f,0xef,0xa3,0xbf]183 184s_waitcnt_depctr depctr_va_vdst(15)185// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]186 187s_waitcnt_depctr depctr_va_sdst(0)188// GFX10: encoding: [0x9f,0xf1,0xa3,0xbf]189 190s_waitcnt_depctr depctr_va_sdst(1)191// GFX10: encoding: [0x9f,0xf3,0xa3,0xbf]192 193s_waitcnt_depctr depctr_va_sdst(6)194// GFX10: encoding: [0x9f,0xfd,0xa3,0xbf]195 196s_waitcnt_depctr depctr_va_sdst(7)197// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]198 199s_waitcnt_depctr depctr_va_ssrc(0)200// GFX10: encoding: [0x9f,0xfe,0xa3,0xbf]201 202s_waitcnt_depctr depctr_va_ssrc(1)203// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]204 205s_waitcnt_depctr depctr_va_vcc(0)206// GFX10: encoding: [0x9d,0xff,0xa3,0xbf]207 208s_waitcnt_depctr depctr_va_vcc(1)209// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]210 211s_waitcnt_depctr depctr_vm_vsrc(0)212// GFX10: encoding: [0x83,0xff,0xa3,0xbf]213 214s_waitcnt_depctr depctr_vm_vsrc(1)215// GFX10: encoding: [0x87,0xff,0xa3,0xbf]216 217s_waitcnt_depctr depctr_vm_vsrc(6)218// GFX10: encoding: [0x9b,0xff,0xa3,0xbf]219 220s_waitcnt_depctr depctr_vm_vsrc(7)221// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]222 223s_waitcnt_depctr depctr_hold_cnt(0) depctr_sa_sdst(0) depctr_va_vdst(0) depctr_va_sdst(0) depctr_va_ssrc(0) depctr_va_vcc(0) depctr_vm_vsrc(0)224// GFX10: encoding: [0x00,0x00,0xa3,0xbf]225 226s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7)227// GFX10: encoding: [0x9f,0xff,0xa3,0xbf]228 229s_waitcnt_depctr depctr_hold_cnt(1) & depctr_sa_sdst(1) & depctr_va_vdst(1) & depctr_va_sdst(1) & depctr_va_ssrc(1) & depctr_va_vcc(1) & depctr_vm_vsrc(1)230// GFX10: encoding: [0x87,0x13,0xa3,0xbf]231 232s_waitcnt_depctr depctr_hold_cnt(1), depctr_sa_sdst(1), depctr_va_vdst(14), depctr_va_sdst(6), depctr_va_ssrc(1), depctr_va_vcc(1), depctr_vm_vsrc(6)233// GFX10: encoding: [0x9b,0xed,0xa3,0xbf]234 235scratch_load_dword off, off offset:1024 lds236// GFX10: [0x00,0x64,0x30,0xdc,0x00,0x00,0x7f,0x00]237 238scratch_load_ubyte off, off offset:1024 lds239// GFX10: [0x00,0x64,0x20,0xdc,0x00,0x00,0x7f,0x00]240 241scratch_load_sbyte off, off offset:1024 lds242// GFX10: [0x00,0x64,0x24,0xdc,0x00,0x00,0x7f,0x00]243 244scratch_load_ushort off, off offset:1024 lds245// GFX10: [0x00,0x64,0x28,0xdc,0x00,0x00,0x7f,0x00]246 247scratch_load_sshort off, off offset:1024 lds248// GFX10: [0x00,0x64,0x2c,0xdc,0x00,0x00,0x7f,0x00]249