summaryrefslogtreecommitdiff
path: root/source/slang/slang-lookup-spvop.cpp
blob: 527fcdb2493f7439f5ab6bd0ba80410f809bc63f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
// Hash function for SpvOp
//
// This file was thoughtfully generated by a machine,
// don't even think about modifying it yourself!
//

#include "../core/slang-common.h"
#include "../core/slang-string.h"
#include "spirv/unified1/spirv.h"


namespace Slang
{

static const unsigned tableSalt[703] ={
    2, 5, 0, 6, 0, 0, 1, 4, 1, 1, 3, 2, 3, 0, 0, 0,
    2, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0,
    0, 1, 1, 3, 3, 1, 1, 0, 6, 0, 0, 0, 0, 4, 1, 5,
    2, 6, 6, 0, 2, 2, 3, 0, 0, 1, 3, 0, 4, 1, 7, 3,
    9, 1, 2, 2, 0, 2, 1, 0, 0, 1, 3, 1, 1, 1, 0, 0,
    5, 0, 3, 4, 9, 0, 0, 1, 0, 0, 6, 1, 0, 2, 4, 0,
    0, 0, 0, 3, 5, 1, 0, 1, 2, 6, 10, 0, 0, 0, 5, 1,
    0, 1, 2, 0, 2, 3, 1, 0, 2, 0, 0, 2, 2, 1, 1, 4,
    1, 1, 0, 1, 2, 4, 3, 4, 6, 0, 1, 0, 0, 2, 2, 1,
    3, 0, 4, 0, 1, 4, 1, 0, 2, 0, 0, 1, 0, 1, 4, 1,
    0, 3, 3, 0, 4, 2, 1, 0, 2, 0, 3, 0, 2, 0, 2, 3,
    4, 2, 3, 5, 1, 0, 1, 12, 2, 1, 0, 1, 4, 5, 3, 1,
    0, 0, 0, 1, 3, 2, 1, 0, 1, 0, 10, 1, 3, 10, 0, 1,
    0, 0, 0, 1, 0, 1, 3, 0, 1, 0, 3, 0, 3, 6, 1, 0,
    1, 0, 2, 7, 0, 5, 1, 1, 0, 0, 0, 3, 1, 15, 2, 3,
    7, 7, 2, 1, 0, 0, 4, 3, 3, 0, 3, 5, 2, 1, 0, 2,
    1, 5, 0, 0, 1, 6, 2, 3, 3, 0, 0, 1, 8, 0, 0, 2,
    4, 1, 4, 1, 5, 4, 1, 2, 10, 2, 0, 0, 2, 2, 4, 1,
    2, 0, 3, 1, 13, 3, 5, 1, 8, 2, 3, 0, 0, 4, 3, 0,
    0, 2, 5, 0, 7, 1, 1, 0, 2, 1, 0, 7, 1, 4, 0, 8,
    3, 1, 1, 1, 1, 1, 0, 0, 0, 11, 1, 1, 2, 1, 0, 0,
    0, 15, 0, 6, 0, 1, 1, 0, 0, 9, 8, 1, 0, 14, 0, 0,
    0, 10, 0, 3, 0, 1, 4, 0, 2, 1, 2, 10, 0, 6, 1, 1,
    0, 7, 0, 11, 0, 1, 2, 6, 0, 0, 0, 4, 10, 2, 8, 4,
    1, 0, 2, 0, 4, 0, 9, 1, 3, 1, 0, 2, 0, 0, 8, 0,
    2, 0, 0, 0, 5, 2, 0, 2, 5, 6, 1, 0, 3, 0, 0, 2,
    0, 0, 0, 4, 5, 0, 2, 3, 6, 2, 14, 0, 0, 0, 1, 1,
    15, 14, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 2, 0, 0, 3,
    16, 0, 1, 10, 7, 2, 0, 0, 4, 0, 0, 2, 5, 1, 2, 0,
    3, 1, 0, 0, 1, 16, 0, 0, 0, 4, 1, 0, 0, 2, 3, 1,
    11, 2, 2, 1, 8, 0, 2, 0, 9, 3, 0, 0, 1, 3, 1, 0,
    18, 1, 6, 8, 21, 19, 2, 0, 7, 1, 0, 2, 9, 1, 0, 0,
    3, 0, 6, 0, 3, 7, 0, 0, 15, 0, 2, 3, 0, 4, 0, 4,
    2, 8, 1, 9, 0, 0, 1, 9, 1, 0, 2, 4, 7, 1, 0, 5,
    0, 0, 2, 6, 0, 0, 40, 8, 5, 4, 5, 1, 14, 0, 7, 2,
    19, 2, 0, 21, 1, 9, 5, 2, 25, 0, 7, 24, 0, 0, 0, 0,
    4, 9, 3, 6, 7, 0, 14, 1, 18, 1, 83, 0, 5, 0, 0, 0,
    0, 1, 43, 0, 4, 0, 3, 0, 7, 0, 14, 0, 2, 0, 1, 3,
    0, 14, 0, 30, 0, 0, 2, 0, 0, 0, 0, 78, 0, 49, 3, 1,
    0, 3, 0, 7, 0, 32, 1, 10, 43, 0, 0, 95, 21, 3, 0, 2,
    0, 0, 16, 9, 17, 5, 52, 0, 16, 3, 0, 11, 1, 27, 1, 190,
    81, 3, 0, 72, 3, 84, 23, 0, 9, 0, 5, 50, 0, 19, 376, 0,
    3, 102, 3, 4, 27, 9, 0, 16, 0, 0, 100, 1, 3, 2, 0, 0,
    0, 0, 0, 9, 0, 0, 31, 35, 10, 6, 0, 0, 54, 0, 203
};

struct KV
{
    const char* name;
    SpvOp value;
};

static const KV words[703] =
{
    {"OpSUDot", SpvOpSUDot},
    {"OpDPdyCoarse", SpvOpDPdyCoarse},
    {"OpArbitraryFloatExpm1INTEL", SpvOpArbitraryFloatExpm1INTEL},
    {"OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL", SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL},
    {"OpGroupNonUniformShuffleUp", SpvOpGroupNonUniformShuffleUp},
    {"OpArbitraryFloatCastINTEL", SpvOpArbitraryFloatCastINTEL},
    {"OpTerminateRayKHR", SpvOpTerminateRayKHR},
    {"OpFunctionCall", SpvOpFunctionCall},
    {"OpIsHelperInvocationEXT", SpvOpIsHelperInvocationEXT},
    {"OpArbitraryFloatCosPiINTEL", SpvOpArbitraryFloatCosPiINTEL},
    {"OpImageFetch", SpvOpImageFetch},
    {"OpBitReverse", SpvOpBitReverse},
    {"OpVmeImageINTEL", SpvOpVmeImageINTEL},
    {"OpArbitraryFloatSqrtINTEL", SpvOpArbitraryFloatSqrtINTEL},
    {"OpExtension", SpvOpExtension},
    {"OpGroupAny", SpvOpGroupAny},
    {"OpExecutionMode", SpvOpExecutionMode},
    {"OpSampledImage", SpvOpSampledImage},
    {"OpUnreachable", SpvOpUnreachable},
    {"OpSubgroupAvcMceGetInterMinorShapeINTEL", SpvOpSubgroupAvcMceGetInterMinorShapeINTEL},
    {"OpImageSampleProjImplicitLod", SpvOpImageSampleProjImplicitLod},
    {"OpFixedSinCosPiINTEL", SpvOpFixedSinCosPiINTEL},
    {"OpSatConvertUToS", SpvOpSatConvertUToS},
    {"OpHitObjectGetObjectToWorldNV", SpvOpHitObjectGetObjectToWorldNV},
    {"OpMemoryModel", SpvOpMemoryModel},
    {"OpImageQuerySamples", SpvOpImageQuerySamples},
    {"OpEntryPoint", SpvOpEntryPoint},
    {"OpFUnordGreaterThan", SpvOpFUnordGreaterThan},
    {"OpImageSampleFootprintNV", SpvOpImageSampleFootprintNV},
    {"OpULessThan", SpvOpULessThan},
    {"OpGroupBitwiseAndKHR", SpvOpGroupBitwiseAndKHR},
    {"OpArbitraryFloatACosINTEL", SpvOpArbitraryFloatACosINTEL},
    {"OpIgnoreIntersectionNV", SpvOpIgnoreIntersectionNV},
    {"OpHitObjectGetGeometryIndexNV", SpvOpHitObjectGetGeometryIndexNV},
    {"OpSubgroupAvcMceConvertToImeResultINTEL", SpvOpSubgroupAvcMceConvertToImeResultINTEL},
    {"OpGroupNonUniformLogicalXor", SpvOpGroupNonUniformLogicalXor},
    {"OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL", SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL},
    {"OpSMod", SpvOpSMod},
    {"OpImageQueryLevels", SpvOpImageQueryLevels},
    {"OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL", SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL},
    {"OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL", SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL},
    {"OpGroupNonUniformAny", SpvOpGroupNonUniformAny},
    {"OpHitObjectGetHitKindNV", SpvOpHitObjectGetHitKindNV},
    {"OpArbitraryFloatATanPiINTEL", SpvOpArbitraryFloatATanPiINTEL},
    {"OpString", SpvOpString},
    {"OpFUnordLessThanEqual", SpvOpFUnordLessThanEqual},
    {"OpUDotAccSatKHR", SpvOpUDotAccSatKHR},
    {"OpHitObjectRecordEmptyNV", SpvOpHitObjectRecordEmptyNV},
    {"OpEndStreamPrimitive", SpvOpEndStreamPrimitive},
    {"OpSDot", SpvOpSDot},
    {"OpSubgroupShuffleUpINTEL", SpvOpSubgroupShuffleUpINTEL},
    {"OpMemberName", SpvOpMemberName},
    {"OpSubgroupBallotKHR", SpvOpSubgroupBallotKHR},
    {"OpGroupLogicalOrKHR", SpvOpGroupLogicalOrKHR},
    {"OpFNegate", SpvOpFNegate},
    {"OpEmitVertex", SpvOpEmitVertex},
    {"OpUAddSatINTEL", SpvOpUAddSatINTEL},
    {"OpAtomicOr", SpvOpAtomicOr},
    {"OpGroupNonUniformQuadBroadcast", SpvOpGroupNonUniformQuadBroadcast},
    {"OpFixedCosINTEL", SpvOpFixedCosINTEL},
    {"OpReserveReadPipePackets", SpvOpReserveReadPipePackets},
    {"OpNop", SpvOpNop},
    {"OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL", SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL},
    {"OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL},
    {"OpHitObjectGetRayTMaxNV", SpvOpHitObjectGetRayTMaxNV},
    {"OpNot", SpvOpNot},
    {"OpLogicalNotEqual", SpvOpLogicalNotEqual},
    {"OpCooperativeMatrixMulAddNV", SpvOpCooperativeMatrixMulAddNV},
    {"OpImageSparseGather", SpvOpImageSparseGather},
    {"OpDecorateId", SpvOpDecorateId},
    {"OpImageQueryLod", SpvOpImageQueryLod},
    {"OpDPdxCoarse", SpvOpDPdxCoarse},
    {"OpStore", SpvOpStore},
    {"OpTypeRuntimeArray", SpvOpTypeRuntimeArray},
    {"OpSubgroupAnyKHR", SpvOpSubgroupAnyKHR},
    {"OpConvertSToF", SpvOpConvertSToF},
    {"OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL", SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL},
    {"OpFOrdLessThan", SpvOpFOrdLessThan},
    {"OpGroupSMinNonUniformAMD", SpvOpGroupSMinNonUniformAMD},
    {"OpFixedSinCosINTEL", SpvOpFixedSinCosINTEL},
    {"OpGroupSMax", SpvOpGroupSMax},
    {"OpSpecConstant", SpvOpSpecConstant},
    {"OpConstant", SpvOpConstant},
    {"OpGroupAsyncCopy", SpvOpGroupAsyncCopy},
    {"OpFragmentMaskFetchAMD", SpvOpFragmentMaskFetchAMD},
    {"OpULessThanEqual", SpvOpULessThanEqual},
    {"OpSetMeshOutputsEXT", SpvOpSetMeshOutputsEXT},
    {"OpHitObjectGetPrimitiveIndexNV", SpvOpHitObjectGetPrimitiveIndexNV},
    {"OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL", SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL},
    {"OpExecuteCallableNV", SpvOpExecuteCallableNV},
    {"OpImageSampleProjExplicitLod", SpvOpImageSampleProjExplicitLod},
    {"OpOrdered", SpvOpOrdered},
    {"OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL", SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL},
    {"OpUMod", SpvOpUMod},
    {"OpFUnordGreaterThanEqual", SpvOpFUnordGreaterThanEqual},
    {"OpDemoteToHelperInvocation", SpvOpDemoteToHelperInvocation},
    {"OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL", SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL},
    {"OpAll", SpvOpAll},
    {"OpPhi", SpvOpPhi},
    {"OpCreatePipeFromPipeStorage", SpvOpCreatePipeFromPipeStorage},
    {"OpRayQueryGetRayTMinKHR", SpvOpRayQueryGetRayTMinKHR},
    {"OpFOrdNotEqual", SpvOpFOrdNotEqual},
    {"OpSpecConstantComposite", SpvOpSpecConstantComposite},
    {"OpGroupFAdd", SpvOpGroupFAdd},
    {"OpLifetimeStop", SpvOpLifetimeStop},
    {"OpRayQueryGetIntersectionObjectRayDirectionKHR", SpvOpRayQueryGetIntersectionObjectRayDirectionKHR},
    {"OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL", SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL},
    {"OpEmitStreamVertex", SpvOpEmitStreamVertex},
    {"OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL},
    {"OpConstantComposite", SpvOpConstantComposite},
    {"OpArbitraryFloatGEINTEL", SpvOpArbitraryFloatGEINTEL},
    {"OpUCountLeadingZerosINTEL", SpvOpUCountLeadingZerosINTEL},
    {"OpSizeOf", SpvOpSizeOf},
    {"OpISub", SpvOpISub},
    {"OpConvertFToU", SpvOpConvertFToU},
    {"OpHitObjectRecordMissNV", SpvOpHitObjectRecordMissNV},
    {"OpSubgroupAvcSicGetMotionVectorMaskINTEL", SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL},
    {"OpTypeCooperativeMatrixNV", SpvOpTypeCooperativeMatrixNV},
    {"OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL", SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL},
    {"OpSMulExtended", SpvOpSMulExtended},
    {"OpCopyMemory", SpvOpCopyMemory},
    {"OpSubgroupFirstInvocationKHR", SpvOpSubgroupFirstInvocationKHR},
    {"OpSubgroupAvcImeSetDualReferenceINTEL", SpvOpSubgroupAvcImeSetDualReferenceINTEL},
    {"OpHitObjectGetObjectRayOriginNV", SpvOpHitObjectGetObjectRayOriginNV},
    {"OpSubgroupAvcImeGetBorderReachedINTEL", SpvOpSubgroupAvcImeGetBorderReachedINTEL},
    {"OpAliasDomainDeclINTEL", SpvOpAliasDomainDeclINTEL},
    {"OpRayQueryGetIntersectionPrimitiveIndexKHR", SpvOpRayQueryGetIntersectionPrimitiveIndexKHR},
    {"OpArbitraryFloatLog1pINTEL", SpvOpArbitraryFloatLog1pINTEL},
    {"OpSubgroupAvcImeStripDualReferenceStreamoutINTEL", SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL},
    {"OpSubgroupAvcSicConfigureIpeLumaINTEL", SpvOpSubgroupAvcSicConfigureIpeLumaINTEL},
    {"OpLoopControlINTEL", SpvOpLoopControlINTEL},
    {"OpGenericCastToPtr", SpvOpGenericCastToPtr},
    {"OpAtomicUMin", SpvOpAtomicUMin},
    {"OpGroupNonUniformShuffle", SpvOpGroupNonUniformShuffle},
    {"OpSubgroupImageBlockWriteINTEL", SpvOpSubgroupImageBlockWriteINTEL},
    {"OpAtomicLoad", SpvOpAtomicLoad},
    {"OpGroupReserveWritePipePackets", SpvOpGroupReserveWritePipePackets},
    {"OpIsNan", SpvOpIsNan},
    {"OpImage", SpvOpImage},
    {"OpTypeImage", SpvOpTypeImage},
    {"OpGetNumPipePackets", SpvOpGetNumPipePackets},
    {"OpDPdxFine", SpvOpDPdxFine},
    {"OpSubgroupAvcMceSetInterShapePenaltyINTEL", SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL},
    {"OpSpecConstantCompositeContinuedINTEL", SpvOpSpecConstantCompositeContinuedINTEL},
    {"OpDecorationGroup", SpvOpDecorationGroup},
    {"OpBitFieldUExtract", SpvOpBitFieldUExtract},
    {"OpSubgroupAvcSicGetIpeLumaShapeINTEL", SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL},
    {"OpSubgroupAvcImeSetMaxMotionVectorCountINTEL", SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL},
    {"OpIsValidEvent", SpvOpIsValidEvent},
    {"OpReservedReadPipe", SpvOpReservedReadPipe},
    {"OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL", SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL},
    {"OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL", SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL},
    {"OpVectorTimesMatrix", SpvOpVectorTimesMatrix},
    {"OpGroupNonUniformBitwiseOr", SpvOpGroupNonUniformBitwiseOr},
    {"OpArbitraryFloatSinCosINTEL", SpvOpArbitraryFloatSinCosINTEL},
    {"OpRayQueryGetIntersectionInstanceCustomIndexKHR", SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR},
    {"OpReserveWritePipePackets", SpvOpReserveWritePipePackets},
    {"OpWritePipeBlockingINTEL", SpvOpWritePipeBlockingINTEL},
    {"OpSLessThanEqual", SpvOpSLessThanEqual},
    {"OpUGreaterThanEqual", SpvOpUGreaterThanEqual},
    {"OpTypeSampler", SpvOpTypeSampler},
    {"OpSubgroupAvcMceGetBestInterDistortionsINTEL", SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL},
    {"OpGroupNonUniformBallotFindLSB", SpvOpGroupNonUniformBallotFindLSB},
    {"OpHitObjectRecordHitNV", SpvOpHitObjectRecordHitNV},
    {"OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL", SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL},
    {"OpSubgroupBlockWriteINTEL", SpvOpSubgroupBlockWriteINTEL},
    {"OpHitObjectGetShaderBindingTableRecordIndexNV", SpvOpHitObjectGetShaderBindingTableRecordIndexNV},
    {"OpSelectionMerge", SpvOpSelectionMerge},
    {"OpGroupIAdd", SpvOpGroupIAdd},
    {"OpReleaseEvent", SpvOpReleaseEvent},
    {"OpSGreaterThan", SpvOpSGreaterThan},
    {"OpSubgroupAvcRefConvertToMcePayloadINTEL", SpvOpSubgroupAvcRefConvertToMcePayloadINTEL},
    {"OpRayQueryConfirmIntersectionKHR", SpvOpRayQueryConfirmIntersectionKHR},
    {"OpIgnoreIntersectionKHR", SpvOpIgnoreIntersectionKHR},
    {"OpMemoryBarrier", SpvOpMemoryBarrier},
    {"OpTypeAvcRefResultINTEL", SpvOpTypeAvcRefResultINTEL},
    {"OpImageRead", SpvOpImageRead},
    {"OpSConvert", SpvOpSConvert},
    {"OpBitFieldInsert", SpvOpBitFieldInsert},
    {"OpImageSampleProjDrefImplicitLod", SpvOpImageSampleProjDrefImplicitLod},
    {"OpArbitraryFloatRecipINTEL", SpvOpArbitraryFloatRecipINTEL},
    {"OpIsFinite", SpvOpIsFinite},
    {"OpLogicalNot", SpvOpLogicalNot},
    {"OpBranchConditional", SpvOpBranchConditional},
    {"OpSatConvertSToU", SpvOpSatConvertSToU},
    {"OpGroupNonUniformBallotBitCount", SpvOpGroupNonUniformBallotBitCount},
    {"OpCompositeInsert", SpvOpCompositeInsert},
    {"OpFDiv", SpvOpFDiv},
    {"OpReadPipeBlockingINTEL", SpvOpReadPipeBlockingINTEL},
    {"OpGroupSMin", SpvOpGroupSMin},
    {"OpAbsUSubINTEL", SpvOpAbsUSubINTEL},
    {"OpAsmCallINTEL", SpvOpAsmCallINTEL},
    {"OpINotEqual", SpvOpINotEqual},
    {"OpImageSampleDrefImplicitLod", SpvOpImageSampleDrefImplicitLod},
    {"OpAtomicXor", SpvOpAtomicXor},
    {"OpArbitraryFloatSubINTEL", SpvOpArbitraryFloatSubINTEL},
    {"OpAsmINTEL", SpvOpAsmINTEL},
    {"OpArbitraryFloatATan2INTEL", SpvOpArbitraryFloatATan2INTEL},
    {"OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL", SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL},
    {"OpExpectKHR", SpvOpExpectKHR},
    {"OpHitObjectGetWorldToObjectNV", SpvOpHitObjectGetWorldToObjectNV},
    {"OpTypeAvcImeSingleReferenceStreaminINTEL", SpvOpTypeAvcImeSingleReferenceStreaminINTEL},
    {"OpUMul32x16INTEL", SpvOpUMul32x16INTEL},
    {"OpRayQueryGetIntersectionBarycentricsKHR", SpvOpRayQueryGetIntersectionBarycentricsKHR},
    {"OpRayQueryGetIntersectionWorldToObjectKHR", SpvOpRayQueryGetIntersectionWorldToObjectKHR},
    {"OpTypeFloat", SpvOpTypeFloat},
    {"OpConvertUToF", SpvOpConvertUToF},
    {"OpVariableLengthArrayINTEL", SpvOpVariableLengthArrayINTEL},
    {"OpFixedLogINTEL", SpvOpFixedLogINTEL},
    {"OpSource", SpvOpSource},
    {"OpArbitraryFloatCastFromIntINTEL", SpvOpArbitraryFloatCastFromIntINTEL},
    {"OpImageSparseSampleDrefExplicitLod", SpvOpImageSparseSampleDrefExplicitLod},
    {"OpConvertSampledImageToUNV", SpvOpConvertSampledImageToUNV},
    {"OpAtomicExchange", SpvOpAtomicExchange},
    {"OpGetKernelWorkGroupSize", SpvOpGetKernelWorkGroupSize},
    {"OpModuleProcessed", SpvOpModuleProcessed},
    {"OpLine", SpvOpLine},
    {"OpSubgroupAvcMceGetInterReferenceIdsINTEL", SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL},
    {"OpGroupNonUniformQuadSwap", SpvOpGroupNonUniformQuadSwap},
    {"OpShiftLeftLogical", SpvOpShiftLeftLogical},
    {"OpSubgroupAvcImeEvaluateWithDualReferenceINTEL", SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL},
    {"OpGetKernelNDrangeSubGroupCount", SpvOpGetKernelNDrangeSubGroupCount},
    {"OpIMul", SpvOpIMul},
    {"OpAny", SpvOpAny},
    {"OpShiftRightArithmetic", SpvOpShiftRightArithmetic},
    {"OpAtomicCompareExchangeWeak", SpvOpAtomicCompareExchangeWeak},
    {"OpTypeAvcImePayloadINTEL", SpvOpTypeAvcImePayloadINTEL},
    {"OpConvertUToPtr", SpvOpConvertUToPtr},
    {"OpHitObjectGetRayTMinNV", SpvOpHitObjectGetRayTMinNV},
    {"OpSDotAccSatKHR", SpvOpSDotAccSatKHR},
    {"OpReturn", SpvOpReturn},
    {"OpImageSparseFetch", SpvOpImageSparseFetch},
    {"OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL", SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL},
    {"OpIAddCarry", SpvOpIAddCarry},
    {"OpFixedSinPiINTEL", SpvOpFixedSinPiINTEL},
    {"OpSubgroupShuffleXorINTEL", SpvOpSubgroupShuffleXorINTEL},
    {"OpBranch", SpvOpBranch},
    {"OpAtomicFMaxEXT", SpvOpAtomicFMaxEXT},
    {"OpImageSparseRead", SpvOpImageSparseRead},
    {"OpGroupNonUniformBitwiseXor", SpvOpGroupNonUniformBitwiseXor},
    {"OpCopyLogical", SpvOpCopyLogical},
    {"OpSubgroupAvcMceConvertToSicResultINTEL", SpvOpSubgroupAvcMceConvertToSicResultINTEL},
    {"OpAbsISubINTEL", SpvOpAbsISubINTEL},
    {"OpImageSparseSampleProjDrefImplicitLod", SpvOpImageSparseSampleProjDrefImplicitLod},
    {"OpIsValidReserveId", SpvOpIsValidReserveId},
    {"OpTypeBool", SpvOpTypeBool},
    {"OpFixedSinINTEL", SpvOpFixedSinINTEL},
    {"OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL},
    {"OpImageSparseSampleExplicitLod", SpvOpImageSparseSampleExplicitLod},
    {"OpSubgroupAvcMceGetInterMotionVectorCountINTEL", SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL},
    {"OpArbitraryFloatExp2INTEL", SpvOpArbitraryFloatExp2INTEL},
    {"OpFRem", SpvOpFRem},
    {"OpSubgroupAvcRefEvaluateWithDualReferenceINTEL", SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL},
    {"OpImageWrite", SpvOpImageWrite},
    {"OpAsmTargetINTEL", SpvOpAsmTargetINTEL},
    {"OpHitObjectGetObjectRayDirectionNV", SpvOpHitObjectGetObjectRayDirectionNV},
    {"OpGroupLogicalXorKHR", SpvOpGroupLogicalXorKHR},
    {"OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL", SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL},
    {"OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL", SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL},
    {"OpGroupNonUniformBitwiseAnd", SpvOpGroupNonUniformBitwiseAnd},
    {"OpTraceRayMotionNV", SpvOpTraceRayMotionNV},
    {"OpRetainEvent", SpvOpRetainEvent},
    {"OpFOrdEqual", SpvOpFOrdEqual},
    {"OpAtomicIAdd", SpvOpAtomicIAdd},
    {"OpTypeReserveId", SpvOpTypeReserveId},
    {"OpReorderThreadWithHitObjectNV", SpvOpReorderThreadWithHitObjectNV},
    {"OpRayQueryGetIntersectionTKHR", SpvOpRayQueryGetIntersectionTKHR},
    {"OpImageQuerySizeLod", SpvOpImageQuerySizeLod},
    {"OpReportIntersectionNV", SpvOpReportIntersectionNV},
    {"OpQuantizeToF16", SpvOpQuantizeToF16},
    {"OpHitObjectGetCurrentTimeNV", SpvOpHitObjectGetCurrentTimeNV},
    {"OpSubgroupAvcSicConfigureSkcINTEL", SpvOpSubgroupAvcSicConfigureSkcINTEL},
    {"OpHitObjectTraceRayNV", SpvOpHitObjectTraceRayNV},
    {"OpSubgroupAvcImeGetDualReferenceStreaminINTEL", SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL},
    {"OpSwitch", SpvOpSwitch},
    {"OpTerminateRayNV", SpvOpTerminateRayNV},
    {"OpFunctionEnd", SpvOpFunctionEnd},
    {"OpImageQuerySize", SpvOpImageQuerySize},
    {"OpArbitraryFloatCosINTEL", SpvOpArbitraryFloatCosINTEL},
    {"OpBitCount", SpvOpBitCount},
    {"OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL", SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL},
    {"OpBeginInvocationInterlockEXT", SpvOpBeginInvocationInterlockEXT},
    {"OpTerminateInvocation", SpvOpTerminateInvocation},
    {"OpCooperativeMatrixLengthNV", SpvOpCooperativeMatrixLengthNV},
    {"OpPtrDiff", SpvOpPtrDiff},
    {"OpGroupBroadcast", SpvOpGroupBroadcast},
    {"OpHitObjectGetAttributesNV", SpvOpHitObjectGetAttributesNV},
    {"OpGroupNonUniformLogicalAnd", SpvOpGroupNonUniformLogicalAnd},
    {"OpAliasScopeListDeclINTEL", SpvOpAliasScopeListDeclINTEL},
    {"OpIAddSatINTEL", SpvOpIAddSatINTEL},
    {"OpControlBarrierWaitINTEL", SpvOpControlBarrierWaitINTEL},
    {"OpReservedWritePipe", SpvOpReservedWritePipe},
    {"OpSubgroupImageMediaBlockWriteINTEL", SpvOpSubgroupImageMediaBlockWriteINTEL},
    {"OpGroupNonUniformFMin", SpvOpGroupNonUniformFMin},
    {"OpSubgroupAvcMceConvertToImePayloadINTEL", SpvOpSubgroupAvcMceConvertToImePayloadINTEL},
    {"OpSubgroupAvcSicConfigureIpeLumaChromaINTEL", SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL},
    {"OpGetDefaultQueue", SpvOpGetDefaultQueue},
    {"OpGroupIAddNonUniformAMD", SpvOpGroupIAddNonUniformAMD},
    {"OpGroupNonUniformFMul", SpvOpGroupNonUniformFMul},
    {"OpGenericCastToPtrExplicit", SpvOpGenericCastToPtrExplicit},
    {"OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR", SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR},
    {"OpRayQueryGetRayFlagsKHR", SpvOpRayQueryGetRayFlagsKHR},
    {"OpGroupReserveReadPipePackets", SpvOpGroupReserveReadPipePackets},
    {"OpGroupNonUniformSMax", SpvOpGroupNonUniformSMax},
    {"OpAccessChain", SpvOpAccessChain},
    {"OpConvertUToAccelerationStructureKHR", SpvOpConvertUToAccelerationStructureKHR},
    {"OpFUnordNotEqual", SpvOpFUnordNotEqual},
    {"OpBitwiseOr", SpvOpBitwiseOr},
    {"OpHitObjectRecordMissMotionNV", SpvOpHitObjectRecordMissMotionNV},
    {"OpTypePointer", SpvOpTypePointer},
    {"OpAtomicFAddEXT", SpvOpAtomicFAddEXT},
    {"OpControlBarrier", SpvOpControlBarrier},
    {"OpArbitraryFloatEQINTEL", SpvOpArbitraryFloatEQINTEL},
    {"OpAtomicFMinEXT", SpvOpAtomicFMinEXT},
    {"OpImageSparseTexelsResident", SpvOpImageSparseTexelsResident},
    {"OpArbitraryFloatPowRINTEL", SpvOpArbitraryFloatPowRINTEL},
    {"OpFunctionParameter", SpvOpFunctionParameter},
    {"OpUCountTrailingZerosINTEL", SpvOpUCountTrailingZerosINTEL},
    {"OpTypeAccelerationStructureNV", SpvOpTypeAccelerationStructureNV},
    {"OpDPdyFine", SpvOpDPdyFine},
    {"OpConvertUToSamplerNV", SpvOpConvertUToSamplerNV},
    {"OpSubgroupAvcImeRefWindowSizeINTEL", SpvOpSubgroupAvcImeRefWindowSizeINTEL},
    {"OpRayQueryGetIntersectionFrontFaceKHR", SpvOpRayQueryGetIntersectionFrontFaceKHR},
    {"OpTypeArray", SpvOpTypeArray},
    {"OpGroupCommitReadPipe", SpvOpGroupCommitReadPipe},
    {"OpUnordered", SpvOpUnordered},
    {"OpArbitraryFloatPowINTEL", SpvOpArbitraryFloatPowINTEL},
    {"OpSubgroupAvcMceGetInterDirectionsINTEL", SpvOpSubgroupAvcMceGetInterDirectionsINTEL},
    {"OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL", SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL},
    {"OpSUDotAccSat", SpvOpSUDotAccSat},
    {"OpRayQueryGetIntersectionCandidateAABBOpaqueKHR", SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR},
    {"OpArbitraryFloatCastToIntINTEL", SpvOpArbitraryFloatCastToIntINTEL},
    {"OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL", SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL},
    {"OpLoad", SpvOpLoad},
    {"OpCopyMemorySized", SpvOpCopyMemorySized},
    {"OpLogicalAnd", SpvOpLogicalAnd},
    {"OpRayQueryGetWorldRayOriginKHR", SpvOpRayQueryGetWorldRayOriginKHR},
    {"OpGetKernelNDrangeMaxSubGroupSize", SpvOpGetKernelNDrangeMaxSubGroupSize},
    {"OpGroupBitwiseXorKHR", SpvOpGroupBitwiseXorKHR},
    {"OpSubgroupAvcMceGetInterDistortionsINTEL", SpvOpSubgroupAvcMceGetInterDistortionsINTEL},
    {"OpWritePackedPrimitiveIndices4x8NV", SpvOpWritePackedPrimitiveIndices4x8NV},
    {"OpTraceRayKHR", SpvOpTraceRayKHR},
    {"OpImageQueryFormat", SpvOpImageQueryFormat},
    {"OpSamplerImageAddressingModeNV", SpvOpSamplerImageAddressingModeNV},
    {"OpGroupNonUniformBallot", SpvOpGroupNonUniformBallot},
    {"OpName", SpvOpName},
    {"OpRayQueryGetIntersectionGeometryIndexKHR", SpvOpRayQueryGetIntersectionGeometryIndexKHR},
    {"OpTypeForwardPointer", SpvOpTypeForwardPointer},
    {"OpSubgroupAvcImeConvertToMcePayloadINTEL", SpvOpSubgroupAvcImeConvertToMcePayloadINTEL},
    {"OpConstantTrue", SpvOpConstantTrue},
    {"OpTraceMotionNV", SpvOpTraceMotionNV},
    {"OpGroupNonUniformInverseBallot", SpvOpGroupNonUniformInverseBallot},
    {"OpAliasScopeDeclINTEL", SpvOpAliasScopeDeclINTEL},
    {"OpGroupUMax", SpvOpGroupUMax},
    {"OpSubgroupAvcMceGetInterMajorShapeINTEL", SpvOpSubgroupAvcMceGetInterMajorShapeINTEL},
    {"OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL", SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL},
    {"OpUAverageINTEL", SpvOpUAverageINTEL},
    {"OpCompositeConstruct", SpvOpCompositeConstruct},
    {"OpReorderThreadWithHintNV", SpvOpReorderThreadWithHintNV},
    {"OpSubgroupAvcMceConvertToSicPayloadINTEL", SpvOpSubgroupAvcMceConvertToSicPayloadINTEL},
    {"OpSubgroupAvcRefSetBilinearFilterEnableINTEL", SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL},
    {"OpSubgroupShuffleINTEL", SpvOpSubgroupShuffleINTEL},
    {"OpSubgroupAvcSicSetBilinearFilterEnableINTEL", SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL},
    {"OpArbitraryFloatCbrtINTEL", SpvOpArbitraryFloatCbrtINTEL},
    {"OpFOrdGreaterThan", SpvOpFOrdGreaterThan},
    {"OpSubgroupAvcSicConvertToMcePayloadINTEL", SpvOpSubgroupAvcSicConvertToMcePayloadINTEL},
    {"OpArbitraryFloatLog2INTEL", SpvOpArbitraryFloatLog2INTEL},
    {"OpGroupDecorate", SpvOpGroupDecorate},
    {"OpArbitraryFloatSinPiINTEL", SpvOpArbitraryFloatSinPiINTEL},
    {"OpTypeAvcImeResultINTEL", SpvOpTypeAvcImeResultINTEL},
    {"OpDPdx", SpvOpDPdx},
    {"OpConvertPtrToU", SpvOpConvertPtrToU},
    {"OpFOrdGreaterThanEqual", SpvOpFOrdGreaterThanEqual},
    {"OpGroupNonUniformPartitionNV", SpvOpGroupNonUniformPartitionNV},
    {"OpGroupSMaxNonUniformAMD", SpvOpGroupSMaxNonUniformAMD},
    {"OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL", SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL},
    {"OpMemberDecorate", SpvOpMemberDecorate},
    {"OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL", SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL},
    {"OpUDotAccSat", SpvOpUDotAccSat},
    {"OpHitObjectIsMissNV", SpvOpHitObjectIsMissNV},
    {"OpGroupNonUniformElect", SpvOpGroupNonUniformElect},
    {"OpSourceExtension", SpvOpSourceExtension},
    {"OpDemoteToHelperInvocationEXT", SpvOpDemoteToHelperInvocationEXT},
    {"OpFixedExpINTEL", SpvOpFixedExpINTEL},
    {"OpGroupMemberDecorate", SpvOpGroupMemberDecorate},
    {"OpSubgroupAvcImeSetWeightedSadINTEL", SpvOpSubgroupAvcImeSetWeightedSadINTEL},
    {"OpGroupNonUniformIMul", SpvOpGroupNonUniformIMul},
    {"OpTypeSampledImage", SpvOpTypeSampledImage},
    {"OpExecutionModeId", SpvOpExecutionModeId},
    {"OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL", SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL},
    {"OpGroupAll", SpvOpGroupAll},
    {"OpHitObjectGetWorldRayDirectionNV", SpvOpHitObjectGetWorldRayDirectionNV},
    {"OpCrossWorkgroupCastToPtrINTEL", SpvOpCrossWorkgroupCastToPtrINTEL},
    {"OpRayQueryGetWorldRayDirectionKHR", SpvOpRayQueryGetWorldRayDirectionKHR},
    {"OpSubgroupAvcRefSetBidirectionalMixDisableINTEL", SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL},
    {"OpArbitraryFloatASinPiINTEL", SpvOpArbitraryFloatASinPiINTEL},
    {"OpHitObjectGetInstanceCustomIndexNV", SpvOpHitObjectGetInstanceCustomIndexNV},
    {"OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL", SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL},
    {"OpVectorExtractDynamic", SpvOpVectorExtractDynamic},
    {"OpImageSampleExplicitLod", SpvOpImageSampleExplicitLod},
    {"OpAtomicSMax", SpvOpAtomicSMax},
    {"OpGroupNonUniformUMin", SpvOpGroupNonUniformUMin},
    {"OpUDot", SpvOpUDot},
    {"OpSubgroupAvcSicInitializeINTEL", SpvOpSubgroupAvcSicInitializeINTEL},
    {"OpHitObjectRecordHitWithIndexMotionNV", SpvOpHitObjectRecordHitWithIndexMotionNV},
    {"OpIsNormal", SpvOpIsNormal},
    {"OpCopyObject", SpvOpCopyObject},
    {"OpImageSparseSampleProjExplicitLod", SpvOpImageSparseSampleProjExplicitLod},
    {"OpConvertUToImageNV", SpvOpConvertUToImageNV},
    {"OpGroupNonUniformBroadcast", SpvOpGroupNonUniformBroadcast},
    {"OpSNegate", SpvOpSNegate},
    {"OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL", SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL},
    {"OpKill", SpvOpKill},
    {"OpBitcast", SpvOpBitcast},
    {"OpSUDotAccSatKHR", SpvOpSUDotAccSatKHR},
    {"OpSubgroupAvcMceConvertToRefPayloadINTEL", SpvOpSubgroupAvcMceConvertToRefPayloadINTEL},
    {"OpTypeHitObjectNV", SpvOpTypeHitObjectNV},
    {"OpImageSparseSampleDrefImplicitLod", SpvOpImageSparseSampleDrefImplicitLod},
    {"OpFragmentFetchAMD", SpvOpFragmentFetchAMD},
    {"OpTypePipe", SpvOpTypePipe},
    {"OpCooperativeMatrixLoadNV", SpvOpCooperativeMatrixLoadNV},
    {"OpArbitraryFloatGTINTEL", SpvOpArbitraryFloatGTINTEL},
    {"OpControlBarrierArriveINTEL", SpvOpControlBarrierArriveINTEL},
    {"OpHitObjectIsHitNV", SpvOpHitObjectIsHitNV},
    {"OpHitObjectGetShaderRecordBufferHandleNV", SpvOpHitObjectGetShaderRecordBufferHandleNV},
    {"OpSpecConstantTrue", SpvOpSpecConstantTrue},
    {"OpLifetimeStart", SpvOpLifetimeStart},
    {"OpFunctionPointerCallINTEL", SpvOpFunctionPointerCallINTEL},
    {"OpGroupBitwiseOrKHR", SpvOpGroupBitwiseOrKHR},
    {"OpUGreaterThan", SpvOpUGreaterThan},
    {"OpSDiv", SpvOpSDiv},
    {"OpGroupNonUniformSMin", SpvOpGroupNonUniformSMin},
    {"OpArrayLength", SpvOpArrayLength},
    {"OpMemoryNamedBarrier", SpvOpMemoryNamedBarrier},
    {"OpEnqueueKernel", SpvOpEnqueueKernel},
    {"OpTypeAvcImeResultDualReferenceStreamoutINTEL", SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL},
    {"OpImageSampleProjDrefExplicitLod", SpvOpImageSampleProjDrefExplicitLod},
    {"OpTypeAccelerationStructureKHR", SpvOpTypeAccelerationStructureKHR},
    {"OpSubgroupReadInvocationKHR", SpvOpSubgroupReadInvocationKHR},
    {"OpRayQueryTerminateKHR", SpvOpRayQueryTerminateKHR},
    {"OpTypeFunction", SpvOpTypeFunction},
    {"OpGroupFMinNonUniformAMD", SpvOpGroupFMinNonUniformAMD},
    {"OpConstantFunctionPointerINTEL", SpvOpConstantFunctionPointerINTEL},
    {"OpSourceContinued", SpvOpSourceContinued},
    {"OpGroupNonUniformShuffleDown", SpvOpGroupNonUniformShuffleDown},
    {"OpHitObjectGetWorldRayOriginNV", SpvOpHitObjectGetWorldRayOriginNV},
    {"OpImageSparseSampleProjImplicitLod", SpvOpImageSparseSampleProjImplicitLod},
    {"OpSDotAccSat", SpvOpSDotAccSat},
    {"OpImageSampleImplicitLod", SpvOpImageSampleImplicitLod},
    {"OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL", SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL},
    {"OpGroupNonUniformBroadcastFirst", SpvOpGroupNonUniformBroadcastFirst},
    {"OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL", SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL},
    {"OpConvertImageToUNV", SpvOpConvertImageToUNV},
    {"OpSubgroupAvcImeAdjustRefOffsetINTEL", SpvOpSubgroupAvcImeAdjustRefOffsetINTEL},
    {"OpGroupCommitWritePipe", SpvOpGroupCommitWritePipe},
    {"OpSetUserEventStatus", SpvOpSetUserEventStatus},
    {"OpGroupUMaxNonUniformAMD", SpvOpGroupUMaxNonUniformAMD},
    {"OpFixedCosPiINTEL", SpvOpFixedCosPiINTEL},
    {"OpLogicalOr", SpvOpLogicalOr},
    {"OpDecorateString", SpvOpDecorateString},
    {"OpDPdy", SpvOpDPdy},
    {"OpGroupNonUniformFAdd", SpvOpGroupNonUniformFAdd},
    {"OpUndef", SpvOpUndef},
    {"OpGroupFMax", SpvOpGroupFMax},
    {"OpFwidthFine", SpvOpFwidthFine},
    {"OpExtInst", SpvOpExtInst},
    {"OpGenericPtrMemSemantics", SpvOpGenericPtrMemSemantics},
    {"OpSubgroupAvcImeGetSingleReferenceStreaminINTEL", SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL},
    {"OpPtrCastToGeneric", SpvOpPtrCastToGeneric},
    {"OpTypeAvcImeResultSingleReferenceStreamoutINTEL", SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL},
    {"OpGroupNonUniformShuffleXor", SpvOpGroupNonUniformShuffleXor},
    {"OpArbitraryFloatMulINTEL", SpvOpArbitraryFloatMulINTEL},
    {"OpGroupNonUniformFMax", SpvOpGroupNonUniformFMax},
    {"OpGetKernelLocalSizeForSubgroupCount", SpvOpGetKernelLocalSizeForSubgroupCount},
    {"OpExecuteCallableKHR", SpvOpExecuteCallableKHR},
    {"OpGroupNonUniformAll", SpvOpGroupNonUniformAll},
    {"OpIAverageINTEL", SpvOpIAverageINTEL},
    {"OpMatrixTimesScalar", SpvOpMatrixTimesScalar},
    {"OpTypeAvcMcePayloadINTEL", SpvOpTypeAvcMcePayloadINTEL},
    {"OpFixedRsqrtINTEL", SpvOpFixedRsqrtINTEL},
    {"OpISubSatINTEL", SpvOpISubSatINTEL},
    {"OpTraceNV", SpvOpTraceNV},
    {"OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL},
    {"OpVectorInsertDynamic", SpvOpVectorInsertDynamic},
    {"OpConstantNull", SpvOpConstantNull},
    {"OpSubgroupBlockReadINTEL", SpvOpSubgroupBlockReadINTEL},
    {"OpFMul", SpvOpFMul},
    {"OpGroupNonUniformAllEqual", SpvOpGroupNonUniformAllEqual},
    {"OpMemberDecorateStringGOOGLE", SpvOpMemberDecorateStringGOOGLE},
    {"OpCompositeExtract", SpvOpCompositeExtract},
    {"OpFOrdLessThanEqual", SpvOpFOrdLessThanEqual},
    {"OpRayQueryProceedKHR", SpvOpRayQueryProceedKHR},
    {"OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL", SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL},
    {"OpSubgroupAvcMceSetAcOnlyHaarINTEL", SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL},
    {"OpDecorateStringGOOGLE", SpvOpDecorateStringGOOGLE},
    {"OpAtomicISub", SpvOpAtomicISub},
    {"OpSubgroupAvcSicGetIpeChromaModeINTEL", SpvOpSubgroupAvcSicGetIpeChromaModeINTEL},
    {"OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL},
    {"OpArbitraryFloatLog10INTEL", SpvOpArbitraryFloatLog10INTEL},
    {"OpGroupNonUniformRotateKHR", SpvOpGroupNonUniformRotateKHR},
    {"OpISubBorrow", SpvOpISubBorrow},
    {"OpFUnordLessThan", SpvOpFUnordLessThan},
    {"OpArbitraryFloatExpINTEL", SpvOpArbitraryFloatExpINTEL},
    {"OpMatrixTimesMatrix", SpvOpMatrixTimesMatrix},
    {"OpTypeMatrix", SpvOpTypeMatrix},
    {"OpSubgroupAvcSicGetPackedIpeLumaModesINTEL", SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL},
    {"OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL},
    {"OpEndPrimitive", SpvOpEndPrimitive},
    {"OpGroupIMulKHR", SpvOpGroupIMulKHR},
    {"OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL", SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL},
    {"OpImageQueryOrder", SpvOpImageQueryOrder},
    {"OpGetMaxPipePackets", SpvOpGetMaxPipePackets},
    {"OpArbitraryFloatSinINTEL", SpvOpArbitraryFloatSinINTEL},
    {"OpAssumeTrueKHR", SpvOpAssumeTrueKHR},
    {"OpRayQueryGetIntersectionTypeKHR", SpvOpRayQueryGetIntersectionTypeKHR},
    {"OpIsInf", SpvOpIsInf},
    {"OpUDotKHR", SpvOpUDotKHR},
    {"OpUConvert", SpvOpUConvert},
    {"OpCooperativeMatrixStoreNV", SpvOpCooperativeMatrixStoreNV},
    {"OpInBoundsPtrAccessChain", SpvOpInBoundsPtrAccessChain},
    {"OpImageDrefGather", SpvOpImageDrefGather},
    {"OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL", SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL},
    {"OpIEqual", SpvOpIEqual},
    {"OpImageSparseDrefGather", SpvOpImageSparseDrefGather},
    {"OpBitFieldSExtract", SpvOpBitFieldSExtract},
    {"OpLabel", SpvOpLabel},
    {"OpTypeNamedBarrier", SpvOpTypeNamedBarrier},
    {"OpArbitraryFloatAddINTEL", SpvOpArbitraryFloatAddINTEL},
    {"OpVectorTimesScalar", SpvOpVectorTimesScalar},
    {"OpImageSampleDrefExplicitLod", SpvOpImageSampleDrefExplicitLod},
    {"OpGroupFMin", SpvOpGroupFMin},
    {"OpFixedSqrtINTEL", SpvOpFixedSqrtINTEL},
    {"OpSubgroupAllKHR", SpvOpSubgroupAllKHR},
    {"OpHitObjectRecordHitWithIndexNV", SpvOpHitObjectRecordHitWithIndexNV},
    {"OpGetKernelPreferredWorkGroupSizeMultiple", SpvOpGetKernelPreferredWorkGroupSizeMultiple},
    {"OpNoLine", SpvOpNoLine},
    {"OpImageSparseSampleImplicitLod", SpvOpImageSparseSampleImplicitLod},
    {"OpAtomicStore", SpvOpAtomicStore},
    {"OpSLessThan", SpvOpSLessThan},
    {"OpPtrCastToCrossWorkgroupINTEL", SpvOpPtrCastToCrossWorkgroupINTEL},
    {"OpGroupNonUniformBallotBitExtract", SpvOpGroupNonUniformBallotBitExtract},
    {"OpHitObjectIsEmptyNV", SpvOpHitObjectIsEmptyNV},
    {"OpGroupNonUniformUMax", SpvOpGroupNonUniformUMax},
    {"OpTypeStruct", SpvOpTypeStruct},
    {"OpArbitraryFloatSinCosPiINTEL", SpvOpArbitraryFloatSinCosPiINTEL},
    {"OpBitwiseAnd", SpvOpBitwiseAnd},
    {"OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL", SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL},
    {"OpTypeAvcMceResultINTEL", SpvOpTypeAvcMceResultINTEL},
    {"OpImageGather", SpvOpImageGather},
    {"OpRayQueryGetIntersectionObjectRayOriginKHR", SpvOpRayQueryGetIntersectionObjectRayOriginKHR},
    {"OpReadClockKHR", SpvOpReadClockKHR},
    {"OpSubgroupShuffleDownINTEL", SpvOpSubgroupShuffleDownINTEL},
    {"OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL", SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL},
    {"OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL", SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL},
    {"OpGroupWaitEvents", SpvOpGroupWaitEvents},
    {"OpArbitraryFloatLEINTEL", SpvOpArbitraryFloatLEINTEL},
    {"OpAtomicCompareExchange", SpvOpAtomicCompareExchange},
    {"OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL", SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL},
    {"OpArbitraryFloatRSqrtINTEL", SpvOpArbitraryFloatRSqrtINTEL},
    {"OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL", SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL},
    {"OpCaptureEventProfilingInfo", SpvOpCaptureEventProfilingInfo},
    {"OpAtomicSMin", SpvOpAtomicSMin},
    {"OpAtomicFlagTestAndSet", SpvOpAtomicFlagTestAndSet},
    {"OpSubgroupImageBlockReadINTEL", SpvOpSubgroupImageBlockReadINTEL},
    {"OpSubgroupAvcFmeInitializeINTEL", SpvOpSubgroupAvcFmeInitializeINTEL},
    {"OpArbitraryFloatPowNINTEL", SpvOpArbitraryFloatPowNINTEL},
    {"OpFPGARegINTEL", SpvOpFPGARegINTEL},
    {"OpIMul32x16INTEL", SpvOpIMul32x16INTEL},
    {"OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL", SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL},
    {"OpSpecConstantOp", SpvOpSpecConstantOp},
    {"OpGroupUMin", SpvOpGroupUMin},
    {"OpSubgroupAllEqualKHR", SpvOpSubgroupAllEqualKHR},
    {"OpGroupNonUniformBallotFindMSB", SpvOpGroupNonUniformBallotFindMSB},
    {"OpConstantCompositeContinuedINTEL", SpvOpConstantCompositeContinuedINTEL},
    {"OpGroupFMulKHR", SpvOpGroupFMulKHR},
    {"OpArbitraryFloatASinINTEL", SpvOpArbitraryFloatASinINTEL},
    {"OpShiftRightLogical", SpvOpShiftRightLogical},
    {"OpGroupLogicalAndKHR", SpvOpGroupLogicalAndKHR},
    {"OpFwidthCoarse", SpvOpFwidthCoarse},
    {"OpTypeDeviceEvent", SpvOpTypeDeviceEvent},
    {"OpSubgroupAvcMceConvertToRefResultINTEL", SpvOpSubgroupAvcMceConvertToRefResultINTEL},
    {"OpConvertSamplerToUNV", SpvOpConvertSamplerToUNV},
    {"OpTypeAvcRefPayloadINTEL", SpvOpTypeAvcRefPayloadINTEL},
    {"OpAtomicFlagClear", SpvOpAtomicFlagClear},
    {"OpReportIntersectionKHR", SpvOpReportIntersectionKHR},
    {"OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL", SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL},
    {"OpPtrNotEqual", SpvOpPtrNotEqual},
    {"OpSaveMemoryINTEL", SpvOpSaveMemoryINTEL},
    {"OpArbitraryFloatExp10INTEL", SpvOpArbitraryFloatExp10INTEL},
    {"OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL", SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL},
    {"OpSubgroupAvcBmeInitializeINTEL", SpvOpSubgroupAvcBmeInitializeINTEL},
    {"OpPtrAccessChain", SpvOpPtrAccessChain},
    {"OpFwidth", SpvOpFwidth},
    {"OpSubgroupAvcImeInitializeINTEL", SpvOpSubgroupAvcImeInitializeINTEL},
    {"OpNamedBarrierInitialize", SpvOpNamedBarrierInitialize},
    {"OpBitwiseXor", SpvOpBitwiseXor},
    {"OpAtomicIDecrement", SpvOpAtomicIDecrement},
    {"OpTypeStructContinuedINTEL", SpvOpTypeStructContinuedINTEL},
    {"OpTypeOpaque", SpvOpTypeOpaque},
    {"OpTypeAvcSicResultINTEL", SpvOpTypeAvcSicResultINTEL},
    {"OpRayQueryGenerateIntersectionKHR", SpvOpRayQueryGenerateIntersectionKHR},
    {"OpConvertUToSampledImageNV", SpvOpConvertUToSampledImageNV},
    {"OpFUnordEqual", SpvOpFUnordEqual},
    {"OpSubgroupAvcRefConvertToMceResultINTEL", SpvOpSubgroupAvcRefConvertToMceResultINTEL},
    {"OpSelect", SpvOpSelect},
    {"OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL", SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL},
    {"OpSGreaterThanEqual", SpvOpSGreaterThanEqual},
    {"OpArbitraryFloatACosPiINTEL", SpvOpArbitraryFloatACosPiINTEL},
    {"OpGroupNonUniformIAdd", SpvOpGroupNonUniformIAdd},
    {"OpMemberDecorateString", SpvOpMemberDecorateString},
    {"OpTypeAvcSicPayloadINTEL", SpvOpTypeAvcSicPayloadINTEL},
    {"OpHitObjectGetInstanceIdNV", SpvOpHitObjectGetInstanceIdNV},
    {"OpConstantSampler", SpvOpConstantSampler},
    {"OpRayQueryGetIntersectionInstanceIdKHR", SpvOpRayQueryGetIntersectionInstanceIdKHR},
    {"OpEndInvocationInterlockEXT", SpvOpEndInvocationInterlockEXT},
    {"OpLogicalEqual", SpvOpLogicalEqual},
    {"OpGroupNonUniformLogicalOr", SpvOpGroupNonUniformLogicalOr},
    {"OpTypeRayQueryKHR", SpvOpTypeRayQueryKHR},
    {"OpRayQueryInitializeKHR", SpvOpRayQueryInitializeKHR},
    {"OpRestoreMemoryINTEL", SpvOpRestoreMemoryINTEL},
    {"OpVariable", SpvOpVariable},
    {"OpAtomicIIncrement", SpvOpAtomicIIncrement},
    {"OpTypeBufferSurfaceINTEL", SpvOpTypeBufferSurfaceINTEL},
    {"OpTypeQueue", SpvOpTypeQueue},
    {"OpImageSparseSampleProjDrefExplicitLod", SpvOpImageSparseSampleProjDrefExplicitLod},
    {"OpUSubSatINTEL", SpvOpUSubSatINTEL},
    {"OpSubgroupAvcSicEvaluateIpeINTEL", SpvOpSubgroupAvcSicEvaluateIpeINTEL},
    {"OpHitObjectTraceRayMotionNV", SpvOpHitObjectTraceRayMotionNV},
    {"OpAtomicUMax", SpvOpAtomicUMax},
    {"OpEmitMeshTasksEXT", SpvOpEmitMeshTasksEXT},
    {"OpTranspose", SpvOpTranspose},
    {"OpHitObjectExecuteShaderNV", SpvOpHitObjectExecuteShaderNV},
    {"OpSubgroupAvcImeConvertToMceResultINTEL", SpvOpSubgroupAvcImeConvertToMceResultINTEL},
    {"OpArbitraryFloatLogINTEL", SpvOpArbitraryFloatLogINTEL},
    {"OpFAdd", SpvOpFAdd},
    {"OpTypeInt", SpvOpTypeInt},
    {"OpFMod", SpvOpFMod},
    {"OpFSub", SpvOpFSub},
    {"OpVectorShuffle", SpvOpVectorShuffle},
    {"OpCapability", SpvOpCapability},
    {"OpGroupUMinNonUniformAMD", SpvOpGroupUMinNonUniformAMD},
    {"OpGroupFMaxNonUniformAMD", SpvOpGroupFMaxNonUniformAMD},
    {"OpTypePipeStorage", SpvOpTypePipeStorage},
    {"OpSubgroupAvcImeSetSingleReferenceINTEL", SpvOpSubgroupAvcImeSetSingleReferenceINTEL},
    {"OpDecorate", SpvOpDecorate},
    {"OpTypeVmeImageINTEL", SpvOpTypeVmeImageINTEL},
    {"OpPtrEqual", SpvOpPtrEqual},
    {"OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL", SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL},
    {"OpLessOrGreater", SpvOpLessOrGreater},
    {"OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL", SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL},
    {"OpFunction", SpvOpFunction},
    {"OpSubgroupAvcSicConvertToMceResultINTEL", SpvOpSubgroupAvcSicConvertToMceResultINTEL},
    {"OpReturnValue", SpvOpReturnValue},
    {"OpFConvert", SpvOpFConvert},
    {"OpArbitraryFloatLTINTEL", SpvOpArbitraryFloatLTINTEL},
    {"OpExtInstImport", SpvOpExtInstImport},
    {"OpSubgroupImageMediaBlockReadINTEL", SpvOpSubgroupImageMediaBlockReadINTEL},
    {"OpTypeAvcImeDualReferenceStreaminINTEL", SpvOpTypeAvcImeDualReferenceStreaminINTEL},
    {"OpSDotKHR", SpvOpSDotKHR},
    {"OpHitObjectRecordHitMotionNV", SpvOpHitObjectRecordHitMotionNV},
    {"OpMatrixTimesVector", SpvOpMatrixTimesVector},
    {"OpConstantPipeStorage", SpvOpConstantPipeStorage},
    {"OpIAdd", SpvOpIAdd},
    {"OpAtomicAnd", SpvOpAtomicAnd},
    {"OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL", SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL},
    {"OpUMulExtended", SpvOpUMulExtended},
    {"OpGetKernelMaxNumSubgroups", SpvOpGetKernelMaxNumSubgroups},
    {"OpUDiv", SpvOpUDiv},
    {"OpDot", SpvOpDot},
    {"OpCreateUserEvent", SpvOpCreateUserEvent},
    {"OpSUDotKHR", SpvOpSUDotKHR},
    {"OpConvertFToS", SpvOpConvertFToS},
    {"OpSubgroupAvcMceSetInterDirectionPenaltyINTEL", SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL},
    {"OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL", SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL},
    {"OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL", SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL},
    {"OpEnqueueMarker", SpvOpEnqueueMarker},
    {"OpCommitReadPipe", SpvOpCommitReadPipe},
    {"OpSubgroupAvcSicGetInterRawSadsINTEL", SpvOpSubgroupAvcSicGetInterRawSadsINTEL},
    {"OpGroupFAddNonUniformAMD", SpvOpGroupFAddNonUniformAMD},
    {"OpTypeVoid", SpvOpTypeVoid},
    {"OpWritePipe", SpvOpWritePipe},
    {"OpIAverageRoundedINTEL", SpvOpIAverageRoundedINTEL},
    {"OpCommitWritePipe", SpvOpCommitWritePipe},
    {"OpSpecConstantFalse", SpvOpSpecConstantFalse},
    {"OpArbitraryFloatHypotINTEL", SpvOpArbitraryFloatHypotINTEL},
    {"OpTypeVector", SpvOpTypeVector},
    {"OpOuterProduct", SpvOpOuterProduct},
    {"OpLoopMerge", SpvOpLoopMerge},
    {"OpInBoundsAccessChain", SpvOpInBoundsAccessChain},
    {"OpFixedRecipINTEL", SpvOpFixedRecipINTEL},
    {"OpReadPipe", SpvOpReadPipe},
    {"OpSignBitSet", SpvOpSignBitSet},
    {"OpUAverageRoundedINTEL", SpvOpUAverageRoundedINTEL},
    {"OpSubgroupAvcMceGetMotionVectorsINTEL", SpvOpSubgroupAvcMceGetMotionVectorsINTEL},
    {"OpSubgroupAvcSicEvaluateWithDualReferenceINTEL", SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL},
    {"OpSRem", SpvOpSRem},
    {"OpImageTexelPointer", SpvOpImageTexelPointer},
    {"OpArbitraryFloatATanINTEL", SpvOpArbitraryFloatATanINTEL},
    {"OpBuildNDRange", SpvOpBuildNDRange},
    {"OpRayQueryGetIntersectionObjectToWorldKHR", SpvOpRayQueryGetIntersectionObjectToWorldKHR},
    {"OpConstantFalse", SpvOpConstantFalse},
    {"OpTypeEvent", SpvOpTypeEvent},
    {"OpArbitraryFloatDivINTEL", SpvOpArbitraryFloatDivINTEL},
};

static UInt32 hash(const UnownedStringSlice& str, UInt32 salt)
{
    UInt64 h = salt;
    for(const char c : str)
        h = ((h * 0x00000100000001B3) ^ c);
    return h % (sizeof(tableSalt)/sizeof(tableSalt[0]));
}

bool lookupSpvOp(const UnownedStringSlice& str, SpvOp& value)
{
    const auto i = hash(str, tableSalt[hash(str, 0)]);
    if(str == words[i].name)
    {
        value = words[i].value;
        return true;
    }
    else
    {
        return false;
    }
}

}