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