270 lines · plain
1// RUN: llvm-mc -triple=amdgcn -show-encoding -mcpu=gfx1200 %s | FileCheck --check-prefix=GFX12 %s2// RUN: llvm-mc -triple=amdgcn -show-encoding -mcpu=gfx1250 %s | FileCheck --check-prefix=GFX12 %s3 4s_movk_i32 s0, 0x12345// GFX12: encoding: [0x34,0x12,0x00,0xb0]6 7s_movk_i32 s0, 0xc1d18// GFX12: encoding: [0xd1,0xc1,0x00,0xb0]9 10s_movk_i32 s105, 0x123411// GFX12: encoding: [0x34,0x12,0x69,0xb0]12 13s_movk_i32 exec_lo, 0x123414// GFX12: encoding: [0x34,0x12,0x7e,0xb0]15 16s_movk_i32 exec_hi, 0x123417// GFX12: encoding: [0x34,0x12,0x7f,0xb0]18 19s_movk_i32 vcc_lo, 0x123420// GFX12: encoding: [0x34,0x12,0x6a,0xb0]21 22s_movk_i32 vcc_hi, 0x123423// GFX12: encoding: [0x34,0x12,0x6b,0xb0]24 25s_movk_i32 m0, 0x123426// GFX12: encoding: [0x34,0x12,0x7d,0xb0]27 28s_version 0x123429// GFX12: encoding: [0x34,0x12,0x80,0xb0]30 31s_version 0xc1d132// GFX12: encoding: [0xd1,0xc1,0x80,0xb0]33 34s_version UC_VERSION_GFX1235// GFX12: encoding: [0x09,0x00,0x80,0xb0]36 37s_version UC_VERSION_GFX12 | UC_VERSION_W32_BIT38// GFX12: encoding: [0x09,0x40,0x80,0xb0]39 40s_version UC_VERSION_GFX12 | UC_VERSION_W64_BIT41// GFX12: encoding: [0x09,0x20,0x80,0xb0]42 43s_version UC_VERSION_GFX12 | UC_VERSION_MDP_BIT44// GFX12: encoding: [0x09,0x80,0x80,0xb0]45 46s_version UC_VERSION_GFX12 | UC_VERSION_W64_BIT | UC_VERSION_MDP_BIT47// GFX12: encoding: [0x09,0xa0,0x80,0xb0]48 49s_cmovk_i32 s0, 0x123450// GFX12: encoding: [0x34,0x12,0x00,0xb1]51 52s_cmovk_i32 s0, 0xc1d153// GFX12: encoding: [0xd1,0xc1,0x00,0xb1]54 55s_cmovk_i32 s105, 0x123456// GFX12: encoding: [0x34,0x12,0x69,0xb1]57 58s_cmovk_i32 exec_lo, 0x123459// GFX12: encoding: [0x34,0x12,0x7e,0xb1]60 61s_cmovk_i32 exec_hi, 0x123462// GFX12: encoding: [0x34,0x12,0x7f,0xb1]63 64s_cmovk_i32 vcc_lo, 0x123465// GFX12: encoding: [0x34,0x12,0x6a,0xb1]66 67s_cmovk_i32 vcc_hi, 0x123468// GFX12: encoding: [0x34,0x12,0x6b,0xb1]69 70s_cmovk_i32 m0, 0x123471// GFX12: encoding: [0x34,0x12,0x7d,0xb1]72 73s_addk_co_i32 s0, 0x123474// GFX12: encoding: [0x34,0x12,0x80,0xb7]75 76s_addk_co_i32 s0, 0xc1d177// GFX12: encoding: [0xd1,0xc1,0x80,0xb7]78 79s_addk_co_i32 s105, 0x123480// GFX12: encoding: [0x34,0x12,0xe9,0xb7]81 82s_addk_co_i32 exec_lo, 0x123483// GFX12: encoding: [0x34,0x12,0xfe,0xb7]84 85s_addk_co_i32 exec_hi, 0x123486// GFX12: encoding: [0x34,0x12,0xff,0xb7]87 88s_addk_co_i32 vcc_lo, 0x123489// GFX12: encoding: [0x34,0x12,0xea,0xb7]90 91s_addk_co_i32 vcc_hi, 0x123492// GFX12: encoding: [0x34,0x12,0xeb,0xb7]93 94s_addk_co_i32 m0, 0x123495// GFX12: encoding: [0x34,0x12,0xfd,0xb7]96 97s_mulk_i32 s0, 0x123498// GFX12: encoding: [0x34,0x12,0x00,0xb8]99 100s_mulk_i32 s0, 0xc1d1101// GFX12: encoding: [0xd1,0xc1,0x00,0xb8]102 103s_mulk_i32 s105, 0x1234104// GFX12: encoding: [0x34,0x12,0x69,0xb8]105 106s_mulk_i32 exec_lo, 0x1234107// GFX12: encoding: [0x34,0x12,0x7e,0xb8]108 109s_mulk_i32 exec_hi, 0x1234110// GFX12: encoding: [0x34,0x12,0x7f,0xb8]111 112s_mulk_i32 vcc_lo, 0x1234113// GFX12: encoding: [0x34,0x12,0x6a,0xb8]114 115s_mulk_i32 vcc_hi, 0x1234116// GFX12: encoding: [0x34,0x12,0x6b,0xb8]117 118s_mulk_i32 m0, 0x1234119// GFX12: encoding: [0x34,0x12,0x7d,0xb8]120 121s_getreg_b32 s0, 0x1234122// GFX12: encoding: [0x34,0x12,0x80,0xb8]123 124s_getreg_b32 s0, 0xc1d1125// GFX12: encoding: [0xd1,0xc1,0x80,0xb8]126 127s_getreg_b32 s105, 0x1234128// GFX12: encoding: [0x34,0x12,0xe9,0xb8]129 130s_getreg_b32 exec_lo, 0x1234131// GFX12: encoding: [0x34,0x12,0xfe,0xb8]132 133s_getreg_b32 exec_hi, 0x1234134// GFX12: encoding: [0x34,0x12,0xff,0xb8]135 136s_getreg_b32 vcc_lo, 0x1234137// GFX12: encoding: [0x34,0x12,0xea,0xb8]138 139s_getreg_b32 vcc_hi, 0x1234140// GFX12: encoding: [0x34,0x12,0xeb,0xb8]141 142s_getreg_b32 m0, 0x1234143// GFX12: encoding: [0x34,0x12,0xfd,0xb8]144 145s_setreg_b32 0x1234, s0146// GFX12: encoding: [0x34,0x12,0x00,0xb9]147 148s_setreg_b32 0xc1d1, s0149// GFX12: encoding: [0xd1,0xc1,0x00,0xb9]150 151s_setreg_b32 0x1234, s105152// GFX12: encoding: [0x34,0x12,0x69,0xb9]153 154s_setreg_b32 0x1234, exec_lo155// GFX12: encoding: [0x34,0x12,0x7e,0xb9]156 157s_setreg_b32 0x1234, exec_hi158// GFX12: encoding: [0x34,0x12,0x7f,0xb9]159 160s_setreg_b32 0x1234, vcc_lo161// GFX12: encoding: [0x34,0x12,0x6a,0xb9]162 163s_setreg_b32 0x1234, vcc_hi164// GFX12: encoding: [0x34,0x12,0x6b,0xb9]165 166s_setreg_b32 0x1234, m0167// GFX12: encoding: [0x34,0x12,0x7d,0xb9]168 169s_setreg_imm32_b32 0x1234, 0x11213141170// GFX12: encoding: [0x34,0x12,0x80,0xb9,0x41,0x31,0x21,0x11]171 172s_setreg_imm32_b32 0xc1d1, 0x11213141173// GFX12: encoding: [0xd1,0xc1,0x80,0xb9,0x41,0x31,0x21,0x11]174 175s_setreg_imm32_b32 0x1234, 0xa1b1c1d1176// GFX12: encoding: [0x34,0x12,0x80,0xb9,0xd1,0xc1,0xb1,0xa1]177 178s_setreg_imm32_b32 0xc1d1, 0xa1b1c1d1179// GFX12: encoding: [0xd1,0xc1,0x80,0xb9,0xd1,0xc1,0xb1,0xa1]180 181s_call_b64 s[0:1], 0x1234182// GFX12: encoding: [0x34,0x12,0x00,0xba]183 184s_call_b64 s[104:105], 0x1234185// GFX12: encoding: [0x34,0x12,0x68,0xba]186 187s_call_b64 exec, 0x1234188// GFX12: encoding: [0x34,0x12,0x7e,0xba]189 190s_call_b64 vcc, 0x1234191// GFX12: encoding: [0x34,0x12,0x6a,0xba]192 193s_call_b64 null, 0x1234194// GFX12: encoding: [0x34,0x12,0x7c,0xba]195 196s_getreg_b32 s0, hwreg(HW_REG_WAVE_MODE)197// GFX12: encoding: [0x01,0xf8,0x80,0xb8]198 199s_getreg_b32 s0, hwreg(HW_REG_WAVE_STATUS)200// GFX12: encoding: [0x02,0xf8,0x80,0xb8]201 202s_getreg_b32 s0, hwreg(HW_REG_WAVE_STATE_PRIV)203// GFX12: encoding: [0x04,0xf8,0x80,0xb8]204 205s_getreg_b32 s0, hwreg(HW_REG_WAVE_GPR_ALLOC)206// GFX12: encoding: [0x05,0xf8,0x80,0xb8]207 208s_getreg_b32 s0, hwreg(HW_REG_WAVE_LDS_ALLOC)209// GFX12: encoding: [0x06,0xf8,0x80,0xb8]210 211s_getreg_b32 s0, hwreg(HW_REG_IB_STS)212// GFX12: encoding: [0x07,0xf8,0x80,0xb8]213 214s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_DATA)215// GFX12: encoding: [0x0a,0xf8,0x80,0xb8]216 217s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_PC_LO)218// GFX12: encoding: [0x0b,0xf8,0x80,0xb8]219 220s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_PC_HI)221// GFX12: encoding: [0x0c,0xf8,0x80,0xb8]222 223s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_DATA1)224// GFX12: encoding: [0x0f,0xf8,0x80,0xb8]225 226s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_DATA2)227// GFX12: encoding: [0x10,0xf8,0x80,0xb8]228 229s_getreg_b32 s0, hwreg(HW_REG_WAVE_EXCP_FLAG_PRIV)230// GFX12: encoding: [0x11,0xf8,0x80,0xb8]231 232s_getreg_b32 s0, hwreg(HW_REG_WAVE_EXCP_FLAG_USER)233// GFX12: encoding: [0x12,0xf8,0x80,0xb8]234 235s_getreg_b32 s0, hwreg(HW_REG_WAVE_TRAP_CTRL)236// GFX12: encoding: [0x13,0xf8,0x80,0xb8]237 238s_getreg_b32 s0, hwreg(HW_REG_WAVE_SCRATCH_BASE_LO)239// GFX12: encoding: [0x14,0xf8,0x80,0xb8]240 241s_getreg_b32 s0, hwreg(HW_REG_WAVE_SCRATCH_BASE_HI)242// GFX12: encoding: [0x15,0xf8,0x80,0xb8]243 244s_getreg_b32 s0, hwreg(HW_REG_WAVE_HW_ID1)245// GFX12: encoding: [0x17,0xf8,0x80,0xb8]246 247s_getreg_b32 s0, hwreg(HW_REG_WAVE_HW_ID2)248// GFX12: encoding: [0x18,0xf8,0x80,0xb8]249 250s_getreg_b32 s0, hwreg(HW_REG_WAVE_DVGPR_ALLOC_LO)251// GFX12: encoding: [0x1f,0xf8,0x80,0xb8]252 253s_getreg_b32 s0, hwreg(HW_REG_WAVE_DVGPR_ALLOC_HI)254// GFX12: encoding: [0x20,0xf8,0x80,0xb8]255 256s_getreg_b32 s0, hwreg(HW_REG_SHADER_CYCLES_LO)257// GFX12: encoding: [0x1d,0xf8,0x80,0xb8]258 259s_getreg_b32 s0, hwreg(HW_REG_SHADER_CYCLES_HI)260// GFX12: encoding: [0x1e,0xf8,0x80,0xb8]261 262s_getreg_b32 s0, hwreg(HW_REG_WAVE_SCHED_MODE)263// GFX12: encoding: [0x1a,0xf8,0x80,0xb8]264 265s_setreg_b32 hwreg(HW_REG_WAVE_SCHED_MODE, 0, 2), s2266// GFX12: encoding: [0x1a,0x08,0x02,0xb9]267 268s_setreg_imm32_b32 hwreg(HW_REG_WAVE_SCHED_MODE), 0x2269// GFX12: encoding: [0x1a,0xf8,0x80,0xb9,0x02,0x00,0x00,0x00]270