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