1 /* Copyright (C) 2018 Red Hat
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining a
4  * copy of this software and associated documentation files (the "Software"),
5  * to deal in the Software without restriction, including without limitation
6  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
7  * and/or sell copies of the Software, and to permit persons to whom the
8  * Software is furnished to do so, subject to the following conditions:
9  *
10  * The above copyright notice and this permission notice (including the next
11  * paragraph) shall be included in all copies or substantial portions of the
12  * Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20  * IN THE SOFTWARE.
21  */
22 
23 #include "nir.h"
24 
25 const nir_intrinsic_info nir_intrinsic_infos[nir_num_intrinsics] = {
26 {
27    .name = "addr_mode_is",
28    .num_srcs = 1,
29    .src_components = {
30       -1
31    },
32    .has_dest = true,
33    .dest_components = 1,
34    .dest_bit_sizes = 0x0,
35    .num_indices = 1,
36    .index_map = {
37       [NIR_INTRINSIC_MEMORY_MODES] = 1,
38     },
39    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
40 },
41 {
42    .name = "atomic_counter_add",
43    .num_srcs = 2,
44    .src_components = {
45       1, 1
46    },
47    .has_dest = true,
48    .dest_components = 1,
49    .dest_bit_sizes = 0x0,
50    .num_indices = 1,
51    .index_map = {
52       [NIR_INTRINSIC_BASE] = 1,
53     },
54    .flags = 0,
55 },
56 {
57    .name = "atomic_counter_add_deref",
58    .num_srcs = 2,
59    .src_components = {
60       -1, 1
61    },
62    .has_dest = true,
63    .dest_components = 1,
64    .dest_bit_sizes = 0x0,
65    .num_indices = 0,
66    .flags = 0,
67 },
68 {
69    .name = "atomic_counter_and",
70    .num_srcs = 2,
71    .src_components = {
72       1, 1
73    },
74    .has_dest = true,
75    .dest_components = 1,
76    .dest_bit_sizes = 0x0,
77    .num_indices = 1,
78    .index_map = {
79       [NIR_INTRINSIC_BASE] = 1,
80     },
81    .flags = 0,
82 },
83 {
84    .name = "atomic_counter_and_deref",
85    .num_srcs = 2,
86    .src_components = {
87       -1, 1
88    },
89    .has_dest = true,
90    .dest_components = 1,
91    .dest_bit_sizes = 0x0,
92    .num_indices = 0,
93    .flags = 0,
94 },
95 {
96    .name = "atomic_counter_comp_swap",
97    .num_srcs = 3,
98    .src_components = {
99       1, 1, 1
100    },
101    .has_dest = true,
102    .dest_components = 1,
103    .dest_bit_sizes = 0x0,
104    .num_indices = 1,
105    .index_map = {
106       [NIR_INTRINSIC_BASE] = 1,
107     },
108    .flags = 0,
109 },
110 {
111    .name = "atomic_counter_comp_swap_deref",
112    .num_srcs = 3,
113    .src_components = {
114       -1, 1, 1
115    },
116    .has_dest = true,
117    .dest_components = 1,
118    .dest_bit_sizes = 0x0,
119    .num_indices = 0,
120    .flags = 0,
121 },
122 {
123    .name = "atomic_counter_exchange",
124    .num_srcs = 2,
125    .src_components = {
126       1, 1
127    },
128    .has_dest = true,
129    .dest_components = 1,
130    .dest_bit_sizes = 0x0,
131    .num_indices = 1,
132    .index_map = {
133       [NIR_INTRINSIC_BASE] = 1,
134     },
135    .flags = 0,
136 },
137 {
138    .name = "atomic_counter_exchange_deref",
139    .num_srcs = 2,
140    .src_components = {
141       -1, 1
142    },
143    .has_dest = true,
144    .dest_components = 1,
145    .dest_bit_sizes = 0x0,
146    .num_indices = 0,
147    .flags = 0,
148 },
149 {
150    .name = "atomic_counter_inc",
151    .num_srcs = 1,
152    .src_components = {
153       1
154    },
155    .has_dest = true,
156    .dest_components = 1,
157    .dest_bit_sizes = 0x0,
158    .num_indices = 1,
159    .index_map = {
160       [NIR_INTRINSIC_BASE] = 1,
161     },
162    .flags = 0,
163 },
164 {
165    .name = "atomic_counter_inc_deref",
166    .num_srcs = 1,
167    .src_components = {
168       -1
169    },
170    .has_dest = true,
171    .dest_components = 1,
172    .dest_bit_sizes = 0x0,
173    .num_indices = 0,
174    .flags = 0,
175 },
176 {
177    .name = "atomic_counter_max",
178    .num_srcs = 2,
179    .src_components = {
180       1, 1
181    },
182    .has_dest = true,
183    .dest_components = 1,
184    .dest_bit_sizes = 0x0,
185    .num_indices = 1,
186    .index_map = {
187       [NIR_INTRINSIC_BASE] = 1,
188     },
189    .flags = 0,
190 },
191 {
192    .name = "atomic_counter_max_deref",
193    .num_srcs = 2,
194    .src_components = {
195       -1, 1
196    },
197    .has_dest = true,
198    .dest_components = 1,
199    .dest_bit_sizes = 0x0,
200    .num_indices = 0,
201    .flags = 0,
202 },
203 {
204    .name = "atomic_counter_min",
205    .num_srcs = 2,
206    .src_components = {
207       1, 1
208    },
209    .has_dest = true,
210    .dest_components = 1,
211    .dest_bit_sizes = 0x0,
212    .num_indices = 1,
213    .index_map = {
214       [NIR_INTRINSIC_BASE] = 1,
215     },
216    .flags = 0,
217 },
218 {
219    .name = "atomic_counter_min_deref",
220    .num_srcs = 2,
221    .src_components = {
222       -1, 1
223    },
224    .has_dest = true,
225    .dest_components = 1,
226    .dest_bit_sizes = 0x0,
227    .num_indices = 0,
228    .flags = 0,
229 },
230 {
231    .name = "atomic_counter_or",
232    .num_srcs = 2,
233    .src_components = {
234       1, 1
235    },
236    .has_dest = true,
237    .dest_components = 1,
238    .dest_bit_sizes = 0x0,
239    .num_indices = 1,
240    .index_map = {
241       [NIR_INTRINSIC_BASE] = 1,
242     },
243    .flags = 0,
244 },
245 {
246    .name = "atomic_counter_or_deref",
247    .num_srcs = 2,
248    .src_components = {
249       -1, 1
250    },
251    .has_dest = true,
252    .dest_components = 1,
253    .dest_bit_sizes = 0x0,
254    .num_indices = 0,
255    .flags = 0,
256 },
257 {
258    .name = "atomic_counter_post_dec",
259    .num_srcs = 1,
260    .src_components = {
261       1
262    },
263    .has_dest = true,
264    .dest_components = 1,
265    .dest_bit_sizes = 0x0,
266    .num_indices = 1,
267    .index_map = {
268       [NIR_INTRINSIC_BASE] = 1,
269     },
270    .flags = 0,
271 },
272 {
273    .name = "atomic_counter_post_dec_deref",
274    .num_srcs = 1,
275    .src_components = {
276       -1
277    },
278    .has_dest = true,
279    .dest_components = 1,
280    .dest_bit_sizes = 0x0,
281    .num_indices = 0,
282    .flags = 0,
283 },
284 {
285    .name = "atomic_counter_pre_dec",
286    .num_srcs = 1,
287    .src_components = {
288       1
289    },
290    .has_dest = true,
291    .dest_components = 1,
292    .dest_bit_sizes = 0x0,
293    .num_indices = 1,
294    .index_map = {
295       [NIR_INTRINSIC_BASE] = 1,
296     },
297    .flags = 0,
298 },
299 {
300    .name = "atomic_counter_pre_dec_deref",
301    .num_srcs = 1,
302    .src_components = {
303       -1
304    },
305    .has_dest = true,
306    .dest_components = 1,
307    .dest_bit_sizes = 0x0,
308    .num_indices = 0,
309    .flags = 0,
310 },
311 {
312    .name = "atomic_counter_read",
313    .num_srcs = 1,
314    .src_components = {
315       1
316    },
317    .has_dest = true,
318    .dest_components = 1,
319    .dest_bit_sizes = 0x0,
320    .num_indices = 1,
321    .index_map = {
322       [NIR_INTRINSIC_BASE] = 1,
323     },
324    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
325 },
326 {
327    .name = "atomic_counter_read_deref",
328    .num_srcs = 1,
329    .src_components = {
330       -1
331    },
332    .has_dest = true,
333    .dest_components = 1,
334    .dest_bit_sizes = 0x0,
335    .num_indices = 0,
336    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
337 },
338 {
339    .name = "atomic_counter_xor",
340    .num_srcs = 2,
341    .src_components = {
342       1, 1
343    },
344    .has_dest = true,
345    .dest_components = 1,
346    .dest_bit_sizes = 0x0,
347    .num_indices = 1,
348    .index_map = {
349       [NIR_INTRINSIC_BASE] = 1,
350     },
351    .flags = 0,
352 },
353 {
354    .name = "atomic_counter_xor_deref",
355    .num_srcs = 2,
356    .src_components = {
357       -1, 1
358    },
359    .has_dest = true,
360    .dest_components = 1,
361    .dest_bit_sizes = 0x0,
362    .num_indices = 0,
363    .flags = 0,
364 },
365 {
366    .name = "ballot",
367    .num_srcs = 1,
368    .src_components = {
369       1
370    },
371    .has_dest = true,
372    .dest_components = 0,
373    .dest_bit_sizes = 0x0,
374    .num_indices = 0,
375    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
376 },
377 {
378    .name = "ballot_bit_count_exclusive",
379    .num_srcs = 1,
380    .src_components = {
381       4
382    },
383    .has_dest = true,
384    .dest_components = 1,
385    .dest_bit_sizes = 0x0,
386    .num_indices = 0,
387    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
388 },
389 {
390    .name = "ballot_bit_count_inclusive",
391    .num_srcs = 1,
392    .src_components = {
393       4
394    },
395    .has_dest = true,
396    .dest_components = 1,
397    .dest_bit_sizes = 0x0,
398    .num_indices = 0,
399    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
400 },
401 {
402    .name = "ballot_bit_count_reduce",
403    .num_srcs = 1,
404    .src_components = {
405       4
406    },
407    .has_dest = true,
408    .dest_components = 1,
409    .dest_bit_sizes = 0x0,
410    .num_indices = 0,
411    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
412 },
413 {
414    .name = "ballot_bitfield_extract",
415    .num_srcs = 2,
416    .src_components = {
417       4, 1
418    },
419    .has_dest = true,
420    .dest_components = 1,
421    .dest_bit_sizes = 0x0,
422    .num_indices = 0,
423    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
424 },
425 {
426    .name = "ballot_find_lsb",
427    .num_srcs = 1,
428    .src_components = {
429       4
430    },
431    .has_dest = true,
432    .dest_components = 1,
433    .dest_bit_sizes = 0x0,
434    .num_indices = 0,
435    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
436 },
437 {
438    .name = "ballot_find_msb",
439    .num_srcs = 1,
440    .src_components = {
441       4
442    },
443    .has_dest = true,
444    .dest_components = 1,
445    .dest_bit_sizes = 0x0,
446    .num_indices = 0,
447    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
448 },
449 {
450    .name = "begin_invocation_interlock",
451    .num_srcs = 0,
452    .has_dest = false,
453    .dest_components = 0,
454    .dest_bit_sizes = 0x0,
455    .num_indices = 0,
456    .flags = 0,
457 },
458 {
459    .name = "bindless_image_atomic_add",
460    .num_srcs = 4,
461    .src_components = {
462       1, 4, 1, 1
463    },
464    .has_dest = true,
465    .dest_components = 1,
466    .dest_bit_sizes = 0x0,
467    .num_indices = 4,
468    .index_map = {
469       [NIR_INTRINSIC_IMAGE_DIM] = 1,
470       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
471       [NIR_INTRINSIC_FORMAT] = 3,
472       [NIR_INTRINSIC_ACCESS] = 4,
473     },
474    .flags = 0,
475 },
476 {
477    .name = "bindless_image_atomic_and",
478    .num_srcs = 4,
479    .src_components = {
480       1, 4, 1, 1
481    },
482    .has_dest = true,
483    .dest_components = 1,
484    .dest_bit_sizes = 0x0,
485    .num_indices = 4,
486    .index_map = {
487       [NIR_INTRINSIC_IMAGE_DIM] = 1,
488       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
489       [NIR_INTRINSIC_FORMAT] = 3,
490       [NIR_INTRINSIC_ACCESS] = 4,
491     },
492    .flags = 0,
493 },
494 {
495    .name = "bindless_image_atomic_comp_swap",
496    .num_srcs = 5,
497    .src_components = {
498       1, 4, 1, 1, 1
499    },
500    .has_dest = true,
501    .dest_components = 1,
502    .dest_bit_sizes = 0x0,
503    .num_indices = 4,
504    .index_map = {
505       [NIR_INTRINSIC_IMAGE_DIM] = 1,
506       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
507       [NIR_INTRINSIC_FORMAT] = 3,
508       [NIR_INTRINSIC_ACCESS] = 4,
509     },
510    .flags = 0,
511 },
512 {
513    .name = "bindless_image_atomic_dec_wrap",
514    .num_srcs = 4,
515    .src_components = {
516       1, 4, 1, 1
517    },
518    .has_dest = true,
519    .dest_components = 1,
520    .dest_bit_sizes = 0x0,
521    .num_indices = 4,
522    .index_map = {
523       [NIR_INTRINSIC_IMAGE_DIM] = 1,
524       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
525       [NIR_INTRINSIC_FORMAT] = 3,
526       [NIR_INTRINSIC_ACCESS] = 4,
527     },
528    .flags = 0,
529 },
530 {
531    .name = "bindless_image_atomic_exchange",
532    .num_srcs = 4,
533    .src_components = {
534       1, 4, 1, 1
535    },
536    .has_dest = true,
537    .dest_components = 1,
538    .dest_bit_sizes = 0x0,
539    .num_indices = 4,
540    .index_map = {
541       [NIR_INTRINSIC_IMAGE_DIM] = 1,
542       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
543       [NIR_INTRINSIC_FORMAT] = 3,
544       [NIR_INTRINSIC_ACCESS] = 4,
545     },
546    .flags = 0,
547 },
548 {
549    .name = "bindless_image_atomic_fadd",
550    .num_srcs = 4,
551    .src_components = {
552       1, 4, 1, 1
553    },
554    .has_dest = true,
555    .dest_components = 1,
556    .dest_bit_sizes = 0x0,
557    .num_indices = 4,
558    .index_map = {
559       [NIR_INTRINSIC_IMAGE_DIM] = 1,
560       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
561       [NIR_INTRINSIC_FORMAT] = 3,
562       [NIR_INTRINSIC_ACCESS] = 4,
563     },
564    .flags = 0,
565 },
566 {
567    .name = "bindless_image_atomic_imax",
568    .num_srcs = 4,
569    .src_components = {
570       1, 4, 1, 1
571    },
572    .has_dest = true,
573    .dest_components = 1,
574    .dest_bit_sizes = 0x0,
575    .num_indices = 4,
576    .index_map = {
577       [NIR_INTRINSIC_IMAGE_DIM] = 1,
578       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
579       [NIR_INTRINSIC_FORMAT] = 3,
580       [NIR_INTRINSIC_ACCESS] = 4,
581     },
582    .flags = 0,
583 },
584 {
585    .name = "bindless_image_atomic_imin",
586    .num_srcs = 4,
587    .src_components = {
588       1, 4, 1, 1
589    },
590    .has_dest = true,
591    .dest_components = 1,
592    .dest_bit_sizes = 0x0,
593    .num_indices = 4,
594    .index_map = {
595       [NIR_INTRINSIC_IMAGE_DIM] = 1,
596       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
597       [NIR_INTRINSIC_FORMAT] = 3,
598       [NIR_INTRINSIC_ACCESS] = 4,
599     },
600    .flags = 0,
601 },
602 {
603    .name = "bindless_image_atomic_inc_wrap",
604    .num_srcs = 4,
605    .src_components = {
606       1, 4, 1, 1
607    },
608    .has_dest = true,
609    .dest_components = 1,
610    .dest_bit_sizes = 0x0,
611    .num_indices = 4,
612    .index_map = {
613       [NIR_INTRINSIC_IMAGE_DIM] = 1,
614       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
615       [NIR_INTRINSIC_FORMAT] = 3,
616       [NIR_INTRINSIC_ACCESS] = 4,
617     },
618    .flags = 0,
619 },
620 {
621    .name = "bindless_image_atomic_or",
622    .num_srcs = 4,
623    .src_components = {
624       1, 4, 1, 1
625    },
626    .has_dest = true,
627    .dest_components = 1,
628    .dest_bit_sizes = 0x0,
629    .num_indices = 4,
630    .index_map = {
631       [NIR_INTRINSIC_IMAGE_DIM] = 1,
632       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
633       [NIR_INTRINSIC_FORMAT] = 3,
634       [NIR_INTRINSIC_ACCESS] = 4,
635     },
636    .flags = 0,
637 },
638 {
639    .name = "bindless_image_atomic_umax",
640    .num_srcs = 4,
641    .src_components = {
642       1, 4, 1, 1
643    },
644    .has_dest = true,
645    .dest_components = 1,
646    .dest_bit_sizes = 0x0,
647    .num_indices = 4,
648    .index_map = {
649       [NIR_INTRINSIC_IMAGE_DIM] = 1,
650       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
651       [NIR_INTRINSIC_FORMAT] = 3,
652       [NIR_INTRINSIC_ACCESS] = 4,
653     },
654    .flags = 0,
655 },
656 {
657    .name = "bindless_image_atomic_umin",
658    .num_srcs = 4,
659    .src_components = {
660       1, 4, 1, 1
661    },
662    .has_dest = true,
663    .dest_components = 1,
664    .dest_bit_sizes = 0x0,
665    .num_indices = 4,
666    .index_map = {
667       [NIR_INTRINSIC_IMAGE_DIM] = 1,
668       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
669       [NIR_INTRINSIC_FORMAT] = 3,
670       [NIR_INTRINSIC_ACCESS] = 4,
671     },
672    .flags = 0,
673 },
674 {
675    .name = "bindless_image_atomic_xor",
676    .num_srcs = 4,
677    .src_components = {
678       1, 4, 1, 1
679    },
680    .has_dest = true,
681    .dest_components = 1,
682    .dest_bit_sizes = 0x0,
683    .num_indices = 4,
684    .index_map = {
685       [NIR_INTRINSIC_IMAGE_DIM] = 1,
686       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
687       [NIR_INTRINSIC_FORMAT] = 3,
688       [NIR_INTRINSIC_ACCESS] = 4,
689     },
690    .flags = 0,
691 },
692 {
693    .name = "bindless_image_format",
694    .num_srcs = 1,
695    .src_components = {
696       1
697    },
698    .has_dest = true,
699    .dest_components = 1,
700    .dest_bit_sizes = 0x0,
701    .num_indices = 4,
702    .index_map = {
703       [NIR_INTRINSIC_IMAGE_DIM] = 1,
704       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
705       [NIR_INTRINSIC_FORMAT] = 3,
706       [NIR_INTRINSIC_ACCESS] = 4,
707     },
708    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
709 },
710 {
711    .name = "bindless_image_load",
712    .num_srcs = 4,
713    .src_components = {
714       1, 4, 1, 1
715    },
716    .has_dest = true,
717    .dest_components = 0,
718    .dest_bit_sizes = 0x0,
719    .num_indices = 5,
720    .index_map = {
721       [NIR_INTRINSIC_IMAGE_DIM] = 1,
722       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
723       [NIR_INTRINSIC_FORMAT] = 3,
724       [NIR_INTRINSIC_ACCESS] = 4,
725       [NIR_INTRINSIC_DEST_TYPE] = 5,
726     },
727    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
728 },
729 {
730    .name = "bindless_image_load_raw_intel",
731    .num_srcs = 2,
732    .src_components = {
733       1, 1
734    },
735    .has_dest = true,
736    .dest_components = 0,
737    .dest_bit_sizes = 0x0,
738    .num_indices = 4,
739    .index_map = {
740       [NIR_INTRINSIC_IMAGE_DIM] = 1,
741       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
742       [NIR_INTRINSIC_FORMAT] = 3,
743       [NIR_INTRINSIC_ACCESS] = 4,
744     },
745    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
746 },
747 {
748    .name = "bindless_image_order",
749    .num_srcs = 1,
750    .src_components = {
751       1
752    },
753    .has_dest = true,
754    .dest_components = 1,
755    .dest_bit_sizes = 0x0,
756    .num_indices = 4,
757    .index_map = {
758       [NIR_INTRINSIC_IMAGE_DIM] = 1,
759       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
760       [NIR_INTRINSIC_FORMAT] = 3,
761       [NIR_INTRINSIC_ACCESS] = 4,
762     },
763    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
764 },
765 {
766    .name = "bindless_image_samples",
767    .num_srcs = 1,
768    .src_components = {
769       1
770    },
771    .has_dest = true,
772    .dest_components = 1,
773    .dest_bit_sizes = 0x0,
774    .num_indices = 4,
775    .index_map = {
776       [NIR_INTRINSIC_IMAGE_DIM] = 1,
777       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
778       [NIR_INTRINSIC_FORMAT] = 3,
779       [NIR_INTRINSIC_ACCESS] = 4,
780     },
781    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
782 },
783 {
784    .name = "bindless_image_size",
785    .num_srcs = 2,
786    .src_components = {
787       1, 1
788    },
789    .has_dest = true,
790    .dest_components = 0,
791    .dest_bit_sizes = 0x0,
792    .num_indices = 4,
793    .index_map = {
794       [NIR_INTRINSIC_IMAGE_DIM] = 1,
795       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
796       [NIR_INTRINSIC_FORMAT] = 3,
797       [NIR_INTRINSIC_ACCESS] = 4,
798     },
799    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
800 },
801 {
802    .name = "bindless_image_store",
803    .num_srcs = 5,
804    .src_components = {
805       1, 4, 1, 0, 1
806    },
807    .has_dest = false,
808    .dest_components = 0,
809    .dest_bit_sizes = 0x0,
810    .num_indices = 5,
811    .index_map = {
812       [NIR_INTRINSIC_IMAGE_DIM] = 1,
813       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
814       [NIR_INTRINSIC_FORMAT] = 3,
815       [NIR_INTRINSIC_ACCESS] = 4,
816       [NIR_INTRINSIC_SRC_TYPE] = 5,
817     },
818    .flags = 0,
819 },
820 {
821    .name = "bindless_image_store_raw_intel",
822    .num_srcs = 3,
823    .src_components = {
824       1, 1, 0
825    },
826    .has_dest = false,
827    .dest_components = 0,
828    .dest_bit_sizes = 0x0,
829    .num_indices = 4,
830    .index_map = {
831       [NIR_INTRINSIC_IMAGE_DIM] = 1,
832       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
833       [NIR_INTRINSIC_FORMAT] = 3,
834       [NIR_INTRINSIC_ACCESS] = 4,
835     },
836    .flags = 0,
837 },
838 {
839    .name = "bindless_resource_ir3",
840    .num_srcs = 1,
841    .src_components = {
842       1
843    },
844    .has_dest = true,
845    .dest_components = 1,
846    .dest_bit_sizes = 0x0,
847    .num_indices = 1,
848    .index_map = {
849       [NIR_INTRINSIC_DESC_SET] = 1,
850     },
851    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
852 },
853 {
854    .name = "cond_end_ir3",
855    .num_srcs = 1,
856    .src_components = {
857       1
858    },
859    .has_dest = false,
860    .dest_components = 0,
861    .dest_bit_sizes = 0x0,
862    .num_indices = 0,
863    .flags = 0,
864 },
865 {
866    .name = "control_barrier",
867    .num_srcs = 0,
868    .has_dest = false,
869    .dest_components = 0,
870    .dest_bit_sizes = 0x0,
871    .num_indices = 0,
872    .flags = 0,
873 },
874 {
875    .name = "convert_alu_types",
876    .num_srcs = 1,
877    .src_components = {
878       0
879    },
880    .has_dest = true,
881    .dest_components = 0,
882    .dest_bit_sizes = 0x0,
883    .num_indices = 4,
884    .index_map = {
885       [NIR_INTRINSIC_SRC_TYPE] = 1,
886       [NIR_INTRINSIC_DEST_TYPE] = 2,
887       [NIR_INTRINSIC_ROUNDING_MODE] = 3,
888       [NIR_INTRINSIC_SATURATE] = 4,
889     },
890    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
891 },
892 {
893    .name = "copy_deref",
894    .num_srcs = 2,
895    .src_components = {
896       -1, -1
897    },
898    .has_dest = false,
899    .dest_components = 0,
900    .dest_bit_sizes = 0x0,
901    .num_indices = 2,
902    .index_map = {
903       [NIR_INTRINSIC_DST_ACCESS] = 1,
904       [NIR_INTRINSIC_SRC_ACCESS] = 2,
905     },
906    .flags = 0,
907 },
908 {
909    .name = "demote",
910    .num_srcs = 0,
911    .has_dest = false,
912    .dest_components = 0,
913    .dest_bit_sizes = 0x0,
914    .num_indices = 0,
915    .flags = 0,
916 },
917 {
918    .name = "demote_if",
919    .num_srcs = 1,
920    .src_components = {
921       1
922    },
923    .has_dest = false,
924    .dest_components = 0,
925    .dest_bit_sizes = 0x0,
926    .num_indices = 0,
927    .flags = 0,
928 },
929 {
930    .name = "deref_atomic_add",
931    .num_srcs = 2,
932    .src_components = {
933       -1, 1
934    },
935    .has_dest = true,
936    .dest_components = 1,
937    .dest_bit_sizes = 0x0,
938    .num_indices = 1,
939    .index_map = {
940       [NIR_INTRINSIC_ACCESS] = 1,
941     },
942    .flags = 0,
943 },
944 {
945    .name = "deref_atomic_and",
946    .num_srcs = 2,
947    .src_components = {
948       -1, 1
949    },
950    .has_dest = true,
951    .dest_components = 1,
952    .dest_bit_sizes = 0x0,
953    .num_indices = 1,
954    .index_map = {
955       [NIR_INTRINSIC_ACCESS] = 1,
956     },
957    .flags = 0,
958 },
959 {
960    .name = "deref_atomic_comp_swap",
961    .num_srcs = 3,
962    .src_components = {
963       -1, 1, 1
964    },
965    .has_dest = true,
966    .dest_components = 1,
967    .dest_bit_sizes = 0x0,
968    .num_indices = 1,
969    .index_map = {
970       [NIR_INTRINSIC_ACCESS] = 1,
971     },
972    .flags = 0,
973 },
974 {
975    .name = "deref_atomic_exchange",
976    .num_srcs = 2,
977    .src_components = {
978       -1, 1
979    },
980    .has_dest = true,
981    .dest_components = 1,
982    .dest_bit_sizes = 0x0,
983    .num_indices = 1,
984    .index_map = {
985       [NIR_INTRINSIC_ACCESS] = 1,
986     },
987    .flags = 0,
988 },
989 {
990    .name = "deref_atomic_fadd",
991    .num_srcs = 2,
992    .src_components = {
993       -1, 1
994    },
995    .has_dest = true,
996    .dest_components = 1,
997    .dest_bit_sizes = 0x0,
998    .num_indices = 1,
999    .index_map = {
1000       [NIR_INTRINSIC_ACCESS] = 1,
1001     },
1002    .flags = 0,
1003 },
1004 {
1005    .name = "deref_atomic_fcomp_swap",
1006    .num_srcs = 3,
1007    .src_components = {
1008       -1, 1, 1
1009    },
1010    .has_dest = true,
1011    .dest_components = 1,
1012    .dest_bit_sizes = 0x0,
1013    .num_indices = 1,
1014    .index_map = {
1015       [NIR_INTRINSIC_ACCESS] = 1,
1016     },
1017    .flags = 0,
1018 },
1019 {
1020    .name = "deref_atomic_fmax",
1021    .num_srcs = 2,
1022    .src_components = {
1023       -1, 1
1024    },
1025    .has_dest = true,
1026    .dest_components = 1,
1027    .dest_bit_sizes = 0x0,
1028    .num_indices = 1,
1029    .index_map = {
1030       [NIR_INTRINSIC_ACCESS] = 1,
1031     },
1032    .flags = 0,
1033 },
1034 {
1035    .name = "deref_atomic_fmin",
1036    .num_srcs = 2,
1037    .src_components = {
1038       -1, 1
1039    },
1040    .has_dest = true,
1041    .dest_components = 1,
1042    .dest_bit_sizes = 0x0,
1043    .num_indices = 1,
1044    .index_map = {
1045       [NIR_INTRINSIC_ACCESS] = 1,
1046     },
1047    .flags = 0,
1048 },
1049 {
1050    .name = "deref_atomic_imax",
1051    .num_srcs = 2,
1052    .src_components = {
1053       -1, 1
1054    },
1055    .has_dest = true,
1056    .dest_components = 1,
1057    .dest_bit_sizes = 0x0,
1058    .num_indices = 1,
1059    .index_map = {
1060       [NIR_INTRINSIC_ACCESS] = 1,
1061     },
1062    .flags = 0,
1063 },
1064 {
1065    .name = "deref_atomic_imin",
1066    .num_srcs = 2,
1067    .src_components = {
1068       -1, 1
1069    },
1070    .has_dest = true,
1071    .dest_components = 1,
1072    .dest_bit_sizes = 0x0,
1073    .num_indices = 1,
1074    .index_map = {
1075       [NIR_INTRINSIC_ACCESS] = 1,
1076     },
1077    .flags = 0,
1078 },
1079 {
1080    .name = "deref_atomic_or",
1081    .num_srcs = 2,
1082    .src_components = {
1083       -1, 1
1084    },
1085    .has_dest = true,
1086    .dest_components = 1,
1087    .dest_bit_sizes = 0x0,
1088    .num_indices = 1,
1089    .index_map = {
1090       [NIR_INTRINSIC_ACCESS] = 1,
1091     },
1092    .flags = 0,
1093 },
1094 {
1095    .name = "deref_atomic_umax",
1096    .num_srcs = 2,
1097    .src_components = {
1098       -1, 1
1099    },
1100    .has_dest = true,
1101    .dest_components = 1,
1102    .dest_bit_sizes = 0x0,
1103    .num_indices = 1,
1104    .index_map = {
1105       [NIR_INTRINSIC_ACCESS] = 1,
1106     },
1107    .flags = 0,
1108 },
1109 {
1110    .name = "deref_atomic_umin",
1111    .num_srcs = 2,
1112    .src_components = {
1113       -1, 1
1114    },
1115    .has_dest = true,
1116    .dest_components = 1,
1117    .dest_bit_sizes = 0x0,
1118    .num_indices = 1,
1119    .index_map = {
1120       [NIR_INTRINSIC_ACCESS] = 1,
1121     },
1122    .flags = 0,
1123 },
1124 {
1125    .name = "deref_atomic_xor",
1126    .num_srcs = 2,
1127    .src_components = {
1128       -1, 1
1129    },
1130    .has_dest = true,
1131    .dest_components = 1,
1132    .dest_bit_sizes = 0x0,
1133    .num_indices = 1,
1134    .index_map = {
1135       [NIR_INTRINSIC_ACCESS] = 1,
1136     },
1137    .flags = 0,
1138 },
1139 {
1140    .name = "deref_buffer_array_length",
1141    .num_srcs = 1,
1142    .src_components = {
1143       -1
1144    },
1145    .has_dest = true,
1146    .dest_components = 1,
1147    .dest_bit_sizes = 0x0,
1148    .num_indices = 0,
1149    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
1150 },
1151 {
1152    .name = "deref_mode_is",
1153    .num_srcs = 1,
1154    .src_components = {
1155       -1
1156    },
1157    .has_dest = true,
1158    .dest_components = 1,
1159    .dest_bit_sizes = 0x0,
1160    .num_indices = 1,
1161    .index_map = {
1162       [NIR_INTRINSIC_MEMORY_MODES] = 1,
1163     },
1164    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
1165 },
1166 {
1167    .name = "discard",
1168    .num_srcs = 0,
1169    .has_dest = false,
1170    .dest_components = 0,
1171    .dest_bit_sizes = 0x0,
1172    .num_indices = 0,
1173    .flags = 0,
1174 },
1175 {
1176    .name = "discard_if",
1177    .num_srcs = 1,
1178    .src_components = {
1179       1
1180    },
1181    .has_dest = false,
1182    .dest_components = 0,
1183    .dest_bit_sizes = 0x0,
1184    .num_indices = 0,
1185    .flags = 0,
1186 },
1187 {
1188    .name = "elect",
1189    .num_srcs = 0,
1190    .has_dest = true,
1191    .dest_components = 1,
1192    .dest_bit_sizes = 0x0,
1193    .num_indices = 0,
1194    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
1195 },
1196 {
1197    .name = "emit_vertex",
1198    .num_srcs = 0,
1199    .has_dest = false,
1200    .dest_components = 0,
1201    .dest_bit_sizes = 0x0,
1202    .num_indices = 1,
1203    .index_map = {
1204       [NIR_INTRINSIC_STREAM_ID] = 1,
1205     },
1206    .flags = 0,
1207 },
1208 {
1209    .name = "emit_vertex_with_counter",
1210    .num_srcs = 2,
1211    .src_components = {
1212       1, 1
1213    },
1214    .has_dest = false,
1215    .dest_components = 0,
1216    .dest_bit_sizes = 0x0,
1217    .num_indices = 1,
1218    .index_map = {
1219       [NIR_INTRINSIC_STREAM_ID] = 1,
1220     },
1221    .flags = 0,
1222 },
1223 {
1224    .name = "end_invocation_interlock",
1225    .num_srcs = 0,
1226    .has_dest = false,
1227    .dest_components = 0,
1228    .dest_bit_sizes = 0x0,
1229    .num_indices = 0,
1230    .flags = 0,
1231 },
1232 {
1233    .name = "end_patch_ir3",
1234    .num_srcs = 0,
1235    .has_dest = false,
1236    .dest_components = 0,
1237    .dest_bit_sizes = 0x0,
1238    .num_indices = 0,
1239    .flags = 0,
1240 },
1241 {
1242    .name = "end_primitive",
1243    .num_srcs = 0,
1244    .has_dest = false,
1245    .dest_components = 0,
1246    .dest_bit_sizes = 0x0,
1247    .num_indices = 1,
1248    .index_map = {
1249       [NIR_INTRINSIC_STREAM_ID] = 1,
1250     },
1251    .flags = 0,
1252 },
1253 {
1254    .name = "end_primitive_with_counter",
1255    .num_srcs = 2,
1256    .src_components = {
1257       1, 1
1258    },
1259    .has_dest = false,
1260    .dest_components = 0,
1261    .dest_bit_sizes = 0x0,
1262    .num_indices = 1,
1263    .index_map = {
1264       [NIR_INTRINSIC_STREAM_ID] = 1,
1265     },
1266    .flags = 0,
1267 },
1268 {
1269    .name = "exclusive_scan",
1270    .num_srcs = 1,
1271    .src_components = {
1272       0
1273    },
1274    .has_dest = true,
1275    .dest_components = 0,
1276    .dest_bit_sizes = 0x0,
1277    .num_indices = 1,
1278    .index_map = {
1279       [NIR_INTRINSIC_REDUCTION_OP] = 1,
1280     },
1281    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
1282 },
1283 {
1284    .name = "execute_callable",
1285    .num_srcs = 2,
1286    .src_components = {
1287       1, -1
1288    },
1289    .has_dest = false,
1290    .dest_components = 0,
1291    .dest_bit_sizes = 0x0,
1292    .num_indices = 0,
1293    .flags = 0,
1294 },
1295 {
1296    .name = "first_invocation",
1297    .num_srcs = 0,
1298    .has_dest = true,
1299    .dest_components = 1,
1300    .dest_bit_sizes = 0x0,
1301    .num_indices = 0,
1302    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
1303 },
1304 {
1305    .name = "get_ssbo_size",
1306    .num_srcs = 1,
1307    .src_components = {
1308       -1
1309    },
1310    .has_dest = true,
1311    .dest_components = 1,
1312    .dest_bit_sizes = 0x0,
1313    .num_indices = 0,
1314    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
1315 },
1316 {
1317    .name = "get_ubo_size",
1318    .num_srcs = 1,
1319    .src_components = {
1320       -1
1321    },
1322    .has_dest = true,
1323    .dest_components = 1,
1324    .dest_bit_sizes = 0x0,
1325    .num_indices = 0,
1326    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
1327 },
1328 {
1329    .name = "global_atomic_add",
1330    .num_srcs = 2,
1331    .src_components = {
1332       1, 1
1333    },
1334    .has_dest = true,
1335    .dest_components = 1,
1336    .dest_bit_sizes = 0x0,
1337    .num_indices = 1,
1338    .index_map = {
1339       [NIR_INTRINSIC_BASE] = 1,
1340     },
1341    .flags = 0,
1342 },
1343 {
1344    .name = "global_atomic_and",
1345    .num_srcs = 2,
1346    .src_components = {
1347       1, 1
1348    },
1349    .has_dest = true,
1350    .dest_components = 1,
1351    .dest_bit_sizes = 0x0,
1352    .num_indices = 1,
1353    .index_map = {
1354       [NIR_INTRINSIC_BASE] = 1,
1355     },
1356    .flags = 0,
1357 },
1358 {
1359    .name = "global_atomic_comp_swap",
1360    .num_srcs = 3,
1361    .src_components = {
1362       1, 1, 1
1363    },
1364    .has_dest = true,
1365    .dest_components = 1,
1366    .dest_bit_sizes = 0x0,
1367    .num_indices = 1,
1368    .index_map = {
1369       [NIR_INTRINSIC_BASE] = 1,
1370     },
1371    .flags = 0,
1372 },
1373 {
1374    .name = "global_atomic_exchange",
1375    .num_srcs = 2,
1376    .src_components = {
1377       1, 1
1378    },
1379    .has_dest = true,
1380    .dest_components = 1,
1381    .dest_bit_sizes = 0x0,
1382    .num_indices = 1,
1383    .index_map = {
1384       [NIR_INTRINSIC_BASE] = 1,
1385     },
1386    .flags = 0,
1387 },
1388 {
1389    .name = "global_atomic_fadd",
1390    .num_srcs = 2,
1391    .src_components = {
1392       1, 1
1393    },
1394    .has_dest = true,
1395    .dest_components = 1,
1396    .dest_bit_sizes = 0x0,
1397    .num_indices = 1,
1398    .index_map = {
1399       [NIR_INTRINSIC_BASE] = 1,
1400     },
1401    .flags = 0,
1402 },
1403 {
1404    .name = "global_atomic_fcomp_swap",
1405    .num_srcs = 3,
1406    .src_components = {
1407       1, 1, 1
1408    },
1409    .has_dest = true,
1410    .dest_components = 1,
1411    .dest_bit_sizes = 0x0,
1412    .num_indices = 1,
1413    .index_map = {
1414       [NIR_INTRINSIC_BASE] = 1,
1415     },
1416    .flags = 0,
1417 },
1418 {
1419    .name = "global_atomic_fmax",
1420    .num_srcs = 2,
1421    .src_components = {
1422       1, 1
1423    },
1424    .has_dest = true,
1425    .dest_components = 1,
1426    .dest_bit_sizes = 0x0,
1427    .num_indices = 1,
1428    .index_map = {
1429       [NIR_INTRINSIC_BASE] = 1,
1430     },
1431    .flags = 0,
1432 },
1433 {
1434    .name = "global_atomic_fmin",
1435    .num_srcs = 2,
1436    .src_components = {
1437       1, 1
1438    },
1439    .has_dest = true,
1440    .dest_components = 1,
1441    .dest_bit_sizes = 0x0,
1442    .num_indices = 1,
1443    .index_map = {
1444       [NIR_INTRINSIC_BASE] = 1,
1445     },
1446    .flags = 0,
1447 },
1448 {
1449    .name = "global_atomic_imax",
1450    .num_srcs = 2,
1451    .src_components = {
1452       1, 1
1453    },
1454    .has_dest = true,
1455    .dest_components = 1,
1456    .dest_bit_sizes = 0x0,
1457    .num_indices = 1,
1458    .index_map = {
1459       [NIR_INTRINSIC_BASE] = 1,
1460     },
1461    .flags = 0,
1462 },
1463 {
1464    .name = "global_atomic_imin",
1465    .num_srcs = 2,
1466    .src_components = {
1467       1, 1
1468    },
1469    .has_dest = true,
1470    .dest_components = 1,
1471    .dest_bit_sizes = 0x0,
1472    .num_indices = 1,
1473    .index_map = {
1474       [NIR_INTRINSIC_BASE] = 1,
1475     },
1476    .flags = 0,
1477 },
1478 {
1479    .name = "global_atomic_or",
1480    .num_srcs = 2,
1481    .src_components = {
1482       1, 1
1483    },
1484    .has_dest = true,
1485    .dest_components = 1,
1486    .dest_bit_sizes = 0x0,
1487    .num_indices = 1,
1488    .index_map = {
1489       [NIR_INTRINSIC_BASE] = 1,
1490     },
1491    .flags = 0,
1492 },
1493 {
1494    .name = "global_atomic_umax",
1495    .num_srcs = 2,
1496    .src_components = {
1497       1, 1
1498    },
1499    .has_dest = true,
1500    .dest_components = 1,
1501    .dest_bit_sizes = 0x0,
1502    .num_indices = 1,
1503    .index_map = {
1504       [NIR_INTRINSIC_BASE] = 1,
1505     },
1506    .flags = 0,
1507 },
1508 {
1509    .name = "global_atomic_umin",
1510    .num_srcs = 2,
1511    .src_components = {
1512       1, 1
1513    },
1514    .has_dest = true,
1515    .dest_components = 1,
1516    .dest_bit_sizes = 0x0,
1517    .num_indices = 1,
1518    .index_map = {
1519       [NIR_INTRINSIC_BASE] = 1,
1520     },
1521    .flags = 0,
1522 },
1523 {
1524    .name = "global_atomic_xor",
1525    .num_srcs = 2,
1526    .src_components = {
1527       1, 1
1528    },
1529    .has_dest = true,
1530    .dest_components = 1,
1531    .dest_bit_sizes = 0x0,
1532    .num_indices = 1,
1533    .index_map = {
1534       [NIR_INTRINSIC_BASE] = 1,
1535     },
1536    .flags = 0,
1537 },
1538 {
1539    .name = "group_memory_barrier",
1540    .num_srcs = 0,
1541    .has_dest = false,
1542    .dest_components = 0,
1543    .dest_bit_sizes = 0x0,
1544    .num_indices = 0,
1545    .flags = 0,
1546 },
1547 {
1548    .name = "ignore_ray_intersection",
1549    .num_srcs = 0,
1550    .has_dest = false,
1551    .dest_components = 0,
1552    .dest_bit_sizes = 0x0,
1553    .num_indices = 0,
1554    .flags = 0,
1555 },
1556 {
1557    .name = "image_atomic_add",
1558    .num_srcs = 4,
1559    .src_components = {
1560       1, 4, 1, 1
1561    },
1562    .has_dest = true,
1563    .dest_components = 1,
1564    .dest_bit_sizes = 0x0,
1565    .num_indices = 4,
1566    .index_map = {
1567       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1568       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1569       [NIR_INTRINSIC_FORMAT] = 3,
1570       [NIR_INTRINSIC_ACCESS] = 4,
1571     },
1572    .flags = 0,
1573 },
1574 {
1575    .name = "image_atomic_and",
1576    .num_srcs = 4,
1577    .src_components = {
1578       1, 4, 1, 1
1579    },
1580    .has_dest = true,
1581    .dest_components = 1,
1582    .dest_bit_sizes = 0x0,
1583    .num_indices = 4,
1584    .index_map = {
1585       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1586       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1587       [NIR_INTRINSIC_FORMAT] = 3,
1588       [NIR_INTRINSIC_ACCESS] = 4,
1589     },
1590    .flags = 0,
1591 },
1592 {
1593    .name = "image_atomic_comp_swap",
1594    .num_srcs = 5,
1595    .src_components = {
1596       1, 4, 1, 1, 1
1597    },
1598    .has_dest = true,
1599    .dest_components = 1,
1600    .dest_bit_sizes = 0x0,
1601    .num_indices = 4,
1602    .index_map = {
1603       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1604       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1605       [NIR_INTRINSIC_FORMAT] = 3,
1606       [NIR_INTRINSIC_ACCESS] = 4,
1607     },
1608    .flags = 0,
1609 },
1610 {
1611    .name = "image_atomic_dec_wrap",
1612    .num_srcs = 4,
1613    .src_components = {
1614       1, 4, 1, 1
1615    },
1616    .has_dest = true,
1617    .dest_components = 1,
1618    .dest_bit_sizes = 0x0,
1619    .num_indices = 4,
1620    .index_map = {
1621       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1622       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1623       [NIR_INTRINSIC_FORMAT] = 3,
1624       [NIR_INTRINSIC_ACCESS] = 4,
1625     },
1626    .flags = 0,
1627 },
1628 {
1629    .name = "image_atomic_exchange",
1630    .num_srcs = 4,
1631    .src_components = {
1632       1, 4, 1, 1
1633    },
1634    .has_dest = true,
1635    .dest_components = 1,
1636    .dest_bit_sizes = 0x0,
1637    .num_indices = 4,
1638    .index_map = {
1639       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1640       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1641       [NIR_INTRINSIC_FORMAT] = 3,
1642       [NIR_INTRINSIC_ACCESS] = 4,
1643     },
1644    .flags = 0,
1645 },
1646 {
1647    .name = "image_atomic_fadd",
1648    .num_srcs = 4,
1649    .src_components = {
1650       1, 4, 1, 1
1651    },
1652    .has_dest = true,
1653    .dest_components = 1,
1654    .dest_bit_sizes = 0x0,
1655    .num_indices = 4,
1656    .index_map = {
1657       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1658       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1659       [NIR_INTRINSIC_FORMAT] = 3,
1660       [NIR_INTRINSIC_ACCESS] = 4,
1661     },
1662    .flags = 0,
1663 },
1664 {
1665    .name = "image_atomic_imax",
1666    .num_srcs = 4,
1667    .src_components = {
1668       1, 4, 1, 1
1669    },
1670    .has_dest = true,
1671    .dest_components = 1,
1672    .dest_bit_sizes = 0x0,
1673    .num_indices = 4,
1674    .index_map = {
1675       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1676       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1677       [NIR_INTRINSIC_FORMAT] = 3,
1678       [NIR_INTRINSIC_ACCESS] = 4,
1679     },
1680    .flags = 0,
1681 },
1682 {
1683    .name = "image_atomic_imin",
1684    .num_srcs = 4,
1685    .src_components = {
1686       1, 4, 1, 1
1687    },
1688    .has_dest = true,
1689    .dest_components = 1,
1690    .dest_bit_sizes = 0x0,
1691    .num_indices = 4,
1692    .index_map = {
1693       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1694       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1695       [NIR_INTRINSIC_FORMAT] = 3,
1696       [NIR_INTRINSIC_ACCESS] = 4,
1697     },
1698    .flags = 0,
1699 },
1700 {
1701    .name = "image_atomic_inc_wrap",
1702    .num_srcs = 4,
1703    .src_components = {
1704       1, 4, 1, 1
1705    },
1706    .has_dest = true,
1707    .dest_components = 1,
1708    .dest_bit_sizes = 0x0,
1709    .num_indices = 4,
1710    .index_map = {
1711       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1712       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1713       [NIR_INTRINSIC_FORMAT] = 3,
1714       [NIR_INTRINSIC_ACCESS] = 4,
1715     },
1716    .flags = 0,
1717 },
1718 {
1719    .name = "image_atomic_or",
1720    .num_srcs = 4,
1721    .src_components = {
1722       1, 4, 1, 1
1723    },
1724    .has_dest = true,
1725    .dest_components = 1,
1726    .dest_bit_sizes = 0x0,
1727    .num_indices = 4,
1728    .index_map = {
1729       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1730       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1731       [NIR_INTRINSIC_FORMAT] = 3,
1732       [NIR_INTRINSIC_ACCESS] = 4,
1733     },
1734    .flags = 0,
1735 },
1736 {
1737    .name = "image_atomic_umax",
1738    .num_srcs = 4,
1739    .src_components = {
1740       1, 4, 1, 1
1741    },
1742    .has_dest = true,
1743    .dest_components = 1,
1744    .dest_bit_sizes = 0x0,
1745    .num_indices = 4,
1746    .index_map = {
1747       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1748       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1749       [NIR_INTRINSIC_FORMAT] = 3,
1750       [NIR_INTRINSIC_ACCESS] = 4,
1751     },
1752    .flags = 0,
1753 },
1754 {
1755    .name = "image_atomic_umin",
1756    .num_srcs = 4,
1757    .src_components = {
1758       1, 4, 1, 1
1759    },
1760    .has_dest = true,
1761    .dest_components = 1,
1762    .dest_bit_sizes = 0x0,
1763    .num_indices = 4,
1764    .index_map = {
1765       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1766       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1767       [NIR_INTRINSIC_FORMAT] = 3,
1768       [NIR_INTRINSIC_ACCESS] = 4,
1769     },
1770    .flags = 0,
1771 },
1772 {
1773    .name = "image_atomic_xor",
1774    .num_srcs = 4,
1775    .src_components = {
1776       1, 4, 1, 1
1777    },
1778    .has_dest = true,
1779    .dest_components = 1,
1780    .dest_bit_sizes = 0x0,
1781    .num_indices = 4,
1782    .index_map = {
1783       [NIR_INTRINSIC_IMAGE_DIM] = 1,
1784       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
1785       [NIR_INTRINSIC_FORMAT] = 3,
1786       [NIR_INTRINSIC_ACCESS] = 4,
1787     },
1788    .flags = 0,
1789 },
1790 {
1791    .name = "image_deref_atomic_add",
1792    .num_srcs = 4,
1793    .src_components = {
1794       1, 4, 1, 1
1795    },
1796    .has_dest = true,
1797    .dest_components = 1,
1798    .dest_bit_sizes = 0x0,
1799    .num_indices = 1,
1800    .index_map = {
1801       [NIR_INTRINSIC_ACCESS] = 1,
1802     },
1803    .flags = 0,
1804 },
1805 {
1806    .name = "image_deref_atomic_and",
1807    .num_srcs = 4,
1808    .src_components = {
1809       1, 4, 1, 1
1810    },
1811    .has_dest = true,
1812    .dest_components = 1,
1813    .dest_bit_sizes = 0x0,
1814    .num_indices = 1,
1815    .index_map = {
1816       [NIR_INTRINSIC_ACCESS] = 1,
1817     },
1818    .flags = 0,
1819 },
1820 {
1821    .name = "image_deref_atomic_comp_swap",
1822    .num_srcs = 5,
1823    .src_components = {
1824       1, 4, 1, 1, 1
1825    },
1826    .has_dest = true,
1827    .dest_components = 1,
1828    .dest_bit_sizes = 0x0,
1829    .num_indices = 1,
1830    .index_map = {
1831       [NIR_INTRINSIC_ACCESS] = 1,
1832     },
1833    .flags = 0,
1834 },
1835 {
1836    .name = "image_deref_atomic_dec_wrap",
1837    .num_srcs = 4,
1838    .src_components = {
1839       1, 4, 1, 1
1840    },
1841    .has_dest = true,
1842    .dest_components = 1,
1843    .dest_bit_sizes = 0x0,
1844    .num_indices = 1,
1845    .index_map = {
1846       [NIR_INTRINSIC_ACCESS] = 1,
1847     },
1848    .flags = 0,
1849 },
1850 {
1851    .name = "image_deref_atomic_exchange",
1852    .num_srcs = 4,
1853    .src_components = {
1854       1, 4, 1, 1
1855    },
1856    .has_dest = true,
1857    .dest_components = 1,
1858    .dest_bit_sizes = 0x0,
1859    .num_indices = 1,
1860    .index_map = {
1861       [NIR_INTRINSIC_ACCESS] = 1,
1862     },
1863    .flags = 0,
1864 },
1865 {
1866    .name = "image_deref_atomic_fadd",
1867    .num_srcs = 4,
1868    .src_components = {
1869       1, 4, 1, 1
1870    },
1871    .has_dest = true,
1872    .dest_components = 1,
1873    .dest_bit_sizes = 0x0,
1874    .num_indices = 1,
1875    .index_map = {
1876       [NIR_INTRINSIC_ACCESS] = 1,
1877     },
1878    .flags = 0,
1879 },
1880 {
1881    .name = "image_deref_atomic_imax",
1882    .num_srcs = 4,
1883    .src_components = {
1884       1, 4, 1, 1
1885    },
1886    .has_dest = true,
1887    .dest_components = 1,
1888    .dest_bit_sizes = 0x0,
1889    .num_indices = 1,
1890    .index_map = {
1891       [NIR_INTRINSIC_ACCESS] = 1,
1892     },
1893    .flags = 0,
1894 },
1895 {
1896    .name = "image_deref_atomic_imin",
1897    .num_srcs = 4,
1898    .src_components = {
1899       1, 4, 1, 1
1900    },
1901    .has_dest = true,
1902    .dest_components = 1,
1903    .dest_bit_sizes = 0x0,
1904    .num_indices = 1,
1905    .index_map = {
1906       [NIR_INTRINSIC_ACCESS] = 1,
1907     },
1908    .flags = 0,
1909 },
1910 {
1911    .name = "image_deref_atomic_inc_wrap",
1912    .num_srcs = 4,
1913    .src_components = {
1914       1, 4, 1, 1
1915    },
1916    .has_dest = true,
1917    .dest_components = 1,
1918    .dest_bit_sizes = 0x0,
1919    .num_indices = 1,
1920    .index_map = {
1921       [NIR_INTRINSIC_ACCESS] = 1,
1922     },
1923    .flags = 0,
1924 },
1925 {
1926    .name = "image_deref_atomic_or",
1927    .num_srcs = 4,
1928    .src_components = {
1929       1, 4, 1, 1
1930    },
1931    .has_dest = true,
1932    .dest_components = 1,
1933    .dest_bit_sizes = 0x0,
1934    .num_indices = 1,
1935    .index_map = {
1936       [NIR_INTRINSIC_ACCESS] = 1,
1937     },
1938    .flags = 0,
1939 },
1940 {
1941    .name = "image_deref_atomic_umax",
1942    .num_srcs = 4,
1943    .src_components = {
1944       1, 4, 1, 1
1945    },
1946    .has_dest = true,
1947    .dest_components = 1,
1948    .dest_bit_sizes = 0x0,
1949    .num_indices = 1,
1950    .index_map = {
1951       [NIR_INTRINSIC_ACCESS] = 1,
1952     },
1953    .flags = 0,
1954 },
1955 {
1956    .name = "image_deref_atomic_umin",
1957    .num_srcs = 4,
1958    .src_components = {
1959       1, 4, 1, 1
1960    },
1961    .has_dest = true,
1962    .dest_components = 1,
1963    .dest_bit_sizes = 0x0,
1964    .num_indices = 1,
1965    .index_map = {
1966       [NIR_INTRINSIC_ACCESS] = 1,
1967     },
1968    .flags = 0,
1969 },
1970 {
1971    .name = "image_deref_atomic_xor",
1972    .num_srcs = 4,
1973    .src_components = {
1974       1, 4, 1, 1
1975    },
1976    .has_dest = true,
1977    .dest_components = 1,
1978    .dest_bit_sizes = 0x0,
1979    .num_indices = 1,
1980    .index_map = {
1981       [NIR_INTRINSIC_ACCESS] = 1,
1982     },
1983    .flags = 0,
1984 },
1985 {
1986    .name = "image_deref_format",
1987    .num_srcs = 1,
1988    .src_components = {
1989       1
1990    },
1991    .has_dest = true,
1992    .dest_components = 1,
1993    .dest_bit_sizes = 0x0,
1994    .num_indices = 1,
1995    .index_map = {
1996       [NIR_INTRINSIC_ACCESS] = 1,
1997     },
1998    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
1999 },
2000 {
2001    .name = "image_deref_load",
2002    .num_srcs = 4,
2003    .src_components = {
2004       1, 4, 1, 1
2005    },
2006    .has_dest = true,
2007    .dest_components = 0,
2008    .dest_bit_sizes = 0x0,
2009    .num_indices = 2,
2010    .index_map = {
2011       [NIR_INTRINSIC_ACCESS] = 1,
2012       [NIR_INTRINSIC_DEST_TYPE] = 2,
2013     },
2014    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2015 },
2016 {
2017    .name = "image_deref_load_param_intel",
2018    .num_srcs = 1,
2019    .src_components = {
2020       1
2021    },
2022    .has_dest = true,
2023    .dest_components = 0,
2024    .dest_bit_sizes = 0x0,
2025    .num_indices = 1,
2026    .index_map = {
2027       [NIR_INTRINSIC_BASE] = 1,
2028     },
2029    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2030 },
2031 {
2032    .name = "image_deref_load_raw_intel",
2033    .num_srcs = 2,
2034    .src_components = {
2035       1, 1
2036    },
2037    .has_dest = true,
2038    .dest_components = 0,
2039    .dest_bit_sizes = 0x0,
2040    .num_indices = 1,
2041    .index_map = {
2042       [NIR_INTRINSIC_ACCESS] = 1,
2043     },
2044    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2045 },
2046 {
2047    .name = "image_deref_order",
2048    .num_srcs = 1,
2049    .src_components = {
2050       1
2051    },
2052    .has_dest = true,
2053    .dest_components = 1,
2054    .dest_bit_sizes = 0x0,
2055    .num_indices = 1,
2056    .index_map = {
2057       [NIR_INTRINSIC_ACCESS] = 1,
2058     },
2059    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2060 },
2061 {
2062    .name = "image_deref_samples",
2063    .num_srcs = 1,
2064    .src_components = {
2065       1
2066    },
2067    .has_dest = true,
2068    .dest_components = 1,
2069    .dest_bit_sizes = 0x0,
2070    .num_indices = 1,
2071    .index_map = {
2072       [NIR_INTRINSIC_ACCESS] = 1,
2073     },
2074    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2075 },
2076 {
2077    .name = "image_deref_size",
2078    .num_srcs = 2,
2079    .src_components = {
2080       1, 1
2081    },
2082    .has_dest = true,
2083    .dest_components = 0,
2084    .dest_bit_sizes = 0x0,
2085    .num_indices = 1,
2086    .index_map = {
2087       [NIR_INTRINSIC_ACCESS] = 1,
2088     },
2089    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2090 },
2091 {
2092    .name = "image_deref_store",
2093    .num_srcs = 5,
2094    .src_components = {
2095       1, 4, 1, 0, 1
2096    },
2097    .has_dest = false,
2098    .dest_components = 0,
2099    .dest_bit_sizes = 0x0,
2100    .num_indices = 2,
2101    .index_map = {
2102       [NIR_INTRINSIC_ACCESS] = 1,
2103       [NIR_INTRINSIC_SRC_TYPE] = 2,
2104     },
2105    .flags = 0,
2106 },
2107 {
2108    .name = "image_deref_store_raw_intel",
2109    .num_srcs = 3,
2110    .src_components = {
2111       1, 1, 0
2112    },
2113    .has_dest = false,
2114    .dest_components = 0,
2115    .dest_bit_sizes = 0x0,
2116    .num_indices = 1,
2117    .index_map = {
2118       [NIR_INTRINSIC_ACCESS] = 1,
2119     },
2120    .flags = 0,
2121 },
2122 {
2123    .name = "image_format",
2124    .num_srcs = 1,
2125    .src_components = {
2126       1
2127    },
2128    .has_dest = true,
2129    .dest_components = 1,
2130    .dest_bit_sizes = 0x0,
2131    .num_indices = 4,
2132    .index_map = {
2133       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2134       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2135       [NIR_INTRINSIC_FORMAT] = 3,
2136       [NIR_INTRINSIC_ACCESS] = 4,
2137     },
2138    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2139 },
2140 {
2141    .name = "image_load",
2142    .num_srcs = 4,
2143    .src_components = {
2144       1, 4, 1, 1
2145    },
2146    .has_dest = true,
2147    .dest_components = 0,
2148    .dest_bit_sizes = 0x0,
2149    .num_indices = 5,
2150    .index_map = {
2151       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2152       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2153       [NIR_INTRINSIC_FORMAT] = 3,
2154       [NIR_INTRINSIC_ACCESS] = 4,
2155       [NIR_INTRINSIC_DEST_TYPE] = 5,
2156     },
2157    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2158 },
2159 {
2160    .name = "image_load_raw_intel",
2161    .num_srcs = 2,
2162    .src_components = {
2163       1, 1
2164    },
2165    .has_dest = true,
2166    .dest_components = 0,
2167    .dest_bit_sizes = 0x0,
2168    .num_indices = 4,
2169    .index_map = {
2170       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2171       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2172       [NIR_INTRINSIC_FORMAT] = 3,
2173       [NIR_INTRINSIC_ACCESS] = 4,
2174     },
2175    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2176 },
2177 {
2178    .name = "image_order",
2179    .num_srcs = 1,
2180    .src_components = {
2181       1
2182    },
2183    .has_dest = true,
2184    .dest_components = 1,
2185    .dest_bit_sizes = 0x0,
2186    .num_indices = 4,
2187    .index_map = {
2188       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2189       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2190       [NIR_INTRINSIC_FORMAT] = 3,
2191       [NIR_INTRINSIC_ACCESS] = 4,
2192     },
2193    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2194 },
2195 {
2196    .name = "image_samples",
2197    .num_srcs = 1,
2198    .src_components = {
2199       1
2200    },
2201    .has_dest = true,
2202    .dest_components = 1,
2203    .dest_bit_sizes = 0x0,
2204    .num_indices = 4,
2205    .index_map = {
2206       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2207       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2208       [NIR_INTRINSIC_FORMAT] = 3,
2209       [NIR_INTRINSIC_ACCESS] = 4,
2210     },
2211    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2212 },
2213 {
2214    .name = "image_size",
2215    .num_srcs = 2,
2216    .src_components = {
2217       1, 1
2218    },
2219    .has_dest = true,
2220    .dest_components = 0,
2221    .dest_bit_sizes = 0x0,
2222    .num_indices = 4,
2223    .index_map = {
2224       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2225       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2226       [NIR_INTRINSIC_FORMAT] = 3,
2227       [NIR_INTRINSIC_ACCESS] = 4,
2228     },
2229    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2230 },
2231 {
2232    .name = "image_store",
2233    .num_srcs = 5,
2234    .src_components = {
2235       1, 4, 1, 0, 1
2236    },
2237    .has_dest = false,
2238    .dest_components = 0,
2239    .dest_bit_sizes = 0x0,
2240    .num_indices = 5,
2241    .index_map = {
2242       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2243       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2244       [NIR_INTRINSIC_FORMAT] = 3,
2245       [NIR_INTRINSIC_ACCESS] = 4,
2246       [NIR_INTRINSIC_SRC_TYPE] = 5,
2247     },
2248    .flags = 0,
2249 },
2250 {
2251    .name = "image_store_raw_intel",
2252    .num_srcs = 3,
2253    .src_components = {
2254       1, 1, 0
2255    },
2256    .has_dest = false,
2257    .dest_components = 0,
2258    .dest_bit_sizes = 0x0,
2259    .num_indices = 4,
2260    .index_map = {
2261       [NIR_INTRINSIC_IMAGE_DIM] = 1,
2262       [NIR_INTRINSIC_IMAGE_ARRAY] = 2,
2263       [NIR_INTRINSIC_FORMAT] = 3,
2264       [NIR_INTRINSIC_ACCESS] = 4,
2265     },
2266    .flags = 0,
2267 },
2268 {
2269    .name = "inclusive_scan",
2270    .num_srcs = 1,
2271    .src_components = {
2272       0
2273    },
2274    .has_dest = true,
2275    .dest_components = 0,
2276    .dest_bit_sizes = 0x0,
2277    .num_indices = 1,
2278    .index_map = {
2279       [NIR_INTRINSIC_REDUCTION_OP] = 1,
2280     },
2281    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2282 },
2283 {
2284    .name = "interp_deref_at_centroid",
2285    .num_srcs = 1,
2286    .src_components = {
2287       1
2288    },
2289    .has_dest = true,
2290    .dest_components = 0,
2291    .dest_bit_sizes = 0x0,
2292    .num_indices = 0,
2293    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2294 },
2295 {
2296    .name = "interp_deref_at_offset",
2297    .num_srcs = 2,
2298    .src_components = {
2299       1, 2
2300    },
2301    .has_dest = true,
2302    .dest_components = 0,
2303    .dest_bit_sizes = 0x0,
2304    .num_indices = 0,
2305    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2306 },
2307 {
2308    .name = "interp_deref_at_sample",
2309    .num_srcs = 2,
2310    .src_components = {
2311       1, 1
2312    },
2313    .has_dest = true,
2314    .dest_components = 0,
2315    .dest_bit_sizes = 0x0,
2316    .num_indices = 0,
2317    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2318 },
2319 {
2320    .name = "interp_deref_at_vertex",
2321    .num_srcs = 2,
2322    .src_components = {
2323       1, 1
2324    },
2325    .has_dest = true,
2326    .dest_components = 0,
2327    .dest_bit_sizes = 0x0,
2328    .num_indices = 0,
2329    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2330 },
2331 {
2332    .name = "is_helper_invocation",
2333    .num_srcs = 0,
2334    .has_dest = true,
2335    .dest_components = 1,
2336    .dest_bit_sizes = 0x0,
2337    .num_indices = 0,
2338    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2339 },
2340 {
2341    .name = "last_invocation",
2342    .num_srcs = 0,
2343    .has_dest = true,
2344    .dest_components = 1,
2345    .dest_bit_sizes = 0x0,
2346    .num_indices = 0,
2347    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2348 },
2349 {
2350    .name = "load_aa_line_width",
2351    .num_srcs = 0,
2352    .has_dest = true,
2353    .dest_components = 1,
2354    .dest_bit_sizes = 0x20,
2355    .num_indices = 0,
2356    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2357 },
2358 {
2359    .name = "load_barycentric_at_offset",
2360    .num_srcs = 1,
2361    .src_components = {
2362       2
2363    },
2364    .has_dest = true,
2365    .dest_components = 2,
2366    .dest_bit_sizes = 0x0,
2367    .num_indices = 1,
2368    .index_map = {
2369       [NIR_INTRINSIC_INTERP_MODE] = 1,
2370     },
2371    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2372 },
2373 {
2374    .name = "load_barycentric_at_sample",
2375    .num_srcs = 1,
2376    .src_components = {
2377       1
2378    },
2379    .has_dest = true,
2380    .dest_components = 2,
2381    .dest_bit_sizes = 0x0,
2382    .num_indices = 1,
2383    .index_map = {
2384       [NIR_INTRINSIC_INTERP_MODE] = 1,
2385     },
2386    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2387 },
2388 {
2389    .name = "load_barycentric_centroid",
2390    .num_srcs = 0,
2391    .has_dest = true,
2392    .dest_components = 2,
2393    .dest_bit_sizes = 0x0,
2394    .num_indices = 1,
2395    .index_map = {
2396       [NIR_INTRINSIC_INTERP_MODE] = 1,
2397     },
2398    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2399 },
2400 {
2401    .name = "load_barycentric_model",
2402    .num_srcs = 0,
2403    .has_dest = true,
2404    .dest_components = 3,
2405    .dest_bit_sizes = 0x0,
2406    .num_indices = 1,
2407    .index_map = {
2408       [NIR_INTRINSIC_INTERP_MODE] = 1,
2409     },
2410    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2411 },
2412 {
2413    .name = "load_barycentric_pixel",
2414    .num_srcs = 0,
2415    .has_dest = true,
2416    .dest_components = 2,
2417    .dest_bit_sizes = 0x0,
2418    .num_indices = 1,
2419    .index_map = {
2420       [NIR_INTRINSIC_INTERP_MODE] = 1,
2421     },
2422    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2423 },
2424 {
2425    .name = "load_barycentric_sample",
2426    .num_srcs = 0,
2427    .has_dest = true,
2428    .dest_components = 2,
2429    .dest_bit_sizes = 0x0,
2430    .num_indices = 1,
2431    .index_map = {
2432       [NIR_INTRINSIC_INTERP_MODE] = 1,
2433     },
2434    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2435 },
2436 {
2437    .name = "load_base_global_invocation_id",
2438    .num_srcs = 0,
2439    .has_dest = true,
2440    .dest_components = 3,
2441    .dest_bit_sizes = 0x60,
2442    .num_indices = 0,
2443    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2444 },
2445 {
2446    .name = "load_base_instance",
2447    .num_srcs = 0,
2448    .has_dest = true,
2449    .dest_components = 1,
2450    .dest_bit_sizes = 0x20,
2451    .num_indices = 0,
2452    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2453 },
2454 {
2455    .name = "load_base_vertex",
2456    .num_srcs = 0,
2457    .has_dest = true,
2458    .dest_components = 1,
2459    .dest_bit_sizes = 0x20,
2460    .num_indices = 0,
2461    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2462 },
2463 {
2464    .name = "load_base_work_group_id",
2465    .num_srcs = 0,
2466    .has_dest = true,
2467    .dest_components = 3,
2468    .dest_bit_sizes = 0x60,
2469    .num_indices = 0,
2470    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2471 },
2472 {
2473    .name = "load_blend_const_color_a_float",
2474    .num_srcs = 0,
2475    .has_dest = true,
2476    .dest_components = 1,
2477    .dest_bit_sizes = 0x20,
2478    .num_indices = 0,
2479    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2480 },
2481 {
2482    .name = "load_blend_const_color_aaaa8888_unorm",
2483    .num_srcs = 0,
2484    .has_dest = true,
2485    .dest_components = 1,
2486    .dest_bit_sizes = 0x20,
2487    .num_indices = 0,
2488    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2489 },
2490 {
2491    .name = "load_blend_const_color_b_float",
2492    .num_srcs = 0,
2493    .has_dest = true,
2494    .dest_components = 1,
2495    .dest_bit_sizes = 0x20,
2496    .num_indices = 0,
2497    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2498 },
2499 {
2500    .name = "load_blend_const_color_g_float",
2501    .num_srcs = 0,
2502    .has_dest = true,
2503    .dest_components = 1,
2504    .dest_bit_sizes = 0x20,
2505    .num_indices = 0,
2506    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2507 },
2508 {
2509    .name = "load_blend_const_color_r_float",
2510    .num_srcs = 0,
2511    .has_dest = true,
2512    .dest_components = 1,
2513    .dest_bit_sizes = 0x20,
2514    .num_indices = 0,
2515    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2516 },
2517 {
2518    .name = "load_blend_const_color_rgba",
2519    .num_srcs = 0,
2520    .has_dest = true,
2521    .dest_components = 4,
2522    .dest_bit_sizes = 0x20,
2523    .num_indices = 0,
2524    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2525 },
2526 {
2527    .name = "load_blend_const_color_rgba8888_unorm",
2528    .num_srcs = 0,
2529    .has_dest = true,
2530    .dest_components = 1,
2531    .dest_bit_sizes = 0x20,
2532    .num_indices = 0,
2533    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2534 },
2535 {
2536    .name = "load_color0",
2537    .num_srcs = 0,
2538    .has_dest = true,
2539    .dest_components = 4,
2540    .dest_bit_sizes = 0x20,
2541    .num_indices = 0,
2542    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2543 },
2544 {
2545    .name = "load_color1",
2546    .num_srcs = 0,
2547    .has_dest = true,
2548    .dest_components = 4,
2549    .dest_bit_sizes = 0x20,
2550    .num_indices = 0,
2551    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2552 },
2553 {
2554    .name = "load_constant",
2555    .num_srcs = 1,
2556    .src_components = {
2557       1
2558    },
2559    .has_dest = true,
2560    .dest_components = 0,
2561    .dest_bit_sizes = 0x0,
2562    .num_indices = 4,
2563    .index_map = {
2564       [NIR_INTRINSIC_BASE] = 1,
2565       [NIR_INTRINSIC_RANGE] = 2,
2566       [NIR_INTRINSIC_ALIGN_MUL] = 3,
2567       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
2568     },
2569    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2570 },
2571 {
2572    .name = "load_constant_base_ptr",
2573    .num_srcs = 0,
2574    .has_dest = true,
2575    .dest_components = 0,
2576    .dest_bit_sizes = 0x60,
2577    .num_indices = 0,
2578    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2579 },
2580 {
2581    .name = "load_deref",
2582    .num_srcs = 1,
2583    .src_components = {
2584       -1
2585    },
2586    .has_dest = true,
2587    .dest_components = 0,
2588    .dest_bit_sizes = 0x0,
2589    .num_indices = 1,
2590    .index_map = {
2591       [NIR_INTRINSIC_ACCESS] = 1,
2592     },
2593    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2594 },
2595 {
2596    .name = "load_deref_block_intel",
2597    .num_srcs = 1,
2598    .src_components = {
2599       -1
2600    },
2601    .has_dest = true,
2602    .dest_components = 0,
2603    .dest_bit_sizes = 0x0,
2604    .num_indices = 1,
2605    .index_map = {
2606       [NIR_INTRINSIC_ACCESS] = 1,
2607     },
2608    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2609 },
2610 {
2611    .name = "load_draw_id",
2612    .num_srcs = 0,
2613    .has_dest = true,
2614    .dest_components = 1,
2615    .dest_bit_sizes = 0x20,
2616    .num_indices = 0,
2617    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2618 },
2619 {
2620    .name = "load_fb_layers_v3d",
2621    .num_srcs = 0,
2622    .has_dest = true,
2623    .dest_components = 1,
2624    .dest_bit_sizes = 0x0,
2625    .num_indices = 0,
2626    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2627 },
2628 {
2629    .name = "load_first_vertex",
2630    .num_srcs = 0,
2631    .has_dest = true,
2632    .dest_components = 1,
2633    .dest_bit_sizes = 0x20,
2634    .num_indices = 0,
2635    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2636 },
2637 {
2638    .name = "load_frag_coord",
2639    .num_srcs = 0,
2640    .has_dest = true,
2641    .dest_components = 4,
2642    .dest_bit_sizes = 0x20,
2643    .num_indices = 0,
2644    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2645 },
2646 {
2647    .name = "load_front_face",
2648    .num_srcs = 0,
2649    .has_dest = true,
2650    .dest_components = 1,
2651    .dest_bit_sizes = 0x21,
2652    .num_indices = 0,
2653    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2654 },
2655 {
2656    .name = "load_fs_input_interp_deltas",
2657    .num_srcs = 1,
2658    .src_components = {
2659       1
2660    },
2661    .has_dest = true,
2662    .dest_components = 3,
2663    .dest_bit_sizes = 0x0,
2664    .num_indices = 3,
2665    .index_map = {
2666       [NIR_INTRINSIC_BASE] = 1,
2667       [NIR_INTRINSIC_COMPONENT] = 2,
2668       [NIR_INTRINSIC_IO_SEMANTICS] = 3,
2669     },
2670    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2671 },
2672 {
2673    .name = "load_global",
2674    .num_srcs = 1,
2675    .src_components = {
2676       1
2677    },
2678    .has_dest = true,
2679    .dest_components = 0,
2680    .dest_bit_sizes = 0x0,
2681    .num_indices = 3,
2682    .index_map = {
2683       [NIR_INTRINSIC_ACCESS] = 1,
2684       [NIR_INTRINSIC_ALIGN_MUL] = 2,
2685       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
2686     },
2687    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2688 },
2689 {
2690    .name = "load_global_block_intel",
2691    .num_srcs = 1,
2692    .src_components = {
2693       1
2694    },
2695    .has_dest = true,
2696    .dest_components = 0,
2697    .dest_bit_sizes = 0x0,
2698    .num_indices = 3,
2699    .index_map = {
2700       [NIR_INTRINSIC_ACCESS] = 1,
2701       [NIR_INTRINSIC_ALIGN_MUL] = 2,
2702       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
2703     },
2704    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2705 },
2706 {
2707    .name = "load_global_constant",
2708    .num_srcs = 1,
2709    .src_components = {
2710       1
2711    },
2712    .has_dest = true,
2713    .dest_components = 0,
2714    .dest_bit_sizes = 0x0,
2715    .num_indices = 3,
2716    .index_map = {
2717       [NIR_INTRINSIC_ACCESS] = 1,
2718       [NIR_INTRINSIC_ALIGN_MUL] = 2,
2719       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
2720     },
2721    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2722 },
2723 {
2724    .name = "load_global_invocation_id",
2725    .num_srcs = 0,
2726    .has_dest = true,
2727    .dest_components = 3,
2728    .dest_bit_sizes = 0x60,
2729    .num_indices = 0,
2730    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2731 },
2732 {
2733    .name = "load_global_invocation_id_zero_base",
2734    .num_srcs = 0,
2735    .has_dest = true,
2736    .dest_components = 3,
2737    .dest_bit_sizes = 0x60,
2738    .num_indices = 0,
2739    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2740 },
2741 {
2742    .name = "load_global_invocation_index",
2743    .num_srcs = 0,
2744    .has_dest = true,
2745    .dest_components = 1,
2746    .dest_bit_sizes = 0x60,
2747    .num_indices = 0,
2748    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2749 },
2750 {
2751    .name = "load_global_ir3",
2752    .num_srcs = 2,
2753    .src_components = {
2754       2, 1
2755    },
2756    .has_dest = true,
2757    .dest_components = 0,
2758    .dest_bit_sizes = 0x0,
2759    .num_indices = 3,
2760    .index_map = {
2761       [NIR_INTRINSIC_ACCESS] = 1,
2762       [NIR_INTRINSIC_ALIGN_MUL] = 2,
2763       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
2764     },
2765    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2766 },
2767 {
2768    .name = "load_gs_header_ir3",
2769    .num_srcs = 0,
2770    .has_dest = true,
2771    .dest_components = 1,
2772    .dest_bit_sizes = 0x20,
2773    .num_indices = 0,
2774    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2775 },
2776 {
2777    .name = "load_helper_invocation",
2778    .num_srcs = 0,
2779    .has_dest = true,
2780    .dest_components = 1,
2781    .dest_bit_sizes = 0x21,
2782    .num_indices = 0,
2783    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2784 },
2785 {
2786    .name = "load_hs_patch_stride_ir3",
2787    .num_srcs = 0,
2788    .has_dest = true,
2789    .dest_components = 1,
2790    .dest_bit_sizes = 0x20,
2791    .num_indices = 0,
2792    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2793 },
2794 {
2795    .name = "load_input",
2796    .num_srcs = 1,
2797    .src_components = {
2798       1
2799    },
2800    .has_dest = true,
2801    .dest_components = 0,
2802    .dest_bit_sizes = 0x0,
2803    .num_indices = 4,
2804    .index_map = {
2805       [NIR_INTRINSIC_BASE] = 1,
2806       [NIR_INTRINSIC_COMPONENT] = 2,
2807       [NIR_INTRINSIC_DEST_TYPE] = 3,
2808       [NIR_INTRINSIC_IO_SEMANTICS] = 4,
2809     },
2810    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2811 },
2812 {
2813    .name = "load_input_vertex",
2814    .num_srcs = 2,
2815    .src_components = {
2816       1, 1
2817    },
2818    .has_dest = true,
2819    .dest_components = 0,
2820    .dest_bit_sizes = 0x0,
2821    .num_indices = 4,
2822    .index_map = {
2823       [NIR_INTRINSIC_BASE] = 1,
2824       [NIR_INTRINSIC_COMPONENT] = 2,
2825       [NIR_INTRINSIC_DEST_TYPE] = 3,
2826       [NIR_INTRINSIC_IO_SEMANTICS] = 4,
2827     },
2828    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2829 },
2830 {
2831    .name = "load_instance_id",
2832    .num_srcs = 0,
2833    .has_dest = true,
2834    .dest_components = 1,
2835    .dest_bit_sizes = 0x20,
2836    .num_indices = 0,
2837    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2838 },
2839 {
2840    .name = "load_interpolated_input",
2841    .num_srcs = 2,
2842    .src_components = {
2843       2, 1
2844    },
2845    .has_dest = true,
2846    .dest_components = 0,
2847    .dest_bit_sizes = 0x0,
2848    .num_indices = 3,
2849    .index_map = {
2850       [NIR_INTRINSIC_BASE] = 1,
2851       [NIR_INTRINSIC_COMPONENT] = 2,
2852       [NIR_INTRINSIC_IO_SEMANTICS] = 3,
2853     },
2854    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2855 },
2856 {
2857    .name = "load_invocation_id",
2858    .num_srcs = 0,
2859    .has_dest = true,
2860    .dest_components = 1,
2861    .dest_bit_sizes = 0x20,
2862    .num_indices = 0,
2863    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2864 },
2865 {
2866    .name = "load_is_indexed_draw",
2867    .num_srcs = 0,
2868    .has_dest = true,
2869    .dest_components = 1,
2870    .dest_bit_sizes = 0x20,
2871    .num_indices = 0,
2872    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2873 },
2874 {
2875    .name = "load_kernel_input",
2876    .num_srcs = 1,
2877    .src_components = {
2878       1
2879    },
2880    .has_dest = true,
2881    .dest_components = 0,
2882    .dest_bit_sizes = 0x0,
2883    .num_indices = 4,
2884    .index_map = {
2885       [NIR_INTRINSIC_BASE] = 1,
2886       [NIR_INTRINSIC_RANGE] = 2,
2887       [NIR_INTRINSIC_ALIGN_MUL] = 3,
2888       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
2889     },
2890    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2891 },
2892 {
2893    .name = "load_layer_id",
2894    .num_srcs = 0,
2895    .has_dest = true,
2896    .dest_components = 1,
2897    .dest_bit_sizes = 0x20,
2898    .num_indices = 0,
2899    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2900 },
2901 {
2902    .name = "load_line_coord",
2903    .num_srcs = 0,
2904    .has_dest = true,
2905    .dest_components = 1,
2906    .dest_bit_sizes = 0x20,
2907    .num_indices = 0,
2908    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2909 },
2910 {
2911    .name = "load_line_width",
2912    .num_srcs = 0,
2913    .has_dest = true,
2914    .dest_components = 1,
2915    .dest_bit_sizes = 0x20,
2916    .num_indices = 0,
2917    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2918 },
2919 {
2920    .name = "load_local_group_size",
2921    .num_srcs = 0,
2922    .has_dest = true,
2923    .dest_components = 3,
2924    .dest_bit_sizes = 0x20,
2925    .num_indices = 0,
2926    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2927 },
2928 {
2929    .name = "load_local_invocation_id",
2930    .num_srcs = 0,
2931    .has_dest = true,
2932    .dest_components = 3,
2933    .dest_bit_sizes = 0x20,
2934    .num_indices = 0,
2935    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2936 },
2937 {
2938    .name = "load_local_invocation_index",
2939    .num_srcs = 0,
2940    .has_dest = true,
2941    .dest_components = 1,
2942    .dest_bit_sizes = 0x20,
2943    .num_indices = 0,
2944    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2945 },
2946 {
2947    .name = "load_local_shared_r600",
2948    .num_srcs = 1,
2949    .src_components = {
2950       0
2951    },
2952    .has_dest = true,
2953    .dest_components = 0,
2954    .dest_bit_sizes = 0x0,
2955    .num_indices = 1,
2956    .index_map = {
2957       [NIR_INTRINSIC_COMPONENT] = 1,
2958     },
2959    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2960 },
2961 {
2962    .name = "load_num_subgroups",
2963    .num_srcs = 0,
2964    .has_dest = true,
2965    .dest_components = 1,
2966    .dest_bit_sizes = 0x20,
2967    .num_indices = 0,
2968    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2969 },
2970 {
2971    .name = "load_num_work_groups",
2972    .num_srcs = 0,
2973    .has_dest = true,
2974    .dest_components = 3,
2975    .dest_bit_sizes = 0x60,
2976    .num_indices = 0,
2977    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
2978 },
2979 {
2980    .name = "load_output",
2981    .num_srcs = 1,
2982    .src_components = {
2983       1
2984    },
2985    .has_dest = true,
2986    .dest_components = 0,
2987    .dest_bit_sizes = 0x0,
2988    .num_indices = 3,
2989    .index_map = {
2990       [NIR_INTRINSIC_BASE] = 1,
2991       [NIR_INTRINSIC_COMPONENT] = 2,
2992       [NIR_INTRINSIC_IO_SEMANTICS] = 3,
2993     },
2994    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
2995 },
2996 {
2997    .name = "load_param",
2998    .num_srcs = 0,
2999    .has_dest = true,
3000    .dest_components = 0,
3001    .dest_bit_sizes = 0x0,
3002    .num_indices = 1,
3003    .index_map = {
3004       [NIR_INTRINSIC_PARAM_IDX] = 1,
3005     },
3006    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3007 },
3008 {
3009    .name = "load_patch_vertices_in",
3010    .num_srcs = 0,
3011    .has_dest = true,
3012    .dest_components = 1,
3013    .dest_bit_sizes = 0x20,
3014    .num_indices = 0,
3015    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3016 },
3017 {
3018    .name = "load_per_vertex_input",
3019    .num_srcs = 2,
3020    .src_components = {
3021       1, 1
3022    },
3023    .has_dest = true,
3024    .dest_components = 0,
3025    .dest_bit_sizes = 0x0,
3026    .num_indices = 3,
3027    .index_map = {
3028       [NIR_INTRINSIC_BASE] = 1,
3029       [NIR_INTRINSIC_COMPONENT] = 2,
3030       [NIR_INTRINSIC_IO_SEMANTICS] = 3,
3031     },
3032    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3033 },
3034 {
3035    .name = "load_per_vertex_output",
3036    .num_srcs = 2,
3037    .src_components = {
3038       1, 1
3039    },
3040    .has_dest = true,
3041    .dest_components = 0,
3042    .dest_bit_sizes = 0x0,
3043    .num_indices = 3,
3044    .index_map = {
3045       [NIR_INTRINSIC_BASE] = 1,
3046       [NIR_INTRINSIC_COMPONENT] = 2,
3047       [NIR_INTRINSIC_IO_SEMANTICS] = 3,
3048     },
3049    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3050 },
3051 {
3052    .name = "load_point_coord",
3053    .num_srcs = 0,
3054    .has_dest = true,
3055    .dest_components = 2,
3056    .dest_bit_sizes = 0x20,
3057    .num_indices = 0,
3058    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3059 },
3060 {
3061    .name = "load_primitive_id",
3062    .num_srcs = 0,
3063    .has_dest = true,
3064    .dest_components = 1,
3065    .dest_bit_sizes = 0x20,
3066    .num_indices = 0,
3067    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3068 },
3069 {
3070    .name = "load_primitive_location_ir3",
3071    .num_srcs = 0,
3072    .has_dest = true,
3073    .dest_components = 1,
3074    .dest_bit_sizes = 0x20,
3075    .num_indices = 1,
3076    .index_map = {
3077       [NIR_INTRINSIC_DRIVER_LOCATION] = 1,
3078     },
3079    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3080 },
3081 {
3082    .name = "load_push_constant",
3083    .num_srcs = 1,
3084    .src_components = {
3085       1
3086    },
3087    .has_dest = true,
3088    .dest_components = 0,
3089    .dest_bit_sizes = 0x0,
3090    .num_indices = 2,
3091    .index_map = {
3092       [NIR_INTRINSIC_BASE] = 1,
3093       [NIR_INTRINSIC_RANGE] = 2,
3094     },
3095    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3096 },
3097 {
3098    .name = "load_raw_output_pan",
3099    .num_srcs = 1,
3100    .src_components = {
3101       1
3102    },
3103    .has_dest = true,
3104    .dest_components = 0,
3105    .dest_bit_sizes = 0x0,
3106    .num_indices = 1,
3107    .index_map = {
3108       [NIR_INTRINSIC_BASE] = 1,
3109     },
3110    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3111 },
3112 {
3113    .name = "load_ray_flags",
3114    .num_srcs = 0,
3115    .has_dest = true,
3116    .dest_components = 1,
3117    .dest_bit_sizes = 0x20,
3118    .num_indices = 0,
3119    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3120 },
3121 {
3122    .name = "load_ray_geometry_index",
3123    .num_srcs = 0,
3124    .has_dest = true,
3125    .dest_components = 1,
3126    .dest_bit_sizes = 0x20,
3127    .num_indices = 0,
3128    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3129 },
3130 {
3131    .name = "load_ray_hit_kind",
3132    .num_srcs = 0,
3133    .has_dest = true,
3134    .dest_components = 1,
3135    .dest_bit_sizes = 0x20,
3136    .num_indices = 0,
3137    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3138 },
3139 {
3140    .name = "load_ray_instance_custom_index",
3141    .num_srcs = 0,
3142    .has_dest = true,
3143    .dest_components = 1,
3144    .dest_bit_sizes = 0x20,
3145    .num_indices = 0,
3146    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3147 },
3148 {
3149    .name = "load_ray_launch_id",
3150    .num_srcs = 0,
3151    .has_dest = true,
3152    .dest_components = 3,
3153    .dest_bit_sizes = 0x20,
3154    .num_indices = 0,
3155    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3156 },
3157 {
3158    .name = "load_ray_launch_size",
3159    .num_srcs = 0,
3160    .has_dest = true,
3161    .dest_components = 3,
3162    .dest_bit_sizes = 0x20,
3163    .num_indices = 0,
3164    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3165 },
3166 {
3167    .name = "load_ray_object_direction",
3168    .num_srcs = 0,
3169    .has_dest = true,
3170    .dest_components = 3,
3171    .dest_bit_sizes = 0x20,
3172    .num_indices = 0,
3173    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3174 },
3175 {
3176    .name = "load_ray_object_origin",
3177    .num_srcs = 0,
3178    .has_dest = true,
3179    .dest_components = 3,
3180    .dest_bit_sizes = 0x20,
3181    .num_indices = 0,
3182    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3183 },
3184 {
3185    .name = "load_ray_object_to_world",
3186    .num_srcs = 0,
3187    .has_dest = true,
3188    .dest_components = 3,
3189    .dest_bit_sizes = 0x20,
3190    .num_indices = 1,
3191    .index_map = {
3192       [NIR_INTRINSIC_COLUMN] = 1,
3193     },
3194    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3195 },
3196 {
3197    .name = "load_ray_t_max",
3198    .num_srcs = 0,
3199    .has_dest = true,
3200    .dest_components = 1,
3201    .dest_bit_sizes = 0x20,
3202    .num_indices = 0,
3203    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3204 },
3205 {
3206    .name = "load_ray_t_min",
3207    .num_srcs = 0,
3208    .has_dest = true,
3209    .dest_components = 1,
3210    .dest_bit_sizes = 0x20,
3211    .num_indices = 0,
3212    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3213 },
3214 {
3215    .name = "load_ray_world_direction",
3216    .num_srcs = 0,
3217    .has_dest = true,
3218    .dest_components = 3,
3219    .dest_bit_sizes = 0x20,
3220    .num_indices = 0,
3221    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3222 },
3223 {
3224    .name = "load_ray_world_origin",
3225    .num_srcs = 0,
3226    .has_dest = true,
3227    .dest_components = 3,
3228    .dest_bit_sizes = 0x20,
3229    .num_indices = 0,
3230    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3231 },
3232 {
3233    .name = "load_ray_world_to_object",
3234    .num_srcs = 0,
3235    .has_dest = true,
3236    .dest_components = 3,
3237    .dest_bit_sizes = 0x20,
3238    .num_indices = 1,
3239    .index_map = {
3240       [NIR_INTRINSIC_COLUMN] = 1,
3241     },
3242    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3243 },
3244 {
3245    .name = "load_reloc_const_intel",
3246    .num_srcs = 0,
3247    .has_dest = true,
3248    .dest_components = 1,
3249    .dest_bit_sizes = 0x20,
3250    .num_indices = 1,
3251    .index_map = {
3252       [NIR_INTRINSIC_PARAM_IDX] = 1,
3253     },
3254    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3255 },
3256 {
3257    .name = "load_sample_id",
3258    .num_srcs = 0,
3259    .has_dest = true,
3260    .dest_components = 1,
3261    .dest_bit_sizes = 0x20,
3262    .num_indices = 0,
3263    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3264 },
3265 {
3266    .name = "load_sample_id_no_per_sample",
3267    .num_srcs = 0,
3268    .has_dest = true,
3269    .dest_components = 1,
3270    .dest_bit_sizes = 0x20,
3271    .num_indices = 0,
3272    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3273 },
3274 {
3275    .name = "load_sample_mask_in",
3276    .num_srcs = 0,
3277    .has_dest = true,
3278    .dest_components = 1,
3279    .dest_bit_sizes = 0x20,
3280    .num_indices = 0,
3281    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3282 },
3283 {
3284    .name = "load_sample_pos",
3285    .num_srcs = 0,
3286    .has_dest = true,
3287    .dest_components = 2,
3288    .dest_bit_sizes = 0x20,
3289    .num_indices = 0,
3290    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3291 },
3292 {
3293    .name = "load_sample_pos_from_id",
3294    .num_srcs = 1,
3295    .src_components = {
3296       1
3297    },
3298    .has_dest = true,
3299    .dest_components = 2,
3300    .dest_bit_sizes = 0x0,
3301    .num_indices = 0,
3302    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3303 },
3304 {
3305    .name = "load_sampler_lod_parameters_pan",
3306    .num_srcs = 1,
3307    .src_components = {
3308       1
3309    },
3310    .has_dest = true,
3311    .dest_components = 0,
3312    .dest_bit_sizes = 0x0,
3313    .num_indices = 0,
3314    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3315 },
3316 {
3317    .name = "load_scratch",
3318    .num_srcs = 1,
3319    .src_components = {
3320       1
3321    },
3322    .has_dest = true,
3323    .dest_components = 0,
3324    .dest_bit_sizes = 0x0,
3325    .num_indices = 2,
3326    .index_map = {
3327       [NIR_INTRINSIC_ALIGN_MUL] = 1,
3328       [NIR_INTRINSIC_ALIGN_OFFSET] = 2,
3329     },
3330    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3331 },
3332 {
3333    .name = "load_scratch_base_ptr",
3334    .num_srcs = 0,
3335    .has_dest = true,
3336    .dest_components = 0,
3337    .dest_bit_sizes = 0x60,
3338    .num_indices = 1,
3339    .index_map = {
3340       [NIR_INTRINSIC_BASE] = 1,
3341     },
3342    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3343 },
3344 {
3345    .name = "load_shader_record_ptr",
3346    .num_srcs = 0,
3347    .has_dest = true,
3348    .dest_components = 1,
3349    .dest_bit_sizes = 0x40,
3350    .num_indices = 0,
3351    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3352 },
3353 {
3354    .name = "load_shared",
3355    .num_srcs = 1,
3356    .src_components = {
3357       1
3358    },
3359    .has_dest = true,
3360    .dest_components = 0,
3361    .dest_bit_sizes = 0x0,
3362    .num_indices = 3,
3363    .index_map = {
3364       [NIR_INTRINSIC_BASE] = 1,
3365       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3366       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3367     },
3368    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3369 },
3370 {
3371    .name = "load_shared_base_ptr",
3372    .num_srcs = 0,
3373    .has_dest = true,
3374    .dest_components = 0,
3375    .dest_bit_sizes = 0x60,
3376    .num_indices = 0,
3377    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3378 },
3379 {
3380    .name = "load_shared_block_intel",
3381    .num_srcs = 1,
3382    .src_components = {
3383       1
3384    },
3385    .has_dest = true,
3386    .dest_components = 0,
3387    .dest_bit_sizes = 0x0,
3388    .num_indices = 3,
3389    .index_map = {
3390       [NIR_INTRINSIC_BASE] = 1,
3391       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3392       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3393     },
3394    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3395 },
3396 {
3397    .name = "load_shared_ir3",
3398    .num_srcs = 1,
3399    .src_components = {
3400       1
3401    },
3402    .has_dest = true,
3403    .dest_components = 0,
3404    .dest_bit_sizes = 0x0,
3405    .num_indices = 3,
3406    .index_map = {
3407       [NIR_INTRINSIC_BASE] = 1,
3408       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3409       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3410     },
3411    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3412 },
3413 {
3414    .name = "load_simd_width_intel",
3415    .num_srcs = 0,
3416    .has_dest = true,
3417    .dest_components = 1,
3418    .dest_bit_sizes = 0x20,
3419    .num_indices = 0,
3420    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3421 },
3422 {
3423    .name = "load_size_ir3",
3424    .num_srcs = 0,
3425    .has_dest = true,
3426    .dest_components = 1,
3427    .dest_bit_sizes = 0x0,
3428    .num_indices = 0,
3429    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3430 },
3431 {
3432    .name = "load_ssbo",
3433    .num_srcs = 2,
3434    .src_components = {
3435       -1, 1
3436    },
3437    .has_dest = true,
3438    .dest_components = 0,
3439    .dest_bit_sizes = 0x0,
3440    .num_indices = 3,
3441    .index_map = {
3442       [NIR_INTRINSIC_ACCESS] = 1,
3443       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3444       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3445     },
3446    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3447 },
3448 {
3449    .name = "load_ssbo_address",
3450    .num_srcs = 1,
3451    .src_components = {
3452       1
3453    },
3454    .has_dest = true,
3455    .dest_components = 0,
3456    .dest_bit_sizes = 0x0,
3457    .num_indices = 0,
3458    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3459 },
3460 {
3461    .name = "load_ssbo_block_intel",
3462    .num_srcs = 2,
3463    .src_components = {
3464       -1, 1
3465    },
3466    .has_dest = true,
3467    .dest_components = 0,
3468    .dest_bit_sizes = 0x0,
3469    .num_indices = 3,
3470    .index_map = {
3471       [NIR_INTRINSIC_ACCESS] = 1,
3472       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3473       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3474     },
3475    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3476 },
3477 {
3478    .name = "load_ssbo_ir3",
3479    .num_srcs = 3,
3480    .src_components = {
3481       1, 1, 1
3482    },
3483    .has_dest = true,
3484    .dest_components = 0,
3485    .dest_bit_sizes = 0x0,
3486    .num_indices = 3,
3487    .index_map = {
3488       [NIR_INTRINSIC_ACCESS] = 1,
3489       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3490       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3491     },
3492    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3493 },
3494 {
3495    .name = "load_subgroup_eq_mask",
3496    .num_srcs = 0,
3497    .has_dest = true,
3498    .dest_components = 0,
3499    .dest_bit_sizes = 0x60,
3500    .num_indices = 0,
3501    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3502 },
3503 {
3504    .name = "load_subgroup_ge_mask",
3505    .num_srcs = 0,
3506    .has_dest = true,
3507    .dest_components = 0,
3508    .dest_bit_sizes = 0x60,
3509    .num_indices = 0,
3510    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3511 },
3512 {
3513    .name = "load_subgroup_gt_mask",
3514    .num_srcs = 0,
3515    .has_dest = true,
3516    .dest_components = 0,
3517    .dest_bit_sizes = 0x60,
3518    .num_indices = 0,
3519    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3520 },
3521 {
3522    .name = "load_subgroup_id",
3523    .num_srcs = 0,
3524    .has_dest = true,
3525    .dest_components = 1,
3526    .dest_bit_sizes = 0x20,
3527    .num_indices = 0,
3528    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3529 },
3530 {
3531    .name = "load_subgroup_invocation",
3532    .num_srcs = 0,
3533    .has_dest = true,
3534    .dest_components = 1,
3535    .dest_bit_sizes = 0x20,
3536    .num_indices = 0,
3537    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3538 },
3539 {
3540    .name = "load_subgroup_le_mask",
3541    .num_srcs = 0,
3542    .has_dest = true,
3543    .dest_components = 0,
3544    .dest_bit_sizes = 0x60,
3545    .num_indices = 0,
3546    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3547 },
3548 {
3549    .name = "load_subgroup_lt_mask",
3550    .num_srcs = 0,
3551    .has_dest = true,
3552    .dest_components = 0,
3553    .dest_bit_sizes = 0x60,
3554    .num_indices = 0,
3555    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3556 },
3557 {
3558    .name = "load_subgroup_size",
3559    .num_srcs = 0,
3560    .has_dest = true,
3561    .dest_components = 1,
3562    .dest_bit_sizes = 0x20,
3563    .num_indices = 0,
3564    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3565 },
3566 {
3567    .name = "load_tcs_header_ir3",
3568    .num_srcs = 0,
3569    .has_dest = true,
3570    .dest_components = 1,
3571    .dest_bit_sizes = 0x20,
3572    .num_indices = 0,
3573    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3574 },
3575 {
3576    .name = "load_tcs_in_param_base_r600",
3577    .num_srcs = 0,
3578    .has_dest = true,
3579    .dest_components = 4,
3580    .dest_bit_sizes = 0x20,
3581    .num_indices = 0,
3582    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3583 },
3584 {
3585    .name = "load_tcs_out_param_base_r600",
3586    .num_srcs = 0,
3587    .has_dest = true,
3588    .dest_components = 4,
3589    .dest_bit_sizes = 0x20,
3590    .num_indices = 0,
3591    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3592 },
3593 {
3594    .name = "load_tcs_rel_patch_id_r600",
3595    .num_srcs = 0,
3596    .has_dest = true,
3597    .dest_components = 1,
3598    .dest_bit_sizes = 0x20,
3599    .num_indices = 0,
3600    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3601 },
3602 {
3603    .name = "load_tcs_tess_factor_base_r600",
3604    .num_srcs = 0,
3605    .has_dest = true,
3606    .dest_components = 1,
3607    .dest_bit_sizes = 0x20,
3608    .num_indices = 0,
3609    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3610 },
3611 {
3612    .name = "load_tess_coord",
3613    .num_srcs = 0,
3614    .has_dest = true,
3615    .dest_components = 3,
3616    .dest_bit_sizes = 0x20,
3617    .num_indices = 0,
3618    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3619 },
3620 {
3621    .name = "load_tess_factor_base_ir3",
3622    .num_srcs = 0,
3623    .has_dest = true,
3624    .dest_components = 2,
3625    .dest_bit_sizes = 0x20,
3626    .num_indices = 0,
3627    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3628 },
3629 {
3630    .name = "load_tess_level_inner",
3631    .num_srcs = 0,
3632    .has_dest = true,
3633    .dest_components = 2,
3634    .dest_bit_sizes = 0x20,
3635    .num_indices = 0,
3636    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3637 },
3638 {
3639    .name = "load_tess_level_inner_default",
3640    .num_srcs = 0,
3641    .has_dest = true,
3642    .dest_components = 2,
3643    .dest_bit_sizes = 0x20,
3644    .num_indices = 0,
3645    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3646 },
3647 {
3648    .name = "load_tess_level_outer",
3649    .num_srcs = 0,
3650    .has_dest = true,
3651    .dest_components = 4,
3652    .dest_bit_sizes = 0x20,
3653    .num_indices = 0,
3654    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3655 },
3656 {
3657    .name = "load_tess_level_outer_default",
3658    .num_srcs = 0,
3659    .has_dest = true,
3660    .dest_components = 4,
3661    .dest_bit_sizes = 0x20,
3662    .num_indices = 0,
3663    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3664 },
3665 {
3666    .name = "load_tess_param_base_ir3",
3667    .num_srcs = 0,
3668    .has_dest = true,
3669    .dest_components = 2,
3670    .dest_bit_sizes = 0x20,
3671    .num_indices = 0,
3672    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3673 },
3674 {
3675    .name = "load_tlb_color_v3d",
3676    .num_srcs = 1,
3677    .src_components = {
3678       1
3679    },
3680    .has_dest = true,
3681    .dest_components = 0,
3682    .dest_bit_sizes = 0x0,
3683    .num_indices = 2,
3684    .index_map = {
3685       [NIR_INTRINSIC_BASE] = 1,
3686       [NIR_INTRINSIC_COMPONENT] = 2,
3687     },
3688    .flags = 0,
3689 },
3690 {
3691    .name = "load_ubo",
3692    .num_srcs = 2,
3693    .src_components = {
3694       -1, 1
3695    },
3696    .has_dest = true,
3697    .dest_components = 0,
3698    .dest_bit_sizes = 0x0,
3699    .num_indices = 5,
3700    .index_map = {
3701       [NIR_INTRINSIC_ACCESS] = 1,
3702       [NIR_INTRINSIC_ALIGN_MUL] = 2,
3703       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
3704       [NIR_INTRINSIC_RANGE_BASE] = 4,
3705       [NIR_INTRINSIC_RANGE] = 5,
3706     },
3707    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3708 },
3709 {
3710    .name = "load_ubo_vec4",
3711    .num_srcs = 2,
3712    .src_components = {
3713       -1, 1
3714    },
3715    .has_dest = true,
3716    .dest_components = 0,
3717    .dest_bit_sizes = 0x0,
3718    .num_indices = 2,
3719    .index_map = {
3720       [NIR_INTRINSIC_ACCESS] = 1,
3721       [NIR_INTRINSIC_COMPONENT] = 2,
3722     },
3723    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3724 },
3725 {
3726    .name = "load_uniform",
3727    .num_srcs = 1,
3728    .src_components = {
3729       1
3730    },
3731    .has_dest = true,
3732    .dest_components = 0,
3733    .dest_bit_sizes = 0x0,
3734    .num_indices = 3,
3735    .index_map = {
3736       [NIR_INTRINSIC_BASE] = 1,
3737       [NIR_INTRINSIC_RANGE] = 2,
3738       [NIR_INTRINSIC_DEST_TYPE] = 3,
3739     },
3740    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3741 },
3742 {
3743    .name = "load_user_clip_plane",
3744    .num_srcs = 0,
3745    .has_dest = true,
3746    .dest_components = 4,
3747    .dest_bit_sizes = 0x20,
3748    .num_indices = 1,
3749    .index_map = {
3750       [NIR_INTRINSIC_UCP_ID] = 1,
3751     },
3752    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3753 },
3754 {
3755    .name = "load_user_data_amd",
3756    .num_srcs = 0,
3757    .has_dest = true,
3758    .dest_components = 4,
3759    .dest_bit_sizes = 0x20,
3760    .num_indices = 0,
3761    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3762 },
3763 {
3764    .name = "load_vertex_id",
3765    .num_srcs = 0,
3766    .has_dest = true,
3767    .dest_components = 1,
3768    .dest_bit_sizes = 0x20,
3769    .num_indices = 0,
3770    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3771 },
3772 {
3773    .name = "load_vertex_id_zero_base",
3774    .num_srcs = 0,
3775    .has_dest = true,
3776    .dest_components = 1,
3777    .dest_bit_sizes = 0x20,
3778    .num_indices = 0,
3779    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3780 },
3781 {
3782    .name = "load_view_index",
3783    .num_srcs = 0,
3784    .has_dest = true,
3785    .dest_components = 1,
3786    .dest_bit_sizes = 0x20,
3787    .num_indices = 0,
3788    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3789 },
3790 {
3791    .name = "load_viewport_offset",
3792    .num_srcs = 0,
3793    .has_dest = true,
3794    .dest_components = 3,
3795    .dest_bit_sizes = 0x20,
3796    .num_indices = 0,
3797    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3798 },
3799 {
3800    .name = "load_viewport_scale",
3801    .num_srcs = 0,
3802    .has_dest = true,
3803    .dest_components = 3,
3804    .dest_bit_sizes = 0x20,
3805    .num_indices = 0,
3806    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3807 },
3808 {
3809    .name = "load_viewport_x_scale",
3810    .num_srcs = 0,
3811    .has_dest = true,
3812    .dest_components = 1,
3813    .dest_bit_sizes = 0x20,
3814    .num_indices = 0,
3815    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3816 },
3817 {
3818    .name = "load_viewport_y_scale",
3819    .num_srcs = 0,
3820    .has_dest = true,
3821    .dest_components = 1,
3822    .dest_bit_sizes = 0x20,
3823    .num_indices = 0,
3824    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3825 },
3826 {
3827    .name = "load_viewport_z_offset",
3828    .num_srcs = 0,
3829    .has_dest = true,
3830    .dest_components = 1,
3831    .dest_bit_sizes = 0x20,
3832    .num_indices = 0,
3833    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3834 },
3835 {
3836    .name = "load_viewport_z_scale",
3837    .num_srcs = 0,
3838    .has_dest = true,
3839    .dest_components = 1,
3840    .dest_bit_sizes = 0x20,
3841    .num_indices = 0,
3842    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3843 },
3844 {
3845    .name = "load_vs_primitive_stride_ir3",
3846    .num_srcs = 0,
3847    .has_dest = true,
3848    .dest_components = 1,
3849    .dest_bit_sizes = 0x20,
3850    .num_indices = 0,
3851    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3852 },
3853 {
3854    .name = "load_vs_vertex_stride_ir3",
3855    .num_srcs = 0,
3856    .has_dest = true,
3857    .dest_components = 1,
3858    .dest_bit_sizes = 0x20,
3859    .num_indices = 0,
3860    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3861 },
3862 {
3863    .name = "load_vulkan_descriptor",
3864    .num_srcs = 1,
3865    .src_components = {
3866       -1
3867    },
3868    .has_dest = true,
3869    .dest_components = 0,
3870    .dest_bit_sizes = 0x0,
3871    .num_indices = 1,
3872    .index_map = {
3873       [NIR_INTRINSIC_DESC_TYPE] = 1,
3874     },
3875    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3876 },
3877 {
3878    .name = "load_work_dim",
3879    .num_srcs = 0,
3880    .has_dest = true,
3881    .dest_components = 1,
3882    .dest_bit_sizes = 0x20,
3883    .num_indices = 0,
3884    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3885 },
3886 {
3887    .name = "load_work_group_id",
3888    .num_srcs = 0,
3889    .has_dest = true,
3890    .dest_components = 3,
3891    .dest_bit_sizes = 0x60,
3892    .num_indices = 0,
3893    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3894 },
3895 {
3896    .name = "load_work_group_id_zero_base",
3897    .num_srcs = 0,
3898    .has_dest = true,
3899    .dest_components = 3,
3900    .dest_bit_sizes = 0x20,
3901    .num_indices = 0,
3902    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
3903 },
3904 {
3905    .name = "masked_swizzle_amd",
3906    .num_srcs = 1,
3907    .src_components = {
3908       0
3909    },
3910    .has_dest = true,
3911    .dest_components = 0,
3912    .dest_bit_sizes = 0x0,
3913    .num_indices = 1,
3914    .index_map = {
3915       [NIR_INTRINSIC_SWIZZLE_MASK] = 1,
3916     },
3917    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3918 },
3919 {
3920    .name = "mbcnt_amd",
3921    .num_srcs = 1,
3922    .src_components = {
3923       1
3924    },
3925    .has_dest = true,
3926    .dest_components = 1,
3927    .dest_bit_sizes = 0x0,
3928    .num_indices = 0,
3929    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
3930 },
3931 {
3932    .name = "memcpy_deref",
3933    .num_srcs = 3,
3934    .src_components = {
3935       -1, -1, 1
3936    },
3937    .has_dest = false,
3938    .dest_components = 0,
3939    .dest_bit_sizes = 0x0,
3940    .num_indices = 2,
3941    .index_map = {
3942       [NIR_INTRINSIC_DST_ACCESS] = 1,
3943       [NIR_INTRINSIC_SRC_ACCESS] = 2,
3944     },
3945    .flags = 0,
3946 },
3947 {
3948    .name = "memory_barrier",
3949    .num_srcs = 0,
3950    .has_dest = false,
3951    .dest_components = 0,
3952    .dest_bit_sizes = 0x0,
3953    .num_indices = 0,
3954    .flags = 0,
3955 },
3956 {
3957    .name = "memory_barrier_atomic_counter",
3958    .num_srcs = 0,
3959    .has_dest = false,
3960    .dest_components = 0,
3961    .dest_bit_sizes = 0x0,
3962    .num_indices = 0,
3963    .flags = 0,
3964 },
3965 {
3966    .name = "memory_barrier_buffer",
3967    .num_srcs = 0,
3968    .has_dest = false,
3969    .dest_components = 0,
3970    .dest_bit_sizes = 0x0,
3971    .num_indices = 0,
3972    .flags = 0,
3973 },
3974 {
3975    .name = "memory_barrier_image",
3976    .num_srcs = 0,
3977    .has_dest = false,
3978    .dest_components = 0,
3979    .dest_bit_sizes = 0x0,
3980    .num_indices = 0,
3981    .flags = 0,
3982 },
3983 {
3984    .name = "memory_barrier_shared",
3985    .num_srcs = 0,
3986    .has_dest = false,
3987    .dest_components = 0,
3988    .dest_bit_sizes = 0x0,
3989    .num_indices = 0,
3990    .flags = 0,
3991 },
3992 {
3993    .name = "memory_barrier_tcs_patch",
3994    .num_srcs = 0,
3995    .has_dest = false,
3996    .dest_components = 0,
3997    .dest_bit_sizes = 0x0,
3998    .num_indices = 0,
3999    .flags = 0,
4000 },
4001 {
4002    .name = "nop",
4003    .num_srcs = 0,
4004    .has_dest = false,
4005    .dest_components = 0,
4006    .dest_bit_sizes = 0x0,
4007    .num_indices = 0,
4008    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4009 },
4010 {
4011    .name = "quad_broadcast",
4012    .num_srcs = 2,
4013    .src_components = {
4014       0, 1
4015    },
4016    .has_dest = true,
4017    .dest_components = 0,
4018    .dest_bit_sizes = 0x0,
4019    .num_indices = 0,
4020    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4021 },
4022 {
4023    .name = "quad_swap_diagonal",
4024    .num_srcs = 1,
4025    .src_components = {
4026       0
4027    },
4028    .has_dest = true,
4029    .dest_components = 0,
4030    .dest_bit_sizes = 0x0,
4031    .num_indices = 0,
4032    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4033 },
4034 {
4035    .name = "quad_swap_horizontal",
4036    .num_srcs = 1,
4037    .src_components = {
4038       0
4039    },
4040    .has_dest = true,
4041    .dest_components = 0,
4042    .dest_bit_sizes = 0x0,
4043    .num_indices = 0,
4044    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4045 },
4046 {
4047    .name = "quad_swap_vertical",
4048    .num_srcs = 1,
4049    .src_components = {
4050       0
4051    },
4052    .has_dest = true,
4053    .dest_components = 0,
4054    .dest_bit_sizes = 0x0,
4055    .num_indices = 0,
4056    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4057 },
4058 {
4059    .name = "quad_swizzle_amd",
4060    .num_srcs = 1,
4061    .src_components = {
4062       0
4063    },
4064    .has_dest = true,
4065    .dest_components = 0,
4066    .dest_bit_sizes = 0x0,
4067    .num_indices = 1,
4068    .index_map = {
4069       [NIR_INTRINSIC_SWIZZLE_MASK] = 1,
4070     },
4071    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4072 },
4073 {
4074    .name = "read_first_invocation",
4075    .num_srcs = 1,
4076    .src_components = {
4077       0
4078    },
4079    .has_dest = true,
4080    .dest_components = 0,
4081    .dest_bit_sizes = 0x0,
4082    .num_indices = 0,
4083    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4084 },
4085 {
4086    .name = "read_invocation",
4087    .num_srcs = 2,
4088    .src_components = {
4089       0, 1
4090    },
4091    .has_dest = true,
4092    .dest_components = 0,
4093    .dest_bit_sizes = 0x0,
4094    .num_indices = 0,
4095    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4096 },
4097 {
4098    .name = "reduce",
4099    .num_srcs = 1,
4100    .src_components = {
4101       0
4102    },
4103    .has_dest = true,
4104    .dest_components = 0,
4105    .dest_bit_sizes = 0x0,
4106    .num_indices = 2,
4107    .index_map = {
4108       [NIR_INTRINSIC_REDUCTION_OP] = 1,
4109       [NIR_INTRINSIC_CLUSTER_SIZE] = 2,
4110     },
4111    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4112 },
4113 {
4114    .name = "report_ray_intersection",
4115    .num_srcs = 2,
4116    .src_components = {
4117       1, 1
4118    },
4119    .has_dest = true,
4120    .dest_components = 1,
4121    .dest_bit_sizes = 0x0,
4122    .num_indices = 0,
4123    .flags = 0,
4124 },
4125 {
4126    .name = "scoped_barrier",
4127    .num_srcs = 0,
4128    .has_dest = false,
4129    .dest_components = 0,
4130    .dest_bit_sizes = 0x0,
4131    .num_indices = 4,
4132    .index_map = {
4133       [NIR_INTRINSIC_EXECUTION_SCOPE] = 1,
4134       [NIR_INTRINSIC_MEMORY_SEMANTICS] = 2,
4135       [NIR_INTRINSIC_MEMORY_MODES] = 3,
4136       [NIR_INTRINSIC_MEMORY_SCOPE] = 4,
4137     },
4138    .flags = 0,
4139 },
4140 {
4141    .name = "set_vertex_and_primitive_count",
4142    .num_srcs = 2,
4143    .src_components = {
4144       1, 1
4145    },
4146    .has_dest = false,
4147    .dest_components = 0,
4148    .dest_bit_sizes = 0x0,
4149    .num_indices = 1,
4150    .index_map = {
4151       [NIR_INTRINSIC_STREAM_ID] = 1,
4152     },
4153    .flags = 0,
4154 },
4155 {
4156    .name = "shader_clock",
4157    .num_srcs = 0,
4158    .has_dest = true,
4159    .dest_components = 2,
4160    .dest_bit_sizes = 0x0,
4161    .num_indices = 1,
4162    .index_map = {
4163       [NIR_INTRINSIC_MEMORY_SCOPE] = 1,
4164     },
4165    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4166 },
4167 {
4168    .name = "shared_atomic_add",
4169    .num_srcs = 2,
4170    .src_components = {
4171       1, 1
4172    },
4173    .has_dest = true,
4174    .dest_components = 1,
4175    .dest_bit_sizes = 0x0,
4176    .num_indices = 1,
4177    .index_map = {
4178       [NIR_INTRINSIC_BASE] = 1,
4179     },
4180    .flags = 0,
4181 },
4182 {
4183    .name = "shared_atomic_and",
4184    .num_srcs = 2,
4185    .src_components = {
4186       1, 1
4187    },
4188    .has_dest = true,
4189    .dest_components = 1,
4190    .dest_bit_sizes = 0x0,
4191    .num_indices = 1,
4192    .index_map = {
4193       [NIR_INTRINSIC_BASE] = 1,
4194     },
4195    .flags = 0,
4196 },
4197 {
4198    .name = "shared_atomic_comp_swap",
4199    .num_srcs = 3,
4200    .src_components = {
4201       1, 1, 1
4202    },
4203    .has_dest = true,
4204    .dest_components = 1,
4205    .dest_bit_sizes = 0x0,
4206    .num_indices = 1,
4207    .index_map = {
4208       [NIR_INTRINSIC_BASE] = 1,
4209     },
4210    .flags = 0,
4211 },
4212 {
4213    .name = "shared_atomic_exchange",
4214    .num_srcs = 2,
4215    .src_components = {
4216       1, 1
4217    },
4218    .has_dest = true,
4219    .dest_components = 1,
4220    .dest_bit_sizes = 0x0,
4221    .num_indices = 1,
4222    .index_map = {
4223       [NIR_INTRINSIC_BASE] = 1,
4224     },
4225    .flags = 0,
4226 },
4227 {
4228    .name = "shared_atomic_fadd",
4229    .num_srcs = 2,
4230    .src_components = {
4231       1, 1
4232    },
4233    .has_dest = true,
4234    .dest_components = 1,
4235    .dest_bit_sizes = 0x0,
4236    .num_indices = 1,
4237    .index_map = {
4238       [NIR_INTRINSIC_BASE] = 1,
4239     },
4240    .flags = 0,
4241 },
4242 {
4243    .name = "shared_atomic_fcomp_swap",
4244    .num_srcs = 3,
4245    .src_components = {
4246       1, 1, 1
4247    },
4248    .has_dest = true,
4249    .dest_components = 1,
4250    .dest_bit_sizes = 0x0,
4251    .num_indices = 1,
4252    .index_map = {
4253       [NIR_INTRINSIC_BASE] = 1,
4254     },
4255    .flags = 0,
4256 },
4257 {
4258    .name = "shared_atomic_fmax",
4259    .num_srcs = 2,
4260    .src_components = {
4261       1, 1
4262    },
4263    .has_dest = true,
4264    .dest_components = 1,
4265    .dest_bit_sizes = 0x0,
4266    .num_indices = 1,
4267    .index_map = {
4268       [NIR_INTRINSIC_BASE] = 1,
4269     },
4270    .flags = 0,
4271 },
4272 {
4273    .name = "shared_atomic_fmin",
4274    .num_srcs = 2,
4275    .src_components = {
4276       1, 1
4277    },
4278    .has_dest = true,
4279    .dest_components = 1,
4280    .dest_bit_sizes = 0x0,
4281    .num_indices = 1,
4282    .index_map = {
4283       [NIR_INTRINSIC_BASE] = 1,
4284     },
4285    .flags = 0,
4286 },
4287 {
4288    .name = "shared_atomic_imax",
4289    .num_srcs = 2,
4290    .src_components = {
4291       1, 1
4292    },
4293    .has_dest = true,
4294    .dest_components = 1,
4295    .dest_bit_sizes = 0x0,
4296    .num_indices = 1,
4297    .index_map = {
4298       [NIR_INTRINSIC_BASE] = 1,
4299     },
4300    .flags = 0,
4301 },
4302 {
4303    .name = "shared_atomic_imin",
4304    .num_srcs = 2,
4305    .src_components = {
4306       1, 1
4307    },
4308    .has_dest = true,
4309    .dest_components = 1,
4310    .dest_bit_sizes = 0x0,
4311    .num_indices = 1,
4312    .index_map = {
4313       [NIR_INTRINSIC_BASE] = 1,
4314     },
4315    .flags = 0,
4316 },
4317 {
4318    .name = "shared_atomic_or",
4319    .num_srcs = 2,
4320    .src_components = {
4321       1, 1
4322    },
4323    .has_dest = true,
4324    .dest_components = 1,
4325    .dest_bit_sizes = 0x0,
4326    .num_indices = 1,
4327    .index_map = {
4328       [NIR_INTRINSIC_BASE] = 1,
4329     },
4330    .flags = 0,
4331 },
4332 {
4333    .name = "shared_atomic_umax",
4334    .num_srcs = 2,
4335    .src_components = {
4336       1, 1
4337    },
4338    .has_dest = true,
4339    .dest_components = 1,
4340    .dest_bit_sizes = 0x0,
4341    .num_indices = 1,
4342    .index_map = {
4343       [NIR_INTRINSIC_BASE] = 1,
4344     },
4345    .flags = 0,
4346 },
4347 {
4348    .name = "shared_atomic_umin",
4349    .num_srcs = 2,
4350    .src_components = {
4351       1, 1
4352    },
4353    .has_dest = true,
4354    .dest_components = 1,
4355    .dest_bit_sizes = 0x0,
4356    .num_indices = 1,
4357    .index_map = {
4358       [NIR_INTRINSIC_BASE] = 1,
4359     },
4360    .flags = 0,
4361 },
4362 {
4363    .name = "shared_atomic_xor",
4364    .num_srcs = 2,
4365    .src_components = {
4366       1, 1
4367    },
4368    .has_dest = true,
4369    .dest_components = 1,
4370    .dest_bit_sizes = 0x0,
4371    .num_indices = 1,
4372    .index_map = {
4373       [NIR_INTRINSIC_BASE] = 1,
4374     },
4375    .flags = 0,
4376 },
4377 {
4378    .name = "shuffle",
4379    .num_srcs = 2,
4380    .src_components = {
4381       0, 1
4382    },
4383    .has_dest = true,
4384    .dest_components = 0,
4385    .dest_bit_sizes = 0x0,
4386    .num_indices = 0,
4387    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4388 },
4389 {
4390    .name = "shuffle_down",
4391    .num_srcs = 2,
4392    .src_components = {
4393       0, 1
4394    },
4395    .has_dest = true,
4396    .dest_components = 0,
4397    .dest_bit_sizes = 0x0,
4398    .num_indices = 0,
4399    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4400 },
4401 {
4402    .name = "shuffle_up",
4403    .num_srcs = 2,
4404    .src_components = {
4405       0, 1
4406    },
4407    .has_dest = true,
4408    .dest_components = 0,
4409    .dest_bit_sizes = 0x0,
4410    .num_indices = 0,
4411    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4412 },
4413 {
4414    .name = "shuffle_xor",
4415    .num_srcs = 2,
4416    .src_components = {
4417       0, 1
4418    },
4419    .has_dest = true,
4420    .dest_components = 0,
4421    .dest_bit_sizes = 0x0,
4422    .num_indices = 0,
4423    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
4424 },
4425 {
4426    .name = "ssbo_atomic_add",
4427    .num_srcs = 3,
4428    .src_components = {
4429       -1, 1, 1
4430    },
4431    .has_dest = true,
4432    .dest_components = 1,
4433    .dest_bit_sizes = 0x0,
4434    .num_indices = 1,
4435    .index_map = {
4436       [NIR_INTRINSIC_ACCESS] = 1,
4437     },
4438    .flags = 0,
4439 },
4440 {
4441    .name = "ssbo_atomic_add_ir3",
4442    .num_srcs = 4,
4443    .src_components = {
4444       1, 1, 1, 1
4445    },
4446    .has_dest = true,
4447    .dest_components = 1,
4448    .dest_bit_sizes = 0x0,
4449    .num_indices = 1,
4450    .index_map = {
4451       [NIR_INTRINSIC_ACCESS] = 1,
4452     },
4453    .flags = 0,
4454 },
4455 {
4456    .name = "ssbo_atomic_and",
4457    .num_srcs = 3,
4458    .src_components = {
4459       -1, 1, 1
4460    },
4461    .has_dest = true,
4462    .dest_components = 1,
4463    .dest_bit_sizes = 0x0,
4464    .num_indices = 1,
4465    .index_map = {
4466       [NIR_INTRINSIC_ACCESS] = 1,
4467     },
4468    .flags = 0,
4469 },
4470 {
4471    .name = "ssbo_atomic_and_ir3",
4472    .num_srcs = 4,
4473    .src_components = {
4474       1, 1, 1, 1
4475    },
4476    .has_dest = true,
4477    .dest_components = 1,
4478    .dest_bit_sizes = 0x0,
4479    .num_indices = 1,
4480    .index_map = {
4481       [NIR_INTRINSIC_ACCESS] = 1,
4482     },
4483    .flags = 0,
4484 },
4485 {
4486    .name = "ssbo_atomic_comp_swap",
4487    .num_srcs = 4,
4488    .src_components = {
4489       -1, 1, 1, 1
4490    },
4491    .has_dest = true,
4492    .dest_components = 1,
4493    .dest_bit_sizes = 0x0,
4494    .num_indices = 1,
4495    .index_map = {
4496       [NIR_INTRINSIC_ACCESS] = 1,
4497     },
4498    .flags = 0,
4499 },
4500 {
4501    .name = "ssbo_atomic_comp_swap_ir3",
4502    .num_srcs = 5,
4503    .src_components = {
4504       1, 1, 1, 1, 1
4505    },
4506    .has_dest = true,
4507    .dest_components = 1,
4508    .dest_bit_sizes = 0x0,
4509    .num_indices = 1,
4510    .index_map = {
4511       [NIR_INTRINSIC_ACCESS] = 1,
4512     },
4513    .flags = 0,
4514 },
4515 {
4516    .name = "ssbo_atomic_exchange",
4517    .num_srcs = 3,
4518    .src_components = {
4519       -1, 1, 1
4520    },
4521    .has_dest = true,
4522    .dest_components = 1,
4523    .dest_bit_sizes = 0x0,
4524    .num_indices = 1,
4525    .index_map = {
4526       [NIR_INTRINSIC_ACCESS] = 1,
4527     },
4528    .flags = 0,
4529 },
4530 {
4531    .name = "ssbo_atomic_exchange_ir3",
4532    .num_srcs = 4,
4533    .src_components = {
4534       1, 1, 1, 1
4535    },
4536    .has_dest = true,
4537    .dest_components = 1,
4538    .dest_bit_sizes = 0x0,
4539    .num_indices = 1,
4540    .index_map = {
4541       [NIR_INTRINSIC_ACCESS] = 1,
4542     },
4543    .flags = 0,
4544 },
4545 {
4546    .name = "ssbo_atomic_fadd",
4547    .num_srcs = 3,
4548    .src_components = {
4549       -1, 1, 1
4550    },
4551    .has_dest = true,
4552    .dest_components = 1,
4553    .dest_bit_sizes = 0x0,
4554    .num_indices = 1,
4555    .index_map = {
4556       [NIR_INTRINSIC_ACCESS] = 1,
4557     },
4558    .flags = 0,
4559 },
4560 {
4561    .name = "ssbo_atomic_fcomp_swap",
4562    .num_srcs = 4,
4563    .src_components = {
4564       -1, 1, 1, 1
4565    },
4566    .has_dest = true,
4567    .dest_components = 1,
4568    .dest_bit_sizes = 0x0,
4569    .num_indices = 1,
4570    .index_map = {
4571       [NIR_INTRINSIC_ACCESS] = 1,
4572     },
4573    .flags = 0,
4574 },
4575 {
4576    .name = "ssbo_atomic_fmax",
4577    .num_srcs = 3,
4578    .src_components = {
4579       -1, 1, 1
4580    },
4581    .has_dest = true,
4582    .dest_components = 1,
4583    .dest_bit_sizes = 0x0,
4584    .num_indices = 1,
4585    .index_map = {
4586       [NIR_INTRINSIC_ACCESS] = 1,
4587     },
4588    .flags = 0,
4589 },
4590 {
4591    .name = "ssbo_atomic_fmin",
4592    .num_srcs = 3,
4593    .src_components = {
4594       -1, 1, 1
4595    },
4596    .has_dest = true,
4597    .dest_components = 1,
4598    .dest_bit_sizes = 0x0,
4599    .num_indices = 1,
4600    .index_map = {
4601       [NIR_INTRINSIC_ACCESS] = 1,
4602     },
4603    .flags = 0,
4604 },
4605 {
4606    .name = "ssbo_atomic_imax",
4607    .num_srcs = 3,
4608    .src_components = {
4609       -1, 1, 1
4610    },
4611    .has_dest = true,
4612    .dest_components = 1,
4613    .dest_bit_sizes = 0x0,
4614    .num_indices = 1,
4615    .index_map = {
4616       [NIR_INTRINSIC_ACCESS] = 1,
4617     },
4618    .flags = 0,
4619 },
4620 {
4621    .name = "ssbo_atomic_imax_ir3",
4622    .num_srcs = 4,
4623    .src_components = {
4624       1, 1, 1, 1
4625    },
4626    .has_dest = true,
4627    .dest_components = 1,
4628    .dest_bit_sizes = 0x0,
4629    .num_indices = 1,
4630    .index_map = {
4631       [NIR_INTRINSIC_ACCESS] = 1,
4632     },
4633    .flags = 0,
4634 },
4635 {
4636    .name = "ssbo_atomic_imin",
4637    .num_srcs = 3,
4638    .src_components = {
4639       -1, 1, 1
4640    },
4641    .has_dest = true,
4642    .dest_components = 1,
4643    .dest_bit_sizes = 0x0,
4644    .num_indices = 1,
4645    .index_map = {
4646       [NIR_INTRINSIC_ACCESS] = 1,
4647     },
4648    .flags = 0,
4649 },
4650 {
4651    .name = "ssbo_atomic_imin_ir3",
4652    .num_srcs = 4,
4653    .src_components = {
4654       1, 1, 1, 1
4655    },
4656    .has_dest = true,
4657    .dest_components = 1,
4658    .dest_bit_sizes = 0x0,
4659    .num_indices = 1,
4660    .index_map = {
4661       [NIR_INTRINSIC_ACCESS] = 1,
4662     },
4663    .flags = 0,
4664 },
4665 {
4666    .name = "ssbo_atomic_or",
4667    .num_srcs = 3,
4668    .src_components = {
4669       -1, 1, 1
4670    },
4671    .has_dest = true,
4672    .dest_components = 1,
4673    .dest_bit_sizes = 0x0,
4674    .num_indices = 1,
4675    .index_map = {
4676       [NIR_INTRINSIC_ACCESS] = 1,
4677     },
4678    .flags = 0,
4679 },
4680 {
4681    .name = "ssbo_atomic_or_ir3",
4682    .num_srcs = 4,
4683    .src_components = {
4684       1, 1, 1, 1
4685    },
4686    .has_dest = true,
4687    .dest_components = 1,
4688    .dest_bit_sizes = 0x0,
4689    .num_indices = 1,
4690    .index_map = {
4691       [NIR_INTRINSIC_ACCESS] = 1,
4692     },
4693    .flags = 0,
4694 },
4695 {
4696    .name = "ssbo_atomic_umax",
4697    .num_srcs = 3,
4698    .src_components = {
4699       -1, 1, 1
4700    },
4701    .has_dest = true,
4702    .dest_components = 1,
4703    .dest_bit_sizes = 0x0,
4704    .num_indices = 1,
4705    .index_map = {
4706       [NIR_INTRINSIC_ACCESS] = 1,
4707     },
4708    .flags = 0,
4709 },
4710 {
4711    .name = "ssbo_atomic_umax_ir3",
4712    .num_srcs = 4,
4713    .src_components = {
4714       1, 1, 1, 1
4715    },
4716    .has_dest = true,
4717    .dest_components = 1,
4718    .dest_bit_sizes = 0x0,
4719    .num_indices = 1,
4720    .index_map = {
4721       [NIR_INTRINSIC_ACCESS] = 1,
4722     },
4723    .flags = 0,
4724 },
4725 {
4726    .name = "ssbo_atomic_umin",
4727    .num_srcs = 3,
4728    .src_components = {
4729       -1, 1, 1
4730    },
4731    .has_dest = true,
4732    .dest_components = 1,
4733    .dest_bit_sizes = 0x0,
4734    .num_indices = 1,
4735    .index_map = {
4736       [NIR_INTRINSIC_ACCESS] = 1,
4737     },
4738    .flags = 0,
4739 },
4740 {
4741    .name = "ssbo_atomic_umin_ir3",
4742    .num_srcs = 4,
4743    .src_components = {
4744       1, 1, 1, 1
4745    },
4746    .has_dest = true,
4747    .dest_components = 1,
4748    .dest_bit_sizes = 0x0,
4749    .num_indices = 1,
4750    .index_map = {
4751       [NIR_INTRINSIC_ACCESS] = 1,
4752     },
4753    .flags = 0,
4754 },
4755 {
4756    .name = "ssbo_atomic_xor",
4757    .num_srcs = 3,
4758    .src_components = {
4759       -1, 1, 1
4760    },
4761    .has_dest = true,
4762    .dest_components = 1,
4763    .dest_bit_sizes = 0x0,
4764    .num_indices = 1,
4765    .index_map = {
4766       [NIR_INTRINSIC_ACCESS] = 1,
4767     },
4768    .flags = 0,
4769 },
4770 {
4771    .name = "ssbo_atomic_xor_ir3",
4772    .num_srcs = 4,
4773    .src_components = {
4774       1, 1, 1, 1
4775    },
4776    .has_dest = true,
4777    .dest_components = 1,
4778    .dest_bit_sizes = 0x0,
4779    .num_indices = 1,
4780    .index_map = {
4781       [NIR_INTRINSIC_ACCESS] = 1,
4782     },
4783    .flags = 0,
4784 },
4785 {
4786    .name = "store_combined_output_pan",
4787    .num_srcs = 4,
4788    .src_components = {
4789       0, 1, 1, 1
4790    },
4791    .has_dest = false,
4792    .dest_components = 0,
4793    .dest_bit_sizes = 0x0,
4794    .num_indices = 3,
4795    .index_map = {
4796       [NIR_INTRINSIC_BASE] = 1,
4797       [NIR_INTRINSIC_COMPONENT] = 2,
4798       [NIR_INTRINSIC_SRC_TYPE] = 3,
4799     },
4800    .flags = 0,
4801 },
4802 {
4803    .name = "store_deref",
4804    .num_srcs = 2,
4805    .src_components = {
4806       -1, 0
4807    },
4808    .has_dest = false,
4809    .dest_components = 0,
4810    .dest_bit_sizes = 0x0,
4811    .num_indices = 2,
4812    .index_map = {
4813       [NIR_INTRINSIC_WRMASK] = 1,
4814       [NIR_INTRINSIC_ACCESS] = 2,
4815     },
4816    .flags = 0,
4817 },
4818 {
4819    .name = "store_deref_block_intel",
4820    .num_srcs = 2,
4821    .src_components = {
4822       -1, 0
4823    },
4824    .has_dest = false,
4825    .dest_components = 0,
4826    .dest_bit_sizes = 0x0,
4827    .num_indices = 2,
4828    .index_map = {
4829       [NIR_INTRINSIC_WRMASK] = 1,
4830       [NIR_INTRINSIC_ACCESS] = 2,
4831     },
4832    .flags = 0,
4833 },
4834 {
4835    .name = "store_global",
4836    .num_srcs = 2,
4837    .src_components = {
4838       0, 1
4839    },
4840    .has_dest = false,
4841    .dest_components = 0,
4842    .dest_bit_sizes = 0x0,
4843    .num_indices = 4,
4844    .index_map = {
4845       [NIR_INTRINSIC_WRMASK] = 1,
4846       [NIR_INTRINSIC_ACCESS] = 2,
4847       [NIR_INTRINSIC_ALIGN_MUL] = 3,
4848       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
4849     },
4850    .flags = 0,
4851 },
4852 {
4853    .name = "store_global_block_intel",
4854    .num_srcs = 2,
4855    .src_components = {
4856       0, 1
4857    },
4858    .has_dest = false,
4859    .dest_components = 0,
4860    .dest_bit_sizes = 0x0,
4861    .num_indices = 4,
4862    .index_map = {
4863       [NIR_INTRINSIC_WRMASK] = 1,
4864       [NIR_INTRINSIC_ACCESS] = 2,
4865       [NIR_INTRINSIC_ALIGN_MUL] = 3,
4866       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
4867     },
4868    .flags = 0,
4869 },
4870 {
4871    .name = "store_global_ir3",
4872    .num_srcs = 3,
4873    .src_components = {
4874       0, 2, 1
4875    },
4876    .has_dest = false,
4877    .dest_components = 0,
4878    .dest_bit_sizes = 0x0,
4879    .num_indices = 3,
4880    .index_map = {
4881       [NIR_INTRINSIC_ACCESS] = 1,
4882       [NIR_INTRINSIC_ALIGN_MUL] = 2,
4883       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
4884     },
4885    .flags = 0,
4886 },
4887 {
4888    .name = "store_local_shared_r600",
4889    .num_srcs = 2,
4890    .src_components = {
4891       0, 1
4892    },
4893    .has_dest = false,
4894    .dest_components = 0,
4895    .dest_bit_sizes = 0x0,
4896    .num_indices = 1,
4897    .index_map = {
4898       [NIR_INTRINSIC_WRMASK] = 1,
4899     },
4900    .flags = 0,
4901 },
4902 {
4903    .name = "store_output",
4904    .num_srcs = 2,
4905    .src_components = {
4906       0, 1
4907    },
4908    .has_dest = false,
4909    .dest_components = 0,
4910    .dest_bit_sizes = 0x0,
4911    .num_indices = 5,
4912    .index_map = {
4913       [NIR_INTRINSIC_BASE] = 1,
4914       [NIR_INTRINSIC_WRMASK] = 2,
4915       [NIR_INTRINSIC_COMPONENT] = 3,
4916       [NIR_INTRINSIC_SRC_TYPE] = 4,
4917       [NIR_INTRINSIC_IO_SEMANTICS] = 5,
4918     },
4919    .flags = 0,
4920 },
4921 {
4922    .name = "store_per_vertex_output",
4923    .num_srcs = 3,
4924    .src_components = {
4925       0, 1, 1
4926    },
4927    .has_dest = false,
4928    .dest_components = 0,
4929    .dest_bit_sizes = 0x0,
4930    .num_indices = 4,
4931    .index_map = {
4932       [NIR_INTRINSIC_BASE] = 1,
4933       [NIR_INTRINSIC_WRMASK] = 2,
4934       [NIR_INTRINSIC_COMPONENT] = 3,
4935       [NIR_INTRINSIC_IO_SEMANTICS] = 4,
4936     },
4937    .flags = 0,
4938 },
4939 {
4940    .name = "store_raw_output_pan",
4941    .num_srcs = 1,
4942    .src_components = {
4943       0
4944    },
4945    .has_dest = false,
4946    .dest_components = 0,
4947    .dest_bit_sizes = 0x0,
4948    .num_indices = 0,
4949    .flags = 0,
4950 },
4951 {
4952    .name = "store_scratch",
4953    .num_srcs = 2,
4954    .src_components = {
4955       0, 1
4956    },
4957    .has_dest = false,
4958    .dest_components = 0,
4959    .dest_bit_sizes = 0x0,
4960    .num_indices = 3,
4961    .index_map = {
4962       [NIR_INTRINSIC_ALIGN_MUL] = 1,
4963       [NIR_INTRINSIC_ALIGN_OFFSET] = 2,
4964       [NIR_INTRINSIC_WRMASK] = 3,
4965     },
4966    .flags = 0,
4967 },
4968 {
4969    .name = "store_shared",
4970    .num_srcs = 2,
4971    .src_components = {
4972       0, 1
4973    },
4974    .has_dest = false,
4975    .dest_components = 0,
4976    .dest_bit_sizes = 0x0,
4977    .num_indices = 4,
4978    .index_map = {
4979       [NIR_INTRINSIC_BASE] = 1,
4980       [NIR_INTRINSIC_WRMASK] = 2,
4981       [NIR_INTRINSIC_ALIGN_MUL] = 3,
4982       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
4983     },
4984    .flags = 0,
4985 },
4986 {
4987    .name = "store_shared_block_intel",
4988    .num_srcs = 2,
4989    .src_components = {
4990       0, 1
4991    },
4992    .has_dest = false,
4993    .dest_components = 0,
4994    .dest_bit_sizes = 0x0,
4995    .num_indices = 4,
4996    .index_map = {
4997       [NIR_INTRINSIC_BASE] = 1,
4998       [NIR_INTRINSIC_WRMASK] = 2,
4999       [NIR_INTRINSIC_ALIGN_MUL] = 3,
5000       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
5001     },
5002    .flags = 0,
5003 },
5004 {
5005    .name = "store_shared_ir3",
5006    .num_srcs = 2,
5007    .src_components = {
5008       0, 1
5009    },
5010    .has_dest = false,
5011    .dest_components = 0,
5012    .dest_bit_sizes = 0x0,
5013    .num_indices = 3,
5014    .index_map = {
5015       [NIR_INTRINSIC_BASE] = 1,
5016       [NIR_INTRINSIC_ALIGN_MUL] = 2,
5017       [NIR_INTRINSIC_ALIGN_OFFSET] = 3,
5018     },
5019    .flags = 0,
5020 },
5021 {
5022    .name = "store_ssbo",
5023    .num_srcs = 3,
5024    .src_components = {
5025       0, -1, 1
5026    },
5027    .has_dest = false,
5028    .dest_components = 0,
5029    .dest_bit_sizes = 0x0,
5030    .num_indices = 4,
5031    .index_map = {
5032       [NIR_INTRINSIC_WRMASK] = 1,
5033       [NIR_INTRINSIC_ACCESS] = 2,
5034       [NIR_INTRINSIC_ALIGN_MUL] = 3,
5035       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
5036     },
5037    .flags = 0,
5038 },
5039 {
5040    .name = "store_ssbo_block_intel",
5041    .num_srcs = 3,
5042    .src_components = {
5043       0, -1, 1
5044    },
5045    .has_dest = false,
5046    .dest_components = 0,
5047    .dest_bit_sizes = 0x0,
5048    .num_indices = 4,
5049    .index_map = {
5050       [NIR_INTRINSIC_WRMASK] = 1,
5051       [NIR_INTRINSIC_ACCESS] = 2,
5052       [NIR_INTRINSIC_ALIGN_MUL] = 3,
5053       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
5054     },
5055    .flags = 0,
5056 },
5057 {
5058    .name = "store_ssbo_ir3",
5059    .num_srcs = 4,
5060    .src_components = {
5061       0, 1, 1, 1
5062    },
5063    .has_dest = false,
5064    .dest_components = 0,
5065    .dest_bit_sizes = 0x0,
5066    .num_indices = 4,
5067    .index_map = {
5068       [NIR_INTRINSIC_WRMASK] = 1,
5069       [NIR_INTRINSIC_ACCESS] = 2,
5070       [NIR_INTRINSIC_ALIGN_MUL] = 3,
5071       [NIR_INTRINSIC_ALIGN_OFFSET] = 4,
5072     },
5073    .flags = 0,
5074 },
5075 {
5076    .name = "store_tf_r600",
5077    .num_srcs = 1,
5078    .src_components = {
5079       0
5080    },
5081    .has_dest = false,
5082    .dest_components = 0,
5083    .dest_bit_sizes = 0x0,
5084    .num_indices = 0,
5085    .flags = 0,
5086 },
5087 {
5088    .name = "store_tlb_sample_color_v3d",
5089    .num_srcs = 2,
5090    .src_components = {
5091       0, 1
5092    },
5093    .has_dest = false,
5094    .dest_components = 0,
5095    .dest_bit_sizes = 0x0,
5096    .num_indices = 3,
5097    .index_map = {
5098       [NIR_INTRINSIC_BASE] = 1,
5099       [NIR_INTRINSIC_COMPONENT] = 2,
5100       [NIR_INTRINSIC_SRC_TYPE] = 3,
5101     },
5102    .flags = 0,
5103 },
5104 {
5105    .name = "terminate",
5106    .num_srcs = 0,
5107    .has_dest = false,
5108    .dest_components = 0,
5109    .dest_bit_sizes = 0x0,
5110    .num_indices = 0,
5111    .flags = 0,
5112 },
5113 {
5114    .name = "terminate_if",
5115    .num_srcs = 1,
5116    .src_components = {
5117       1
5118    },
5119    .has_dest = false,
5120    .dest_components = 0,
5121    .dest_bit_sizes = 0x0,
5122    .num_indices = 0,
5123    .flags = 0,
5124 },
5125 {
5126    .name = "terminate_ray",
5127    .num_srcs = 0,
5128    .has_dest = false,
5129    .dest_components = 0,
5130    .dest_bit_sizes = 0x0,
5131    .num_indices = 0,
5132    .flags = 0,
5133 },
5134 {
5135    .name = "trace_ray",
5136    .num_srcs = 11,
5137    .src_components = {
5138       -1, 1, 1, 1, 1, 1, 3, 1, 3, 1, -1
5139    },
5140    .has_dest = false,
5141    .dest_components = 0,
5142    .dest_bit_sizes = 0x0,
5143    .num_indices = 0,
5144    .flags = 0,
5145 },
5146 {
5147    .name = "vote_all",
5148    .num_srcs = 1,
5149    .src_components = {
5150       1
5151    },
5152    .has_dest = true,
5153    .dest_components = 1,
5154    .dest_bit_sizes = 0x0,
5155    .num_indices = 0,
5156    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
5157 },
5158 {
5159    .name = "vote_any",
5160    .num_srcs = 1,
5161    .src_components = {
5162       1
5163    },
5164    .has_dest = true,
5165    .dest_components = 1,
5166    .dest_bit_sizes = 0x0,
5167    .num_indices = 0,
5168    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
5169 },
5170 {
5171    .name = "vote_feq",
5172    .num_srcs = 1,
5173    .src_components = {
5174       0
5175    },
5176    .has_dest = true,
5177    .dest_components = 1,
5178    .dest_bit_sizes = 0x0,
5179    .num_indices = 0,
5180    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
5181 },
5182 {
5183    .name = "vote_ieq",
5184    .num_srcs = 1,
5185    .src_components = {
5186       0
5187    },
5188    .has_dest = true,
5189    .dest_components = 1,
5190    .dest_bit_sizes = 0x0,
5191    .num_indices = 0,
5192    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
5193 },
5194 {
5195    .name = "vulkan_resource_index",
5196    .num_srcs = 1,
5197    .src_components = {
5198       1
5199    },
5200    .has_dest = true,
5201    .dest_components = 0,
5202    .dest_bit_sizes = 0x0,
5203    .num_indices = 3,
5204    .index_map = {
5205       [NIR_INTRINSIC_DESC_SET] = 1,
5206       [NIR_INTRINSIC_BINDING] = 2,
5207       [NIR_INTRINSIC_DESC_TYPE] = 3,
5208     },
5209    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
5210 },
5211 {
5212    .name = "vulkan_resource_reindex",
5213    .num_srcs = 2,
5214    .src_components = {
5215       0, 1
5216    },
5217    .has_dest = true,
5218    .dest_components = 0,
5219    .dest_bit_sizes = 0x0,
5220    .num_indices = 1,
5221    .index_map = {
5222       [NIR_INTRINSIC_DESC_TYPE] = 1,
5223     },
5224    .flags = NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER,
5225 },
5226 {
5227    .name = "write_invocation_amd",
5228    .num_srcs = 3,
5229    .src_components = {
5230       0, 0, 1
5231    },
5232    .has_dest = true,
5233    .dest_components = 0,
5234    .dest_bit_sizes = 0x0,
5235    .num_indices = 0,
5236    .flags = NIR_INTRINSIC_CAN_ELIMINATE,
5237 },
5238 };
5239