spirv.lua 26 KB

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