~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/panfrost/bifrost/ISA.xml

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!--
2
 
  Copyright (C) 2020 Collabora Ltd.
3
 
 
4
 
  Permission is hereby granted, free of charge, to any person obtaining a
5
 
  copy of this software and associated documentation files (the "Software"),
6
 
  to deal in the Software without restriction, including without limitation
7
 
  the rights to use, copy, modify, merge, publish, distribute, sublicense,
8
 
  and/or sell copies of the Software, and to permit persons to whom the
9
 
  Software is furnished to do so, subject to the following conditions:
10
 
 
11
 
  The above copyright notice and this permission notice (including the next
12
 
  paragraph) shall be included in all copies or substantial portions of the
13
 
  Software.
14
 
 
15
 
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18
 
  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
 
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
 
  SOFTWARE.
22
 
-->
23
 
 
24
 
<bifrost>
25
 
 
26
 
  <ins name="*ARSHIFT.i32" mask="0x7ff838" exact="0x335018">
27
 
    <src start="0" mask="0xfb"/>
28
 
    <src start="3" mask="0x8"/>
29
 
    <src start="6"/>
30
 
    <mod name="lane2" start="9" size="2" default="b0">
31
 
      <opt>b0</opt>
32
 
      <opt>b1</opt>
33
 
      <opt>b2</opt>
34
 
      <opt>b3</opt>
35
 
    </mod>
36
 
  </ins>
37
 
 
38
 
  <ins name="*ARSHIFT.v2i16">
39
 
    <src start="0" mask="0xfb"/>
40
 
    <src start="3" mask="0x8"/>
41
 
    <src start="6"/>
42
 
    <mod name="lanes2" size="3" default="b02">
43
 
      <opt>b00</opt>
44
 
      <opt>b11</opt>
45
 
      <opt>b22</opt>
46
 
      <opt>b33</opt>
47
 
      <opt>b01</opt>
48
 
      <opt>b23</opt>
49
 
      <opt>b02</opt>
50
 
    </mod>
51
 
    <encoding mask="0x7ff838" exact="0x334818">
52
 
      <or>
53
 
        <eq left="lanes2" right="#b00"/>
54
 
        <eq left="lanes2" right="#b11"/>
55
 
        <eq left="lanes2" right="#b22"/>
56
 
        <eq left="lanes2" right="#b33"/>
57
 
      </or>
58
 
      <derived start="9" size="2">
59
 
        <eq left="lanes2" right="#b00"/>
60
 
        <eq left="lanes2" right="#b11"/>
61
 
        <eq left="lanes2" right="#b22"/>
62
 
        <eq left="lanes2" right="#b33"/>
63
 
      </derived>
64
 
    </encoding>
65
 
    <encoding mask="0x7ff838" exact="0x335818">
66
 
      <or>
67
 
        <eq left="lanes2" right="#b01"/>
68
 
        <eq left="lanes2" right="#b23"/>
69
 
        <eq left="lanes2" right="#b02"/>
70
 
      </or>
71
 
      <derived start="9" size="2">
72
 
        <reserved/>
73
 
        <eq left="lanes2" right="#b01"/>
74
 
        <eq left="lanes2" right="#b23"/>
75
 
        <eq left="lanes2" right="#b02"/>
76
 
      </derived>
77
 
    </encoding>
78
 
  </ins>
79
 
 
80
 
  <ins name="*ARSHIFT.v4i8">
81
 
    <src start="0" mask="0xfb"/>
82
 
    <src start="3" mask="0x8"/>
83
 
    <src start="6"/>
84
 
    <mod name="lanes2" size="3" default="b0123">
85
 
      <opt>b0123</opt>
86
 
      <opt>b0000</opt>
87
 
      <opt>b1111</opt>
88
 
      <opt>b2222</opt>
89
 
      <opt>b3333</opt>
90
 
    </mod>
91
 
    <encoding mask="0x7ff838" exact="0x334018">
92
 
      <neq left="lanes2" right="#b0123"/>
93
 
      <derived start="9" size="2">
94
 
        <eq left="lanes2" right="#b0000"/>
95
 
        <eq left="lanes2" right="#b1111"/>
96
 
        <eq left="lanes2" right="#b2222"/>
97
 
        <eq left="lanes2" right="#b3333"/>
98
 
      </derived>
99
 
    </encoding>
100
 
    <encoding mask="0x7ffe38" exact="0x335818">
101
 
      <eq left="lanes2" right="#b0123"/>
102
 
    </encoding>
103
 
  </ins>
104
 
 
105
 
  <ins name="*ARSHIFT_DOUBLE.i32" mask="0x7ff000" exact="0x33e000">
106
 
    <src start="0" mask="0xfb"/>
107
 
    <src start="3" mask="0xfb"/>
108
 
    <src start="6"/>
109
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
110
 
    <mod name="lane2" start="10" size="1" default="b0">
111
 
      <opt>b0</opt>
112
 
      <opt>b2</opt>
113
 
    </mod>
114
 
    <mod name="result_word" start="11" size="1" default="w0">
115
 
      <opt>w0</opt>
116
 
      <opt>w1</opt>
117
 
    </mod>
118
 
  </ins>
119
 
 
120
 
  <ins name="*ATOM_C.i32" mask="0x7fe000" exact="0x2f4000" last="true" dests="0">
121
 
    <src start="0" mask="0xf3"/>
122
 
    <src start="3" mask="0xf3"/>
123
 
    <src start="6" mask="0xf7"/>
124
 
    <mod name="atom_opc" start="9" size="4">
125
 
      <reserved/>
126
 
      <reserved/>
127
 
      <opt>aadd</opt>
128
 
      <reserved/>
129
 
      <reserved/>
130
 
      <reserved/>
131
 
      <reserved/>
132
 
      <reserved/>
133
 
      <opt>asmin</opt>
134
 
      <opt>asmax</opt>
135
 
      <opt>aumin</opt>
136
 
      <opt>aumax</opt>
137
 
      <opt>aand</opt>
138
 
      <opt>aor</opt>
139
 
      <opt>axor</opt>
140
 
    </mod>
141
 
  </ins>
142
 
 
143
 
  <ins name="*ATOM_C.i64" mask="0x7fe000" exact="0x2f0000" last="true" dests="0">
144
 
    <src start="0" mask="0xf3"/>
145
 
    <src start="3" mask="0xf3"/>
146
 
    <src start="6" mask="0xf7"/>
147
 
    <mod name="atom_opc" start="9" size="4">
148
 
      <opt>aaddu</opt>
149
 
      <opt>aadds</opt>
150
 
      <opt>aadd</opt>
151
 
      <reserved/>
152
 
      <reserved/>
153
 
      <reserved/>
154
 
      <reserved/>
155
 
      <reserved/>
156
 
      <opt>asmin</opt>
157
 
      <opt>asmax</opt>
158
 
      <opt>aumin</opt>
159
 
      <opt>aumax</opt>
160
 
      <opt>aand</opt>
161
 
      <opt>aor</opt>
162
 
      <opt>axor</opt>
163
 
    </mod>
164
 
  </ins>
165
 
 
166
 
  <ins name="*ATOM_C1.i32" mask="0x7ffe00" exact="0x2f5e00" last="true" dests="0">
167
 
    <src start="0" mask="0xf3"/>
168
 
    <src start="3" mask="0xf3"/>
169
 
    <mod name="atom_opc" start="6" size="3">
170
 
      <opt>ainc</opt>
171
 
      <opt>adec</opt>
172
 
      <opt>aumax1</opt>
173
 
      <opt>asmax1</opt>
174
 
      <opt>aor1</opt>
175
 
    </mod>
176
 
  </ins>
177
 
 
178
 
  <ins name="*ATOM_C1.i64" mask="0x7ffe00" exact="0x2f1e00" last="true" dests="0">
179
 
    <src start="0" mask="0xf3"/>
180
 
    <src start="3" mask="0xf3"/>
181
 
    <mod name="atom_opc" start="6" size="3">
182
 
      <opt>ainc</opt>
183
 
      <opt>adec</opt>
184
 
      <opt>aumax1</opt>
185
 
      <opt>asmax1</opt>
186
 
      <opt>aor1</opt>
187
 
    </mod>
188
 
  </ins>
189
 
 
190
 
  <ins name="*ATOM_C1_RETURN.i32" mask="0x7ffe00" exact="0x2f7e00" last="true" dests="0">
191
 
    <src start="0" mask="0xf3"/>
192
 
    <src start="3" mask="0xf3"/>
193
 
    <mod name="atom_opc" start="6" size="3">
194
 
      <opt>ainc</opt>
195
 
      <opt>adec</opt>
196
 
      <opt>aumax1</opt>
197
 
      <opt>asmax1</opt>
198
 
      <opt>aor1</opt>
199
 
    </mod>
200
 
  </ins>
201
 
 
202
 
  <ins name="*ATOM_C1_RETURN.i64" mask="0x7ffe00" exact="0x2f3e00" last="true" dests="0">
203
 
    <src start="0" mask="0xf3"/>
204
 
    <src start="3" mask="0xf3"/>
205
 
    <mod name="atom_opc" start="6" size="3">
206
 
      <opt>ainc</opt>
207
 
      <opt>adec</opt>
208
 
      <opt>aumax1</opt>
209
 
      <opt>asmax1</opt>
210
 
      <opt>aor1</opt>
211
 
    </mod>
212
 
  </ins>
213
 
 
214
 
  <ins name="*ATOM_C_RETURN.i32" mask="0x7fe000" exact="0x2f6000" last="true" dests="0">
215
 
    <src start="0" mask="0xf3"/>
216
 
    <src start="3" mask="0xf3"/>
217
 
    <src start="6" mask="0xf7"/>
218
 
    <mod name="atom_opc" start="9" size="4">
219
 
      <reserved/>
220
 
      <reserved/>
221
 
      <opt>aadd</opt>
222
 
      <reserved/>
223
 
      <reserved/>
224
 
      <reserved/>
225
 
      <reserved/>
226
 
      <reserved/>
227
 
      <opt>asmin</opt>
228
 
      <opt>asmax</opt>
229
 
      <opt>aumin</opt>
230
 
      <opt>aumax</opt>
231
 
      <opt>aand</opt>
232
 
      <opt>aor</opt>
233
 
      <opt>axor</opt>
234
 
    </mod>
235
 
  </ins>
236
 
 
237
 
  <ins name="*ATOM_C_RETURN.i64" mask="0x7fe000" exact="0x2f2000" last="true" dests="0">
238
 
    <src start="0" mask="0xf3"/>
239
 
    <src start="3" mask="0xf3"/>
240
 
    <src start="6" mask="0xf7"/>
241
 
    <mod name="atom_opc" start="9" size="4">
242
 
      <opt>aaddu</opt>
243
 
      <opt>aadds</opt>
244
 
      <opt>aadd</opt>
245
 
      <reserved/>
246
 
      <reserved/>
247
 
      <reserved/>
248
 
      <reserved/>
249
 
      <reserved/>
250
 
      <opt>asmin</opt>
251
 
      <opt>asmax</opt>
252
 
      <opt>aumin</opt>
253
 
      <opt>aumax</opt>
254
 
      <opt>aand</opt>
255
 
      <opt>aor</opt>
256
 
      <opt>axor</opt>
257
 
    </mod>
258
 
  </ins>
259
 
 
260
 
  <ins name="*ATOM_POST.i32" mask="0x7ffc00" exact="0x6ee400">
261
 
    <src start="0" mask="0xfb"/>
262
 
    <src start="3" mask="0xfb"/>
263
 
    <mod name="atom_opc" start="6" size="4">
264
 
      <reserved/>
265
 
      <reserved/>
266
 
      <opt>aadd</opt>
267
 
      <reserved/>
268
 
      <reserved/>
269
 
      <reserved/>
270
 
      <reserved/>
271
 
      <reserved/>
272
 
      <opt>asmin</opt>
273
 
      <opt>asmax</opt>
274
 
      <opt>aumin</opt>
275
 
      <opt>aumax</opt>
276
 
      <opt>aand</opt>
277
 
      <opt>aor</opt>
278
 
      <opt>axor</opt>
279
 
    </mod>
280
 
  </ins>
281
 
 
282
 
  <ins name="*ATOM_POST.i64" mask="0x7ffc00" exact="0x6ee000">
283
 
    <src start="0" mask="0xfb"/>
284
 
    <src start="3" mask="0xfb"/>
285
 
    <mod name="atom_opc" start="6" size="4">
286
 
      <opt>aaddu</opt>
287
 
      <opt>aadds</opt>
288
 
      <opt>aadd</opt>
289
 
      <reserved/>
290
 
      <reserved/>
291
 
      <reserved/>
292
 
      <reserved/>
293
 
      <reserved/>
294
 
      <opt>asmin</opt>
295
 
      <opt>asmax</opt>
296
 
      <opt>aumin</opt>
297
 
      <opt>aumax</opt>
298
 
      <opt>aand</opt>
299
 
      <opt>aor</opt>
300
 
      <opt>axor</opt>
301
 
    </mod>
302
 
  </ins>
303
 
 
304
 
  <ins name="*ATOM_PRE.i64" mask="0x7fe000" exact="0x6ec000">
305
 
    <src start="0" mask="0xfb"/>
306
 
    <src start="3" mask="0xfb"/>
307
 
    <src start="6"/>
308
 
    <mod name="atom_opc" start="9" size="4">
309
 
      <opt>aaddu</opt>
310
 
      <opt>aadds</opt>
311
 
      <opt>aadd</opt>
312
 
      <reserved/>
313
 
      <reserved/>
314
 
      <reserved/>
315
 
      <reserved/>
316
 
      <reserved/>
317
 
      <opt>asmin</opt>
318
 
      <opt>asmax</opt>
319
 
      <opt>aumin</opt>
320
 
      <opt>aumax</opt>
321
 
      <opt>aand</opt>
322
 
      <opt>aor</opt>
323
 
      <opt>axor</opt>
324
 
    </mod>
325
 
  </ins>
326
 
 
327
 
  <ins name="*BITREV.i32" mask="0x7ffff8" exact="0x701fc0">
328
 
    <src start="0" mask="0xfb"/>
329
 
  </ins>
330
 
 
331
 
  <ins name="*CLZ.u32" mask="0x7ffff0" exact="0x701fd0">
332
 
    <src start="0" mask="0xfb"/>
333
 
    <mod name="mask" start="3" size="1" opt="mask"/>
334
 
  </ins>
335
 
 
336
 
  <ins name="*CLZ.v2u16" mask="0x7fffc0" exact="0x701ec0">
337
 
    <src start="0" mask="0xfb"/>
338
 
    <mod name="mask" start="3" size="1" opt="mask"/>
339
 
    <mod name="swz0" start="4" size="2" default="h01">
340
 
      <opt>h00</opt>
341
 
      <opt>h10</opt>
342
 
      <opt>h01</opt>
343
 
      <opt>h11</opt>
344
 
    </mod>
345
 
  </ins>
346
 
 
347
 
  <ins name="*CLZ.v4u8" mask="0x7ffff0" exact="0x701f90">
348
 
    <src start="0" mask="0xfb"/>
349
 
    <mod name="mask" start="3" size="1" opt="mask"/>
350
 
  </ins>
351
 
 
352
 
  <ins name="*CSEL.f32" mask="0x7fc000" exact="0x2e0000">
353
 
    <src start="0" mask="0xfb"/>
354
 
    <src start="3" mask="0xfb"/>
355
 
    <src start="6"/>
356
 
    <src start="9"/>
357
 
    <mod name="cmpf" size="3">
358
 
      <opt>eq</opt>
359
 
      <opt>gt</opt>
360
 
      <opt>ge</opt>
361
 
      <opt>ne</opt>
362
 
      <opt>lt</opt>
363
 
      <opt>le</opt>
364
 
    </mod>
365
 
    <derived start="12" size="2">
366
 
      <eq left="cmpf" right="#eq"/>
367
 
      <eq left="cmpf" right="#gt"/>
368
 
      <eq left="cmpf" right="#ge"/>
369
 
      <reserved/>
370
 
    </derived>
371
 
    <swap left="0" right="1">
372
 
      <or>
373
 
        <eq left="cmpf" right="#lt"/>
374
 
        <eq left="cmpf" right="#le"/>
375
 
      </or>
376
 
      <rewrite name="cmpf">
377
 
        <map from="lt" to="gt"/>
378
 
        <map from="le" to="ge"/>
379
 
      </rewrite>
380
 
    </swap>
381
 
    <swap left="2" right="3">
382
 
      <eq left="cmpf" right="#ne"/>
383
 
      <rewrite name="cmpf">
384
 
        <map from="ne" to="eq"/>
385
 
      </rewrite>
386
 
    </swap>
387
 
  </ins>
388
 
 
389
 
  <ins name="*CSEL.i32" mask="0x7f8000" exact="0x2e0000">
390
 
    <src start="0" mask="0xfb"/>
391
 
    <src start="3" mask="0xfb"/>
392
 
    <src start="6"/>
393
 
    <src start="9"/>
394
 
    <mod name="cmpf" size="1">
395
 
      <opt>eq</opt>
396
 
      <opt>ne</opt>
397
 
    </mod>
398
 
    <derived start="12" size="3">
399
 
      <reserved/>
400
 
      <reserved/>
401
 
      <reserved/>
402
 
      <eq left="cmpf" right="#eq"/>
403
 
      <reserved/>
404
 
      <reserved/>
405
 
      <reserved/>
406
 
      <reserved/>
407
 
    </derived>
408
 
    <swap left="2" right="3">
409
 
      <eq left="cmpf" right="#ne"/>
410
 
      <rewrite name="cmpf">
411
 
        <map from="ne" to="eq"/>
412
 
      </rewrite>
413
 
    </swap>
414
 
  </ins>
415
 
 
416
 
  <ins name="*CSEL.s32" mask="0x7fe000" exact="0x2e4000">
417
 
    <src start="0" mask="0xfb"/>
418
 
    <src start="3" mask="0xfb"/>
419
 
    <src start="6"/>
420
 
    <src start="9"/>
421
 
    <mod name="cmpf" size="2">
422
 
      <opt>gt</opt>
423
 
      <opt>ge</opt>
424
 
      <opt>lt</opt>
425
 
      <opt>le</opt>
426
 
    </mod>
427
 
    <derived start="12" size="1">
428
 
      <eq left="cmpf" right="#gt"/>
429
 
      <eq left="cmpf" right="#ge"/>
430
 
    </derived>
431
 
    <swap left="0" right="1">
432
 
      <or>
433
 
        <eq left="cmpf" right="#lt"/>
434
 
        <eq left="cmpf" right="#le"/>
435
 
      </or>
436
 
      <rewrite name="cmpf">
437
 
        <map from="lt" to="gt"/>
438
 
        <map from="le" to="ge"/>
439
 
      </rewrite>
440
 
    </swap>
441
 
  </ins>
442
 
 
443
 
  <ins name="*CSEL.u32" mask="0x7fe000" exact="0x2e6000">
444
 
    <src start="0" mask="0xfb"/>
445
 
    <src start="3" mask="0xfb"/>
446
 
    <src start="6"/>
447
 
    <src start="9"/>
448
 
    <mod name="cmpf" size="2">
449
 
      <opt>gt</opt>
450
 
      <opt>ge</opt>
451
 
      <opt>lt</opt>
452
 
      <opt>le</opt>
453
 
    </mod>
454
 
    <derived start="12" size="1">
455
 
      <eq left="cmpf" right="#gt"/>
456
 
      <eq left="cmpf" right="#ge"/>
457
 
    </derived>
458
 
    <swap left="0" right="1">
459
 
      <or>
460
 
        <eq left="cmpf" right="#lt"/>
461
 
        <eq left="cmpf" right="#le"/>
462
 
      </or>
463
 
      <rewrite name="cmpf">
464
 
        <map from="lt" to="gt"/>
465
 
        <map from="le" to="ge"/>
466
 
      </rewrite>
467
 
    </swap>
468
 
  </ins>
469
 
 
470
 
  <ins name="*CSEL.v2f16" mask="0x7fc000" exact="0x6e0000">
471
 
    <src start="0" mask="0xfb"/>
472
 
    <src start="3" mask="0xfb"/>
473
 
    <src start="6"/>
474
 
    <src start="9"/>
475
 
    <mod name="cmpf" size="3">
476
 
      <opt>eq</opt>
477
 
      <opt>gt</opt>
478
 
      <opt>ge</opt>
479
 
      <opt>ne</opt>
480
 
      <opt>lt</opt>
481
 
      <opt>le</opt>
482
 
    </mod>
483
 
    <derived start="12" size="2">
484
 
      <eq left="cmpf" right="#eq"/>
485
 
      <eq left="cmpf" right="#gt"/>
486
 
      <eq left="cmpf" right="#ge"/>
487
 
      <reserved/>
488
 
    </derived>
489
 
    <swap left="0" right="1">
490
 
      <or>
491
 
        <eq left="cmpf" right="#lt"/>
492
 
        <eq left="cmpf" right="#le"/>
493
 
      </or>
494
 
      <rewrite name="cmpf">
495
 
        <map from="lt" to="gt"/>
496
 
        <map from="le" to="ge"/>
497
 
      </rewrite>
498
 
    </swap>
499
 
    <swap left="2" right="3">
500
 
      <eq left="cmpf" right="#ne"/>
501
 
      <rewrite name="cmpf">
502
 
        <map from="ne" to="eq"/>
503
 
      </rewrite>
504
 
    </swap>
505
 
  </ins>
506
 
 
507
 
  <ins name="*CSEL.v2i16" mask="0x7f8000" exact="0x6e0000">
508
 
    <src start="0" mask="0xfb"/>
509
 
    <src start="3" mask="0xfb"/>
510
 
    <src start="6"/>
511
 
    <src start="9"/>
512
 
    <mod name="cmpf" size="1">
513
 
      <opt>eq</opt>
514
 
      <opt>ne</opt>
515
 
    </mod>
516
 
    <derived start="12" size="3">
517
 
      <reserved/>
518
 
      <reserved/>
519
 
      <reserved/>
520
 
      <eq left="cmpf" right="#eq"/>
521
 
      <reserved/>
522
 
      <reserved/>
523
 
      <reserved/>
524
 
      <reserved/>
525
 
    </derived>
526
 
    <swap left="2" right="3">
527
 
      <eq left="cmpf" right="#ne"/>
528
 
      <rewrite name="cmpf">
529
 
        <map from="ne" to="eq"/>
530
 
      </rewrite>
531
 
    </swap>
532
 
  </ins>
533
 
 
534
 
  <ins name="*CSEL.v2s16" mask="0x7fe000" exact="0x6e4000">
535
 
    <src start="0" mask="0xfb"/>
536
 
    <src start="3" mask="0xfb"/>
537
 
    <src start="6"/>
538
 
    <src start="9"/>
539
 
    <mod name="cmpf" size="2">
540
 
      <opt>gt</opt>
541
 
      <opt>ge</opt>
542
 
      <opt>lt</opt>
543
 
      <opt>le</opt>
544
 
    </mod>
545
 
    <derived start="12" size="1">
546
 
      <eq left="cmpf" right="#gt"/>
547
 
      <eq left="cmpf" right="#ge"/>
548
 
    </derived>
549
 
    <swap left="0" right="1">
550
 
      <or>
551
 
        <eq left="cmpf" right="#lt"/>
552
 
        <eq left="cmpf" right="#le"/>
553
 
      </or>
554
 
      <rewrite name="cmpf">
555
 
        <map from="lt" to="gt"/>
556
 
        <map from="le" to="ge"/>
557
 
      </rewrite>
558
 
    </swap>
559
 
  </ins>
560
 
 
561
 
  <ins name="*CSEL.v2u16" mask="0x7fe000" exact="0x6e6000">
562
 
    <src start="0" mask="0xfb"/>
563
 
    <src start="3" mask="0xfb"/>
564
 
    <src start="6"/>
565
 
    <src start="9"/>
566
 
    <mod name="cmpf" size="2">
567
 
      <opt>gt</opt>
568
 
      <opt>ge</opt>
569
 
      <opt>lt</opt>
570
 
      <opt>le</opt>
571
 
    </mod>
572
 
    <derived start="12" size="1">
573
 
      <eq left="cmpf" right="#gt"/>
574
 
      <eq left="cmpf" right="#ge"/>
575
 
    </derived>
576
 
    <swap left="0" right="1">
577
 
      <or>
578
 
        <eq left="cmpf" right="#lt"/>
579
 
        <eq left="cmpf" right="#le"/>
580
 
      </or>
581
 
      <rewrite name="cmpf">
582
 
        <map from="lt" to="gt"/>
583
 
        <map from="le" to="ge"/>
584
 
      </rewrite>
585
 
    </swap>
586
 
  </ins>
587
 
 
588
 
  <ins name="*CUBEFACE1" mask="0x7ffc00" exact="0x706800">
589
 
    <src start="0" mask="0xfb"/>
590
 
    <src start="3" mask="0xfb"/>
591
 
    <src start="6"/>
592
 
    <mod name="neg0" size="1" opt="neg"/>
593
 
    <mod name="neg1" size="1" opt="neg"/>
594
 
    <mod name="neg2" size="1" opt="neg"/>
595
 
    <derived start="9" size="1">
596
 
      <and>
597
 
        <eq left="neg0" right="#none"/>
598
 
        <eq left="neg1" right="#none"/>
599
 
        <eq left="neg2" right="#none"/>
600
 
      </and>
601
 
      <and>
602
 
        <eq left="neg0" right="#neg"/>
603
 
        <eq left="neg1" right="#neg"/>
604
 
        <eq left="neg2" right="#neg"/>
605
 
      </and>
606
 
    </derived>
607
 
  </ins>
608
 
 
609
 
  <ins name="*DTSEL_IMM" mask="0x7fffe0" exact="0x70f3e0">
610
 
    <src start="0" mask="0xfb"/>
611
 
    <mod name="table" start="3" size="2">
612
 
      <opt>attribute_1</opt>
613
 
      <opt>attribute_2</opt>
614
 
      <opt>none</opt> <!-- actually reserved, used as sentinel -->
615
 
      <opt>flat</opt>
616
 
    </mod>
617
 
  </ins>
618
 
 
619
 
  <ins name="*F16_TO_F32" mask="0x7ffff0" exact="0x700d10">
620
 
    <src start="0" mask="0xfb"/>
621
 
    <mod name="lane0" start="3" size="1" default="h0">
622
 
      <opt>h0</opt>
623
 
      <opt>h1</opt>
624
 
    </mod>
625
 
  </ins>
626
 
 
627
 
  <ins name="*FADD.f32" mask="0x7e0000" exact="0x2c0000">
628
 
    <src start="0" mask="0xfb"/>
629
 
    <src start="3" mask="0xfb"/>
630
 
    <mod name="abs1" start="6" size="1" opt="abs"/>
631
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
632
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
633
 
    <mod name="abs0" start="12" size="1" opt="abs"/>
634
 
    <mod name="round" start="13" size="2">
635
 
      <opt>none</opt>
636
 
      <opt>rtp</opt>
637
 
      <opt>rtn</opt>
638
 
      <opt>rtz</opt>
639
 
    </mod>
640
 
    <mod name="clamp" start="15" size="2">
641
 
      <opt>none</opt>
642
 
      <opt>clamp_0_inf</opt>
643
 
      <opt>clamp_m1_1</opt>
644
 
      <opt>clamp_0_1</opt>
645
 
    </mod>
646
 
    <mod name="widen0" size="2">
647
 
      <opt>none</opt>
648
 
      <opt>h0</opt>
649
 
      <opt>h1</opt>
650
 
    </mod>
651
 
    <mod name="widen1" size="2">
652
 
      <opt>none</opt>
653
 
      <opt>h0</opt>
654
 
      <opt>h1</opt>
655
 
    </mod>
656
 
    <derived start="9" size="3">
657
 
      <and>
658
 
        <eq left="widen0" right="#none"/>
659
 
        <eq left="widen1" right="#none"/>
660
 
      </and>
661
 
      <and>
662
 
        <eq left="widen0" right="#none"/>
663
 
        <eq left="widen1" right="#h0"/>
664
 
      </and>
665
 
      <and>
666
 
        <eq left="widen0" right="#none"/>
667
 
        <eq left="widen1" right="#h1"/>
668
 
      </and>
669
 
      <and>
670
 
        <eq left="widen0" right="#h0"/>
671
 
        <eq left="widen1" right="#h0"/>
672
 
      </and>
673
 
      <and>
674
 
        <eq left="widen0" right="#h0"/>
675
 
        <eq left="widen1" right="#h1"/>
676
 
      </and>
677
 
      <and>
678
 
        <eq left="widen0" right="#h1"/>
679
 
        <eq left="widen1" right="#h1"/>
680
 
      </and>
681
 
      <and>
682
 
        <eq left="widen0" right="#h0"/>
683
 
        <eq left="widen1" right="#none"/>
684
 
      </and>
685
 
      <and>
686
 
        <eq left="widen0" right="#h1"/>
687
 
        <eq left="widen1" right="#none"/>
688
 
      </and>
689
 
    </derived>
690
 
    <swap left="0" right="1">
691
 
      <and>
692
 
        <eq left="widen0" right="#h1"/>
693
 
        <eq left="widen1" right="#h0"/>
694
 
      </and>
695
 
    </swap>
696
 
  </ins>
697
 
 
698
 
  <ins name="*FADD.v2f16" mask="0x7e0000" exact="0x6c0000">
699
 
    <src start="0" mask="0xfb"/>
700
 
    <src start="3" mask="0xfb"/>
701
 
    <mod name="abs0" size="1" opt="abs"/>
702
 
    <mod name="abs1" size="1" opt="abs"/>
703
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
704
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
705
 
    <mod name="swz0" start="9" size="2" default="h01">
706
 
      <opt>h00</opt>
707
 
      <opt>h10</opt>
708
 
      <opt>h01</opt>
709
 
      <opt>h11</opt>
710
 
    </mod>
711
 
    <mod name="swz1" start="11" size="2" default="h01">
712
 
      <opt>h00</opt>
713
 
      <opt>h10</opt>
714
 
      <opt>h01</opt>
715
 
      <opt>h11</opt>
716
 
    </mod>
717
 
    <mod name="round" start="13" size="2">
718
 
      <opt>none</opt>
719
 
      <opt>rtp</opt>
720
 
      <opt>rtn</opt>
721
 
      <opt>rtz</opt>
722
 
    </mod>
723
 
    <mod name="clamp" start="15" size="2">
724
 
      <opt>none</opt>
725
 
      <opt>clamp_0_inf</opt>
726
 
      <opt>clamp_m1_1</opt>
727
 
      <opt>clamp_0_1</opt>
728
 
    </mod>
729
 
    <derived start="6" size="1">
730
 
      <or>
731
 
        <and>
732
 
          <eq left="abs0" right="#abs"/>
733
 
          <eq left="abs1" right="#none"/>
734
 
          <eq left="ordering" right="#gt"/>
735
 
        </and>
736
 
        <and>
737
 
          <eq left="abs0" right="#none"/>
738
 
          <eq left="abs1" right="#none"/>
739
 
          <neq left="ordering" right="#gt"/>
740
 
        </and>
741
 
      </or>
742
 
      <or>
743
 
        <and>
744
 
          <eq left="abs0" right="#abs"/>
745
 
          <eq left="abs1" right="#abs"/>
746
 
          <eq left="ordering" right="#gt"/>
747
 
        </and>
748
 
        <and>
749
 
          <eq left="abs0" right="#abs"/>
750
 
          <eq left="abs1" right="#none"/>
751
 
          <neq left="ordering" right="#gt"/>
752
 
        </and>
753
 
      </or>
754
 
    </derived>
755
 
    <swap left="0" right="1">
756
 
      <or>
757
 
        <and>
758
 
          <eq left="abs0" right="#none"/>
759
 
          <eq left="ordering" right="#gt"/>
760
 
        </and>
761
 
        <and>
762
 
          <eq left="abs1" right="#abs"/>
763
 
          <neq left="ordering" right="#gt"/>
764
 
        </and>
765
 
      </or>
766
 
    </swap>
767
 
  </ins>
768
 
 
769
 
  <ins name="*FADD_LSCALE.f32" mask="0x7ffc00" exact="0x70f400">
770
 
    <src start="0" mask="0xfb"/>
771
 
    <src start="3" mask="0xfb"/>
772
 
    <mod name="abs0" start="6" size="1" opt="abs"/>
773
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
774
 
    <mod name="abs1" start="8" size="1" opt="abs"/>
775
 
    <mod name="neg1" start="9" size="1" opt="neg"/>
776
 
  </ins>
777
 
 
778
 
  <ins name="*FCMP.f32" mask="0x7c0000" exact="0x240000">
779
 
    <src start="0" mask="0xfb"/>
780
 
    <src start="3" mask="0xfb"/>
781
 
    <mod name="widen0" size="2">
782
 
      <opt>none</opt>
783
 
      <opt>h0</opt>
784
 
      <opt>h1</opt>
785
 
    </mod>
786
 
    <mod name="widen1" size="2">
787
 
      <opt>none</opt>
788
 
      <opt>h0</opt>
789
 
      <opt>h1</opt>
790
 
    </mod>
791
 
    <mod name="abs1" start="6" size="1" opt="abs"/>
792
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
793
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
794
 
    <mod name="abs0" start="12" size="1" opt="abs"/>
795
 
    <mod name="cmpf" start="13" size="3">
796
 
      <opt>eq</opt>
797
 
      <opt>gt</opt>
798
 
      <opt>ge</opt>
799
 
      <opt>ne</opt>
800
 
      <opt>lt</opt>
801
 
      <opt>le</opt>
802
 
      <opt>gtlt</opt>
803
 
      <opt>total</opt>
804
 
    </mod>
805
 
    <mod name="result_type" start="16" size="2" default="i1">
806
 
      <opt>i1</opt>
807
 
      <opt>f1</opt>
808
 
      <opt>m1</opt>
809
 
    </mod>
810
 
    <derived start="9" size="3">
811
 
      <and>
812
 
        <eq left="widen0" right="#none"/>
813
 
        <eq left="widen1" right="#none"/>
814
 
      </and>
815
 
      <and>
816
 
        <eq left="widen0" right="#none"/>
817
 
        <eq left="widen1" right="#h0"/>
818
 
      </and>
819
 
      <and>
820
 
        <eq left="widen0" right="#none"/>
821
 
        <eq left="widen1" right="#h1"/>
822
 
      </and>
823
 
      <and>
824
 
        <eq left="widen0" right="#h0"/>
825
 
        <eq left="widen1" right="#h0"/>
826
 
      </and>
827
 
      <and>
828
 
        <eq left="widen0" right="#h0"/>
829
 
        <eq left="widen1" right="#h1"/>
830
 
      </and>
831
 
      <and>
832
 
        <eq left="widen0" right="#h1"/>
833
 
        <eq left="widen1" right="#h1"/>
834
 
      </and>
835
 
      <and>
836
 
        <eq left="widen0" right="#h0"/>
837
 
        <eq left="widen1" right="#none"/>
838
 
      </and>
839
 
      <and>
840
 
        <eq left="widen0" right="#h1"/>
841
 
        <eq left="widen1" right="#none"/>
842
 
      </and>
843
 
    </derived>
844
 
    <swap left="0" right="1">
845
 
      <and>
846
 
        <eq left="widen0" right="#h1"/>
847
 
        <eq left="widen1" right="#h0"/>
848
 
      </and>
849
 
      <rewrite name="cmpf">
850
 
        <map from="lt" to="gt"/>
851
 
        <map from="le" to="ge"/>
852
 
        <map from="gt" to="lt"/>
853
 
        <map from="ge" to="le"/>
854
 
      </rewrite>
855
 
    </swap>
856
 
  </ins>
857
 
 
858
 
  <ins name="*FCMP.v2f16" mask="0x7c0000" exact="0x640000">
859
 
    <src start="0" mask="0xfb"/>
860
 
    <src start="3" mask="0xfb"/>
861
 
    <mod name="abs0" size="1" opt="abs"/>
862
 
    <mod name="abs1" size="1" opt="abs"/>
863
 
    <mod name="cmpf" size="3">
864
 
      <opt>eq</opt>
865
 
      <opt>gt</opt>
866
 
      <opt>ge</opt>
867
 
      <opt>ne</opt>
868
 
      <opt>lt</opt>
869
 
      <opt>le</opt>
870
 
      <opt>gtlt</opt>
871
 
      <opt>total</opt>
872
 
    </mod>
873
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
874
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
875
 
    <mod name="swz0" start="9" size="2" default="h01">
876
 
      <opt>h00</opt>
877
 
      <opt>h10</opt>
878
 
      <opt>h01</opt>
879
 
      <opt>h11</opt>
880
 
    </mod>
881
 
    <mod name="swz1" start="11" size="2" default="h01">
882
 
      <opt>h00</opt>
883
 
      <opt>h10</opt>
884
 
      <opt>h01</opt>
885
 
      <opt>h11</opt>
886
 
    </mod>
887
 
    <mod name="result_type" start="16" size="2" default="i1">
888
 
      <opt>i1</opt>
889
 
      <opt>f1</opt>
890
 
      <opt>m1</opt>
891
 
    </mod>
892
 
    <derived start="6" size="1">
893
 
      <or>
894
 
        <and>
895
 
          <eq left="abs0" right="#abs"/>
896
 
          <eq left="abs1" right="#none"/>
897
 
          <eq left="ordering" right="#gt"/>
898
 
        </and>
899
 
        <and>
900
 
          <eq left="abs0" right="#none"/>
901
 
          <eq left="abs1" right="#none"/>
902
 
          <neq left="ordering" right="#gt"/>
903
 
        </and>
904
 
      </or>
905
 
      <or>
906
 
        <and>
907
 
          <eq left="abs0" right="#abs"/>
908
 
          <eq left="abs1" right="#abs"/>
909
 
          <eq left="ordering" right="#gt"/>
910
 
        </and>
911
 
        <and>
912
 
          <eq left="abs0" right="#abs"/>
913
 
          <eq left="abs1" right="#none"/>
914
 
          <neq left="ordering" right="#gt"/>
915
 
        </and>
916
 
      </or>
917
 
    </derived>
918
 
    <derived start="13" size="3">
919
 
      <eq left="cmpf" right="#eq"/>
920
 
      <eq left="cmpf" right="#gt"/>
921
 
      <eq left="cmpf" right="#ge"/>
922
 
      <eq left="cmpf" right="#ne"/>
923
 
      <eq left="cmpf" right="#lt"/>
924
 
      <eq left="cmpf" right="#le"/>
925
 
      <eq left="cmpf" right="#gtlt"/>
926
 
      <and>
927
 
        <eq left="cmpf" right="#total"/>
928
 
        <eq left="abs0" right="#none"/>
929
 
        <eq left="abs1" right="#none"/>
930
 
      </and>
931
 
    </derived>
932
 
    <swap left="0" right="1">
933
 
      <or>
934
 
        <and>
935
 
          <eq left="abs0" right="#none"/>
936
 
          <eq left="ordering" right="#gt"/>
937
 
        </and>
938
 
        <and>
939
 
          <eq left="abs1" right="#abs"/>
940
 
          <neq left="ordering" right="#gt"/>
941
 
        </and>
942
 
      </or>
943
 
      <rewrite name="cmpf">
944
 
        <map from="lt" to="gt"/>
945
 
        <map from="le" to="ge"/>
946
 
        <map from="gt" to="lt"/>
947
 
        <map from="ge" to="le"/>
948
 
      </rewrite>
949
 
    </swap>
950
 
  </ins>
951
 
 
952
 
  <ins name="*FLSHIFT_DOUBLE.i32" mask="0x7ff800" exact="0x33f800">
953
 
    <src start="0" mask="0xfb"/>
954
 
    <src start="3" mask="0xfb"/>
955
 
    <src start="6"/>
956
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
957
 
    <mod name="lane2" start="10" size="1" default="b0">
958
 
      <opt>b0</opt>
959
 
      <opt>b2</opt>
960
 
    </mod>
961
 
  </ins>
962
 
 
963
 
  <ins name="*FMA.f32" mask="0x600000" exact="0x0">
964
 
    <src start="0" mask="0xfb"/>
965
 
    <src start="3" mask="0xfb"/>
966
 
    <src start="6"/>
967
 
    <mod name="widen0" size="2">
968
 
      <opt>none</opt>
969
 
      <opt>h0</opt>
970
 
      <opt>h1</opt>
971
 
    </mod>
972
 
    <mod name="widen1" size="2">
973
 
      <opt>none</opt>
974
 
      <opt>h0</opt>
975
 
      <opt>h1</opt>
976
 
    </mod>
977
 
    <mod name="neg0" size="1" opt="neg"/>
978
 
    <mod name="neg1" size="1" opt="neg"/>
979
 
    <mod name="abs0" start="12" size="1" opt="abs"/>
980
 
    <mod name="round" start="13" size="2">
981
 
      <opt>none</opt>
982
 
      <opt>rtp</opt>
983
 
      <opt>rtn</opt>
984
 
      <opt>rtz</opt>
985
 
    </mod>
986
 
    <mod name="clamp" start="15" size="2">
987
 
      <opt>none</opt>
988
 
      <opt>clamp_0_inf</opt>
989
 
      <opt>clamp_m1_1</opt>
990
 
      <opt>clamp_0_1</opt>
991
 
    </mod>
992
 
    <mod name="abs1" start="19" size="1" opt="abs"/>
993
 
    <mod name="neg2" start="18" size="1" opt="neg"/>
994
 
    <mod name="abs2" start="20" size="1" opt="abs"/>
995
 
    <derived start="9" size="3">
996
 
      <and>
997
 
        <eq left="widen0" right="#none"/>
998
 
        <eq left="widen1" right="#none"/>
999
 
      </and>
1000
 
      <and>
1001
 
        <eq left="widen0" right="#none"/>
1002
 
        <eq left="widen1" right="#h0"/>
1003
 
      </and>
1004
 
      <and>
1005
 
        <eq left="widen0" right="#none"/>
1006
 
        <eq left="widen1" right="#h1"/>
1007
 
      </and>
1008
 
      <and>
1009
 
        <eq left="widen0" right="#h0"/>
1010
 
        <eq left="widen1" right="#h0"/>
1011
 
      </and>
1012
 
      <and>
1013
 
        <eq left="widen0" right="#h0"/>
1014
 
        <eq left="widen1" right="#h1"/>
1015
 
      </and>
1016
 
      <and>
1017
 
        <eq left="widen0" right="#h1"/>
1018
 
        <eq left="widen1" right="#h1"/>
1019
 
      </and>
1020
 
      <and>
1021
 
        <eq left="widen0" right="#h0"/>
1022
 
        <eq left="widen1" right="#none"/>
1023
 
      </and>
1024
 
      <and>
1025
 
        <eq left="widen0" right="#h1"/>
1026
 
        <eq left="widen1" right="#none"/>
1027
 
      </and>
1028
 
    </derived>
1029
 
    <derived start="17" size="1">
1030
 
      <or>
1031
 
        <and>
1032
 
          <eq left="neg0" right="#none"/>
1033
 
          <eq left="neg1" right="#none"/>
1034
 
        </and>
1035
 
        <and alias="true">
1036
 
          <eq left="neg0" right="#neg"/>
1037
 
          <eq left="neg1" right="#neg"/>
1038
 
        </and>
1039
 
      </or>
1040
 
      <or>
1041
 
        <and>
1042
 
          <eq left="neg0" right="#none"/>
1043
 
          <eq left="neg1" right="#neg"/>
1044
 
        </and>
1045
 
        <and alias="true">
1046
 
          <eq left="neg0" right="#neg"/>
1047
 
          <eq left="neg1" right="#none"/>
1048
 
        </and>
1049
 
      </or>
1050
 
    </derived>
1051
 
    <swap left="0" right="1">
1052
 
      <and>
1053
 
        <eq left="widen0" right="#h1"/>
1054
 
        <eq left="widen1" right="#h0"/>
1055
 
      </and>
1056
 
    </swap>
1057
 
  </ins>
1058
 
 
1059
 
  <ins name="*FMA.v2f16" mask="0x600000" exact="0x400000">
1060
 
    <src start="0" mask="0xfb"/>
1061
 
    <src start="3" mask="0xfb"/>
1062
 
    <src start="6"/>
1063
 
    <mod name="neg0" size="1" opt="neg"/>
1064
 
    <mod name="neg1" size="1" opt="neg"/>
1065
 
    <mod name="swz0" start="9" size="2" default="h01">
1066
 
      <opt>h00</opt>
1067
 
      <opt>h10</opt>
1068
 
      <opt>h01</opt>
1069
 
      <opt>h11</opt>
1070
 
    </mod>
1071
 
    <mod name="swz1" start="11" size="2" default="h01">
1072
 
      <opt>h00</opt>
1073
 
      <opt>h10</opt>
1074
 
      <opt>h01</opt>
1075
 
      <opt>h11</opt>
1076
 
    </mod>
1077
 
    <mod name="round" start="13" size="2">
1078
 
      <opt>none</opt>
1079
 
      <opt>rtp</opt>
1080
 
      <opt>rtn</opt>
1081
 
      <opt>rtz</opt>
1082
 
    </mod>
1083
 
    <mod name="clamp" start="15" size="2">
1084
 
      <opt>none</opt>
1085
 
      <opt>clamp_0_inf</opt>
1086
 
      <opt>clamp_m1_1</opt>
1087
 
      <opt>clamp_0_1</opt>
1088
 
    </mod>
1089
 
    <mod name="neg2" start="18" size="1" opt="neg"/>
1090
 
    <mod name="swz2" start="19" size="2" default="h01">
1091
 
      <opt>h00</opt>
1092
 
      <opt>h10</opt>
1093
 
      <opt>h01</opt>
1094
 
      <opt>h11</opt>
1095
 
    </mod>
1096
 
    <derived start="17" size="1">
1097
 
      <or>
1098
 
        <and>
1099
 
          <eq left="neg0" right="#none"/>
1100
 
          <eq left="neg1" right="#none"/>
1101
 
        </and>
1102
 
        <and alias="true">
1103
 
          <eq left="neg0" right="#neg"/>
1104
 
          <eq left="neg1" right="#neg"/>
1105
 
        </and>
1106
 
      </or>
1107
 
      <or>
1108
 
        <and>
1109
 
          <eq left="neg0" right="#none"/>
1110
 
          <eq left="neg1" right="#neg"/>
1111
 
        </and>
1112
 
        <and alias="true">
1113
 
          <eq left="neg0" right="#neg"/>
1114
 
          <eq left="neg1" right="#none"/>
1115
 
        </and>
1116
 
      </or>
1117
 
    </derived>
1118
 
  </ins>
1119
 
 
1120
 
  <ins name="*FMA_RSCALE.f32" mask="0x7c0000" exact="0x280000">
1121
 
    <src start="0" mask="0xfb"/>
1122
 
    <src start="3" mask="0xfb"/>
1123
 
    <src start="6"/>
1124
 
    <src start="9"/>
1125
 
    <mod name="round" size="1" opt="rtz"/>
1126
 
    <mod name="clamp" size="2">
1127
 
      <opt>none</opt>
1128
 
      <opt>clamp_0_inf</opt>
1129
 
      <opt>clamp_m1_1</opt>
1130
 
      <opt>clamp_0_1</opt>
1131
 
    </mod>
1132
 
    <mod name="neg0" size="1" opt="neg"/>
1133
 
    <mod name="neg1" size="1" opt="neg"/>
1134
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
1135
 
    <mod name="neg2" start="17" size="1" opt="neg"/>
1136
 
    <mod name="special" size="2">
1137
 
      <opt>none</opt>
1138
 
      <opt>n</opt>
1139
 
      <opt>left</opt>
1140
 
      <opt>scale16</opt>
1141
 
    </mod>
1142
 
    <derived start="16" size="1">
1143
 
      <or>
1144
 
        <and>
1145
 
          <eq left="neg0" right="#none"/>
1146
 
          <eq left="neg1" right="#none"/>
1147
 
        </and>
1148
 
        <and alias="true">
1149
 
          <eq left="neg0" right="#neg"/>
1150
 
          <eq left="neg1" right="#neg"/>
1151
 
        </and>
1152
 
      </or>
1153
 
      <or>
1154
 
        <and>
1155
 
          <eq left="neg0" right="#none"/>
1156
 
          <eq left="neg1" right="#neg"/>
1157
 
        </and>
1158
 
        <and alias="true">
1159
 
          <eq left="neg0" right="#neg"/>
1160
 
          <eq left="neg1" right="#none"/>
1161
 
        </and>
1162
 
      </or>
1163
 
    </derived>
1164
 
    <derived start="12" size="3">
1165
 
      <and>
1166
 
        <eq left="clamp" right="#none"/>
1167
 
        <eq left="special" right="#none"/>
1168
 
        <eq left="round" right="#none"/>
1169
 
      </and>
1170
 
      <and>
1171
 
        <eq left="clamp" right="#clamp_0_inf"/>
1172
 
        <eq left="special" right="#none"/>
1173
 
        <eq left="round" right="#none"/>
1174
 
      </and>
1175
 
      <and>
1176
 
        <eq left="clamp" right="#clamp_m1_1"/>
1177
 
        <eq left="special" right="#none"/>
1178
 
        <eq left="round" right="#none"/>
1179
 
      </and>
1180
 
      <and>
1181
 
        <eq left="clamp" right="#clamp_0_1"/>
1182
 
        <eq left="special" right="#none"/>
1183
 
        <eq left="round" right="#none"/>
1184
 
      </and>
1185
 
      <and>
1186
 
        <eq left="clamp" right="#none"/>
1187
 
        <eq left="special" right="#n"/>
1188
 
        <eq left="round" right="#none"/>
1189
 
      </and>
1190
 
      <and>
1191
 
        <eq left="clamp" right="#none"/>
1192
 
        <eq left="special" right="#n"/>
1193
 
        <eq left="round" right="#rtz"/>
1194
 
      </and>
1195
 
      <and>
1196
 
        <eq left="clamp" right="#none"/>
1197
 
        <eq left="special" right="#scale16"/>
1198
 
        <eq left="round" right="#none"/>
1199
 
      </and>
1200
 
      <and>
1201
 
        <eq left="clamp" right="#none"/>
1202
 
        <eq left="special" right="#left"/>
1203
 
        <eq left="round" right="#none"/>
1204
 
      </and>
1205
 
    </derived>
1206
 
  </ins>
1207
 
 
1208
 
  <ins name="*FMA_RSCALE.v2f16" mask="0x7c0000" exact="0x680000">
1209
 
    <src start="0" mask="0xfb"/>
1210
 
    <src start="3" mask="0xfb"/>
1211
 
    <src start="6"/>
1212
 
    <src start="9"/>
1213
 
    <mod name="round" size="1" opt="rtz"/>
1214
 
    <mod name="clamp" size="2">
1215
 
      <opt>none</opt>
1216
 
      <opt>clamp_0_inf</opt>
1217
 
      <opt>clamp_m1_1</opt>
1218
 
      <opt>clamp_0_1</opt>
1219
 
    </mod>
1220
 
    <mod name="neg0" size="1" opt="neg"/>
1221
 
    <mod name="neg1" size="1" opt="neg"/>
1222
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
1223
 
    <mod name="neg2" start="17" size="1" opt="neg"/>
1224
 
    <mod name="special" size="2">
1225
 
      <opt>none</opt>
1226
 
      <opt>n</opt>
1227
 
      <opt>left</opt>
1228
 
    </mod>
1229
 
    <derived start="16" size="1">
1230
 
      <or>
1231
 
        <and>
1232
 
          <eq left="neg0" right="#none"/>
1233
 
          <eq left="neg1" right="#none"/>
1234
 
        </and>
1235
 
        <and alias="true">
1236
 
          <eq left="neg0" right="#neg"/>
1237
 
          <eq left="neg1" right="#neg"/>
1238
 
        </and>
1239
 
      </or>
1240
 
      <or>
1241
 
        <and>
1242
 
          <eq left="neg0" right="#none"/>
1243
 
          <eq left="neg1" right="#neg"/>
1244
 
        </and>
1245
 
        <and alias="true">
1246
 
          <eq left="neg0" right="#neg"/>
1247
 
          <eq left="neg1" right="#none"/>
1248
 
        </and>
1249
 
      </or>
1250
 
    </derived>
1251
 
    <derived start="12" size="3">
1252
 
      <and>
1253
 
        <eq left="clamp" right="#none"/>
1254
 
        <eq left="special" right="#none"/>
1255
 
        <eq left="round" right="#none"/>
1256
 
      </and>
1257
 
      <and>
1258
 
        <eq left="clamp" right="#clamp_0_inf"/>
1259
 
        <eq left="special" right="#none"/>
1260
 
        <eq left="round" right="#none"/>
1261
 
      </and>
1262
 
      <and>
1263
 
        <eq left="clamp" right="#clamp_m1_1"/>
1264
 
        <eq left="special" right="#none"/>
1265
 
        <eq left="round" right="#none"/>
1266
 
      </and>
1267
 
      <and>
1268
 
        <eq left="clamp" right="#clamp_0_1"/>
1269
 
        <eq left="special" right="#none"/>
1270
 
        <eq left="round" right="#none"/>
1271
 
      </and>
1272
 
      <and>
1273
 
        <eq left="clamp" right="#none"/>
1274
 
        <eq left="special" right="#n"/>
1275
 
        <eq left="round" right="#none"/>
1276
 
      </and>
1277
 
      <and>
1278
 
        <eq left="clamp" right="#none"/>
1279
 
        <eq left="special" right="#n"/>
1280
 
        <eq left="round" right="#rtz"/>
1281
 
      </and>
1282
 
      <reserved/>
1283
 
      <and>
1284
 
        <eq left="clamp" right="#none"/>
1285
 
        <eq left="special" right="#left"/>
1286
 
        <eq left="round" right="#none"/>
1287
 
      </and>
1288
 
    </derived>
1289
 
  </ins>
1290
 
 
1291
 
  <ins name="*FMUL_CSLICE" mask="0x7ffe00" exact="0x70d000">
1292
 
    <src start="0" mask="0xfb"/>
1293
 
    <src start="3" mask="0xfb"/>
1294
 
    <mod name="lane0" start="6" size="1" default="h0">
1295
 
      <opt>h0</opt>
1296
 
      <opt>h1</opt>
1297
 
    </mod>
1298
 
    <mod name="abs0" start="7" size="1" opt="abs"/>
1299
 
    <mod name="neg0" start="8" size="1" opt="neg"/>
1300
 
  </ins>
1301
 
 
1302
 
  <ins name="*FMUL_SLICE.f32" mask="0x7fffc0" exact="0x70cb40">
1303
 
    <src start="0" mask="0xfb"/>
1304
 
    <src start="3" mask="0xfb"/>
1305
 
  </ins>
1306
 
 
1307
 
  <ins name="*FREXPE.f32">
1308
 
    <src start="0" mask="0xfb"/>
1309
 
    <mod name="neg0" size="1" opt="neg"/>
1310
 
    <mod name="sqrt" size="1" opt="sqrt"/>
1311
 
    <mod name="log" size="1" opt="log"/>
1312
 
    <mod name="widen0" start="3" size="2">
1313
 
      <reserved/>
1314
 
      <opt>none</opt>
1315
 
      <opt>h0</opt>
1316
 
      <opt>h1</opt>
1317
 
    </mod>
1318
 
    <encoding mask="0x7ffea0" exact="0x701c20">
1319
 
      <eq left="log" right="#none"/>
1320
 
      <copy name="neg0" start="6"/>
1321
 
      <copy name="sqrt" start="8"/>
1322
 
    </encoding>
1323
 
    <encoding mask="0x7fffe0" exact="0x701e20">
1324
 
      <and>
1325
 
        <eq left="log" right="#log"/>
1326
 
        <eq left="sqrt" right="#none"/>
1327
 
        <eq left="neg0" right="#none"/>
1328
 
      </and>
1329
 
    </encoding>
1330
 
  </ins>
1331
 
 
1332
 
  <ins name="*FREXPE.v2f16">
1333
 
    <src start="0" mask="0xfb"/>
1334
 
    <mod name="neg0" size="1" opt="neg"/>
1335
 
    <mod name="sqrt" size="1" opt="sqrt"/>
1336
 
    <mod name="log" size="1" opt="log"/>
1337
 
    <mod name="swz0" start="3" size="2" default="h01">
1338
 
      <opt>h00</opt>
1339
 
      <opt>h10</opt>
1340
 
      <opt>h01</opt>
1341
 
      <opt>h11</opt>
1342
 
    </mod>
1343
 
    <encoding mask="0x7ffea0" exact="0x701c00">
1344
 
      <eq left="log" right="#none"/>
1345
 
      <copy name="neg0" start="6"/>
1346
 
      <copy name="sqrt" start="8"/>
1347
 
    </encoding>
1348
 
    <encoding mask="0x7fffe0" exact="0x701e00">
1349
 
      <and>
1350
 
        <eq left="log" right="#log"/>
1351
 
        <eq left="sqrt" right="#none"/>
1352
 
        <eq left="neg0" right="#none"/>
1353
 
      </and>
1354
 
    </encoding>
1355
 
  </ins>
1356
 
 
1357
 
  <ins name="*FREXPM.f32">
1358
 
    <src start="0" mask="0xfb"/>
1359
 
    <mod name="abs0" start="6" size="1" opt="abs"/>
1360
 
    <mod name="sqrt" size="1" opt="sqrt"/>
1361
 
    <mod name="log" size="1" opt="log"/>
1362
 
    <mod name="widen0" start="3" size="2">
1363
 
      <reserved/>
1364
 
      <opt>none</opt>
1365
 
      <opt>h0</opt>
1366
 
      <opt>h1</opt>
1367
 
    </mod>
1368
 
    <mod name="neg0" size="1" opt="neg"/>
1369
 
    <encoding mask="0x7fff20" exact="0x701b20">
1370
 
      <and>
1371
 
        <eq left="log" right="#none"/>
1372
 
        <eq left="neg0" right="#none"/>
1373
 
      </and>
1374
 
      <copy name="sqrt" start="7"/>
1375
 
    </encoding>
1376
 
    <encoding mask="0x7fff20" exact="0x701a20">
1377
 
      <and>
1378
 
        <eq left="log" right="#log"/>
1379
 
        <eq left="sqrt" right="#none"/>
1380
 
      </and>
1381
 
      <copy name="neg0" start="7"/>
1382
 
    </encoding>
1383
 
  </ins>
1384
 
 
1385
 
  <ins name="*FREXPM.v2f16">
1386
 
    <src start="0" mask="0xfb"/>
1387
 
    <mod name="abs0" start="6" size="1" opt="abs"/>
1388
 
    <mod name="sqrt" size="1" opt="sqrt"/>
1389
 
    <mod name="log" size="1" opt="log"/>
1390
 
    <mod name="swz0" start="3" size="2" default="h01">
1391
 
      <opt>h00</opt>
1392
 
      <opt>h10</opt>
1393
 
      <opt>h01</opt>
1394
 
      <opt>h11</opt>
1395
 
    </mod>
1396
 
    <mod name="neg0" size="1" opt="neg"/>
1397
 
    <encoding mask="0x7fff20" exact="0x701b00">
1398
 
      <and>
1399
 
        <eq left="log" right="#none"/>
1400
 
        <eq left="neg0" right="#none"/>
1401
 
      </and>
1402
 
      <copy name="sqrt" start="7"/>
1403
 
    </encoding>
1404
 
    <encoding mask="0x7fff20" exact="0x701a00">
1405
 
      <and>
1406
 
        <eq left="log" right="#log"/>
1407
 
        <eq left="sqrt" right="#none"/>
1408
 
      </and>
1409
 
      <copy name="neg0" start="7"/>
1410
 
    </encoding>
1411
 
  </ins>
1412
 
 
1413
 
  <ins name="*FROUND.f32">
1414
 
    <src start="0" mask="0xfb"/>
1415
 
    <mod name="abs0" start="7" size="1" opt="abs"/>
1416
 
    <mod name="neg0" start="8" size="1" opt="neg"/>
1417
 
    <mod name="widen0" start="3" size="2">
1418
 
      <reserved/>
1419
 
      <opt>none</opt>
1420
 
      <opt>h0</opt>
1421
 
      <opt>h1</opt>
1422
 
    </mod>
1423
 
    <mod name="round" size="3">
1424
 
      <opt>none</opt>
1425
 
      <opt>rtp</opt>
1426
 
      <opt>rtn</opt>
1427
 
      <opt>rtz</opt>
1428
 
      <opt>rtna</opt>
1429
 
    </mod>
1430
 
    <encoding mask="0x7ff860" exact="0x70c020">
1431
 
      <neq left="round" right="#rtna"/>
1432
 
      <derived start="9" size="2">
1433
 
        <eq left="round" right="#none"/>
1434
 
        <eq left="round" right="#rtp"/>
1435
 
        <eq left="round" right="#rtn"/>
1436
 
        <eq left="round" right="#rtz"/>
1437
 
      </derived>
1438
 
    </encoding>
1439
 
    <encoding mask="0x7ffe60" exact="0x707620">
1440
 
      <eq left="round" right="#rtna"/>
1441
 
    </encoding>
1442
 
  </ins>
1443
 
 
1444
 
  <ins name="*FROUND.v2f16">
1445
 
    <src start="0" mask="0xfb"/>
1446
 
    <mod name="abs0" start="7" size="1" opt="abs"/>
1447
 
    <mod name="neg0" start="8" size="1" opt="neg"/>
1448
 
    <mod name="swz0" start="3" size="2" default="h01">
1449
 
      <opt>h00</opt>
1450
 
      <opt>h10</opt>
1451
 
      <opt>h01</opt>
1452
 
      <opt>h11</opt>
1453
 
    </mod>
1454
 
    <mod name="round" size="3">
1455
 
      <opt>none</opt>
1456
 
      <opt>rtp</opt>
1457
 
      <opt>rtn</opt>
1458
 
      <opt>rtz</opt>
1459
 
      <opt>rtna</opt>
1460
 
    </mod>
1461
 
    <encoding mask="0x7ff860" exact="0x70c000">
1462
 
      <neq left="round" right="#rtna"/>
1463
 
      <derived start="9" size="2">
1464
 
        <eq left="round" right="#none"/>
1465
 
        <eq left="round" right="#rtp"/>
1466
 
        <eq left="round" right="#rtn"/>
1467
 
        <eq left="round" right="#rtz"/>
1468
 
      </derived>
1469
 
    </encoding>
1470
 
    <encoding mask="0x7ffe60" exact="0x707600">
1471
 
      <eq left="round" right="#rtna"/>
1472
 
    </encoding>
1473
 
  </ins>
1474
 
 
1475
 
  <ins name="*FRSHIFT_DOUBLE.i32" mask="0x7ff800" exact="0x33f000">
1476
 
    <src start="0" mask="0xfb"/>
1477
 
    <src start="3" mask="0xfb"/>
1478
 
    <src start="6"/>
1479
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
1480
 
    <mod name="lane2" start="10" size="1" default="b0">
1481
 
      <opt>b0</opt>
1482
 
      <opt>b2</opt>
1483
 
    </mod>
1484
 
  </ins>
1485
 
 
1486
 
  <ins name="*IADDC.i32" mask="0x7ffe00" exact="0x27fc00">
1487
 
    <src start="0" mask="0xfb"/>
1488
 
    <src start="3" mask="0xfb"/>
1489
 
    <src start="6"/>
1490
 
  </ins>
1491
 
 
1492
 
  <ins name="*IDP.v4i8" mask="0x7ff9c0" exact="0x73e8c0">
1493
 
    <src start="0" mask="0xfb"/>
1494
 
    <src start="3" mask="0xfb"/>
1495
 
    <mod name="sign0" start="9" size="1">
1496
 
      <opt>zext</opt>
1497
 
      <opt>sext</opt>
1498
 
    </mod>
1499
 
    <mod name="sign1" start="10" size="1">
1500
 
      <opt>zext</opt>
1501
 
      <opt>sext</opt>
1502
 
    </mod>
1503
 
  </ins>
1504
 
 
1505
 
  <ins name="*IMUL.i32">
1506
 
    <src start="0" mask="0xfb"/>
1507
 
    <src start="3" mask="0xfb"/>
1508
 
    <mod name="widen1" size="3">
1509
 
      <opt>none</opt>
1510
 
      <opt>h0</opt>
1511
 
      <opt>h1</opt>
1512
 
      <opt>b0</opt>
1513
 
      <opt>b1</opt>
1514
 
      <opt>b2</opt>
1515
 
      <opt>b3</opt>
1516
 
    </mod>
1517
 
    <mod name="extend" size="2">
1518
 
      <opt>none</opt>
1519
 
      <opt>sext</opt>
1520
 
      <opt>zext</opt>
1521
 
    </mod>
1522
 
    <encoding mask="0x7fffc0" exact="0x73c0c0">
1523
 
      <and>
1524
 
        <eq left="extend" right="#none"/>
1525
 
        <eq left="widen1" right="#none"/>
1526
 
      </and>
1527
 
    </encoding>
1528
 
    <encoding mask="0x7ff9c0" exact="0x73c8c0">
1529
 
      <and>
1530
 
        <neq left="extend" right="#none"/>
1531
 
        <or>
1532
 
          <eq left="widen1" right="#h0"/>
1533
 
          <eq left="widen1" right="#h1"/>
1534
 
        </or>
1535
 
      </and>
1536
 
      <derived start="9" size="1">
1537
 
        <eq left="widen1" right="#h0"/>
1538
 
        <eq left="widen1" right="#h1"/>
1539
 
      </derived>
1540
 
      <derived start="10" size="1">
1541
 
        <eq left="extend" right="#zext"/>
1542
 
        <eq left="extend" right="#sext"/>
1543
 
      </derived>
1544
 
    </encoding>
1545
 
    <encoding mask="0x7ff1c0" exact="0x73b0c0">
1546
 
      <and>
1547
 
        <neq left="extend" right="#none"/>
1548
 
        <or>
1549
 
          <eq left="widen1" right="#b0"/>
1550
 
          <eq left="widen1" right="#b1"/>
1551
 
          <eq left="widen1" right="#b2"/>
1552
 
          <eq left="widen1" right="#b3"/>
1553
 
        </or>
1554
 
      </and>
1555
 
      <derived start="9" size="2">
1556
 
        <eq left="widen1" right="#b0"/>
1557
 
        <eq left="widen1" right="#b1"/>
1558
 
        <eq left="widen1" right="#b2"/>
1559
 
        <eq left="widen1" right="#b3"/>
1560
 
      </derived>
1561
 
      <derived start="11" size="1">
1562
 
        <eq left="extend" right="#zext"/>
1563
 
        <eq left="extend" right="#sext"/>
1564
 
      </derived>
1565
 
    </encoding>
1566
 
  </ins>
1567
 
 
1568
 
  <ins name="*IMUL.v2i16" mask="0x7fe1c0" exact="0x7240c0">
1569
 
    <src start="0" mask="0xfb"/>
1570
 
    <src start="3" mask="0xfb"/>
1571
 
    <mod name="swz0" start="9" size="2" default="h01">
1572
 
      <opt>h00</opt>
1573
 
      <opt>h10</opt>
1574
 
      <opt>h01</opt>
1575
 
      <opt>h11</opt>
1576
 
    </mod>
1577
 
    <mod name="swz1" start="11" size="2" default="h01">
1578
 
      <opt>h00</opt>
1579
 
      <opt>h10</opt>
1580
 
      <opt>h01</opt>
1581
 
      <opt>h11</opt>
1582
 
    </mod>
1583
 
  </ins>
1584
 
 
1585
 
  <ins name="*IMUL.v4i8">
1586
 
    <src start="0" mask="0xfb"/>
1587
 
    <src start="3" mask="0xfb"/>
1588
 
    <mod name="replicate0" size="3" default="b0123">
1589
 
      <opt>b0123</opt>
1590
 
    </mod>
1591
 
    <mod name="replicate1" size="3" default="b0123">
1592
 
      <opt>b0123</opt>
1593
 
      <opt>b0000</opt>
1594
 
      <opt>b1111</opt>
1595
 
      <opt>b2222</opt>
1596
 
      <opt>b3333</opt>
1597
 
    </mod>
1598
 
    <encoding mask="0x7fffc0" exact="0x73e0c0">
1599
 
      <and>
1600
 
        <eq left="replicate0" right="#b0123"/>
1601
 
        <eq left="replicate1" right="#b0123"/>
1602
 
      </and>
1603
 
    </encoding>
1604
 
    <encoding mask="0x7ff9c0" exact="0x7380c0">
1605
 
      <and>
1606
 
        <eq left="replicate0" right="#b0123"/>
1607
 
        <neq left="replicate1" right="#b0123"/>
1608
 
      </and>
1609
 
      <derived start="9" size="2">
1610
 
        <eq left="replicate1" right="#b0000"/>
1611
 
        <eq left="replicate1" right="#b1111"/>
1612
 
        <eq left="replicate1" right="#b2222"/>
1613
 
        <eq left="replicate1" right="#b3333"/>
1614
 
      </derived>
1615
 
    </encoding>
1616
 
  </ins>
1617
 
 
1618
 
  <ins name="*IMULD" mask="0x7fff80" exact="0x70f100">
1619
 
    <src start="0" mask="0x33"/>
1620
 
    <src start="3" mask="0x33"/>
1621
 
    <mod name="threads" start="6" size="1" default="odd">
1622
 
      <opt>even</opt>
1623
 
      <opt>odd</opt>
1624
 
    </mod>
1625
 
  </ins>
1626
 
 
1627
 
  <ins name="*ISUBB.i32" mask="0x7ffe00" exact="0x27fe00">
1628
 
    <src start="0" mask="0xfb"/>
1629
 
    <src start="3" mask="0xfb"/>
1630
 
    <src start="6"/>
1631
 
  </ins>
1632
 
 
1633
 
  <ins name="*JUMP_EX" mask="0x7ff000" exact="0x2eb000" last="true">
1634
 
    <src start="0" mask="0xfb"/>
1635
 
    <src start="3" mask="0xfb"/>
1636
 
    <src start="6"/>
1637
 
    <mod name="test_mode" start="9" size="1" default="z">
1638
 
      <opt>z</opt>
1639
 
      <opt>nz</opt>
1640
 
    </mod>
1641
 
    <mod name="stack_mode" start="10" size="2">
1642
 
      <opt>return</opt>
1643
 
      <opt>call</opt>
1644
 
      <opt>none</opt>
1645
 
      <opt>replace</opt>
1646
 
    </mod>
1647
 
  </ins>
1648
 
 
1649
 
  <ins name="*LROT_DOUBLE.i32" mask="0x7ff000" exact="0x33b000">
1650
 
    <src start="0" mask="0xfb"/>
1651
 
    <src start="3" mask="0xfb"/>
1652
 
    <src start="6"/>
1653
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
1654
 
    <mod name="lane2" start="10" size="1" default="b0">
1655
 
      <opt>b0</opt>
1656
 
      <opt>b2</opt>
1657
 
    </mod>
1658
 
    <mod name="result_word" start="11" size="1" default="w0">
1659
 
      <opt>w0</opt>
1660
 
      <opt>w1</opt>
1661
 
    </mod>
1662
 
  </ins>
1663
 
 
1664
 
  <ins name="*LSHIFT_AND.i32" mask="0x7f3800" exact="0x311000">
1665
 
    <src start="0" mask="0xfb"/>
1666
 
    <src start="3" mask="0xfb"/>
1667
 
    <src start="6"/>
1668
 
    <mod name="lane2" start="9" size="2" default="b0">
1669
 
      <opt>b0</opt>
1670
 
      <opt>b1</opt>
1671
 
      <opt>b2</opt>
1672
 
      <opt>b3</opt>
1673
 
    </mod>
1674
 
    <mod name="not1" start="14" size="1" opt="not"/>
1675
 
    <mod name="not_result" start="15" size="1">
1676
 
      <opt>not</opt>
1677
 
      <opt>none</opt>
1678
 
    </mod>
1679
 
  </ins>
1680
 
 
1681
 
  <ins name="*LSHIFT_AND.v2i16">
1682
 
    <src start="0" mask="0xfb"/>
1683
 
    <src start="3" mask="0xfb"/>
1684
 
    <src start="6"/>
1685
 
    <mod name="lanes2" size="3" default="b02">
1686
 
      <opt>b00</opt>
1687
 
      <opt>b11</opt>
1688
 
      <opt>b22</opt>
1689
 
      <opt>b33</opt>
1690
 
      <opt>b01</opt>
1691
 
      <opt>b23</opt>
1692
 
      <opt>b02</opt>
1693
 
    </mod>
1694
 
    <mod name="not1" start="14" size="1" opt="not"/>
1695
 
    <mod name="not_result" start="15" size="1">
1696
 
      <opt>not</opt>
1697
 
      <opt>none</opt>
1698
 
    </mod>
1699
 
    <encoding mask="0x7f3800" exact="0x310800">
1700
 
      <or>
1701
 
        <eq left="lanes2" right="#b00"/>
1702
 
        <eq left="lanes2" right="#b11"/>
1703
 
        <eq left="lanes2" right="#b22"/>
1704
 
        <eq left="lanes2" right="#b33"/>
1705
 
      </or>
1706
 
      <derived start="9" size="2">
1707
 
        <eq left="lanes2" right="#b00"/>
1708
 
        <eq left="lanes2" right="#b11"/>
1709
 
        <eq left="lanes2" right="#b22"/>
1710
 
        <eq left="lanes2" right="#b33"/>
1711
 
      </derived>
1712
 
    </encoding>
1713
 
    <encoding mask="0x7f3800" exact="0x311800">
1714
 
      <or>
1715
 
        <eq left="lanes2" right="#b01"/>
1716
 
        <eq left="lanes2" right="#b23"/>
1717
 
        <eq left="lanes2" right="#b02"/>
1718
 
      </or>
1719
 
      <derived start="9" size="2">
1720
 
        <reserved/>
1721
 
        <eq left="lanes2" right="#b01"/>
1722
 
        <eq left="lanes2" right="#b23"/>
1723
 
        <eq left="lanes2" right="#b02"/>
1724
 
      </derived>
1725
 
    </encoding>
1726
 
  </ins>
1727
 
 
1728
 
  <ins name="*LSHIFT_AND.v4i8">
1729
 
    <src start="0" mask="0xfb"/>
1730
 
    <src start="3" mask="0xfb"/>
1731
 
    <src start="6"/>
1732
 
    <mod name="lanes2" size="3" default="b0123">
1733
 
      <opt>b0123</opt>
1734
 
      <opt>b0000</opt>
1735
 
      <opt>b1111</opt>
1736
 
      <opt>b2222</opt>
1737
 
      <opt>b3333</opt>
1738
 
    </mod>
1739
 
    <mod name="not1" start="14" size="1" opt="not"/>
1740
 
    <mod name="not_result" start="15" size="1">
1741
 
      <opt>not</opt>
1742
 
      <opt>none</opt>
1743
 
    </mod>
1744
 
    <encoding mask="0x7f3800" exact="0x310000">
1745
 
      <neq left="lanes2" right="#b0123"/>
1746
 
      <derived start="9" size="2">
1747
 
        <eq left="lanes2" right="#b0000"/>
1748
 
        <eq left="lanes2" right="#b1111"/>
1749
 
        <eq left="lanes2" right="#b2222"/>
1750
 
        <eq left="lanes2" right="#b3333"/>
1751
 
      </derived>
1752
 
    </encoding>
1753
 
    <encoding mask="0x7f3e00" exact="0x311800">
1754
 
      <eq left="lanes2" right="#b0123"/>
1755
 
    </encoding>
1756
 
  </ins>
1757
 
 
1758
 
  <ins name="*LSHIFT_DOUBLE.i32" mask="0x7ff000" exact="0x33c000">
1759
 
    <src start="0" mask="0xfb"/>
1760
 
    <src start="3" mask="0xfb"/>
1761
 
    <src start="6"/>
1762
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
1763
 
    <mod name="lane2" start="10" size="1" default="b0">
1764
 
      <opt>b0</opt>
1765
 
      <opt>b2</opt>
1766
 
    </mod>
1767
 
    <mod name="result_word" start="11" size="1" default="w0">
1768
 
      <opt>w0</opt>
1769
 
      <opt>w1</opt>
1770
 
    </mod>
1771
 
  </ins>
1772
 
 
1773
 
  <ins name="*LSHIFT_OR.i32" mask="0x7f3800" exact="0x313000">
1774
 
    <src start="0" mask="0xfb"/>
1775
 
    <src start="3" mask="0xfb"/>
1776
 
    <src start="6"/>
1777
 
    <mod name="lane2" start="9" size="2" default="b0">
1778
 
      <opt>b0</opt>
1779
 
      <opt>b1</opt>
1780
 
      <opt>b2</opt>
1781
 
      <opt>b3</opt>
1782
 
    </mod>
1783
 
    <mod name="not1" start="14" size="1">
1784
 
      <opt>not</opt>
1785
 
      <opt>none</opt>
1786
 
    </mod>
1787
 
    <mod name="not_result" start="15" size="1" opt="not"/>
1788
 
  </ins>
1789
 
 
1790
 
  <ins name="*LSHIFT_OR.v2i16">
1791
 
    <src start="0" mask="0xfb"/>
1792
 
    <src start="3" mask="0xfb"/>
1793
 
    <src start="6"/>
1794
 
    <mod name="lanes2" size="3" default="b02">
1795
 
      <opt>b00</opt>
1796
 
      <opt>b11</opt>
1797
 
      <opt>b22</opt>
1798
 
      <opt>b33</opt>
1799
 
      <opt>b01</opt>
1800
 
      <opt>b23</opt>
1801
 
      <opt>b02</opt>
1802
 
    </mod>
1803
 
    <mod name="not1" start="14" size="1">
1804
 
      <opt>not</opt>
1805
 
      <opt>none</opt>
1806
 
    </mod>
1807
 
    <mod name="not_result" start="15" size="1" opt="not"/>
1808
 
    <encoding mask="0x7f3800" exact="0x312800">
1809
 
      <or>
1810
 
        <eq left="lanes2" right="#b00"/>
1811
 
        <eq left="lanes2" right="#b11"/>
1812
 
        <eq left="lanes2" right="#b22"/>
1813
 
        <eq left="lanes2" right="#b33"/>
1814
 
      </or>
1815
 
      <derived start="9" size="2">
1816
 
        <eq left="lanes2" right="#b00"/>
1817
 
        <eq left="lanes2" right="#b11"/>
1818
 
        <eq left="lanes2" right="#b22"/>
1819
 
        <eq left="lanes2" right="#b33"/>
1820
 
      </derived>
1821
 
    </encoding>
1822
 
    <encoding mask="0x7f3800" exact="0x313800">
1823
 
      <or>
1824
 
        <eq left="lanes2" right="#b01"/>
1825
 
        <eq left="lanes2" right="#b23"/>
1826
 
        <eq left="lanes2" right="#b02"/>
1827
 
      </or>
1828
 
      <derived start="9" size="2">
1829
 
        <reserved/>
1830
 
        <eq left="lanes2" right="#b01"/>
1831
 
        <eq left="lanes2" right="#b23"/>
1832
 
        <eq left="lanes2" right="#b02"/>
1833
 
      </derived>
1834
 
    </encoding>
1835
 
  </ins>
1836
 
 
1837
 
  <ins name="*LSHIFT_OR.v4i8">
1838
 
    <src start="0" mask="0xfb"/>
1839
 
    <src start="3" mask="0xfb"/>
1840
 
    <src start="6"/>
1841
 
    <mod name="lanes2" size="3" default="b0123">
1842
 
      <opt>b0123</opt>
1843
 
      <opt>b0000</opt>
1844
 
      <opt>b1111</opt>
1845
 
      <opt>b2222</opt>
1846
 
      <opt>b3333</opt>
1847
 
    </mod>
1848
 
    <mod name="not1" start="14" size="1">
1849
 
      <opt>not</opt>
1850
 
      <opt>none</opt>
1851
 
    </mod>
1852
 
    <mod name="not_result" start="15" size="1" opt="not"/>
1853
 
    <encoding mask="0x7f3800" exact="0x312000">
1854
 
      <neq left="lanes2" right="#b0123"/>
1855
 
      <derived start="9" size="2">
1856
 
        <eq left="lanes2" right="#b0000"/>
1857
 
        <eq left="lanes2" right="#b1111"/>
1858
 
        <eq left="lanes2" right="#b2222"/>
1859
 
        <eq left="lanes2" right="#b3333"/>
1860
 
      </derived>
1861
 
    </encoding>
1862
 
    <encoding mask="0x7f3e00" exact="0x313800">
1863
 
      <eq left="lanes2" right="#b0123"/>
1864
 
    </encoding>
1865
 
  </ins>
1866
 
 
1867
 
  <ins name="*LSHIFT_XOR.i32" mask="0x7fd800" exact="0x325000">
1868
 
    <src start="0" mask="0xfb"/>
1869
 
    <src start="3" mask="0xfb"/>
1870
 
    <src start="6"/>
1871
 
    <mod name="lane2" start="9" size="2" default="b0">
1872
 
      <opt>b0</opt>
1873
 
      <opt>b1</opt>
1874
 
      <opt>b2</opt>
1875
 
      <opt>b3</opt>
1876
 
    </mod>
1877
 
    <mod name="not_result" start="13" size="1" opt="not"/>
1878
 
  </ins>
1879
 
 
1880
 
  <ins name="*LSHIFT_XOR.v2i16">
1881
 
    <src start="0" mask="0xfb"/>
1882
 
    <src start="3" mask="0xfb"/>
1883
 
    <src start="6"/>
1884
 
    <mod name="lanes2" size="3" default="b02">
1885
 
      <opt>b00</opt>
1886
 
      <opt>b11</opt>
1887
 
      <opt>b22</opt>
1888
 
      <opt>b33</opt>
1889
 
      <opt>b01</opt>
1890
 
      <opt>b23</opt>
1891
 
      <opt>b02</opt>
1892
 
    </mod>
1893
 
    <mod name="not_result" start="13" size="1" opt="not"/>
1894
 
    <encoding mask="0x7fd800" exact="0x324800">
1895
 
      <or>
1896
 
        <eq left="lanes2" right="#b00"/>
1897
 
        <eq left="lanes2" right="#b11"/>
1898
 
        <eq left="lanes2" right="#b22"/>
1899
 
        <eq left="lanes2" right="#b33"/>
1900
 
      </or>
1901
 
      <derived start="9" size="2">
1902
 
        <eq left="lanes2" right="#b00"/>
1903
 
        <eq left="lanes2" right="#b11"/>
1904
 
        <eq left="lanes2" right="#b22"/>
1905
 
        <eq left="lanes2" right="#b33"/>
1906
 
      </derived>
1907
 
    </encoding>
1908
 
    <encoding mask="0x7fd800" exact="0x325800">
1909
 
      <or>
1910
 
        <eq left="lanes2" right="#b01"/>
1911
 
        <eq left="lanes2" right="#b23"/>
1912
 
        <eq left="lanes2" right="#b02"/>
1913
 
      </or>
1914
 
      <derived start="9" size="2">
1915
 
        <reserved/>
1916
 
        <eq left="lanes2" right="#b01"/>
1917
 
        <eq left="lanes2" right="#b23"/>
1918
 
        <eq left="lanes2" right="#b02"/>
1919
 
      </derived>
1920
 
    </encoding>
1921
 
  </ins>
1922
 
 
1923
 
  <ins name="*LSHIFT_XOR.v4i8">
1924
 
    <src start="0" mask="0xfb"/>
1925
 
    <src start="3" mask="0xfb"/>
1926
 
    <src start="6"/>
1927
 
    <mod name="lanes2" size="3" default="b0123">
1928
 
      <opt>b0123</opt>
1929
 
      <opt>b0000</opt>
1930
 
      <opt>b1111</opt>
1931
 
      <opt>b2222</opt>
1932
 
      <opt>b3333</opt>
1933
 
    </mod>
1934
 
    <mod name="not_result" start="13" size="1" opt="not"/>
1935
 
    <encoding mask="0x7fd800" exact="0x324000">
1936
 
      <neq left="lanes2" right="#b0123"/>
1937
 
      <derived start="9" size="2">
1938
 
        <eq left="lanes2" right="#b0000"/>
1939
 
        <eq left="lanes2" right="#b1111"/>
1940
 
        <eq left="lanes2" right="#b2222"/>
1941
 
        <eq left="lanes2" right="#b3333"/>
1942
 
      </derived>
1943
 
    </encoding>
1944
 
    <encoding mask="0x7fde00" exact="0x325800">
1945
 
      <eq left="lanes2" right="#b0123"/>
1946
 
    </encoding>
1947
 
  </ins>
1948
 
 
1949
 
  <ins name="*MKVEC.v2i16" mask="0x7fff00" exact="0x70f000">
1950
 
    <src start="0" mask="0xfb"/>
1951
 
    <src start="3" mask="0xfb"/>
1952
 
    <mod name="lane0" start="6" size="1" default="h0">
1953
 
      <opt>h0</opt>
1954
 
      <opt>h1</opt>
1955
 
    </mod>
1956
 
    <mod name="lane1" start="7" size="1" default="h0">
1957
 
      <opt>h0</opt>
1958
 
      <opt>h1</opt>
1959
 
    </mod>
1960
 
  </ins>
1961
 
 
1962
 
  <ins name="*MKVEC.v4i8" mask="0x7f0000" exact="0x710000">
1963
 
    <src start="0" mask="0xfb"/>
1964
 
    <src start="3" mask="0xfb"/>
1965
 
    <src start="6"/>
1966
 
    <src start="9"/>
1967
 
    <mod name="lane0" start="12" size="1" default="b0">
1968
 
      <opt>b0</opt>
1969
 
      <opt>b2</opt>
1970
 
    </mod>
1971
 
    <mod name="lane1" start="13" size="1" default="b0">
1972
 
      <opt>b0</opt>
1973
 
      <opt>b2</opt>
1974
 
    </mod>
1975
 
    <mod name="lane2" start="14" size="1" default="b0">
1976
 
      <opt>b0</opt>
1977
 
      <opt>b2</opt>
1978
 
    </mod>
1979
 
    <mod name="lane3" start="15" size="1" default="b0">
1980
 
      <opt>b0</opt>
1981
 
      <opt>b2</opt>
1982
 
    </mod>
1983
 
  </ins>
1984
 
 
1985
 
  <ins name="*MOV.i32" mask="0x7ffff8" exact="0x701968">
1986
 
    <src start="0" mask="0xfb"/>
1987
 
  </ins>
1988
 
 
1989
 
  <ins name="*NOP" mask="0x7fffff" exact="0x701963" dests="0"/>
1990
 
 
1991
 
  <ins name="*POPCOUNT.i32" mask="0x7ffff8" exact="0x73c6d8">
1992
 
    <src start="0" mask="0xfb"/>
1993
 
  </ins>
1994
 
 
1995
 
  <ins name="*QUIET.f32" mask="0x7ffff8" exact="0x701970">
1996
 
    <src start="0" mask="0xfb"/>
1997
 
  </ins>
1998
 
 
1999
 
  <ins name="*QUIET.v2f16" mask="0x7fffc8" exact="0x701900">
2000
 
    <src start="0" mask="0xfb"/>
2001
 
    <mod name="swz0" start="4" size="2" default="h01">
2002
 
      <opt>h00</opt>
2003
 
      <opt>h10</opt>
2004
 
      <opt>h01</opt>
2005
 
      <opt>h11</opt>
2006
 
    </mod>
2007
 
  </ins>
2008
 
 
2009
 
  <ins name="*RROT_DOUBLE.i32" mask="0x7ff000" exact="0x33a000">
2010
 
    <src start="0" mask="0xfb"/>
2011
 
    <src start="3" mask="0xfb"/>
2012
 
    <src start="6"/>
2013
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
2014
 
    <mod name="lane2" start="10" size="1" default="b0">
2015
 
      <opt>b0</opt>
2016
 
      <opt>b2</opt>
2017
 
    </mod>
2018
 
    <mod name="result_word" start="11" size="1" default="w0">
2019
 
      <opt>w0</opt>
2020
 
      <opt>w1</opt>
2021
 
    </mod>
2022
 
  </ins>
2023
 
 
2024
 
  <ins name="*RSHIFT_AND.i32" mask="0x7f3800" exact="0x301000">
2025
 
    <src start="0" mask="0xfb"/>
2026
 
    <src start="3" mask="0xfb"/>
2027
 
    <src start="6"/>
2028
 
    <mod name="lane2" start="9" size="2" default="b0">
2029
 
      <opt>b0</opt>
2030
 
      <opt>b1</opt>
2031
 
      <opt>b2</opt>
2032
 
      <opt>b3</opt>
2033
 
    </mod>
2034
 
    <mod name="not1" start="14" size="1" opt="not"/>
2035
 
    <mod name="not_result" start="15" size="1">
2036
 
      <opt>not</opt>
2037
 
      <opt>none</opt>
2038
 
    </mod>
2039
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2040
 
  </ins>
2041
 
 
2042
 
  <ins name="*RSHIFT_AND.v2i16">
2043
 
    <src start="0" mask="0xfb"/>
2044
 
    <src start="3" mask="0xfb"/>
2045
 
    <src start="6"/>
2046
 
    <mod name="lanes2" size="3" default="b02">
2047
 
      <opt>b00</opt>
2048
 
      <opt>b11</opt>
2049
 
      <opt>b22</opt>
2050
 
      <opt>b33</opt>
2051
 
      <opt>b01</opt>
2052
 
      <opt>b23</opt>
2053
 
      <opt>b02</opt>
2054
 
    </mod>
2055
 
    <mod name="not1" start="14" size="1" opt="not"/>
2056
 
    <mod name="not_result" start="15" size="1">
2057
 
      <opt>not</opt>
2058
 
      <opt>none</opt>
2059
 
    </mod>
2060
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2061
 
    <encoding mask="0x7f3800" exact="0x300800">
2062
 
      <or>
2063
 
        <eq left="lanes2" right="#b00"/>
2064
 
        <eq left="lanes2" right="#b11"/>
2065
 
        <eq left="lanes2" right="#b22"/>
2066
 
        <eq left="lanes2" right="#b33"/>
2067
 
      </or>
2068
 
      <derived start="9" size="2">
2069
 
        <eq left="lanes2" right="#b00"/>
2070
 
        <eq left="lanes2" right="#b11"/>
2071
 
        <eq left="lanes2" right="#b22"/>
2072
 
        <eq left="lanes2" right="#b33"/>
2073
 
      </derived>
2074
 
    </encoding>
2075
 
    <encoding mask="0x7f3800" exact="0x301800">
2076
 
      <or>
2077
 
        <eq left="lanes2" right="#b01"/>
2078
 
        <eq left="lanes2" right="#b23"/>
2079
 
        <eq left="lanes2" right="#b02"/>
2080
 
      </or>
2081
 
      <derived start="9" size="2">
2082
 
        <reserved/>
2083
 
        <eq left="lanes2" right="#b01"/>
2084
 
        <eq left="lanes2" right="#b23"/>
2085
 
        <eq left="lanes2" right="#b02"/>
2086
 
      </derived>
2087
 
    </encoding>
2088
 
  </ins>
2089
 
 
2090
 
  <ins name="*RSHIFT_AND.v4i8">
2091
 
    <src start="0" mask="0xfb"/>
2092
 
    <src start="3" mask="0xfb"/>
2093
 
    <src start="6"/>
2094
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2095
 
    <mod name="lanes2" size="3" default="b0123">
2096
 
      <opt>b0123</opt>
2097
 
      <opt>b0000</opt>
2098
 
      <opt>b1111</opt>
2099
 
      <opt>b2222</opt>
2100
 
      <opt>b3333</opt>
2101
 
    </mod>
2102
 
    <mod name="not1" start="14" size="1" opt="not"/>
2103
 
    <mod name="not_result" start="15" size="1">
2104
 
      <opt>not</opt>
2105
 
      <opt>none</opt>
2106
 
    </mod>
2107
 
    <encoding mask="0x7f3800" exact="0x300000">
2108
 
      <neq left="lanes2" right="#b0123"/>
2109
 
      <derived start="9" size="2">
2110
 
        <eq left="lanes2" right="#b0000"/>
2111
 
        <eq left="lanes2" right="#b1111"/>
2112
 
        <eq left="lanes2" right="#b2222"/>
2113
 
        <eq left="lanes2" right="#b3333"/>
2114
 
      </derived>
2115
 
    </encoding>
2116
 
    <encoding mask="0x7f3e00" exact="0x301800">
2117
 
      <eq left="lanes2" right="#b0123"/>
2118
 
    </encoding>
2119
 
  </ins>
2120
 
 
2121
 
  <ins name="*RSHIFT_DOUBLE.i32" mask="0x7ff000" exact="0x33d000">
2122
 
    <src start="0" mask="0xfb"/>
2123
 
    <src start="3" mask="0xfb"/>
2124
 
    <src start="6"/>
2125
 
    <mod name="bytes2" start="9" size="1" opt="bytes2"/>
2126
 
    <mod name="lane2" start="10" size="1" default="b0">
2127
 
      <opt>b0</opt>
2128
 
      <opt>b2</opt>
2129
 
    </mod>
2130
 
    <mod name="result_word" start="11" size="1" default="w0">
2131
 
      <opt>w0</opt>
2132
 
      <opt>w1</opt>
2133
 
    </mod>
2134
 
  </ins>
2135
 
 
2136
 
  <ins name="*RSHIFT_OR.i32" mask="0x7f3800" exact="0x303000">
2137
 
    <src start="0" mask="0xfb"/>
2138
 
    <src start="3" mask="0xfb"/>
2139
 
    <src start="6"/>
2140
 
    <mod name="lane2" start="9" size="2" default="b0">
2141
 
      <opt>b0</opt>
2142
 
      <opt>b1</opt>
2143
 
      <opt>b2</opt>
2144
 
      <opt>b3</opt>
2145
 
    </mod>
2146
 
    <mod name="not1" start="14" size="1">
2147
 
      <opt>not</opt>
2148
 
      <opt>none</opt>
2149
 
    </mod>
2150
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2151
 
    <mod name="not_result" start="15" size="1" opt="not"/>
2152
 
  </ins>
2153
 
 
2154
 
  <ins name="*RSHIFT_OR.v2i16">
2155
 
    <src start="0" mask="0xfb"/>
2156
 
    <src start="3" mask="0xfb"/>
2157
 
    <src start="6"/>
2158
 
    <mod name="lanes2" size="3" default="b02">
2159
 
      <opt>b00</opt>
2160
 
      <opt>b11</opt>
2161
 
      <opt>b22</opt>
2162
 
      <opt>b33</opt>
2163
 
      <opt>b01</opt>
2164
 
      <opt>b23</opt>
2165
 
      <opt>b02</opt>
2166
 
    </mod>
2167
 
    <mod name="not1" start="14" size="1">
2168
 
      <opt>not</opt>
2169
 
      <opt>none</opt>
2170
 
    </mod>
2171
 
    <mod name="not_result" start="15" size="1" opt="not"/>
2172
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2173
 
    <encoding mask="0x7f3800" exact="0x302800">
2174
 
      <or>
2175
 
        <eq left="lanes2" right="#b00"/>
2176
 
        <eq left="lanes2" right="#b11"/>
2177
 
        <eq left="lanes2" right="#b22"/>
2178
 
        <eq left="lanes2" right="#b33"/>
2179
 
      </or>
2180
 
      <derived start="9" size="2">
2181
 
        <eq left="lanes2" right="#b00"/>
2182
 
        <eq left="lanes2" right="#b11"/>
2183
 
        <eq left="lanes2" right="#b22"/>
2184
 
        <eq left="lanes2" right="#b33"/>
2185
 
      </derived>
2186
 
    </encoding>
2187
 
    <encoding mask="0x7f3800" exact="0x303800">
2188
 
      <or>
2189
 
        <eq left="lanes2" right="#b01"/>
2190
 
        <eq left="lanes2" right="#b23"/>
2191
 
        <eq left="lanes2" right="#b02"/>
2192
 
      </or>
2193
 
      <derived start="9" size="2">
2194
 
        <reserved/>
2195
 
        <eq left="lanes2" right="#b01"/>
2196
 
        <eq left="lanes2" right="#b23"/>
2197
 
        <eq left="lanes2" right="#b02"/>
2198
 
      </derived>
2199
 
    </encoding>
2200
 
  </ins>
2201
 
 
2202
 
  <ins name="*RSHIFT_OR.v4i8">
2203
 
    <src start="0" mask="0xfb"/>
2204
 
    <src start="3" mask="0xfb"/>
2205
 
    <src start="6"/>
2206
 
    <mod name="lanes2" size="3" default="b0123">
2207
 
      <opt>b0123</opt>
2208
 
      <opt>b0000</opt>
2209
 
      <opt>b1111</opt>
2210
 
      <opt>b2222</opt>
2211
 
      <opt>b3333</opt>
2212
 
    </mod>
2213
 
    <mod name="not1" start="14" size="1">
2214
 
      <opt>not</opt>
2215
 
      <opt>none</opt>
2216
 
    </mod>
2217
 
    <mod name="not_result" start="15" size="1" opt="not"/>
2218
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2219
 
    <encoding mask="0x7f3800" exact="0x302000">
2220
 
      <neq left="lanes2" right="#b0123"/>
2221
 
      <derived start="9" size="2">
2222
 
        <eq left="lanes2" right="#b0000"/>
2223
 
        <eq left="lanes2" right="#b1111"/>
2224
 
        <eq left="lanes2" right="#b2222"/>
2225
 
        <eq left="lanes2" right="#b3333"/>
2226
 
      </derived>
2227
 
    </encoding>
2228
 
    <encoding mask="0x7f3e00" exact="0x303800">
2229
 
      <eq left="lanes2" right="#b0123"/>
2230
 
    </encoding>
2231
 
  </ins>
2232
 
 
2233
 
  <ins name="*RSHIFT_XOR.i32" mask="0x7fd800" exact="0x321000">
2234
 
    <src start="0" mask="0xfb"/>
2235
 
    <src start="3" mask="0xfb"/>
2236
 
    <src start="6"/>
2237
 
    <mod name="lane2" start="9" size="2" default="b0">
2238
 
      <opt>b0</opt>
2239
 
      <opt>b1</opt>
2240
 
      <opt>b2</opt>
2241
 
      <opt>b3</opt>
2242
 
    </mod>
2243
 
    <mod name="not_result" start="13" size="1" opt="not"/>
2244
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2245
 
  </ins>
2246
 
 
2247
 
  <ins name="*RSHIFT_XOR.v2i16">
2248
 
    <src start="0" mask="0xfb"/>
2249
 
    <src start="3" mask="0xfb"/>
2250
 
    <src start="6"/>
2251
 
    <mod name="lanes2" size="3" default="b02">
2252
 
      <opt>b00</opt>
2253
 
      <opt>b11</opt>
2254
 
      <opt>b22</opt>
2255
 
      <opt>b33</opt>
2256
 
      <opt>b01</opt>
2257
 
      <opt>b23</opt>
2258
 
      <opt>b02</opt>
2259
 
    </mod>
2260
 
    <mod name="not_result" start="13" size="1" opt="not"/>
2261
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2262
 
    <encoding mask="0x7fd800" exact="0x320800">
2263
 
      <or>
2264
 
        <eq left="lanes2" right="#b00"/>
2265
 
        <eq left="lanes2" right="#b11"/>
2266
 
        <eq left="lanes2" right="#b22"/>
2267
 
        <eq left="lanes2" right="#b33"/>
2268
 
      </or>
2269
 
      <derived start="9" size="2">
2270
 
        <eq left="lanes2" right="#b00"/>
2271
 
        <eq left="lanes2" right="#b11"/>
2272
 
        <eq left="lanes2" right="#b22"/>
2273
 
        <eq left="lanes2" right="#b33"/>
2274
 
      </derived>
2275
 
    </encoding>
2276
 
    <encoding mask="0x7fd800" exact="0x321800">
2277
 
      <or>
2278
 
        <eq left="lanes2" right="#b01"/>
2279
 
        <eq left="lanes2" right="#b23"/>
2280
 
        <eq left="lanes2" right="#b02"/>
2281
 
      </or>
2282
 
      <derived start="9" size="2">
2283
 
        <reserved/>
2284
 
        <eq left="lanes2" right="#b01"/>
2285
 
        <eq left="lanes2" right="#b23"/>
2286
 
        <eq left="lanes2" right="#b02"/>
2287
 
      </derived>
2288
 
    </encoding>
2289
 
  </ins>
2290
 
 
2291
 
  <ins name="*RSHIFT_XOR.v4i8">
2292
 
    <src start="0" mask="0xfb"/>
2293
 
    <src start="3" mask="0xfb"/>
2294
 
    <src start="6"/>
2295
 
    <mod name="lanes2" size="3" default="b0123">
2296
 
      <opt>b0123</opt>
2297
 
      <opt>b0000</opt>
2298
 
      <opt>b1111</opt>
2299
 
      <opt>b2222</opt>
2300
 
      <opt>b3333</opt>
2301
 
    </mod>
2302
 
    <mod name="not_result" start="13" size="1" opt="not"/>
2303
 
    <mod name="arithmetic" opt="arithmetic" size="1" start="1" pseudo="true"/>
2304
 
    <encoding mask="0x7fd800" exact="0x320000">
2305
 
      <neq left="lanes2" right="#b0123"/>
2306
 
      <derived start="9" size="2">
2307
 
        <eq left="lanes2" right="#b0000"/>
2308
 
        <eq left="lanes2" right="#b1111"/>
2309
 
        <eq left="lanes2" right="#b2222"/>
2310
 
        <eq left="lanes2" right="#b3333"/>
2311
 
      </derived>
2312
 
    </encoding>
2313
 
    <encoding mask="0x7fde00" exact="0x321800">
2314
 
      <eq left="lanes2" right="#b0123"/>
2315
 
    </encoding>
2316
 
  </ins>
2317
 
 
2318
 
  <ins name="*S16_TO_S32" mask="0x7fffe8" exact="0x700cc0">
2319
 
    <src start="0" mask="0xfb"/>
2320
 
    <mod name="lane0" start="4" size="1" default="h0">
2321
 
      <opt>h0</opt>
2322
 
      <opt>h1</opt>
2323
 
    </mod>
2324
 
  </ins>
2325
 
 
2326
 
  <ins name="*S8_TO_S32" mask="0x7fffc8" exact="0x700b40">
2327
 
    <src start="0" mask="0xfb"/>
2328
 
    <mod name="lane0" start="4" size="2" default="b0">
2329
 
      <opt>b0</opt>
2330
 
      <opt>b1</opt>
2331
 
      <opt>b2</opt>
2332
 
      <opt>b3</opt>
2333
 
    </mod>
2334
 
  </ins>
2335
 
 
2336
 
  <ins name="*SEG_ADD" mask="0x7fff40" exact="0x701500">
2337
 
    <src start="0" mask="0xfb"/>
2338
 
    <mod name="seg" start="3" size="3">
2339
 
      <reserved/>
2340
 
      <reserved/>
2341
 
      <opt>wls</opt>
2342
 
      <reserved/>
2343
 
      <reserved/>
2344
 
      <reserved/>
2345
 
      <reserved/>
2346
 
      <opt>tl</opt>
2347
 
    </mod>
2348
 
    <mod name="preserve_null" start="7" size="1" opt="preserve_null"/>
2349
 
  </ins>
2350
 
 
2351
 
  <ins name="*SEG_SUB" mask="0x7fff40" exact="0x701540" unused="true">
2352
 
    <src start="0" mask="0xfb"/>
2353
 
    <mod name="seg" start="3" size="3">
2354
 
      <reserved/>
2355
 
      <reserved/>
2356
 
      <opt>wls</opt>
2357
 
      <reserved/>
2358
 
      <reserved/>
2359
 
      <reserved/>
2360
 
      <reserved/>
2361
 
      <opt>tl</opt>
2362
 
    </mod>
2363
 
    <mod name="preserve_null" start="7" size="1" opt="preserve_null"/>
2364
 
  </ins>
2365
 
 
2366
 
  <ins name="*SHADDXL.i64" mask="0x7ffe00" exact="0x70e600">
2367
 
    <src start="0" mask="0xfb"/>
2368
 
    <src start="3" mask="0xfb"/>
2369
 
    <immediate name="shift" start="6" size="3"/>
2370
 
  </ins>
2371
 
 
2372
 
  <ins name="*SHADDXL.s32" mask="0x7ff800" exact="0x70e800">
2373
 
    <src start="0" mask="0xfb"/>
2374
 
    <src start="3" mask="0xfb"/>
2375
 
    <immediate name="shift" start="6" size="3"/>
2376
 
    <mod name="lane1" start="9" size="2">
2377
 
      <opt>h0</opt>
2378
 
      <opt>h1</opt>
2379
 
      <opt>none</opt>
2380
 
    </mod>
2381
 
  </ins>
2382
 
 
2383
 
  <ins name="*SHADDXL.u32" mask="0x7ff800" exact="0x70e000">
2384
 
    <src start="0" mask="0xfb"/>
2385
 
    <src start="3" mask="0xfb"/>
2386
 
    <immediate name="shift" start="6" size="3"/>
2387
 
    <mod name="lane1" start="9" size="2">
2388
 
      <opt>h0</opt>
2389
 
      <opt>h1</opt>
2390
 
      <opt>none</opt>
2391
 
    </mod>
2392
 
  </ins>
2393
 
 
2394
 
  <ins name="*U16_TO_U32" mask="0x7fffe8" exact="0x700cc8">
2395
 
    <src start="0" mask="0xfb"/>
2396
 
    <mod name="lane0" start="4" size="1" default="h0">
2397
 
      <opt>h0</opt>
2398
 
      <opt>h1</opt>
2399
 
    </mod>
2400
 
  </ins>
2401
 
 
2402
 
  <ins name="*U8_TO_U32" mask="0x7fffc8" exact="0x700b48">
2403
 
    <src start="0" mask="0xfb"/>
2404
 
    <mod name="lane0" start="4" size="2" default="b0">
2405
 
      <opt>b0</opt>
2406
 
      <opt>b1</opt>
2407
 
      <opt>b2</opt>
2408
 
      <opt>b3</opt>
2409
 
    </mod>
2410
 
  </ins>
2411
 
 
2412
 
  <ins name="*V2F32_TO_V2F16" mask="0x7fe000" exact="0x6e8000">
2413
 
    <src start="0" mask="0xfb"/>
2414
 
    <src start="3" mask="0xfb"/>
2415
 
    <mod name="abs0" size="1" opt="abs"/>
2416
 
    <mod name="abs1" size="1" opt="abs"/>
2417
 
    <mod name="neg0" size="1" opt="neg"/>
2418
 
    <mod name="neg1" size="1" opt="neg"/>
2419
 
    <mod name="clamp" start="8" size="2">
2420
 
      <opt>none</opt>
2421
 
      <opt>clamp_0_inf</opt>
2422
 
      <opt>clamp_m1_1</opt>
2423
 
      <opt>clamp_0_1</opt>
2424
 
    </mod>
2425
 
    <mod name="round" start="10" size="3">
2426
 
      <opt>none</opt>
2427
 
      <opt>rtp</opt>
2428
 
      <opt>rtn</opt>
2429
 
      <opt>rtz</opt>
2430
 
      <opt>rtna</opt>
2431
 
    </mod>
2432
 
    <derived start="6" size="1">
2433
 
      <and>
2434
 
        <eq left="abs0" right="#none"/>
2435
 
        <eq left="abs1" right="#none"/>
2436
 
      </and>
2437
 
      <and>
2438
 
        <eq left="abs0" right="#abs"/>
2439
 
        <eq left="abs1" right="#abs"/>
2440
 
      </and>
2441
 
    </derived>
2442
 
    <derived start="7" size="1">
2443
 
      <and>
2444
 
        <eq left="neg0" right="#none"/>
2445
 
        <eq left="neg1" right="#none"/>
2446
 
      </and>
2447
 
      <and>
2448
 
        <eq left="neg0" right="#neg"/>
2449
 
        <eq left="neg1" right="#neg"/>
2450
 
      </and>
2451
 
    </derived>
2452
 
  </ins>
2453
 
 
2454
 
  <ins name="*VN_ASST1.f16" mask="0x7ff000" exact="0x6eb000">
2455
 
    <src start="0" mask="0xfb"/>
2456
 
    <src start="3" mask="0xfb"/>
2457
 
    <src start="6"/>
2458
 
    <mod name="h" start="9" size="1" opt="h"/>
2459
 
    <mod name="l" start="10" size="1" opt="l"/>
2460
 
    <mod name="neg2" start="11" size="1" opt="neg"/>
2461
 
  </ins>
2462
 
 
2463
 
  <ins name="*VN_ASST1.f32" mask="0x7fe000" exact="0x27c000">
2464
 
    <src start="0" mask="0xfb"/>
2465
 
    <src start="3" mask="0xfb"/>
2466
 
    <src start="6"/>
2467
 
    <src start="9"/>
2468
 
    <mod name="neg2" start="12" size="1" opt="neg"/>
2469
 
  </ins>
2470
 
 
2471
 
  <ins name="+ACMPSTORE.i32" staging="r=2" mask="0xffdc0" exact="0x648c0" message="atomic" dests="0">
2472
 
    <src start="0"/>
2473
 
    <src start="3"/>
2474
 
    <mod name="seg" start="9" size="1" opt="wls"/>
2475
 
  </ins>
2476
 
 
2477
 
  <ins name="+ACMPSTORE.i64" staging="r=4" mask="0xffdc0" exact="0x64900" message="atomic" dests="0">
2478
 
    <src start="0"/>
2479
 
    <src start="3"/>
2480
 
    <mod name="seg" start="9" size="1" opt="wls"/>
2481
 
  </ins>
2482
 
 
2483
 
  <ins name="+ACMPXCHG.i32" staging="rw=2" mask="0xffdc0" exact="0x644c0" message="atomic">
2484
 
    <src start="0"/>
2485
 
    <src start="3"/>
2486
 
    <mod name="seg" start="9" size="1" opt="wls"/>
2487
 
  </ins>
2488
 
 
2489
 
  <ins name="+ACMPXCHG.i64" staging="rw=4" mask="0xffdc0" exact="0x64500" message="atomic">
2490
 
    <src start="0"/>
2491
 
    <src start="3"/>
2492
 
    <mod name="seg" start="9" size="1" opt="wls"/>
2493
 
  </ins>
2494
 
 
2495
 
  <ins name="+ATEST" staging="w=1" mask="0xfff00" exact="0xc8f00" message="atest" table="true">
2496
 
    <src start="0" mask="0xf7"/>
2497
 
    <src start="3" mask="0xf7"/>
2498
 
    <mod name="widen1" start="6" size="2">
2499
 
      <reserved/>
2500
 
      <opt>none</opt>
2501
 
      <opt>h0</opt>
2502
 
      <opt>h1</opt>
2503
 
    </mod>
2504
 
  </ins>
2505
 
 
2506
 
  <ins name="+ATOM_CX" staging="rw=sr_count" mask="0xffe00" exact="0xd7400" message="atomic">
2507
 
    <src start="0"/>
2508
 
    <src start="3"/>
2509
 
    <src start="6"/>
2510
 
    <!-- not actually encoded, but used for IR -->
2511
 
    <immediate name="sr_count" size="4" pseudo="true"/>
2512
 
  </ins>
2513
 
 
2514
 
  <ins name="+AXCHG.i32" staging="rw=1" mask="0xffdc0" exact="0x640c0" message="atomic">
2515
 
    <src start="0"/>
2516
 
    <src start="3"/>
2517
 
    <mod name="seg" start="9" size="1" opt="wls"/>
2518
 
  </ins>
2519
 
 
2520
 
  <ins name="+AXCHG.i64" staging="rw=2" mask="0xffdc0" exact="0x64100" message="atomic">
2521
 
    <src start="0"/>
2522
 
    <src start="3"/>
2523
 
    <mod name="seg" start="9" size="1" opt="wls"/>
2524
 
  </ins>
2525
 
 
2526
 
  <ins name="+BARRIER" mask="0xfffff" exact="0xd7874" message="barrier" last="true" dests="0"/>
2527
 
 
2528
 
  <ins name="+BLEND" staging="r=sr_count" mask="0xffe00" exact="0xca800" message="blend" last="true">
2529
 
    <src start="0"/>
2530
 
    <src start="3" mask="0xf7"/>
2531
 
    <src start="6" mask="0xf7"/>
2532
 
    <!-- pseudo source for a dual source blend input -->
2533
 
    <src start="9" pseudo="true"/>
2534
 
    <!-- not actually encoded, but used for IR -->
2535
 
    <immediate name="sr_count" size="4" pseudo="true"/>
2536
 
    <immediate name="sr_count_2" size="4" pseudo="true"/>
2537
 
    <mod name="register_format" size="4" pseudo="true">
2538
 
      <opt>f16</opt>
2539
 
      <opt>f32</opt>
2540
 
      <opt>s32</opt>
2541
 
      <opt>u32</opt>
2542
 
      <opt>s16</opt>
2543
 
      <opt>u16</opt>
2544
 
      <opt>f64</opt>
2545
 
      <opt>i64</opt>
2546
 
      <opt>auto</opt>
2547
 
    </mod>
2548
 
  </ins>
2549
 
 
2550
 
  <ins name="+BRANCH.f16" mask="0xf8000" exact="0x68000" last="true" dests="0">
2551
 
    <src start="0"/>
2552
 
    <src start="3"/>
2553
 
    <src start="6" mask="0xf7"/>
2554
 
    <mod name="widen0" size="2">
2555
 
      <opt>none</opt>
2556
 
      <opt>h0</opt>
2557
 
      <opt>h1</opt>
2558
 
    </mod>
2559
 
    <mod name="widen1" size="2">
2560
 
      <opt>none</opt>
2561
 
      <opt>h0</opt>
2562
 
      <opt>h1</opt>
2563
 
    </mod>
2564
 
    <mod name="cmpf" size="3">
2565
 
      <opt>eq</opt>
2566
 
      <opt>gt</opt>
2567
 
      <opt>ge</opt>
2568
 
      <opt>ne</opt>
2569
 
      <opt>lt</opt>
2570
 
      <opt>le</opt>
2571
 
    </mod>
2572
 
    <derived start="12" size="3">
2573
 
      <reserved/>
2574
 
      <and>
2575
 
        <eq left="widen0" right="#h0"/>
2576
 
        <eq left="widen1" right="#h0"/>
2577
 
      </and>
2578
 
      <and>
2579
 
        <eq left="widen0" right="#h1"/>
2580
 
        <eq left="widen1" right="#h1"/>
2581
 
      </and>
2582
 
      <and>
2583
 
        <eq left="widen0" right="#h1"/>
2584
 
        <eq left="widen1" right="#h0"/>
2585
 
        <or>
2586
 
          <eq left="cmpf" right="#ne"/>
2587
 
          <eq left="cmpf" right="#ge"/>
2588
 
          <eq left="cmpf" right="#le"/>
2589
 
        </or>
2590
 
      </and>
2591
 
      <and>
2592
 
        <eq left="widen0" right="#h1"/>
2593
 
        <eq left="widen1" right="#h0"/>
2594
 
        <or>
2595
 
          <eq left="cmpf" right="#eq"/>
2596
 
          <eq left="cmpf" right="#gt"/>
2597
 
          <eq left="cmpf" right="#lt"/>
2598
 
        </or>
2599
 
      </and>
2600
 
      <reserved/>
2601
 
      <reserved/>
2602
 
      <reserved/>
2603
 
    </derived>
2604
 
    <derived start="9" size="3">
2605
 
      <reserved/>
2606
 
      <reserved/>
2607
 
      <reserved/>
2608
 
      <reserved/>
2609
 
      <and alias="true">
2610
 
        <eq left="widen0" right="widen1"/>
2611
 
        <eq left="ordering" right="#eq"/>
2612
 
        <or>
2613
 
          <eq left="cmpf" right="#gt"/>
2614
 
          <eq left="cmpf" right="#lt"/>
2615
 
        </or>
2616
 
      </and>
2617
 
      <or>
2618
 
        <and>
2619
 
          <eq left="widen0" right="#h1"/>
2620
 
          <eq left="widen1" right="#h0"/>
2621
 
          <or>
2622
 
            <eq left="cmpf" right="#eq"/>
2623
 
            <eq left="cmpf" right="#ne"/>
2624
 
          </or>
2625
 
        </and>
2626
 
        <and>
2627
 
          <eq left="widen0" right="widen1"/>
2628
 
          <eq left="ordering" right="#lt"/>
2629
 
          <eq left="cmpf" right="#eq"/>
2630
 
        </and>
2631
 
        <and>
2632
 
          <eq left="widen0" right="widen1"/>
2633
 
          <neq left="ordering" right="#lt"/>
2634
 
          <eq left="cmpf" right="#ne"/>
2635
 
        </and>
2636
 
      </or>
2637
 
      <or>
2638
 
        <and>
2639
 
          <eq left="widen0" right="#h1"/>
2640
 
          <eq left="widen1" right="#h0"/>
2641
 
          <or>
2642
 
            <eq left="cmpf" right="#gt"/>
2643
 
            <eq left="cmpf" right="#ge"/>
2644
 
          </or>
2645
 
        </and>
2646
 
        <and>
2647
 
          <eq left="widen0" right="widen1"/>
2648
 
          <eq left="ordering" right="#lt"/>
2649
 
          <eq left="cmpf" right="#gt"/>
2650
 
        </and>
2651
 
        <and>
2652
 
          <eq left="widen0" right="widen1"/>
2653
 
          <neq left="ordering" right="#lt"/>
2654
 
          <eq left="cmpf" right="#ge"/>
2655
 
        </and>
2656
 
      </or>
2657
 
      <or>
2658
 
        <and>
2659
 
          <eq left="widen0" right="#h1"/>
2660
 
          <eq left="widen1" right="#h0"/>
2661
 
          <or>
2662
 
            <eq left="cmpf" right="#lt"/>
2663
 
            <eq left="cmpf" right="#le"/>
2664
 
          </or>
2665
 
        </and>
2666
 
        <and>
2667
 
          <eq left="widen0" right="widen1"/>
2668
 
          <eq left="ordering" right="#lt"/>
2669
 
          <eq left="cmpf" right="#lt"/>
2670
 
        </and>
2671
 
        <and>
2672
 
          <eq left="widen0" right="widen1"/>
2673
 
          <neq left="ordering" right="#lt"/>
2674
 
          <eq left="cmpf" right="#le"/>
2675
 
        </and>
2676
 
        <and alias="true">
2677
 
          <eq left="widen0" right="widen1"/>
2678
 
          <eq left="ordering" right="#eq"/>
2679
 
          <eq left="cmpf" right="#eq"/>
2680
 
        </and>
2681
 
      </or>
2682
 
    </derived>
2683
 
    <swap left="0" right="1">
2684
 
      <or>
2685
 
        <and>
2686
 
          <eq left="widen0" right="#h0"/>
2687
 
          <eq left="widen1" right="#h1"/>
2688
 
        </and>
2689
 
        <and>
2690
 
          <eq left="widen0" right="widen1"/>
2691
 
          <eq left="ordering" right="#gt"/>
2692
 
          <or>
2693
 
            <eq left="cmpf" right="#eq"/>
2694
 
            <eq left="cmpf" right="#gt"/>
2695
 
            <eq left="cmpf" right="#lt"/>
2696
 
          </or>
2697
 
        </and>
2698
 
        <and>
2699
 
          <eq left="widen0" right="widen1"/>
2700
 
          <eq left="ordering" right="#lt"/>
2701
 
          <or>
2702
 
            <eq left="cmpf" right="#ne"/>
2703
 
            <eq left="cmpf" right="#ge"/>
2704
 
            <eq left="cmpf" right="#le"/>
2705
 
          </or>
2706
 
        </and>
2707
 
      </or>
2708
 
      <rewrite name="cmpf">
2709
 
        <map from="lt" to="gt"/>
2710
 
        <map from="le" to="ge"/>
2711
 
        <map from="gt" to="lt"/>
2712
 
        <map from="ge" to="le"/>
2713
 
      </rewrite>
2714
 
    </swap>
2715
 
  </ins>
2716
 
 
2717
 
  <ins name="+BRANCH.f32" mask="0xf8000" exact="0x68000" last="true" dests="0">
2718
 
    <src start="0"/>
2719
 
    <src start="3"/>
2720
 
    <src start="6" mask="0xf7"/>
2721
 
    <mod name="widen0" size="2">
2722
 
      <opt>none</opt>
2723
 
      <opt>h0</opt>
2724
 
      <opt>h1</opt>
2725
 
    </mod>
2726
 
    <mod name="widen1" size="2">
2727
 
      <opt>none</opt>
2728
 
      <opt>h0</opt>
2729
 
      <opt>h1</opt>
2730
 
    </mod>
2731
 
    <mod name="cmpf" size="3">
2732
 
      <opt>eq</opt>
2733
 
      <opt>gt</opt>
2734
 
      <opt>ge</opt>
2735
 
      <opt>ne</opt>
2736
 
      <opt>lt</opt>
2737
 
      <opt>le</opt>
2738
 
    </mod>
2739
 
    <derived start="12" size="3">
2740
 
      <and>
2741
 
        <eq left="widen0" right="#none"/>
2742
 
        <eq left="widen1" right="#none"/>
2743
 
      </and>
2744
 
      <reserved/>
2745
 
      <reserved/>
2746
 
      <reserved/>
2747
 
      <reserved/>
2748
 
      <and>
2749
 
        <eq left="widen0" right="#none"/>
2750
 
        <eq left="widen1" right="#h0"/>
2751
 
      </and>
2752
 
      <and>
2753
 
        <eq left="widen0" right="#none"/>
2754
 
        <eq left="widen1" right="#h1"/>
2755
 
      </and>
2756
 
      <reserved/>
2757
 
    </derived>
2758
 
    <derived start="9" size="3">
2759
 
      <reserved/>
2760
 
      <and>
2761
 
        <eq left="widen0" right="#none"/>
2762
 
        <neq left="widen1" right="#none"/>
2763
 
        <eq left="cmpf" right="#ne"/>
2764
 
      </and>
2765
 
      <and>
2766
 
        <eq left="widen0" right="#none"/>
2767
 
        <neq left="widen1" right="#none"/>
2768
 
        <eq left="cmpf" right="#ge"/>
2769
 
      </and>
2770
 
      <and>
2771
 
        <eq left="widen0" right="#none"/>
2772
 
        <neq left="widen1" right="#none"/>
2773
 
        <eq left="cmpf" right="#le"/>
2774
 
      </and>
2775
 
      <and alias="true">
2776
 
        <eq left="widen0" right="#none"/>
2777
 
        <eq left="widen1" right="#none"/>
2778
 
        <eq left="ordering" right="#eq"/>
2779
 
        <or>
2780
 
          <eq left="cmpf" right="#gt"/>
2781
 
          <eq left="cmpf" right="#lt"/>
2782
 
        </or>
2783
 
      </and>
2784
 
      <or>
2785
 
        <and>
2786
 
          <eq left="widen0" right="#none"/>
2787
 
          <neq left="widen1" right="#none"/>
2788
 
          <eq left="cmpf" right="#eq"/>
2789
 
        </and>
2790
 
        <and>
2791
 
          <eq left="widen0" right="#none"/>
2792
 
          <eq left="widen1" right="#none"/>
2793
 
          <eq left="ordering" right="#lt"/>
2794
 
          <eq left="cmpf" right="#eq"/>
2795
 
        </and>
2796
 
        <and>
2797
 
          <eq left="widen0" right="#none"/>
2798
 
          <eq left="widen1" right="#none"/>
2799
 
          <neq left="ordering" right="#lt"/>
2800
 
          <eq left="cmpf" right="#ne"/>
2801
 
        </and>
2802
 
      </or>
2803
 
      <or>
2804
 
        <and>
2805
 
          <eq left="widen0" right="#none"/>
2806
 
          <neq left="widen1" right="#none"/>
2807
 
          <eq left="cmpf" right="#gt"/>
2808
 
        </and>
2809
 
        <and>
2810
 
          <eq left="widen0" right="#none"/>
2811
 
          <eq left="widen1" right="#none"/>
2812
 
          <eq left="ordering" right="#lt"/>
2813
 
          <eq left="cmpf" right="#gt"/>
2814
 
        </and>
2815
 
        <and>
2816
 
          <eq left="widen0" right="#none"/>
2817
 
          <eq left="widen1" right="#none"/>
2818
 
          <neq left="ordering" right="#lt"/>
2819
 
          <eq left="cmpf" right="#ge"/>
2820
 
        </and>
2821
 
      </or>
2822
 
      <or>
2823
 
        <and>
2824
 
          <eq left="widen0" right="#none"/>
2825
 
          <neq left="widen1" right="#none"/>
2826
 
          <eq left="cmpf" right="#lt"/>
2827
 
        </and>
2828
 
        <and>
2829
 
          <eq left="widen0" right="#none"/>
2830
 
          <eq left="widen1" right="#none"/>
2831
 
          <eq left="ordering" right="#lt"/>
2832
 
          <eq left="cmpf" right="#lt"/>
2833
 
        </and>
2834
 
        <and>
2835
 
          <eq left="widen0" right="#none"/>
2836
 
          <eq left="widen1" right="#none"/>
2837
 
          <neq left="ordering" right="#lt"/>
2838
 
          <eq left="cmpf" right="#le"/>
2839
 
        </and>
2840
 
        <and alias="true">
2841
 
          <eq left="widen0" right="#none"/>
2842
 
          <eq left="widen1" right="#none"/>
2843
 
          <eq left="ordering" right="#eq"/>
2844
 
          <eq left="cmpf" right="#eq"/>
2845
 
        </and>
2846
 
      </or>
2847
 
    </derived>
2848
 
    <swap left="0" right="1">
2849
 
      <or>
2850
 
        <and>
2851
 
          <neq left="widen0" right="#none"/>
2852
 
          <eq left="widen1" right="#none"/>
2853
 
        </and>
2854
 
        <and>
2855
 
          <eq left="widen0" right="#none"/>
2856
 
          <eq left="widen1" right="#none"/>
2857
 
          <eq left="ordering" right="#gt"/>
2858
 
          <or>
2859
 
            <eq left="cmpf" right="#eq"/>
2860
 
            <eq left="cmpf" right="#gt"/>
2861
 
            <eq left="cmpf" right="#lt"/>
2862
 
          </or>
2863
 
        </and>
2864
 
        <and>
2865
 
          <eq left="widen0" right="#none"/>
2866
 
          <eq left="widen1" right="#none"/>
2867
 
          <eq left="ordering" right="#lt"/>
2868
 
          <or>
2869
 
            <eq left="cmpf" right="#ne"/>
2870
 
            <eq left="cmpf" right="#ge"/>
2871
 
            <eq left="cmpf" right="#le"/>
2872
 
          </or>
2873
 
        </and>
2874
 
      </or>
2875
 
      <rewrite name="cmpf">
2876
 
        <map from="lt" to="gt"/>
2877
 
        <map from="le" to="ge"/>
2878
 
        <map from="gt" to="lt"/>
2879
 
        <map from="ge" to="le"/>
2880
 
      </rewrite>
2881
 
    </swap>
2882
 
  </ins>
2883
 
 
2884
 
  <ins name="+BRANCH.i16" mask="0xf8000" exact="0x68000" last="true" dests="0">
2885
 
    <src start="0"/>
2886
 
    <src start="3"/>
2887
 
    <src start="6" mask="0xf7"/>
2888
 
    <mod name="widen0" size="2">
2889
 
      <opt>none</opt>
2890
 
      <opt>h0</opt>
2891
 
      <opt>h1</opt>
2892
 
    </mod>
2893
 
    <mod name="widen1" size="2">
2894
 
      <opt>none</opt>
2895
 
      <opt>h0</opt>
2896
 
      <opt>h1</opt>
2897
 
    </mod>
2898
 
    <mod name="cmpf" size="1">
2899
 
      <opt>eq</opt>
2900
 
      <opt>ne</opt>
2901
 
    </mod>
2902
 
    <derived start="12" size="3">
2903
 
      <reserved/>
2904
 
      <and>
2905
 
        <eq left="widen0" right="#h0"/>
2906
 
        <eq left="widen1" right="#h0"/>
2907
 
      </and>
2908
 
      <and>
2909
 
        <eq left="widen0" right="#h1"/>
2910
 
        <eq left="widen1" right="#h1"/>
2911
 
      </and>
2912
 
      <and>
2913
 
        <eq left="widen0" right="#h1"/>
2914
 
        <eq left="widen1" right="#h0"/>
2915
 
        <eq left="cmpf" right="#ne"/>
2916
 
      </and>
2917
 
      <and>
2918
 
        <eq left="widen0" right="#h1"/>
2919
 
        <eq left="widen1" right="#h0"/>
2920
 
        <eq left="cmpf" right="#eq"/>
2921
 
      </and>
2922
 
      <reserved/>
2923
 
      <reserved/>
2924
 
      <reserved/>
2925
 
    </derived>
2926
 
    <derived start="9" size="3">
2927
 
      <reserved/>
2928
 
      <and alias="true">
2929
 
        <eq left="widen0" right="widen1"/>
2930
 
        <eq left="ordering" right="#eq"/>
2931
 
        <eq left="cmpf" right="#eq"/>
2932
 
      </and>
2933
 
      <reserved/>
2934
 
      <reserved/>
2935
 
      <or>
2936
 
        <and>
2937
 
          <eq left="widen0" right="#h1"/>
2938
 
          <eq left="widen1" right="#h0"/>
2939
 
        </and>
2940
 
        <and>
2941
 
          <eq left="widen0" right="widen1"/>
2942
 
          <eq left="ordering" right="#lt"/>
2943
 
          <eq left="cmpf" right="#eq"/>
2944
 
        </and>
2945
 
        <and>
2946
 
          <eq left="widen0" right="widen1"/>
2947
 
          <neq left="ordering" right="#lt"/>
2948
 
          <eq left="cmpf" right="#ne"/>
2949
 
        </and>
2950
 
      </or>
2951
 
      <reserved/>
2952
 
      <reserved/>
2953
 
      <reserved/>
2954
 
    </derived>
2955
 
    <swap left="0" right="1">
2956
 
      <or>
2957
 
        <and>
2958
 
          <eq left="widen0" right="#h0"/>
2959
 
          <eq left="widen1" right="#h1"/>
2960
 
        </and>
2961
 
        <and>
2962
 
          <eq left="widen0" right="widen1"/>
2963
 
          <eq left="ordering" right="#gt"/>
2964
 
          <eq left="cmpf" right="#eq"/>
2965
 
        </and>
2966
 
        <and>
2967
 
          <eq left="widen0" right="widen1"/>
2968
 
          <eq left="ordering" right="#lt"/>
2969
 
          <eq left="cmpf" right="#ne"/>
2970
 
        </and>
2971
 
      </or>
2972
 
    </swap>
2973
 
  </ins>
2974
 
 
2975
 
  <ins name="+BRANCH.i32" mask="0xf8000" exact="0x68000" last="true" dests="0">
2976
 
    <src start="0"/>
2977
 
    <src start="3"/>
2978
 
    <src start="6" mask="0xf7"/>
2979
 
    <mod name="widen0" size="2">
2980
 
      <opt>none</opt>
2981
 
      <opt>h0</opt>
2982
 
      <opt>h1</opt>
2983
 
    </mod>
2984
 
    <mod name="widen1" size="2">
2985
 
      <opt>none</opt>
2986
 
      <opt>h0</opt>
2987
 
      <opt>h1</opt>
2988
 
    </mod>
2989
 
    <mod name="cmpf" size="1">
2990
 
      <opt>eq</opt>
2991
 
      <opt>ne</opt>
2992
 
    </mod>
2993
 
    <derived start="12" size="3">
2994
 
      <and>
2995
 
        <eq left="widen0" right="#none"/>
2996
 
        <eq left="widen1" right="#none"/>
2997
 
      </and>
2998
 
      <reserved/>
2999
 
      <reserved/>
3000
 
      <reserved/>
3001
 
      <reserved/>
3002
 
      <reserved/>
3003
 
      <reserved/>
3004
 
      <reserved/>
3005
 
    </derived>
3006
 
    <derived start="9" size="3">
3007
 
      <reserved/>
3008
 
      <and alias="true">
3009
 
        <eq left="ordering" right="#eq"/>
3010
 
        <eq left="cmpf" right="#eq"/>
3011
 
      </and>
3012
 
      <reserved/>
3013
 
      <reserved/>
3014
 
      <or>
3015
 
        <and>
3016
 
          <eq left="ordering" right="#lt"/>
3017
 
          <eq left="cmpf" right="#eq"/>
3018
 
        </and>
3019
 
        <and>
3020
 
          <neq left="ordering" right="#lt"/>
3021
 
          <eq left="cmpf" right="#ne"/>
3022
 
        </and>
3023
 
      </or>
3024
 
      <reserved/>
3025
 
      <reserved/>
3026
 
      <reserved/>
3027
 
    </derived>
3028
 
    <swap left="0" right="1">
3029
 
      <or>
3030
 
        <and>
3031
 
          <eq left="ordering" right="#gt"/>
3032
 
          <eq left="cmpf" right="#eq"/>
3033
 
        </and>
3034
 
        <and>
3035
 
          <eq left="ordering" right="#lt"/>
3036
 
          <eq left="cmpf" right="#ne"/>
3037
 
        </and>
3038
 
      </or>
3039
 
    </swap>
3040
 
  </ins>
3041
 
 
3042
 
  <ins name="+BRANCH.s16" mask="0xf8000" exact="0x68000" last="true" dests="0">
3043
 
    <src start="0"/>
3044
 
    <src start="3"/>
3045
 
    <src start="6" mask="0xf7"/>
3046
 
    <mod name="widen0" size="2">
3047
 
      <opt>none</opt>
3048
 
      <opt>h0</opt>
3049
 
      <opt>h1</opt>
3050
 
    </mod>
3051
 
    <mod name="widen1" size="2">
3052
 
      <opt>none</opt>
3053
 
      <opt>h0</opt>
3054
 
      <opt>h1</opt>
3055
 
    </mod>
3056
 
    <mod name="cmpf" size="2">
3057
 
      <opt>gt</opt>
3058
 
      <opt>ge</opt>
3059
 
      <opt>lt</opt>
3060
 
      <opt>le</opt>
3061
 
    </mod>
3062
 
    <derived start="12" size="3">
3063
 
      <reserved/>
3064
 
      <and>
3065
 
        <eq left="widen0" right="#h0"/>
3066
 
        <eq left="widen1" right="#h0"/>
3067
 
      </and>
3068
 
      <and>
3069
 
        <eq left="widen0" right="#h1"/>
3070
 
        <eq left="widen1" right="#h1"/>
3071
 
      </and>
3072
 
      <reserved/>
3073
 
      <and>
3074
 
        <eq left="widen0" right="#h1"/>
3075
 
        <eq left="widen1" right="#h0"/>
3076
 
      </and>
3077
 
      <reserved/>
3078
 
      <reserved/>
3079
 
      <reserved/>
3080
 
    </derived>
3081
 
    <derived start="9" size="3">
3082
 
      <or>
3083
 
        <and>
3084
 
          <eq left="widen0" right="#h1"/>
3085
 
          <eq left="widen1" right="#h0"/>
3086
 
          <eq left="cmpf" right="#lt"/>
3087
 
        </and>
3088
 
        <and>
3089
 
          <eq left="widen0" right="widen1"/>
3090
 
          <eq left="ordering" right="#lt"/>
3091
 
          <eq left="cmpf" right="#lt"/>
3092
 
        </and>
3093
 
      </or>
3094
 
      <or>
3095
 
        <and>
3096
 
          <eq left="widen0" right="#h1"/>
3097
 
          <eq left="widen1" right="#h0"/>
3098
 
          <eq left="cmpf" right="#le"/>
3099
 
        </and>
3100
 
        <and>
3101
 
          <eq left="widen0" right="widen1"/>
3102
 
          <eq left="ordering" right="#lt"/>
3103
 
          <eq left="cmpf" right="#le"/>
3104
 
        </and>
3105
 
        <and alias="true">
3106
 
          <eq left="widen0" right="widen1"/>
3107
 
          <eq left="ordering" right="#eq"/>
3108
 
          <or>
3109
 
            <eq left="cmpf" right="#le"/>
3110
 
            <eq left="cmpf" right="#ge"/>
3111
 
          </or>
3112
 
        </and>
3113
 
      </or>
3114
 
      <or>
3115
 
        <and>
3116
 
          <eq left="widen0" right="#h1"/>
3117
 
          <eq left="widen1" right="#h0"/>
3118
 
          <eq left="cmpf" right="#ge"/>
3119
 
        </and>
3120
 
        <and>
3121
 
          <eq left="widen0" right="widen1"/>
3122
 
          <eq left="ordering" right="#lt"/>
3123
 
          <eq left="cmpf" right="#ge"/>
3124
 
        </and>
3125
 
      </or>
3126
 
      <or>
3127
 
        <and>
3128
 
          <eq left="widen0" right="#h1"/>
3129
 
          <eq left="widen1" right="#h0"/>
3130
 
          <eq left="cmpf" right="#gt"/>
3131
 
        </and>
3132
 
        <and>
3133
 
          <eq left="widen0" right="widen1"/>
3134
 
          <eq left="ordering" right="#lt"/>
3135
 
          <eq left="cmpf" right="#gt"/>
3136
 
        </and>
3137
 
      </or>
3138
 
      <and alias="true">
3139
 
        <eq left="widen0" right="widen1"/>
3140
 
        <eq left="ordering" right="#eq"/>
3141
 
        <or>
3142
 
          <eq left="cmpf" right="#lt"/>
3143
 
          <eq left="cmpf" right="#gt"/>
3144
 
        </or>
3145
 
      </and>
3146
 
      <reserved/>
3147
 
      <reserved/>
3148
 
      <reserved/>
3149
 
    </derived>
3150
 
    <swap left="0" right="1">
3151
 
      <or>
3152
 
        <and>
3153
 
          <eq left="widen0" right="#h0"/>
3154
 
          <eq left="widen1" right="#h1"/>
3155
 
        </and>
3156
 
        <and>
3157
 
          <eq left="widen0" right="widen1"/>
3158
 
          <eq left="ordering" right="#gt"/>
3159
 
        </and>
3160
 
      </or>
3161
 
      <rewrite name="cmpf">
3162
 
        <map from="lt" to="gt"/>
3163
 
        <map from="le" to="ge"/>
3164
 
        <map from="gt" to="lt"/>
3165
 
        <map from="ge" to="le"/>
3166
 
      </rewrite>
3167
 
    </swap>
3168
 
  </ins>
3169
 
 
3170
 
  <ins name="+BRANCH.s32" mask="0xf8000" exact="0x68000" last="true" dests="0">
3171
 
    <src start="0"/>
3172
 
    <src start="3"/>
3173
 
    <src start="6" mask="0xf7"/>
3174
 
    <mod name="widen0" size="2">
3175
 
      <opt>none</opt>
3176
 
      <opt>h0</opt>
3177
 
      <opt>h1</opt>
3178
 
    </mod>
3179
 
    <mod name="widen1" size="2">
3180
 
      <opt>none</opt>
3181
 
      <opt>h0</opt>
3182
 
      <opt>h1</opt>
3183
 
    </mod>
3184
 
    <mod name="cmpf" size="2">
3185
 
      <opt>gt</opt>
3186
 
      <opt>ge</opt>
3187
 
      <opt>lt</opt>
3188
 
      <opt>le</opt>
3189
 
    </mod>
3190
 
    <derived start="12" size="3">
3191
 
      <and>
3192
 
        <eq left="widen0" right="#none"/>
3193
 
        <eq left="widen1" right="#none"/>
3194
 
      </and>
3195
 
      <reserved/>
3196
 
      <reserved/>
3197
 
      <reserved/>
3198
 
      <reserved/>
3199
 
      <reserved/>
3200
 
      <reserved/>
3201
 
      <reserved/>
3202
 
    </derived>
3203
 
    <derived start="9" size="3">
3204
 
      <and>
3205
 
        <eq left="ordering" right="#lt"/>
3206
 
        <eq left="cmpf" right="#lt"/>
3207
 
      </and>
3208
 
      <or>
3209
 
        <and>
3210
 
          <eq left="ordering" right="#lt"/>
3211
 
          <eq left="cmpf" right="#le"/>
3212
 
        </and>
3213
 
        <and alias="true">
3214
 
          <eq left="ordering" right="#eq"/>
3215
 
          <or>
3216
 
            <eq left="cmpf" right="#le"/>
3217
 
            <eq left="cmpf" right="#ge"/>
3218
 
          </or>
3219
 
        </and>
3220
 
      </or>
3221
 
      <and>
3222
 
        <eq left="ordering" right="#lt"/>
3223
 
        <eq left="cmpf" right="#ge"/>
3224
 
      </and>
3225
 
      <and>
3226
 
        <eq left="ordering" right="#lt"/>
3227
 
        <eq left="cmpf" right="#gt"/>
3228
 
      </and>
3229
 
      <and alias="true">
3230
 
        <eq left="ordering" right="#eq"/>
3231
 
        <or>
3232
 
          <eq left="cmpf" right="#lt"/>
3233
 
          <eq left="cmpf" right="#gt"/>
3234
 
        </or>
3235
 
      </and>
3236
 
      <reserved/>
3237
 
      <reserved/>
3238
 
      <reserved/>
3239
 
    </derived>
3240
 
    <swap left="0" right="1">
3241
 
      <eq left="ordering" right="#gt"/>
3242
 
      <rewrite name="cmpf">
3243
 
        <map from="lt" to="gt"/>
3244
 
        <map from="le" to="ge"/>
3245
 
        <map from="gt" to="lt"/>
3246
 
        <map from="ge" to="le"/>
3247
 
      </rewrite>
3248
 
    </swap>
3249
 
  </ins>
3250
 
 
3251
 
  <ins name="+BRANCH.u16" mask="0xf8000" exact="0x68000" last="true" dests="0">
3252
 
    <src start="0"/>
3253
 
    <src start="3"/>
3254
 
    <src start="6" mask="0xf7"/>
3255
 
    <mod name="widen0" size="2">
3256
 
      <opt>none</opt>
3257
 
      <opt>h0</opt>
3258
 
      <opt>h1</opt>
3259
 
    </mod>
3260
 
    <mod name="widen1" size="2">
3261
 
      <opt>none</opt>
3262
 
      <opt>h0</opt>
3263
 
      <opt>h1</opt>
3264
 
    </mod>
3265
 
    <mod name="cmpf" size="2">
3266
 
      <opt>gt</opt>
3267
 
      <opt>ge</opt>
3268
 
      <opt>lt</opt>
3269
 
      <opt>le</opt>
3270
 
    </mod>
3271
 
    <derived start="12" size="3">
3272
 
      <reserved/>
3273
 
      <and>
3274
 
        <eq left="widen0" right="#h0"/>
3275
 
        <eq left="widen1" right="#h0"/>
3276
 
      </and>
3277
 
      <and>
3278
 
        <eq left="widen0" right="#h1"/>
3279
 
        <eq left="widen1" right="#h1"/>
3280
 
      </and>
3281
 
      <and>
3282
 
        <eq left="widen0" right="#h1"/>
3283
 
        <eq left="widen1" right="#h0"/>
3284
 
      </and>
3285
 
      <reserved/>
3286
 
      <reserved/>
3287
 
      <reserved/>
3288
 
      <reserved/>
3289
 
    </derived>
3290
 
    <derived start="9" size="3">
3291
 
      <or>
3292
 
        <and>
3293
 
          <eq left="widen0" right="#h1"/>
3294
 
          <eq left="widen1" right="#h0"/>
3295
 
          <eq left="cmpf" right="#lt"/>
3296
 
        </and>
3297
 
        <and>
3298
 
          <eq left="widen0" right="widen1"/>
3299
 
          <neq left="ordering" right="#lt"/>
3300
 
          <eq left="cmpf" right="#lt"/>
3301
 
        </and>
3302
 
      </or>
3303
 
      <or>
3304
 
        <and>
3305
 
          <eq left="widen0" right="#h1"/>
3306
 
          <eq left="widen1" right="#h0"/>
3307
 
          <eq left="cmpf" right="#le"/>
3308
 
        </and>
3309
 
        <and>
3310
 
          <eq left="widen0" right="widen1"/>
3311
 
          <neq left="ordering" right="#lt"/>
3312
 
          <eq left="cmpf" right="#le"/>
3313
 
        </and>
3314
 
      </or>
3315
 
      <or>
3316
 
        <and>
3317
 
          <eq left="widen0" right="#h1"/>
3318
 
          <eq left="widen1" right="#h0"/>
3319
 
          <eq left="cmpf" right="#ge"/>
3320
 
        </and>
3321
 
        <and>
3322
 
          <eq left="widen0" right="widen1"/>
3323
 
          <neq left="ordering" right="#lt"/>
3324
 
          <eq left="cmpf" right="#ge"/>
3325
 
        </and>
3326
 
      </or>
3327
 
      <or>
3328
 
        <and>
3329
 
          <eq left="widen0" right="#h1"/>
3330
 
          <eq left="widen1" right="#h0"/>
3331
 
          <eq left="cmpf" right="#gt"/>
3332
 
        </and>
3333
 
        <and>
3334
 
          <eq left="widen0" right="widen1"/>
3335
 
          <neq left="ordering" right="#lt"/>
3336
 
          <eq left="cmpf" right="#gt"/>
3337
 
        </and>
3338
 
      </or>
3339
 
      <reserved/>
3340
 
      <reserved/>
3341
 
      <reserved/>
3342
 
      <reserved/>
3343
 
    </derived>
3344
 
    <swap left="0" right="1">
3345
 
      <or>
3346
 
        <and>
3347
 
          <eq left="widen0" right="#h0"/>
3348
 
          <eq left="widen1" right="#h1"/>
3349
 
        </and>
3350
 
        <and>
3351
 
          <eq left="widen0" right="widen1"/>
3352
 
          <eq left="ordering" right="#lt"/>
3353
 
        </and>
3354
 
      </or>
3355
 
      <rewrite name="cmpf">
3356
 
        <map from="lt" to="gt"/>
3357
 
        <map from="le" to="ge"/>
3358
 
        <map from="gt" to="lt"/>
3359
 
        <map from="ge" to="le"/>
3360
 
      </rewrite>
3361
 
    </swap>
3362
 
  </ins>
3363
 
 
3364
 
  <ins name="+BRANCH.u32" mask="0xf8000" exact="0x68000" last="true" dests="0">
3365
 
    <src start="0"/>
3366
 
    <src start="3"/>
3367
 
    <src start="6" mask="0xf7"/>
3368
 
    <mod name="widen0" size="2">
3369
 
      <opt>none</opt>
3370
 
      <opt>h0</opt>
3371
 
      <opt>h1</opt>
3372
 
    </mod>
3373
 
    <mod name="widen1" size="2">
3374
 
      <opt>none</opt>
3375
 
      <opt>h0</opt>
3376
 
      <opt>h1</opt>
3377
 
    </mod>
3378
 
    <mod name="cmpf" size="2">
3379
 
      <opt>gt</opt>
3380
 
      <opt>ge</opt>
3381
 
      <opt>lt</opt>
3382
 
      <opt>le</opt>
3383
 
    </mod>
3384
 
    <derived start="12" size="3">
3385
 
      <and>
3386
 
        <eq left="widen0" right="#none"/>
3387
 
        <eq left="widen1" right="#none"/>
3388
 
      </and>
3389
 
      <reserved/>
3390
 
      <reserved/>
3391
 
      <reserved/>
3392
 
      <reserved/>
3393
 
      <reserved/>
3394
 
      <reserved/>
3395
 
      <reserved/>
3396
 
    </derived>
3397
 
    <derived start="9" size="3">
3398
 
      <and>
3399
 
        <neq left="ordering" right="#lt"/>
3400
 
        <eq left="cmpf" right="#lt"/>
3401
 
      </and>
3402
 
      <and>
3403
 
        <neq left="ordering" right="#lt"/>
3404
 
        <eq left="cmpf" right="#le"/>
3405
 
      </and>
3406
 
      <and>
3407
 
        <neq left="ordering" right="#lt"/>
3408
 
        <eq left="cmpf" right="#ge"/>
3409
 
      </and>
3410
 
      <and>
3411
 
        <neq left="ordering" right="#lt"/>
3412
 
        <eq left="cmpf" right="#gt"/>
3413
 
      </and>
3414
 
      <reserved/>
3415
 
      <reserved/>
3416
 
      <reserved/>
3417
 
      <reserved/>
3418
 
    </derived>
3419
 
    <swap left="0" right="1">
3420
 
      <eq left="ordering" right="#lt"/>
3421
 
      <rewrite name="cmpf">
3422
 
        <map from="lt" to="gt"/>
3423
 
        <map from="le" to="ge"/>
3424
 
        <map from="gt" to="lt"/>
3425
 
        <map from="ge" to="le"/>
3426
 
      </rewrite>
3427
 
    </swap>
3428
 
  </ins>
3429
 
 
3430
 
  <ins name="+BRANCHC.i16" mask="0xff830" exact="0x6f030" last="true" dests="0">
3431
 
    <src start="0"/>
3432
 
    <src start="6" mask="0xf7"/>
3433
 
    <mod name="combine" start="10" size="1">
3434
 
      <opt>any</opt>
3435
 
      <opt>all</opt>
3436
 
    </mod>
3437
 
    <mod name="lane0" size="1" default="h0">
3438
 
      <opt>h0</opt>
3439
 
      <opt>h1</opt>
3440
 
    </mod>
3441
 
    <derived start="9" size="1">
3442
 
      <eq left="lane0" right="#h0"/>
3443
 
      <eq left="lane0" right="#h1"/>
3444
 
    </derived>
3445
 
    <derived start="3" size="1">
3446
 
      <eq left="lane0" right="#h1"/>
3447
 
      <eq left="lane0" right="#h0"/>
3448
 
    </derived>
3449
 
  </ins>
3450
 
 
3451
 
  <ins name="+BRANCHC.i32" mask="0xffa38" exact="0x6f238" last="true" dests="0">
3452
 
    <src start="0"/>
3453
 
    <src start="6" mask="0xf7"/>
3454
 
    <mod name="combine" start="10" size="1">
3455
 
      <opt>any</opt>
3456
 
      <opt>all</opt>
3457
 
    </mod>
3458
 
  </ins>
3459
 
 
3460
 
  <ins name="+BRANCHZ.f16" mask="0xff000" exact="0x6f000" last="true" dests="0">
3461
 
    <src start="0"/>
3462
 
    <src start="6" mask="0xf7"/>
3463
 
    <mod name="widen0" size="2">
3464
 
      <opt>none</opt>
3465
 
      <opt>h0</opt>
3466
 
      <opt>h1</opt>
3467
 
    </mod>
3468
 
    <mod name="cmpf" size="3">
3469
 
      <opt>eq</opt>
3470
 
      <opt>gt</opt>
3471
 
      <opt>ge</opt>
3472
 
      <opt>ne</opt>
3473
 
      <opt>lt</opt>
3474
 
      <opt>le</opt>
3475
 
    </mod>
3476
 
    <derived start="4" size="2">
3477
 
      <reserved/>
3478
 
      <eq left="widen0" right="#h1"/>
3479
 
      <eq left="widen0" right="#h0"/>
3480
 
      <reserved/>
3481
 
    </derived>
3482
 
    <derived start="3" size="1">
3483
 
      <or>
3484
 
        <eq left="cmpf" right="#ne"/>
3485
 
        <eq left="cmpf" right="#ge"/>
3486
 
        <eq left="cmpf" right="#le"/>
3487
 
      </or>
3488
 
      <or>
3489
 
        <eq left="cmpf" right="#eq"/>
3490
 
        <eq left="cmpf" right="#gt"/>
3491
 
        <eq left="cmpf" right="#lt"/>
3492
 
      </or>
3493
 
    </derived>
3494
 
    <derived start="9" size="3">
3495
 
      <reserved/>
3496
 
      <reserved/>
3497
 
      <reserved/>
3498
 
      <reserved/>
3499
 
      <reserved/>
3500
 
      <or>
3501
 
        <eq left="cmpf" right="#ne"/>
3502
 
        <eq left="cmpf" right="#eq"/>
3503
 
      </or>
3504
 
      <or>
3505
 
        <eq left="cmpf" right="#ge"/>
3506
 
        <eq left="cmpf" right="#gt"/>
3507
 
      </or>
3508
 
      <or>
3509
 
        <eq left="cmpf" right="#le"/>
3510
 
        <eq left="cmpf" right="#lt"/>
3511
 
      </or>
3512
 
    </derived>
3513
 
  </ins>
3514
 
 
3515
 
  <ins name="+BRANCHZ.f32" mask="0xff030" exact="0x6f000" last="true" dests="0">
3516
 
    <src start="0"/>
3517
 
    <src start="6" mask="0xf7"/>
3518
 
    <mod name="cmpf" size="3">
3519
 
      <opt>eq</opt>
3520
 
      <opt>gt</opt>
3521
 
      <opt>ge</opt>
3522
 
      <opt>ne</opt>
3523
 
      <opt>lt</opt>
3524
 
      <opt>le</opt>
3525
 
    </mod>
3526
 
    <derived start="3" size="1">
3527
 
      <or>
3528
 
        <eq left="cmpf" right="#ne"/>
3529
 
        <eq left="cmpf" right="#ge"/>
3530
 
        <eq left="cmpf" right="#le"/>
3531
 
      </or>
3532
 
      <or>
3533
 
        <eq left="cmpf" right="#eq"/>
3534
 
        <eq left="cmpf" right="#gt"/>
3535
 
        <eq left="cmpf" right="#lt"/>
3536
 
      </or>
3537
 
    </derived>
3538
 
    <derived start="9" size="3">
3539
 
      <reserved/>
3540
 
      <reserved/>
3541
 
      <reserved/>
3542
 
      <reserved/>
3543
 
      <reserved/>
3544
 
      <or>
3545
 
        <eq left="cmpf" right="#ne"/>
3546
 
        <eq left="cmpf" right="#eq"/>
3547
 
      </or>
3548
 
      <or>
3549
 
        <eq left="cmpf" right="#ge"/>
3550
 
        <eq left="cmpf" right="#gt"/>
3551
 
      </or>
3552
 
      <or>
3553
 
        <eq left="cmpf" right="#le"/>
3554
 
        <eq left="cmpf" right="#lt"/>
3555
 
      </or>
3556
 
    </derived>
3557
 
  </ins>
3558
 
 
3559
 
  <ins name="+BRANCHZ.i16" mask="0xffe00" exact="0x6f800" last="true" dests="0">
3560
 
    <src start="0"/>
3561
 
    <src start="6" mask="0xf7"/>
3562
 
    <mod name="widen0" size="2">
3563
 
      <opt>none</opt>
3564
 
      <opt>h0</opt>
3565
 
      <opt>h1</opt>
3566
 
    </mod>
3567
 
    <mod name="cmpf" size="1">
3568
 
      <opt>eq</opt>
3569
 
      <opt>ne</opt>
3570
 
    </mod>
3571
 
    <derived start="4" size="2">
3572
 
      <reserved/>
3573
 
      <eq left="widen0" right="#h1"/>
3574
 
      <eq left="widen0" right="#h0"/>
3575
 
      <reserved/>
3576
 
    </derived>
3577
 
    <derived start="3" size="1">
3578
 
      <eq left="cmpf" right="#ne"/>
3579
 
      <eq left="cmpf" right="#eq"/>
3580
 
    </derived>
3581
 
  </ins>
3582
 
 
3583
 
  <ins name="+BRANCHZ.i32" mask="0xffe30" exact="0x6f800" last="true" dests="0">
3584
 
    <src start="0"/>
3585
 
    <src start="6" mask="0xf7"/>
3586
 
    <mod name="cmpf" size="1">
3587
 
      <opt>eq</opt>
3588
 
      <opt>ne</opt>
3589
 
    </mod>
3590
 
    <derived start="3" size="1">
3591
 
      <eq left="cmpf" right="#ne"/>
3592
 
      <eq left="cmpf" right="#eq"/>
3593
 
    </derived>
3594
 
  </ins>
3595
 
 
3596
 
  <ins name="+BRANCHZ.s16" mask="0xff008" exact="0x6f008" last="true" dests="0">
3597
 
    <src start="0"/>
3598
 
    <src start="6" mask="0xf7"/>
3599
 
    <mod name="widen0" size="2">
3600
 
      <opt>none</opt>
3601
 
      <opt>h0</opt>
3602
 
      <opt>h1</opt>
3603
 
    </mod>
3604
 
    <mod name="cmpf" size="2">
3605
 
      <opt>gt</opt>
3606
 
      <opt>ge</opt>
3607
 
      <opt>lt</opt>
3608
 
      <opt>le</opt>
3609
 
    </mod>
3610
 
    <derived start="4" size="2">
3611
 
      <reserved/>
3612
 
      <eq left="widen0" right="#h1"/>
3613
 
      <eq left="widen0" right="#h0"/>
3614
 
      <reserved/>
3615
 
    </derived>
3616
 
    <derived start="9" size="3">
3617
 
      <eq left="cmpf" right="#lt"/>
3618
 
      <eq left="cmpf" right="#le"/>
3619
 
      <eq left="cmpf" right="#ge"/>
3620
 
      <eq left="cmpf" right="#gt"/>
3621
 
      <reserved/>
3622
 
      <reserved/>
3623
 
      <reserved/>
3624
 
      <reserved/>
3625
 
    </derived>
3626
 
  </ins>
3627
 
 
3628
 
  <ins name="+BRANCHZ.s32" mask="0xff038" exact="0x6f008" last="true" dests="0">
3629
 
    <src start="0"/>
3630
 
    <src start="6" mask="0xf7"/>
3631
 
    <mod name="cmpf" size="2">
3632
 
      <opt>gt</opt>
3633
 
      <opt>ge</opt>
3634
 
      <opt>lt</opt>
3635
 
      <opt>le</opt>
3636
 
    </mod>
3637
 
    <derived start="9" size="3">
3638
 
      <eq left="cmpf" right="#lt"/>
3639
 
      <eq left="cmpf" right="#le"/>
3640
 
      <eq left="cmpf" right="#ge"/>
3641
 
      <eq left="cmpf" right="#gt"/>
3642
 
      <reserved/>
3643
 
      <reserved/>
3644
 
      <reserved/>
3645
 
      <reserved/>
3646
 
    </derived>
3647
 
  </ins>
3648
 
 
3649
 
  <ins name="+BRANCHZ.u16" mask="0xff008" exact="0x6f000" last="true" dests="0">
3650
 
    <src start="0"/>
3651
 
    <src start="6" mask="0xf7"/>
3652
 
    <mod name="widen0" size="2">
3653
 
      <opt>none</opt>
3654
 
      <opt>h0</opt>
3655
 
      <opt>h1</opt>
3656
 
    </mod>
3657
 
    <mod name="cmpf" size="2">
3658
 
      <opt>gt</opt>
3659
 
      <opt>ge</opt>
3660
 
      <opt>lt</opt>
3661
 
      <opt>le</opt>
3662
 
    </mod>
3663
 
    <derived start="4" size="2">
3664
 
      <reserved/>
3665
 
      <eq left="widen0" right="#h1"/>
3666
 
      <eq left="widen0" right="#h0"/>
3667
 
      <reserved/>
3668
 
    </derived>
3669
 
    <derived start="9" size="3">
3670
 
      <eq left="cmpf" right="#lt"/>
3671
 
      <eq left="cmpf" right="#le"/>
3672
 
      <eq left="cmpf" right="#ge"/>
3673
 
      <eq left="cmpf" right="#gt"/>
3674
 
      <reserved/>
3675
 
      <reserved/>
3676
 
      <reserved/>
3677
 
      <reserved/>
3678
 
    </derived>
3679
 
  </ins>
3680
 
 
3681
 
  <ins name="+BRANCHZ.u32" mask="0xff038" exact="0x6f000" last="true" dests="0">
3682
 
    <src start="0"/>
3683
 
    <src start="6" mask="0xf7"/>
3684
 
    <mod name="cmpf" size="2">
3685
 
      <opt>gt</opt>
3686
 
      <opt>ge</opt>
3687
 
      <opt>lt</opt>
3688
 
      <opt>le</opt>
3689
 
    </mod>
3690
 
    <derived start="9" size="3">
3691
 
      <eq left="cmpf" right="#lt"/>
3692
 
      <eq left="cmpf" right="#le"/>
3693
 
      <eq left="cmpf" right="#ge"/>
3694
 
      <eq left="cmpf" right="#gt"/>
3695
 
      <reserved/>
3696
 
      <reserved/>
3697
 
      <reserved/>
3698
 
      <reserved/>
3699
 
    </derived>
3700
 
  </ins>
3701
 
 
3702
 
  <ins name="+BRANCH_DIVERG" mask="0xffe3f" exact="0x6f83c" last="true" dests="0">
3703
 
    <src start="6" mask="0xf7"/>
3704
 
  </ins>
3705
 
 
3706
 
  <ins name="+BRANCH_LOWBITS.f32" mask="0xffe38" exact="0x6fa38" last="true" dests="0">
3707
 
    <src start="0"/>
3708
 
    <src start="6" mask="0xf7"/>
3709
 
  </ins>
3710
 
 
3711
 
  <ins name="+BRANCH_NO_DIVERG" mask="0xffe3f" exact="0x6fa34" last="true" dests="0">
3712
 
    <src start="6" mask="0xf7"/>
3713
 
  </ins>
3714
 
 
3715
 
  <ins name="+CLPER_V6.i32" mask="0xfffc0" exact="0x3f0c0">
3716
 
    <src start="0" mask="0x7"/>
3717
 
    <src start="3"/>
3718
 
  </ins>
3719
 
 
3720
 
  <ins name="+CLPER.i32" mask="0xfc000" exact="0x7c000">
3721
 
    <src start="0" mask="0x7"/>
3722
 
    <src start="3"/>
3723
 
    <mod name="lane_op" start="6" size="2">
3724
 
      <opt>none</opt>
3725
 
      <opt>xor</opt>
3726
 
      <opt>accumulate</opt>
3727
 
      <opt>shift</opt>
3728
 
    </mod>
3729
 
    <mod name="subgroup" start="8" size="2">
3730
 
      <opt>subgroup2</opt>
3731
 
      <opt>subgroup4</opt>
3732
 
      <opt>subgroup8</opt>
3733
 
      <opt pseudo="true">subgroup16</opt> <!-- Only on Valhall -->
3734
 
    </mod>
3735
 
    <mod name="inactive_result" start="10" size="4">
3736
 
      <opt>zero</opt>
3737
 
      <opt>umax</opt>
3738
 
      <opt>i1</opt>
3739
 
      <opt>v2i1</opt>
3740
 
      <opt>smin</opt>
3741
 
      <opt>smax</opt>
3742
 
      <opt>v2smin</opt>
3743
 
      <opt>v2smax</opt>
3744
 
      <opt>v4smin</opt>
3745
 
      <opt>v4smax</opt>
3746
 
      <opt>f1</opt>
3747
 
      <opt>v2f1</opt>
3748
 
      <opt>infn</opt>
3749
 
      <opt>inf</opt>
3750
 
      <opt>v2infn</opt>
3751
 
      <opt>v2inf</opt>
3752
 
    </mod>
3753
 
  </ins>
3754
 
 
3755
 
  <ins name="+CUBEFACE2" mask="0xffff8" exact="0x3de58">
3756
 
    <src start="0"/>
3757
 
  </ins>
3758
 
 
3759
 
  <ins name="+CUBE_SSEL" mask="0xffc00" exact="0x3e000">
3760
 
    <src start="0"/>
3761
 
    <src start="3"/>
3762
 
    <src start="6"/>
3763
 
    <mod name="neg0" size="1" opt="neg"/>
3764
 
    <mod name="neg1" size="1" opt="neg"/>
3765
 
    <derived start="9" size="1">
3766
 
      <and>
3767
 
        <eq left="neg0" right="#none"/>
3768
 
        <eq left="neg1" right="#none"/>
3769
 
      </and>
3770
 
      <and>
3771
 
        <eq left="neg0" right="#neg"/>
3772
 
        <eq left="neg1" right="#neg"/>
3773
 
      </and>
3774
 
    </derived>
3775
 
  </ins>
3776
 
 
3777
 
  <ins name="+CUBE_TSEL" mask="0xffc00" exact="0x3e400">
3778
 
    <src start="0"/>
3779
 
    <src start="3"/>
3780
 
    <src start="6"/>
3781
 
    <mod name="neg0" size="1" opt="neg"/>
3782
 
    <mod name="neg1" size="1" opt="neg"/>
3783
 
    <derived start="9" size="1">
3784
 
      <and>
3785
 
        <eq left="neg0" right="#none"/>
3786
 
        <eq left="neg1" right="#none"/>
3787
 
      </and>
3788
 
      <and>
3789
 
        <eq left="neg0" right="#neg"/>
3790
 
        <eq left="neg1" right="#neg"/>
3791
 
      </and>
3792
 
    </derived>
3793
 
  </ins>
3794
 
 
3795
 
  <ins name="+DISCARD.f32" mask="0xff800" exact="0xc8800" dests="0">
3796
 
    <src start="0"/>
3797
 
    <src start="3"/>
3798
 
    <mod name="cmpf" size="3">
3799
 
      <opt>eq</opt>
3800
 
      <opt>gt</opt>
3801
 
      <opt>ge</opt>
3802
 
      <opt>ne</opt>
3803
 
      <opt>lt</opt>
3804
 
      <opt>le</opt>
3805
 
    </mod>
3806
 
    <mod name="widen0" size="2">
3807
 
      <opt>none</opt>
3808
 
      <opt>h0</opt>
3809
 
      <opt>h1</opt>
3810
 
    </mod>
3811
 
    <mod name="widen1" size="2">
3812
 
      <opt>none</opt>
3813
 
      <opt>h0</opt>
3814
 
      <opt>h1</opt>
3815
 
    </mod>
3816
 
    <derived start="6" size="2">
3817
 
      <eq left="cmpf" right="#eq"/>
3818
 
      <eq left="cmpf" right="#ne"/>
3819
 
      <eq left="cmpf" right="#lt"/>
3820
 
      <eq left="cmpf" right="#le"/>
3821
 
    </derived>
3822
 
    <derived start="8" size="3">
3823
 
      <and>
3824
 
        <eq left="widen0" right="#h0"/>
3825
 
        <eq left="widen1" right="#h0"/>
3826
 
      </and>
3827
 
      <and>
3828
 
        <eq left="widen0" right="#h1"/>
3829
 
        <eq left="widen1" right="#h0"/>
3830
 
      </and>
3831
 
      <and>
3832
 
        <eq left="widen0" right="#h0"/>
3833
 
        <eq left="widen1" right="#h1"/>
3834
 
      </and>
3835
 
      <and>
3836
 
        <eq left="widen0" right="#h1"/>
3837
 
        <eq left="widen1" right="#h1"/>
3838
 
      </and>
3839
 
      <and>
3840
 
        <eq left="widen0" right="#none"/>
3841
 
        <eq left="widen1" right="#none"/>
3842
 
      </and>
3843
 
      <reserved/>
3844
 
      <reserved/>
3845
 
      <reserved/>
3846
 
    </derived>
3847
 
    <swap left="0" right="1">
3848
 
      <or>
3849
 
        <eq left="cmpf" right="#gt"/>
3850
 
        <eq left="cmpf" right="#ge"/>
3851
 
      </or>
3852
 
      <rewrite name="cmpf">
3853
 
        <map from="gt" to="lt"/>
3854
 
        <map from="ge" to="le"/>
3855
 
      </rewrite>
3856
 
    </swap>
3857
 
  </ins>
3858
 
 
3859
 
  <ins name="+DOORBELL" mask="0xffff8" exact="0xd7860" unused="true" message="job_management" dests="0">
3860
 
    <src start="0"/>
3861
 
  </ins>
3862
 
 
3863
 
  <ins name="+EUREKA" mask="0xffff8" exact="0xd7850" unused="true" message="job_management" dests="0">
3864
 
    <src start="0"/>
3865
 
  </ins>
3866
 
 
3867
 
  <ins name="+F16_TO_F32" mask="0xffff0" exact="0x3cd10">
3868
 
    <src start="0"/>
3869
 
    <mod name="lane0" start="3" size="1" default="h0">
3870
 
      <opt>h0</opt>
3871
 
      <opt>h1</opt>
3872
 
    </mod>
3873
 
  </ins>
3874
 
 
3875
 
  <ins name="+F16_TO_S32">
3876
 
    <src start="0"/>
3877
 
    <mod name="round" size="3">
3878
 
      <opt>none</opt>
3879
 
      <opt>rtp</opt>
3880
 
      <opt>rtn</opt>
3881
 
      <opt>rtz</opt>
3882
 
      <opt>rtna</opt>
3883
 
    </mod>
3884
 
    <mod name="lane0" size="1" default="h0">
3885
 
      <opt>h0</opt>
3886
 
      <opt>h1</opt>
3887
 
    </mod>
3888
 
    <encoding mask="0xfff48" exact="0x3c500">
3889
 
      <neq left="round" right="#rtna"/>
3890
 
      <copy name="lane0" start="7"/>
3891
 
      <derived start="4" size="2">
3892
 
        <eq left="round" right="#none"/>
3893
 
        <eq left="round" right="#rtp"/>
3894
 
        <eq left="round" right="#rtn"/>
3895
 
        <eq left="round" right="#rtz"/>
3896
 
      </derived>
3897
 
    </encoding>
3898
 
    <encoding mask="0xfffd8" exact="0x3cc40">
3899
 
      <eq left="round" right="#rtna"/>
3900
 
      <copy name="lane0" start="5"/>
3901
 
    </encoding>
3902
 
  </ins>
3903
 
 
3904
 
  <ins name="+F16_TO_U32">
3905
 
    <src start="0"/>
3906
 
    <mod name="round" size="3">
3907
 
      <opt>none</opt>
3908
 
      <opt>rtp</opt>
3909
 
      <opt>rtn</opt>
3910
 
      <opt>rtz</opt>
3911
 
      <opt>rtna</opt>
3912
 
    </mod>
3913
 
    <mod name="lane0" size="1" default="h0">
3914
 
      <opt>h0</opt>
3915
 
      <opt>h1</opt>
3916
 
    </mod>
3917
 
    <encoding mask="0xfff48" exact="0x3c508">
3918
 
      <neq left="round" right="#rtna"/>
3919
 
      <copy name="lane0" start="7"/>
3920
 
      <derived start="4" size="2">
3921
 
        <eq left="round" right="#none"/>
3922
 
        <eq left="round" right="#rtp"/>
3923
 
        <eq left="round" right="#rtn"/>
3924
 
        <eq left="round" right="#rtz"/>
3925
 
      </derived>
3926
 
    </encoding>
3927
 
    <encoding mask="0xfffd8" exact="0x3cc48">
3928
 
      <eq left="round" right="#rtna"/>
3929
 
      <copy name="lane0" start="5"/>
3930
 
    </encoding>
3931
 
  </ins>
3932
 
 
3933
 
  <ins name="+F32_TO_S32">
3934
 
    <src start="0"/>
3935
 
    <mod name="round" size="3">
3936
 
      <opt>none</opt>
3937
 
      <opt>rtp</opt>
3938
 
      <opt>rtn</opt>
3939
 
      <opt>rtz</opt>
3940
 
      <opt>rtna</opt>
3941
 
    </mod>
3942
 
    <encoding mask="0xfffc8" exact="0x3c980">
3943
 
      <neq left="round" right="#rtna"/>
3944
 
      <derived start="4" size="2">
3945
 
        <eq left="round" right="#none"/>
3946
 
        <eq left="round" right="#rtp"/>
3947
 
        <eq left="round" right="#rtn"/>
3948
 
        <eq left="round" right="#rtz"/>
3949
 
      </derived>
3950
 
    </encoding>
3951
 
    <encoding mask="0xffff8" exact="0x3cca0">
3952
 
      <eq left="round" right="#rtna"/>
3953
 
    </encoding>
3954
 
  </ins>
3955
 
 
3956
 
  <ins name="+F32_TO_U32">
3957
 
    <src start="0"/>
3958
 
    <mod name="round" size="3">
3959
 
      <opt>none</opt>
3960
 
      <opt>rtp</opt>
3961
 
      <opt>rtn</opt>
3962
 
      <opt>rtz</opt>
3963
 
      <opt>rtna</opt>
3964
 
    </mod>
3965
 
    <encoding mask="0xfffc8" exact="0x3c988">
3966
 
      <neq left="round" right="#rtna"/>
3967
 
      <derived start="4" size="2">
3968
 
        <eq left="round" right="#none"/>
3969
 
        <eq left="round" right="#rtp"/>
3970
 
        <eq left="round" right="#rtn"/>
3971
 
        <eq left="round" right="#rtz"/>
3972
 
      </derived>
3973
 
    </encoding>
3974
 
    <encoding mask="0xffff8" exact="0x3cca8">
3975
 
      <eq left="round" right="#rtna"/>
3976
 
    </encoding>
3977
 
  </ins>
3978
 
 
3979
 
  <ins name="+FADD.f32">
3980
 
    <src start="0"/>
3981
 
    <src start="3"/>
3982
 
    <mod name="round" size="3">
3983
 
      <opt>none</opt>
3984
 
      <opt>rtp</opt>
3985
 
      <opt>rtn</opt>
3986
 
      <opt>rtz</opt>
3987
 
      <opt>rto</opt>
3988
 
    </mod>
3989
 
    <mod name="abs1" size="1" opt="abs"/>
3990
 
    <mod name="neg0" size="1" opt="neg"/>
3991
 
    <mod name="neg1" size="1" opt="neg"/>
3992
 
    <mod name="clamp" size="2">
3993
 
      <opt>none</opt>
3994
 
      <opt>clamp_0_inf</opt>
3995
 
      <opt>clamp_m1_1</opt>
3996
 
      <opt>clamp_0_1</opt>
3997
 
    </mod>
3998
 
    <mod name="abs0" size="1" opt="abs"/>
3999
 
    <mod name="widen0" size="2">
4000
 
      <opt>none</opt>
4001
 
      <opt>h0</opt>
4002
 
      <opt>h1</opt>
4003
 
    </mod>
4004
 
    <mod name="widen1" size="2">
4005
 
      <opt>none</opt>
4006
 
      <opt>h0</opt>
4007
 
      <opt>h1</opt>
4008
 
    </mod>
4009
 
    <encoding mask="0xf0000" exact="0x20000">
4010
 
      <neq left="round" right="#rto"/>
4011
 
      <copy name="abs1" start="6"/>
4012
 
      <copy name="neg0" start="7"/>
4013
 
      <copy name="neg1" start="8"/>
4014
 
      <copy name="clamp" start="11"/>
4015
 
      <copy name="abs0" start="15"/>
4016
 
      <derived start="13" size="2">
4017
 
        <eq left="round" right="#none"/>
4018
 
        <eq left="round" right="#rtp"/>
4019
 
        <eq left="round" right="#rtn"/>
4020
 
        <eq left="round" right="#rtz"/>
4021
 
      </derived>
4022
 
      <derived start="9" size="2">
4023
 
        <and>
4024
 
          <eq left="widen0" right="#none"/>
4025
 
          <eq left="widen1" right="#none"/>
4026
 
        </and>
4027
 
        <and>
4028
 
          <eq left="widen0" right="#none"/>
4029
 
          <eq left="widen1" right="#h0"/>
4030
 
        </and>
4031
 
        <and>
4032
 
          <eq left="widen0" right="#none"/>
4033
 
          <eq left="widen1" right="#h1"/>
4034
 
        </and>
4035
 
        <and>
4036
 
          <eq left="widen0" right="#h0"/>
4037
 
          <eq left="widen1" right="#h0"/>
4038
 
        </and>
4039
 
      </derived>
4040
 
    </encoding>
4041
 
    <encoding mask="0xfffc0" exact="0x75200">
4042
 
      <and>
4043
 
        <eq left="round" right="#rto"/>
4044
 
        <eq left="widen0" right="#none"/>
4045
 
        <eq left="widen1" right="#none"/>
4046
 
        <eq left="abs0" right="#none"/>
4047
 
        <eq left="abs1" right="#none"/>
4048
 
        <eq left="neg0" right="#none"/>
4049
 
        <eq left="neg1" right="#none"/>
4050
 
        <eq left="clamp" right="#none"/>
4051
 
      </and>
4052
 
    </encoding>
4053
 
    <swap left="0" right="1">
4054
 
      <or>
4055
 
        <and>
4056
 
          <eq left="widen0" right="#h0"/>
4057
 
          <eq left="widen1" right="#none"/>
4058
 
        </and>
4059
 
        <and>
4060
 
          <eq left="widen0" right="#h1"/>
4061
 
          <eq left="widen1" right="#none"/>
4062
 
        </and>
4063
 
      </or>
4064
 
    </swap>
4065
 
  </ins>
4066
 
 
4067
 
  <ins name="+FADD.v2f16" mask="0xf0000" exact="0xa0000">
4068
 
    <src start="0"/>
4069
 
    <src start="3"/>
4070
 
    <mod name="abs1" start="6" size="1" opt="abs"/>
4071
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
4072
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
4073
 
    <mod name="swz0" start="9" size="2" default="h01">
4074
 
      <opt>h00</opt>
4075
 
      <opt>h10</opt>
4076
 
      <opt>h01</opt>
4077
 
      <opt>h11</opt>
4078
 
    </mod>
4079
 
    <mod name="swz1" start="11" size="2" default="h01">
4080
 
      <opt>h00</opt>
4081
 
      <opt>h10</opt>
4082
 
      <opt>h01</opt>
4083
 
      <opt>h11</opt>
4084
 
    </mod>
4085
 
    <mod name="round" start="13" size="2">
4086
 
      <opt>none</opt>
4087
 
      <opt>rtp</opt>
4088
 
      <opt>rtn</opt>
4089
 
      <opt>rtz</opt>
4090
 
    </mod>
4091
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
4092
 
  </ins>
4093
 
 
4094
 
  <ins name="+FADD_RSCALE.f32" mask="0xe8000" exact="0x88000">
4095
 
    <src start="0"/>
4096
 
    <src start="3"/>
4097
 
    <src start="6"/>
4098
 
    <mod name="clamp" size="1" opt="clamp_0_1"/>
4099
 
    <mod name="special" size="1" opt="n"/>
4100
 
    <mod name="round" size="3">
4101
 
      <opt>none</opt>
4102
 
      <opt>rtp</opt>
4103
 
      <opt>rtn</opt>
4104
 
      <opt>rtz</opt>
4105
 
      <opt>rtna</opt>
4106
 
    </mod>
4107
 
    <mod name="abs1" start="12" size="1" opt="abs"/>
4108
 
    <mod name="neg0" start="13" size="1" opt="neg"/>
4109
 
    <mod name="neg1" start="14" size="1" opt="neg"/>
4110
 
    <mod name="abs0" start="16" size="1" opt="abs"/>
4111
 
    <derived start="9" size="3">
4112
 
      <and>
4113
 
        <eq left="clamp" right="#none"/>
4114
 
        <eq left="special" right="#none"/>
4115
 
        <eq left="round" right="#none"/>
4116
 
      </and>
4117
 
      <reserved/>
4118
 
      <and>
4119
 
        <eq left="clamp" right="#clamp_0_1"/>
4120
 
        <eq left="special" right="#none"/>
4121
 
        <eq left="round" right="#none"/>
4122
 
      </and>
4123
 
      <and>
4124
 
        <eq left="clamp" right="#none"/>
4125
 
        <eq left="special" right="#n"/>
4126
 
        <eq left="round" right="#rtna"/>
4127
 
      </and>
4128
 
      <and>
4129
 
        <eq left="clamp" right="#none"/>
4130
 
        <eq left="special" right="#n"/>
4131
 
        <eq left="round" right="#none"/>
4132
 
      </and>
4133
 
      <and>
4134
 
        <eq left="clamp" right="#none"/>
4135
 
        <eq left="special" right="#n"/>
4136
 
        <eq left="round" right="#rtp"/>
4137
 
      </and>
4138
 
      <and>
4139
 
        <eq left="clamp" right="#none"/>
4140
 
        <eq left="special" right="#n"/>
4141
 
        <eq left="round" right="#rtn"/>
4142
 
      </and>
4143
 
      <and>
4144
 
        <eq left="clamp" right="#none"/>
4145
 
        <eq left="special" right="#n"/>
4146
 
        <eq left="round" right="#rtz"/>
4147
 
      </and>
4148
 
    </derived>
4149
 
  </ins>
4150
 
 
4151
 
  <ins name="+FATAN_ASSIST.f16" mask="0xfff00" exact="0x67800" unused="true" table="true">
4152
 
    <src start="0" mask="0xf7"/>
4153
 
    <src start="3" mask="0xf7"/>
4154
 
    <mod name="lane1" start="6" size="1" default="h0">
4155
 
      <opt>h0</opt>
4156
 
      <opt>h1</opt>
4157
 
    </mod>
4158
 
    <mod name="lane0" start="7" size="1" default="h0">
4159
 
      <opt>h0</opt>
4160
 
      <opt>h1</opt>
4161
 
    </mod>
4162
 
  </ins>
4163
 
 
4164
 
  <ins name="+FATAN_ASSIST.f32" mask="0xfffc0" exact="0x67a00" unused="true" table="true">
4165
 
    <src start="0" mask="0xf7"/>
4166
 
    <src start="3" mask="0xf7"/>
4167
 
  </ins>
4168
 
 
4169
 
  <ins name="+FATAN_TABLE.f16" mask="0xfff00" exact="0x67900" unused="true" table="true">
4170
 
    <src start="0" mask="0xf7"/>
4171
 
    <src start="3" mask="0xf7"/>
4172
 
    <mod name="lane1" start="6" size="1" default="h0">
4173
 
      <opt>h0</opt>
4174
 
      <opt>h1</opt>
4175
 
    </mod>
4176
 
    <mod name="lane0" start="7" size="1" default="h0">
4177
 
      <opt>h0</opt>
4178
 
      <opt>h1</opt>
4179
 
    </mod>
4180
 
  </ins>
4181
 
 
4182
 
  <ins name="+FATAN_TABLE.f32" mask="0xfffc0" exact="0x67a40" unused="true" table="true">
4183
 
    <src start="0" mask="0xf7"/>
4184
 
    <src start="3" mask="0xf7"/>
4185
 
  </ins>
4186
 
 
4187
 
  <ins name="+FCMP.f32" mask="0xf0000" exact="0x30000">
4188
 
    <src start="0"/>
4189
 
    <src start="3"/>
4190
 
    <mod name="widen0" size="2">
4191
 
      <opt>none</opt>
4192
 
      <opt>h0</opt>
4193
 
      <opt>h1</opt>
4194
 
    </mod>
4195
 
    <mod name="widen1" size="2">
4196
 
      <opt>none</opt>
4197
 
      <opt>h0</opt>
4198
 
      <opt>h1</opt>
4199
 
    </mod>
4200
 
    <mod name="neg0" size="1" opt="neg"/>
4201
 
    <mod name="neg1" size="1" opt="neg"/>
4202
 
    <mod name="cmpf" start="6" size="3">
4203
 
      <opt>eq</opt>
4204
 
      <opt>gt</opt>
4205
 
      <opt>ge</opt>
4206
 
      <opt>ne</opt>
4207
 
      <opt>lt</opt>
4208
 
      <opt>le</opt>
4209
 
      <opt>gtlt</opt>
4210
 
      <opt>total</opt>
4211
 
    </mod>
4212
 
    <mod name="abs0" start="11" size="1" opt="abs"/>
4213
 
    <mod name="abs1" start="12" size="1" opt="abs"/>
4214
 
    <mod name="result_type" start="14" size="2" default="i1">
4215
 
      <opt>i1</opt>
4216
 
      <opt>f1</opt>
4217
 
      <opt>m1</opt>
4218
 
    </mod>
4219
 
    <derived start="9" size="2">
4220
 
      <and>
4221
 
        <eq left="widen0" right="#none"/>
4222
 
        <eq left="widen1" right="#none"/>
4223
 
      </and>
4224
 
      <and>
4225
 
        <eq left="widen0" right="#none"/>
4226
 
        <eq left="widen1" right="#h0"/>
4227
 
      </and>
4228
 
      <and>
4229
 
        <eq left="widen0" right="#none"/>
4230
 
        <eq left="widen1" right="#h1"/>
4231
 
      </and>
4232
 
      <and>
4233
 
        <eq left="widen0" right="#h0"/>
4234
 
        <eq left="widen1" right="#h0"/>
4235
 
      </and>
4236
 
    </derived>
4237
 
    <derived start="13" size="1">
4238
 
      <and>
4239
 
        <eq left="neg0" right="#none"/>
4240
 
        <eq left="neg1" right="#none"/>
4241
 
      </and>
4242
 
      <and>
4243
 
        <eq left="neg0" right="#neg"/>
4244
 
        <eq left="neg1" right="#none"/>
4245
 
      </and>
4246
 
    </derived>
4247
 
    <swap left="0" right="1">
4248
 
      <or>
4249
 
        <and>
4250
 
          <eq left="neg0" right="#none"/>
4251
 
          <eq left="neg1" right="#neg"/>
4252
 
        </and>
4253
 
        <and>
4254
 
          <eq left="widen0" right="#h0"/>
4255
 
          <eq left="widen1" right="#none"/>
4256
 
        </and>
4257
 
        <and>
4258
 
          <eq left="widen0" right="#h1"/>
4259
 
          <eq left="widen1" right="#none"/>
4260
 
        </and>
4261
 
      </or>
4262
 
      <rewrite name="cmpf">
4263
 
        <map from="lt" to="gt"/>
4264
 
        <map from="le" to="ge"/>
4265
 
        <map from="gt" to="lt"/>
4266
 
        <map from="ge" to="le"/>
4267
 
      </rewrite>
4268
 
    </swap>
4269
 
  </ins>
4270
 
 
4271
 
  <ins name="+FCMP.v2f16" mask="0xf0000" exact="0xb0000">
4272
 
    <src start="0"/>
4273
 
    <src start="3"/>
4274
 
    <mod name="neg0" size="1" opt="neg"/>
4275
 
    <mod name="neg1" size="1" opt="neg"/>
4276
 
    <mod name="cmpf" start="6" size="3">
4277
 
      <opt>eq</opt>
4278
 
      <opt>gt</opt>
4279
 
      <opt>ge</opt>
4280
 
      <opt>ne</opt>
4281
 
      <opt>lt</opt>
4282
 
      <opt>le</opt>
4283
 
      <opt>gtlt</opt>
4284
 
      <opt>total</opt>
4285
 
    </mod>
4286
 
    <mod name="swz0" start="9" size="2" default="h01">
4287
 
      <opt>h00</opt>
4288
 
      <opt>h10</opt>
4289
 
      <opt>h01</opt>
4290
 
      <opt>h11</opt>
4291
 
    </mod>
4292
 
    <mod name="swz1" start="11" size="2" default="h01">
4293
 
      <opt>h00</opt>
4294
 
      <opt>h10</opt>
4295
 
      <opt>h01</opt>
4296
 
      <opt>h11</opt>
4297
 
    </mod>
4298
 
    <mod name="result_type" start="14" size="2" default="i1">
4299
 
      <opt>i1</opt>
4300
 
      <opt>f1</opt>
4301
 
      <opt>m1</opt>
4302
 
    </mod>
4303
 
    <derived start="13" size="1">
4304
 
      <and>
4305
 
        <eq left="neg0" right="#none"/>
4306
 
        <eq left="neg1" right="#none"/>
4307
 
      </and>
4308
 
      <and>
4309
 
        <eq left="neg0" right="#neg"/>
4310
 
        <eq left="neg1" right="#none"/>
4311
 
      </and>
4312
 
    </derived>
4313
 
    <swap left="0" right="1">
4314
 
      <and>
4315
 
        <eq left="neg0" right="#none"/>
4316
 
        <eq left="neg1" right="#neg"/>
4317
 
      </and>
4318
 
      <rewrite name="cmpf">
4319
 
        <map from="lt" to="gt"/>
4320
 
        <map from="le" to="ge"/>
4321
 
        <map from="gt" to="lt"/>
4322
 
        <map from="ge" to="le"/>
4323
 
      </rewrite>
4324
 
    </swap>
4325
 
  </ins>
4326
 
 
4327
 
  <ins name="+FCOS_TABLE.u6" mask="0xfffe8" exact="0x67a88" table="true">
4328
 
    <src start="0" mask="0xf7"/>
4329
 
    <mod name="offset" start="4" size="1" opt="offset"/>
4330
 
  </ins>
4331
 
 
4332
 
  <ins name="+FEXP.f32" mask="0xfffc0" exact="0x66ac0" table="true">
4333
 
    <src start="0" mask="0xf7"/>
4334
 
    <src start="3" mask="0xf7"/>
4335
 
  </ins>
4336
 
 
4337
 
  <ins name="+FEXP_TABLE.u4" mask="0xfffe0" exact="0x67ac0" table="true">
4338
 
    <src start="0" mask="0xf7"/>
4339
 
    <mod name="adj" start="3" size="2">
4340
 
      <opt>none</opt>
4341
 
      <opt>small</opt>
4342
 
      <opt>low</opt>
4343
 
    </mod>
4344
 
  </ins>
4345
 
 
4346
 
  <ins name="+FLOGD.f32" mask="0xffff8" exact="0x66340" table="true">
4347
 
    <src start="0" mask="0xf7"/>
4348
 
  </ins>
4349
 
 
4350
 
  <ins name="+FLOG_TABLE.f32" table="true">
4351
 
    <src start="0" mask="0xf7"/>
4352
 
    <mod name="widen0" size="2">
4353
 
      <opt>none</opt>
4354
 
      <opt>h0</opt>
4355
 
      <opt>h1</opt>
4356
 
    </mod>
4357
 
    <mod name="mode" size="2">
4358
 
      <opt>red</opt>
4359
 
      <opt>base2</opt>
4360
 
      <opt>natural</opt>
4361
 
    </mod>
4362
 
    <mod name="precision" size="2">
4363
 
      <opt>none</opt>
4364
 
      <opt>high</opt>
4365
 
      <opt>low</opt>
4366
 
    </mod>
4367
 
    <mod name="neg0" size="1" opt="neg"/>
4368
 
    <mod name="abs0" size="1" opt="abs"/>
4369
 
    <mod name="divzero" size="1" opt="divzero"/>
4370
 
    <encoding mask="0xfffc0" exact="0x67300">
4371
 
      <and>
4372
 
        <eq left="mode" right="#red"/>
4373
 
        <eq left="widen0" right="#none"/>
4374
 
        <eq left="precision" right="#none"/>
4375
 
      </and>
4376
 
      <copy name="neg0" start="3"/>
4377
 
      <copy name="abs0" start="4"/>
4378
 
      <copy name="divzero" start="5"/>
4379
 
    </encoding>
4380
 
    <encoding mask="0xfff40" exact="0x67340">
4381
 
      <and>
4382
 
        <eq left="mode" right="#red"/>
4383
 
        <neq left="widen0" right="#none"/>
4384
 
        <eq left="precision" right="#none"/>
4385
 
      </and>
4386
 
      <copy name="neg0" start="3"/>
4387
 
      <copy name="abs0" start="4"/>
4388
 
      <copy name="divzero" start="5"/>
4389
 
      <derived start="7" size="1">
4390
 
        <eq left="widen0" right="#h0"/>
4391
 
        <eq left="widen0" right="#h1"/>
4392
 
      </derived>
4393
 
    </encoding>
4394
 
    <encoding mask="0xfffc0" exact="0x67b00">
4395
 
      <and>
4396
 
        <neq left="mode" right="#red"/>
4397
 
        <eq left="widen0" right="#none"/>
4398
 
        <eq left="precision" right="#none"/>
4399
 
        <eq left="divzero" right="#none"/>
4400
 
      </and>
4401
 
      <copy name="neg0" start="3"/>
4402
 
      <copy name="abs0" start="4"/>
4403
 
      <derived start="5" size="1">
4404
 
        <eq left="mode" right="#base2"/>
4405
 
        <eq left="mode" right="#natural"/>
4406
 
      </derived>
4407
 
    </encoding>
4408
 
    <encoding mask="0xfff40" exact="0x67b40">
4409
 
      <and>
4410
 
        <neq left="mode" right="#red"/>
4411
 
        <neq left="widen0" right="#none"/>
4412
 
        <eq left="precision" right="#none"/>
4413
 
        <eq left="divzero" right="#none"/>
4414
 
      </and>
4415
 
      <copy name="neg0" start="3"/>
4416
 
      <copy name="abs0" start="4"/>
4417
 
      <derived start="5" size="1">
4418
 
        <eq left="mode" right="#base2"/>
4419
 
        <eq left="mode" right="#natural"/>
4420
 
      </derived>
4421
 
      <derived start="7" size="1">
4422
 
        <eq left="widen0" right="#h0"/>
4423
 
        <eq left="widen0" right="#h1"/>
4424
 
      </derived>
4425
 
    </encoding>
4426
 
    <encoding mask="0xfffe0" exact="0x67ae0">
4427
 
      <and>
4428
 
        <neq left="mode" right="#red"/>
4429
 
        <eq left="widen0" right="#none"/>
4430
 
        <neq left="precision" right="#none"/>
4431
 
        <eq left="divzero" right="#none"/>
4432
 
        <eq left="abs0" right="#none"/>
4433
 
        <eq left="neg0" right="#none"/>
4434
 
      </and>
4435
 
      <derived start="3" size="1">
4436
 
        <eq left="mode" right="#natural"/>
4437
 
        <eq left="mode" right="#base2"/>
4438
 
      </derived>
4439
 
      <derived start="4" size="1">
4440
 
        <eq left="precision" right="#high"/>
4441
 
        <eq left="precision" right="#low"/>
4442
 
      </derived>
4443
 
    </encoding>
4444
 
  </ins>
4445
 
 
4446
 
  <ins name="+FMAX.f32" mask="0xf0600" exact="0x0">
4447
 
    <src start="0"/>
4448
 
    <src start="3"/>
4449
 
    <mod name="abs1" start="6" size="1" opt="abs"/>
4450
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
4451
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
4452
 
    <mod name="clamp" start="11" size="2">
4453
 
      <opt>none</opt>
4454
 
      <opt>clamp_0_inf</opt>
4455
 
      <opt>clamp_m1_1</opt>
4456
 
      <opt>clamp_0_1</opt>
4457
 
    </mod>
4458
 
    <mod name="sem" start="13" size="2" default="nan_suppress">
4459
 
      <opt>nan_suppress</opt>
4460
 
      <opt>nan_propagate</opt>
4461
 
      <opt>c</opt>
4462
 
      <opt>inverse_c</opt>
4463
 
    </mod>
4464
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
4465
 
  </ins>
4466
 
 
4467
 
  <ins name="+FMAX.v2f16" mask="0xf8000" exact="0x80000">
4468
 
    <src start="0"/>
4469
 
    <src start="3"/>
4470
 
    <mod name="abs0" size="1" opt="abs"/>
4471
 
    <mod name="abs1" size="1" opt="abs"/>
4472
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
4473
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
4474
 
    <mod name="swz0" start="9" size="2" default="h01">
4475
 
      <opt>h00</opt>
4476
 
      <opt>h10</opt>
4477
 
      <opt>h01</opt>
4478
 
      <opt>h11</opt>
4479
 
    </mod>
4480
 
    <mod name="swz1" start="11" size="2" default="h01">
4481
 
      <opt>h00</opt>
4482
 
      <opt>h10</opt>
4483
 
      <opt>h01</opt>
4484
 
      <opt>h11</opt>
4485
 
    </mod>
4486
 
    <mod name="sem" start="13" size="2" default="nan_suppress">
4487
 
      <opt>nan_suppress</opt>
4488
 
      <opt>nan_propagate</opt>
4489
 
      <opt>c</opt>
4490
 
      <opt>inverse_c</opt>
4491
 
    </mod>
4492
 
    <derived start="6" size="1">
4493
 
      <or>
4494
 
        <and>
4495
 
          <eq left="abs0" right="#abs"/>
4496
 
          <eq left="abs1" right="#none"/>
4497
 
          <eq left="ordering" right="#gt"/>
4498
 
        </and>
4499
 
        <and>
4500
 
          <eq left="abs0" right="#none"/>
4501
 
          <eq left="abs1" right="#none"/>
4502
 
          <neq left="ordering" right="#gt"/>
4503
 
        </and>
4504
 
      </or>
4505
 
      <or>
4506
 
        <and>
4507
 
          <eq left="abs0" right="#abs"/>
4508
 
          <eq left="abs1" right="#abs"/>
4509
 
          <eq left="ordering" right="#gt"/>
4510
 
        </and>
4511
 
        <and>
4512
 
          <eq left="abs0" right="#abs"/>
4513
 
          <eq left="abs1" right="#none"/>
4514
 
          <neq left="ordering" right="#gt"/>
4515
 
        </and>
4516
 
      </or>
4517
 
    </derived>
4518
 
    <swap left="0" right="1">
4519
 
      <or>
4520
 
        <and>
4521
 
          <eq left="abs0" right="#none"/>
4522
 
          <eq left="ordering" right="#gt"/>
4523
 
        </and>
4524
 
        <and>
4525
 
          <eq left="abs1" right="#abs"/>
4526
 
          <neq left="ordering" right="#gt"/>
4527
 
        </and>
4528
 
      </or>
4529
 
      <rewrite name="sem">
4530
 
        <map from="c" to="inverse_c"/>
4531
 
        <map from="inverse_c" to="c"/>
4532
 
      </rewrite>
4533
 
    </swap>
4534
 
  </ins>
4535
 
 
4536
 
  <ins name="+FMIN.f32" mask="0xf0600" exact="0x10000">
4537
 
    <src start="0"/>
4538
 
    <src start="3"/>
4539
 
    <mod name="abs1" start="6" size="1" opt="abs"/>
4540
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
4541
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
4542
 
    <mod name="clamp" start="11" size="2">
4543
 
      <opt>none</opt>
4544
 
      <opt>clamp_0_inf</opt>
4545
 
      <opt>clamp_m1_1</opt>
4546
 
      <opt>clamp_0_1</opt>
4547
 
    </mod>
4548
 
    <mod name="sem" start="13" size="2" default="nan_suppress">
4549
 
      <opt>nan_suppress</opt>
4550
 
      <opt>nan_propagate</opt>
4551
 
      <opt>c</opt>
4552
 
      <opt>inverse_c</opt>
4553
 
    </mod>
4554
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
4555
 
  </ins>
4556
 
 
4557
 
  <ins name="+FMIN.v2f16" mask="0xf8000" exact="0x90000">
4558
 
    <src start="0"/>
4559
 
    <src start="3"/>
4560
 
    <mod name="abs0" size="1" opt="abs"/>
4561
 
    <mod name="abs1" size="1" opt="abs"/>
4562
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
4563
 
    <mod name="neg1" start="8" size="1" opt="neg"/>
4564
 
    <mod name="swz0" start="9" size="2" default="h01">
4565
 
      <opt>h00</opt>
4566
 
      <opt>h10</opt>
4567
 
      <opt>h01</opt>
4568
 
      <opt>h11</opt>
4569
 
    </mod>
4570
 
    <mod name="swz1" start="11" size="2" default="h01">
4571
 
      <opt>h00</opt>
4572
 
      <opt>h10</opt>
4573
 
      <opt>h01</opt>
4574
 
      <opt>h11</opt>
4575
 
    </mod>
4576
 
    <mod name="sem" start="13" size="2" default="nan_suppress">
4577
 
      <opt>nan_suppress</opt>
4578
 
      <opt>nan_propagate</opt>
4579
 
      <opt>c</opt>
4580
 
      <opt>inverse_c</opt>
4581
 
    </mod>
4582
 
    <derived start="6" size="1">
4583
 
      <or>
4584
 
        <and>
4585
 
          <eq left="abs0" right="#abs"/>
4586
 
          <eq left="abs1" right="#none"/>
4587
 
          <eq left="ordering" right="#gt"/>
4588
 
        </and>
4589
 
        <and>
4590
 
          <eq left="abs0" right="#none"/>
4591
 
          <eq left="abs1" right="#none"/>
4592
 
          <neq left="ordering" right="#gt"/>
4593
 
        </and>
4594
 
      </or>
4595
 
      <or>
4596
 
        <and>
4597
 
          <eq left="abs0" right="#abs"/>
4598
 
          <eq left="abs1" right="#abs"/>
4599
 
          <eq left="ordering" right="#gt"/>
4600
 
        </and>
4601
 
        <and>
4602
 
          <eq left="abs0" right="#abs"/>
4603
 
          <eq left="abs1" right="#none"/>
4604
 
          <neq left="ordering" right="#gt"/>
4605
 
        </and>
4606
 
      </or>
4607
 
    </derived>
4608
 
    <swap left="0" right="1">
4609
 
      <or>
4610
 
        <and>
4611
 
          <eq left="abs0" right="#none"/>
4612
 
          <eq left="ordering" right="#gt"/>
4613
 
        </and>
4614
 
        <and>
4615
 
          <eq left="abs1" right="#abs"/>
4616
 
          <neq left="ordering" right="#gt"/>
4617
 
        </and>
4618
 
      </or>
4619
 
      <rewrite name="sem">
4620
 
        <map from="c" to="inverse_c"/>
4621
 
        <map from="inverse_c" to="c"/>
4622
 
      </rewrite>
4623
 
    </swap>
4624
 
  </ins>
4625
 
 
4626
 
  <ins name="+FPCLASS.f16" mask="0xffff0" exact="0x67c40" table="true">
4627
 
    <src start="0" mask="0xf7"/>
4628
 
    <mod name="lane0" start="3" size="1" default="h0">
4629
 
      <opt>h0</opt>
4630
 
      <opt>h1</opt>
4631
 
    </mod>
4632
 
  </ins>
4633
 
 
4634
 
  <ins name="+FPCLASS.f32" mask="0xffff8" exact="0x67c50" table="true">
4635
 
    <src start="0" mask="0xf7"/>
4636
 
  </ins>
4637
 
 
4638
 
  <ins name="+FPOW_SC_APPLY" mask="0xfffc0" exact="0x75080">
4639
 
    <src start="0"/>
4640
 
    <src start="3"/>
4641
 
  </ins>
4642
 
 
4643
 
  <ins name="+FPOW_SC_DET.f16" table="true">
4644
 
    <src start="0" mask="0xf7"/>
4645
 
    <src start="3" mask="0xf7"/>
4646
 
    <mod name="func" size="2">
4647
 
      <opt>pow</opt>
4648
 
      <opt>powr</opt>
4649
 
      <opt>pown</opt>
4650
 
      <opt>rootn</opt>
4651
 
    </mod>
4652
 
    <mod name="lane1" size="2">
4653
 
      <opt>h0</opt>
4654
 
      <opt>h1</opt>
4655
 
      <opt>none</opt>
4656
 
    </mod>
4657
 
    <mod name="lane0" start="7" size="1" default="h0">
4658
 
      <opt>h0</opt>
4659
 
      <opt>h1</opt>
4660
 
    </mod>
4661
 
    <encoding mask="0xffe00" exact="0x67400">
4662
 
      <or>
4663
 
        <eq left="func" right="#pow"/>
4664
 
        <eq left="func" right="#powr"/>
4665
 
      </or>
4666
 
      <derived start="6" size="1">
4667
 
        <or>
4668
 
          <eq alias="true" left="lane1" right="#none"/>
4669
 
          <eq left="lane1" right="#h0"/>
4670
 
        </or>
4671
 
        <eq left="lane1" right="#h1"/>
4672
 
      </derived>
4673
 
      <derived start="8" size="1">
4674
 
        <eq left="func" right="#pow"/>
4675
 
        <eq left="func" right="#powr"/>
4676
 
      </derived>
4677
 
    </encoding>
4678
 
    <encoding mask="0xffe40" exact="0x67600">
4679
 
      <and>
4680
 
        <or>
4681
 
          <eq left="func" right="#pown"/>
4682
 
          <eq left="func" right="#rootn"/>
4683
 
        </or>
4684
 
        <eq left="lane1" right="#none"/>
4685
 
      </and>
4686
 
      <derived start="8" size="1">
4687
 
        <eq left="func" right="#pown"/>
4688
 
        <eq left="func" right="#rootn"/>
4689
 
      </derived>
4690
 
    </encoding>
4691
 
  </ins>
4692
 
 
4693
 
  <ins name="+FPOW_SC_DET.f32" mask="0xffe40" exact="0x67640" table="true">
4694
 
    <src start="0" mask="0xf7"/>
4695
 
    <src start="3" mask="0xf7"/>
4696
 
    <mod name="func" start="7" size="2">
4697
 
      <opt>pow</opt>
4698
 
      <opt>powr</opt>
4699
 
      <opt>pown</opt>
4700
 
      <opt>rootn</opt>
4701
 
    </mod>
4702
 
  </ins>
4703
 
 
4704
 
  <ins name="+FRCBRT_APPROX_A.f32" unused="true" table="true">
4705
 
    <src start="0" mask="0xf7"/>
4706
 
    <mod name="widen0" size="2">
4707
 
      <opt>none</opt>
4708
 
      <opt>h0</opt>
4709
 
      <opt>h1</opt>
4710
 
    </mod>
4711
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4712
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4713
 
    <mod name="divzero" start="5" size="1" opt="divzero"/>
4714
 
    <encoding mask="0xfffc0" exact="0x67200">
4715
 
      <eq left="widen0" right="#none"/>
4716
 
    </encoding>
4717
 
    <encoding mask="0xfff40" exact="0x67240">
4718
 
      <neq left="widen0" right="#none"/>
4719
 
      <derived start="7" size="1">
4720
 
        <eq left="widen0" right="#h0"/>
4721
 
        <eq left="widen0" right="#h1"/>
4722
 
      </derived>
4723
 
    </encoding>
4724
 
  </ins>
4725
 
 
4726
 
  <ins name="+FRCBRT_APPROX_B.f32" mask="0xffff8" exact="0x67ab0" unused="true" table="true">
4727
 
    <src start="0" mask="0xf7"/>
4728
 
  </ins>
4729
 
 
4730
 
  <ins name="+FRCBRT_APPROX_C.f32" mask="0xffff8" exact="0x67ab8" unused="true" table="true">
4731
 
    <src start="0" mask="0xf7"/>
4732
 
  </ins>
4733
 
 
4734
 
  <ins name="+FRCP.f16" mask="0xffec0" exact="0x67080" table="true">
4735
 
    <src start="0" mask="0xf7"/>
4736
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4737
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4738
 
    <mod name="divzero" start="5" size="1" opt="divzero"/>
4739
 
    <mod name="lane0" start="8" size="1" default="h0">
4740
 
      <opt>h0</opt>
4741
 
      <opt>h1</opt>
4742
 
    </mod>
4743
 
  </ins>
4744
 
 
4745
 
  <ins name="+FRCP.f32" mask="0xfffa0" exact="0x66000" table="true">
4746
 
    <src start="0" mask="0xf7"/>
4747
 
    <mod name="widen0" size="2">
4748
 
      <opt>none</opt>
4749
 
    </mod>
4750
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4751
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4752
 
    <derived start="6" size="1">
4753
 
      <eq left="widen0" right="#none"/>
4754
 
      <reserved/>
4755
 
    </derived>
4756
 
  </ins>
4757
 
 
4758
 
  <ins name="+FRCP_APPROX.f32" table="true">
4759
 
    <src start="0" mask="0xf7"/>
4760
 
    <mod name="widen0" size="2">
4761
 
      <opt>none</opt>
4762
 
      <opt>h0</opt>
4763
 
      <opt>h1</opt>
4764
 
    </mod>
4765
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4766
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4767
 
    <mod name="divzero" start="5" size="1" opt="divzero"/>
4768
 
    <encoding mask="0xfffc0" exact="0x67000">
4769
 
      <eq left="widen0" right="#none"/>
4770
 
    </encoding>
4771
 
    <encoding mask="0xfff40" exact="0x67040">
4772
 
      <neq left="widen0" right="#none"/>
4773
 
      <derived start="7" size="1">
4774
 
        <eq left="widen0" right="#h0"/>
4775
 
        <eq left="widen0" right="#h1"/>
4776
 
      </derived>
4777
 
    </encoding>
4778
 
  </ins>
4779
 
 
4780
 
  <ins name="+FREXPE.f32">
4781
 
    <src start="0"/>
4782
 
    <mod name="neg0" size="1" opt="neg"/>
4783
 
    <mod name="sqrt" size="1" opt="sqrt"/>
4784
 
    <mod name="log" size="1" opt="log"/>
4785
 
    <mod name="widen0" start="3" size="2">
4786
 
      <reserved/>
4787
 
      <opt>none</opt>
4788
 
      <opt>h0</opt>
4789
 
      <opt>h1</opt>
4790
 
    </mod>
4791
 
    <encoding mask="0xffea0" exact="0x3dc20">
4792
 
      <eq left="log" right="#none"/>
4793
 
      <copy name="neg0" start="6"/>
4794
 
      <copy name="sqrt" start="8"/>
4795
 
    </encoding>
4796
 
    <encoding mask="0xfffe0" exact="0x3de20">
4797
 
      <and>
4798
 
        <eq left="log" right="#log"/>
4799
 
        <eq left="sqrt" right="#none"/>
4800
 
        <eq left="neg0" right="#none"/>
4801
 
      </and>
4802
 
    </encoding>
4803
 
  </ins>
4804
 
 
4805
 
  <ins name="+FREXPE.v2f16">
4806
 
    <src start="0"/>
4807
 
    <mod name="neg0" size="1" opt="neg"/>
4808
 
    <mod name="sqrt" size="1" opt="sqrt"/>
4809
 
    <mod name="log" size="1" opt="log"/>
4810
 
    <mod name="swz0" start="3" size="2" default="h01">
4811
 
      <opt>h00</opt>
4812
 
      <opt>h10</opt>
4813
 
      <opt>h01</opt>
4814
 
      <opt>h11</opt>
4815
 
    </mod>
4816
 
    <encoding mask="0xffea0" exact="0x3dc00">
4817
 
      <eq left="log" right="#none"/>
4818
 
      <copy name="neg0" start="6"/>
4819
 
      <copy name="sqrt" start="8"/>
4820
 
    </encoding>
4821
 
    <encoding mask="0xfffe0" exact="0x3de00">
4822
 
      <and>
4823
 
        <eq left="log" right="#log"/>
4824
 
        <eq left="sqrt" right="#none"/>
4825
 
        <eq left="neg0" right="#none"/>
4826
 
      </and>
4827
 
    </encoding>
4828
 
  </ins>
4829
 
 
4830
 
  <ins name="+FREXPM.f32">
4831
 
    <src start="0"/>
4832
 
    <mod name="abs0" start="6" size="1" opt="abs"/>
4833
 
    <mod name="sqrt" size="1" opt="sqrt"/>
4834
 
    <mod name="log" size="1" opt="log"/>
4835
 
    <mod name="widen0" start="3" size="2">
4836
 
      <reserved/>
4837
 
      <opt>none</opt>
4838
 
      <opt>h0</opt>
4839
 
      <opt>h1</opt>
4840
 
    </mod>
4841
 
    <mod name="neg0" size="1" opt="neg"/>
4842
 
    <encoding mask="0xfff20" exact="0x3db20">
4843
 
      <and>
4844
 
        <eq left="log" right="#none"/>
4845
 
        <eq left="neg0" right="#none"/>
4846
 
      </and>
4847
 
      <copy name="sqrt" start="7"/>
4848
 
    </encoding>
4849
 
    <encoding mask="0xfff20" exact="0x3da20">
4850
 
      <and>
4851
 
        <eq left="log" right="#log"/>
4852
 
        <eq left="sqrt" right="#none"/>
4853
 
      </and>
4854
 
      <copy name="neg0" start="7"/>
4855
 
    </encoding>
4856
 
  </ins>
4857
 
 
4858
 
  <ins name="+FREXPM.v2f16">
4859
 
    <src start="0"/>
4860
 
    <mod name="abs0" start="6" size="1" opt="abs"/>
4861
 
    <mod name="sqrt" size="1" opt="sqrt"/>
4862
 
    <mod name="log" size="1" opt="log"/>
4863
 
    <mod name="swz0" start="3" size="2" default="h01">
4864
 
      <opt>h00</opt>
4865
 
      <opt>h10</opt>
4866
 
      <opt>h01</opt>
4867
 
      <opt>h11</opt>
4868
 
    </mod>
4869
 
    <mod name="neg0" size="1" opt="neg"/>
4870
 
    <encoding mask="0xfff20" exact="0x3db00">
4871
 
      <and>
4872
 
        <eq left="log" right="#none"/>
4873
 
        <eq left="neg0" right="#none"/>
4874
 
      </and>
4875
 
      <copy name="sqrt" start="7"/>
4876
 
    </encoding>
4877
 
    <encoding mask="0xfff20" exact="0x3da00">
4878
 
      <and>
4879
 
        <eq left="log" right="#log"/>
4880
 
        <eq left="sqrt" right="#none"/>
4881
 
      </and>
4882
 
      <copy name="neg0" start="7"/>
4883
 
    </encoding>
4884
 
  </ins>
4885
 
 
4886
 
  <ins name="+FROUND.f32" mask="0xff860" exact="0x3e820">
4887
 
    <src start="0"/>
4888
 
    <mod name="abs0" start="7" size="1" opt="abs"/>
4889
 
    <mod name="neg0" start="8" size="1" opt="neg"/>
4890
 
    <mod name="widen0" start="3" size="2">
4891
 
      <reserved/>
4892
 
      <opt>none</opt>
4893
 
      <opt>h0</opt>
4894
 
      <opt>h1</opt>
4895
 
    </mod>
4896
 
    <mod name="round" start="9" size="2">
4897
 
      <opt>none</opt>
4898
 
      <opt>rtp</opt>
4899
 
      <opt>rtn</opt>
4900
 
      <opt>rtz</opt>
4901
 
    </mod>
4902
 
  </ins>
4903
 
 
4904
 
  <ins name="+FROUND.v2f16" mask="0xff860" exact="0x3e800">
4905
 
    <src start="0"/>
4906
 
    <mod name="abs0" start="7" size="1" opt="abs"/>
4907
 
    <mod name="neg0" start="8" size="1" opt="neg"/>
4908
 
    <mod name="swz0" start="3" size="2" default="h01">
4909
 
      <opt>h00</opt>
4910
 
      <opt>h10</opt>
4911
 
      <opt>h01</opt>
4912
 
      <opt>h11</opt>
4913
 
    </mod>
4914
 
    <mod name="round" start="9" size="2">
4915
 
      <opt>none</opt>
4916
 
      <opt>rtp</opt>
4917
 
      <opt>rtn</opt>
4918
 
      <opt>rtz</opt>
4919
 
    </mod>
4920
 
  </ins>
4921
 
 
4922
 
  <ins name="+FRSQ.f16" mask="0xffec0" exact="0x67280" table="true">
4923
 
    <src start="0" mask="0xf7"/>
4924
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4925
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4926
 
    <mod name="divzero" start="5" size="1" opt="divzero"/>
4927
 
    <mod name="lane0" start="8" size="1" default="h0">
4928
 
      <opt>h0</opt>
4929
 
      <opt>h1</opt>
4930
 
    </mod>
4931
 
  </ins>
4932
 
 
4933
 
  <ins name="+FRSQ.f32" mask="0xfffa0" exact="0x66100" table="true">
4934
 
    <src start="0" mask="0xf7"/>
4935
 
    <mod name="widen0" size="2">
4936
 
      <opt>none</opt>
4937
 
    </mod>
4938
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4939
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4940
 
    <derived start="6" size="1">
4941
 
      <eq left="widen0" right="#none"/>
4942
 
      <reserved/>
4943
 
    </derived>
4944
 
  </ins>
4945
 
 
4946
 
  <ins name="+FRSQ_APPROX.f32" table="true">
4947
 
    <src start="0" mask="0xf7"/>
4948
 
    <mod name="widen0" size="2">
4949
 
      <opt>none</opt>
4950
 
      <opt>h0</opt>
4951
 
      <opt>h1</opt>
4952
 
    </mod>
4953
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
4954
 
    <mod name="abs0" start="4" size="1" opt="abs"/>
4955
 
    <mod name="divzero" start="5" size="1" opt="divzero"/>
4956
 
    <encoding mask="0xfffc0" exact="0x67100">
4957
 
      <eq left="widen0" right="#none"/>
4958
 
    </encoding>
4959
 
    <encoding mask="0xfff40" exact="0x67140">
4960
 
      <neq left="widen0" right="#none"/>
4961
 
      <derived start="7" size="1">
4962
 
        <eq left="widen0" right="#h0"/>
4963
 
        <eq left="widen0" right="#h1"/>
4964
 
      </derived>
4965
 
    </encoding>
4966
 
  </ins>
4967
 
 
4968
 
  <ins name="+FSINCOS_OFFSET.u6" mask="0xffff0" exact="0x67aa0" table="true">
4969
 
    <src start="0" mask="0xf7"/>
4970
 
    <mod name="scale" start="3" size="1" opt="scale"/>
4971
 
  </ins>
4972
 
 
4973
 
  <ins name="+FSIN_TABLE.u6" mask="0xfffe8" exact="0x67a80" table="true">
4974
 
    <src start="0" mask="0xf7"/>
4975
 
    <mod name="offset" start="4" size="1" opt="offset"/>
4976
 
  </ins>
4977
 
 
4978
 
  <ins name="+HADD.s32" mask="0xfefc0" exact="0xbc640">
4979
 
    <src start="0"/>
4980
 
    <src start="3"/>
4981
 
    <mod name="round" start="12" size="1" default="rtn">
4982
 
      <opt>rtn</opt>
4983
 
      <opt>rtp</opt>
4984
 
    </mod>
4985
 
  </ins>
4986
 
 
4987
 
  <ins name="+HADD.u32" mask="0xfefc0" exact="0xbc6c0">
4988
 
    <src start="0"/>
4989
 
    <src start="3"/>
4990
 
    <mod name="round" start="12" size="1" default="rtn">
4991
 
      <opt>rtn</opt>
4992
 
      <opt>rtp</opt>
4993
 
    </mod>
4994
 
  </ins>
4995
 
 
4996
 
  <ins name="+HADD.v2s16" mask="0xfe9c0" exact="0xbc840">
4997
 
    <src start="0"/>
4998
 
    <src start="3"/>
4999
 
    <mod name="round" start="12" size="1" default="rtn">
5000
 
      <opt>rtn</opt>
5001
 
      <opt>rtp</opt>
5002
 
    </mod>
5003
 
    <mod name="swap1" start="9" size="1" default="h01">
5004
 
      <opt>h01</opt>
5005
 
      <opt>h10</opt>
5006
 
    </mod>
5007
 
    <mod name="swap0" start="10" size="1" default="h01">
5008
 
      <opt>h01</opt>
5009
 
      <opt>h10</opt>
5010
 
    </mod>
5011
 
  </ins>
5012
 
 
5013
 
  <ins name="+HADD.v2u16" mask="0xfe9c0" exact="0xbc8c0">
5014
 
    <src start="0"/>
5015
 
    <src start="3"/>
5016
 
    <mod name="round" start="12" size="1" default="rtn">
5017
 
      <opt>rtn</opt>
5018
 
      <opt>rtp</opt>
5019
 
    </mod>
5020
 
    <mod name="swap1" start="9" size="1" default="h01">
5021
 
      <opt>h01</opt>
5022
 
      <opt>h10</opt>
5023
 
    </mod>
5024
 
    <mod name="swap0" start="10" size="1" default="h01">
5025
 
      <opt>h01</opt>
5026
 
      <opt>h10</opt>
5027
 
    </mod>
5028
 
  </ins>
5029
 
 
5030
 
  <ins name="+HADD.v4s8" mask="0xfefc0" exact="0xbc440">
5031
 
    <src start="0"/>
5032
 
    <src start="3"/>
5033
 
    <mod name="round" start="12" size="1" default="rtn">
5034
 
      <opt>rtn</opt>
5035
 
      <opt>rtp</opt>
5036
 
    </mod>
5037
 
  </ins>
5038
 
 
5039
 
  <ins name="+HADD.v4u8" mask="0xfefc0" exact="0xbc4c0">
5040
 
    <src start="0"/>
5041
 
    <src start="3"/>
5042
 
    <mod name="round" start="12" size="1" default="rtn">
5043
 
      <opt>rtn</opt>
5044
 
      <opt>rtp</opt>
5045
 
    </mod>
5046
 
  </ins>
5047
 
 
5048
 
  <ins name="+IABS.s32" mask="0xffff8" exact="0x3dea0">
5049
 
    <src start="0"/>
5050
 
  </ins>
5051
 
 
5052
 
  <ins name="+IABS.v2s16" mask="0xfffc8" exact="0x3de88">
5053
 
    <src start="0"/>
5054
 
    <mod name="swz0" start="4" size="2" default="h01">
5055
 
      <opt>h00</opt>
5056
 
      <opt>h10</opt>
5057
 
      <opt>h01</opt>
5058
 
      <opt>h11</opt>
5059
 
    </mod>
5060
 
  </ins>
5061
 
 
5062
 
  <ins name="+IABS.v4s8" mask="0xffff8" exact="0x3deb0">
5063
 
    <src start="0"/>
5064
 
  </ins>
5065
 
 
5066
 
  <ins name="+IADD.s32">
5067
 
    <src start="0"/>
5068
 
    <src start="3"/>
5069
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5070
 
    <mod name="lanes1" size="3">
5071
 
      <opt>none</opt>
5072
 
      <opt>h0</opt>
5073
 
      <opt>h1</opt>
5074
 
      <opt>b0</opt>
5075
 
      <opt>b1</opt>
5076
 
      <opt>b2</opt>
5077
 
      <opt>b3</opt>
5078
 
    </mod>
5079
 
    <encoding mask="0xffec0" exact="0xbc600">
5080
 
      <eq left="lanes1" right="#none"/>
5081
 
    </encoding>
5082
 
    <encoding mask="0xffcc0" exact="0xbec00">
5083
 
      <or>
5084
 
        <eq left="lanes1" right="#h0"/>
5085
 
        <eq left="lanes1" right="#h1"/>
5086
 
      </or>
5087
 
      <derived start="9" size="1">
5088
 
        <eq left="lanes1" right="#h0"/>
5089
 
        <eq left="lanes1" right="#h1"/>
5090
 
      </derived>
5091
 
    </encoding>
5092
 
    <encoding mask="0xff8c0" exact="0xbe000">
5093
 
      <or>
5094
 
        <eq left="lanes1" right="#b0"/>
5095
 
        <eq left="lanes1" right="#b1"/>
5096
 
        <eq left="lanes1" right="#b2"/>
5097
 
        <eq left="lanes1" right="#b3"/>
5098
 
      </or>
5099
 
      <derived start="9" size="2">
5100
 
        <eq left="lanes1" right="#b0"/>
5101
 
        <eq left="lanes1" right="#b1"/>
5102
 
        <eq left="lanes1" right="#b2"/>
5103
 
        <eq left="lanes1" right="#b3"/>
5104
 
      </derived>
5105
 
    </encoding>
5106
 
  </ins>
5107
 
 
5108
 
  <ins name="+IADD.u32">
5109
 
    <src start="0"/>
5110
 
    <src start="3"/>
5111
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5112
 
    <mod name="lanes1" size="3">
5113
 
      <opt>none</opt>
5114
 
      <opt>h0</opt>
5115
 
      <opt>h1</opt>
5116
 
      <opt>b0</opt>
5117
 
      <opt>b1</opt>
5118
 
      <opt>b2</opt>
5119
 
      <opt>b3</opt>
5120
 
    </mod>
5121
 
    <encoding mask="0xffe40" exact="0xbc600">
5122
 
      <eq left="lanes1" right="#none"/>
5123
 
      <derived start="7" size="1">
5124
 
        <and alias="true">
5125
 
          <eq left="saturate" right="#none"/>
5126
 
          <eq left="lanes1" right="#none"/>
5127
 
        </and>
5128
 
        <or>
5129
 
          <eq left="saturate" right="#sat"/>
5130
 
          <neq left="lanes1" right="#none"/>
5131
 
        </or>
5132
 
      </derived>
5133
 
    </encoding>
5134
 
    <encoding mask="0xffc40" exact="0xbec00">
5135
 
      <or>
5136
 
        <eq left="lanes1" right="#h0"/>
5137
 
        <eq left="lanes1" right="#h1"/>
5138
 
      </or>
5139
 
      <derived start="7" size="1">
5140
 
        <and alias="true">
5141
 
          <eq left="saturate" right="#none"/>
5142
 
          <eq left="lanes1" right="#none"/>
5143
 
        </and>
5144
 
        <or>
5145
 
          <eq left="saturate" right="#sat"/>
5146
 
          <neq left="lanes1" right="#none"/>
5147
 
        </or>
5148
 
      </derived>
5149
 
      <derived start="9" size="1">
5150
 
        <eq left="lanes1" right="#h0"/>
5151
 
        <eq left="lanes1" right="#h1"/>
5152
 
      </derived>
5153
 
    </encoding>
5154
 
    <encoding mask="0xff840" exact="0xbe000">
5155
 
      <or>
5156
 
        <eq left="lanes1" right="#b0"/>
5157
 
        <eq left="lanes1" right="#b1"/>
5158
 
        <eq left="lanes1" right="#b2"/>
5159
 
        <eq left="lanes1" right="#b3"/>
5160
 
      </or>
5161
 
      <derived start="7" size="1">
5162
 
        <and alias="true">
5163
 
          <eq left="saturate" right="#none"/>
5164
 
          <eq left="lanes1" right="#none"/>
5165
 
        </and>
5166
 
        <or>
5167
 
          <eq left="saturate" right="#sat"/>
5168
 
          <neq left="lanes1" right="#none"/>
5169
 
        </or>
5170
 
      </derived>
5171
 
      <derived start="9" size="2">
5172
 
        <eq left="lanes1" right="#b0"/>
5173
 
        <eq left="lanes1" right="#b1"/>
5174
 
        <eq left="lanes1" right="#b2"/>
5175
 
        <eq left="lanes1" right="#b3"/>
5176
 
      </derived>
5177
 
    </encoding>
5178
 
  </ins>
5179
 
 
5180
 
  <ins name="+IADD.v2s16">
5181
 
    <src start="0"/>
5182
 
    <src start="3"/>
5183
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5184
 
    <mod name="lanes0" size="1" default="h01">
5185
 
      <opt>h01</opt>
5186
 
      <opt>h10</opt>
5187
 
    </mod>
5188
 
    <mod name="lanes1" size="3" default="h01">
5189
 
      <opt>h01</opt>
5190
 
      <opt>h10</opt>
5191
 
      <opt>h00</opt>
5192
 
      <opt>h11</opt>
5193
 
      <opt>b01</opt>
5194
 
      <opt>b23</opt>
5195
 
    </mod>
5196
 
    <encoding mask="0xff8c0" exact="0xbc800">
5197
 
      <and>
5198
 
        <or>
5199
 
          <eq left="lanes0" right="#h01"/>
5200
 
          <eq left="lanes0" right="#h10"/>
5201
 
        </or>
5202
 
        <or>
5203
 
          <eq left="lanes1" right="#h01"/>
5204
 
          <eq left="lanes1" right="#h10"/>
5205
 
        </or>
5206
 
      </and>
5207
 
      <derived start="9" size="1">
5208
 
        <eq left="lanes1" right="#h01"/>
5209
 
        <eq left="lanes1" right="#h10"/>
5210
 
      </derived>
5211
 
      <derived start="10" size="1">
5212
 
        <eq left="lanes0" right="#h01"/>
5213
 
        <eq left="lanes0" right="#h10"/>
5214
 
      </derived>
5215
 
    </encoding>
5216
 
    <encoding mask="0xffcc0" exact="0xbec40">
5217
 
      <and>
5218
 
        <eq left="lanes0" right="#h01"/>
5219
 
        <or>
5220
 
          <eq left="lanes1" right="#h00"/>
5221
 
          <eq left="lanes1" right="#h11"/>
5222
 
        </or>
5223
 
      </and>
5224
 
      <derived start="9" size="1">
5225
 
        <eq left="lanes1" right="#h00"/>
5226
 
        <eq left="lanes1" right="#h11"/>
5227
 
      </derived>
5228
 
    </encoding>
5229
 
    <encoding mask="0xffcc0" exact="0xbe800">
5230
 
      <and>
5231
 
        <eq left="lanes0" right="#h01"/>
5232
 
        <or>
5233
 
          <eq left="lanes1" right="#b01"/>
5234
 
          <eq left="lanes1" right="#b23"/>
5235
 
        </or>
5236
 
      </and>
5237
 
      <derived start="9" size="1">
5238
 
        <eq left="lanes1" right="#b01"/>
5239
 
        <eq left="lanes1" right="#b23"/>
5240
 
      </derived>
5241
 
    </encoding>
5242
 
  </ins>
5243
 
 
5244
 
  <ins name="+IADD.v2u16">
5245
 
    <src start="0"/>
5246
 
    <src start="3"/>
5247
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5248
 
    <mod name="lanes0" size="1" default="h01">
5249
 
      <opt>h01</opt>
5250
 
      <opt>h10</opt>
5251
 
    </mod>
5252
 
    <mod name="lanes1" size="3" default="h01">
5253
 
      <opt>h01</opt>
5254
 
      <opt>h10</opt>
5255
 
      <opt>h00</opt>
5256
 
      <opt>h11</opt>
5257
 
      <opt>b01</opt>
5258
 
      <opt>b23</opt>
5259
 
    </mod>
5260
 
    <encoding mask="0xff840" exact="0xbc800">
5261
 
      <and>
5262
 
        <or>
5263
 
          <eq left="lanes0" right="#h01"/>
5264
 
          <eq left="lanes0" right="#h10"/>
5265
 
        </or>
5266
 
        <or>
5267
 
          <eq left="lanes1" right="#h01"/>
5268
 
          <eq left="lanes1" right="#h10"/>
5269
 
        </or>
5270
 
      </and>
5271
 
      <derived start="7" size="1">
5272
 
        <and alias="true">
5273
 
          <eq left="saturate" right="#none"/>
5274
 
          <neq left="lanes1" right="#b01"/>
5275
 
          <neq left="lanes1" right="#b23"/>
5276
 
        </and>
5277
 
        <or>
5278
 
          <eq left="saturate" right="#sat"/>
5279
 
          <eq left="lanes1" right="#b01"/>
5280
 
          <eq left="lanes1" right="#b23"/>
5281
 
        </or>
5282
 
      </derived>
5283
 
      <derived start="9" size="1">
5284
 
        <eq left="lanes1" right="#h01"/>
5285
 
        <eq left="lanes1" right="#h10"/>
5286
 
      </derived>
5287
 
      <derived start="10" size="1">
5288
 
        <eq left="lanes0" right="#h01"/>
5289
 
        <eq left="lanes0" right="#h10"/>
5290
 
      </derived>
5291
 
    </encoding>
5292
 
    <encoding mask="0xffc40" exact="0xbec40">
5293
 
      <and>
5294
 
        <eq left="lanes0" right="#h01"/>
5295
 
        <or>
5296
 
          <eq left="lanes1" right="#h00"/>
5297
 
          <eq left="lanes1" right="#h11"/>
5298
 
        </or>
5299
 
      </and>
5300
 
      <derived start="7" size="1">
5301
 
        <and alias="true">
5302
 
          <eq left="saturate" right="#none"/>
5303
 
          <neq left="lanes1" right="#b01"/>
5304
 
          <neq left="lanes1" right="#b23"/>
5305
 
        </and>
5306
 
        <or>
5307
 
          <eq left="saturate" right="#sat"/>
5308
 
          <eq left="lanes1" right="#b01"/>
5309
 
          <eq left="lanes1" right="#b23"/>
5310
 
        </or>
5311
 
      </derived>
5312
 
      <derived start="9" size="1">
5313
 
        <eq left="lanes1" right="#h00"/>
5314
 
        <eq left="lanes1" right="#h11"/>
5315
 
      </derived>
5316
 
    </encoding>
5317
 
    <encoding mask="0xffc40" exact="0xbe800">
5318
 
      <and>
5319
 
        <eq left="lanes0" right="#h01"/>
5320
 
        <or>
5321
 
          <eq left="lanes1" right="#b01"/>
5322
 
          <eq left="lanes1" right="#b23"/>
5323
 
        </or>
5324
 
      </and>
5325
 
      <derived start="7" size="1">
5326
 
        <and alias="true">
5327
 
          <eq left="saturate" right="#none"/>
5328
 
          <neq left="lanes1" right="#b01"/>
5329
 
          <neq left="lanes1" right="#b23"/>
5330
 
        </and>
5331
 
        <or>
5332
 
          <eq left="saturate" right="#sat"/>
5333
 
          <eq left="lanes1" right="#b01"/>
5334
 
          <eq left="lanes1" right="#b23"/>
5335
 
        </or>
5336
 
      </derived>
5337
 
      <derived start="9" size="1">
5338
 
        <eq left="lanes1" right="#b01"/>
5339
 
        <eq left="lanes1" right="#b23"/>
5340
 
      </derived>
5341
 
    </encoding>
5342
 
  </ins>
5343
 
 
5344
 
  <ins name="+IADD.v4s8">
5345
 
    <src start="0"/>
5346
 
    <src start="3"/>
5347
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5348
 
    <mod name="lanes0" size="3" default="b0123">
5349
 
      <opt>b0123</opt>
5350
 
    </mod>
5351
 
    <mod name="lanes1" size="3" default="b0123">
5352
 
      <opt>b0123</opt>
5353
 
      <opt>b0000</opt>
5354
 
      <opt>b1111</opt>
5355
 
      <opt>b2222</opt>
5356
 
      <opt>b3333</opt>
5357
 
      <opt>b0101</opt>
5358
 
      <opt>b2323</opt>
5359
 
    </mod>
5360
 
    <encoding mask="0xffec0" exact="0xbc400">
5361
 
      <and>
5362
 
        <eq left="lanes0" right="#b0123"/>
5363
 
        <eq left="lanes1" right="#b0123"/>
5364
 
      </and>
5365
 
    </encoding>
5366
 
    <encoding mask="0xff8c0" exact="0xbe040">
5367
 
      <and>
5368
 
        <eq left="lanes0" right="#b0123"/>
5369
 
        <or>
5370
 
          <eq left="lanes1" right="#b0000"/>
5371
 
          <eq left="lanes1" right="#b1111"/>
5372
 
          <eq left="lanes1" right="#b2222"/>
5373
 
          <eq left="lanes1" right="#b3333"/>
5374
 
        </or>
5375
 
      </and>
5376
 
      <derived start="9" size="2">
5377
 
        <eq left="lanes1" right="#b0000"/>
5378
 
        <eq left="lanes1" right="#b1111"/>
5379
 
        <eq left="lanes1" right="#b2222"/>
5380
 
        <eq left="lanes1" right="#b3333"/>
5381
 
      </derived>
5382
 
    </encoding>
5383
 
    <encoding mask="0xffcc0" exact="0xbe840">
5384
 
      <and>
5385
 
        <eq left="lanes0" right="#b0123"/>
5386
 
        <or>
5387
 
          <eq left="lanes1" right="#b0101"/>
5388
 
          <eq left="lanes1" right="#b2323"/>
5389
 
        </or>
5390
 
      </and>
5391
 
      <derived start="9" size="1">
5392
 
        <eq left="lanes1" right="#b0101"/>
5393
 
        <eq left="lanes1" right="#b2323"/>
5394
 
      </derived>
5395
 
    </encoding>
5396
 
  </ins>
5397
 
 
5398
 
  <ins name="+IADD.v4u8">
5399
 
    <src start="0"/>
5400
 
    <src start="3"/>
5401
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5402
 
    <mod name="lanes0" size="3" default="b0123">
5403
 
      <opt>b0123</opt>
5404
 
    </mod>
5405
 
    <mod name="lanes1" size="3" default="b0123">
5406
 
      <opt>b0123</opt>
5407
 
      <opt>b0000</opt>
5408
 
      <opt>b1111</opt>
5409
 
      <opt>b2222</opt>
5410
 
      <opt>b3333</opt>
5411
 
      <opt>b0101</opt>
5412
 
      <opt>b2323</opt>
5413
 
    </mod>
5414
 
    <encoding mask="0xffe40" exact="0xbc400">
5415
 
      <and>
5416
 
        <eq left="lanes0" right="#b0123"/>
5417
 
        <eq left="lanes1" right="#b0123"/>
5418
 
      </and>
5419
 
      <derived start="7" size="1">
5420
 
        <eq alias="true" left="saturate" right="#none"/>
5421
 
        <eq left="saturate" right="#sat"/>
5422
 
      </derived>
5423
 
    </encoding>
5424
 
    <encoding mask="0xff840" exact="0xbe040">
5425
 
      <and>
5426
 
        <eq left="lanes0" right="#b0123"/>
5427
 
        <or>
5428
 
          <eq left="lanes1" right="#b0000"/>
5429
 
          <eq left="lanes1" right="#b1111"/>
5430
 
          <eq left="lanes1" right="#b2222"/>
5431
 
          <eq left="lanes1" right="#b3333"/>
5432
 
        </or>
5433
 
      </and>
5434
 
      <derived start="7" size="1">
5435
 
        <eq alias="true" left="saturate" right="#none"/>
5436
 
        <eq left="saturate" right="#sat"/>
5437
 
      </derived>
5438
 
      <derived start="9" size="2">
5439
 
        <eq left="lanes1" right="#b0000"/>
5440
 
        <eq left="lanes1" right="#b1111"/>
5441
 
        <eq left="lanes1" right="#b2222"/>
5442
 
        <eq left="lanes1" right="#b3333"/>
5443
 
      </derived>
5444
 
    </encoding>
5445
 
    <encoding mask="0xffc40" exact="0xbe840">
5446
 
      <and>
5447
 
        <eq left="lanes0" right="#b0123"/>
5448
 
        <or>
5449
 
          <eq left="lanes1" right="#b0101"/>
5450
 
          <eq left="lanes1" right="#b2323"/>
5451
 
        </or>
5452
 
      </and>
5453
 
      <derived start="7" size="1">
5454
 
        <eq alias="true" left="saturate" right="#none"/>
5455
 
        <eq left="saturate" right="#sat"/>
5456
 
      </derived>
5457
 
      <derived start="9" size="1">
5458
 
        <eq left="lanes1" right="#b0101"/>
5459
 
        <eq left="lanes1" right="#b2323"/>
5460
 
      </derived>
5461
 
    </encoding>
5462
 
  </ins>
5463
 
 
5464
 
  <ins name="+ICMP.i32" mask="0xffb80" exact="0x7b300">
5465
 
    <src start="0"/>
5466
 
    <src start="3"/>
5467
 
    <mod name="result_type" start="10" size="1" default="i1">
5468
 
      <opt>i1</opt>
5469
 
      <opt>m1</opt>
5470
 
    </mod>
5471
 
    <mod name="cmpf" start="6" size="1">
5472
 
      <opt>eq</opt>
5473
 
      <opt>ne</opt>
5474
 
    </mod>
5475
 
  </ins>
5476
 
 
5477
 
  <ins name="+ICMP.s32" mask="0xffb80" exact="0x7b200">
5478
 
    <src start="0"/>
5479
 
    <src start="3"/>
5480
 
    <mod name="result_type" start="10" size="1" default="i1">
5481
 
      <opt>i1</opt>
5482
 
      <opt>m1</opt>
5483
 
    </mod>
5484
 
    <mod name="cmpf" size="2">
5485
 
      <opt>gt</opt>
5486
 
      <opt>ge</opt>
5487
 
      <opt>lt</opt>
5488
 
      <opt>le</opt>
5489
 
    </mod>
5490
 
    <derived start="6" size="1">
5491
 
      <eq left="cmpf" right="#gt"/>
5492
 
      <eq left="cmpf" right="#ge"/>
5493
 
    </derived>
5494
 
    <swap left="0" right="1">
5495
 
      <or>
5496
 
        <eq left="cmpf" right="#lt"/>
5497
 
        <eq left="cmpf" right="#le"/>
5498
 
      </or>
5499
 
      <rewrite name="cmpf">
5500
 
        <map from="lt" to="gt"/>
5501
 
        <map from="le" to="ge"/>
5502
 
      </rewrite>
5503
 
    </swap>
5504
 
  </ins>
5505
 
 
5506
 
  <ins name="+ICMP.u32" mask="0xffb80" exact="0x7b280">
5507
 
    <src start="0"/>
5508
 
    <src start="3"/>
5509
 
    <mod name="result_type" start="10" size="1" default="i1">
5510
 
      <opt>i1</opt>
5511
 
      <opt>m1</opt>
5512
 
    </mod>
5513
 
    <mod name="cmpf" size="2">
5514
 
      <opt>gt</opt>
5515
 
      <opt>ge</opt>
5516
 
      <opt>lt</opt>
5517
 
      <opt>le</opt>
5518
 
    </mod>
5519
 
    <derived start="6" size="1">
5520
 
      <eq left="cmpf" right="#gt"/>
5521
 
      <eq left="cmpf" right="#ge"/>
5522
 
    </derived>
5523
 
    <swap left="0" right="1">
5524
 
      <or>
5525
 
        <eq left="cmpf" right="#lt"/>
5526
 
        <eq left="cmpf" right="#le"/>
5527
 
      </or>
5528
 
      <rewrite name="cmpf">
5529
 
        <map from="lt" to="gt"/>
5530
 
        <map from="le" to="ge"/>
5531
 
      </rewrite>
5532
 
    </swap>
5533
 
  </ins>
5534
 
 
5535
 
  <ins name="+ICMP.v2i16" mask="0xff000" exact="0x7a000">
5536
 
    <src start="0"/>
5537
 
    <src start="3"/>
5538
 
    <mod name="swz0" start="6" size="2" default="h01">
5539
 
      <opt>h00</opt>
5540
 
      <opt>h10</opt>
5541
 
      <opt>h01</opt>
5542
 
      <opt>h11</opt>
5543
 
    </mod>
5544
 
    <mod name="swz1" start="8" size="2" default="h01">
5545
 
      <opt>h00</opt>
5546
 
      <opt>h10</opt>
5547
 
      <opt>h01</opt>
5548
 
      <opt>h11</opt>
5549
 
    </mod>
5550
 
    <mod name="result_type" start="10" size="1" default="i1">
5551
 
      <opt>i1</opt>
5552
 
      <opt>m1</opt>
5553
 
    </mod>
5554
 
    <mod name="cmpf" start="11" size="1">
5555
 
      <opt>eq</opt>
5556
 
      <opt>ne</opt>
5557
 
    </mod>
5558
 
  </ins>
5559
 
 
5560
 
  <ins name="+ICMP.v2s16" mask="0xfe800" exact="0x78000">
5561
 
    <src start="0"/>
5562
 
    <src start="3"/>
5563
 
    <mod name="swz0" start="6" size="2" default="h01">
5564
 
      <opt>h00</opt>
5565
 
      <opt>h10</opt>
5566
 
      <opt>h01</opt>
5567
 
      <opt>h11</opt>
5568
 
    </mod>
5569
 
    <mod name="swz1" start="8" size="2" default="h01">
5570
 
      <opt>h00</opt>
5571
 
      <opt>h10</opt>
5572
 
      <opt>h01</opt>
5573
 
      <opt>h11</opt>
5574
 
    </mod>
5575
 
    <mod name="result_type" start="10" size="1" default="i1">
5576
 
      <opt>i1</opt>
5577
 
      <opt>m1</opt>
5578
 
    </mod>
5579
 
    <mod name="cmpf" size="2">
5580
 
      <opt>gt</opt>
5581
 
      <opt>ge</opt>
5582
 
      <opt>lt</opt>
5583
 
      <opt>le</opt>
5584
 
    </mod>
5585
 
    <derived start="12" size="1">
5586
 
      <eq left="cmpf" right="#gt"/>
5587
 
      <eq left="cmpf" right="#ge"/>
5588
 
    </derived>
5589
 
    <swap left="0" right="1">
5590
 
      <or>
5591
 
        <eq left="cmpf" right="#lt"/>
5592
 
        <eq left="cmpf" right="#le"/>
5593
 
      </or>
5594
 
      <rewrite name="cmpf">
5595
 
        <map from="lt" to="gt"/>
5596
 
        <map from="le" to="ge"/>
5597
 
      </rewrite>
5598
 
    </swap>
5599
 
  </ins>
5600
 
 
5601
 
  <ins name="+ICMP.v2u16" mask="0xfe800" exact="0x78800">
5602
 
    <src start="0"/>
5603
 
    <src start="3"/>
5604
 
    <mod name="swz0" start="6" size="2" default="h01">
5605
 
      <opt>h00</opt>
5606
 
      <opt>h10</opt>
5607
 
      <opt>h01</opt>
5608
 
      <opt>h11</opt>
5609
 
    </mod>
5610
 
    <mod name="swz1" start="8" size="2" default="h01">
5611
 
      <opt>h00</opt>
5612
 
      <opt>h10</opt>
5613
 
      <opt>h01</opt>
5614
 
      <opt>h11</opt>
5615
 
    </mod>
5616
 
    <mod name="result_type" start="10" size="1" default="i1">
5617
 
      <opt>i1</opt>
5618
 
      <opt>m1</opt>
5619
 
    </mod>
5620
 
    <mod name="cmpf" size="2">
5621
 
      <opt>gt</opt>
5622
 
      <opt>ge</opt>
5623
 
      <opt>lt</opt>
5624
 
      <opt>le</opt>
5625
 
    </mod>
5626
 
    <derived start="12" size="1">
5627
 
      <eq left="cmpf" right="#gt"/>
5628
 
      <eq left="cmpf" right="#ge"/>
5629
 
    </derived>
5630
 
    <swap left="0" right="1">
5631
 
      <or>
5632
 
        <eq left="cmpf" right="#lt"/>
5633
 
        <eq left="cmpf" right="#le"/>
5634
 
      </or>
5635
 
      <rewrite name="cmpf">
5636
 
        <map from="lt" to="gt"/>
5637
 
        <map from="le" to="ge"/>
5638
 
      </rewrite>
5639
 
    </swap>
5640
 
  </ins>
5641
 
 
5642
 
  <ins name="+ICMP.v4i8" mask="0xffb80" exact="0x7b100">
5643
 
    <src start="0"/>
5644
 
    <src start="3"/>
5645
 
    <mod name="result_type" start="10" size="1" default="i1">
5646
 
      <opt>i1</opt>
5647
 
      <opt>m1</opt>
5648
 
    </mod>
5649
 
    <mod name="cmpf" start="6" size="1">
5650
 
      <opt>eq</opt>
5651
 
      <opt>ne</opt>
5652
 
    </mod>
5653
 
  </ins>
5654
 
 
5655
 
  <ins name="+ICMP.v4s8" mask="0xffb80" exact="0x7b000">
5656
 
    <src start="0"/>
5657
 
    <src start="3"/>
5658
 
    <mod name="result_type" start="10" size="1" default="i1">
5659
 
      <opt>i1</opt>
5660
 
      <opt>m1</opt>
5661
 
    </mod>
5662
 
    <mod name="cmpf" size="2">
5663
 
      <opt>gt</opt>
5664
 
      <opt>ge</opt>
5665
 
      <opt>lt</opt>
5666
 
      <opt>le</opt>
5667
 
    </mod>
5668
 
    <derived start="6" size="1">
5669
 
      <eq left="cmpf" right="#gt"/>
5670
 
      <eq left="cmpf" right="#ge"/>
5671
 
    </derived>
5672
 
    <swap left="0" right="1">
5673
 
      <or>
5674
 
        <eq left="cmpf" right="#lt"/>
5675
 
        <eq left="cmpf" right="#le"/>
5676
 
      </or>
5677
 
      <rewrite name="cmpf">
5678
 
        <map from="lt" to="gt"/>
5679
 
        <map from="le" to="ge"/>
5680
 
      </rewrite>
5681
 
    </swap>
5682
 
  </ins>
5683
 
 
5684
 
  <ins name="+ICMP.v4u8" mask="0xffb80" exact="0x7b080">
5685
 
    <src start="0"/>
5686
 
    <src start="3"/>
5687
 
    <mod name="result_type" start="10" size="1" default="i1">
5688
 
      <opt>i1</opt>
5689
 
      <opt>m1</opt>
5690
 
    </mod>
5691
 
    <mod name="cmpf" size="2">
5692
 
      <opt>gt</opt>
5693
 
      <opt>ge</opt>
5694
 
      <opt>lt</opt>
5695
 
      <opt>le</opt>
5696
 
    </mod>
5697
 
    <derived start="6" size="1">
5698
 
      <eq left="cmpf" right="#gt"/>
5699
 
      <eq left="cmpf" right="#ge"/>
5700
 
    </derived>
5701
 
    <swap left="0" right="1">
5702
 
      <or>
5703
 
        <eq left="cmpf" right="#lt"/>
5704
 
        <eq left="cmpf" right="#le"/>
5705
 
      </or>
5706
 
      <rewrite name="cmpf">
5707
 
        <map from="lt" to="gt"/>
5708
 
        <map from="le" to="ge"/>
5709
 
      </rewrite>
5710
 
    </swap>
5711
 
  </ins>
5712
 
 
5713
 
  <ins name="+ICMPF.i32" mask="0xffe00" exact="0x7be00">
5714
 
    <src start="0"/>
5715
 
    <src start="3"/>
5716
 
    <src start="6"/>
5717
 
  </ins>
5718
 
 
5719
 
  <ins name="+ICMPI.i32" mask="0xffb80" exact="0x7b900">
5720
 
    <src start="0"/>
5721
 
    <src start="3"/>
5722
 
    <mod name="result_type" start="10" size="1" default="i1">
5723
 
      <opt>i1</opt>
5724
 
      <opt>m1</opt>
5725
 
    </mod>
5726
 
    <mod name="cmpf" start="6" size="1">
5727
 
      <opt>eq</opt>
5728
 
      <opt>ne</opt>
5729
 
    </mod>
5730
 
  </ins>
5731
 
 
5732
 
  <ins name="+ICMPI.s32" mask="0xffb80" exact="0x7b800">
5733
 
    <src start="0"/>
5734
 
    <src start="3"/>
5735
 
    <mod name="result_type" start="10" size="1" default="i1">
5736
 
      <opt>i1</opt>
5737
 
      <opt>m1</opt>
5738
 
    </mod>
5739
 
    <mod name="cmpf" start="6" size="1">
5740
 
      <opt>gt</opt>
5741
 
      <opt>ge</opt>
5742
 
    </mod>
5743
 
  </ins>
5744
 
 
5745
 
  <ins name="+ICMPI.u32" mask="0xffb80" exact="0x7b880">
5746
 
    <src start="0"/>
5747
 
    <src start="3"/>
5748
 
    <mod name="result_type" start="10" size="1" default="i1">
5749
 
      <opt>i1</opt>
5750
 
      <opt>m1</opt>
5751
 
    </mod>
5752
 
    <mod name="cmpf" start="6" size="1">
5753
 
      <opt>gt</opt>
5754
 
      <opt>ge</opt>
5755
 
    </mod>
5756
 
  </ins>
5757
 
 
5758
 
  <ins name="+ICMPM.i32" mask="0xffe00" exact="0x7ba00">
5759
 
    <src start="0"/>
5760
 
    <src start="3"/>
5761
 
    <src start="6"/>
5762
 
  </ins>
5763
 
 
5764
 
  <ins name="+ILOGB.f32" mask="0xfffe0" exact="0x3d9e0">
5765
 
    <src start="0"/>
5766
 
    <mod name="widen0" start="3" size="2">
5767
 
      <reserved/>
5768
 
      <opt>none</opt>
5769
 
      <opt>h0</opt>
5770
 
      <opt>h1</opt>
5771
 
    </mod>
5772
 
  </ins>
5773
 
 
5774
 
  <ins name="+ILOGB.v2f16" mask="0xfffe0" exact="0x3d9c0">
5775
 
    <src start="0"/>
5776
 
    <mod name="swz0" start="3" size="2" default="h01">
5777
 
      <opt>h00</opt>
5778
 
      <opt>h10</opt>
5779
 
      <opt>h01</opt>
5780
 
      <opt>h11</opt>
5781
 
    </mod>
5782
 
  </ins>
5783
 
 
5784
 
  <ins name="+IMOV_FMA" mask="0xffff7" exact="0xd7820">
5785
 
    <mod name="threads" start="3" size="1" default="odd">
5786
 
      <opt>even</opt>
5787
 
      <opt>odd</opt>
5788
 
    </mod>
5789
 
  </ins>
5790
 
 
5791
 
  <ins name="+ISUB.s32">
5792
 
    <src start="0"/>
5793
 
    <src start="3"/>
5794
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5795
 
    <mod name="lanes1" size="3">
5796
 
      <opt>none</opt>
5797
 
      <opt>h0</opt>
5798
 
      <opt>h1</opt>
5799
 
      <opt>b0</opt>
5800
 
      <opt>b1</opt>
5801
 
      <opt>b2</opt>
5802
 
      <opt>b3</opt>
5803
 
    </mod>
5804
 
    <encoding mask="0xffec0" exact="0xbd600">
5805
 
      <eq left="lanes1" right="#none"/>
5806
 
    </encoding>
5807
 
    <encoding mask="0xffcc0" exact="0xbfc00">
5808
 
      <or>
5809
 
        <eq left="lanes1" right="#h0"/>
5810
 
        <eq left="lanes1" right="#h1"/>
5811
 
      </or>
5812
 
      <derived start="9" size="1">
5813
 
        <eq left="lanes1" right="#h0"/>
5814
 
        <eq left="lanes1" right="#h1"/>
5815
 
      </derived>
5816
 
    </encoding>
5817
 
    <encoding mask="0xff8c0" exact="0xbf000">
5818
 
      <or>
5819
 
        <eq left="lanes1" right="#b0"/>
5820
 
        <eq left="lanes1" right="#b1"/>
5821
 
        <eq left="lanes1" right="#b2"/>
5822
 
        <eq left="lanes1" right="#b3"/>
5823
 
      </or>
5824
 
      <derived start="9" size="2">
5825
 
        <eq left="lanes1" right="#b0"/>
5826
 
        <eq left="lanes1" right="#b1"/>
5827
 
        <eq left="lanes1" right="#b2"/>
5828
 
        <eq left="lanes1" right="#b3"/>
5829
 
      </derived>
5830
 
    </encoding>
5831
 
  </ins>
5832
 
 
5833
 
  <ins name="+ISUB.u32">
5834
 
    <src start="0"/>
5835
 
    <src start="3"/>
5836
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5837
 
    <mod name="lanes1" size="3">
5838
 
      <opt>none</opt>
5839
 
      <opt>h0</opt>
5840
 
      <opt>h1</opt>
5841
 
      <opt>b0</opt>
5842
 
      <opt>b1</opt>
5843
 
      <opt>b2</opt>
5844
 
      <opt>b3</opt>
5845
 
    </mod>
5846
 
    <encoding mask="0xffe40" exact="0xbd600">
5847
 
      <eq left="lanes1" right="#none"/>
5848
 
      <derived start="7" size="1">
5849
 
        <and alias="true">
5850
 
          <eq left="saturate" right="#none"/>
5851
 
          <eq left="lanes1" right="#none"/>
5852
 
        </and>
5853
 
        <or>
5854
 
          <eq left="saturate" right="#sat"/>
5855
 
          <neq left="lanes1" right="#none"/>
5856
 
        </or>
5857
 
      </derived>
5858
 
    </encoding>
5859
 
    <encoding mask="0xffc40" exact="0xbfc00">
5860
 
      <or>
5861
 
        <eq left="lanes1" right="#h0"/>
5862
 
        <eq left="lanes1" right="#h1"/>
5863
 
      </or>
5864
 
      <derived start="7" size="1">
5865
 
        <and alias="true">
5866
 
          <eq left="saturate" right="#none"/>
5867
 
          <eq left="lanes1" right="#none"/>
5868
 
        </and>
5869
 
        <or>
5870
 
          <eq left="saturate" right="#sat"/>
5871
 
          <neq left="lanes1" right="#none"/>
5872
 
        </or>
5873
 
      </derived>
5874
 
      <derived start="9" size="1">
5875
 
        <eq left="lanes1" right="#h0"/>
5876
 
        <eq left="lanes1" right="#h1"/>
5877
 
      </derived>
5878
 
    </encoding>
5879
 
    <encoding mask="0xff840" exact="0xbf000">
5880
 
      <or>
5881
 
        <eq left="lanes1" right="#b0"/>
5882
 
        <eq left="lanes1" right="#b1"/>
5883
 
        <eq left="lanes1" right="#b2"/>
5884
 
        <eq left="lanes1" right="#b3"/>
5885
 
      </or>
5886
 
      <derived start="7" size="1">
5887
 
        <and alias="true">
5888
 
          <eq left="saturate" right="#none"/>
5889
 
          <eq left="lanes1" right="#none"/>
5890
 
        </and>
5891
 
        <or>
5892
 
          <eq left="saturate" right="#sat"/>
5893
 
          <neq left="lanes1" right="#none"/>
5894
 
        </or>
5895
 
      </derived>
5896
 
      <derived start="9" size="2">
5897
 
        <eq left="lanes1" right="#b0"/>
5898
 
        <eq left="lanes1" right="#b1"/>
5899
 
        <eq left="lanes1" right="#b2"/>
5900
 
        <eq left="lanes1" right="#b3"/>
5901
 
      </derived>
5902
 
    </encoding>
5903
 
  </ins>
5904
 
 
5905
 
  <ins name="+ISUB.v2s16">
5906
 
    <src start="0"/>
5907
 
    <src start="3"/>
5908
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5909
 
    <mod name="lanes0" size="1" default="h01">
5910
 
      <opt>h01</opt>
5911
 
      <opt>h10</opt>
5912
 
    </mod>
5913
 
    <mod name="lanes1" size="3" default="h01">
5914
 
      <opt>h01</opt>
5915
 
      <opt>h10</opt>
5916
 
      <opt>h00</opt>
5917
 
      <opt>h11</opt>
5918
 
      <opt>b01</opt>
5919
 
      <opt>b23</opt>
5920
 
    </mod>
5921
 
    <encoding mask="0xff8c0" exact="0xbd800">
5922
 
      <and>
5923
 
        <or>
5924
 
          <eq left="lanes0" right="#h01"/>
5925
 
          <eq left="lanes0" right="#h10"/>
5926
 
        </or>
5927
 
        <or>
5928
 
          <eq left="lanes1" right="#h01"/>
5929
 
          <eq left="lanes1" right="#h10"/>
5930
 
        </or>
5931
 
      </and>
5932
 
      <derived start="9" size="1">
5933
 
        <eq left="lanes1" right="#h01"/>
5934
 
        <eq left="lanes1" right="#h10"/>
5935
 
      </derived>
5936
 
      <derived start="10" size="1">
5937
 
        <eq left="lanes0" right="#h01"/>
5938
 
        <eq left="lanes0" right="#h10"/>
5939
 
      </derived>
5940
 
    </encoding>
5941
 
    <encoding mask="0xffcc0" exact="0xbfc40">
5942
 
      <and>
5943
 
        <eq left="lanes0" right="#h01"/>
5944
 
        <or>
5945
 
          <eq left="lanes1" right="#h00"/>
5946
 
          <eq left="lanes1" right="#h11"/>
5947
 
        </or>
5948
 
      </and>
5949
 
      <derived start="9" size="1">
5950
 
        <eq left="lanes1" right="#h00"/>
5951
 
        <eq left="lanes1" right="#h11"/>
5952
 
      </derived>
5953
 
    </encoding>
5954
 
    <encoding mask="0xffcc0" exact="0xbf800">
5955
 
      <and>
5956
 
        <eq left="lanes0" right="#h01"/>
5957
 
        <or>
5958
 
          <eq left="lanes1" right="#b01"/>
5959
 
          <eq left="lanes1" right="#b23"/>
5960
 
        </or>
5961
 
      </and>
5962
 
      <derived start="9" size="1">
5963
 
        <eq left="lanes1" right="#b01"/>
5964
 
        <eq left="lanes1" right="#b23"/>
5965
 
      </derived>
5966
 
    </encoding>
5967
 
  </ins>
5968
 
 
5969
 
  <ins name="+ISUB.v2u16">
5970
 
    <src start="0"/>
5971
 
    <src start="3"/>
5972
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
5973
 
    <mod name="lanes0" size="1" default="h01">
5974
 
      <opt>h01</opt>
5975
 
      <opt>h10</opt>
5976
 
    </mod>
5977
 
    <mod name="lanes1" size="3" default="h01">
5978
 
      <opt>h01</opt>
5979
 
      <opt>h10</opt>
5980
 
      <opt>h00</opt>
5981
 
      <opt>h11</opt>
5982
 
      <opt>b01</opt>
5983
 
      <opt>b23</opt>
5984
 
    </mod>
5985
 
    <encoding mask="0xff840" exact="0xbd800">
5986
 
      <and>
5987
 
        <or>
5988
 
          <eq left="lanes0" right="#h01"/>
5989
 
          <eq left="lanes0" right="#h10"/>
5990
 
        </or>
5991
 
        <or>
5992
 
          <eq left="lanes1" right="#h01"/>
5993
 
          <eq left="lanes1" right="#h10"/>
5994
 
        </or>
5995
 
      </and>
5996
 
      <derived start="7" size="1">
5997
 
        <and alias="true">
5998
 
          <eq left="saturate" right="#none"/>
5999
 
          <neq left="lanes1" right="#b01"/>
6000
 
          <neq left="lanes1" right="#b23"/>
6001
 
        </and>
6002
 
        <or>
6003
 
          <eq left="saturate" right="#sat"/>
6004
 
          <eq left="lanes1" right="#b01"/>
6005
 
          <eq left="lanes1" right="#b23"/>
6006
 
        </or>
6007
 
      </derived>
6008
 
      <derived start="9" size="1">
6009
 
        <eq left="lanes1" right="#h01"/>
6010
 
        <eq left="lanes1" right="#h10"/>
6011
 
      </derived>
6012
 
      <derived start="10" size="1">
6013
 
        <eq left="lanes0" right="#h01"/>
6014
 
        <eq left="lanes0" right="#h10"/>
6015
 
      </derived>
6016
 
    </encoding>
6017
 
    <encoding mask="0xffc40" exact="0xbfc40">
6018
 
      <and>
6019
 
        <eq left="lanes0" right="#h01"/>
6020
 
        <or>
6021
 
          <eq left="lanes1" right="#h00"/>
6022
 
          <eq left="lanes1" right="#h11"/>
6023
 
        </or>
6024
 
      </and>
6025
 
      <derived start="7" size="1">
6026
 
        <and alias="true">
6027
 
          <eq left="saturate" right="#none"/>
6028
 
          <neq left="lanes1" right="#b01"/>
6029
 
          <neq left="lanes1" right="#b23"/>
6030
 
        </and>
6031
 
        <or>
6032
 
          <eq left="saturate" right="#sat"/>
6033
 
          <eq left="lanes1" right="#b01"/>
6034
 
          <eq left="lanes1" right="#b23"/>
6035
 
        </or>
6036
 
      </derived>
6037
 
      <derived start="9" size="1">
6038
 
        <eq left="lanes1" right="#h00"/>
6039
 
        <eq left="lanes1" right="#h11"/>
6040
 
      </derived>
6041
 
    </encoding>
6042
 
    <encoding mask="0xffc40" exact="0xbf800">
6043
 
      <and>
6044
 
        <eq left="lanes0" right="#h01"/>
6045
 
        <or>
6046
 
          <eq left="lanes1" right="#b01"/>
6047
 
          <eq left="lanes1" right="#b23"/>
6048
 
        </or>
6049
 
      </and>
6050
 
      <derived start="7" size="1">
6051
 
        <and alias="true">
6052
 
          <eq left="saturate" right="#none"/>
6053
 
          <neq left="lanes1" right="#b01"/>
6054
 
          <neq left="lanes1" right="#b23"/>
6055
 
        </and>
6056
 
        <or>
6057
 
          <eq left="saturate" right="#sat"/>
6058
 
          <eq left="lanes1" right="#b01"/>
6059
 
          <eq left="lanes1" right="#b23"/>
6060
 
        </or>
6061
 
      </derived>
6062
 
      <derived start="9" size="1">
6063
 
        <eq left="lanes1" right="#b01"/>
6064
 
        <eq left="lanes1" right="#b23"/>
6065
 
      </derived>
6066
 
    </encoding>
6067
 
  </ins>
6068
 
 
6069
 
  <ins name="+ISUB.v4s8">
6070
 
    <src start="0"/>
6071
 
    <src start="3"/>
6072
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
6073
 
    <mod name="lanes0" size="3" default="b0123">
6074
 
      <opt>b0123</opt>
6075
 
    </mod>
6076
 
    <mod name="lanes1" size="3" default="b0123">
6077
 
      <opt>b0123</opt>
6078
 
      <opt>b0000</opt>
6079
 
      <opt>b1111</opt>
6080
 
      <opt>b2222</opt>
6081
 
      <opt>b3333</opt>
6082
 
      <opt>b0101</opt>
6083
 
      <opt>b2323</opt>
6084
 
    </mod>
6085
 
    <encoding mask="0xffec0" exact="0xbd400">
6086
 
      <and>
6087
 
        <eq left="lanes0" right="#b0123"/>
6088
 
        <eq left="lanes1" right="#b0123"/>
6089
 
      </and>
6090
 
    </encoding>
6091
 
    <encoding mask="0xff8c0" exact="0xbf040">
6092
 
      <and>
6093
 
        <eq left="lanes0" right="#b0123"/>
6094
 
        <or>
6095
 
          <eq left="lanes1" right="#b0000"/>
6096
 
          <eq left="lanes1" right="#b1111"/>
6097
 
          <eq left="lanes1" right="#b2222"/>
6098
 
          <eq left="lanes1" right="#b3333"/>
6099
 
        </or>
6100
 
      </and>
6101
 
      <derived start="9" size="2">
6102
 
        <eq left="lanes1" right="#b0000"/>
6103
 
        <eq left="lanes1" right="#b1111"/>
6104
 
        <eq left="lanes1" right="#b2222"/>
6105
 
        <eq left="lanes1" right="#b3333"/>
6106
 
      </derived>
6107
 
    </encoding>
6108
 
    <encoding mask="0xffcc0" exact="0xbf840">
6109
 
      <and>
6110
 
        <eq left="lanes0" right="#b0123"/>
6111
 
        <or>
6112
 
          <eq left="lanes1" right="#b0101"/>
6113
 
          <eq left="lanes1" right="#b2323"/>
6114
 
        </or>
6115
 
      </and>
6116
 
      <derived start="9" size="1">
6117
 
        <eq left="lanes1" right="#b0101"/>
6118
 
        <eq left="lanes1" right="#b2323"/>
6119
 
      </derived>
6120
 
    </encoding>
6121
 
  </ins>
6122
 
 
6123
 
  <ins name="+ISUB.v4u8">
6124
 
    <src start="0"/>
6125
 
    <src start="3"/>
6126
 
    <mod name="saturate" start="8" size="1" opt="sat"/>
6127
 
    <mod name="lanes0" size="3" default="b0123">
6128
 
      <opt>b0123</opt>
6129
 
    </mod>
6130
 
    <mod name="lanes1" size="3" default="b0123">
6131
 
      <opt>b0123</opt>
6132
 
      <opt>b0000</opt>
6133
 
      <opt>b1111</opt>
6134
 
      <opt>b2222</opt>
6135
 
      <opt>b3333</opt>
6136
 
      <opt>b0101</opt>
6137
 
      <opt>b2323</opt>
6138
 
    </mod>
6139
 
    <encoding mask="0xffe40" exact="0xbd400">
6140
 
      <and>
6141
 
        <eq left="lanes0" right="#b0123"/>
6142
 
        <eq left="lanes1" right="#b0123"/>
6143
 
      </and>
6144
 
      <derived start="7" size="1">
6145
 
        <eq alias="true" left="saturate" right="#none"/>
6146
 
        <eq left="saturate" right="#sat"/>
6147
 
      </derived>
6148
 
    </encoding>
6149
 
    <encoding mask="0xff840" exact="0xbf040">
6150
 
      <and>
6151
 
        <eq left="lanes0" right="#b0123"/>
6152
 
        <or>
6153
 
          <eq left="lanes1" right="#b0000"/>
6154
 
          <eq left="lanes1" right="#b1111"/>
6155
 
          <eq left="lanes1" right="#b2222"/>
6156
 
          <eq left="lanes1" right="#b3333"/>
6157
 
        </or>
6158
 
      </and>
6159
 
      <derived start="7" size="1">
6160
 
        <eq alias="true" left="saturate" right="#none"/>
6161
 
        <eq left="saturate" right="#sat"/>
6162
 
      </derived>
6163
 
      <derived start="9" size="2">
6164
 
        <eq left="lanes1" right="#b0000"/>
6165
 
        <eq left="lanes1" right="#b1111"/>
6166
 
        <eq left="lanes1" right="#b2222"/>
6167
 
        <eq left="lanes1" right="#b3333"/>
6168
 
      </derived>
6169
 
    </encoding>
6170
 
    <encoding mask="0xffc40" exact="0xbf840">
6171
 
      <and>
6172
 
        <eq left="lanes0" right="#b0123"/>
6173
 
        <or>
6174
 
          <eq left="lanes1" right="#b0101"/>
6175
 
          <eq left="lanes1" right="#b2323"/>
6176
 
        </or>
6177
 
      </and>
6178
 
      <derived start="7" size="1">
6179
 
        <eq alias="true" left="saturate" right="#none"/>
6180
 
        <eq left="saturate" right="#sat"/>
6181
 
      </derived>
6182
 
      <derived start="9" size="1">
6183
 
        <eq left="lanes1" right="#b0101"/>
6184
 
        <eq left="lanes1" right="#b2323"/>
6185
 
      </derived>
6186
 
    </encoding>
6187
 
  </ins>
6188
 
 
6189
 
  <ins name="+JUMP" mask="0xffe3f" exact="0x6fe34" last="true" dests="0">
6190
 
    <src start="6" mask="0xf7"/>
6191
 
  </ins>
6192
 
 
6193
 
  <ins name="+KABOOM" mask="0xffff8" exact="0xd7858" unused="true" message="job_management">
6194
 
    <src start="0"/>
6195
 
  </ins>
6196
 
 
6197
 
  <ins name="+LDEXP.f32" mask="0xffe00" exact="0x74c00">
6198
 
    <src start="0"/>
6199
 
    <src start="3"/>
6200
 
    <mod name="round" start="6" size="3">
6201
 
      <opt>none</opt>
6202
 
      <opt>rtp</opt>
6203
 
      <opt>rtn</opt>
6204
 
      <opt>rtz</opt>
6205
 
      <opt>rtna</opt>
6206
 
      <reserved/>
6207
 
      <opt>inf</opt>
6208
 
      <opt>inf0</opt>
6209
 
    </mod>
6210
 
  </ins>
6211
 
 
6212
 
  <ins name="+LDEXP.v2f16" mask="0xffe00" exact="0x74e00">
6213
 
    <src start="0"/>
6214
 
    <src start="3"/>
6215
 
    <mod name="round" start="6" size="3">
6216
 
      <opt>none</opt>
6217
 
      <opt>rtp</opt>
6218
 
      <opt>rtn</opt>
6219
 
      <opt>rtz</opt>
6220
 
      <opt>rtna</opt>
6221
 
      <reserved/>
6222
 
      <opt>inf</opt>
6223
 
      <opt>inf0</opt>
6224
 
    </mod>
6225
 
  </ins>
6226
 
 
6227
 
  <ins name="+LD_ATTR" staging="w=format" message="attribute">
6228
 
    <src start="0"/>
6229
 
    <src start="3"/>
6230
 
    <src start="6"/>
6231
 
    <mod name="register_format" size="4">
6232
 
      <opt>f16</opt>
6233
 
      <opt>f32</opt>
6234
 
      <opt>s32</opt>
6235
 
      <opt>u32</opt>
6236
 
      <opt>s16</opt>
6237
 
      <opt>u16</opt>
6238
 
      <opt>f64</opt>
6239
 
      <opt>i64</opt>
6240
 
      <opt>auto</opt>
6241
 
    </mod>
6242
 
    <mod name="vecsize" start="11" size="2">
6243
 
      <opt>none</opt>
6244
 
      <opt>v2</opt>
6245
 
      <opt>v3</opt>
6246
 
      <opt>v4</opt>
6247
 
    </mod>
6248
 
    <encoding mask="0xf0600" exact="0x40400">
6249
 
      <neq left="register_format" right="#auto"/>
6250
 
      <derived start="13" size="3">
6251
 
        <eq left="register_format" right="#f16"/>
6252
 
        <eq left="register_format" right="#f32"/>
6253
 
        <eq left="register_format" right="#s32"/>
6254
 
        <eq left="register_format" right="#u32"/>
6255
 
        <eq left="register_format" right="#s16"/>
6256
 
        <eq left="register_format" right="#u16"/>
6257
 
        <eq left="register_format" right="#f64"/>
6258
 
        <eq left="register_format" right="#i64"/>
6259
 
      </derived>
6260
 
    </encoding>
6261
 
    <encoding mask="0xfe600" exact="0xc4400">
6262
 
      <eq left="register_format" right="#auto"/>
6263
 
    </encoding>
6264
 
  </ins>
6265
 
 
6266
 
  <ins name="+LD_ATTR_IMM" staging="w=format" message="attribute">
6267
 
    <src start="0"/>
6268
 
    <src start="3"/>
6269
 
    <immediate name="attribute_index" start="6" size="4"/>
6270
 
    <mod name="register_format" size="4">
6271
 
      <opt>f16</opt>
6272
 
      <opt>f32</opt>
6273
 
      <opt>s32</opt>
6274
 
      <opt>u32</opt>
6275
 
      <opt>s16</opt>
6276
 
      <opt>u16</opt>
6277
 
      <opt>f64</opt>
6278
 
      <opt>i64</opt>
6279
 
      <opt>auto</opt>
6280
 
    </mod>
6281
 
    <mod name="vecsize" start="11" size="2">
6282
 
      <opt>none</opt>
6283
 
      <opt>v2</opt>
6284
 
      <opt>v3</opt>
6285
 
      <opt>v4</opt>
6286
 
    </mod>
6287
 
    <encoding mask="0xf0400" exact="0x40000">
6288
 
      <neq left="register_format" right="#auto"/>
6289
 
      <derived start="13" size="3">
6290
 
        <eq left="register_format" right="#f16"/>
6291
 
        <eq left="register_format" right="#f32"/>
6292
 
        <eq left="register_format" right="#s32"/>
6293
 
        <eq left="register_format" right="#u32"/>
6294
 
        <eq left="register_format" right="#s16"/>
6295
 
        <eq left="register_format" right="#u16"/>
6296
 
        <eq left="register_format" right="#f64"/>
6297
 
        <eq left="register_format" right="#i64"/>
6298
 
      </derived>
6299
 
    </encoding>
6300
 
    <encoding mask="0xfe400" exact="0xc4000">
6301
 
      <eq left="register_format" right="#auto"/>
6302
 
    </encoding>
6303
 
  </ins>
6304
 
 
6305
 
  <ins name="+LD_ATTR_TEX" staging="w=format" message="attribute">
6306
 
    <src start="0"/>
6307
 
    <src start="3"/>
6308
 
    <src start="6"/>
6309
 
    <mod name="register_format" size="4">
6310
 
      <opt>f16</opt>
6311
 
      <opt>f32</opt>
6312
 
      <opt>s32</opt>
6313
 
      <opt>u32</opt>
6314
 
      <opt>s16</opt>
6315
 
      <opt>u16</opt>
6316
 
      <opt>f64</opt>
6317
 
      <opt>i64</opt>
6318
 
      <opt>auto</opt>
6319
 
    </mod>
6320
 
    <mod name="vecsize" start="11" size="2">
6321
 
      <opt>none</opt>
6322
 
      <opt>v2</opt>
6323
 
      <opt>v3</opt>
6324
 
      <opt>v4</opt>
6325
 
    </mod>
6326
 
    <encoding mask="0xf0600" exact="0x40600">
6327
 
      <neq left="register_format" right="#auto"/>
6328
 
      <derived start="13" size="3">
6329
 
        <eq left="register_format" right="#f16"/>
6330
 
        <eq left="register_format" right="#f32"/>
6331
 
        <eq left="register_format" right="#s32"/>
6332
 
        <eq left="register_format" right="#u32"/>
6333
 
        <eq left="register_format" right="#s16"/>
6334
 
        <eq left="register_format" right="#u16"/>
6335
 
        <eq left="register_format" right="#f64"/>
6336
 
        <eq left="register_format" right="#i64"/>
6337
 
      </derived>
6338
 
    </encoding>
6339
 
    <encoding mask="0xfe600" exact="0xc4600">
6340
 
      <eq left="register_format" right="#auto"/>
6341
 
    </encoding>
6342
 
  </ins>
6343
 
 
6344
 
  <ins name="+LD_CVT" staging="w=format" mask="0xff800" exact="0xc9000" message="load">
6345
 
    <src start="0"/>
6346
 
    <src start="3"/>
6347
 
    <src start="6" mask="0xf7"/>
6348
 
    <mod name="register_format" size="4" pseudo="true">
6349
 
      <opt>f16</opt>
6350
 
      <opt>f32</opt>
6351
 
      <opt>s32</opt>
6352
 
      <opt>u32</opt>
6353
 
      <opt>s16</opt>
6354
 
      <opt>u16</opt>
6355
 
      <opt>f64</opt>
6356
 
      <opt>i64</opt>
6357
 
    </mod>
6358
 
    <mod name="vecsize" start="9" size="2">
6359
 
      <opt>none</opt>
6360
 
      <opt>v2</opt>
6361
 
      <opt>v3</opt>
6362
 
      <opt>v4</opt>
6363
 
    </mod>
6364
 
  </ins>
6365
 
 
6366
 
  <ins name="+LD_GCLK.u64" staging="w=2" mask="0xffff8" exact="0xd7800" message="attribute">
6367
 
    <mod name="source" start="0" size="3">
6368
 
      <reserved/>
6369
 
      <reserved/>
6370
 
      <reserved/>
6371
 
      <reserved/>
6372
 
      <reserved/>
6373
 
      <reserved/>
6374
 
      <opt>system_timestamp</opt>
6375
 
      <opt>cycle_counter</opt>
6376
 
    </mod>
6377
 
  </ins>
6378
 
 
6379
 
  <ins name="+LD_TILE" staging="w=format" mask="0xff800" exact="0xcb000" message="tile">
6380
 
    <src start="0"/>
6381
 
    <src start="3"/>
6382
 
    <src start="6" mask="0xf7"/>
6383
 
    <mod name="vecsize" start="9" size="2">
6384
 
      <opt>none</opt>
6385
 
      <opt>v2</opt>
6386
 
      <opt>v3</opt>
6387
 
      <opt>v4</opt>
6388
 
    </mod>
6389
 
    <mod name="register_format" size="3" pseudo="true">
6390
 
      <opt>f32</opt>
6391
 
      <opt>f16</opt>
6392
 
      <opt>u32</opt>
6393
 
      <opt>s32</opt>
6394
 
    </mod>
6395
 
  </ins>
6396
 
 
6397
 
  <ins name="+LD_VAR" staging="w=vecsize" message="varying">
6398
 
    <src start="0"/>
6399
 
    <src start="3"/>
6400
 
    <mod name="vecsize" start="8" size="2">
6401
 
      <opt>none</opt>
6402
 
      <opt>v2</opt>
6403
 
      <opt>v3</opt>
6404
 
      <opt>v4</opt>
6405
 
    </mod>
6406
 
    <mod name="update" size="2">
6407
 
      <opt>store</opt>
6408
 
      <opt>retrieve</opt>
6409
 
      <opt>conditional</opt>
6410
 
      <opt>clobber</opt>
6411
 
    </mod>
6412
 
    <mod name="register_format" size="2">
6413
 
      <opt>f32</opt>
6414
 
      <opt>f16</opt>
6415
 
      <opt>auto</opt>
6416
 
    </mod>
6417
 
    <mod name="sample" size="3">
6418
 
      <opt>center</opt>
6419
 
      <opt>centroid</opt>
6420
 
      <opt>sample</opt>
6421
 
      <opt>explicit</opt>
6422
 
      <opt>none</opt>
6423
 
    </mod>
6424
 
    <encoding mask="0x7c0c0" exact="0x500c0">
6425
 
      <neq left="register_format" right="#auto"/>
6426
 
      <derived start="19" size="1">
6427
 
        <eq left="register_format" right="#f32"/>
6428
 
        <eq left="register_format" right="#f16"/>
6429
 
      </derived>
6430
 
      <derived start="10" size="4">
6431
 
        <and>
6432
 
          <eq left="sample" right="#center"/>
6433
 
          <eq left="update" right="#store"/>
6434
 
        </and>
6435
 
        <and>
6436
 
          <eq left="sample" right="#centroid"/>
6437
 
          <eq left="update" right="#store"/>
6438
 
        </and>
6439
 
        <and>
6440
 
          <eq left="sample" right="#sample"/>
6441
 
          <eq left="update" right="#store"/>
6442
 
        </and>
6443
 
        <and>
6444
 
          <eq left="sample" right="#explicit"/>
6445
 
          <eq left="update" right="#store"/>
6446
 
        </and>
6447
 
        <and>
6448
 
          <eq left="sample" right="#none"/>
6449
 
          <eq left="update" right="#retrieve"/>
6450
 
        </and>
6451
 
        <reserved/>
6452
 
        <reserved/>
6453
 
        <reserved/>
6454
 
        <and>
6455
 
          <eq left="sample" right="#center"/>
6456
 
          <eq left="update" right="#conditional"/>
6457
 
        </and>
6458
 
        <and>
6459
 
          <eq left="sample" right="#centroid"/>
6460
 
          <eq left="update" right="#conditional"/>
6461
 
        </and>
6462
 
        <and>
6463
 
          <eq left="sample" right="#center"/>
6464
 
          <eq left="update" right="#clobber"/>
6465
 
        </and>
6466
 
        <and>
6467
 
          <eq left="sample" right="#centroid"/>
6468
 
          <eq left="update" right="#clobber"/>
6469
 
        </and>
6470
 
        <and>
6471
 
          <eq left="sample" right="#sample"/>
6472
 
          <eq left="update" right="#clobber"/>
6473
 
        </and>
6474
 
        <and>
6475
 
          <eq left="sample" right="#explicit"/>
6476
 
          <eq left="update" right="#clobber"/>
6477
 
        </and>
6478
 
        <reserved/>
6479
 
        <reserved/>
6480
 
      </derived>
6481
 
    </encoding>
6482
 
    <encoding mask="0xfc0c0" exact="0xcc0c0">
6483
 
      <eq left="register_format" right="#auto"/>
6484
 
      <derived start="10" size="4">
6485
 
        <and>
6486
 
          <eq left="sample" right="#center"/>
6487
 
          <eq left="update" right="#store"/>
6488
 
        </and>
6489
 
        <and>
6490
 
          <eq left="sample" right="#centroid"/>
6491
 
          <eq left="update" right="#store"/>
6492
 
        </and>
6493
 
        <and>
6494
 
          <eq left="sample" right="#sample"/>
6495
 
          <eq left="update" right="#store"/>
6496
 
        </and>
6497
 
        <and>
6498
 
          <eq left="sample" right="#explicit"/>
6499
 
          <eq left="update" right="#store"/>
6500
 
        </and>
6501
 
        <and>
6502
 
          <eq left="sample" right="#none"/>
6503
 
          <eq left="update" right="#retrieve"/>
6504
 
        </and>
6505
 
        <reserved/>
6506
 
        <reserved/>
6507
 
        <reserved/>
6508
 
        <and>
6509
 
          <eq left="sample" right="#center"/>
6510
 
          <eq left="update" right="#conditional"/>
6511
 
        </and>
6512
 
        <and>
6513
 
          <eq left="sample" right="#centroid"/>
6514
 
          <eq left="update" right="#conditional"/>
6515
 
        </and>
6516
 
        <and>
6517
 
          <eq left="sample" right="#center"/>
6518
 
          <eq left="update" right="#clobber"/>
6519
 
        </and>
6520
 
        <and>
6521
 
          <eq left="sample" right="#centroid"/>
6522
 
          <eq left="update" right="#clobber"/>
6523
 
        </and>
6524
 
        <and>
6525
 
          <eq left="sample" right="#sample"/>
6526
 
          <eq left="update" right="#clobber"/>
6527
 
        </and>
6528
 
        <and>
6529
 
          <eq left="sample" right="#explicit"/>
6530
 
          <eq left="update" right="#clobber"/>
6531
 
        </and>
6532
 
        <reserved/>
6533
 
        <reserved/>
6534
 
      </derived>
6535
 
    </encoding>
6536
 
  </ins>
6537
 
 
6538
 
  <ins name="+LD_VAR_FLAT" staging="w=format" message="varying">
6539
 
    <src start="3"/>
6540
 
    <mod name="vecsize" start="8" size="2">
6541
 
      <opt>none</opt>
6542
 
      <opt>v2</opt>
6543
 
      <opt>v3</opt>
6544
 
      <opt>v4</opt>
6545
 
    </mod>
6546
 
    <mod name="register_format" size="3">
6547
 
      <opt>f32</opt>
6548
 
      <opt>f16</opt>
6549
 
      <opt>u32</opt>
6550
 
      <opt>s32</opt>
6551
 
      <opt>auto</opt>
6552
 
    </mod>
6553
 
    <mod name="function" start="0" size="3">
6554
 
      <reserved/>
6555
 
      <reserved/>
6556
 
      <reserved/>
6557
 
      <opt>none</opt>
6558
 
      <reserved/>
6559
 
      <reserved/>
6560
 
      <opt>and</opt>
6561
 
      <opt>or</opt>
6562
 
    </mod>
6563
 
    <encoding mask="0x7f8c0" exact="0x538c0">
6564
 
      <neq left="register_format" right="#auto"/>
6565
 
      <derived start="10" size="1">
6566
 
        <or>
6567
 
          <eq left="register_format" right="#f32"/>
6568
 
          <eq left="register_format" right="#f16"/>
6569
 
        </or>
6570
 
        <or>
6571
 
          <eq left="register_format" right="#u32"/>
6572
 
          <eq left="register_format" right="#s32"/>
6573
 
        </or>
6574
 
      </derived>
6575
 
      <derived start="19" size="1">
6576
 
        <or>
6577
 
          <eq left="register_format" right="#f32"/>
6578
 
          <eq left="register_format" right="#u32"/>
6579
 
        </or>
6580
 
        <or>
6581
 
          <eq left="register_format" right="#f16"/>
6582
 
          <eq left="register_format" right="#s32"/>
6583
 
        </or>
6584
 
      </derived>
6585
 
    </encoding>
6586
 
    <encoding mask="0xffcc0" exact="0xcf8c0">
6587
 
      <eq left="register_format" right="#auto"/>
6588
 
    </encoding>
6589
 
  </ins>
6590
 
 
6591
 
  <ins name="+LD_VAR_FLAT_IMM" staging="w=format" message="varying">
6592
 
    <immediate name="index" start="3" size="5"/>
6593
 
    <mod name="vecsize" start="8" size="2">
6594
 
      <opt>none</opt>
6595
 
      <opt>v2</opt>
6596
 
      <opt>v3</opt>
6597
 
      <opt>v4</opt>
6598
 
    </mod>
6599
 
    <mod name="register_format" size="3">
6600
 
      <opt>f32</opt>
6601
 
      <opt>f16</opt>
6602
 
      <opt>u32</opt>
6603
 
      <opt>s32</opt>
6604
 
      <opt>auto</opt>
6605
 
    </mod>
6606
 
    <mod name="function" start="0" size="3">
6607
 
      <reserved/>
6608
 
      <reserved/>
6609
 
      <reserved/>
6610
 
      <opt>none</opt>
6611
 
      <reserved/>
6612
 
      <reserved/>
6613
 
      <opt>and</opt>
6614
 
      <opt>or</opt>
6615
 
    </mod>
6616
 
    <encoding mask="0x7f800" exact="0x53800">
6617
 
      <neq left="register_format" right="#auto"/>
6618
 
      <derived start="10" size="1">
6619
 
        <or>
6620
 
          <eq left="register_format" right="#f32"/>
6621
 
          <eq left="register_format" right="#f16"/>
6622
 
        </or>
6623
 
        <or>
6624
 
          <eq left="register_format" right="#u32"/>
6625
 
          <eq left="register_format" right="#s32"/>
6626
 
        </or>
6627
 
      </derived>
6628
 
      <derived start="19" size="1">
6629
 
        <or>
6630
 
          <eq left="register_format" right="#f32"/>
6631
 
          <eq left="register_format" right="#u32"/>
6632
 
        </or>
6633
 
        <or>
6634
 
          <eq left="register_format" right="#f16"/>
6635
 
          <eq left="register_format" right="#s32"/>
6636
 
        </or>
6637
 
      </derived>
6638
 
    </encoding>
6639
 
    <encoding mask="0xffc00" exact="0xcf800">
6640
 
      <eq left="register_format" right="#auto"/>
6641
 
    </encoding>
6642
 
  </ins>
6643
 
 
6644
 
  <ins name="+LD_VAR_IMM" staging="w=format" message="varying">
6645
 
    <src start="0"/>
6646
 
    <immediate name="index" start="3" size="5"/>
6647
 
    <mod name="vecsize" start="8" size="2">
6648
 
      <opt>none</opt>
6649
 
      <opt>v2</opt>
6650
 
      <opt>v3</opt>
6651
 
      <opt>v4</opt>
6652
 
    </mod>
6653
 
    <mod name="update" size="2">
6654
 
      <opt>store</opt>
6655
 
      <opt>retrieve</opt>
6656
 
      <opt>conditional</opt>
6657
 
      <opt>clobber</opt>
6658
 
    </mod>
6659
 
    <mod name="register_format" size="2">
6660
 
      <opt>f32</opt>
6661
 
      <opt>f16</opt>
6662
 
      <opt>auto</opt>
6663
 
    </mod>
6664
 
    <mod name="sample" size="3">
6665
 
      <opt>center</opt>
6666
 
      <opt>centroid</opt>
6667
 
      <opt>sample</opt>
6668
 
      <opt>explicit</opt>
6669
 
      <opt>none</opt>
6670
 
    </mod>
6671
 
    <encoding mask="0x7c000" exact="0x50000">
6672
 
      <neq left="register_format" right="#auto"/>
6673
 
      <derived start="19" size="1">
6674
 
        <eq left="register_format" right="#f32"/>
6675
 
        <eq left="register_format" right="#f16"/>
6676
 
      </derived>
6677
 
      <derived start="10" size="4">
6678
 
        <and>
6679
 
          <eq left="sample" right="#center"/>
6680
 
          <eq left="update" right="#store"/>
6681
 
        </and>
6682
 
        <and>
6683
 
          <eq left="sample" right="#centroid"/>
6684
 
          <eq left="update" right="#store"/>
6685
 
        </and>
6686
 
        <and>
6687
 
          <eq left="sample" right="#sample"/>
6688
 
          <eq left="update" right="#store"/>
6689
 
        </and>
6690
 
        <and>
6691
 
          <eq left="sample" right="#explicit"/>
6692
 
          <eq left="update" right="#store"/>
6693
 
        </and>
6694
 
        <and>
6695
 
          <eq left="sample" right="#none"/>
6696
 
          <eq left="update" right="#retrieve"/>
6697
 
        </and>
6698
 
        <reserved/>
6699
 
        <reserved/>
6700
 
        <reserved/>
6701
 
        <and>
6702
 
          <eq left="sample" right="#center"/>
6703
 
          <eq left="update" right="#conditional"/>
6704
 
        </and>
6705
 
        <and>
6706
 
          <eq left="sample" right="#centroid"/>
6707
 
          <eq left="update" right="#conditional"/>
6708
 
        </and>
6709
 
        <and>
6710
 
          <eq left="sample" right="#center"/>
6711
 
          <eq left="update" right="#clobber"/>
6712
 
        </and>
6713
 
        <and>
6714
 
          <eq left="sample" right="#centroid"/>
6715
 
          <eq left="update" right="#clobber"/>
6716
 
        </and>
6717
 
        <and>
6718
 
          <eq left="sample" right="#sample"/>
6719
 
          <eq left="update" right="#clobber"/>
6720
 
        </and>
6721
 
        <and>
6722
 
          <eq left="sample" right="#explicit"/>
6723
 
          <eq left="update" right="#clobber"/>
6724
 
        </and>
6725
 
        <reserved/>
6726
 
        <reserved/>
6727
 
      </derived>
6728
 
    </encoding>
6729
 
    <encoding mask="0xfc000" exact="0xcc000">
6730
 
      <eq left="register_format" right="#auto"/>
6731
 
      <derived start="10" size="4">
6732
 
        <and>
6733
 
          <eq left="sample" right="#center"/>
6734
 
          <eq left="update" right="#store"/>
6735
 
        </and>
6736
 
        <and>
6737
 
          <eq left="sample" right="#centroid"/>
6738
 
          <eq left="update" right="#store"/>
6739
 
        </and>
6740
 
        <and>
6741
 
          <eq left="sample" right="#sample"/>
6742
 
          <eq left="update" right="#store"/>
6743
 
        </and>
6744
 
        <and>
6745
 
          <eq left="sample" right="#explicit"/>
6746
 
          <eq left="update" right="#store"/>
6747
 
        </and>
6748
 
        <and>
6749
 
          <eq left="sample" right="#none"/>
6750
 
          <eq left="update" right="#retrieve"/>
6751
 
        </and>
6752
 
        <reserved/>
6753
 
        <reserved/>
6754
 
        <reserved/>
6755
 
        <and>
6756
 
          <eq left="sample" right="#center"/>
6757
 
          <eq left="update" right="#conditional"/>
6758
 
        </and>
6759
 
        <and>
6760
 
          <eq left="sample" right="#centroid"/>
6761
 
          <eq left="update" right="#conditional"/>
6762
 
        </and>
6763
 
        <and>
6764
 
          <eq left="sample" right="#center"/>
6765
 
          <eq left="update" right="#clobber"/>
6766
 
        </and>
6767
 
        <and>
6768
 
          <eq left="sample" right="#centroid"/>
6769
 
          <eq left="update" right="#clobber"/>
6770
 
        </and>
6771
 
        <and>
6772
 
          <eq left="sample" right="#sample"/>
6773
 
          <eq left="update" right="#clobber"/>
6774
 
        </and>
6775
 
        <and>
6776
 
          <eq left="sample" right="#explicit"/>
6777
 
          <eq left="update" right="#clobber"/>
6778
 
        </and>
6779
 
        <reserved/>
6780
 
        <reserved/>
6781
 
      </derived>
6782
 
    </encoding>
6783
 
  </ins>
6784
 
 
6785
 
  <ins name="+LD_VAR_SPECIAL" staging="w=format" message="varying">
6786
 
    <src start="0"/>
6787
 
    <mod name="varying_name" size="5">
6788
 
      <opt>point</opt>
6789
 
      <reserved/>
6790
 
      <opt>frag_w</opt>
6791
 
      <opt>frag_z</opt>
6792
 
    </mod>
6793
 
    <mod name="vecsize" size="2">
6794
 
      <opt>none</opt>
6795
 
      <opt>v2</opt>
6796
 
      <opt>v3</opt>
6797
 
      <opt>v4</opt>
6798
 
    </mod>
6799
 
    <mod name="update" size="2">
6800
 
      <opt>store</opt>
6801
 
      <opt>retrieve</opt>
6802
 
      <opt>conditional</opt>
6803
 
      <opt>clobber</opt>
6804
 
    </mod>
6805
 
    <mod name="register_format" size="2">
6806
 
      <opt>f32</opt>
6807
 
      <opt>f16</opt>
6808
 
      <opt>auto</opt>
6809
 
    </mod>
6810
 
    <mod name="sample" size="3">
6811
 
      <opt>center</opt>
6812
 
      <opt>centroid</opt>
6813
 
      <opt>sample</opt>
6814
 
      <opt>explicit</opt>
6815
 
      <opt>none</opt>
6816
 
    </mod>
6817
 
    <encoding mask="0x7c3e0" exact="0x500a0">
6818
 
      <neq left="register_format" right="#auto"/>
6819
 
      <derived start="3" size="2">
6820
 
        <and>
6821
 
          <eq left="varying_name" right="#point"/>
6822
 
          <eq left="vecsize" right="#v2"/>
6823
 
          <eq left="update" right="#clobber"/>
6824
 
        </and>
6825
 
        <reserved/>
6826
 
        <and>
6827
 
          <eq left="varying_name" right="#frag_w"/>
6828
 
          <eq left="vecsize" right="#none"/>
6829
 
          <eq left="update" right="#clobber"/>
6830
 
        </and>
6831
 
        <and>
6832
 
          <eq left="varying_name" right="#frag_z"/>
6833
 
          <eq left="vecsize" right="#none"/>
6834
 
          <eq left="update" right="#clobber"/>
6835
 
          <neq left="sample" right="#explicit"/>
6836
 
          <neq left="register_format" right="#auto"/>
6837
 
        </and>
6838
 
      </derived>
6839
 
      <derived start="19" size="1">
6840
 
        <eq left="register_format" right="#f32"/>
6841
 
        <eq left="register_format" right="#f16"/>
6842
 
      </derived>
6843
 
      <derived start="10" size="4">
6844
 
        <and>
6845
 
          <eq left="sample" right="#center"/>
6846
 
          <eq left="update" right="#store"/>
6847
 
        </and>
6848
 
        <and>
6849
 
          <eq left="sample" right="#centroid"/>
6850
 
          <eq left="update" right="#store"/>
6851
 
        </and>
6852
 
        <and>
6853
 
          <eq left="sample" right="#sample"/>
6854
 
          <eq left="update" right="#store"/>
6855
 
        </and>
6856
 
        <and>
6857
 
          <eq left="sample" right="#explicit"/>
6858
 
          <eq left="update" right="#store"/>
6859
 
        </and>
6860
 
        <and>
6861
 
          <eq left="sample" right="#none"/>
6862
 
          <eq left="update" right="#retrieve"/>
6863
 
        </and>
6864
 
        <reserved/>
6865
 
        <reserved/>
6866
 
        <reserved/>
6867
 
        <and>
6868
 
          <eq left="sample" right="#center"/>
6869
 
          <eq left="update" right="#conditional"/>
6870
 
        </and>
6871
 
        <and>
6872
 
          <eq left="sample" right="#centroid"/>
6873
 
          <eq left="update" right="#conditional"/>
6874
 
        </and>
6875
 
        <and>
6876
 
          <eq left="sample" right="#center"/>
6877
 
          <eq left="update" right="#clobber"/>
6878
 
        </and>
6879
 
        <and>
6880
 
          <eq left="sample" right="#centroid"/>
6881
 
          <eq left="update" right="#clobber"/>
6882
 
        </and>
6883
 
        <and>
6884
 
          <eq left="sample" right="#sample"/>
6885
 
          <eq left="update" right="#clobber"/>
6886
 
        </and>
6887
 
        <and>
6888
 
          <eq left="sample" right="#explicit"/>
6889
 
          <eq left="update" right="#clobber"/>
6890
 
        </and>
6891
 
        <reserved/>
6892
 
        <reserved/>
6893
 
      </derived>
6894
 
    </encoding>
6895
 
    <encoding mask="0xfc3e0" exact="0xcc0a0">
6896
 
      <eq left="register_format" right="#auto"/>
6897
 
      <derived start="3" size="2">
6898
 
        <and>
6899
 
          <eq left="varying_name" right="#point"/>
6900
 
          <eq left="vecsize" right="#v2"/>
6901
 
          <eq left="update" right="#clobber"/>
6902
 
        </and>
6903
 
        <reserved/>
6904
 
        <and>
6905
 
          <eq left="varying_name" right="#frag_w"/>
6906
 
          <eq left="vecsize" right="#none"/>
6907
 
          <eq left="update" right="#clobber"/>
6908
 
        </and>
6909
 
        <and>
6910
 
          <eq left="varying_name" right="#frag_z"/>
6911
 
          <eq left="vecsize" right="#none"/>
6912
 
          <eq left="update" right="#clobber"/>
6913
 
          <neq left="sample" right="#explicit"/>
6914
 
          <neq left="register_format" right="#auto"/>
6915
 
        </and>
6916
 
      </derived>
6917
 
      <derived start="10" size="4">
6918
 
        <and>
6919
 
          <eq left="sample" right="#center"/>
6920
 
          <eq left="update" right="#store"/>
6921
 
        </and>
6922
 
        <and>
6923
 
          <eq left="sample" right="#centroid"/>
6924
 
          <eq left="update" right="#store"/>
6925
 
        </and>
6926
 
        <and>
6927
 
          <eq left="sample" right="#sample"/>
6928
 
          <eq left="update" right="#store"/>
6929
 
        </and>
6930
 
        <and>
6931
 
          <eq left="sample" right="#explicit"/>
6932
 
          <eq left="update" right="#store"/>
6933
 
        </and>
6934
 
        <and>
6935
 
          <eq left="sample" right="#none"/>
6936
 
          <eq left="update" right="#retrieve"/>
6937
 
        </and>
6938
 
        <reserved/>
6939
 
        <reserved/>
6940
 
        <reserved/>
6941
 
        <and>
6942
 
          <eq left="sample" right="#center"/>
6943
 
          <eq left="update" right="#conditional"/>
6944
 
        </and>
6945
 
        <and>
6946
 
          <eq left="sample" right="#centroid"/>
6947
 
          <eq left="update" right="#conditional"/>
6948
 
        </and>
6949
 
        <and>
6950
 
          <eq left="sample" right="#center"/>
6951
 
          <eq left="update" right="#clobber"/>
6952
 
        </and>
6953
 
        <and>
6954
 
          <eq left="sample" right="#centroid"/>
6955
 
          <eq left="update" right="#clobber"/>
6956
 
        </and>
6957
 
        <and>
6958
 
          <eq left="sample" right="#sample"/>
6959
 
          <eq left="update" right="#clobber"/>
6960
 
        </and>
6961
 
        <and>
6962
 
          <eq left="sample" right="#explicit"/>
6963
 
          <eq left="update" right="#clobber"/>
6964
 
        </and>
6965
 
        <reserved/>
6966
 
        <reserved/>
6967
 
      </derived>
6968
 
    </encoding>
6969
 
  </ins>
6970
 
 
6971
 
  <ins name="+LEA_ATTR" staging="w=3" message="attribute">
6972
 
    <src start="0"/>
6973
 
    <src start="3"/>
6974
 
    <src start="6"/>
6975
 
    <mod name="register_format" size="4">
6976
 
      <opt>f16</opt>
6977
 
      <opt>f32</opt>
6978
 
      <opt>s32</opt>
6979
 
      <opt>u32</opt>
6980
 
      <opt>s16</opt>
6981
 
      <opt>u16</opt>
6982
 
      <opt>f64</opt>
6983
 
      <opt>i64</opt>
6984
 
      <opt>auto</opt>
6985
 
    </mod>
6986
 
    <encoding mask="0xfc600" exact="0xc0400">
6987
 
      <neq left="register_format" right="#auto"/>
6988
 
      <derived start="11" size="3">
6989
 
        <eq left="register_format" right="#f16"/>
6990
 
        <eq left="register_format" right="#f32"/>
6991
 
        <eq left="register_format" right="#s32"/>
6992
 
        <eq left="register_format" right="#u32"/>
6993
 
        <eq left="register_format" right="#s16"/>
6994
 
        <eq left="register_format" right="#u16"/>
6995
 
        <eq left="register_format" right="#f64"/>
6996
 
        <eq left="register_format" right="#i64"/>
6997
 
      </derived>
6998
 
    </encoding>
6999
 
    <encoding mask="0xffe00" exact="0xc8400">
7000
 
      <eq left="register_format" right="#auto"/>
7001
 
    </encoding>
7002
 
  </ins>
7003
 
 
7004
 
  <ins name="+LEA_ATTR_IMM" staging="w=3" message="attribute">
7005
 
    <src start="0"/>
7006
 
    <src start="3"/>
7007
 
    <immediate name="attribute_index" start="6" size="4"/>
7008
 
    <mod name="register_format" size="4">
7009
 
      <opt>f16</opt>
7010
 
      <opt>f32</opt>
7011
 
      <opt>s32</opt>
7012
 
      <opt>u32</opt>
7013
 
      <opt>s16</opt>
7014
 
      <opt>u16</opt>
7015
 
      <opt>f64</opt>
7016
 
      <opt>i64</opt>
7017
 
      <opt>auto</opt>
7018
 
    </mod>
7019
 
    <encoding mask="0xfc400" exact="0xc0000">
7020
 
      <neq left="register_format" right="#auto"/>
7021
 
      <derived start="11" size="3">
7022
 
        <eq left="register_format" right="#f16"/>
7023
 
        <eq left="register_format" right="#f32"/>
7024
 
        <eq left="register_format" right="#s32"/>
7025
 
        <eq left="register_format" right="#u32"/>
7026
 
        <eq left="register_format" right="#s16"/>
7027
 
        <eq left="register_format" right="#u16"/>
7028
 
        <eq left="register_format" right="#f64"/>
7029
 
        <eq left="register_format" right="#i64"/>
7030
 
      </derived>
7031
 
    </encoding>
7032
 
    <encoding mask="0xffc00" exact="0xc8000">
7033
 
      <eq left="register_format" right="#auto"/>
7034
 
    </encoding>
7035
 
  </ins>
7036
 
 
7037
 
  <ins name="+LEA_ATTR_TEX" staging="w=3" message="attribute">
7038
 
    <src start="0"/>
7039
 
    <src start="3"/>
7040
 
    <src start="6"/>
7041
 
    <mod name="register_format" size="4">
7042
 
      <opt>f16</opt>
7043
 
      <opt>f32</opt>
7044
 
      <opt>s32</opt>
7045
 
      <opt>u32</opt>
7046
 
      <opt>s16</opt>
7047
 
      <opt>u16</opt>
7048
 
      <opt>f64</opt>
7049
 
      <opt>i64</opt>
7050
 
      <opt>auto</opt>
7051
 
    </mod>
7052
 
    <encoding mask="0xfc600" exact="0xc0600">
7053
 
      <neq left="register_format" right="#auto"/>
7054
 
      <derived start="11" size="3">
7055
 
        <eq left="register_format" right="#f16"/>
7056
 
        <eq left="register_format" right="#f32"/>
7057
 
        <eq left="register_format" right="#s32"/>
7058
 
        <eq left="register_format" right="#u32"/>
7059
 
        <eq left="register_format" right="#s16"/>
7060
 
        <eq left="register_format" right="#u16"/>
7061
 
        <eq left="register_format" right="#f64"/>
7062
 
        <eq left="register_format" right="#i64"/>
7063
 
      </derived>
7064
 
    </encoding>
7065
 
    <encoding mask="0xffe00" exact="0xc8600">
7066
 
      <eq left="register_format" right="#auto"/>
7067
 
    </encoding>
7068
 
  </ins>
7069
 
 
7070
 
  <ins name="+LEA_TEX" staging="w=3" mask="0xff600" exact="0xd6600" message="attribute">
7071
 
    <src start="0"/>
7072
 
    <src start="3"/>
7073
 
    <src start="6"/>
7074
 
    <mod name="format" start="11" size="1">
7075
 
      <opt>u16</opt>
7076
 
      <opt>u32</opt>
7077
 
    </mod>
7078
 
  </ins>
7079
 
 
7080
 
  <ins name="+LEA_TEX_IMM" staging="w=3" mask="0xff000" exact="0xd6000" message="attribute">
7081
 
    <src start="0"/>
7082
 
    <src start="3"/>
7083
 
    <immediate name="texture_index" start="6" size="5"/>
7084
 
    <mod name="format" start="11" size="1">
7085
 
      <opt>u16</opt>
7086
 
      <opt>u32</opt>
7087
 
    </mod>
7088
 
  </ins>
7089
 
 
7090
 
  <ins name="+LOAD.i128" staging="w=4" mask="0xffe00" exact="0x61000" message="load">
7091
 
    <src start="0"/>
7092
 
    <src start="3"/>
7093
 
    <mod name="seg" start="6" size="3">
7094
 
      <reserved/>
7095
 
      <opt>none</opt>
7096
 
      <opt>wls</opt>
7097
 
      <opt>stream</opt>
7098
 
      <opt>ubo</opt>
7099
 
      <reserved/>
7100
 
      <reserved/>
7101
 
      <opt>tl</opt>
7102
 
    </mod>
7103
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7104
 
  </ins>
7105
 
 
7106
 
  <ins name="+LOAD.i16" staging="w=1" message="load">
7107
 
    <src start="0"/>
7108
 
    <src start="3"/>
7109
 
    <mod name="seg" start="6" size="3">
7110
 
      <reserved/>
7111
 
      <opt>none</opt>
7112
 
      <opt>wls</opt>
7113
 
      <opt>stream</opt>
7114
 
      <opt>ubo</opt>
7115
 
      <reserved/>
7116
 
      <reserved/>
7117
 
      <opt>tl</opt>
7118
 
    </mod>
7119
 
    <mod name="lane_dest" size="2" default="h0">
7120
 
      <opt>h0</opt>
7121
 
      <opt>h1</opt>
7122
 
      <opt>w0</opt>
7123
 
      <opt>d0</opt>
7124
 
    </mod>
7125
 
    <mod name="extend" size="2">
7126
 
      <opt>none</opt>
7127
 
      <opt>sext</opt>
7128
 
      <opt>zext</opt>
7129
 
    </mod>
7130
 
    <encoding mask="0xffc00" exact="0x60800">
7131
 
      <and>
7132
 
        <eq left="extend" right="#none"/>
7133
 
        <or>
7134
 
          <eq left="lane_dest" right="#h0"/>
7135
 
          <eq left="lane_dest" right="#h1"/>
7136
 
        </or>
7137
 
      </and>
7138
 
      <derived start="9" size="1">
7139
 
        <eq left="lane_dest" right="#h0"/>
7140
 
        <eq left="lane_dest" right="#h1"/>
7141
 
      </derived>
7142
 
    </encoding>
7143
 
    <encoding mask="0xffc00" exact="0x63000">
7144
 
      <and>
7145
 
        <neq left="extend" right="#none"/>
7146
 
        <eq left="lane_dest" right="#w0"/>
7147
 
      </and>
7148
 
      <derived start="9" size="1">
7149
 
        <eq left="extend" right="#sext"/>
7150
 
        <eq left="extend" right="#zext"/>
7151
 
      </derived>
7152
 
    </encoding>
7153
 
    <encoding mask="0xffc00" exact="0x61800">
7154
 
      <and>
7155
 
        <neq left="extend" right="#none"/>
7156
 
        <eq left="lane_dest" right="#d0"/>
7157
 
      </and>
7158
 
      <derived start="9" size="1">
7159
 
        <eq left="extend" right="#sext"/>
7160
 
        <eq left="extend" right="#zext"/>
7161
 
      </derived>
7162
 
    </encoding>
7163
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7164
 
  </ins>
7165
 
 
7166
 
  <ins name="+LOAD.i24" staging="w=1" mask="0xffe00" exact="0x65000" message="load">
7167
 
    <src start="0"/>
7168
 
    <src start="3"/>
7169
 
    <mod name="seg" start="6" size="3">
7170
 
      <reserved/>
7171
 
      <opt>none</opt>
7172
 
      <opt>wls</opt>
7173
 
      <opt>stream</opt>
7174
 
      <opt>ubo</opt>
7175
 
      <reserved/>
7176
 
      <reserved/>
7177
 
      <opt>tl</opt>
7178
 
    </mod>
7179
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7180
 
  </ins>
7181
 
 
7182
 
  <ins name="+LOAD.i32" staging="w=1" message="load">
7183
 
    <src start="0"/>
7184
 
    <src start="3"/>
7185
 
    <mod name="seg" start="6" size="3">
7186
 
      <reserved/>
7187
 
      <opt>none</opt>
7188
 
      <opt>wls</opt>
7189
 
      <opt>stream</opt>
7190
 
      <opt>ubo</opt>
7191
 
      <reserved/>
7192
 
      <reserved/>
7193
 
      <opt>tl</opt>
7194
 
    </mod>
7195
 
    <mod name="lane_dest" size="1" opt="d0"/>
7196
 
    <mod name="extend" size="2">
7197
 
      <opt>none</opt>
7198
 
      <opt>sext</opt>
7199
 
      <opt>zext</opt>
7200
 
    </mod>
7201
 
    <encoding mask="0xffe00" exact="0x60c00">
7202
 
      <and>
7203
 
        <eq left="extend" right="#none"/>
7204
 
        <eq left="lane_dest" right="#none"/>
7205
 
      </and>
7206
 
    </encoding>
7207
 
    <encoding mask="0xffc00" exact="0x61c00">
7208
 
      <and>
7209
 
        <neq left="extend" right="#none"/>
7210
 
        <eq left="lane_dest" right="#d0"/>
7211
 
      </and>
7212
 
      <derived start="9" size="1">
7213
 
        <eq left="extend" right="#sext"/>
7214
 
        <eq left="extend" right="#zext"/>
7215
 
      </derived>
7216
 
    </encoding>
7217
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7218
 
  </ins>
7219
 
 
7220
 
  <ins name="+LOAD.i48" staging="w=2" mask="0xffe00" exact="0x65200" message="load">
7221
 
    <src start="0"/>
7222
 
    <src start="3"/>
7223
 
    <mod name="seg" start="6" size="3">
7224
 
      <reserved/>
7225
 
      <opt>none</opt>
7226
 
      <opt>wls</opt>
7227
 
      <opt>stream</opt>
7228
 
      <opt>ubo</opt>
7229
 
      <reserved/>
7230
 
      <reserved/>
7231
 
      <opt>tl</opt>
7232
 
    </mod>
7233
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7234
 
  </ins>
7235
 
 
7236
 
  <ins name="+LOAD.i64" staging="w=2" mask="0xffe00" exact="0x60e00" message="load">
7237
 
    <src start="0"/>
7238
 
    <src start="3"/>
7239
 
    <mod name="seg" start="6" size="3">
7240
 
      <reserved/>
7241
 
      <opt>none</opt>
7242
 
      <opt>wls</opt>
7243
 
      <opt>stream</opt>
7244
 
      <opt>ubo</opt>
7245
 
      <reserved/>
7246
 
      <reserved/>
7247
 
      <opt>tl</opt>
7248
 
    </mod>
7249
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7250
 
  </ins>
7251
 
 
7252
 
  <ins name="+LOAD.i8" staging="w=1" message="load">
7253
 
    <src start="0"/>
7254
 
    <src start="3"/>
7255
 
    <mod name="seg" start="6" size="3">
7256
 
      <reserved/>
7257
 
      <opt>none</opt>
7258
 
      <opt>wls</opt>
7259
 
      <opt>stream</opt>
7260
 
      <opt>ubo</opt>
7261
 
      <reserved/>
7262
 
      <reserved/>
7263
 
      <opt>tl</opt>
7264
 
    </mod>
7265
 
    <mod name="lane_dest" size="3" default="b0">
7266
 
      <opt>b0</opt>
7267
 
      <opt>b1</opt>
7268
 
      <opt>b2</opt>
7269
 
      <opt>b3</opt>
7270
 
      <opt>h0</opt>
7271
 
      <opt>h1</opt>
7272
 
      <opt>w0</opt>
7273
 
      <opt>d0</opt>
7274
 
    </mod>
7275
 
    <mod name="extend" size="2">
7276
 
      <opt>none</opt>
7277
 
      <opt>sext</opt>
7278
 
      <opt>zext</opt>
7279
 
    </mod>
7280
 
    <encoding mask="0xff800" exact="0x60000">
7281
 
      <and>
7282
 
        <eq left="extend" right="#none"/>
7283
 
        <or>
7284
 
          <eq left="lane_dest" right="#b0"/>
7285
 
          <eq left="lane_dest" right="#b1"/>
7286
 
          <eq left="lane_dest" right="#b2"/>
7287
 
          <eq left="lane_dest" right="#b3"/>
7288
 
        </or>
7289
 
      </and>
7290
 
      <derived start="9" size="2">
7291
 
        <eq left="lane_dest" right="#b0"/>
7292
 
        <eq left="lane_dest" right="#b1"/>
7293
 
        <eq left="lane_dest" right="#b2"/>
7294
 
        <eq left="lane_dest" right="#b3"/>
7295
 
      </derived>
7296
 
    </encoding>
7297
 
    <encoding mask="0xff800" exact="0x63800">
7298
 
      <and>
7299
 
        <neq left="extend" right="#none"/>
7300
 
        <or>
7301
 
          <eq left="lane_dest" right="#h0"/>
7302
 
          <eq left="lane_dest" right="#h1"/>
7303
 
        </or>
7304
 
      </and>
7305
 
      <derived start="9" size="1">
7306
 
        <eq left="extend" right="#sext"/>
7307
 
        <eq left="extend" right="#zext"/>
7308
 
      </derived>
7309
 
      <derived start="10" size="1">
7310
 
        <eq left="lane_dest" right="#h0"/>
7311
 
        <eq left="lane_dest" right="#h1"/>
7312
 
      </derived>
7313
 
    </encoding>
7314
 
    <encoding mask="0xffc00" exact="0x63400">
7315
 
      <and>
7316
 
        <neq left="extend" right="#none"/>
7317
 
        <eq left="lane_dest" right="#w0"/>
7318
 
      </and>
7319
 
      <derived start="9" size="1">
7320
 
        <eq left="extend" right="#sext"/>
7321
 
        <eq left="extend" right="#zext"/>
7322
 
      </derived>
7323
 
    </encoding>
7324
 
    <encoding mask="0xffc00" exact="0x61400">
7325
 
      <and>
7326
 
        <neq left="extend" right="#none"/>
7327
 
        <eq left="lane_dest" right="#d0"/>
7328
 
      </and>
7329
 
      <derived start="9" size="1">
7330
 
        <eq left="extend" right="#sext"/>
7331
 
        <eq left="extend" right="#zext"/>
7332
 
      </derived>
7333
 
    </encoding>
7334
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7335
 
  </ins>
7336
 
 
7337
 
  <ins name="+LOAD.i96" staging="w=3" mask="0xffe00" exact="0x65400" message="load">
7338
 
    <src start="0"/>
7339
 
    <src start="3"/>
7340
 
    <mod name="seg" start="6" size="3">
7341
 
      <reserved/>
7342
 
      <opt>none</opt>
7343
 
      <opt>wls</opt>
7344
 
      <opt>stream</opt>
7345
 
      <opt>ubo</opt>
7346
 
      <reserved/>
7347
 
      <reserved/>
7348
 
      <opt>tl</opt>
7349
 
    </mod>
7350
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7351
 
  </ins>
7352
 
 
7353
 
  <ins name="+LOGB.f32" mask="0xfffe0" exact="0x3d9a0">
7354
 
    <src start="0"/>
7355
 
    <mod name="widen0" start="3" size="2">
7356
 
      <reserved/>
7357
 
      <opt>none</opt>
7358
 
      <opt>h0</opt>
7359
 
      <opt>h1</opt>
7360
 
    </mod>
7361
 
  </ins>
7362
 
 
7363
 
  <ins name="+LOGB.v2f16" mask="0xfffe0" exact="0x3d980">
7364
 
    <src start="0"/>
7365
 
    <mod name="swz0" start="3" size="2" default="h01">
7366
 
      <opt>h00</opt>
7367
 
      <opt>h10</opt>
7368
 
      <opt>h01</opt>
7369
 
      <opt>h11</opt>
7370
 
    </mod>
7371
 
  </ins>
7372
 
 
7373
 
  <ins name="+MKVEC.v2i16" mask="0xfff00" exact="0x75300">
7374
 
    <src start="0"/>
7375
 
    <src start="3"/>
7376
 
    <mod name="lane0" start="6" size="1" default="h0">
7377
 
      <opt>h0</opt>
7378
 
      <opt>h1</opt>
7379
 
    </mod>
7380
 
    <mod name="lane1" start="7" size="1" default="h0">
7381
 
      <opt>h0</opt>
7382
 
      <opt>h1</opt>
7383
 
    </mod>
7384
 
  </ins>
7385
 
 
7386
 
  <ins name="+MOV.i32" mask="0xffff8" exact="0x3d968">
7387
 
    <src start="0"/>
7388
 
  </ins>
7389
 
 
7390
 
  <ins name="+MUX.i32" mask="0xff800" exact="0x74000">
7391
 
    <src start="0"/>
7392
 
    <src start="3"/>
7393
 
    <src start="6"/>
7394
 
    <mod name="mux" start="9" size="2" default="int_zero">
7395
 
      <opt>neg</opt>
7396
 
      <opt>int_zero</opt>
7397
 
      <opt>fp_zero</opt>
7398
 
      <opt>bit</opt>
7399
 
    </mod>
7400
 
  </ins>
7401
 
 
7402
 
  <ins name="+MUX.v2i16" mask="0xfc000" exact="0x70000">
7403
 
    <src start="0"/>
7404
 
    <src start="3"/>
7405
 
    <src start="6"/>
7406
 
    <mod name="mux" start="9" size="2" default="int_zero">
7407
 
      <opt>neg</opt>
7408
 
      <opt>int_zero</opt>
7409
 
      <opt>fp_zero</opt>
7410
 
      <opt>bit</opt>
7411
 
    </mod>
7412
 
    <mod name="swap2" start="11" size="1" default="h01">
7413
 
      <opt>h01</opt>
7414
 
      <opt>h10</opt>
7415
 
    </mod>
7416
 
    <mod name="swap1" start="12" size="1" default="h01">
7417
 
      <opt>h01</opt>
7418
 
      <opt>h10</opt>
7419
 
    </mod>
7420
 
    <mod name="swap0" start="13" size="1" default="h01">
7421
 
      <opt>h01</opt>
7422
 
      <opt>h10</opt>
7423
 
    </mod>
7424
 
  </ins>
7425
 
 
7426
 
  <ins name="+MUX.v4i8" mask="0xffc00" exact="0x74800">
7427
 
    <src start="0"/>
7428
 
    <src start="3"/>
7429
 
    <src start="6"/>
7430
 
    <mod name="mux" start="9" size="1" default="int_zero">
7431
 
      <opt>neg</opt>
7432
 
      <opt>int_zero</opt>
7433
 
    </mod>
7434
 
  </ins>
7435
 
 
7436
 
  <ins name="+NOP" mask="0xfffff" exact="0x3d964" dests="0"/>
7437
 
 
7438
 
  <ins name="+QUIET.f32" mask="0xffff8" exact="0x3d970">
7439
 
    <src start="0"/>
7440
 
  </ins>
7441
 
 
7442
 
  <ins name="+QUIET.v2f16" mask="0xfffc8" exact="0x3d900">
7443
 
    <src start="0"/>
7444
 
    <mod name="swz0" start="4" size="2" default="h01">
7445
 
      <opt>h00</opt>
7446
 
      <opt>h10</opt>
7447
 
      <opt>h01</opt>
7448
 
      <opt>h11</opt>
7449
 
    </mod>
7450
 
  </ins>
7451
 
 
7452
 
  <ins name="+S16_TO_F32" mask="0xfffe8" exact="0x3cce0">
7453
 
    <src start="0"/>
7454
 
    <mod name="lane0" start="4" size="1" default="h0">
7455
 
      <opt>h0</opt>
7456
 
      <opt>h1</opt>
7457
 
    </mod>
7458
 
  </ins>
7459
 
 
7460
 
  <ins name="+S16_TO_S32" mask="0xfffe8" exact="0x3ccc0">
7461
 
    <src start="0"/>
7462
 
    <mod name="lane0" start="4" size="1" default="h0">
7463
 
      <opt>h0</opt>
7464
 
      <opt>h1</opt>
7465
 
    </mod>
7466
 
  </ins>
7467
 
 
7468
 
  <ins name="+S32_TO_F32">
7469
 
    <src start="0"/>
7470
 
    <mod name="round" size="3">
7471
 
      <opt>none</opt>
7472
 
      <opt>rtp</opt>
7473
 
      <opt>rtn</opt>
7474
 
      <opt>rtz</opt>
7475
 
      <opt>rtna</opt>
7476
 
    </mod>
7477
 
    <encoding mask="0xfffc8" exact="0x3cbc0">
7478
 
      <neq left="round" right="#rtna"/>
7479
 
      <derived start="4" size="2">
7480
 
        <eq left="round" right="#none"/>
7481
 
        <eq left="round" right="#rtp"/>
7482
 
        <eq left="round" right="#rtn"/>
7483
 
        <eq left="round" right="#rtz"/>
7484
 
      </derived>
7485
 
    </encoding>
7486
 
    <encoding mask="0xffff8" exact="0x3cd00">
7487
 
      <eq left="round" right="#rtna"/>
7488
 
    </encoding>
7489
 
  </ins>
7490
 
 
7491
 
  <ins name="+S8_TO_F32" mask="0xfffc8" exact="0x3cb80">
7492
 
    <src start="0"/>
7493
 
    <mod name="lane0" start="4" size="2" default="b0">
7494
 
      <opt>b0</opt>
7495
 
      <opt>b1</opt>
7496
 
      <opt>b2</opt>
7497
 
      <opt>b3</opt>
7498
 
    </mod>
7499
 
  </ins>
7500
 
 
7501
 
  <ins name="+S8_TO_S32" mask="0xfffc8" exact="0x3cb40">
7502
 
    <src start="0"/>
7503
 
    <mod name="lane0" start="4" size="2" default="b0">
7504
 
      <opt>b0</opt>
7505
 
      <opt>b1</opt>
7506
 
      <opt>b2</opt>
7507
 
      <opt>b3</opt>
7508
 
    </mod>
7509
 
  </ins>
7510
 
 
7511
 
  <ins name="+SEG_ADD" mask="0xfff40" exact="0x3d500">
7512
 
    <src start="0"/>
7513
 
    <mod name="seg" start="3" size="3">
7514
 
      <reserved/>
7515
 
      <reserved/>
7516
 
      <opt>wls</opt>
7517
 
      <reserved/>
7518
 
      <reserved/>
7519
 
      <reserved/>
7520
 
      <reserved/>
7521
 
      <opt>tl</opt>
7522
 
    </mod>
7523
 
    <mod name="preserve_null" start="7" size="1" opt="preserve_null"/>
7524
 
  </ins>
7525
 
 
7526
 
  <ins name="+SEG_SUB" mask="0xfff40" exact="0x3d540" unused="true">
7527
 
    <src start="0"/>
7528
 
    <mod name="seg" start="3" size="3">
7529
 
      <reserved/>
7530
 
      <reserved/>
7531
 
      <opt>wls</opt>
7532
 
      <reserved/>
7533
 
      <reserved/>
7534
 
      <reserved/>
7535
 
      <reserved/>
7536
 
      <opt>tl</opt>
7537
 
    </mod>
7538
 
    <mod name="preserve_null" start="7" size="1" opt="preserve_null"/>
7539
 
  </ins>
7540
 
 
7541
 
  <ins name="+SHADDXH.i32" mask="0xfffc0" exact="0x3f8c0">
7542
 
    <src start="0"/>
7543
 
    <src start="3"/>
7544
 
  </ins>
7545
 
 
7546
 
  <ins name="+SHIFT_DOUBLE.i32" mask="0xffe00" exact="0xefe00">
7547
 
    <src start="0"/>
7548
 
    <src start="3"/>
7549
 
    <src start="6"/>
7550
 
  </ins>
7551
 
 
7552
 
  <ins name="+STORE.i128" staging="r=4" mask="0xffe00" exact="0x61200" message="store" dests="0">
7553
 
    <src start="0"/>
7554
 
    <src start="3"/>
7555
 
    <mod name="seg" start="6" size="3">
7556
 
      <reserved/>
7557
 
      <opt>none</opt>
7558
 
      <opt>wls</opt>
7559
 
      <opt>stream</opt>
7560
 
      <opt pseudo="true">pos</opt>
7561
 
      <opt pseudo="true">vary</opt>
7562
 
      <reserved/>
7563
 
      <opt>tl</opt>
7564
 
    </mod>
7565
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7566
 
  </ins>
7567
 
 
7568
 
  <ins name="+STORE.i16" staging="r=1" mask="0xffe00" exact="0x62800" message="store" dests="0">
7569
 
    <src start="0"/>
7570
 
    <src start="3"/>
7571
 
    <mod name="seg" start="6" size="3">
7572
 
      <reserved/>
7573
 
      <opt>none</opt>
7574
 
      <opt>wls</opt>
7575
 
      <opt>stream</opt>
7576
 
      <opt pseudo="true">pos</opt>
7577
 
      <opt pseudo="true">vary</opt>
7578
 
      <reserved/>
7579
 
      <opt>tl</opt>
7580
 
    </mod>
7581
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7582
 
  </ins>
7583
 
 
7584
 
  <ins name="+STORE.i24" staging="r=1" mask="0xffe00" exact="0x65800" message="store" dests="0">
7585
 
    <src start="0"/>
7586
 
    <src start="3"/>
7587
 
    <mod name="seg" start="6" size="3">
7588
 
      <reserved/>
7589
 
      <opt>none</opt>
7590
 
      <opt>wls</opt>
7591
 
      <opt>stream</opt>
7592
 
      <opt pseudo="true">pos</opt>
7593
 
      <opt pseudo="true">vary</opt>
7594
 
      <reserved/>
7595
 
      <opt>tl</opt>
7596
 
    </mod>
7597
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7598
 
  </ins>
7599
 
 
7600
 
  <ins name="+STORE.i32" staging="r=1" mask="0xffe00" exact="0x62c00" message="store" dests="0">
7601
 
    <src start="0"/>
7602
 
    <src start="3"/>
7603
 
    <mod name="seg" start="6" size="3">
7604
 
      <reserved/>
7605
 
      <opt>none</opt>
7606
 
      <opt>wls</opt>
7607
 
      <opt>stream</opt>
7608
 
      <opt pseudo="true">pos</opt>
7609
 
      <opt pseudo="true">vary</opt>
7610
 
      <reserved/>
7611
 
      <opt>tl</opt>
7612
 
    </mod>
7613
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7614
 
  </ins>
7615
 
 
7616
 
  <ins name="+STORE.i48" staging="r=2" mask="0xffe00" exact="0x65a00" message="store" dests="0">
7617
 
    <src start="0"/>
7618
 
    <src start="3"/>
7619
 
    <mod name="seg" start="6" size="3">
7620
 
      <reserved/>
7621
 
      <opt>none</opt>
7622
 
      <opt>wls</opt>
7623
 
      <opt>stream</opt>
7624
 
      <opt pseudo="true">pos</opt>
7625
 
      <opt pseudo="true">vary</opt>
7626
 
      <reserved/>
7627
 
      <opt>tl</opt>
7628
 
    </mod>
7629
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7630
 
  </ins>
7631
 
 
7632
 
  <ins name="+STORE.i64" staging="r=2" mask="0xffe00" exact="0x62e00" message="store" dests="0">
7633
 
    <src start="0"/>
7634
 
    <src start="3"/>
7635
 
    <mod name="seg" start="6" size="3">
7636
 
      <reserved/>
7637
 
      <opt>none</opt>
7638
 
      <opt>wls</opt>
7639
 
      <opt>stream</opt>
7640
 
      <opt pseudo="true">pos</opt>
7641
 
      <opt pseudo="true">vary</opt>
7642
 
      <reserved/>
7643
 
      <opt>tl</opt>
7644
 
    </mod>
7645
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7646
 
  </ins>
7647
 
 
7648
 
  <ins name="+STORE.i8" staging="r=1" mask="0xffe00" exact="0x62000" message="store" dests="0">
7649
 
    <src start="0"/>
7650
 
    <src start="3"/>
7651
 
    <mod name="seg" start="6" size="3">
7652
 
      <reserved/>
7653
 
      <opt>none</opt>
7654
 
      <opt>wls</opt>
7655
 
      <opt>stream</opt>
7656
 
      <opt pseudo="true">pos</opt>
7657
 
      <opt pseudo="true">vary</opt>
7658
 
      <reserved/>
7659
 
      <opt>tl</opt>
7660
 
    </mod>
7661
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7662
 
  </ins>
7663
 
 
7664
 
  <ins name="+STORE.i96" staging="r=3" mask="0xffe00" exact="0x65c00" message="store" dests="0">
7665
 
    <src start="0"/>
7666
 
    <src start="3"/>
7667
 
    <mod name="seg" start="6" size="3">
7668
 
      <reserved/>
7669
 
      <opt>none</opt>
7670
 
      <opt>wls</opt>
7671
 
      <opt>stream</opt>
7672
 
      <opt pseudo="true">pos</opt>
7673
 
      <opt pseudo="true">vary</opt>
7674
 
      <reserved/>
7675
 
      <opt>tl</opt>
7676
 
    </mod>
7677
 
    <immediate name="byte_offset" size="16" pseudo="true"/>
7678
 
  </ins>
7679
 
 
7680
 
  <ins name="+ST_CVT" staging="r=format" mask="0xff800" exact="0xc9800" message="store" dests="0">
7681
 
    <src start="0"/>
7682
 
    <src start="3"/>
7683
 
    <src start="6" mask="0xf7"/>
7684
 
    <mod name="register_format" size="4" pseudo="true">
7685
 
      <opt>f16</opt>
7686
 
      <opt>f32</opt>
7687
 
      <opt>s32</opt>
7688
 
      <opt>u32</opt>
7689
 
      <opt>s16</opt>
7690
 
      <opt>u16</opt>
7691
 
      <opt>f64</opt>
7692
 
      <opt>i64</opt>
7693
 
    </mod>
7694
 
    <mod name="vecsize" start="9" size="2">
7695
 
      <opt>none</opt>
7696
 
      <opt>v2</opt>
7697
 
      <opt>v3</opt>
7698
 
      <opt>v4</opt>
7699
 
    </mod>
7700
 
  </ins>
7701
 
 
7702
 
  <ins name="+ST_TILE" staging="r=format" mask="0xff800" exact="0xcb800" message="tile" dests="0">
7703
 
    <src start="0"/>
7704
 
    <src start="3"/>
7705
 
    <src start="6" mask="0xf7"/>
7706
 
    <mod name="vecsize" start="9" size="2">
7707
 
      <opt>none</opt>
7708
 
      <opt>v2</opt>
7709
 
      <opt>v3</opt>
7710
 
      <opt>v4</opt>
7711
 
    </mod>
7712
 
    <mod name="register_format" size="3" pseudo="true">
7713
 
      <opt>f32</opt>
7714
 
      <opt>f16</opt>
7715
 
      <opt>u32</opt>
7716
 
      <opt>s32</opt>
7717
 
    </mod>
7718
 
  </ins>
7719
 
 
7720
 
  <ins name="+SWZ.v2i16" mask="0xfffc8" exact="0x3d948">
7721
 
    <src start="0"/>
7722
 
    <mod name="swz0" start="4" size="2">
7723
 
      <opt>h00</opt>
7724
 
      <opt>h10</opt>
7725
 
      <reserved/>
7726
 
      <opt>h11</opt>
7727
 
    </mod>
7728
 
  </ins>
7729
 
 
7730
 
  <ins name="+SWZ.v4i8" mask="0xfffc0" exact="0x3df40">
7731
 
    <src start="0"/>
7732
 
    <mod name="swz0" start="3" size="3">
7733
 
      <opt>b0000</opt>
7734
 
      <opt>b1111</opt>
7735
 
      <opt>b2222</opt>
7736
 
      <opt>b3333</opt>
7737
 
      <opt>b0011</opt>
7738
 
      <opt>b2233</opt>
7739
 
      <opt>b1032</opt>
7740
 
      <opt>b3210</opt>
7741
 
    </mod>
7742
 
  </ins>
7743
 
 
7744
 
  <ins name="+TEXC" staging="rw=sr_count" mask="0xffc00" exact="0xd7000" message="tex" dests="2">
7745
 
    <src start="0"/>
7746
 
    <src start="3"/>
7747
 
    <src start="6" mask="0xf7"/>
7748
 
    <mod name="skip" start="9" size="1" opt="skip"/>
7749
 
    <!-- not actually encoded, but used for IR -->
7750
 
    <immediate name="sr_count" size="4" pseudo="true"/>
7751
 
    <immediate name="sr_count_2" size="4" pseudo="true"/>
7752
 
    <mod name="lod_mode" start="13" size="1" default="zero_lod" pseudo="true">
7753
 
      <opt>computed_lod</opt>
7754
 
      <opt>zero_lod</opt>
7755
 
    </mod>
7756
 
  </ins>
7757
 
 
7758
 
  <ins name="+TEXS_2D.f16" staging="w=2" mask="0xfc000" exact="0xd8000" message="tex">
7759
 
    <src start="0"/>
7760
 
    <src start="3"/>
7761
 
    <immediate name="texture_index" start="6" size="3"/>
7762
 
    <immediate name="sampler_index" start="10" size="3"/>
7763
 
    <mod name="skip" start="9" size="1" opt="skip"/>
7764
 
    <mod name="lod_mode" start="13" size="1" default="zero_lod">
7765
 
      <opt>computed_lod</opt>
7766
 
      <opt>zero_lod</opt>
7767
 
    </mod>
7768
 
  </ins>
7769
 
 
7770
 
  <ins name="+TEXS_2D.f32" staging="w=4" mask="0xfc000" exact="0x58000" message="tex">
7771
 
    <src start="0"/>
7772
 
    <src start="3"/>
7773
 
    <immediate name="texture_index" start="6" size="3"/>
7774
 
    <immediate name="sampler_index" start="10" size="3"/>
7775
 
    <mod name="skip" start="9" size="1" opt="skip"/>
7776
 
    <mod name="lod_mode" start="13" size="1" default="zero_lod">
7777
 
      <opt>computed_lod</opt>
7778
 
      <opt>zero_lod</opt>
7779
 
    </mod>
7780
 
  </ins>
7781
 
 
7782
 
  <ins name="+TEXS_CUBE.f16" staging="w=2" mask="0xfc000" exact="0xdc000" message="tex">
7783
 
    <src start="0"/>
7784
 
    <src start="3"/>
7785
 
    <src start="6"/>
7786
 
    <immediate name="sampler_index" start="10" size="2"/>
7787
 
    <immediate name="texture_index" start="12" size="2"/>
7788
 
    <mod name="skip" start="9" size="1" opt="skip"/>
7789
 
  </ins>
7790
 
 
7791
 
  <ins name="+TEXS_CUBE.f32" staging="w=4" mask="0xfc000" exact="0x5c000" message="tex">
7792
 
    <src start="0"/>
7793
 
    <src start="3"/>
7794
 
    <src start="6"/>
7795
 
    <immediate name="sampler_index" start="10" size="2"/>
7796
 
    <immediate name="texture_index" start="12" size="2"/>
7797
 
    <mod name="skip" start="9" size="1" opt="skip"/>
7798
 
  </ins>
7799
 
 
7800
 
  <ins name="+U16_TO_F32" mask="0xfffe8" exact="0x3cce8">
7801
 
    <src start="0"/>
7802
 
    <mod name="lane0" start="4" size="1" default="h0">
7803
 
      <opt>h0</opt>
7804
 
      <opt>h1</opt>
7805
 
    </mod>
7806
 
  </ins>
7807
 
 
7808
 
  <ins name="+U16_TO_U32" mask="0xfffe8" exact="0x3ccc8">
7809
 
    <src start="0"/>
7810
 
    <mod name="lane0" start="4" size="1" default="h0">
7811
 
      <opt>h0</opt>
7812
 
      <opt>h1</opt>
7813
 
    </mod>
7814
 
  </ins>
7815
 
 
7816
 
  <ins name="+U32_TO_F32">
7817
 
    <src start="0"/>
7818
 
    <mod name="round" size="3">
7819
 
      <opt>none</opt>
7820
 
      <opt>rtp</opt>
7821
 
      <opt>rtn</opt>
7822
 
      <opt>rtz</opt>
7823
 
      <opt>rtna</opt>
7824
 
    </mod>
7825
 
    <encoding mask="0xfffc8" exact="0x3cbc8">
7826
 
      <neq left="round" right="#rtna"/>
7827
 
      <derived start="4" size="2">
7828
 
        <eq left="round" right="#none"/>
7829
 
        <eq left="round" right="#rtp"/>
7830
 
        <eq left="round" right="#rtn"/>
7831
 
        <eq left="round" right="#rtz"/>
7832
 
      </derived>
7833
 
    </encoding>
7834
 
    <encoding mask="0xffff8" exact="0x3cd08">
7835
 
      <eq left="round" right="#rtna"/>
7836
 
    </encoding>
7837
 
  </ins>
7838
 
 
7839
 
  <ins name="+U8_TO_F32" mask="0xfffc8" exact="0x3cb88">
7840
 
    <src start="0"/>
7841
 
    <mod name="lane0" start="4" size="2" default="b0">
7842
 
      <opt>b0</opt>
7843
 
      <opt>b1</opt>
7844
 
      <opt>b2</opt>
7845
 
      <opt>b3</opt>
7846
 
    </mod>
7847
 
  </ins>
7848
 
 
7849
 
  <ins name="+U8_TO_U32" mask="0xfffc8" exact="0x3cb48">
7850
 
    <src start="0"/>
7851
 
    <mod name="lane0" start="4" size="2" default="b0">
7852
 
      <opt>b0</opt>
7853
 
      <opt>b1</opt>
7854
 
      <opt>b2</opt>
7855
 
      <opt>b3</opt>
7856
 
    </mod>
7857
 
  </ins>
7858
 
 
7859
 
  <ins name="+V2F16_TO_V2S16">
7860
 
    <src start="0"/>
7861
 
    <mod name="round" size="3">
7862
 
      <opt>none</opt>
7863
 
      <opt>rtp</opt>
7864
 
      <opt>rtn</opt>
7865
 
      <opt>rtz</opt>
7866
 
      <opt>rtna</opt>
7867
 
    </mod>
7868
 
    <mod name="swz0" size="2" default="h01">
7869
 
      <opt>h00</opt>
7870
 
      <opt>h10</opt>
7871
 
      <opt>h01</opt>
7872
 
      <opt>h11</opt>
7873
 
    </mod>
7874
 
    <encoding mask="0xfff08" exact="0x3c200">
7875
 
      <neq left="round" right="#rtna"/>
7876
 
      <copy name="swz0" start="6"/>
7877
 
      <derived start="4" size="2">
7878
 
        <eq left="round" right="#none"/>
7879
 
        <eq left="round" right="#rtp"/>
7880
 
        <eq left="round" right="#rtn"/>
7881
 
        <eq left="round" right="#rtz"/>
7882
 
      </derived>
7883
 
    </encoding>
7884
 
    <encoding mask="0xfffc8" exact="0x3ca80">
7885
 
      <eq left="round" right="#rtna"/>
7886
 
      <copy name="swz0" start="4"/>
7887
 
    </encoding>
7888
 
  </ins>
7889
 
 
7890
 
  <ins name="+V2F16_TO_V2U16">
7891
 
    <src start="0"/>
7892
 
    <mod name="round" size="3">
7893
 
      <opt>none</opt>
7894
 
      <opt>rtp</opt>
7895
 
      <opt>rtn</opt>
7896
 
      <opt>rtz</opt>
7897
 
      <opt>rtna</opt>
7898
 
    </mod>
7899
 
    <mod name="swz0" size="2" default="h01">
7900
 
      <opt>h00</opt>
7901
 
      <opt>h10</opt>
7902
 
      <opt>h01</opt>
7903
 
      <opt>h11</opt>
7904
 
    </mod>
7905
 
    <encoding mask="0xfff08" exact="0x3c208">
7906
 
      <neq left="round" right="#rtna"/>
7907
 
      <copy name="swz0" start="6"/>
7908
 
      <derived start="4" size="2">
7909
 
        <eq left="round" right="#none"/>
7910
 
        <eq left="round" right="#rtp"/>
7911
 
        <eq left="round" right="#rtn"/>
7912
 
        <eq left="round" right="#rtz"/>
7913
 
      </derived>
7914
 
    </encoding>
7915
 
    <encoding mask="0xfffc8" exact="0x3ca88">
7916
 
      <eq left="round" right="#rtna"/>
7917
 
      <copy name="swz0" start="4"/>
7918
 
    </encoding>
7919
 
  </ins>
7920
 
 
7921
 
  <ins name="+V2F32_TO_V2F16" mask="0xfe000" exact="0x76000">
7922
 
    <src start="0"/>
7923
 
    <src start="3"/>
7924
 
    <mod name="abs0" size="1" opt="abs"/>
7925
 
    <mod name="abs1" size="1" opt="abs"/>
7926
 
    <mod name="neg0" size="1" opt="neg"/>
7927
 
    <mod name="neg1" size="1" opt="neg"/>
7928
 
    <mod name="clamp" start="8" size="2">
7929
 
      <opt>none</opt>
7930
 
      <opt>clamp_0_inf</opt>
7931
 
      <opt>clamp_m1_1</opt>
7932
 
      <opt>clamp_0_1</opt>
7933
 
    </mod>
7934
 
    <mod name="round" start="10" size="3">
7935
 
      <opt>none</opt>
7936
 
      <opt>rtp</opt>
7937
 
      <opt>rtn</opt>
7938
 
      <opt>rtz</opt>
7939
 
      <opt>rtna</opt>
7940
 
    </mod>
7941
 
    <derived start="6" size="1">
7942
 
      <and>
7943
 
        <eq left="abs0" right="#none"/>
7944
 
        <eq left="abs1" right="#none"/>
7945
 
      </and>
7946
 
      <and>
7947
 
        <eq left="abs0" right="#abs"/>
7948
 
        <eq left="abs1" right="#abs"/>
7949
 
      </and>
7950
 
    </derived>
7951
 
    <derived start="7" size="1">
7952
 
      <and>
7953
 
        <eq left="neg0" right="#none"/>
7954
 
        <eq left="neg1" right="#none"/>
7955
 
      </and>
7956
 
      <and>
7957
 
        <eq left="neg0" right="#neg"/>
7958
 
        <eq left="neg1" right="#neg"/>
7959
 
      </and>
7960
 
    </derived>
7961
 
  </ins>
7962
 
 
7963
 
  <ins name="+V2S16_TO_V2F16">
7964
 
    <src start="0"/>
7965
 
    <mod name="round" size="3">
7966
 
      <opt>none</opt>
7967
 
      <opt>rtp</opt>
7968
 
      <opt>rtn</opt>
7969
 
      <opt>rtz</opt>
7970
 
      <opt>rtna</opt>
7971
 
    </mod>
7972
 
    <mod name="swz0" size="2" default="h01">
7973
 
      <opt>h00</opt>
7974
 
      <opt>h10</opt>
7975
 
      <opt>h01</opt>
7976
 
      <opt>h11</opt>
7977
 
    </mod>
7978
 
    <encoding mask="0xfff08" exact="0x3c600">
7979
 
      <neq left="round" right="#rtna"/>
7980
 
      <copy name="swz0" start="6"/>
7981
 
      <derived start="4" size="2">
7982
 
        <eq left="round" right="#none"/>
7983
 
        <eq left="round" right="#rtp"/>
7984
 
        <eq left="round" right="#rtn"/>
7985
 
        <eq left="round" right="#rtz"/>
7986
 
      </derived>
7987
 
    </encoding>
7988
 
    <encoding mask="0xfffc8" exact="0x3cb00">
7989
 
      <eq left="round" right="#rtna"/>
7990
 
      <copy name="swz0" start="4"/>
7991
 
    </encoding>
7992
 
  </ins>
7993
 
 
7994
 
  <ins name="+V2S8_TO_V2F16" mask="0xfff08" exact="0x3c800">
7995
 
    <src start="0"/>
7996
 
    <mod name="swz0" start="4" size="4" default="b01">
7997
 
      <opt>b00</opt>
7998
 
      <opt>b10</opt>
7999
 
      <opt>b20</opt>
8000
 
      <opt>b30</opt>
8001
 
      <opt>b01</opt>
8002
 
      <opt>b11</opt>
8003
 
      <opt>b21</opt>
8004
 
      <opt>b31</opt>
8005
 
      <opt>b02</opt>
8006
 
      <opt>b12</opt>
8007
 
      <opt>b22</opt>
8008
 
      <opt>b32</opt>
8009
 
      <opt>b03</opt>
8010
 
      <opt>b13</opt>
8011
 
      <opt>b23</opt>
8012
 
      <opt>b33</opt>
8013
 
    </mod>
8014
 
  </ins>
8015
 
 
8016
 
  <ins name="+V2S8_TO_V2S16" mask="0xfff08" exact="0x3c700">
8017
 
    <src start="0"/>
8018
 
    <mod name="swz0" start="4" size="4" default="b01">
8019
 
      <opt>b00</opt>
8020
 
      <opt>b10</opt>
8021
 
      <opt>b20</opt>
8022
 
      <opt>b30</opt>
8023
 
      <opt>b01</opt>
8024
 
      <opt>b11</opt>
8025
 
      <opt>b21</opt>
8026
 
      <opt>b31</opt>
8027
 
      <opt>b02</opt>
8028
 
      <opt>b12</opt>
8029
 
      <opt>b22</opt>
8030
 
      <opt>b32</opt>
8031
 
      <opt>b03</opt>
8032
 
      <opt>b13</opt>
8033
 
      <opt>b23</opt>
8034
 
      <opt>b33</opt>
8035
 
    </mod>
8036
 
  </ins>
8037
 
 
8038
 
  <ins name="+V2U16_TO_V2F16">
8039
 
    <src start="0"/>
8040
 
    <mod name="round" size="3">
8041
 
      <opt>none</opt>
8042
 
      <opt>rtp</opt>
8043
 
      <opt>rtn</opt>
8044
 
      <opt>rtz</opt>
8045
 
      <opt>rtna</opt>
8046
 
    </mod>
8047
 
    <mod name="swz0" size="2" default="h01">
8048
 
      <opt>h00</opt>
8049
 
      <opt>h10</opt>
8050
 
      <opt>h01</opt>
8051
 
      <opt>h11</opt>
8052
 
    </mod>
8053
 
    <encoding mask="0xfff08" exact="0x3c608">
8054
 
      <neq left="round" right="#rtna"/>
8055
 
      <copy name="swz0" start="6"/>
8056
 
      <derived start="4" size="2">
8057
 
        <eq left="round" right="#none"/>
8058
 
        <eq left="round" right="#rtp"/>
8059
 
        <eq left="round" right="#rtn"/>
8060
 
        <eq left="round" right="#rtz"/>
8061
 
      </derived>
8062
 
    </encoding>
8063
 
    <encoding mask="0xfffc8" exact="0x3cb08">
8064
 
      <eq left="round" right="#rtna"/>
8065
 
      <copy name="swz0" start="4"/>
8066
 
    </encoding>
8067
 
  </ins>
8068
 
 
8069
 
  <ins name="+V2U8_TO_V2F16" mask="0xfff08" exact="0x3c808">
8070
 
    <src start="0"/>
8071
 
    <mod name="swz0" start="4" size="4" default="b01">
8072
 
      <opt>b00</opt>
8073
 
      <opt>b10</opt>
8074
 
      <opt>b20</opt>
8075
 
      <opt>b30</opt>
8076
 
      <opt>b01</opt>
8077
 
      <opt>b11</opt>
8078
 
      <opt>b21</opt>
8079
 
      <opt>b31</opt>
8080
 
      <opt>b02</opt>
8081
 
      <opt>b12</opt>
8082
 
      <opt>b22</opt>
8083
 
      <opt>b32</opt>
8084
 
      <opt>b03</opt>
8085
 
      <opt>b13</opt>
8086
 
      <opt>b23</opt>
8087
 
      <opt>b33</opt>
8088
 
    </mod>
8089
 
  </ins>
8090
 
 
8091
 
  <ins name="+V2U8_TO_V2U16" mask="0xfff08" exact="0x3c708">
8092
 
    <src start="0"/>
8093
 
    <mod name="swz0" start="4" size="4" default="b01">
8094
 
      <opt>b00</opt>
8095
 
      <opt>b10</opt>
8096
 
      <opt>b20</opt>
8097
 
      <opt>b30</opt>
8098
 
      <opt>b01</opt>
8099
 
      <opt>b11</opt>
8100
 
      <opt>b21</opt>
8101
 
      <opt>b31</opt>
8102
 
      <opt>b02</opt>
8103
 
      <opt>b12</opt>
8104
 
      <opt>b22</opt>
8105
 
      <opt>b32</opt>
8106
 
      <opt>b03</opt>
8107
 
      <opt>b13</opt>
8108
 
      <opt>b23</opt>
8109
 
      <opt>b33</opt>
8110
 
    </mod>
8111
 
  </ins>
8112
 
 
8113
 
  <ins name="+VAR_TEX.f16" staging="w=2" mask="0xffd00" exact="0xca100" message="vartex">
8114
 
    <immediate name="varying_index" start="0" size="3"/>
8115
 
    <immediate name="texture_index" start="3" size="2"/>
8116
 
    <mod name="update" size="1">
8117
 
      <opt>store</opt>
8118
 
      <opt>retrieve</opt>
8119
 
    </mod>
8120
 
    <mod name="skip" start="7" size="1" opt="skip"/>
8121
 
    <mod name="lod_mode" start="9" size="1" default="zero_lod">
8122
 
      <opt>computed_lod</opt>
8123
 
      <opt>zero_lod</opt>
8124
 
    </mod>
8125
 
    <mod name="sample" size="1">
8126
 
      <opt>center</opt>
8127
 
      <opt>none</opt>
8128
 
    </mod>
8129
 
    <derived start="5" size="2">
8130
 
      <and>
8131
 
        <eq left="sample" right="#center"/>
8132
 
        <eq left="update" right="#store"/>
8133
 
      </and>
8134
 
      <and>
8135
 
        <eq left="sample" right="#none"/>
8136
 
        <eq left="update" right="#retrieve"/>
8137
 
      </and>
8138
 
      <reserved/>
8139
 
      <reserved/>
8140
 
    </derived>
8141
 
  </ins>
8142
 
 
8143
 
  <ins name="+VAR_TEX.f32" staging="w=4" mask="0xffd00" exact="0xca000" message="vartex">
8144
 
    <immediate name="varying_index" start="0" size="3"/>
8145
 
    <immediate name="texture_index" start="3" size="2"/>
8146
 
    <mod name="update" size="1">
8147
 
      <opt>store</opt>
8148
 
      <opt>retrieve</opt>
8149
 
    </mod>
8150
 
    <mod name="skip" start="7" size="1" opt="skip"/>
8151
 
    <mod name="lod_mode" start="9" size="1" default="zero_lod">
8152
 
      <opt>computed_lod</opt>
8153
 
      <opt>zero_lod</opt>
8154
 
    </mod>
8155
 
    <mod name="sample" size="1">
8156
 
      <opt>center</opt>
8157
 
      <opt>none</opt>
8158
 
    </mod>
8159
 
    <derived start="5" size="2">
8160
 
      <and>
8161
 
        <eq left="sample" right="#center"/>
8162
 
        <eq left="update" right="#store"/>
8163
 
      </and>
8164
 
      <and>
8165
 
        <eq left="sample" right="#none"/>
8166
 
        <eq left="update" right="#retrieve"/>
8167
 
      </and>
8168
 
      <reserved/>
8169
 
      <reserved/>
8170
 
    </derived>
8171
 
  </ins>
8172
 
 
8173
 
  <ins name="+VN_ASST2.f32">
8174
 
    <src start="0"/>
8175
 
    <mod name="scale" size="1" opt="scale"/>
8176
 
    <mod name="neg0" size="1" opt="neg"/>
8177
 
    <encoding mask="0xffff0" exact="0x3df80">
8178
 
      <eq left="scale" right="#none"/>
8179
 
      <copy name="neg0" start="3"/>
8180
 
    </encoding>
8181
 
    <encoding mask="0xfffe8" exact="0x3de80">
8182
 
      <eq left="scale" right="#scale"/>
8183
 
      <copy name="neg0" start="4"/>
8184
 
    </encoding>
8185
 
  </ins>
8186
 
 
8187
 
  <ins name="+VN_ASST2.v2f16" mask="0xffff0" exact="0x3dfa0">
8188
 
    <src start="0"/>
8189
 
    <mod name="neg0" start="3" size="1" opt="neg"/>
8190
 
  </ins>
8191
 
 
8192
 
  <ins name="+WMASK" mask="0xfffc0" exact="0x3d700">
8193
 
    <src start="0"/>
8194
 
    <immediate name="fill" start="3" size="1"/>
8195
 
    <mod name="subgroup" start="4" size="2">
8196
 
      <opt>subgroup2</opt>
8197
 
      <opt>subgroup4</opt>
8198
 
      <opt>subgroup8</opt>
8199
 
    </mod>
8200
 
  </ins>
8201
 
 
8202
 
  <ins name="+ZS_EMIT" staging="w=1" mask="0xff800" exact="0xd7800" message="z_stencil">
8203
 
    <src start="0"/>
8204
 
    <src start="3"/>
8205
 
    <src start="6"/>
8206
 
    <mod name="stencil" size="1" opt="stencil"/>
8207
 
    <mod name="z" size="1" opt="z"/>
8208
 
    <derived start="9" size="2">
8209
 
      <reserved/>
8210
 
      <and>
8211
 
        <eq left="stencil" right="#stencil"/>
8212
 
        <eq left="z" right="#none"/>
8213
 
      </and>
8214
 
      <and>
8215
 
        <eq left="stencil" right="#none"/>
8216
 
        <eq left="z" right="#z"/>
8217
 
      </and>
8218
 
      <and>
8219
 
        <eq left="stencil" right="#stencil"/>
8220
 
        <eq left="z" right="#z"/>
8221
 
      </and>
8222
 
    </derived>
8223
 
  </ins>
8224
 
 
8225
 
  <!--- Lowered to *SEG_ADD/+SEG_ADD -->
8226
 
  <ins name="+SEG_ADD.i64" pseudo="true">
8227
 
    <src start="0"/>
8228
 
    <src start="3"/>
8229
 
    <mod name="seg" size="3">
8230
 
      <reserved/>
8231
 
      <reserved/>
8232
 
      <opt>wls</opt>
8233
 
      <reserved/>
8234
 
      <reserved/>
8235
 
      <reserved/>
8236
 
      <reserved/>
8237
 
      <opt>tl</opt>
8238
 
    </mod>
8239
 
    <mod name="preserve_null" size="1" opt="preserve_null"/>
8240
 
  </ins>
8241
 
 
8242
 
  <!-- Scheduler lowered to *ATOM_C.i32/+ATOM_CX. Real Valhall instructions. -->
8243
 
  <ins name="+ATOM_RETURN.i32" pseudo="true" staging="rw=sr_count" message="atomic">
8244
 
    <src start="0"/>
8245
 
    <src start="3"/>
8246
 
    <mod name="atom_opc" start="9" size="5">
8247
 
      <reserved/>
8248
 
      <reserved/>
8249
 
      <opt>aadd</opt>
8250
 
      <reserved/>
8251
 
      <reserved/>
8252
 
      <reserved/>
8253
 
      <reserved/>
8254
 
      <reserved/>
8255
 
      <opt>asmin</opt>
8256
 
      <opt>asmax</opt>
8257
 
      <opt>aumin</opt>
8258
 
      <opt>aumax</opt>
8259
 
      <opt>aand</opt>
8260
 
      <opt>aor</opt>
8261
 
      <opt>axor</opt>
8262
 
      <opt>axchg</opt> <!-- For Valhall -->
8263
 
      <opt>acmpxchg</opt> <!-- For Valhall -->
8264
 
    </mod>
8265
 
    <!-- not actually encoded, but used for IR -->
8266
 
    <immediate name="sr_count" size="4" pseudo="true"/>
8267
 
  </ins>
8268
 
 
8269
 
  <ins name="+ATOM1_RETURN.i32" pseudo="true" staging="w=sr_count" message="atomic">
8270
 
    <src start="0"/>
8271
 
    <src start="3"/>
8272
 
    <mod name="atom_opc" start="6" size="3">
8273
 
      <opt>ainc</opt>
8274
 
      <opt>adec</opt>
8275
 
      <opt>aumax1</opt>
8276
 
      <opt>asmax1</opt>
8277
 
      <opt>aor1</opt>
8278
 
    </mod>
8279
 
    <!-- not actually encoded, but used for IR -->
8280
 
    <immediate name="sr_count" size="4" pseudo="true"/>
8281
 
  </ins>
8282
 
 
8283
 
  <ins name="+ATOM.i32" pseudo="true" staging="r=sr_count" message="atomic">
8284
 
    <src start="0"/>
8285
 
    <src start="3"/>
8286
 
    <mod name="atom_opc" start="9" size="4">
8287
 
      <reserved/>
8288
 
      <reserved/>
8289
 
      <opt>aadd</opt>
8290
 
      <reserved/>
8291
 
      <reserved/>
8292
 
      <reserved/>
8293
 
      <reserved/>
8294
 
      <reserved/>
8295
 
      <opt>asmin</opt>
8296
 
      <opt>asmax</opt>
8297
 
      <opt>aumin</opt>
8298
 
      <opt>aumax</opt>
8299
 
      <opt>aand</opt>
8300
 
      <opt>aor</opt>
8301
 
      <opt>axor</opt>
8302
 
    </mod>
8303
 
    <!-- not actually encoded, but used for IR -->
8304
 
    <immediate name="sr_count" size="4" pseudo="true"/>
8305
 
  </ins>
8306
 
 
8307
 
  <!-- *CUBEFACE1/+CUBEFACE2 pair, two destinations, scheduler lowered -->
8308
 
  <ins name="+CUBEFACE" pseudo="true" dests="2">
8309
 
    <src start="0"/>
8310
 
    <src start="3"/>
8311
 
    <src start="6"/>
8312
 
    <mod name="neg0" size="1" opt="neg"/>
8313
 
    <mod name="neg1" size="1" opt="neg"/>
8314
 
    <mod name="neg2" size="1" opt="neg"/>
8315
 
  </ins>
8316
 
 
8317
 
  <ins name="+IADD_IMM.i32" pseudo="true">
8318
 
    <src start="0"/>
8319
 
    <immediate name="index" size="32"/>
8320
 
  </ins>
8321
 
 
8322
 
  <ins name="+IADD_IMM.v2i16" pseudo="true">
8323
 
    <src start="0"/>
8324
 
    <immediate name="index" size="32"/>
8325
 
  </ins>
8326
 
 
8327
 
  <ins name="+IADD_IMM.v4i8" pseudo="true">
8328
 
    <src start="0"/>
8329
 
    <immediate name="index" size="32"/>
8330
 
  </ins>
8331
 
 
8332
 
  <ins name="+FADD_IMM.f32" pseudo="true">
8333
 
    <src start="0"/>
8334
 
    <immediate name="index" size="32"/>
8335
 
  </ins>
8336
 
 
8337
 
  <ins name="+FADD_IMM.v2f16" pseudo="true">
8338
 
    <src start="0"/>
8339
 
    <immediate name="index" size="32"/>
8340
 
  </ins>
8341
 
 
8342
 
  <ins name="+FRSCALE.f32" pseudo="true">
8343
 
    <src start="0"/>
8344
 
    <src start="3"/>
8345
 
    <mod name="clamp" size="2">
8346
 
      <opt>none</opt>
8347
 
      <opt>clamp_0_inf</opt>
8348
 
      <opt>clamp_m1_1</opt>
8349
 
      <opt>clamp_0_1</opt>
8350
 
    </mod>
8351
 
    <mod name="neg0" size="1" opt="neg"/>
8352
 
    <mod name="neg1" size="1" opt="neg"/>
8353
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
8354
 
    <mod name="abs1" start="15" size="1" opt="abs"/>
8355
 
  </ins>
8356
 
 
8357
 
  <ins name="+FRSCALE.v2f16" pseudo="true">
8358
 
    <src start="0"/>
8359
 
    <src start="3"/>
8360
 
    <mod name="clamp" size="2">
8361
 
      <opt>none</opt>
8362
 
      <opt>clamp_0_inf</opt>
8363
 
      <opt>clamp_m1_1</opt>
8364
 
      <opt>clamp_0_1</opt>
8365
 
    </mod>
8366
 
    <mod name="neg0" size="1" opt="neg"/>
8367
 
    <mod name="neg1" size="1" opt="neg"/>
8368
 
    <mod name="abs0" start="15" size="1" opt="abs"/>
8369
 
    <mod name="abs1" start="15" size="1" opt="abs"/>
8370
 
  </ins>
8371
 
 
8372
 
  <ins name="*FABSNEG.f32" pseudo="true">
8373
 
    <src start="0" mask="0xfb"/>
8374
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
8375
 
    <mod name="abs0" start="12" size="1" opt="abs"/>
8376
 
    <mod name="widen0" size="2">
8377
 
      <opt>none</opt>
8378
 
      <opt>h0</opt>
8379
 
      <opt>h1</opt>
8380
 
    </mod>
8381
 
  </ins>
8382
 
 
8383
 
  <ins name="*FABSNEG.v2f16" pseudo="true">
8384
 
    <src start="0" mask="0xfb"/>
8385
 
    <mod name="abs0" size="1" opt="abs"/>
8386
 
    <mod name="neg0" start="7" size="1" opt="neg"/>
8387
 
    <mod name="swz0" start="9" size="2" default="h01">
8388
 
      <opt>h00</opt>
8389
 
      <opt>h10</opt>
8390
 
      <opt>h01</opt>
8391
 
      <opt>h11</opt>
8392
 
    </mod>
8393
 
  </ins>
8394
 
 
8395
 
  <ins name="*FCLAMP.f32" pseudo="true">
8396
 
    <src start="0" mask="0xfb"/>
8397
 
    <mod name="clamp" start="15" size="2">
8398
 
      <opt>none</opt>
8399
 
      <opt>clamp_0_inf</opt>
8400
 
      <opt>clamp_m1_1</opt>
8401
 
      <opt>clamp_0_1</opt>
8402
 
    </mod>
8403
 
  </ins>
8404
 
 
8405
 
  <ins name="*FCLAMP.v2f16" pseudo="true">
8406
 
    <src start="0" mask="0xfb"/>
8407
 
    <mod name="clamp" start="15" size="2">
8408
 
      <opt>none</opt>
8409
 
      <opt>clamp_0_inf</opt>
8410
 
      <opt>clamp_m1_1</opt>
8411
 
      <opt>clamp_0_1</opt>
8412
 
    </mod>
8413
 
  </ins>
8414
 
 
8415
 
  <ins name="+DISCARD.b32" pseudo="true" dests="0">
8416
 
    <src start="0"/>
8417
 
    <mod name="widen0" size="2">
8418
 
      <opt>none</opt>
8419
 
      <opt>h0</opt>
8420
 
      <opt>h1</opt>
8421
 
    </mod>
8422
 
  </ins>
8423
 
 
8424
 
  <ins name="+TEX_SINGLE" staging="rw=sr_count" message="tex" pseudo="true">
8425
 
    <src start="0"/>
8426
 
    <src start="1"/>
8427
 
    <immediate name="sr_count" size="4" pseudo="true"/>
8428
 
    <mod name="texel_offset" start="9" size="1" opt="texel_offset"/>
8429
 
    <mod name="skip" start="9" size="1" opt="skip"/>
8430
 
    <mod name="shadow" start="9" size="1" opt="shadow"/>
8431
 
    <mod name="array_enable" start="9" size="1" opt="array_enable"/>
8432
 
    <mod name="dimension" start="9" size="2">
8433
 
      <opt>1d</opt>
8434
 
      <opt>2d</opt>
8435
 
      <opt>3d</opt>
8436
 
      <opt>cube</opt>
8437
 
    </mod>
8438
 
    <mod name="write_mask" start="9" size="4">
8439
 
      <opt>none</opt>
8440
 
      <opt>r</opt>
8441
 
      <opt>g</opt>
8442
 
      <opt>rg</opt>
8443
 
      <opt>b</opt>
8444
 
      <opt>rb</opt>
8445
 
      <opt>gb</opt>
8446
 
      <opt>rgb</opt>
8447
 
      <opt>a</opt>
8448
 
      <opt>ra</opt>
8449
 
      <opt>ga</opt>
8450
 
      <opt>rga</opt>
8451
 
      <opt>ba</opt>
8452
 
      <opt>rba</opt>
8453
 
      <opt>gba</opt>
8454
 
      <opt>rgba</opt>
8455
 
    </mod>
8456
 
    <mod name="va_lod_mode" start="13" size="3" default="zero_lod">
8457
 
      <opt>zero_lod</opt>
8458
 
      <opt>computed_lod</opt>
8459
 
      <opt>explicit</opt>
8460
 
      <opt>computed_bias</opt>
8461
 
      <opt>grdesc</opt>
8462
 
    </mod>
8463
 
    <mod name="register_format" size="4">
8464
 
      <opt>f16</opt>
8465
 
      <opt>f32</opt>
8466
 
      <opt>s32</opt>
8467
 
      <opt>u32</opt>
8468
 
      <opt>s16</opt>
8469
 
      <opt>u16</opt>
8470
 
    </mod>
8471
 
  </ins>
8472
 
 
8473
 
  <ins name="+TEX_FETCH" staging="rw=sr_count" message="tex" pseudo="true">
8474
 
    <src start="0"/>
8475
 
    <src start="1"/>
8476
 
    <immediate name="sr_count" size="4" pseudo="true"/>
8477
 
    <mod name="texel_offset" start="9" size="1" opt="texel_offset"/>
8478
 
    <mod name="skip" start="9" size="1" opt="skip"/>
8479
 
    <mod name="array_enable" start="9" size="1" opt="array_enable"/>
8480
 
    <mod name="dimension" start="9" size="2">
8481
 
      <opt>1d</opt>
8482
 
      <opt>2d</opt>
8483
 
      <opt>3d</opt>
8484
 
      <opt>cube</opt>
8485
 
    </mod>
8486
 
    <mod name="write_mask" start="9" size="4">
8487
 
      <opt>none</opt>
8488
 
      <opt>r</opt>
8489
 
      <opt>g</opt>
8490
 
      <opt>rg</opt>
8491
 
      <opt>b</opt>
8492
 
      <opt>rb</opt>
8493
 
      <opt>gb</opt>
8494
 
      <opt>rgb</opt>
8495
 
      <opt>a</opt>
8496
 
      <opt>ra</opt>
8497
 
      <opt>ga</opt>
8498
 
      <opt>rga</opt>
8499
 
      <opt>ba</opt>
8500
 
      <opt>rba</opt>
8501
 
      <opt>gba</opt>
8502
 
      <opt>rgba</opt>
8503
 
    </mod>
8504
 
    <mod name="register_format" size="4">
8505
 
      <opt>f16</opt>
8506
 
      <opt>f32</opt>
8507
 
      <opt>s32</opt>
8508
 
      <opt>u32</opt>
8509
 
      <opt>s16</opt>
8510
 
      <opt>u16</opt>
8511
 
    </mod>
8512
 
  </ins>
8513
 
 
8514
 
  <ins name="+TEX_GATHER" staging="rw=sr_count" message="tex" pseudo="true">
8515
 
    <src start="0"/>
8516
 
    <src start="1"/>
8517
 
    <immediate name="sr_count" size="4" pseudo="true"/>
8518
 
    <mod name="texel_offset" start="9" size="1" opt="texel_offset"/>
8519
 
    <mod name="skip" start="9" size="1" opt="skip"/>
8520
 
    <mod name="shadow" start="9" size="1" opt="shadow"/>
8521
 
    <mod name="array_enable" start="9" size="1" opt="array_enable"/>
8522
 
    <mod name="integer_coordinates" start="9" size="1" opt="integer_coordinates"/>
8523
 
    <mod name="fetch_component" start="9" size="2">
8524
 
      <opt>gather4_r</opt>
8525
 
      <opt>gather4_g</opt>
8526
 
      <opt>gather4_b</opt>
8527
 
      <opt>gather4_a</opt>
8528
 
    </mod>
8529
 
    <mod name="dimension" start="9" size="2">
8530
 
      <opt>1d</opt>
8531
 
      <opt>2d</opt>
8532
 
      <opt>3d</opt>
8533
 
      <opt>cube</opt>
8534
 
    </mod>
8535
 
    <mod name="write_mask" start="9" size="4">
8536
 
      <opt>none</opt>
8537
 
      <opt>r</opt>
8538
 
      <opt>g</opt>
8539
 
      <opt>rg</opt>
8540
 
      <opt>b</opt>
8541
 
      <opt>rb</opt>
8542
 
      <opt>gb</opt>
8543
 
      <opt>rgb</opt>
8544
 
      <opt>a</opt>
8545
 
      <opt>ra</opt>
8546
 
      <opt>ga</opt>
8547
 
      <opt>rga</opt>
8548
 
      <opt>ba</opt>
8549
 
      <opt>rba</opt>
8550
 
      <opt>gba</opt>
8551
 
      <opt>rgba</opt>
8552
 
    </mod>
8553
 
    <mod name="register_format" size="4">
8554
 
      <opt>f16</opt>
8555
 
      <opt>f32</opt>
8556
 
      <opt>s32</opt>
8557
 
      <opt>u32</opt>
8558
 
      <opt>s16</opt>
8559
 
      <opt>u16</opt>
8560
 
    </mod>
8561
 
  </ins>
8562
 
 
8563
 
  <ins name="+CUBEFACE2_V9" pseudo="true">
8564
 
    <src start="0" mask="0xfb"/>
8565
 
    <src start="3" mask="0xfb"/>
8566
 
    <src start="6"/>
8567
 
    <mod name="neg0" size="1" opt="neg"/>
8568
 
    <mod name="neg1" size="1" opt="neg"/>
8569
 
    <mod name="neg2" size="1" opt="neg"/>
8570
 
  </ins>
8571
 
 
8572
 
  <ins name="+LD_VAR_BUF_IMM.f32" staging="w=format" message="varying" pseudo="true">
8573
 
    <src start="0"/>
8574
 
    <immediate name="index" start="3" size="5"/>
8575
 
    <mod name="vecsize" start="8" size="2">
8576
 
      <opt>none</opt>
8577
 
      <opt>v2</opt>
8578
 
      <opt>v3</opt>
8579
 
      <opt>v4</opt>
8580
 
    </mod>
8581
 
    <mod name="update" size="2">
8582
 
      <opt>store</opt>
8583
 
      <opt>retrieve</opt>
8584
 
      <opt>conditional</opt>
8585
 
      <opt>clobber</opt>
8586
 
    </mod>
8587
 
    <mod name="register_format" size="2">
8588
 
      <opt>f32</opt>
8589
 
      <opt>f16</opt>
8590
 
      <opt>u32</opt>
8591
 
      <opt>u16</opt>
8592
 
    </mod>
8593
 
    <mod name="sample" size="3">
8594
 
      <opt>center</opt>
8595
 
      <opt>centroid</opt>
8596
 
      <opt>sample</opt>
8597
 
      <opt>explicit</opt>
8598
 
      <opt>none</opt>
8599
 
    </mod>
8600
 
  </ins>
8601
 
 
8602
 
  <ins name="+LD_VAR_BUF.f32" staging="w=format" message="varying" pseudo="true">
8603
 
    <src start="0"/>
8604
 
    <src start="1"/>
8605
 
    <mod name="vecsize" start="8" size="2">
8606
 
      <opt>none</opt>
8607
 
      <opt>v2</opt>
8608
 
      <opt>v3</opt>
8609
 
      <opt>v4</opt>
8610
 
    </mod>
8611
 
    <mod name="update" size="2">
8612
 
      <opt>store</opt>
8613
 
      <opt>retrieve</opt>
8614
 
      <opt>conditional</opt>
8615
 
      <opt>clobber</opt>
8616
 
    </mod>
8617
 
    <mod name="register_format" size="2">
8618
 
      <opt>f32</opt>
8619
 
      <opt>f16</opt>
8620
 
      <opt>u32</opt>
8621
 
      <opt>u16</opt>
8622
 
    </mod>
8623
 
    <mod name="sample" size="3">
8624
 
      <opt>center</opt>
8625
 
      <opt>centroid</opt>
8626
 
      <opt>sample</opt>
8627
 
      <opt>explicit</opt>
8628
 
      <opt>none</opt>
8629
 
    </mod>
8630
 
  </ins>
8631
 
 
8632
 
  <ins name="+LD_VAR_BUF_IMM.f16" staging="w=format" message="varying" pseudo="true">
8633
 
    <src start="0"/>
8634
 
    <immediate name="index" start="3" size="5"/>
8635
 
    <mod name="vecsize" start="8" size="2">
8636
 
      <opt>none</opt>
8637
 
      <opt>v2</opt>
8638
 
      <opt>v3</opt>
8639
 
      <opt>v4</opt>
8640
 
    </mod>
8641
 
    <mod name="update" size="2">
8642
 
      <opt>store</opt>
8643
 
      <opt>retrieve</opt>
8644
 
      <opt>conditional</opt>
8645
 
      <opt>clobber</opt>
8646
 
    </mod>
8647
 
    <mod name="register_format" size="2">
8648
 
      <opt>f32</opt>
8649
 
      <opt>f16</opt>
8650
 
      <opt>u32</opt>
8651
 
      <opt>u16</opt>
8652
 
    </mod>
8653
 
    <mod name="sample" size="3">
8654
 
      <opt>center</opt>
8655
 
      <opt>centroid</opt>
8656
 
      <opt>sample</opt>
8657
 
      <opt>explicit</opt>
8658
 
      <opt>none</opt>
8659
 
    </mod>
8660
 
  </ins>
8661
 
 
8662
 
  <ins name="+LD_VAR_BUF.f16" staging="w=format" message="varying" pseudo="true">
8663
 
    <src start="0"/>
8664
 
    <src start="1"/>
8665
 
    <mod name="vecsize" start="8" size="2">
8666
 
      <opt>none</opt>
8667
 
      <opt>v2</opt>
8668
 
      <opt>v3</opt>
8669
 
      <opt>v4</opt>
8670
 
    </mod>
8671
 
    <mod name="update" size="2">
8672
 
      <opt>store</opt>
8673
 
      <opt>retrieve</opt>
8674
 
      <opt>conditional</opt>
8675
 
      <opt>clobber</opt>
8676
 
    </mod>
8677
 
    <mod name="register_format" size="2">
8678
 
      <opt>f32</opt>
8679
 
      <opt>f16</opt>
8680
 
      <opt>u32</opt>
8681
 
      <opt>u16</opt>
8682
 
    </mod>
8683
 
    <mod name="sample" size="3">
8684
 
      <opt>center</opt>
8685
 
      <opt>centroid</opt>
8686
 
      <opt>sample</opt>
8687
 
      <opt>explicit</opt>
8688
 
      <opt>none</opt>
8689
 
    </mod>
8690
 
  </ins>
8691
 
 
8692
 
  <ins name="+LEA_BUF_IMM" staging="w=2" message="attribute" pseudo="true">
8693
 
    <src start="0"/>
8694
 
  </ins>
8695
 
 
8696
 
  <ins name="+LD_BUFFER.i128" staging="w=4" pseudo="true" message="load">
8697
 
    <src start="0"/>
8698
 
    <src start="3"/>
8699
 
  </ins>
8700
 
 
8701
 
  <ins name="+LD_BUFFER.i16" staging="w=1" pseudo="true" message="load">
8702
 
    <src start="0"/>
8703
 
    <src start="3"/>
8704
 
    <mod name="lane_dest" size="2" default="h0">
8705
 
      <opt>h0</opt>
8706
 
      <opt>h1</opt>
8707
 
      <opt>w0</opt>
8708
 
      <opt>d0</opt>
8709
 
    </mod>
8710
 
    <mod name="extend" size="2">
8711
 
      <opt>none</opt>
8712
 
      <opt>sext</opt>
8713
 
      <opt>zext</opt>
8714
 
    </mod>
8715
 
  </ins>
8716
 
 
8717
 
  <ins name="+LD_BUFFER.i24" staging="w=1" pseudo="true" message="load">
8718
 
    <src start="0"/>
8719
 
    <src start="3"/>
8720
 
  </ins>
8721
 
 
8722
 
  <ins name="+LD_BUFFER.i32" staging="w=1" pseudo="true" message="load">
8723
 
    <src start="0"/>
8724
 
    <src start="3"/>
8725
 
    <mod name="lane_dest" size="1" opt="d0"/>
8726
 
    <mod name="extend" size="2">
8727
 
      <opt>none</opt>
8728
 
      <opt>sext</opt>
8729
 
      <opt>zext</opt>
8730
 
    </mod>
8731
 
  </ins>
8732
 
 
8733
 
  <ins name="+LD_BUFFER.i48" staging="w=2" pseudo="true" message="load">
8734
 
    <src start="0"/>
8735
 
    <src start="3"/>
8736
 
  </ins>
8737
 
 
8738
 
  <ins name="+LD_BUFFER.i64" staging="w=2" pseudo="true" message="load">
8739
 
    <src start="0"/>
8740
 
    <src start="3"/>
8741
 
  </ins>
8742
 
 
8743
 
  <ins name="+LD_BUFFER.i8" staging="w=1" pseudo="true" message="load">
8744
 
    <src start="0"/>
8745
 
    <src start="3"/>
8746
 
    <mod name="lane_dest" size="3" default="b0">
8747
 
      <opt>b0</opt>
8748
 
      <opt>b1</opt>
8749
 
      <opt>b2</opt>
8750
 
      <opt>b3</opt>
8751
 
      <opt>h0</opt>
8752
 
      <opt>h1</opt>
8753
 
      <opt>w0</opt>
8754
 
      <opt>d0</opt>
8755
 
    </mod>
8756
 
    <mod name="extend" size="2">
8757
 
      <opt>none</opt>
8758
 
      <opt>sext</opt>
8759
 
      <opt>zext</opt>
8760
 
    </mod>
8761
 
  </ins>
8762
 
 
8763
 
  <ins name="+LD_BUFFER.i96" staging="w=3" pseudo="true" message="load">
8764
 
    <src start="0"/>
8765
 
    <src start="3"/>
8766
 
  </ins>
8767
 
 
8768
 
  <ins name="+BRANCHZI" pseudo="true" last="true" dests="0">
8769
 
    <src start="0"/>
8770
 
    <src start="6" mask="0xf7"/>
8771
 
    <mod name="cmpf" size="1">
8772
 
      <opt>eq</opt>
8773
 
      <opt>ne</opt>
8774
 
    </mod>
8775
 
  </ins>
8776
 
 
8777
 
  <ins name="+LD_TEX" pseudo="true" staging="w=format" message="attribute">
8778
 
    <src start="0"/>
8779
 
    <src start="3"/>
8780
 
    <src start="6"/>
8781
 
    <mod name="register_format" size="4">
8782
 
      <opt>f16</opt>
8783
 
      <opt>f32</opt>
8784
 
      <opt>s32</opt>
8785
 
      <opt>u32</opt>
8786
 
      <opt>s16</opt>
8787
 
      <opt>u16</opt>
8788
 
      <opt>f64</opt>
8789
 
      <opt>i64</opt>
8790
 
      <opt>auto</opt>
8791
 
    </mod>
8792
 
    <mod name="vecsize" start="11" size="2">
8793
 
      <opt>none</opt>
8794
 
      <opt>v2</opt>
8795
 
      <opt>v3</opt>
8796
 
      <opt>v4</opt>
8797
 
    </mod>
8798
 
  </ins>
8799
 
 
8800
 
  <ins name="+LD_TEX_IMM" pseudo="true" staging="w=format" message="attribute">
8801
 
    <src start="0"/>
8802
 
    <src start="3"/>
8803
 
    <immediate name="texture_index" start="6" size="4"/>
8804
 
    <mod name="register_format" size="4">
8805
 
      <opt>f16</opt>
8806
 
      <opt>f32</opt>
8807
 
      <opt>s32</opt>
8808
 
      <opt>u32</opt>
8809
 
      <opt>s16</opt>
8810
 
      <opt>u16</opt>
8811
 
      <opt>f64</opt>
8812
 
      <opt>i64</opt>
8813
 
      <opt>auto</opt>
8814
 
    </mod>
8815
 
    <mod name="vecsize" start="11" size="2">
8816
 
      <opt>none</opt>
8817
 
      <opt>v2</opt>
8818
 
      <opt>v3</opt>
8819
 
      <opt>v4</opt>
8820
 
    </mod>
8821
 
  </ins>
8822
 
 
8823
 
</bifrost>