spirv.lua 26 KB

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