1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
OPCODE(1, 1, COMP, ARL)
OPCODE(1, 1, COMP, MOV)
OPCODE(1, 1, CHAN, LIT)
OPCODE(1, 1, REPL, RCP)
OPCODE(1, 1, REPL, RSQ)
OPCODE(1, 1, CHAN, EXP)
OPCODE(1, 1, CHAN, LOG)
OPCODE(1, 2, COMP, MUL)
OPCODE(1, 2, COMP, ADD)
OPCODE(1, 2, REPL, DP3)
OPCODE(1, 2, REPL, DP4)
OPCODE(1, 2, CHAN, DST)
OPCODE(1, 2, COMP, MIN)
OPCODE(1, 2, COMP, MAX)
OPCODE(1, 2, COMP, SLT)
OPCODE(1, 2, COMP, SGE)
OPCODE(1, 3, COMP, MAD)
OPCODE(1, 2, OTHR, TEX_LZ, .is_tex = 1)
OPCODE(1, 3, COMP, LRP)
OPCODE(1, 3, COMP, FMA)
OPCODE(1, 1, REPL, SQRT)
OPCODE(1, 2, COMP, LDEXP)
OPCODE(1, 1, COMP, F2U64)
OPCODE(1, 1, COMP, F2I64)
OPCODE(1, 1, COMP, FRC)
OPCODE(1, 2, OTHR, TXF_LZ, .is_tex = 1)
OPCODE(1, 1, COMP, FLR)
OPCODE(1, 1, COMP, ROUND)
OPCODE(1, 1, REPL, EX2)
OPCODE(1, 1, REPL, LG2)
OPCODE(1, 2, REPL, POW)
OPCODE_GAP(31) /* removed */
OPCODE(1, 1, COMP, U2I64)
OPCODE(1, 0, OTHR, CLOCK)
OPCODE(1, 1, COMP, I2I64)
OPCODE_GAP(35) /* removed */
OPCODE(1, 1, REPL, COS)
OPCODE(1, 1, COMP, DDX)
OPCODE(1, 1, COMP, DDY)
OPCODE(0, 0, NONE, KILL)
OPCODE(1, 1, REPL, PK2H)
OPCODE(1, 1, REPL, PK2US)
OPCODE(1, 1, REPL, PK4B)
OPCODE(1, 1, REPL, PK4UB)
OPCODE(1, 1, COMP, D2U64)
OPCODE(1, 2, COMP, SEQ)
OPCODE(1, 1, COMP, D2I64)
OPCODE(1, 2, COMP, SGT)
OPCODE(1, 1, REPL, SIN)
OPCODE(1, 2, COMP, SLE)
OPCODE(1, 2, COMP, SNE)
OPCODE(1, 1, COMP, U642D)
OPCODE(1, 2, OTHR, TEX, .is_tex = 1)
OPCODE(1, 4, OTHR, TXD, .is_tex = 1)
OPCODE(1, 2, OTHR, TXP, .is_tex = 1)
OPCODE(1, 1, CHAN, UP2H)
OPCODE(1, 1, CHAN, UP2US)
OPCODE(1, 1, CHAN, UP4B)
OPCODE(1, 1, CHAN, UP4UB)
OPCODE(1, 1, COMP, U642F)
OPCODE(1, 1, COMP, I642F)
OPCODE(1, 1, COMP, ARR)
OPCODE(1, 1, COMP, I642D)
OPCODE(0, 0, NONE, CAL, .is_branch = 1)
OPCODE(0, 0, NONE, RET)
OPCODE(1, 1, COMP, SSG)
OPCODE(1, 3, COMP, CMP)
OPCODE_GAP(67) /* removed */
OPCODE(1, 2, OTHR, TXB, .is_tex = 1)
OPCODE(1, 1, OTHR, FBFETCH)
OPCODE(1, 2, COMP, DIV)
OPCODE(1, 2, REPL, DP2)
OPCODE(1, 2, OTHR, TXL, .is_tex = 1)
OPCODE(0, 0, NONE, BRK)
OPCODE(0, 1, NONE, IF, .is_branch = 1, .post_indent = 1)
OPCODE(0, 1, NONE, UIF, .is_branch = 1, .post_indent = 1)
OPCODE(1, 2, COMP, READ_INVOC)
OPCODE(0, 0, NONE, ELSE, .is_branch = 1, .pre_dedent = 1, .post_indent = 1)
OPCODE(0, 0, NONE, ENDIF, .pre_dedent = 1)
OPCODE(1, 1, COMP, DDX_FINE)
OPCODE(1, 1, COMP, DDY_FINE)
OPCODE_GAP(81) /* removed */
OPCODE_GAP(82) /* removed */
OPCODE(1, 1, COMP, CEIL)
OPCODE(1, 1, COMP, I2F)
OPCODE(1, 1, COMP, NOT)
OPCODE(1, 1, COMP, TRUNC)
OPCODE(1, 2, COMP, SHL)
OPCODE(1, 1, OTHR, BALLOT)
OPCODE(1, 2, COMP, AND)
OPCODE(1, 2, COMP, OR)
OPCODE(1, 2, COMP, MOD)
OPCODE(1, 2, COMP, XOR)
OPCODE_GAP(93) /* removed */
OPCODE(1, 2, OTHR, TXF, .is_tex = 1)
OPCODE(1, 2, OTHR, TXQ, .is_tex = 1)
OPCODE(0, 0, NONE, CONT)
OPCODE(0, 1, NONE, EMIT)
OPCODE(0, 1, NONE, ENDPRIM)
OPCODE(0, 0, NONE, BGNLOOP, .is_branch = 1, .post_indent = 1)
OPCODE(0, 0, NONE, BGNSUB, .post_indent = 1)
OPCODE(0, 0, NONE, ENDLOOP, .is_branch = 1, .pre_dedent = 1)
OPCODE(0, 0, NONE, ENDSUB, .pre_dedent = 1)
OPCODE_GAP(103) /* removed */
OPCODE(1, 1, OTHR, TXQS, .is_tex = 1)
OPCODE(1, 1, OTHR, RESQ)
OPCODE(1, 1, COMP, READ_FIRST)
OPCODE(0, 0, NONE, NOP)
OPCODE(1, 2, COMP, FSEQ)
OPCODE(1, 2, COMP, FSGE)
OPCODE(1, 2, COMP, FSLT)
OPCODE(1, 2, COMP, FSNE)
OPCODE(0, 1, OTHR, MEMBAR)
OPCODE_GAP(113) /* removed */
OPCODE_GAP(114) /* removed */
OPCODE_GAP(115) /* removed */
OPCODE(0, 1, NONE, KILL_IF)
OPCODE(0, 0, NONE, END)
OPCODE(1, 3, COMP, DFMA)
OPCODE(1, 1, COMP, F2I)
OPCODE(1, 2, COMP, IDIV)
OPCODE(1, 2, COMP, IMAX)
OPCODE(1, 2, COMP, IMIN)
OPCODE(1, 1, COMP, INEG)
OPCODE(1, 2, COMP, ISGE)
OPCODE(1, 2, COMP, ISHR)
OPCODE(1, 2, COMP, ISLT)
OPCODE(1, 1, COMP, F2U)
OPCODE(1, 1, COMP, U2F)
OPCODE(1, 2, COMP, UADD)
OPCODE(1, 2, COMP, UDIV)
OPCODE(1, 3, COMP, UMAD)
OPCODE(1, 2, COMP, UMAX)
OPCODE(1, 2, COMP, UMIN)
OPCODE(1, 2, COMP, UMOD)
OPCODE(1, 2, COMP, UMUL)
OPCODE(1, 2, COMP, USEQ)
OPCODE(1, 2, COMP, USGE)
OPCODE(1, 2, COMP, USHR)
OPCODE(1, 2, COMP, USLT)
OPCODE(1, 2, COMP, USNE)
OPCODE(0, 1, NONE, SWITCH)
OPCODE(0, 1, NONE, CASE)
OPCODE(0, 0, NONE, DEFAULT)
OPCODE(0, 0, NONE, ENDSWITCH)
OPCODE(1, 3, OTHR, SAMPLE)
OPCODE(1, 2, OTHR, SAMPLE_I)
OPCODE(1, 3, OTHR, SAMPLE_I_MS)
OPCODE(1, 4, OTHR, SAMPLE_B)
OPCODE(1, 4, OTHR, SAMPLE_C)
OPCODE(1, 4, OTHR, SAMPLE_C_LZ)
OPCODE(1, 5, OTHR, SAMPLE_D)
OPCODE(1, 4, OTHR, SAMPLE_L)
OPCODE(1, 3, OTHR, GATHER4)
OPCODE(1, 2, OTHR, SVIEWINFO)
OPCODE(1, 2, OTHR, SAMPLE_POS)
OPCODE(1, 2, OTHR, SAMPLE_INFO)
OPCODE(1, 1, COMP, UARL)
OPCODE(1, 3, COMP, UCMP)
OPCODE(1, 1, COMP, IABS)
OPCODE(1, 1, COMP, ISSG)
OPCODE(1, 2, OTHR, LOAD)
OPCODE(1, 2, OTHR, STORE, .is_store = 1)
OPCODE_GAP(163) /* removed */
OPCODE_GAP(164) /* removed */
OPCODE_GAP(165) /* removed */
OPCODE(0, 0, OTHR, BARRIER)
OPCODE(1, 3, OTHR, ATOMUADD, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMXCHG, .is_store = 1)
OPCODE(1, 4, OTHR, ATOMCAS, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMAND, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMOR, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMXOR, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMUMIN, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMUMAX, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMIMIN, .is_store = 1)
OPCODE(1, 3, OTHR, ATOMIMAX, .is_store = 1)
OPCODE(1, 3, OTHR, TEX2, .is_tex = 1)
OPCODE(1, 3, OTHR, TXB2, .is_tex = 1)
OPCODE(1, 3, OTHR, TXL2, .is_tex = 1)
OPCODE(1, 2, COMP, IMUL_HI)
OPCODE(1, 2, COMP, UMUL_HI)
OPCODE(1, 3, OTHR, TG4, .is_tex = 1)
OPCODE(1, 2, OTHR, LODQ, .is_tex = 1)
OPCODE(1, 3, COMP, IBFE)
OPCODE(1, 3, COMP, UBFE)
OPCODE(1, 4, COMP, BFI)
OPCODE(1, 1, COMP, BREV)
OPCODE(1, 1, COMP, POPC)
OPCODE(1, 1, COMP, LSB)
OPCODE(1, 1, COMP, IMSB)
OPCODE(1, 1, COMP, UMSB)
OPCODE(1, 1, OTHR, INTERP_CENTROID)
OPCODE(1, 2, OTHR, INTERP_SAMPLE)
OPCODE(1, 2, OTHR, INTERP_OFFSET)
OPCODE(1, 1, COMP, F2D)
OPCODE(1, 1, COMP, D2F)
OPCODE(1, 1, COMP, DABS)
OPCODE(1, 1, COMP, DNEG)
OPCODE(1, 2, COMP, DADD)
OPCODE(1, 2, COMP, DMUL)
OPCODE(1, 2, COMP, DMAX)
OPCODE(1, 2, COMP, DMIN)
OPCODE(1, 2, COMP, DSLT)
OPCODE(1, 2, COMP, DSGE)
OPCODE(1, 2, COMP, DSEQ)
OPCODE(1, 2, COMP, DSNE)
OPCODE(1, 1, COMP, DRCP)
OPCODE(1, 1, COMP, DSQRT)
OPCODE(1, 3, COMP, DMAD)
OPCODE(1, 1, COMP, DFRAC)
OPCODE(1, 2, COMP, DLDEXP)
OPCODE(2, 1, REPL, DFRACEXP)
OPCODE(1, 1, COMP, D2I)
OPCODE(1, 1, COMP, I2D)
OPCODE(1, 1, COMP, D2U)
OPCODE(1, 1, COMP, U2D)
OPCODE(1, 1, COMP, DRSQ)
OPCODE(1, 1, COMP, DTRUNC)
OPCODE(1, 1, COMP, DCEIL)
OPCODE(1, 1, COMP, DFLR)
OPCODE(1, 1, COMP, DROUND)
OPCODE(1, 1, COMP, DSSG)
OPCODE(1, 1, COMP, VOTE_ANY)
OPCODE(1, 1, COMP, VOTE_ALL)
OPCODE(1, 1, COMP, VOTE_EQ)
OPCODE(1, 2, COMP, U64SEQ)
OPCODE(1, 2, COMP, U64SNE)
OPCODE(1, 2, COMP, I64SLT)
OPCODE(1, 2, COMP, U64SLT)
OPCODE(1, 2, COMP, I64SGE)
OPCODE(1, 2, COMP, U64SGE)
OPCODE(1, 2, COMP, I64MIN)
OPCODE(1, 2, COMP, U64MIN)
OPCODE(1, 2, COMP, I64MAX)
OPCODE(1, 2, COMP, U64MAX)
OPCODE(1, 1, COMP, I64ABS)
OPCODE(1, 1, COMP, I64SSG)
OPCODE(1, 1, COMP, I64NEG)
OPCODE(1, 2, COMP, U64ADD)
OPCODE(1, 2, COMP, U64MUL)
OPCODE(1, 2, COMP, U64SHL)
OPCODE(1, 2, COMP, I64SHR)
OPCODE(1, 2, COMP, U64SHR)
OPCODE(1, 2, COMP, I64DIV)
OPCODE(1, 2, COMP, U64DIV)
OPCODE(1, 2, COMP, I64MOD)
OPCODE(1, 2, COMP, U64MOD)
OPCODE(1, 2, COMP, DDIV)
|