Coverage Report

Created: 2018-12-11 17:59

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