1 // Copyright (c) 2014-2018 The Khronos Group Inc.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and/or associated documentation files (the "Materials"),
5 // to deal in the Materials without restriction, including without limitation
6 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 // and/or sell copies of the Materials, and to permit persons to whom the
8 // Materials are furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Materials.
12 //
13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16 //
17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23 // IN THE MATERIALS.
24 
25 // This header is automatically generated by the same tool that creates
26 // the Binary Section of the SPIR-V specification.
27 
28 // Enumeration tokens for SPIR-V, in various styles:
29 //   C, C++, C++11, JSON, Lua, Python, C#
30 //
31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
36 // - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
37 //
38 // Some tokens act like mask values, which can be OR'd together,
39 // while others are mutually exclusive.  The mask-like ones have
40 // "Mask" in their name, and a parallel enum that has the shift
41 // amount (1 << x) for each corresponding enumerant.
42 
43 namespace Spv
44 {
45 
46     public static class Specification
47     {
48         public const uint MagicNumber = 0x07230203;
49         public const uint Version = 0x00010200;
50         public const uint Revision = 2;
51         public const uint OpCodeMask = 0xffff;
52         public const uint WordCountShift = 16;
53 
54         public enum SourceLanguage
55         {
56             Unknown = 0,
57             ESSL = 1,
58             GLSL = 2,
59             OpenCL_C = 3,
60             OpenCL_CPP = 4,
61             HLSL = 5,
62         }
63 
64         public enum ExecutionModel
65         {
66             Vertex = 0,
67             TessellationControl = 1,
68             TessellationEvaluation = 2,
69             Geometry = 3,
70             Fragment = 4,
71             GLCompute = 5,
72             Kernel = 6,
73         }
74 
75         public enum AddressingModel
76         {
77             Logical = 0,
78             Physical32 = 1,
79             Physical64 = 2,
80         }
81 
82         public enum MemoryModel
83         {
84             Simple = 0,
85             GLSL450 = 1,
86             OpenCL = 2,
87         }
88 
89         public enum ExecutionMode
90         {
91             Invocations = 0,
92             SpacingEqual = 1,
93             SpacingFractionalEven = 2,
94             SpacingFractionalOdd = 3,
95             VertexOrderCw = 4,
96             VertexOrderCcw = 5,
97             PixelCenterInteger = 6,
98             OriginUpperLeft = 7,
99             OriginLowerLeft = 8,
100             EarlyFragmentTests = 9,
101             PointMode = 10,
102             Xfb = 11,
103             DepthReplacing = 12,
104             DepthGreater = 14,
105             DepthLess = 15,
106             DepthUnchanged = 16,
107             LocalSize = 17,
108             LocalSizeHint = 18,
109             InputPoints = 19,
110             InputLines = 20,
111             InputLinesAdjacency = 21,
112             Triangles = 22,
113             InputTrianglesAdjacency = 23,
114             Quads = 24,
115             Isolines = 25,
116             OutputVertices = 26,
117             OutputPoints = 27,
118             OutputLineStrip = 28,
119             OutputTriangleStrip = 29,
120             VecTypeHint = 30,
121             ContractionOff = 31,
122             Initializer = 33,
123             Finalizer = 34,
124             SubgroupSize = 35,
125             SubgroupsPerWorkgroup = 36,
126             SubgroupsPerWorkgroupId = 37,
127             LocalSizeId = 38,
128             LocalSizeHintId = 39,
129             PostDepthCoverage = 4446,
130             StencilRefReplacingEXT = 5027,
131         }
132 
133         public enum StorageClass
134         {
135             UniformConstant = 0,
136             Input = 1,
137             Uniform = 2,
138             Output = 3,
139             Workgroup = 4,
140             CrossWorkgroup = 5,
141             Private = 6,
142             Function = 7,
143             Generic = 8,
144             PushConstant = 9,
145             AtomicCounter = 10,
146             Image = 11,
147             StorageBuffer = 12,
148         }
149 
150         public enum Dim
151         {
152             Dim1D = 0,
153             Dim2D = 1,
154             Dim3D = 2,
155             Cube = 3,
156             Rect = 4,
157             Buffer = 5,
158             SubpassData = 6,
159         }
160 
161         public enum SamplerAddressingMode
162         {
163             None = 0,
164             ClampToEdge = 1,
165             Clamp = 2,
166             Repeat = 3,
167             RepeatMirrored = 4,
168         }
169 
170         public enum SamplerFilterMode
171         {
172             Nearest = 0,
173             Linear = 1,
174         }
175 
176         public enum ImageFormat
177         {
178             Unknown = 0,
179             Rgba32f = 1,
180             Rgba16f = 2,
181             R32f = 3,
182             Rgba8 = 4,
183             Rgba8Snorm = 5,
184             Rg32f = 6,
185             Rg16f = 7,
186             R11fG11fB10f = 8,
187             R16f = 9,
188             Rgba16 = 10,
189             Rgb10A2 = 11,
190             Rg16 = 12,
191             Rg8 = 13,
192             R16 = 14,
193             R8 = 15,
194             Rgba16Snorm = 16,
195             Rg16Snorm = 17,
196             Rg8Snorm = 18,
197             R16Snorm = 19,
198             R8Snorm = 20,
199             Rgba32i = 21,
200             Rgba16i = 22,
201             Rgba8i = 23,
202             R32i = 24,
203             Rg32i = 25,
204             Rg16i = 26,
205             Rg8i = 27,
206             R16i = 28,
207             R8i = 29,
208             Rgba32ui = 30,
209             Rgba16ui = 31,
210             Rgba8ui = 32,
211             R32ui = 33,
212             Rgb10a2ui = 34,
213             Rg32ui = 35,
214             Rg16ui = 36,
215             Rg8ui = 37,
216             R16ui = 38,
217             R8ui = 39,
218         }
219 
220         public enum ImageChannelOrder
221         {
222             R = 0,
223             A = 1,
224             RG = 2,
225             RA = 3,
226             RGB = 4,
227             RGBA = 5,
228             BGRA = 6,
229             ARGB = 7,
230             Intensity = 8,
231             Luminance = 9,
232             Rx = 10,
233             RGx = 11,
234             RGBx = 12,
235             Depth = 13,
236             DepthStencil = 14,
237             sRGB = 15,
238             sRGBx = 16,
239             sRGBA = 17,
240             sBGRA = 18,
241             ABGR = 19,
242         }
243 
244         public enum ImageChannelDataType
245         {
246             SnormInt8 = 0,
247             SnormInt16 = 1,
248             UnormInt8 = 2,
249             UnormInt16 = 3,
250             UnormShort565 = 4,
251             UnormShort555 = 5,
252             UnormInt101010 = 6,
253             SignedInt8 = 7,
254             SignedInt16 = 8,
255             SignedInt32 = 9,
256             UnsignedInt8 = 10,
257             UnsignedInt16 = 11,
258             UnsignedInt32 = 12,
259             HalfFloat = 13,
260             Float = 14,
261             UnormInt24 = 15,
262             UnormInt101010_2 = 16,
263         }
264 
265         public enum ImageOperandsShift
266         {
267             Bias = 0,
268             Lod = 1,
269             Grad = 2,
270             ConstOffset = 3,
271             Offset = 4,
272             ConstOffsets = 5,
273             Sample = 6,
274             MinLod = 7,
275         }
276 
277         public enum ImageOperandsMask
278         {
279             MaskNone = 0,
280             Bias = 0x00000001,
281             Lod = 0x00000002,
282             Grad = 0x00000004,
283             ConstOffset = 0x00000008,
284             Offset = 0x00000010,
285             ConstOffsets = 0x00000020,
286             Sample = 0x00000040,
287             MinLod = 0x00000080,
288         }
289 
290         public enum FPFastMathModeShift
291         {
292             NotNaN = 0,
293             NotInf = 1,
294             NSZ = 2,
295             AllowRecip = 3,
296             Fast = 4,
297         }
298 
299         public enum FPFastMathModeMask
300         {
301             MaskNone = 0,
302             NotNaN = 0x00000001,
303             NotInf = 0x00000002,
304             NSZ = 0x00000004,
305             AllowRecip = 0x00000008,
306             Fast = 0x00000010,
307         }
308 
309         public enum FPRoundingMode
310         {
311             RTE = 0,
312             RTZ = 1,
313             RTP = 2,
314             RTN = 3,
315         }
316 
317         public enum LinkageType
318         {
319             Export = 0,
320             Import = 1,
321         }
322 
323         public enum AccessQualifier
324         {
325             ReadOnly = 0,
326             WriteOnly = 1,
327             ReadWrite = 2,
328         }
329 
330         public enum FunctionParameterAttribute
331         {
332             Zext = 0,
333             Sext = 1,
334             ByVal = 2,
335             Sret = 3,
336             NoAlias = 4,
337             NoCapture = 5,
338             NoWrite = 6,
339             NoReadWrite = 7,
340         }
341 
342         public enum Decoration
343         {
344             RelaxedPrecision = 0,
345             SpecId = 1,
346             Block = 2,
347             BufferBlock = 3,
348             RowMajor = 4,
349             ColMajor = 5,
350             ArrayStride = 6,
351             MatrixStride = 7,
352             GLSLShared = 8,
353             GLSLPacked = 9,
354             CPacked = 10,
355             BuiltIn = 11,
356             NoPerspective = 13,
357             Flat = 14,
358             Patch = 15,
359             Centroid = 16,
360             Sample = 17,
361             Invariant = 18,
362             Restrict = 19,
363             Aliased = 20,
364             Volatile = 21,
365             Constant = 22,
366             Coherent = 23,
367             NonWritable = 24,
368             NonReadable = 25,
369             Uniform = 26,
370             SaturatedConversion = 28,
371             Stream = 29,
372             Location = 30,
373             Component = 31,
374             Index = 32,
375             Binding = 33,
376             DescriptorSet = 34,
377             Offset = 35,
378             XfbBuffer = 36,
379             XfbStride = 37,
380             FuncParamAttr = 38,
381             FPRoundingMode = 39,
382             FPFastMathMode = 40,
383             LinkageAttributes = 41,
384             NoContraction = 42,
385             InputAttachmentIndex = 43,
386             Alignment = 44,
387             MaxByteOffset = 45,
388             AlignmentId = 46,
389             MaxByteOffsetId = 47,
390             ExplicitInterpAMD = 4999,
391             OverrideCoverageNV = 5248,
392             PassthroughNV = 5250,
393             ViewportRelativeNV = 5252,
394             SecondaryViewportRelativeNV = 5256,
395             HlslCounterBufferGOOGLE = 5634,
396             HlslSemanticGOOGLE = 5635,
397         }
398 
399         public enum BuiltIn
400         {
401             Position = 0,
402             PointSize = 1,
403             ClipDistance = 3,
404             CullDistance = 4,
405             VertexId = 5,
406             InstanceId = 6,
407             PrimitiveId = 7,
408             InvocationId = 8,
409             Layer = 9,
410             ViewportIndex = 10,
411             TessLevelOuter = 11,
412             TessLevelInner = 12,
413             TessCoord = 13,
414             PatchVertices = 14,
415             FragCoord = 15,
416             PointCoord = 16,
417             FrontFacing = 17,
418             SampleId = 18,
419             SamplePosition = 19,
420             SampleMask = 20,
421             FragDepth = 22,
422             HelperInvocation = 23,
423             NumWorkgroups = 24,
424             WorkgroupSize = 25,
425             WorkgroupId = 26,
426             LocalInvocationId = 27,
427             GlobalInvocationId = 28,
428             LocalInvocationIndex = 29,
429             WorkDim = 30,
430             GlobalSize = 31,
431             EnqueuedWorkgroupSize = 32,
432             GlobalOffset = 33,
433             GlobalLinearId = 34,
434             SubgroupSize = 36,
435             SubgroupMaxSize = 37,
436             NumSubgroups = 38,
437             NumEnqueuedSubgroups = 39,
438             SubgroupId = 40,
439             SubgroupLocalInvocationId = 41,
440             VertexIndex = 42,
441             InstanceIndex = 43,
442             SubgroupEqMaskKHR = 4416,
443             SubgroupGeMaskKHR = 4417,
444             SubgroupGtMaskKHR = 4418,
445             SubgroupLeMaskKHR = 4419,
446             SubgroupLtMaskKHR = 4420,
447             BaseVertex = 4424,
448             BaseInstance = 4425,
449             DrawIndex = 4426,
450             DeviceIndex = 4438,
451             ViewIndex = 4440,
452             BaryCoordNoPerspAMD = 4992,
453             BaryCoordNoPerspCentroidAMD = 4993,
454             BaryCoordNoPerspSampleAMD = 4994,
455             BaryCoordSmoothAMD = 4995,
456             BaryCoordSmoothCentroidAMD = 4996,
457             BaryCoordSmoothSampleAMD = 4997,
458             BaryCoordPullModelAMD = 4998,
459             FragStencilRefEXT = 5014,
460             ViewportMaskNV = 5253,
461             SecondaryPositionNV = 5257,
462             SecondaryViewportMaskNV = 5258,
463             PositionPerViewNV = 5261,
464             ViewportMaskPerViewNV = 5262,
465         }
466 
467         public enum SelectionControlShift
468         {
469             Flatten = 0,
470             DontFlatten = 1,
471         }
472 
473         public enum SelectionControlMask
474         {
475             MaskNone = 0,
476             Flatten = 0x00000001,
477             DontFlatten = 0x00000002,
478         }
479 
480         public enum LoopControlShift
481         {
482             Unroll = 0,
483             DontUnroll = 1,
484             DependencyInfinite = 2,
485             DependencyLength = 3,
486         }
487 
488         public enum LoopControlMask
489         {
490             MaskNone = 0,
491             Unroll = 0x00000001,
492             DontUnroll = 0x00000002,
493             DependencyInfinite = 0x00000004,
494             DependencyLength = 0x00000008,
495         }
496 
497         public enum FunctionControlShift
498         {
499             Inline = 0,
500             DontInline = 1,
501             Pure = 2,
502             Const = 3,
503         }
504 
505         public enum FunctionControlMask
506         {
507             MaskNone = 0,
508             Inline = 0x00000001,
509             DontInline = 0x00000002,
510             Pure = 0x00000004,
511             Const = 0x00000008,
512         }
513 
514         public enum MemorySemanticsShift
515         {
516             Acquire = 1,
517             Release = 2,
518             AcquireRelease = 3,
519             SequentiallyConsistent = 4,
520             UniformMemory = 6,
521             SubgroupMemory = 7,
522             WorkgroupMemory = 8,
523             CrossWorkgroupMemory = 9,
524             AtomicCounterMemory = 10,
525             ImageMemory = 11,
526         }
527 
528         public enum MemorySemanticsMask
529         {
530             MaskNone = 0,
531             Acquire = 0x00000002,
532             Release = 0x00000004,
533             AcquireRelease = 0x00000008,
534             SequentiallyConsistent = 0x00000010,
535             UniformMemory = 0x00000040,
536             SubgroupMemory = 0x00000080,
537             WorkgroupMemory = 0x00000100,
538             CrossWorkgroupMemory = 0x00000200,
539             AtomicCounterMemory = 0x00000400,
540             ImageMemory = 0x00000800,
541         }
542 
543         public enum MemoryAccessShift
544         {
545             Volatile = 0,
546             Aligned = 1,
547             Nontemporal = 2,
548         }
549 
550         public enum MemoryAccessMask
551         {
552             MaskNone = 0,
553             Volatile = 0x00000001,
554             Aligned = 0x00000002,
555             Nontemporal = 0x00000004,
556         }
557 
558         public enum Scope
559         {
560             CrossDevice = 0,
561             Device = 1,
562             Workgroup = 2,
563             Subgroup = 3,
564             Invocation = 4,
565         }
566 
567         public enum GroupOperation
568         {
569             Reduce = 0,
570             InclusiveScan = 1,
571             ExclusiveScan = 2,
572         }
573 
574         public enum KernelEnqueueFlags
575         {
576             NoWait = 0,
577             WaitKernel = 1,
578             WaitWorkGroup = 2,
579         }
580 
581         public enum KernelProfilingInfoShift
582         {
583             CmdExecTime = 0,
584         }
585 
586         public enum KernelProfilingInfoMask
587         {
588             MaskNone = 0,
589             CmdExecTime = 0x00000001,
590         }
591 
592         public enum Capability
593         {
594             Matrix = 0,
595             Shader = 1,
596             Geometry = 2,
597             Tessellation = 3,
598             Addresses = 4,
599             Linkage = 5,
600             Kernel = 6,
601             Vector16 = 7,
602             Float16Buffer = 8,
603             Float16 = 9,
604             Float64 = 10,
605             Int64 = 11,
606             Int64Atomics = 12,
607             ImageBasic = 13,
608             ImageReadWrite = 14,
609             ImageMipmap = 15,
610             Pipes = 17,
611             Groups = 18,
612             DeviceEnqueue = 19,
613             LiteralSampler = 20,
614             AtomicStorage = 21,
615             Int16 = 22,
616             TessellationPointSize = 23,
617             GeometryPointSize = 24,
618             ImageGatherExtended = 25,
619             StorageImageMultisample = 27,
620             UniformBufferArrayDynamicIndexing = 28,
621             SampledImageArrayDynamicIndexing = 29,
622             StorageBufferArrayDynamicIndexing = 30,
623             StorageImageArrayDynamicIndexing = 31,
624             ClipDistance = 32,
625             CullDistance = 33,
626             ImageCubeArray = 34,
627             SampleRateShading = 35,
628             ImageRect = 36,
629             SampledRect = 37,
630             GenericPointer = 38,
631             Int8 = 39,
632             InputAttachment = 40,
633             SparseResidency = 41,
634             MinLod = 42,
635             Sampled1D = 43,
636             Image1D = 44,
637             SampledCubeArray = 45,
638             SampledBuffer = 46,
639             ImageBuffer = 47,
640             ImageMSArray = 48,
641             StorageImageExtendedFormats = 49,
642             ImageQuery = 50,
643             DerivativeControl = 51,
644             InterpolationFunction = 52,
645             TransformFeedback = 53,
646             GeometryStreams = 54,
647             StorageImageReadWithoutFormat = 55,
648             StorageImageWriteWithoutFormat = 56,
649             MultiViewport = 57,
650             SubgroupDispatch = 58,
651             NamedBarrier = 59,
652             PipeStorage = 60,
653             SubgroupBallotKHR = 4423,
654             DrawParameters = 4427,
655             SubgroupVoteKHR = 4431,
656             StorageBuffer16BitAccess = 4433,
657             StorageUniformBufferBlock16 = 4433,
658             StorageUniform16 = 4434,
659             UniformAndStorageBuffer16BitAccess = 4434,
660             StoragePushConstant16 = 4435,
661             StorageInputOutput16 = 4436,
662             DeviceGroup = 4437,
663             MultiView = 4439,
664             VariablePointersStorageBuffer = 4441,
665             VariablePointers = 4442,
666             AtomicStorageOps = 4445,
667             SampleMaskPostDepthCoverage = 4447,
668             ImageGatherBiasLodAMD = 5009,
669             FragmentMaskAMD = 5010,
670             StencilExportEXT = 5013,
671             ImageReadWriteLodAMD = 5015,
672             SampleMaskOverrideCoverageNV = 5249,
673             GeometryShaderPassthroughNV = 5251,
674             ShaderViewportIndexLayerEXT = 5254,
675             ShaderViewportIndexLayerNV = 5254,
676             ShaderViewportMaskNV = 5255,
677             ShaderStereoViewNV = 5259,
678             PerViewAttributesNV = 5260,
679             SubgroupShuffleINTEL = 5568,
680             SubgroupBufferBlockIOINTEL = 5569,
681             SubgroupImageBlockIOINTEL = 5570,
682         }
683 
684         public enum Op
685         {
686             OpNop = 0,
687             OpUndef = 1,
688             OpSourceContinued = 2,
689             OpSource = 3,
690             OpSourceExtension = 4,
691             OpName = 5,
692             OpMemberName = 6,
693             OpString = 7,
694             OpLine = 8,
695             OpExtension = 10,
696             OpExtInstImport = 11,
697             OpExtInst = 12,
698             OpMemoryModel = 14,
699             OpEntryPoint = 15,
700             OpExecutionMode = 16,
701             OpCapability = 17,
702             OpTypeVoid = 19,
703             OpTypeBool = 20,
704             OpTypeInt = 21,
705             OpTypeFloat = 22,
706             OpTypeVector = 23,
707             OpTypeMatrix = 24,
708             OpTypeImage = 25,
709             OpTypeSampler = 26,
710             OpTypeSampledImage = 27,
711             OpTypeArray = 28,
712             OpTypeRuntimeArray = 29,
713             OpTypeStruct = 30,
714             OpTypeOpaque = 31,
715             OpTypePointer = 32,
716             OpTypeFunction = 33,
717             OpTypeEvent = 34,
718             OpTypeDeviceEvent = 35,
719             OpTypeReserveId = 36,
720             OpTypeQueue = 37,
721             OpTypePipe = 38,
722             OpTypeForwardPointer = 39,
723             OpConstantTrue = 41,
724             OpConstantFalse = 42,
725             OpConstant = 43,
726             OpConstantComposite = 44,
727             OpConstantSampler = 45,
728             OpConstantNull = 46,
729             OpSpecConstantTrue = 48,
730             OpSpecConstantFalse = 49,
731             OpSpecConstant = 50,
732             OpSpecConstantComposite = 51,
733             OpSpecConstantOp = 52,
734             OpFunction = 54,
735             OpFunctionParameter = 55,
736             OpFunctionEnd = 56,
737             OpFunctionCall = 57,
738             OpVariable = 59,
739             OpImageTexelPointer = 60,
740             OpLoad = 61,
741             OpStore = 62,
742             OpCopyMemory = 63,
743             OpCopyMemorySized = 64,
744             OpAccessChain = 65,
745             OpInBoundsAccessChain = 66,
746             OpPtrAccessChain = 67,
747             OpArrayLength = 68,
748             OpGenericPtrMemSemantics = 69,
749             OpInBoundsPtrAccessChain = 70,
750             OpDecorate = 71,
751             OpMemberDecorate = 72,
752             OpDecorationGroup = 73,
753             OpGroupDecorate = 74,
754             OpGroupMemberDecorate = 75,
755             OpVectorExtractDynamic = 77,
756             OpVectorInsertDynamic = 78,
757             OpVectorShuffle = 79,
758             OpCompositeConstruct = 80,
759             OpCompositeExtract = 81,
760             OpCompositeInsert = 82,
761             OpCopyObject = 83,
762             OpTranspose = 84,
763             OpSampledImage = 86,
764             OpImageSampleImplicitLod = 87,
765             OpImageSampleExplicitLod = 88,
766             OpImageSampleDrefImplicitLod = 89,
767             OpImageSampleDrefExplicitLod = 90,
768             OpImageSampleProjImplicitLod = 91,
769             OpImageSampleProjExplicitLod = 92,
770             OpImageSampleProjDrefImplicitLod = 93,
771             OpImageSampleProjDrefExplicitLod = 94,
772             OpImageFetch = 95,
773             OpImageGather = 96,
774             OpImageDrefGather = 97,
775             OpImageRead = 98,
776             OpImageWrite = 99,
777             OpImage = 100,
778             OpImageQueryFormat = 101,
779             OpImageQueryOrder = 102,
780             OpImageQuerySizeLod = 103,
781             OpImageQuerySize = 104,
782             OpImageQueryLod = 105,
783             OpImageQueryLevels = 106,
784             OpImageQuerySamples = 107,
785             OpConvertFToU = 109,
786             OpConvertFToS = 110,
787             OpConvertSToF = 111,
788             OpConvertUToF = 112,
789             OpUConvert = 113,
790             OpSConvert = 114,
791             OpFConvert = 115,
792             OpQuantizeToF16 = 116,
793             OpConvertPtrToU = 117,
794             OpSatConvertSToU = 118,
795             OpSatConvertUToS = 119,
796             OpConvertUToPtr = 120,
797             OpPtrCastToGeneric = 121,
798             OpGenericCastToPtr = 122,
799             OpGenericCastToPtrExplicit = 123,
800             OpBitcast = 124,
801             OpSNegate = 126,
802             OpFNegate = 127,
803             OpIAdd = 128,
804             OpFAdd = 129,
805             OpISub = 130,
806             OpFSub = 131,
807             OpIMul = 132,
808             OpFMul = 133,
809             OpUDiv = 134,
810             OpSDiv = 135,
811             OpFDiv = 136,
812             OpUMod = 137,
813             OpSRem = 138,
814             OpSMod = 139,
815             OpFRem = 140,
816             OpFMod = 141,
817             OpVectorTimesScalar = 142,
818             OpMatrixTimesScalar = 143,
819             OpVectorTimesMatrix = 144,
820             OpMatrixTimesVector = 145,
821             OpMatrixTimesMatrix = 146,
822             OpOuterProduct = 147,
823             OpDot = 148,
824             OpIAddCarry = 149,
825             OpISubBorrow = 150,
826             OpUMulExtended = 151,
827             OpSMulExtended = 152,
828             OpAny = 154,
829             OpAll = 155,
830             OpIsNan = 156,
831             OpIsInf = 157,
832             OpIsFinite = 158,
833             OpIsNormal = 159,
834             OpSignBitSet = 160,
835             OpLessOrGreater = 161,
836             OpOrdered = 162,
837             OpUnordered = 163,
838             OpLogicalEqual = 164,
839             OpLogicalNotEqual = 165,
840             OpLogicalOr = 166,
841             OpLogicalAnd = 167,
842             OpLogicalNot = 168,
843             OpSelect = 169,
844             OpIEqual = 170,
845             OpINotEqual = 171,
846             OpUGreaterThan = 172,
847             OpSGreaterThan = 173,
848             OpUGreaterThanEqual = 174,
849             OpSGreaterThanEqual = 175,
850             OpULessThan = 176,
851             OpSLessThan = 177,
852             OpULessThanEqual = 178,
853             OpSLessThanEqual = 179,
854             OpFOrdEqual = 180,
855             OpFUnordEqual = 181,
856             OpFOrdNotEqual = 182,
857             OpFUnordNotEqual = 183,
858             OpFOrdLessThan = 184,
859             OpFUnordLessThan = 185,
860             OpFOrdGreaterThan = 186,
861             OpFUnordGreaterThan = 187,
862             OpFOrdLessThanEqual = 188,
863             OpFUnordLessThanEqual = 189,
864             OpFOrdGreaterThanEqual = 190,
865             OpFUnordGreaterThanEqual = 191,
866             OpShiftRightLogical = 194,
867             OpShiftRightArithmetic = 195,
868             OpShiftLeftLogical = 196,
869             OpBitwiseOr = 197,
870             OpBitwiseXor = 198,
871             OpBitwiseAnd = 199,
872             OpNot = 200,
873             OpBitFieldInsert = 201,
874             OpBitFieldSExtract = 202,
875             OpBitFieldUExtract = 203,
876             OpBitReverse = 204,
877             OpBitCount = 205,
878             OpDPdx = 207,
879             OpDPdy = 208,
880             OpFwidth = 209,
881             OpDPdxFine = 210,
882             OpDPdyFine = 211,
883             OpFwidthFine = 212,
884             OpDPdxCoarse = 213,
885             OpDPdyCoarse = 214,
886             OpFwidthCoarse = 215,
887             OpEmitVertex = 218,
888             OpEndPrimitive = 219,
889             OpEmitStreamVertex = 220,
890             OpEndStreamPrimitive = 221,
891             OpControlBarrier = 224,
892             OpMemoryBarrier = 225,
893             OpAtomicLoad = 227,
894             OpAtomicStore = 228,
895             OpAtomicExchange = 229,
896             OpAtomicCompareExchange = 230,
897             OpAtomicCompareExchangeWeak = 231,
898             OpAtomicIIncrement = 232,
899             OpAtomicIDecrement = 233,
900             OpAtomicIAdd = 234,
901             OpAtomicISub = 235,
902             OpAtomicSMin = 236,
903             OpAtomicUMin = 237,
904             OpAtomicSMax = 238,
905             OpAtomicUMax = 239,
906             OpAtomicAnd = 240,
907             OpAtomicOr = 241,
908             OpAtomicXor = 242,
909             OpPhi = 245,
910             OpLoopMerge = 246,
911             OpSelectionMerge = 247,
912             OpLabel = 248,
913             OpBranch = 249,
914             OpBranchConditional = 250,
915             OpSwitch = 251,
916             OpKill = 252,
917             OpReturn = 253,
918             OpReturnValue = 254,
919             OpUnreachable = 255,
920             OpLifetimeStart = 256,
921             OpLifetimeStop = 257,
922             OpGroupAsyncCopy = 259,
923             OpGroupWaitEvents = 260,
924             OpGroupAll = 261,
925             OpGroupAny = 262,
926             OpGroupBroadcast = 263,
927             OpGroupIAdd = 264,
928             OpGroupFAdd = 265,
929             OpGroupFMin = 266,
930             OpGroupUMin = 267,
931             OpGroupSMin = 268,
932             OpGroupFMax = 269,
933             OpGroupUMax = 270,
934             OpGroupSMax = 271,
935             OpReadPipe = 274,
936             OpWritePipe = 275,
937             OpReservedReadPipe = 276,
938             OpReservedWritePipe = 277,
939             OpReserveReadPipePackets = 278,
940             OpReserveWritePipePackets = 279,
941             OpCommitReadPipe = 280,
942             OpCommitWritePipe = 281,
943             OpIsValidReserveId = 282,
944             OpGetNumPipePackets = 283,
945             OpGetMaxPipePackets = 284,
946             OpGroupReserveReadPipePackets = 285,
947             OpGroupReserveWritePipePackets = 286,
948             OpGroupCommitReadPipe = 287,
949             OpGroupCommitWritePipe = 288,
950             OpEnqueueMarker = 291,
951             OpEnqueueKernel = 292,
952             OpGetKernelNDrangeSubGroupCount = 293,
953             OpGetKernelNDrangeMaxSubGroupSize = 294,
954             OpGetKernelWorkGroupSize = 295,
955             OpGetKernelPreferredWorkGroupSizeMultiple = 296,
956             OpRetainEvent = 297,
957             OpReleaseEvent = 298,
958             OpCreateUserEvent = 299,
959             OpIsValidEvent = 300,
960             OpSetUserEventStatus = 301,
961             OpCaptureEventProfilingInfo = 302,
962             OpGetDefaultQueue = 303,
963             OpBuildNDRange = 304,
964             OpImageSparseSampleImplicitLod = 305,
965             OpImageSparseSampleExplicitLod = 306,
966             OpImageSparseSampleDrefImplicitLod = 307,
967             OpImageSparseSampleDrefExplicitLod = 308,
968             OpImageSparseSampleProjImplicitLod = 309,
969             OpImageSparseSampleProjExplicitLod = 310,
970             OpImageSparseSampleProjDrefImplicitLod = 311,
971             OpImageSparseSampleProjDrefExplicitLod = 312,
972             OpImageSparseFetch = 313,
973             OpImageSparseGather = 314,
974             OpImageSparseDrefGather = 315,
975             OpImageSparseTexelsResident = 316,
976             OpNoLine = 317,
977             OpAtomicFlagTestAndSet = 318,
978             OpAtomicFlagClear = 319,
979             OpImageSparseRead = 320,
980             OpSizeOf = 321,
981             OpTypePipeStorage = 322,
982             OpConstantPipeStorage = 323,
983             OpCreatePipeFromPipeStorage = 324,
984             OpGetKernelLocalSizeForSubgroupCount = 325,
985             OpGetKernelMaxNumSubgroups = 326,
986             OpTypeNamedBarrier = 327,
987             OpNamedBarrierInitialize = 328,
988             OpMemoryNamedBarrier = 329,
989             OpModuleProcessed = 330,
990             OpExecutionModeId = 331,
991             OpDecorateId = 332,
992             OpSubgroupBallotKHR = 4421,
993             OpSubgroupFirstInvocationKHR = 4422,
994             OpSubgroupAllKHR = 4428,
995             OpSubgroupAnyKHR = 4429,
996             OpSubgroupAllEqualKHR = 4430,
997             OpSubgroupReadInvocationKHR = 4432,
998             OpGroupIAddNonUniformAMD = 5000,
999             OpGroupFAddNonUniformAMD = 5001,
1000             OpGroupFMinNonUniformAMD = 5002,
1001             OpGroupUMinNonUniformAMD = 5003,
1002             OpGroupSMinNonUniformAMD = 5004,
1003             OpGroupFMaxNonUniformAMD = 5005,
1004             OpGroupUMaxNonUniformAMD = 5006,
1005             OpGroupSMaxNonUniformAMD = 5007,
1006             OpFragmentMaskFetchAMD = 5011,
1007             OpFragmentFetchAMD = 5012,
1008             OpSubgroupShuffleINTEL = 5571,
1009             OpSubgroupShuffleDownINTEL = 5572,
1010             OpSubgroupShuffleUpINTEL = 5573,
1011             OpSubgroupShuffleXorINTEL = 5574,
1012             OpSubgroupBlockReadINTEL = 5575,
1013             OpSubgroupBlockWriteINTEL = 5576,
1014             OpSubgroupImageBlockReadINTEL = 5577,
1015             OpSubgroupImageBlockWriteINTEL = 5578,
1016             OpDecorateStringGOOGLE = 5632,
1017             OpMemberDecorateStringGOOGLE = 5633,
1018         }
1019     }
1020 }
1021 
1022