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