xref: /aosp_15_r20/external/llvm/test/MC/AMDGPU/sopp.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
2*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
3*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
6*9880d681SAndroid Build Coastguard Worker// Edge Cases
7*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workers_nop 0
10*9880d681SAndroid Build Coastguard Worker// GCN: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf]
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workers_nop 0xffff
13*9880d681SAndroid Build Coastguard Worker// GCN: s_nop 0xffff ; encoding: [0xff,0xff,0x80,0xbf]
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
16*9880d681SAndroid Build Coastguard Worker// Instructions
17*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workers_nop 1
20*9880d681SAndroid Build Coastguard Worker// GCN: s_nop 1 ; encoding: [0x01,0x00,0x80,0xbf]
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workers_endpgm
23*9880d681SAndroid Build Coastguard Worker// GCN: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workers_branch 2
26*9880d681SAndroid Build Coastguard Worker// GCN: s_branch 2 ; encoding: [0x02,0x00,0x82,0xbf]
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workers_cbranch_scc0 3
29*9880d681SAndroid Build Coastguard Worker// GCN: s_cbranch_scc0 3 ; encoding: [0x03,0x00,0x84,0xbf]
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workers_cbranch_scc1 4
32*9880d681SAndroid Build Coastguard Worker// GCN: s_cbranch_scc1 4 ; encoding: [0x04,0x00,0x85,0xbf]
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workers_cbranch_vccz 5
35*9880d681SAndroid Build Coastguard Worker// GCN: s_cbranch_vccz 5 ; encoding: [0x05,0x00,0x86,0xbf]
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workers_cbranch_vccnz 6
38*9880d681SAndroid Build Coastguard Worker// GCN: s_cbranch_vccnz 6 ; encoding: [0x06,0x00,0x87,0xbf]
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Workers_cbranch_execz 7
41*9880d681SAndroid Build Coastguard Worker// GCN: s_cbranch_execz 7 ; encoding: [0x07,0x00,0x88,0xbf]
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Workers_cbranch_execnz 8
44*9880d681SAndroid Build Coastguard Worker// GCN: s_cbranch_execnz 8 ; encoding: [0x08,0x00,0x89,0xbf]
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Workers_barrier
47*9880d681SAndroid Build Coastguard Worker// GCN: s_barrier ; encoding: [0x00,0x00,0x8a,0xbf]
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
50*9880d681SAndroid Build Coastguard Worker// s_waitcnt
51*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workers_waitcnt 0
54*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workers_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)
57*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workers_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
60*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workers_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0)
63*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workers_waitcnt vmcnt(1)
66*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(1) ; encoding: [0x71,0x0f,0x8c,0xbf]
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workers_waitcnt vmcnt(9)
69*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(9) ; encoding: [0x79,0x0f,0x8c,0xbf]
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Workers_waitcnt expcnt(2)
72*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt expcnt(2) ; encoding: [0x2f,0x0f,0x8c,0xbf]
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Workers_waitcnt lgkmcnt(3)
75*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt lgkmcnt(3) ; encoding: [0x7f,0x03,0x8c,0xbf]
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workers_waitcnt lgkmcnt(9)
78*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt lgkmcnt(9) ; encoding: [0x7f,0x09,0x8c,0xbf]
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workers_waitcnt vmcnt(0), expcnt(0)
81*9880d681SAndroid Build Coastguard Worker// GCN: s_waitcnt vmcnt(0) expcnt(0) ; encoding: [0x00,0x0f,0x8c,0xbf]
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Workers_sethalt 9
85*9880d681SAndroid Build Coastguard Worker// GCN: s_sethalt 9 ; encoding: [0x09,0x00,0x8d,0xbf]
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Workers_sleep 10
88*9880d681SAndroid Build Coastguard Worker// GCN: s_sleep 10 ; encoding: [0x0a,0x00,0x8e,0xbf]
89*9880d681SAndroid Build Coastguard Worker
90*9880d681SAndroid Build Coastguard Workers_setprio 1
91*9880d681SAndroid Build Coastguard Worker// GCN: s_setprio 1 ; encoding: [0x01,0x00,0x8f,0xbf]
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Workers_sendmsg 2
94*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg 2 ; encoding: [0x02,0x00,0x90,0xbf]
95*9880d681SAndroid Build Coastguard Worker
96*9880d681SAndroid Build Coastguard Workers_sendmsg 0x1
97*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(1)
100*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(MSG_INTERRUPT)
103*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Workers_sendmsg 0x12
106*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(2, 1)
109*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
110*9880d681SAndroid Build Coastguard Worker
111*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0)
112*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workers_sendmsg 0x122
115*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
116*9880d681SAndroid Build Coastguard Worker
117*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(2, 2, 1)
118*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1)
121*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Workers_sendmsg 0x232
124*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(2, 3, 2)
127*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2)
130*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Workers_sendmsg 0x3
133*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(3, 0)
136*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP)
139*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
140*9880d681SAndroid Build Coastguard Worker
141*9880d681SAndroid Build Coastguard Workers_sendmsg 0x4
142*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg 4 ; encoding: [0x04,0x00,0x90,0xbf]
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Workers_sendmsg 11
145*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg 11 ; encoding: [0x0b,0x00,0x90,0xbf]
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Workers_sendmsg 0x1f
148*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
149*9880d681SAndroid Build Coastguard Worker
150*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(15, 1)
151*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
152*9880d681SAndroid Build Coastguard Worker
153*9880d681SAndroid Build Coastguard Workers_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT)
154*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Workers_sendmsg 0x6f
157*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsg 111 ; encoding: [0x6f,0x00,0x90,0xbf]
158*9880d681SAndroid Build Coastguard Worker
159*9880d681SAndroid Build Coastguard Workers_sendmsghalt 3
160*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsghalt sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x91,0xbf]
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Workers_sendmsghalt sendmsg(MSG_GS, GS_OP_EMIT, 1)
163*9880d681SAndroid Build Coastguard Worker// GCN: s_sendmsghalt sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x91,0xbf]
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Workers_trap 4
166*9880d681SAndroid Build Coastguard Worker// GCN: s_trap 4 ; encoding: [0x04,0x00,0x92,0xbf]
167*9880d681SAndroid Build Coastguard Worker
168*9880d681SAndroid Build Coastguard Workers_icache_inv
169*9880d681SAndroid Build Coastguard Worker// GCN: s_icache_inv ; encoding: [0x00,0x00,0x93,0xbf]
170*9880d681SAndroid Build Coastguard Worker
171*9880d681SAndroid Build Coastguard Workers_incperflevel 5
172*9880d681SAndroid Build Coastguard Worker// GCN: s_incperflevel 5 ; encoding: [0x05,0x00,0x94,0xbf]
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Workers_decperflevel 6
175*9880d681SAndroid Build Coastguard Worker// GCN: s_decperflevel 6 ; encoding: [0x06,0x00,0x95,0xbf]
176*9880d681SAndroid Build Coastguard Worker
177*9880d681SAndroid Build Coastguard Workers_ttracedata
178*9880d681SAndroid Build Coastguard Worker// GCN: s_ttracedata ; encoding: [0x00,0x00,0x96,0xbf]
179