1// RUN: llvm-mc -triple=amdgcn -show-encoding -mcpu=gfx1200 %s | FileCheck --check-prefix=GFX12 %s 2 3s_movk_i32 s0, 0x1234 4// GFX12: encoding: [0x34,0x12,0x00,0xb0] 5 6s_movk_i32 s0, 0xc1d1 7// GFX12: encoding: [0xd1,0xc1,0x00,0xb0] 8 9s_movk_i32 s105, 0x1234 10// GFX12: encoding: [0x34,0x12,0x69,0xb0] 11 12s_movk_i32 exec_lo, 0x1234 13// GFX12: encoding: [0x34,0x12,0x7e,0xb0] 14 15s_movk_i32 exec_hi, 0x1234 16// GFX12: encoding: [0x34,0x12,0x7f,0xb0] 17 18s_movk_i32 vcc_lo, 0x1234 19// GFX12: encoding: [0x34,0x12,0x6a,0xb0] 20 21s_movk_i32 vcc_hi, 0x1234 22// GFX12: encoding: [0x34,0x12,0x6b,0xb0] 23 24s_movk_i32 m0, 0x1234 25// GFX12: encoding: [0x34,0x12,0x7d,0xb0] 26 27s_version 0x1234 28// GFX12: encoding: [0x34,0x12,0x80,0xb0] 29 30s_version 0xc1d1 31// GFX12: encoding: [0xd1,0xc1,0x80,0xb0] 32 33s_version UC_VERSION_GFX12 34// GFX12: encoding: [0x09,0x00,0x80,0xb0] 35 36s_version UC_VERSION_GFX12 | UC_VERSION_W32_BIT 37// GFX12: encoding: [0x09,0x40,0x80,0xb0] 38 39s_version UC_VERSION_GFX12 | UC_VERSION_W64_BIT 40// GFX12: encoding: [0x09,0x20,0x80,0xb0] 41 42s_version UC_VERSION_GFX12 | UC_VERSION_MDP_BIT 43// GFX12: encoding: [0x09,0x80,0x80,0xb0] 44 45s_version UC_VERSION_GFX12 | UC_VERSION_W64_BIT | UC_VERSION_MDP_BIT 46// GFX12: encoding: [0x09,0xa0,0x80,0xb0] 47 48s_cmovk_i32 s0, 0x1234 49// GFX12: encoding: [0x34,0x12,0x00,0xb1] 50 51s_cmovk_i32 s0, 0xc1d1 52// GFX12: encoding: [0xd1,0xc1,0x00,0xb1] 53 54s_cmovk_i32 s105, 0x1234 55// GFX12: encoding: [0x34,0x12,0x69,0xb1] 56 57s_cmovk_i32 exec_lo, 0x1234 58// GFX12: encoding: [0x34,0x12,0x7e,0xb1] 59 60s_cmovk_i32 exec_hi, 0x1234 61// GFX12: encoding: [0x34,0x12,0x7f,0xb1] 62 63s_cmovk_i32 vcc_lo, 0x1234 64// GFX12: encoding: [0x34,0x12,0x6a,0xb1] 65 66s_cmovk_i32 vcc_hi, 0x1234 67// GFX12: encoding: [0x34,0x12,0x6b,0xb1] 68 69s_cmovk_i32 m0, 0x1234 70// GFX12: encoding: [0x34,0x12,0x7d,0xb1] 71 72s_addk_co_i32 s0, 0x1234 73// GFX12: encoding: [0x34,0x12,0x80,0xb7] 74 75s_addk_co_i32 s0, 0xc1d1 76// GFX12: encoding: [0xd1,0xc1,0x80,0xb7] 77 78s_addk_co_i32 s105, 0x1234 79// GFX12: encoding: [0x34,0x12,0xe9,0xb7] 80 81s_addk_co_i32 exec_lo, 0x1234 82// GFX12: encoding: [0x34,0x12,0xfe,0xb7] 83 84s_addk_co_i32 exec_hi, 0x1234 85// GFX12: encoding: [0x34,0x12,0xff,0xb7] 86 87s_addk_co_i32 vcc_lo, 0x1234 88// GFX12: encoding: [0x34,0x12,0xea,0xb7] 89 90s_addk_co_i32 vcc_hi, 0x1234 91// GFX12: encoding: [0x34,0x12,0xeb,0xb7] 92 93s_addk_co_i32 m0, 0x1234 94// GFX12: encoding: [0x34,0x12,0xfd,0xb7] 95 96s_mulk_i32 s0, 0x1234 97// GFX12: encoding: [0x34,0x12,0x00,0xb8] 98 99s_mulk_i32 s0, 0xc1d1 100// GFX12: encoding: [0xd1,0xc1,0x00,0xb8] 101 102s_mulk_i32 s105, 0x1234 103// GFX12: encoding: [0x34,0x12,0x69,0xb8] 104 105s_mulk_i32 exec_lo, 0x1234 106// GFX12: encoding: [0x34,0x12,0x7e,0xb8] 107 108s_mulk_i32 exec_hi, 0x1234 109// GFX12: encoding: [0x34,0x12,0x7f,0xb8] 110 111s_mulk_i32 vcc_lo, 0x1234 112// GFX12: encoding: [0x34,0x12,0x6a,0xb8] 113 114s_mulk_i32 vcc_hi, 0x1234 115// GFX12: encoding: [0x34,0x12,0x6b,0xb8] 116 117s_mulk_i32 m0, 0x1234 118// GFX12: encoding: [0x34,0x12,0x7d,0xb8] 119 120s_getreg_b32 s0, 0x1234 121// GFX12: encoding: [0x34,0x12,0x80,0xb8] 122 123s_getreg_b32 s0, 0xc1d1 124// GFX12: encoding: [0xd1,0xc1,0x80,0xb8] 125 126s_getreg_b32 s105, 0x1234 127// GFX12: encoding: [0x34,0x12,0xe9,0xb8] 128 129s_getreg_b32 exec_lo, 0x1234 130// GFX12: encoding: [0x34,0x12,0xfe,0xb8] 131 132s_getreg_b32 exec_hi, 0x1234 133// GFX12: encoding: [0x34,0x12,0xff,0xb8] 134 135s_getreg_b32 vcc_lo, 0x1234 136// GFX12: encoding: [0x34,0x12,0xea,0xb8] 137 138s_getreg_b32 vcc_hi, 0x1234 139// GFX12: encoding: [0x34,0x12,0xeb,0xb8] 140 141s_getreg_b32 m0, 0x1234 142// GFX12: encoding: [0x34,0x12,0xfd,0xb8] 143 144s_setreg_b32 0x1234, s0 145// GFX12: encoding: [0x34,0x12,0x00,0xb9] 146 147s_setreg_b32 0xc1d1, s0 148// GFX12: encoding: [0xd1,0xc1,0x00,0xb9] 149 150s_setreg_b32 0x1234, s105 151// GFX12: encoding: [0x34,0x12,0x69,0xb9] 152 153s_setreg_b32 0x1234, exec_lo 154// GFX12: encoding: [0x34,0x12,0x7e,0xb9] 155 156s_setreg_b32 0x1234, exec_hi 157// GFX12: encoding: [0x34,0x12,0x7f,0xb9] 158 159s_setreg_b32 0x1234, vcc_lo 160// GFX12: encoding: [0x34,0x12,0x6a,0xb9] 161 162s_setreg_b32 0x1234, vcc_hi 163// GFX12: encoding: [0x34,0x12,0x6b,0xb9] 164 165s_setreg_b32 0x1234, m0 166// GFX12: encoding: [0x34,0x12,0x7d,0xb9] 167 168s_setreg_imm32_b32 0x1234, 0x11213141 169// GFX12: encoding: [0x34,0x12,0x80,0xb9,0x41,0x31,0x21,0x11] 170 171s_setreg_imm32_b32 0xc1d1, 0x11213141 172// GFX12: encoding: [0xd1,0xc1,0x80,0xb9,0x41,0x31,0x21,0x11] 173 174s_setreg_imm32_b32 0x1234, 0xa1b1c1d1 175// GFX12: encoding: [0x34,0x12,0x80,0xb9,0xd1,0xc1,0xb1,0xa1] 176 177s_setreg_imm32_b32 0xc1d1, 0xa1b1c1d1 178// GFX12: encoding: [0xd1,0xc1,0x80,0xb9,0xd1,0xc1,0xb1,0xa1] 179 180s_call_b64 s[0:1], 0x1234 181// GFX12: encoding: [0x34,0x12,0x00,0xba] 182 183s_call_b64 s[104:105], 0x1234 184// GFX12: encoding: [0x34,0x12,0x68,0xba] 185 186s_call_b64 exec, 0x1234 187// GFX12: encoding: [0x34,0x12,0x7e,0xba] 188 189s_call_b64 vcc, 0x1234 190// GFX12: encoding: [0x34,0x12,0x6a,0xba] 191 192s_call_b64 null, 0x1234 193// GFX12: encoding: [0x34,0x12,0x7c,0xba] 194 195s_getreg_b32 s0, hwreg(HW_REG_MODE) 196// GFX12: encoding: [0x01,0xf8,0x80,0xb8] 197 198s_getreg_b32 s0, hwreg(HW_REG_STATUS) 199// GFX12: encoding: [0x02,0xf8,0x80,0xb8] 200 201s_getreg_b32 s0, hwreg(HW_REG_STATE_PRIV) 202// GFX12: encoding: [0x04,0xf8,0x80,0xb8] 203 204s_getreg_b32 s0, hwreg(HW_REG_GPR_ALLOC) 205// GFX12: encoding: [0x05,0xf8,0x80,0xb8] 206 207s_getreg_b32 s0, hwreg(HW_REG_LDS_ALLOC) 208// GFX12: encoding: [0x06,0xf8,0x80,0xb8] 209 210s_getreg_b32 s0, hwreg(HW_REG_IB_STS) 211// GFX12: encoding: [0x07,0xf8,0x80,0xb8] 212 213s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_DATA) 214// GFX12: encoding: [0x0a,0xf8,0x80,0xb8] 215 216s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_PC_LO) 217// GFX12: encoding: [0x0b,0xf8,0x80,0xb8] 218 219s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_PC_HI) 220// GFX12: encoding: [0x0c,0xf8,0x80,0xb8] 221 222s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_DATA1) 223// GFX12: encoding: [0x0f,0xf8,0x80,0xb8] 224 225s_getreg_b32 s0, hwreg(HW_REG_PERF_SNAPSHOT_DATA2) 226// GFX12: encoding: [0x10,0xf8,0x80,0xb8] 227 228s_getreg_b32 s0, hwreg(HW_REG_EXCP_FLAG_PRIV) 229// GFX12: encoding: [0x11,0xf8,0x80,0xb8] 230 231s_getreg_b32 s0, hwreg(HW_REG_EXCP_FLAG_USER) 232// GFX12: encoding: [0x12,0xf8,0x80,0xb8] 233 234s_getreg_b32 s0, hwreg(HW_REG_TRAP_CTRL) 235// GFX12: encoding: [0x13,0xf8,0x80,0xb8] 236 237s_getreg_b32 s0, hwreg(HW_REG_SCRATCH_BASE_LO) 238// GFX12: encoding: [0x14,0xf8,0x80,0xb8] 239 240s_getreg_b32 s0, hwreg(HW_REG_SCRATCH_BASE_HI) 241// GFX12: encoding: [0x15,0xf8,0x80,0xb8] 242 243s_getreg_b32 s0, hwreg(HW_REG_HW_ID1) 244// GFX12: encoding: [0x17,0xf8,0x80,0xb8] 245 246s_getreg_b32 s0, hwreg(HW_REG_HW_ID2) 247// GFX12: encoding: [0x18,0xf8,0x80,0xb8] 248 249s_getreg_b32 s0, hwreg(HW_REG_DVGPR_ALLOC_LO) 250// GFX12: encoding: [0x1f,0xf8,0x80,0xb8] 251 252s_getreg_b32 s0, hwreg(HW_REG_DVGPR_ALLOC_HI) 253// GFX12: encoding: [0x20,0xf8,0x80,0xb8] 254 255s_getreg_b32 s0, hwreg(HW_REG_SHADER_CYCLES_LO) 256// GFX12: encoding: [0x1d,0xf8,0x80,0xb8] 257 258s_getreg_b32 s0, hwreg(HW_REG_SHADER_CYCLES_HI) 259// GFX12: encoding: [0x1e,0xf8,0x80,0xb8] 260