xref: /llvm-project/llvm/test/MC/AMDGPU/gfx12_asm_sopk.s (revision 162386693f663b3d0aa5403a45bfbc8edc3a84ed)
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