Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Machine Code Emitter *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 : // Undef for HURD
10 : #ifdef EIEIO
11 : #undef EIEIO
12 : #endif
13 0 : uint64_t R600MCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
14 : SmallVectorImpl<MCFixup> &Fixups,
15 : const MCSubtargetInfo &STI) const {
16 : static const uint64_t InstBits[] = {
17 : UINT64_C(0),
18 : UINT64_C(0),
19 : UINT64_C(0),
20 : UINT64_C(0),
21 : UINT64_C(0),
22 : UINT64_C(0),
23 : UINT64_C(0),
24 : UINT64_C(0),
25 : UINT64_C(0),
26 : UINT64_C(0),
27 : UINT64_C(0),
28 : UINT64_C(0),
29 : UINT64_C(0),
30 : UINT64_C(0),
31 : UINT64_C(0),
32 : UINT64_C(0),
33 : UINT64_C(0),
34 : UINT64_C(0),
35 : UINT64_C(0),
36 : UINT64_C(0),
37 : UINT64_C(0),
38 : UINT64_C(0),
39 : UINT64_C(0),
40 : UINT64_C(0),
41 : UINT64_C(0),
42 : UINT64_C(0),
43 : UINT64_C(0),
44 : UINT64_C(0),
45 : UINT64_C(0),
46 : UINT64_C(0),
47 : UINT64_C(0),
48 : UINT64_C(0),
49 : UINT64_C(0),
50 : UINT64_C(0),
51 : UINT64_C(0),
52 : UINT64_C(0),
53 : UINT64_C(0),
54 : UINT64_C(0),
55 : UINT64_C(0),
56 : UINT64_C(0),
57 : UINT64_C(0),
58 : UINT64_C(0),
59 : UINT64_C(0),
60 : UINT64_C(0),
61 : UINT64_C(0),
62 : UINT64_C(0),
63 : UINT64_C(0),
64 : UINT64_C(0),
65 : UINT64_C(0),
66 : UINT64_C(0),
67 : UINT64_C(0),
68 : UINT64_C(0),
69 : UINT64_C(0),
70 : UINT64_C(0),
71 : UINT64_C(0),
72 : UINT64_C(0),
73 : UINT64_C(0),
74 : UINT64_C(0),
75 : UINT64_C(0),
76 : UINT64_C(0),
77 : UINT64_C(0),
78 : UINT64_C(0),
79 : UINT64_C(0),
80 : UINT64_C(0),
81 : UINT64_C(0),
82 : UINT64_C(0),
83 : UINT64_C(0),
84 : UINT64_C(0),
85 : UINT64_C(0),
86 : UINT64_C(0),
87 : UINT64_C(0),
88 : UINT64_C(0),
89 : UINT64_C(0),
90 : UINT64_C(0),
91 : UINT64_C(0),
92 : UINT64_C(0),
93 : UINT64_C(0),
94 : UINT64_C(0),
95 : UINT64_C(0),
96 : UINT64_C(0),
97 : UINT64_C(0),
98 : UINT64_C(0),
99 : UINT64_C(0),
100 : UINT64_C(0),
101 : UINT64_C(0),
102 : UINT64_C(0),
103 : UINT64_C(0),
104 : UINT64_C(0),
105 : UINT64_C(0),
106 : UINT64_C(0),
107 : UINT64_C(0),
108 : UINT64_C(0),
109 : UINT64_C(0),
110 : UINT64_C(0),
111 : UINT64_C(0),
112 : UINT64_C(0),
113 : UINT64_C(0),
114 : UINT64_C(0),
115 : UINT64_C(0),
116 : UINT64_C(0),
117 : UINT64_C(0),
118 : UINT64_C(0),
119 : UINT64_C(0),
120 : UINT64_C(0),
121 : UINT64_C(0),
122 : UINT64_C(0),
123 : UINT64_C(0),
124 : UINT64_C(0),
125 : UINT64_C(0),
126 : UINT64_C(0),
127 : UINT64_C(0),
128 : UINT64_C(0),
129 : UINT64_C(0),
130 : UINT64_C(0),
131 : UINT64_C(0),
132 : UINT64_C(0),
133 : UINT64_C(0),
134 : UINT64_C(0),
135 : UINT64_C(0),
136 : UINT64_C(0),
137 : UINT64_C(0),
138 : UINT64_C(0),
139 : UINT64_C(0),
140 : UINT64_C(0),
141 : UINT64_C(0),
142 : UINT64_C(0),
143 : UINT64_C(0),
144 : UINT64_C(0),
145 : UINT64_C(0),
146 : UINT64_C(0),
147 : UINT64_C(0),
148 : UINT64_C(0),
149 : UINT64_C(0),
150 : UINT64_C(0),
151 : UINT64_C(0),
152 : UINT64_C(0),
153 : UINT64_C(0),
154 : UINT64_C(0),
155 : UINT64_C(0),
156 : UINT64_C(0),
157 : UINT64_C(0),
158 : UINT64_C(0),
159 : UINT64_C(0),
160 : UINT64_C(0),
161 : UINT64_C(0),
162 : UINT64_C(0),
163 : UINT64_C(0),
164 : UINT64_C(0),
165 : UINT64_C(0),
166 : UINT64_C(0),
167 : UINT64_C(0),
168 : UINT64_C(0),
169 : UINT64_C(0),
170 : UINT64_C(0),
171 : UINT64_C(0),
172 : UINT64_C(0),
173 : UINT64_C(0),
174 : UINT64_C(0),
175 : UINT64_C(0),
176 : UINT64_C(0),
177 : UINT64_C(0),
178 : UINT64_C(0),
179 : UINT64_C(0),
180 : UINT64_C(0),
181 : UINT64_C(0),
182 : UINT64_C(0),
183 : UINT64_C(0),
184 : UINT64_C(0),
185 : UINT64_C(0),
186 : UINT64_C(0),
187 : UINT64_C(0),
188 : UINT64_C(0),
189 : UINT64_C(0),
190 : UINT64_C(0),
191 : UINT64_C(0),
192 : UINT64_C(0),
193 : UINT64_C(0),
194 : UINT64_C(0),
195 : UINT64_C(0),
196 : UINT64_C(0),
197 : UINT64_C(0),
198 : UINT64_C(0),
199 : UINT64_C(0),
200 : UINT64_C(0),
201 : UINT64_C(0),
202 : UINT64_C(0),
203 : UINT64_C(0),
204 : UINT64_C(0),
205 : UINT64_C(0),
206 : UINT64_C(0),
207 : UINT64_C(0),
208 : UINT64_C(0),
209 : UINT64_C(0),
210 : UINT64_C(0),
211 : UINT64_C(0),
212 : UINT64_C(0), // ADD
213 : UINT64_C(45079976738816), // ADDC_UINT
214 : UINT64_C(28587302322176), // ADD_INT
215 : UINT64_C(0), // ALU_CLAUSE
216 : UINT64_C(26388279066624), // AND_INT
217 : UINT64_C(11544872091648), // ASHR_eg
218 : UINT64_C(61572651155456), // ASHR_r600
219 : UINT64_C(93458488360960), // BCNT_INT
220 : UINT64_C(175921860444160), // BFE_INT_eg
221 : UINT64_C(140737488355328), // BFE_UINT_eg
222 : UINT64_C(211106232532992), // BFI_INT_eg
223 : UINT64_C(87960930222080), // BFM_INT_eg
224 : UINT64_C(422212465065984), // BIT_ALIGN_INT_eg
225 : UINT64_C(9895604649984), // CEIL
226 : UINT64_C(11529215046068469760), // CF_ALU
227 : UINT64_C(13258597302978740224), // CF_ALU_BREAK
228 : UINT64_C(12970366926827028480), // CF_ALU_CONTINUE
229 : UINT64_C(13546827679130451968), // CF_ALU_ELSE_AFTER
230 : UINT64_C(12105675798371893248), // CF_ALU_POP_AFTER
231 : UINT64_C(11817445422220181504), // CF_ALU_PUSH_BEFORE
232 : UINT64_C(9565645608534933504), // CF_CALL_FS_EG
233 : UINT64_C(9907919180215091200), // CF_CALL_FS_R600
234 : UINT64_C(9367487224930631680), // CF_CONTINUE_EG
235 : UINT64_C(9511602413006487552), // CF_CONTINUE_R600
236 : UINT64_C(9457559217478041600), // CF_ELSE_EG
237 : UINT64_C(9691746398101307392), // CF_ELSE_R600
238 : UINT64_C(9799832789158199296), // CF_END_CM
239 : UINT64_C(9232379236109516800), // CF_END_EG
240 : UINT64_C(9232379236109516800), // CF_END_R600
241 : UINT64_C(9403516021949595648), // CF_JUMP_EG
242 : UINT64_C(9583660007044415488), // CF_JUMP_R600
243 : UINT64_C(9421530420459077632), // CF_PUSH_EG
244 : UINT64_C(9655717601082343424), // CF_PUSH_ELSE_R600
245 : UINT64_C(9241386435364257792), // CF_TC_EG
246 : UINT64_C(9259400833873739776), // CF_TC_R600
247 : UINT64_C(9259400833873739776), // CF_VC_EG
248 : UINT64_C(9295429630892703744), // CF_VC_R600
249 : UINT64_C(985162418487296), // CNDE_INT
250 : UINT64_C(879609302220800), // CNDE_eg
251 : UINT64_C(844424930131968), // CNDE_r600
252 : UINT64_C(1055531162664960), // CNDGE_INT
253 : UINT64_C(949978046398464), // CNDGE_eg
254 : UINT64_C(914793674309632), // CNDGE_r600
255 : UINT64_C(1020346790576128), // CNDGT_INT
256 : UINT64_C(914793674309632), // CNDGT_eg
257 : UINT64_C(879609302220800), // CNDGT_r600
258 : UINT64_C(78065325572096), // COS_cm
259 : UINT64_C(78065325572096), // COS_eg
260 : UINT64_C(61022895341568), // COS_r600
261 : UINT64_C(61022895341568), // COS_r700
262 : UINT64_C(105553116266496), // CUBE_eg_real
263 : UINT64_C(45079976738816), // CUBE_r600_real
264 : UINT64_C(104453604638720), // DOT4_eg
265 : UINT64_C(43980465111040), // DOT4_r600
266 : UINT64_C(9223372036854775808), // EG_ExportBuf
267 : UINT64_C(9223372040076001280), // EG_ExportSwz
268 : UINT64_C(9313444029402185728), // END_LOOP_EG
269 : UINT64_C(9403516021949595648), // END_LOOP_R600
270 : UINT64_C(70918499991552), // EXP_IEEE_cm
271 : UINT64_C(70918499991552), // EXP_IEEE_eg
272 : UINT64_C(53326313947136), // EXP_IEEE_r600
273 : UINT64_C(0), // FETCH_CLAUSE
274 : UINT64_C(94008244174848), // FFBH_UINT
275 : UINT64_C(94557999988736), // FFBL_INT
276 : UINT64_C(10995116277760), // FLOOR
277 : UINT64_C(89610197663744), // FLT16_TO_FLT32
278 : UINT64_C(89060441849856), // FLT32_TO_FLT16
279 : UINT64_C(43980465111040), // FLT_TO_INT_eg
280 : UINT64_C(58823872086016), // FLT_TO_INT_r600
281 : UINT64_C(84662395338752), // FLT_TO_UINT_eg
282 : UINT64_C(66520453480448), // FLT_TO_UINT_r600
283 : UINT64_C(246290604621824), // FMA_eg
284 : UINT64_C(8796093022208), // FRACT
285 : UINT64_C(46181635850240), // GROUP_BARRIER
286 : UINT64_C(123145302310912), // INTERP_LOAD_P0
287 : UINT64_C(4294967295), // INTERP_PAIR_XY
288 : UINT64_C(4294967295), // INTERP_PAIR_ZW
289 : UINT64_C(4294967295), // INTERP_VEC_LOAD
290 : UINT64_C(5747147278385152), // INTERP_XY
291 : UINT64_C(5747697034199040), // INTERP_ZW
292 : UINT64_C(85212151152640), // INT_TO_FLT_eg
293 : UINT64_C(59373627899904), // INT_TO_FLT_r600
294 : UINT64_C(24739011624960), // KILLGT
295 : UINT64_C(598134325510144), // LDS_ADD
296 : UINT64_C(288828510477221888), // LDS_ADD_RET
297 : UINT64_C(81662927618179072), // LDS_AND
298 : UINT64_C(369893303769890816), // LDS_AND_RET
299 : UINT64_C(486986894081523712), // LDS_BYTE_READ_RET
300 : UINT64_C(162727720910848000), // LDS_BYTE_WRITE
301 : UINT64_C(144713322401366016), // LDS_CMPST
302 : UINT64_C(432943698553077760), // LDS_CMPST_RET
303 : UINT64_C(54641329853956096), // LDS_MAX_INT
304 : UINT64_C(342871706005667840), // LDS_MAX_INT_RET
305 : UINT64_C(72655728363438080), // LDS_MAX_UINT
306 : UINT64_C(360886104515149824), // LDS_MAX_UINT_RET
307 : UINT64_C(45634130599215104), // LDS_MIN_INT
308 : UINT64_C(333864506750926848), // LDS_MIN_INT_RET
309 : UINT64_C(63648529108697088), // LDS_MIN_UINT
310 : UINT64_C(351878905260408832), // LDS_MIN_UINT_RET
311 : UINT64_C(90670126872920064), // LDS_OR
312 : UINT64_C(378900503024631808), // LDS_OR_RET
313 : UINT64_C(450958097062559744), // LDS_READ_RET
314 : UINT64_C(505001292591005696), // LDS_SHORT_READ_RET
315 : UINT64_C(171734920165588992), // LDS_SHORT_WRITE
316 : UINT64_C(9605333580251136), // LDS_SUB
317 : UINT64_C(297835709731962880), // LDS_SUB_RET
318 : UINT64_C(495994093336264704), // LDS_UBYTE_READ_RET
319 : UINT64_C(514008491845746688), // LDS_USHORT_READ_RET
320 : UINT64_C(117691724637143040), // LDS_WRITE
321 : UINT64_C(117691724637143040), // LDS_WRXCHG
322 : UINT64_C(405922100788854784), // LDS_WRXCHG_RET
323 : UINT64_C(99677326127661056), // LDS_XOR
324 : UINT64_C(387907702279372800), // LDS_XOR_RET
325 : UINT64_C(0), // LITERALS
326 : UINT64_C(71468255805440), // LOG_CLAMPED_eg
327 : UINT64_C(53876069761024), // LOG_CLAMPED_r600
328 : UINT64_C(72018011619328), // LOG_IEEE_cm
329 : UINT64_C(72018011619328), // LOG_IEEE_eg
330 : UINT64_C(54425825574912), // LOG_IEEE_r600
331 : UINT64_C(9385501623440113664), // LOOP_BREAK_EG
332 : UINT64_C(9547631210025451520), // LOOP_BREAK_R600
333 : UINT64_C(12644383719424), // LSHL_eg
334 : UINT64_C(62672162783232), // LSHL_r600
335 : UINT64_C(12094627905536), // LSHR_eg
336 : UINT64_C(62122406969344), // LSHR_r600
337 : UINT64_C(1649267441664), // MAX
338 : UINT64_C(2748779069440), // MAX_DX10
339 : UINT64_C(29686813949952), // MAX_INT
340 : UINT64_C(30786325577728), // MAX_UINT
341 : UINT64_C(2199023255552), // MIN
342 : UINT64_C(3298534883328), // MIN_DX10
343 : UINT64_C(30236569763840), // MIN_INT
344 : UINT64_C(31336081391616), // MIN_UINT
345 : UINT64_C(13743895347200), // MOV
346 : UINT64_C(112150186033152), // MOVA_INT_eg
347 : UINT64_C(549755813888), // MUL
348 : UINT64_C(844424930131968), // MULADD_IEEE_eg
349 : UINT64_C(703687441776640), // MULADD_IEEE_r600
350 : UINT64_C(281474976710656), // MULADD_INT24_cm
351 : UINT64_C(562949953421312), // MULADD_UINT24_eg
352 : UINT64_C(703687441776640), // MULADD_eg
353 : UINT64_C(562949953421312), // MULADD_r600
354 : UINT64_C(79164837199872), // MULHI_INT_cm
355 : UINT64_C(50577534877696), // MULHI_INT_cm24
356 : UINT64_C(79164837199872), // MULHI_INT_eg
357 : UINT64_C(63771674411008), // MULHI_INT_r600
358 : UINT64_C(97856534872064), // MULHI_UINT24_eg
359 : UINT64_C(80264348827648), // MULHI_UINT_cm
360 : UINT64_C(97856534872064), // MULHI_UINT_cm24
361 : UINT64_C(80264348827648), // MULHI_UINT_eg
362 : UINT64_C(64871186038784), // MULHI_UINT_r600
363 : UINT64_C(78615081385984), // MULLO_INT_cm
364 : UINT64_C(78615081385984), // MULLO_INT_eg
365 : UINT64_C(63221918597120), // MULLO_INT_r600
366 : UINT64_C(79714593013760), // MULLO_UINT_cm
367 : UINT64_C(79714593013760), // MULLO_UINT_eg
368 : UINT64_C(64321430224896), // MULLO_UINT_r600
369 : UINT64_C(1099511627776), // MUL_IEEE
370 : UINT64_C(50027779063808), // MUL_INT24_cm
371 : UINT64_C(1090715534753792), // MUL_LIT_eg
372 : UINT64_C(422212465065984), // MUL_LIT_r600
373 : UINT64_C(99505802313728), // MUL_UINT24_eg
374 : UINT64_C(28037546508288), // NOT_INT
375 : UINT64_C(26938034880512), // OR_INT
376 : UINT64_C(0), // PAD
377 : UINT64_C(9475573615987523584), // POP_EG
378 : UINT64_C(9727775195120271360), // POP_R600
379 : UINT64_C(17592186044416), // PRED_SETE
380 : UINT64_C(36283883716608), // PRED_SETE_INT
381 : UINT64_C(18691697672192), // PRED_SETGE
382 : UINT64_C(37383395344384), // PRED_SETGE_INT
383 : UINT64_C(18141941858304), // PRED_SETGT
384 : UINT64_C(36833639530496), // PRED_SETGT_INT
385 : UINT64_C(19241453486080), // PRED_SETNE
386 : UINT64_C(37933151158272), // PRED_SETNE_INT
387 : UINT64_C(9223372036854775808), // R600_ExportBuf
388 : UINT64_C(9223372040076001280), // R600_ExportSwz
389 : UINT64_C(10772874191460901488), // RAT_ATOMIC_ADD_NORET
390 : UINT64_C(10772874191460900976), // RAT_ATOMIC_ADD_RTN
391 : UINT64_C(10772874191460901600), // RAT_ATOMIC_AND_NORET
392 : UINT64_C(10772874191460901088), // RAT_ATOMIC_AND_RTN
393 : UINT64_C(10772874191460901440), // RAT_ATOMIC_CMPXCHG_INT_NORET
394 : UINT64_C(10772874191460900928), // RAT_ATOMIC_CMPXCHG_INT_RTN
395 : UINT64_C(10772874191460901680), // RAT_ATOMIC_DEC_UINT_NORET
396 : UINT64_C(10772874191460901168), // RAT_ATOMIC_DEC_UINT_RTN
397 : UINT64_C(10772874191460901664), // RAT_ATOMIC_INC_UINT_NORET
398 : UINT64_C(10772874191460901152), // RAT_ATOMIC_INC_UINT_RTN
399 : UINT64_C(10772874191460901568), // RAT_ATOMIC_MAX_INT_NORET
400 : UINT64_C(10772874191460901056), // RAT_ATOMIC_MAX_INT_RTN
401 : UINT64_C(10772874191460901584), // RAT_ATOMIC_MAX_UINT_NORET
402 : UINT64_C(10772874191460901072), // RAT_ATOMIC_MAX_UINT_RTN
403 : UINT64_C(10772874191460901536), // RAT_ATOMIC_MIN_INT_NORET
404 : UINT64_C(10772874191460901024), // RAT_ATOMIC_MIN_INT_RTN
405 : UINT64_C(10772874191460901552), // RAT_ATOMIC_MIN_UINT_NORET
406 : UINT64_C(10772874191460901040), // RAT_ATOMIC_MIN_UINT_RTN
407 : UINT64_C(10772874191460901616), // RAT_ATOMIC_OR_NORET
408 : UINT64_C(10772874191460901104), // RAT_ATOMIC_OR_RTN
409 : UINT64_C(10772874191460901520), // RAT_ATOMIC_RSUB_NORET
410 : UINT64_C(10772874191460901008), // RAT_ATOMIC_RSUB_RTN
411 : UINT64_C(10772874191460901504), // RAT_ATOMIC_SUB_NORET
412 : UINT64_C(10772874191460900992), // RAT_ATOMIC_SUB_RTN
413 : UINT64_C(10772874191460901408), // RAT_ATOMIC_XCHG_INT_NORET
414 : UINT64_C(10772874191460900880), // RAT_ATOMIC_XCHG_INT_RTN
415 : UINT64_C(10772874191460901632), // RAT_ATOMIC_XOR_NORET
416 : UINT64_C(10772874191460901120), // RAT_ATOMIC_XOR_RTN
417 : UINT64_C(10772874191460901136), // RAT_MSKOR
418 : UINT64_C(10790888589970383168), // RAT_STORE_DWORD128
419 : UINT64_C(10790642299365761344), // RAT_STORE_DWORD32
420 : UINT64_C(10790677483737850176), // RAT_STORE_DWORD64
421 : UINT64_C(10772874191460900880), // RAT_STORE_TYPED_cm
422 : UINT64_C(10772874191460900880), // RAT_STORE_TYPED_eg
423 : UINT64_C(10790888589970382880), // RAT_WRITE_CACHELESS_128_eg
424 : UINT64_C(10790642299365761056), // RAT_WRITE_CACHELESS_32_eg
425 : UINT64_C(10790677483737849888), // RAT_WRITE_CACHELESS_64_eg
426 : UINT64_C(74217034874880), // RECIPSQRT_CLAMPED_cm
427 : UINT64_C(74217034874880), // RECIPSQRT_CLAMPED_eg
428 : UINT64_C(56624848830464), // RECIPSQRT_CLAMPED_r600
429 : UINT64_C(75316546502656), // RECIPSQRT_IEEE_cm
430 : UINT64_C(75316546502656), // RECIPSQRT_IEEE_eg
431 : UINT64_C(57724360458240), // RECIPSQRT_IEEE_r600
432 : UINT64_C(72567767433216), // RECIP_CLAMPED_cm
433 : UINT64_C(72567767433216), // RECIP_CLAMPED_eg
434 : UINT64_C(54975581388800), // RECIP_CLAMPED_r600
435 : UINT64_C(73667279060992), // RECIP_IEEE_cm
436 : UINT64_C(73667279060992), // RECIP_IEEE_eg
437 : UINT64_C(56075093016576), // RECIP_IEEE_r600
438 : UINT64_C(81363860455424), // RECIP_UINT_eg
439 : UINT64_C(65970697666560), // RECIP_UINT_r600
440 : UINT64_C(10445360463872), // RNDNE
441 : UINT64_C(4398046511104), // SETE
442 : UINT64_C(6597069766656), // SETE_DX10
443 : UINT64_C(31885837205504), // SETE_INT
444 : UINT64_C(7696581394432), // SETGE_DX10
445 : UINT64_C(32985348833280), // SETGE_INT
446 : UINT64_C(34634616274944), // SETGE_UINT
447 : UINT64_C(7146825580544), // SETGT_DX10
448 : UINT64_C(32435593019392), // SETGT_INT
449 : UINT64_C(34084860461056), // SETGT_UINT
450 : UINT64_C(8246337208320), // SETNE_DX10
451 : UINT64_C(33535104647168), // SETNE_INT
452 : UINT64_C(5497558138880), // SGE
453 : UINT64_C(4947802324992), // SGT
454 : UINT64_C(77515569758208), // SIN_cm
455 : UINT64_C(77515569758208), // SIN_eg
456 : UINT64_C(60473139527680), // SIN_r600
457 : UINT64_C(60473139527680), // SIN_r700
458 : UINT64_C(6047313952768), // SNE
459 : UINT64_C(45629732552704), // SUBB_UINT
460 : UINT64_C(29137058136064), // SUB_INT
461 : UINT64_C(7), // TEX_GET_GRADIENTS_H
462 : UINT64_C(8), // TEX_GET_GRADIENTS_V
463 : UINT64_C(4), // TEX_GET_TEXTURE_RESINFO
464 : UINT64_C(3), // TEX_LD
465 : UINT64_C(35), // TEX_LDPTR
466 : UINT64_C(16), // TEX_SAMPLE
467 : UINT64_C(24), // TEX_SAMPLE_C
468 : UINT64_C(28), // TEX_SAMPLE_C_G
469 : UINT64_C(25), // TEX_SAMPLE_C_L
470 : UINT64_C(26), // TEX_SAMPLE_C_LB
471 : UINT64_C(20), // TEX_SAMPLE_G
472 : UINT64_C(17), // TEX_SAMPLE_L
473 : UINT64_C(18), // TEX_SAMPLE_LB
474 : UINT64_C(11), // TEX_SET_GRADIENTS_H
475 : UINT64_C(12), // TEX_SET_GRADIENTS_V
476 : UINT64_C(16775081780284751936), // TEX_VTX_CONSTBUF
477 : UINT64_C(9236056004066541632), // TEX_VTX_TEXBUF
478 : UINT64_C(9345848836096), // TRUNC
479 : UINT64_C(85761906966528), // UINT_TO_FLT_eg
480 : UINT64_C(59923383713792), // UINT_TO_FLT_r600
481 : UINT64_C(1769087820812517440), // VTX_READ_128_cm
482 : UINT64_C(1769087821886259264), // VTX_READ_128_eg
483 : UINT64_C(1251983104222953536), // VTX_READ_16_cm
484 : UINT64_C(1251983104357171264), // VTX_READ_16_eg
485 : UINT64_C(1396098292298809408), // VTX_READ_32_cm
486 : UINT64_C(1396098292567244864), // VTX_READ_32_eg
487 : UINT64_C(1684223115334254656), // VTX_READ_64_cm
488 : UINT64_C(1684223115871125568), // VTX_READ_64_eg
489 : UINT64_C(1179925510185025600), // VTX_READ_8_cm
490 : UINT64_C(1179925510252134464), // VTX_READ_8_eg
491 : UINT64_C(9331458427911667712), // WHILE_LOOP_EG
492 : UINT64_C(9439544818968559616), // WHILE_LOOP_R600
493 : UINT64_C(27487790694400), // XOR_INT
494 : UINT64_C(0)
495 : };
496 0 : const unsigned opcode = MI.getOpcode();
497 0 : uint64_t Value = InstBits[opcode];
498 : uint64_t op = 0;
499 : (void)op; // suppress warning
500 0 : switch (opcode) {
501 : case R600::CF_CALL_FS_EG:
502 : case R600::CF_CALL_FS_R600:
503 : case R600::CF_END_CM:
504 : case R600::CF_END_EG:
505 : case R600::CF_END_R600:
506 : case R600::GROUP_BARRIER:
507 : case R600::INTERP_PAIR_XY:
508 : case R600::INTERP_PAIR_ZW:
509 : case R600::INTERP_VEC_LOAD:
510 : case R600::PAD: {
511 : break;
512 : }
513 : case R600::CF_CONTINUE_EG:
514 : case R600::END_LOOP_EG:
515 : case R600::LOOP_BREAK_EG:
516 : case R600::WHILE_LOOP_EG: {
517 : // op: ADDR
518 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
519 0 : Value |= op & UINT64_C(16777215);
520 0 : break;
521 : }
522 : case R600::CF_TC_EG:
523 : case R600::CF_VC_EG: {
524 : // op: ADDR
525 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
526 0 : Value |= op & UINT64_C(16777215);
527 : // op: COUNT
528 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
529 0 : Value |= (op & UINT64_C(63)) << 42;
530 0 : break;
531 : }
532 : case R600::CF_ELSE_EG:
533 : case R600::CF_JUMP_EG:
534 : case R600::CF_PUSH_EG:
535 : case R600::POP_EG: {
536 : // op: ADDR
537 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
538 0 : Value |= op & UINT64_C(16777215);
539 : // op: POP_COUNT
540 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
541 0 : Value |= (op & UINT64_C(7)) << 32;
542 0 : break;
543 : }
544 : case R600::CF_ALU:
545 : case R600::CF_ALU_BREAK:
546 : case R600::CF_ALU_CONTINUE:
547 : case R600::CF_ALU_ELSE_AFTER:
548 : case R600::CF_ALU_POP_AFTER:
549 : case R600::CF_ALU_PUSH_BEFORE: {
550 : // op: ADDR
551 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
552 0 : Value |= op & UINT64_C(4194303);
553 : // op: KCACHE_BANK0
554 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
555 0 : Value |= (op & UINT64_C(15)) << 22;
556 : // op: KCACHE_BANK1
557 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
558 0 : Value |= (op & UINT64_C(15)) << 26;
559 : // op: KCACHE_MODE0
560 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
561 0 : Value |= (op & UINT64_C(3)) << 30;
562 : // op: KCACHE_MODE1
563 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
564 0 : Value |= (op & UINT64_C(3)) << 32;
565 : // op: KCACHE_ADDR0
566 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
567 0 : Value |= (op & UINT64_C(255)) << 34;
568 : // op: KCACHE_ADDR1
569 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
570 0 : Value |= (op & UINT64_C(255)) << 42;
571 : // op: COUNT
572 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
573 0 : Value |= (op & UINT64_C(127)) << 50;
574 0 : break;
575 : }
576 : case R600::CF_CONTINUE_R600:
577 : case R600::CF_PUSH_ELSE_R600:
578 : case R600::END_LOOP_R600:
579 : case R600::LOOP_BREAK_R600:
580 : case R600::WHILE_LOOP_R600: {
581 : // op: ADDR
582 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
583 0 : Value |= op & UINT64_C(4294967295);
584 0 : break;
585 : }
586 : case R600::CF_TC_R600:
587 : case R600::CF_VC_R600: {
588 : // op: ADDR
589 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
590 0 : Value |= op & UINT64_C(4294967295);
591 : // op: CNT
592 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
593 0 : Value |= (op & UINT64_C(8)) << 48;
594 0 : Value |= (op & UINT64_C(7)) << 42;
595 0 : break;
596 : }
597 : case R600::CF_ELSE_R600:
598 : case R600::CF_JUMP_R600:
599 : case R600::POP_R600: {
600 : // op: ADDR
601 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
602 0 : Value |= op & UINT64_C(4294967295);
603 : // op: POP_COUNT
604 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
605 0 : Value |= (op & UINT64_C(7)) << 32;
606 0 : break;
607 : }
608 : case R600::TEX_GET_GRADIENTS_H:
609 : case R600::TEX_GET_GRADIENTS_V:
610 : case R600::TEX_GET_TEXTURE_RESINFO:
611 : case R600::TEX_LD:
612 : case R600::TEX_LDPTR:
613 : case R600::TEX_SAMPLE:
614 : case R600::TEX_SAMPLE_C:
615 : case R600::TEX_SAMPLE_C_G:
616 : case R600::TEX_SAMPLE_C_L:
617 : case R600::TEX_SAMPLE_C_LB:
618 : case R600::TEX_SAMPLE_G:
619 : case R600::TEX_SAMPLE_L:
620 : case R600::TEX_SAMPLE_LB:
621 : case R600::TEX_SET_GRADIENTS_H:
622 : case R600::TEX_SET_GRADIENTS_V: {
623 : // op: RESOURCE_ID
624 0 : op = getMachineOpValue(MI, MI.getOperand(13), Fixups, STI);
625 0 : Value |= (op & UINT64_C(255)) << 8;
626 : // op: SRC_GPR
627 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
628 0 : Value |= (op & UINT64_C(127)) << 16;
629 : // op: DST_GPR
630 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
631 0 : Value |= (op & UINT64_C(127)) << 32;
632 : // op: DST_SEL_X
633 0 : op = getMachineOpValue(MI, MI.getOperand(9), Fixups, STI);
634 0 : Value |= (op & UINT64_C(7)) << 41;
635 : // op: DST_SEL_Y
636 0 : op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
637 0 : Value |= (op & UINT64_C(7)) << 44;
638 : // op: DST_SEL_Z
639 0 : op = getMachineOpValue(MI, MI.getOperand(11), Fixups, STI);
640 0 : Value |= (op & UINT64_C(7)) << 47;
641 : // op: DST_SEL_W
642 0 : op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
643 0 : Value |= (op & UINT64_C(7)) << 50;
644 : // op: COORD_TYPE_X
645 0 : op = getMachineOpValue(MI, MI.getOperand(15), Fixups, STI);
646 0 : Value |= (op & UINT64_C(1)) << 60;
647 : // op: COORD_TYPE_Y
648 0 : op = getMachineOpValue(MI, MI.getOperand(16), Fixups, STI);
649 0 : Value |= (op & UINT64_C(1)) << 61;
650 : // op: COORD_TYPE_Z
651 0 : op = getMachineOpValue(MI, MI.getOperand(17), Fixups, STI);
652 0 : Value |= (op & UINT64_C(1)) << 62;
653 : // op: COORD_TYPE_W
654 0 : op = getMachineOpValue(MI, MI.getOperand(18), Fixups, STI);
655 0 : Value |= (op & UINT64_C(1)) << 63;
656 0 : break;
657 : }
658 : case R600::EG_ExportBuf: {
659 : // op: arraybase
660 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
661 0 : Value |= op & UINT64_C(8191);
662 : // op: type
663 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
664 0 : Value |= (op & UINT64_C(3)) << 13;
665 : // op: gpr
666 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
667 0 : Value |= (op & UINT64_C(127)) << 15;
668 : // op: arraySize
669 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
670 0 : Value |= (op & UINT64_C(4095)) << 32;
671 : // op: compMask
672 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
673 0 : Value |= (op & UINT64_C(15)) << 44;
674 : // op: eop
675 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
676 0 : Value |= (op & UINT64_C(1)) << 53;
677 : // op: inst
678 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
679 0 : Value |= (op & UINT64_C(255)) << 54;
680 0 : break;
681 : }
682 : case R600::R600_ExportBuf: {
683 : // op: arraybase
684 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
685 0 : Value |= op & UINT64_C(8191);
686 : // op: type
687 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
688 0 : Value |= (op & UINT64_C(3)) << 13;
689 : // op: gpr
690 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
691 0 : Value |= (op & UINT64_C(127)) << 15;
692 : // op: arraySize
693 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
694 0 : Value |= (op & UINT64_C(4095)) << 32;
695 : // op: compMask
696 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
697 0 : Value |= (op & UINT64_C(15)) << 44;
698 : // op: eop
699 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
700 0 : Value |= (op & UINT64_C(1)) << 53;
701 : // op: inst
702 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
703 0 : Value |= (op & UINT64_C(255)) << 55;
704 0 : break;
705 : }
706 : case R600::EG_ExportSwz: {
707 : // op: arraybase
708 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
709 0 : Value |= op & UINT64_C(8191);
710 : // op: type
711 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
712 0 : Value |= (op & UINT64_C(3)) << 13;
713 : // op: gpr
714 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
715 0 : Value |= (op & UINT64_C(127)) << 15;
716 : // op: sw_x
717 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
718 0 : Value |= (op & UINT64_C(7)) << 32;
719 : // op: sw_y
720 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
721 0 : Value |= (op & UINT64_C(7)) << 35;
722 : // op: sw_z
723 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
724 0 : Value |= (op & UINT64_C(7)) << 38;
725 : // op: sw_w
726 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
727 0 : Value |= (op & UINT64_C(7)) << 41;
728 : // op: eop
729 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
730 0 : Value |= (op & UINT64_C(1)) << 53;
731 : // op: inst
732 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
733 0 : Value |= (op & UINT64_C(255)) << 54;
734 0 : break;
735 : }
736 : case R600::R600_ExportSwz: {
737 : // op: arraybase
738 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
739 0 : Value |= op & UINT64_C(8191);
740 : // op: type
741 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
742 0 : Value |= (op & UINT64_C(3)) << 13;
743 : // op: gpr
744 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
745 0 : Value |= (op & UINT64_C(127)) << 15;
746 : // op: sw_x
747 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
748 0 : Value |= (op & UINT64_C(7)) << 32;
749 : // op: sw_y
750 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
751 0 : Value |= (op & UINT64_C(7)) << 35;
752 : // op: sw_z
753 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
754 0 : Value |= (op & UINT64_C(7)) << 38;
755 : // op: sw_w
756 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
757 0 : Value |= (op & UINT64_C(7)) << 41;
758 : // op: eop
759 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
760 0 : Value |= (op & UINT64_C(1)) << 53;
761 : // op: inst
762 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
763 0 : Value |= (op & UINT64_C(255)) << 55;
764 0 : break;
765 : }
766 : case R600::TEX_VTX_CONSTBUF:
767 : case R600::TEX_VTX_TEXBUF: {
768 : // op: dst_gpr
769 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
770 0 : Value |= (op & UINT64_C(127)) << 32;
771 : // op: src_gpr
772 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
773 0 : Value |= (op & UINT64_C(127)) << 16;
774 : // op: buffer_id
775 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
776 0 : Value |= (op & UINT64_C(255)) << 8;
777 0 : break;
778 : }
779 : case R600::LITERALS: {
780 : // op: literal1
781 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
782 0 : Value |= op & UINT64_C(4294967295);
783 : // op: literal2
784 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
785 0 : Value |= (op & UINT64_C(4294967295)) << 32;
786 0 : break;
787 : }
788 : case R600::ALU_CLAUSE:
789 : case R600::FETCH_CLAUSE: {
790 : // op: num
791 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
792 0 : Value |= op & UINT64_C(255);
793 0 : break;
794 : }
795 : case R600::RAT_STORE_TYPED_cm: {
796 : // op: rat_id
797 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
798 0 : Value |= op & UINT64_C(15);
799 : // op: rw_gpr
800 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
801 0 : Value |= (op & UINT64_C(127)) << 15;
802 : // op: index_gpr
803 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
804 0 : Value |= (op & UINT64_C(127)) << 23;
805 0 : break;
806 : }
807 : case R600::RAT_STORE_TYPED_eg: {
808 : // op: rat_id
809 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
810 0 : Value |= op & UINT64_C(15);
811 : // op: rw_gpr
812 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
813 0 : Value |= (op & UINT64_C(127)) << 15;
814 : // op: index_gpr
815 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
816 0 : Value |= (op & UINT64_C(127)) << 23;
817 : // op: eop
818 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
819 0 : Value |= (op & UINT64_C(1)) << 53;
820 0 : break;
821 : }
822 : case R600::RAT_MSKOR:
823 : case R600::RAT_STORE_DWORD128:
824 : case R600::RAT_STORE_DWORD32:
825 : case R600::RAT_STORE_DWORD64: {
826 : // op: rw_gpr
827 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
828 0 : Value |= (op & UINT64_C(127)) << 15;
829 : // op: index_gpr
830 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
831 0 : Value |= (op & UINT64_C(127)) << 23;
832 0 : break;
833 : }
834 : case R600::RAT_WRITE_CACHELESS_128_eg:
835 : case R600::RAT_WRITE_CACHELESS_32_eg:
836 : case R600::RAT_WRITE_CACHELESS_64_eg: {
837 : // op: rw_gpr
838 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
839 0 : Value |= (op & UINT64_C(127)) << 15;
840 : // op: index_gpr
841 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
842 0 : Value |= (op & UINT64_C(127)) << 23;
843 : // op: eop
844 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
845 0 : Value |= (op & UINT64_C(1)) << 53;
846 0 : break;
847 : }
848 : case R600::RAT_ATOMIC_ADD_NORET:
849 : case R600::RAT_ATOMIC_ADD_RTN:
850 : case R600::RAT_ATOMIC_AND_NORET:
851 : case R600::RAT_ATOMIC_AND_RTN:
852 : case R600::RAT_ATOMIC_CMPXCHG_INT_NORET:
853 : case R600::RAT_ATOMIC_CMPXCHG_INT_RTN:
854 : case R600::RAT_ATOMIC_DEC_UINT_NORET:
855 : case R600::RAT_ATOMIC_DEC_UINT_RTN:
856 : case R600::RAT_ATOMIC_INC_UINT_NORET:
857 : case R600::RAT_ATOMIC_INC_UINT_RTN:
858 : case R600::RAT_ATOMIC_MAX_INT_NORET:
859 : case R600::RAT_ATOMIC_MAX_INT_RTN:
860 : case R600::RAT_ATOMIC_MAX_UINT_NORET:
861 : case R600::RAT_ATOMIC_MAX_UINT_RTN:
862 : case R600::RAT_ATOMIC_MIN_INT_NORET:
863 : case R600::RAT_ATOMIC_MIN_INT_RTN:
864 : case R600::RAT_ATOMIC_MIN_UINT_NORET:
865 : case R600::RAT_ATOMIC_MIN_UINT_RTN:
866 : case R600::RAT_ATOMIC_OR_NORET:
867 : case R600::RAT_ATOMIC_OR_RTN:
868 : case R600::RAT_ATOMIC_RSUB_NORET:
869 : case R600::RAT_ATOMIC_RSUB_RTN:
870 : case R600::RAT_ATOMIC_SUB_NORET:
871 : case R600::RAT_ATOMIC_SUB_RTN:
872 : case R600::RAT_ATOMIC_XCHG_INT_NORET:
873 : case R600::RAT_ATOMIC_XCHG_INT_RTN:
874 : case R600::RAT_ATOMIC_XOR_NORET:
875 : case R600::RAT_ATOMIC_XOR_RTN: {
876 : // op: rw_gpr
877 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
878 0 : Value |= (op & UINT64_C(127)) << 15;
879 : // op: index_gpr
880 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
881 0 : Value |= (op & UINT64_C(127)) << 23;
882 0 : break;
883 : }
884 : case R600::LDS_CMPST: {
885 : // op: src0
886 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
887 0 : Value |= (op & UINT64_C(1536)) << 1;
888 0 : Value |= op & UINT64_C(511);
889 : // op: src0_rel
890 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
891 0 : Value |= (op & UINT64_C(1)) << 9;
892 : // op: src1
893 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
894 0 : Value |= (op & UINT64_C(1536)) << 14;
895 0 : Value |= (op & UINT64_C(511)) << 13;
896 : // op: src1_rel
897 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
898 0 : Value |= (op & UINT64_C(1)) << 22;
899 : // op: pred_sel
900 0 : op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
901 0 : Value |= (op & UINT64_C(3)) << 29;
902 : // op: last
903 0 : op = getMachineOpValue(MI, MI.getOperand(9), Fixups, STI);
904 0 : Value |= (op & UINT64_C(1)) << 31;
905 : // op: src2
906 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
907 0 : Value |= (op & UINT64_C(1536)) << 33;
908 0 : Value |= (op & UINT64_C(511)) << 32;
909 : // op: src2_rel
910 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
911 0 : Value |= (op & UINT64_C(1)) << 41;
912 : // op: bank_swizzle
913 0 : op = getMachineOpValue(MI, MI.getOperand(11), Fixups, STI);
914 0 : Value |= (op & UINT64_C(7)) << 50;
915 0 : break;
916 : }
917 : case R600::LDS_ADD:
918 : case R600::LDS_AND:
919 : case R600::LDS_BYTE_WRITE:
920 : case R600::LDS_MAX_INT:
921 : case R600::LDS_MAX_UINT:
922 : case R600::LDS_MIN_INT:
923 : case R600::LDS_MIN_UINT:
924 : case R600::LDS_OR:
925 : case R600::LDS_SHORT_WRITE:
926 : case R600::LDS_SUB:
927 : case R600::LDS_WRITE:
928 : case R600::LDS_WRXCHG:
929 : case R600::LDS_XOR: {
930 : // op: src0
931 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
932 0 : Value |= (op & UINT64_C(1536)) << 1;
933 0 : Value |= op & UINT64_C(511);
934 : // op: src0_rel
935 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
936 0 : Value |= (op & UINT64_C(1)) << 9;
937 : // op: src1
938 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
939 0 : Value |= (op & UINT64_C(1536)) << 14;
940 0 : Value |= (op & UINT64_C(511)) << 13;
941 : // op: src1_rel
942 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
943 0 : Value |= (op & UINT64_C(1)) << 22;
944 : // op: pred_sel
945 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
946 0 : Value |= (op & UINT64_C(3)) << 29;
947 : // op: last
948 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
949 0 : Value |= (op & UINT64_C(1)) << 31;
950 : // op: bank_swizzle
951 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
952 0 : Value |= (op & UINT64_C(7)) << 50;
953 0 : break;
954 : }
955 : case R600::LDS_BYTE_READ_RET:
956 : case R600::LDS_READ_RET:
957 : case R600::LDS_SHORT_READ_RET:
958 : case R600::LDS_UBYTE_READ_RET:
959 : case R600::LDS_USHORT_READ_RET: {
960 : // op: src0
961 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
962 0 : Value |= (op & UINT64_C(1536)) << 1;
963 0 : Value |= op & UINT64_C(511);
964 : // op: src0_rel
965 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
966 0 : Value |= (op & UINT64_C(1)) << 9;
967 : // op: pred_sel
968 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
969 0 : Value |= (op & UINT64_C(3)) << 29;
970 : // op: last
971 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
972 0 : Value |= (op & UINT64_C(1)) << 31;
973 : // op: bank_swizzle
974 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
975 0 : Value |= (op & UINT64_C(7)) << 50;
976 0 : break;
977 : }
978 : case R600::LDS_CMPST_RET: {
979 : // op: src0
980 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
981 0 : Value |= (op & UINT64_C(1536)) << 1;
982 0 : Value |= op & UINT64_C(511);
983 : // op: src0_rel
984 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
985 0 : Value |= (op & UINT64_C(1)) << 9;
986 : // op: src1
987 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
988 0 : Value |= (op & UINT64_C(1536)) << 14;
989 0 : Value |= (op & UINT64_C(511)) << 13;
990 : // op: src1_rel
991 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
992 0 : Value |= (op & UINT64_C(1)) << 22;
993 : // op: pred_sel
994 0 : op = getMachineOpValue(MI, MI.getOperand(11), Fixups, STI);
995 0 : Value |= (op & UINT64_C(3)) << 29;
996 : // op: last
997 0 : op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
998 0 : Value |= (op & UINT64_C(1)) << 31;
999 : // op: src2
1000 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
1001 0 : Value |= (op & UINT64_C(1536)) << 33;
1002 0 : Value |= (op & UINT64_C(511)) << 32;
1003 : // op: src2_rel
1004 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
1005 0 : Value |= (op & UINT64_C(1)) << 41;
1006 : // op: bank_swizzle
1007 0 : op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
1008 0 : Value |= (op & UINT64_C(7)) << 50;
1009 0 : break;
1010 : }
1011 : case R600::LDS_ADD_RET:
1012 : case R600::LDS_AND_RET:
1013 : case R600::LDS_MAX_INT_RET:
1014 : case R600::LDS_MAX_UINT_RET:
1015 : case R600::LDS_MIN_INT_RET:
1016 : case R600::LDS_MIN_UINT_RET:
1017 : case R600::LDS_OR_RET:
1018 : case R600::LDS_SUB_RET:
1019 : case R600::LDS_WRXCHG_RET:
1020 : case R600::LDS_XOR_RET: {
1021 : // op: src0
1022 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1023 0 : Value |= (op & UINT64_C(1536)) << 1;
1024 0 : Value |= op & UINT64_C(511);
1025 : // op: src0_rel
1026 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1027 0 : Value |= (op & UINT64_C(1)) << 9;
1028 : // op: src1
1029 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
1030 0 : Value |= (op & UINT64_C(1536)) << 14;
1031 0 : Value |= (op & UINT64_C(511)) << 13;
1032 : // op: src1_rel
1033 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
1034 0 : Value |= (op & UINT64_C(1)) << 22;
1035 : // op: pred_sel
1036 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
1037 0 : Value |= (op & UINT64_C(3)) << 29;
1038 : // op: last
1039 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
1040 0 : Value |= (op & UINT64_C(1)) << 31;
1041 : // op: bank_swizzle
1042 0 : op = getMachineOpValue(MI, MI.getOperand(9), Fixups, STI);
1043 0 : Value |= (op & UINT64_C(7)) << 50;
1044 0 : break;
1045 : }
1046 : case R600::BFE_INT_eg:
1047 : case R600::BFE_UINT_eg:
1048 : case R600::BFI_INT_eg:
1049 : case R600::BIT_ALIGN_INT_eg:
1050 : case R600::CNDE_INT:
1051 : case R600::CNDE_eg:
1052 : case R600::CNDE_r600:
1053 : case R600::CNDGE_INT:
1054 : case R600::CNDGE_eg:
1055 : case R600::CNDGE_r600:
1056 : case R600::CNDGT_INT:
1057 : case R600::CNDGT_eg:
1058 : case R600::CNDGT_r600:
1059 : case R600::FMA_eg:
1060 : case R600::MULADD_IEEE_eg:
1061 : case R600::MULADD_IEEE_r600:
1062 : case R600::MULADD_INT24_cm:
1063 : case R600::MULADD_UINT24_eg:
1064 : case R600::MULADD_eg:
1065 : case R600::MULADD_r600:
1066 : case R600::MUL_LIT_eg:
1067 : case R600::MUL_LIT_r600: {
1068 : // op: src0
1069 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
1070 0 : Value |= (op & UINT64_C(1536)) << 1;
1071 0 : Value |= op & UINT64_C(511);
1072 : // op: src0_rel
1073 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
1074 0 : Value |= (op & UINT64_C(1)) << 9;
1075 : // op: src1
1076 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
1077 0 : Value |= (op & UINT64_C(1536)) << 14;
1078 0 : Value |= (op & UINT64_C(511)) << 13;
1079 : // op: src1_rel
1080 0 : op = getMachineOpValue(MI, MI.getOperand(9), Fixups, STI);
1081 0 : Value |= (op & UINT64_C(1)) << 22;
1082 : // op: pred_sel
1083 0 : op = getMachineOpValue(MI, MI.getOperand(16), Fixups, STI);
1084 0 : Value |= (op & UINT64_C(3)) << 29;
1085 : // op: last
1086 0 : op = getMachineOpValue(MI, MI.getOperand(15), Fixups, STI);
1087 0 : Value |= (op & UINT64_C(1)) << 31;
1088 : // op: src0_neg
1089 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
1090 0 : Value |= (op & UINT64_C(1)) << 12;
1091 : // op: src1_neg
1092 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
1093 0 : Value |= (op & UINT64_C(1)) << 25;
1094 : // op: dst
1095 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1096 0 : Value |= (op & UINT64_C(1536)) << 52;
1097 0 : Value |= (op & UINT64_C(127)) << 53;
1098 : // op: bank_swizzle
1099 0 : op = getMachineOpValue(MI, MI.getOperand(18), Fixups, STI);
1100 0 : Value |= (op & UINT64_C(7)) << 50;
1101 : // op: dst_rel
1102 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1103 0 : Value |= (op & UINT64_C(1)) << 60;
1104 : // op: clamp
1105 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1106 0 : Value |= (op & UINT64_C(1)) << 63;
1107 : // op: src2
1108 0 : op = getMachineOpValue(MI, MI.getOperand(11), Fixups, STI);
1109 0 : Value |= (op & UINT64_C(1536)) << 33;
1110 0 : Value |= (op & UINT64_C(511)) << 32;
1111 : // op: src2_rel
1112 0 : op = getMachineOpValue(MI, MI.getOperand(13), Fixups, STI);
1113 0 : Value |= (op & UINT64_C(1)) << 41;
1114 : // op: src2_neg
1115 0 : op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
1116 0 : Value |= (op & UINT64_C(1)) << 44;
1117 0 : break;
1118 : }
1119 : case R600::BCNT_INT:
1120 : case R600::CEIL:
1121 : case R600::COS_cm:
1122 : case R600::COS_eg:
1123 : case R600::COS_r600:
1124 : case R600::COS_r700:
1125 : case R600::EXP_IEEE_cm:
1126 : case R600::EXP_IEEE_eg:
1127 : case R600::EXP_IEEE_r600:
1128 : case R600::FFBH_UINT:
1129 : case R600::FFBL_INT:
1130 : case R600::FLOOR:
1131 : case R600::FLT16_TO_FLT32:
1132 : case R600::FLT32_TO_FLT16:
1133 : case R600::FLT_TO_INT_eg:
1134 : case R600::FLT_TO_INT_r600:
1135 : case R600::FLT_TO_UINT_eg:
1136 : case R600::FLT_TO_UINT_r600:
1137 : case R600::FRACT:
1138 : case R600::INTERP_LOAD_P0:
1139 : case R600::INT_TO_FLT_eg:
1140 : case R600::INT_TO_FLT_r600:
1141 : case R600::LOG_CLAMPED_eg:
1142 : case R600::LOG_CLAMPED_r600:
1143 : case R600::LOG_IEEE_cm:
1144 : case R600::LOG_IEEE_eg:
1145 : case R600::LOG_IEEE_r600:
1146 : case R600::MOV:
1147 : case R600::MOVA_INT_eg:
1148 : case R600::NOT_INT:
1149 : case R600::RECIPSQRT_CLAMPED_cm:
1150 : case R600::RECIPSQRT_CLAMPED_eg:
1151 : case R600::RECIPSQRT_CLAMPED_r600:
1152 : case R600::RECIPSQRT_IEEE_cm:
1153 : case R600::RECIPSQRT_IEEE_eg:
1154 : case R600::RECIPSQRT_IEEE_r600:
1155 : case R600::RECIP_CLAMPED_cm:
1156 : case R600::RECIP_CLAMPED_eg:
1157 : case R600::RECIP_CLAMPED_r600:
1158 : case R600::RECIP_IEEE_cm:
1159 : case R600::RECIP_IEEE_eg:
1160 : case R600::RECIP_IEEE_r600:
1161 : case R600::RECIP_UINT_eg:
1162 : case R600::RECIP_UINT_r600:
1163 : case R600::RNDNE:
1164 : case R600::SIN_cm:
1165 : case R600::SIN_eg:
1166 : case R600::SIN_r600:
1167 : case R600::SIN_r700:
1168 : case R600::TRUNC:
1169 : case R600::UINT_TO_FLT_eg:
1170 : case R600::UINT_TO_FLT_r600: {
1171 : // op: src0
1172 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
1173 0 : Value |= (op & UINT64_C(1536)) << 1;
1174 0 : Value |= op & UINT64_C(511);
1175 : // op: src0_rel
1176 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
1177 0 : Value |= (op & UINT64_C(1)) << 9;
1178 : // op: pred_sel
1179 0 : op = getMachineOpValue(MI, MI.getOperand(11), Fixups, STI);
1180 0 : Value |= (op & UINT64_C(3)) << 29;
1181 : // op: last
1182 0 : op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
1183 0 : Value |= (op & UINT64_C(1)) << 31;
1184 : // op: src0_neg
1185 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
1186 0 : Value |= (op & UINT64_C(1)) << 12;
1187 : // op: dst
1188 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1189 0 : Value |= (op & UINT64_C(1536)) << 52;
1190 0 : Value |= (op & UINT64_C(127)) << 53;
1191 : // op: bank_swizzle
1192 0 : op = getMachineOpValue(MI, MI.getOperand(13), Fixups, STI);
1193 0 : Value |= (op & UINT64_C(7)) << 50;
1194 : // op: dst_rel
1195 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
1196 0 : Value |= (op & UINT64_C(1)) << 60;
1197 : // op: clamp
1198 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
1199 0 : Value |= (op & UINT64_C(1)) << 63;
1200 : // op: src0_abs
1201 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
1202 0 : Value |= (op & UINT64_C(1)) << 32;
1203 : // op: write
1204 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1205 0 : Value |= (op & UINT64_C(1)) << 36;
1206 : // op: omod
1207 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1208 0 : Value |= (op & UINT64_C(3)) << 37;
1209 0 : break;
1210 : }
1211 : case R600::ADD:
1212 : case R600::ADDC_UINT:
1213 : case R600::ADD_INT:
1214 : case R600::AND_INT:
1215 : case R600::ASHR_eg:
1216 : case R600::ASHR_r600:
1217 : case R600::BFM_INT_eg:
1218 : case R600::CUBE_eg_real:
1219 : case R600::CUBE_r600_real:
1220 : case R600::DOT4_eg:
1221 : case R600::DOT4_r600:
1222 : case R600::KILLGT:
1223 : case R600::LSHL_eg:
1224 : case R600::LSHL_r600:
1225 : case R600::LSHR_eg:
1226 : case R600::LSHR_r600:
1227 : case R600::MAX:
1228 : case R600::MAX_DX10:
1229 : case R600::MAX_INT:
1230 : case R600::MAX_UINT:
1231 : case R600::MIN:
1232 : case R600::MIN_DX10:
1233 : case R600::MIN_INT:
1234 : case R600::MIN_UINT:
1235 : case R600::MUL:
1236 : case R600::MULHI_INT_cm:
1237 : case R600::MULHI_INT_cm24:
1238 : case R600::MULHI_INT_eg:
1239 : case R600::MULHI_INT_r600:
1240 : case R600::MULHI_UINT24_eg:
1241 : case R600::MULHI_UINT_cm:
1242 : case R600::MULHI_UINT_cm24:
1243 : case R600::MULHI_UINT_eg:
1244 : case R600::MULHI_UINT_r600:
1245 : case R600::MULLO_INT_cm:
1246 : case R600::MULLO_INT_eg:
1247 : case R600::MULLO_INT_r600:
1248 : case R600::MULLO_UINT_cm:
1249 : case R600::MULLO_UINT_eg:
1250 : case R600::MULLO_UINT_r600:
1251 : case R600::MUL_IEEE:
1252 : case R600::MUL_INT24_cm:
1253 : case R600::MUL_UINT24_eg:
1254 : case R600::OR_INT:
1255 : case R600::PRED_SETE:
1256 : case R600::PRED_SETE_INT:
1257 : case R600::PRED_SETGE:
1258 : case R600::PRED_SETGE_INT:
1259 : case R600::PRED_SETGT:
1260 : case R600::PRED_SETGT_INT:
1261 : case R600::PRED_SETNE:
1262 : case R600::PRED_SETNE_INT:
1263 : case R600::SETE:
1264 : case R600::SETE_DX10:
1265 : case R600::SETE_INT:
1266 : case R600::SETGE_DX10:
1267 : case R600::SETGE_INT:
1268 : case R600::SETGE_UINT:
1269 : case R600::SETGT_DX10:
1270 : case R600::SETGT_INT:
1271 : case R600::SETGT_UINT:
1272 : case R600::SETNE_DX10:
1273 : case R600::SETNE_INT:
1274 : case R600::SGE:
1275 : case R600::SGT:
1276 : case R600::SNE:
1277 : case R600::SUBB_UINT:
1278 : case R600::SUB_INT:
1279 : case R600::XOR_INT: {
1280 : // op: src0
1281 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
1282 0 : Value |= (op & UINT64_C(1536)) << 1;
1283 0 : Value |= op & UINT64_C(511);
1284 : // op: src0_rel
1285 0 : op = getMachineOpValue(MI, MI.getOperand(9), Fixups, STI);
1286 0 : Value |= (op & UINT64_C(1)) << 9;
1287 : // op: src1
1288 0 : op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
1289 0 : Value |= (op & UINT64_C(1536)) << 14;
1290 0 : Value |= (op & UINT64_C(511)) << 13;
1291 : // op: src1_rel
1292 0 : op = getMachineOpValue(MI, MI.getOperand(14), Fixups, STI);
1293 0 : Value |= (op & UINT64_C(1)) << 22;
1294 : // op: pred_sel
1295 0 : op = getMachineOpValue(MI, MI.getOperand(18), Fixups, STI);
1296 0 : Value |= (op & UINT64_C(3)) << 29;
1297 : // op: last
1298 0 : op = getMachineOpValue(MI, MI.getOperand(17), Fixups, STI);
1299 0 : Value |= (op & UINT64_C(1)) << 31;
1300 : // op: src0_neg
1301 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
1302 0 : Value |= (op & UINT64_C(1)) << 12;
1303 : // op: src1_neg
1304 0 : op = getMachineOpValue(MI, MI.getOperand(13), Fixups, STI);
1305 0 : Value |= (op & UINT64_C(1)) << 25;
1306 : // op: dst
1307 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1308 0 : Value |= (op & UINT64_C(1536)) << 52;
1309 0 : Value |= (op & UINT64_C(127)) << 53;
1310 : // op: bank_swizzle
1311 0 : op = getMachineOpValue(MI, MI.getOperand(20), Fixups, STI);
1312 0 : Value |= (op & UINT64_C(7)) << 50;
1313 : // op: dst_rel
1314 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
1315 0 : Value |= (op & UINT64_C(1)) << 60;
1316 : // op: clamp
1317 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
1318 0 : Value |= (op & UINT64_C(1)) << 63;
1319 : // op: src0_abs
1320 0 : op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
1321 0 : Value |= (op & UINT64_C(1)) << 32;
1322 : // op: src1_abs
1323 0 : op = getMachineOpValue(MI, MI.getOperand(15), Fixups, STI);
1324 0 : Value |= (op & UINT64_C(1)) << 33;
1325 : // op: update_exec_mask
1326 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1327 0 : Value |= (op & UINT64_C(1)) << 34;
1328 : // op: update_pred
1329 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1330 0 : Value |= (op & UINT64_C(1)) << 35;
1331 : // op: write
1332 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
1333 0 : Value |= (op & UINT64_C(1)) << 36;
1334 : // op: omod
1335 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
1336 0 : Value |= (op & UINT64_C(3)) << 37;
1337 0 : break;
1338 : }
1339 : case R600::INTERP_XY:
1340 : case R600::INTERP_ZW: {
1341 : // op: src0
1342 0 : op = getMachineOpValue(MI, MI.getOperand(7), Fixups, STI);
1343 0 : Value |= (op & UINT64_C(1536)) << 1;
1344 0 : Value |= op & UINT64_C(511);
1345 : // op: src0_rel
1346 0 : op = getMachineOpValue(MI, MI.getOperand(9), Fixups, STI);
1347 0 : Value |= (op & UINT64_C(1)) << 9;
1348 : // op: src1
1349 0 : op = getMachineOpValue(MI, MI.getOperand(12), Fixups, STI);
1350 0 : Value |= (op & UINT64_C(1536)) << 14;
1351 0 : Value |= (op & UINT64_C(511)) << 13;
1352 : // op: src1_rel
1353 0 : op = getMachineOpValue(MI, MI.getOperand(14), Fixups, STI);
1354 0 : Value |= (op & UINT64_C(1)) << 22;
1355 : // op: pred_sel
1356 0 : op = getMachineOpValue(MI, MI.getOperand(18), Fixups, STI);
1357 0 : Value |= (op & UINT64_C(3)) << 29;
1358 : // op: last
1359 0 : op = getMachineOpValue(MI, MI.getOperand(17), Fixups, STI);
1360 0 : Value |= (op & UINT64_C(1)) << 31;
1361 : // op: src0_neg
1362 0 : op = getMachineOpValue(MI, MI.getOperand(8), Fixups, STI);
1363 0 : Value |= (op & UINT64_C(1)) << 12;
1364 : // op: src1_neg
1365 0 : op = getMachineOpValue(MI, MI.getOperand(13), Fixups, STI);
1366 0 : Value |= (op & UINT64_C(1)) << 25;
1367 : // op: dst
1368 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1369 0 : Value |= (op & UINT64_C(1536)) << 52;
1370 0 : Value |= (op & UINT64_C(127)) << 53;
1371 : // op: dst_rel
1372 0 : op = getMachineOpValue(MI, MI.getOperand(5), Fixups, STI);
1373 0 : Value |= (op & UINT64_C(1)) << 60;
1374 : // op: clamp
1375 0 : op = getMachineOpValue(MI, MI.getOperand(6), Fixups, STI);
1376 0 : Value |= (op & UINT64_C(1)) << 63;
1377 : // op: src0_abs
1378 0 : op = getMachineOpValue(MI, MI.getOperand(10), Fixups, STI);
1379 0 : Value |= (op & UINT64_C(1)) << 32;
1380 : // op: src1_abs
1381 0 : op = getMachineOpValue(MI, MI.getOperand(15), Fixups, STI);
1382 0 : Value |= (op & UINT64_C(1)) << 33;
1383 : // op: update_exec_mask
1384 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1385 0 : Value |= (op & UINT64_C(1)) << 34;
1386 : // op: update_pred
1387 0 : op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1388 0 : Value |= (op & UINT64_C(1)) << 35;
1389 : // op: write
1390 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
1391 0 : Value |= (op & UINT64_C(1)) << 36;
1392 : // op: omod
1393 0 : op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
1394 0 : Value |= (op & UINT64_C(3)) << 37;
1395 0 : break;
1396 : }
1397 : case R600::VTX_READ_128_cm:
1398 : case R600::VTX_READ_128_eg:
1399 : case R600::VTX_READ_16_cm:
1400 : case R600::VTX_READ_16_eg:
1401 : case R600::VTX_READ_32_cm:
1402 : case R600::VTX_READ_32_eg:
1403 : case R600::VTX_READ_64_cm:
1404 : case R600::VTX_READ_64_eg:
1405 : case R600::VTX_READ_8_cm:
1406 : case R600::VTX_READ_8_eg: {
1407 : // op: src_gpr
1408 0 : op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1409 0 : Value |= (op & UINT64_C(127)) << 16;
1410 : // op: buffer_id
1411 0 : op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
1412 0 : Value |= (op & UINT64_C(255)) << 8;
1413 : // op: dst_gpr
1414 0 : op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1415 0 : Value |= (op & UINT64_C(127)) << 32;
1416 0 : break;
1417 : }
1418 : default:
1419 : std::string msg;
1420 : raw_string_ostream Msg(msg);
1421 0 : Msg << "Not supported instr: " << MI;
1422 0 : report_fatal_error(Msg.str());
1423 : }
1424 0 : return Value;
1425 : }
1426 :
1427 : #ifdef ENABLE_INSTR_PREDICATE_VERIFIER
1428 : #undef ENABLE_INSTR_PREDICATE_VERIFIER
1429 : #include <sstream>
1430 :
1431 : // Flags for subtarget features that participate in instruction matching.
1432 : enum SubtargetFeatureFlag : uint8_t {
1433 : Feature_None = 0
1434 : };
1435 :
1436 : #ifndef NDEBUG
1437 : static const char *SubtargetFeatureNames[] = {
1438 : nullptr
1439 : };
1440 :
1441 : #endif // NDEBUG
1442 0 : uint64_t R600MCCodeEmitter::
1443 : computeAvailableFeatures(const FeatureBitset& FB) const {
1444 : uint64_t Features = 0;
1445 0 : return Features;
1446 : }
1447 :
1448 0 : void R600MCCodeEmitter::verifyInstructionPredicates(
1449 : const MCInst &Inst, uint64_t AvailableFeatures) const {
1450 : #ifndef NDEBUG
1451 : static uint64_t RequiredFeatures[] = {
1452 : 0, // PHI = 0
1453 : 0, // INLINEASM = 1
1454 : 0, // CFI_INSTRUCTION = 2
1455 : 0, // EH_LABEL = 3
1456 : 0, // GC_LABEL = 4
1457 : 0, // ANNOTATION_LABEL = 5
1458 : 0, // KILL = 6
1459 : 0, // EXTRACT_SUBREG = 7
1460 : 0, // INSERT_SUBREG = 8
1461 : 0, // IMPLICIT_DEF = 9
1462 : 0, // SUBREG_TO_REG = 10
1463 : 0, // COPY_TO_REGCLASS = 11
1464 : 0, // DBG_VALUE = 12
1465 : 0, // DBG_LABEL = 13
1466 : 0, // REG_SEQUENCE = 14
1467 : 0, // COPY = 15
1468 : 0, // BUNDLE = 16
1469 : 0, // LIFETIME_START = 17
1470 : 0, // LIFETIME_END = 18
1471 : 0, // STACKMAP = 19
1472 : 0, // FENTRY_CALL = 20
1473 : 0, // PATCHPOINT = 21
1474 : 0, // LOAD_STACK_GUARD = 22
1475 : 0, // STATEPOINT = 23
1476 : 0, // LOCAL_ESCAPE = 24
1477 : 0, // FAULTING_OP = 25
1478 : 0, // PATCHABLE_OP = 26
1479 : 0, // PATCHABLE_FUNCTION_ENTER = 27
1480 : 0, // PATCHABLE_RET = 28
1481 : 0, // PATCHABLE_FUNCTION_EXIT = 29
1482 : 0, // PATCHABLE_TAIL_CALL = 30
1483 : 0, // PATCHABLE_EVENT_CALL = 31
1484 : 0, // PATCHABLE_TYPED_EVENT_CALL = 32
1485 : 0, // ICALL_BRANCH_FUNNEL = 33
1486 : 0, // G_ADD = 34
1487 : 0, // G_SUB = 35
1488 : 0, // G_MUL = 36
1489 : 0, // G_SDIV = 37
1490 : 0, // G_UDIV = 38
1491 : 0, // G_SREM = 39
1492 : 0, // G_UREM = 40
1493 : 0, // G_AND = 41
1494 : 0, // G_OR = 42
1495 : 0, // G_XOR = 43
1496 : 0, // G_IMPLICIT_DEF = 44
1497 : 0, // G_PHI = 45
1498 : 0, // G_FRAME_INDEX = 46
1499 : 0, // G_GLOBAL_VALUE = 47
1500 : 0, // G_EXTRACT = 48
1501 : 0, // G_UNMERGE_VALUES = 49
1502 : 0, // G_INSERT = 50
1503 : 0, // G_MERGE_VALUES = 51
1504 : 0, // G_PTRTOINT = 52
1505 : 0, // G_INTTOPTR = 53
1506 : 0, // G_BITCAST = 54
1507 : 0, // G_INTRINSIC_TRUNC = 55
1508 : 0, // G_INTRINSIC_ROUND = 56
1509 : 0, // G_LOAD = 57
1510 : 0, // G_SEXTLOAD = 58
1511 : 0, // G_ZEXTLOAD = 59
1512 : 0, // G_STORE = 60
1513 : 0, // G_ATOMIC_CMPXCHG_WITH_SUCCESS = 61
1514 : 0, // G_ATOMIC_CMPXCHG = 62
1515 : 0, // G_ATOMICRMW_XCHG = 63
1516 : 0, // G_ATOMICRMW_ADD = 64
1517 : 0, // G_ATOMICRMW_SUB = 65
1518 : 0, // G_ATOMICRMW_AND = 66
1519 : 0, // G_ATOMICRMW_NAND = 67
1520 : 0, // G_ATOMICRMW_OR = 68
1521 : 0, // G_ATOMICRMW_XOR = 69
1522 : 0, // G_ATOMICRMW_MAX = 70
1523 : 0, // G_ATOMICRMW_MIN = 71
1524 : 0, // G_ATOMICRMW_UMAX = 72
1525 : 0, // G_ATOMICRMW_UMIN = 73
1526 : 0, // G_BRCOND = 74
1527 : 0, // G_BRINDIRECT = 75
1528 : 0, // G_INTRINSIC = 76
1529 : 0, // G_INTRINSIC_W_SIDE_EFFECTS = 77
1530 : 0, // G_ANYEXT = 78
1531 : 0, // G_TRUNC = 79
1532 : 0, // G_CONSTANT = 80
1533 : 0, // G_FCONSTANT = 81
1534 : 0, // G_VASTART = 82
1535 : 0, // G_VAARG = 83
1536 : 0, // G_SEXT = 84
1537 : 0, // G_ZEXT = 85
1538 : 0, // G_SHL = 86
1539 : 0, // G_LSHR = 87
1540 : 0, // G_ASHR = 88
1541 : 0, // G_ICMP = 89
1542 : 0, // G_FCMP = 90
1543 : 0, // G_SELECT = 91
1544 : 0, // G_UADDO = 92
1545 : 0, // G_UADDE = 93
1546 : 0, // G_USUBO = 94
1547 : 0, // G_USUBE = 95
1548 : 0, // G_SADDO = 96
1549 : 0, // G_SADDE = 97
1550 : 0, // G_SSUBO = 98
1551 : 0, // G_SSUBE = 99
1552 : 0, // G_UMULO = 100
1553 : 0, // G_SMULO = 101
1554 : 0, // G_UMULH = 102
1555 : 0, // G_SMULH = 103
1556 : 0, // G_FADD = 104
1557 : 0, // G_FSUB = 105
1558 : 0, // G_FMUL = 106
1559 : 0, // G_FMA = 107
1560 : 0, // G_FDIV = 108
1561 : 0, // G_FREM = 109
1562 : 0, // G_FPOW = 110
1563 : 0, // G_FEXP = 111
1564 : 0, // G_FEXP2 = 112
1565 : 0, // G_FLOG = 113
1566 : 0, // G_FLOG2 = 114
1567 : 0, // G_FNEG = 115
1568 : 0, // G_FPEXT = 116
1569 : 0, // G_FPTRUNC = 117
1570 : 0, // G_FPTOSI = 118
1571 : 0, // G_FPTOUI = 119
1572 : 0, // G_SITOFP = 120
1573 : 0, // G_UITOFP = 121
1574 : 0, // G_FABS = 122
1575 : 0, // G_GEP = 123
1576 : 0, // G_PTR_MASK = 124
1577 : 0, // G_BR = 125
1578 : 0, // G_INSERT_VECTOR_ELT = 126
1579 : 0, // G_EXTRACT_VECTOR_ELT = 127
1580 : 0, // G_SHUFFLE_VECTOR = 128
1581 : 0, // G_CTTZ = 129
1582 : 0, // G_CTTZ_ZERO_UNDEF = 130
1583 : 0, // G_CTLZ = 131
1584 : 0, // G_CTLZ_ZERO_UNDEF = 132
1585 : 0, // G_CTPOP = 133
1586 : 0, // G_BSWAP = 134
1587 : 0, // G_ADDRSPACE_CAST = 135
1588 : 0, // G_BLOCK_ADDR = 136
1589 : 0, // BRANCH = 137
1590 : 0, // BRANCH_COND_f32 = 138
1591 : 0, // BRANCH_COND_i32 = 139
1592 : 0, // BREAK = 140
1593 : 0, // BREAKC_f32 = 141
1594 : 0, // BREAKC_i32 = 142
1595 : 0, // BREAK_LOGICALNZ_f32 = 143
1596 : 0, // BREAK_LOGICALNZ_i32 = 144
1597 : 0, // BREAK_LOGICALZ_f32 = 145
1598 : 0, // BREAK_LOGICALZ_i32 = 146
1599 : 0, // CONST_COPY = 147
1600 : 0, // CONTINUE = 148
1601 : 0, // CONTINUEC_f32 = 149
1602 : 0, // CONTINUEC_i32 = 150
1603 : 0, // CONTINUE_LOGICALNZ_f32 = 151
1604 : 0, // CONTINUE_LOGICALNZ_i32 = 152
1605 : 0, // CONTINUE_LOGICALZ_f32 = 153
1606 : 0, // CONTINUE_LOGICALZ_i32 = 154
1607 : 0, // CUBE_eg_pseudo = 155
1608 : 0, // CUBE_r600_pseudo = 156
1609 : 0, // DEFAULT = 157
1610 : 0, // DOT_4 = 158
1611 : 0, // DUMMY_CHAIN = 159
1612 : 0, // ELSE = 160
1613 : 0, // END = 161
1614 : 0, // ENDFUNC = 162
1615 : 0, // ENDIF = 163
1616 : 0, // ENDLOOP = 164
1617 : 0, // ENDMAIN = 165
1618 : 0, // ENDSWITCH = 166
1619 : 0, // FABS_R600 = 167
1620 : 0, // FNEG_R600 = 168
1621 : 0, // FUNC = 169
1622 : 0, // IFC_f32 = 170
1623 : 0, // IFC_i32 = 171
1624 : 0, // IF_LOGICALNZ_f32 = 172
1625 : 0, // IF_LOGICALNZ_i32 = 173
1626 : 0, // IF_LOGICALZ_f32 = 174
1627 : 0, // IF_LOGICALZ_i32 = 175
1628 : 0, // IF_PREDICATE_SET = 176
1629 : 0, // JUMP = 177
1630 : 0, // JUMP_COND = 178
1631 : 0, // MASK_WRITE = 179
1632 : 0, // MOV_IMM_F32 = 180
1633 : 0, // MOV_IMM_GLOBAL_ADDR = 181
1634 : 0, // MOV_IMM_I32 = 182
1635 : 0, // PRED_X = 183
1636 : 0, // R600_EXTRACT_ELT_V2 = 184
1637 : 0, // R600_EXTRACT_ELT_V4 = 185
1638 : 0, // R600_INSERT_ELT_V2 = 186
1639 : 0, // R600_INSERT_ELT_V4 = 187
1640 : 0, // R600_RegisterLoad = 188
1641 : 0, // R600_RegisterStore = 189
1642 : 0, // RETDYN = 190
1643 : 0, // RETURN = 191
1644 : 0, // TXD = 192
1645 : 0, // TXD_SHADOW = 193
1646 : 0, // WHILELOOP = 194
1647 : 0, // ADD = 195
1648 : 0, // ADDC_UINT = 196
1649 : 0, // ADD_INT = 197
1650 : 0, // ALU_CLAUSE = 198
1651 : 0, // AND_INT = 199
1652 : 0, // ASHR_eg = 200
1653 : 0, // ASHR_r600 = 201
1654 : 0, // BCNT_INT = 202
1655 : 0, // BFE_INT_eg = 203
1656 : 0, // BFE_UINT_eg = 204
1657 : 0, // BFI_INT_eg = 205
1658 : 0, // BFM_INT_eg = 206
1659 : 0, // BIT_ALIGN_INT_eg = 207
1660 : 0, // CEIL = 208
1661 : 0, // CF_ALU = 209
1662 : 0, // CF_ALU_BREAK = 210
1663 : 0, // CF_ALU_CONTINUE = 211
1664 : 0, // CF_ALU_ELSE_AFTER = 212
1665 : 0, // CF_ALU_POP_AFTER = 213
1666 : 0, // CF_ALU_PUSH_BEFORE = 214
1667 : 0, // CF_CALL_FS_EG = 215
1668 : 0, // CF_CALL_FS_R600 = 216
1669 : 0, // CF_CONTINUE_EG = 217
1670 : 0, // CF_CONTINUE_R600 = 218
1671 : 0, // CF_ELSE_EG = 219
1672 : 0, // CF_ELSE_R600 = 220
1673 : 0, // CF_END_CM = 221
1674 : 0, // CF_END_EG = 222
1675 : 0, // CF_END_R600 = 223
1676 : 0, // CF_JUMP_EG = 224
1677 : 0, // CF_JUMP_R600 = 225
1678 : 0, // CF_PUSH_EG = 226
1679 : 0, // CF_PUSH_ELSE_R600 = 227
1680 : 0, // CF_TC_EG = 228
1681 : 0, // CF_TC_R600 = 229
1682 : 0, // CF_VC_EG = 230
1683 : 0, // CF_VC_R600 = 231
1684 : 0, // CNDE_INT = 232
1685 : 0, // CNDE_eg = 233
1686 : 0, // CNDE_r600 = 234
1687 : 0, // CNDGE_INT = 235
1688 : 0, // CNDGE_eg = 236
1689 : 0, // CNDGE_r600 = 237
1690 : 0, // CNDGT_INT = 238
1691 : 0, // CNDGT_eg = 239
1692 : 0, // CNDGT_r600 = 240
1693 : 0, // COS_cm = 241
1694 : 0, // COS_eg = 242
1695 : 0, // COS_r600 = 243
1696 : 0, // COS_r700 = 244
1697 : 0, // CUBE_eg_real = 245
1698 : 0, // CUBE_r600_real = 246
1699 : 0, // DOT4_eg = 247
1700 : 0, // DOT4_r600 = 248
1701 : 0, // EG_ExportBuf = 249
1702 : 0, // EG_ExportSwz = 250
1703 : 0, // END_LOOP_EG = 251
1704 : 0, // END_LOOP_R600 = 252
1705 : 0, // EXP_IEEE_cm = 253
1706 : 0, // EXP_IEEE_eg = 254
1707 : 0, // EXP_IEEE_r600 = 255
1708 : 0, // FETCH_CLAUSE = 256
1709 : 0, // FFBH_UINT = 257
1710 : 0, // FFBL_INT = 258
1711 : 0, // FLOOR = 259
1712 : 0, // FLT16_TO_FLT32 = 260
1713 : 0, // FLT32_TO_FLT16 = 261
1714 : 0, // FLT_TO_INT_eg = 262
1715 : 0, // FLT_TO_INT_r600 = 263
1716 : 0, // FLT_TO_UINT_eg = 264
1717 : 0, // FLT_TO_UINT_r600 = 265
1718 : 0, // FMA_eg = 266
1719 : 0, // FRACT = 267
1720 : 0, // GROUP_BARRIER = 268
1721 : 0, // INTERP_LOAD_P0 = 269
1722 : 0, // INTERP_PAIR_XY = 270
1723 : 0, // INTERP_PAIR_ZW = 271
1724 : 0, // INTERP_VEC_LOAD = 272
1725 : 0, // INTERP_XY = 273
1726 : 0, // INTERP_ZW = 274
1727 : 0, // INT_TO_FLT_eg = 275
1728 : 0, // INT_TO_FLT_r600 = 276
1729 : 0, // KILLGT = 277
1730 : 0, // LDS_ADD = 278
1731 : 0, // LDS_ADD_RET = 279
1732 : 0, // LDS_AND = 280
1733 : 0, // LDS_AND_RET = 281
1734 : 0, // LDS_BYTE_READ_RET = 282
1735 : 0, // LDS_BYTE_WRITE = 283
1736 : 0, // LDS_CMPST = 284
1737 : 0, // LDS_CMPST_RET = 285
1738 : 0, // LDS_MAX_INT = 286
1739 : 0, // LDS_MAX_INT_RET = 287
1740 : 0, // LDS_MAX_UINT = 288
1741 : 0, // LDS_MAX_UINT_RET = 289
1742 : 0, // LDS_MIN_INT = 290
1743 : 0, // LDS_MIN_INT_RET = 291
1744 : 0, // LDS_MIN_UINT = 292
1745 : 0, // LDS_MIN_UINT_RET = 293
1746 : 0, // LDS_OR = 294
1747 : 0, // LDS_OR_RET = 295
1748 : 0, // LDS_READ_RET = 296
1749 : 0, // LDS_SHORT_READ_RET = 297
1750 : 0, // LDS_SHORT_WRITE = 298
1751 : 0, // LDS_SUB = 299
1752 : 0, // LDS_SUB_RET = 300
1753 : 0, // LDS_UBYTE_READ_RET = 301
1754 : 0, // LDS_USHORT_READ_RET = 302
1755 : 0, // LDS_WRITE = 303
1756 : 0, // LDS_WRXCHG = 304
1757 : 0, // LDS_WRXCHG_RET = 305
1758 : 0, // LDS_XOR = 306
1759 : 0, // LDS_XOR_RET = 307
1760 : 0, // LITERALS = 308
1761 : 0, // LOG_CLAMPED_eg = 309
1762 : 0, // LOG_CLAMPED_r600 = 310
1763 : 0, // LOG_IEEE_cm = 311
1764 : 0, // LOG_IEEE_eg = 312
1765 : 0, // LOG_IEEE_r600 = 313
1766 : 0, // LOOP_BREAK_EG = 314
1767 : 0, // LOOP_BREAK_R600 = 315
1768 : 0, // LSHL_eg = 316
1769 : 0, // LSHL_r600 = 317
1770 : 0, // LSHR_eg = 318
1771 : 0, // LSHR_r600 = 319
1772 : 0, // MAX = 320
1773 : 0, // MAX_DX10 = 321
1774 : 0, // MAX_INT = 322
1775 : 0, // MAX_UINT = 323
1776 : 0, // MIN = 324
1777 : 0, // MIN_DX10 = 325
1778 : 0, // MIN_INT = 326
1779 : 0, // MIN_UINT = 327
1780 : 0, // MOV = 328
1781 : 0, // MOVA_INT_eg = 329
1782 : 0, // MUL = 330
1783 : 0, // MULADD_IEEE_eg = 331
1784 : 0, // MULADD_IEEE_r600 = 332
1785 : 0, // MULADD_INT24_cm = 333
1786 : 0, // MULADD_UINT24_eg = 334
1787 : 0, // MULADD_eg = 335
1788 : 0, // MULADD_r600 = 336
1789 : 0, // MULHI_INT_cm = 337
1790 : 0, // MULHI_INT_cm24 = 338
1791 : 0, // MULHI_INT_eg = 339
1792 : 0, // MULHI_INT_r600 = 340
1793 : 0, // MULHI_UINT24_eg = 341
1794 : 0, // MULHI_UINT_cm = 342
1795 : 0, // MULHI_UINT_cm24 = 343
1796 : 0, // MULHI_UINT_eg = 344
1797 : 0, // MULHI_UINT_r600 = 345
1798 : 0, // MULLO_INT_cm = 346
1799 : 0, // MULLO_INT_eg = 347
1800 : 0, // MULLO_INT_r600 = 348
1801 : 0, // MULLO_UINT_cm = 349
1802 : 0, // MULLO_UINT_eg = 350
1803 : 0, // MULLO_UINT_r600 = 351
1804 : 0, // MUL_IEEE = 352
1805 : 0, // MUL_INT24_cm = 353
1806 : 0, // MUL_LIT_eg = 354
1807 : 0, // MUL_LIT_r600 = 355
1808 : 0, // MUL_UINT24_eg = 356
1809 : 0, // NOT_INT = 357
1810 : 0, // OR_INT = 358
1811 : 0, // PAD = 359
1812 : 0, // POP_EG = 360
1813 : 0, // POP_R600 = 361
1814 : 0, // PRED_SETE = 362
1815 : 0, // PRED_SETE_INT = 363
1816 : 0, // PRED_SETGE = 364
1817 : 0, // PRED_SETGE_INT = 365
1818 : 0, // PRED_SETGT = 366
1819 : 0, // PRED_SETGT_INT = 367
1820 : 0, // PRED_SETNE = 368
1821 : 0, // PRED_SETNE_INT = 369
1822 : 0, // R600_ExportBuf = 370
1823 : 0, // R600_ExportSwz = 371
1824 : 0, // RAT_ATOMIC_ADD_NORET = 372
1825 : 0, // RAT_ATOMIC_ADD_RTN = 373
1826 : 0, // RAT_ATOMIC_AND_NORET = 374
1827 : 0, // RAT_ATOMIC_AND_RTN = 375
1828 : 0, // RAT_ATOMIC_CMPXCHG_INT_NORET = 376
1829 : 0, // RAT_ATOMIC_CMPXCHG_INT_RTN = 377
1830 : 0, // RAT_ATOMIC_DEC_UINT_NORET = 378
1831 : 0, // RAT_ATOMIC_DEC_UINT_RTN = 379
1832 : 0, // RAT_ATOMIC_INC_UINT_NORET = 380
1833 : 0, // RAT_ATOMIC_INC_UINT_RTN = 381
1834 : 0, // RAT_ATOMIC_MAX_INT_NORET = 382
1835 : 0, // RAT_ATOMIC_MAX_INT_RTN = 383
1836 : 0, // RAT_ATOMIC_MAX_UINT_NORET = 384
1837 : 0, // RAT_ATOMIC_MAX_UINT_RTN = 385
1838 : 0, // RAT_ATOMIC_MIN_INT_NORET = 386
1839 : 0, // RAT_ATOMIC_MIN_INT_RTN = 387
1840 : 0, // RAT_ATOMIC_MIN_UINT_NORET = 388
1841 : 0, // RAT_ATOMIC_MIN_UINT_RTN = 389
1842 : 0, // RAT_ATOMIC_OR_NORET = 390
1843 : 0, // RAT_ATOMIC_OR_RTN = 391
1844 : 0, // RAT_ATOMIC_RSUB_NORET = 392
1845 : 0, // RAT_ATOMIC_RSUB_RTN = 393
1846 : 0, // RAT_ATOMIC_SUB_NORET = 394
1847 : 0, // RAT_ATOMIC_SUB_RTN = 395
1848 : 0, // RAT_ATOMIC_XCHG_INT_NORET = 396
1849 : 0, // RAT_ATOMIC_XCHG_INT_RTN = 397
1850 : 0, // RAT_ATOMIC_XOR_NORET = 398
1851 : 0, // RAT_ATOMIC_XOR_RTN = 399
1852 : 0, // RAT_MSKOR = 400
1853 : 0, // RAT_STORE_DWORD128 = 401
1854 : 0, // RAT_STORE_DWORD32 = 402
1855 : 0, // RAT_STORE_DWORD64 = 403
1856 : 0, // RAT_STORE_TYPED_cm = 404
1857 : 0, // RAT_STORE_TYPED_eg = 405
1858 : 0, // RAT_WRITE_CACHELESS_128_eg = 406
1859 : 0, // RAT_WRITE_CACHELESS_32_eg = 407
1860 : 0, // RAT_WRITE_CACHELESS_64_eg = 408
1861 : 0, // RECIPSQRT_CLAMPED_cm = 409
1862 : 0, // RECIPSQRT_CLAMPED_eg = 410
1863 : 0, // RECIPSQRT_CLAMPED_r600 = 411
1864 : 0, // RECIPSQRT_IEEE_cm = 412
1865 : 0, // RECIPSQRT_IEEE_eg = 413
1866 : 0, // RECIPSQRT_IEEE_r600 = 414
1867 : 0, // RECIP_CLAMPED_cm = 415
1868 : 0, // RECIP_CLAMPED_eg = 416
1869 : 0, // RECIP_CLAMPED_r600 = 417
1870 : 0, // RECIP_IEEE_cm = 418
1871 : 0, // RECIP_IEEE_eg = 419
1872 : 0, // RECIP_IEEE_r600 = 420
1873 : 0, // RECIP_UINT_eg = 421
1874 : 0, // RECIP_UINT_r600 = 422
1875 : 0, // RNDNE = 423
1876 : 0, // SETE = 424
1877 : 0, // SETE_DX10 = 425
1878 : 0, // SETE_INT = 426
1879 : 0, // SETGE_DX10 = 427
1880 : 0, // SETGE_INT = 428
1881 : 0, // SETGE_UINT = 429
1882 : 0, // SETGT_DX10 = 430
1883 : 0, // SETGT_INT = 431
1884 : 0, // SETGT_UINT = 432
1885 : 0, // SETNE_DX10 = 433
1886 : 0, // SETNE_INT = 434
1887 : 0, // SGE = 435
1888 : 0, // SGT = 436
1889 : 0, // SIN_cm = 437
1890 : 0, // SIN_eg = 438
1891 : 0, // SIN_r600 = 439
1892 : 0, // SIN_r700 = 440
1893 : 0, // SNE = 441
1894 : 0, // SUBB_UINT = 442
1895 : 0, // SUB_INT = 443
1896 : 0, // TEX_GET_GRADIENTS_H = 444
1897 : 0, // TEX_GET_GRADIENTS_V = 445
1898 : 0, // TEX_GET_TEXTURE_RESINFO = 446
1899 : 0, // TEX_LD = 447
1900 : 0, // TEX_LDPTR = 448
1901 : 0, // TEX_SAMPLE = 449
1902 : 0, // TEX_SAMPLE_C = 450
1903 : 0, // TEX_SAMPLE_C_G = 451
1904 : 0, // TEX_SAMPLE_C_L = 452
1905 : 0, // TEX_SAMPLE_C_LB = 453
1906 : 0, // TEX_SAMPLE_G = 454
1907 : 0, // TEX_SAMPLE_L = 455
1908 : 0, // TEX_SAMPLE_LB = 456
1909 : 0, // TEX_SET_GRADIENTS_H = 457
1910 : 0, // TEX_SET_GRADIENTS_V = 458
1911 : 0, // TEX_VTX_CONSTBUF = 459
1912 : 0, // TEX_VTX_TEXBUF = 460
1913 : 0, // TRUNC = 461
1914 : 0, // UINT_TO_FLT_eg = 462
1915 : 0, // UINT_TO_FLT_r600 = 463
1916 : 0, // VTX_READ_128_cm = 464
1917 : 0, // VTX_READ_128_eg = 465
1918 : 0, // VTX_READ_16_cm = 466
1919 : 0, // VTX_READ_16_eg = 467
1920 : 0, // VTX_READ_32_cm = 468
1921 : 0, // VTX_READ_32_eg = 469
1922 : 0, // VTX_READ_64_cm = 470
1923 : 0, // VTX_READ_64_eg = 471
1924 : 0, // VTX_READ_8_cm = 472
1925 : 0, // VTX_READ_8_eg = 473
1926 : 0, // WHILE_LOOP_EG = 474
1927 : 0, // WHILE_LOOP_R600 = 475
1928 : 0, // XOR_INT = 476
1929 : };
1930 :
1931 : assert(Inst.getOpcode() < 477);
1932 : uint64_t MissingFeatures =
1933 : (AvailableFeatures & RequiredFeatures[Inst.getOpcode()]) ^
1934 : RequiredFeatures[Inst.getOpcode()];
1935 : if (MissingFeatures) {
1936 : std::ostringstream Msg;
1937 : Msg << "Attempting to emit " << MCII.getName(Inst.getOpcode()).str()
1938 : << " instruction but the ";
1939 : for (unsigned i = 0; i < 8 * sizeof(MissingFeatures); ++i)
1940 : if (MissingFeatures & (1ULL << i))
1941 : Msg << SubtargetFeatureNames[i] << " ";
1942 : Msg << "predicate(s) are not met";
1943 : report_fatal_error(Msg.str());
1944 : }
1945 : #else
1946 : // Silence unused variable warning on targets that don't use MCII for other purposes (e.g. BPF).
1947 : (void)MCII;
1948 : #endif // NDEBUG
1949 0 : }
1950 : #endif
|