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