spirv.hpp 108 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293
  1. // Copyright (c) 2014-2020 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, C#, D
  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. // - C# will use enum classes in the Specification class located in the "Spv" namespace,
  35. // e.g.: Spv.Specification.SourceLanguage.GLSL
  36. // - D will have tokens under the "spv" module, e.g: spv.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. #ifndef spirv_HPP
  43. #define spirv_HPP
  44. namespace spv {
  45. typedef unsigned int Id;
  46. #define SPV_VERSION 0x10500
  47. #define SPV_REVISION 4
  48. static const unsigned int MagicNumber = 0x07230203;
  49. static const unsigned int Version = 0x00010500;
  50. static const unsigned int Revision = 4;
  51. static const unsigned int OpCodeMask = 0xffff;
  52. static const unsigned int WordCountShift = 16;
  53. enum SourceLanguage {
  54. SourceLanguageUnknown = 0,
  55. SourceLanguageESSL = 1,
  56. SourceLanguageGLSL = 2,
  57. SourceLanguageOpenCL_C = 3,
  58. SourceLanguageOpenCL_CPP = 4,
  59. SourceLanguageHLSL = 5,
  60. SourceLanguageMax = 0x7fffffff,
  61. };
  62. enum ExecutionModel {
  63. ExecutionModelVertex = 0,
  64. ExecutionModelTessellationControl = 1,
  65. ExecutionModelTessellationEvaluation = 2,
  66. ExecutionModelGeometry = 3,
  67. ExecutionModelFragment = 4,
  68. ExecutionModelGLCompute = 5,
  69. ExecutionModelKernel = 6,
  70. ExecutionModelTaskNV = 5267,
  71. ExecutionModelMeshNV = 5268,
  72. ExecutionModelRayGenerationKHR = 5313,
  73. ExecutionModelRayGenerationNV = 5313,
  74. ExecutionModelIntersectionKHR = 5314,
  75. ExecutionModelIntersectionNV = 5314,
  76. ExecutionModelAnyHitKHR = 5315,
  77. ExecutionModelAnyHitNV = 5315,
  78. ExecutionModelClosestHitKHR = 5316,
  79. ExecutionModelClosestHitNV = 5316,
  80. ExecutionModelMissKHR = 5317,
  81. ExecutionModelMissNV = 5317,
  82. ExecutionModelCallableKHR = 5318,
  83. ExecutionModelCallableNV = 5318,
  84. ExecutionModelMax = 0x7fffffff,
  85. };
  86. enum AddressingModel {
  87. AddressingModelLogical = 0,
  88. AddressingModelPhysical32 = 1,
  89. AddressingModelPhysical64 = 2,
  90. AddressingModelPhysicalStorageBuffer64 = 5348,
  91. AddressingModelPhysicalStorageBuffer64EXT = 5348,
  92. AddressingModelMax = 0x7fffffff,
  93. };
  94. enum MemoryModel {
  95. MemoryModelSimple = 0,
  96. MemoryModelGLSL450 = 1,
  97. MemoryModelOpenCL = 2,
  98. MemoryModelVulkan = 3,
  99. MemoryModelVulkanKHR = 3,
  100. MemoryModelMax = 0x7fffffff,
  101. };
  102. enum ExecutionMode {
  103. ExecutionModeInvocations = 0,
  104. ExecutionModeSpacingEqual = 1,
  105. ExecutionModeSpacingFractionalEven = 2,
  106. ExecutionModeSpacingFractionalOdd = 3,
  107. ExecutionModeVertexOrderCw = 4,
  108. ExecutionModeVertexOrderCcw = 5,
  109. ExecutionModePixelCenterInteger = 6,
  110. ExecutionModeOriginUpperLeft = 7,
  111. ExecutionModeOriginLowerLeft = 8,
  112. ExecutionModeEarlyFragmentTests = 9,
  113. ExecutionModePointMode = 10,
  114. ExecutionModeXfb = 11,
  115. ExecutionModeDepthReplacing = 12,
  116. ExecutionModeDepthGreater = 14,
  117. ExecutionModeDepthLess = 15,
  118. ExecutionModeDepthUnchanged = 16,
  119. ExecutionModeLocalSize = 17,
  120. ExecutionModeLocalSizeHint = 18,
  121. ExecutionModeInputPoints = 19,
  122. ExecutionModeInputLines = 20,
  123. ExecutionModeInputLinesAdjacency = 21,
  124. ExecutionModeTriangles = 22,
  125. ExecutionModeInputTrianglesAdjacency = 23,
  126. ExecutionModeQuads = 24,
  127. ExecutionModeIsolines = 25,
  128. ExecutionModeOutputVertices = 26,
  129. ExecutionModeOutputPoints = 27,
  130. ExecutionModeOutputLineStrip = 28,
  131. ExecutionModeOutputTriangleStrip = 29,
  132. ExecutionModeVecTypeHint = 30,
  133. ExecutionModeContractionOff = 31,
  134. ExecutionModeInitializer = 33,
  135. ExecutionModeFinalizer = 34,
  136. ExecutionModeSubgroupSize = 35,
  137. ExecutionModeSubgroupsPerWorkgroup = 36,
  138. ExecutionModeSubgroupsPerWorkgroupId = 37,
  139. ExecutionModeLocalSizeId = 38,
  140. ExecutionModeLocalSizeHintId = 39,
  141. ExecutionModePostDepthCoverage = 4446,
  142. ExecutionModeDenormPreserve = 4459,
  143. ExecutionModeDenormFlushToZero = 4460,
  144. ExecutionModeSignedZeroInfNanPreserve = 4461,
  145. ExecutionModeRoundingModeRTE = 4462,
  146. ExecutionModeRoundingModeRTZ = 4463,
  147. ExecutionModeStencilRefReplacingEXT = 5027,
  148. ExecutionModeOutputLinesNV = 5269,
  149. ExecutionModeOutputPrimitivesNV = 5270,
  150. ExecutionModeDerivativeGroupQuadsNV = 5289,
  151. ExecutionModeDerivativeGroupLinearNV = 5290,
  152. ExecutionModeOutputTrianglesNV = 5298,
  153. ExecutionModePixelInterlockOrderedEXT = 5366,
  154. ExecutionModePixelInterlockUnorderedEXT = 5367,
  155. ExecutionModeSampleInterlockOrderedEXT = 5368,
  156. ExecutionModeSampleInterlockUnorderedEXT = 5369,
  157. ExecutionModeShadingRateInterlockOrderedEXT = 5370,
  158. ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
  159. ExecutionModeSharedLocalMemorySizeINTEL = 5618,
  160. ExecutionModeRoundingModeRTPINTEL = 5620,
  161. ExecutionModeRoundingModeRTNINTEL = 5621,
  162. ExecutionModeFloatingPointModeALTINTEL = 5622,
  163. ExecutionModeFloatingPointModeIEEEINTEL = 5623,
  164. ExecutionModeMaxWorkgroupSizeINTEL = 5893,
  165. ExecutionModeMaxWorkDimINTEL = 5894,
  166. ExecutionModeNoGlobalOffsetINTEL = 5895,
  167. ExecutionModeNumSIMDWorkitemsINTEL = 5896,
  168. ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
  169. ExecutionModeMax = 0x7fffffff,
  170. };
  171. enum StorageClass {
  172. StorageClassUniformConstant = 0,
  173. StorageClassInput = 1,
  174. StorageClassUniform = 2,
  175. StorageClassOutput = 3,
  176. StorageClassWorkgroup = 4,
  177. StorageClassCrossWorkgroup = 5,
  178. StorageClassPrivate = 6,
  179. StorageClassFunction = 7,
  180. StorageClassGeneric = 8,
  181. StorageClassPushConstant = 9,
  182. StorageClassAtomicCounter = 10,
  183. StorageClassImage = 11,
  184. StorageClassStorageBuffer = 12,
  185. StorageClassCallableDataKHR = 5328,
  186. StorageClassCallableDataNV = 5328,
  187. StorageClassIncomingCallableDataKHR = 5329,
  188. StorageClassIncomingCallableDataNV = 5329,
  189. StorageClassRayPayloadKHR = 5338,
  190. StorageClassRayPayloadNV = 5338,
  191. StorageClassHitAttributeKHR = 5339,
  192. StorageClassHitAttributeNV = 5339,
  193. StorageClassIncomingRayPayloadKHR = 5342,
  194. StorageClassIncomingRayPayloadNV = 5342,
  195. StorageClassShaderRecordBufferKHR = 5343,
  196. StorageClassShaderRecordBufferNV = 5343,
  197. StorageClassPhysicalStorageBuffer = 5349,
  198. StorageClassPhysicalStorageBufferEXT = 5349,
  199. StorageClassCodeSectionINTEL = 5605,
  200. StorageClassDeviceOnlyINTEL = 5936,
  201. StorageClassHostOnlyINTEL = 5937,
  202. StorageClassMax = 0x7fffffff,
  203. };
  204. enum Dim {
  205. Dim1D = 0,
  206. Dim2D = 1,
  207. Dim3D = 2,
  208. DimCube = 3,
  209. DimRect = 4,
  210. DimBuffer = 5,
  211. DimSubpassData = 6,
  212. DimMax = 0x7fffffff,
  213. };
  214. enum SamplerAddressingMode {
  215. SamplerAddressingModeNone = 0,
  216. SamplerAddressingModeClampToEdge = 1,
  217. SamplerAddressingModeClamp = 2,
  218. SamplerAddressingModeRepeat = 3,
  219. SamplerAddressingModeRepeatMirrored = 4,
  220. SamplerAddressingModeMax = 0x7fffffff,
  221. };
  222. enum SamplerFilterMode {
  223. SamplerFilterModeNearest = 0,
  224. SamplerFilterModeLinear = 1,
  225. SamplerFilterModeMax = 0x7fffffff,
  226. };
  227. enum ImageFormat {
  228. ImageFormatUnknown = 0,
  229. ImageFormatRgba32f = 1,
  230. ImageFormatRgba16f = 2,
  231. ImageFormatR32f = 3,
  232. ImageFormatRgba8 = 4,
  233. ImageFormatRgba8Snorm = 5,
  234. ImageFormatRg32f = 6,
  235. ImageFormatRg16f = 7,
  236. ImageFormatR11fG11fB10f = 8,
  237. ImageFormatR16f = 9,
  238. ImageFormatRgba16 = 10,
  239. ImageFormatRgb10A2 = 11,
  240. ImageFormatRg16 = 12,
  241. ImageFormatRg8 = 13,
  242. ImageFormatR16 = 14,
  243. ImageFormatR8 = 15,
  244. ImageFormatRgba16Snorm = 16,
  245. ImageFormatRg16Snorm = 17,
  246. ImageFormatRg8Snorm = 18,
  247. ImageFormatR16Snorm = 19,
  248. ImageFormatR8Snorm = 20,
  249. ImageFormatRgba32i = 21,
  250. ImageFormatRgba16i = 22,
  251. ImageFormatRgba8i = 23,
  252. ImageFormatR32i = 24,
  253. ImageFormatRg32i = 25,
  254. ImageFormatRg16i = 26,
  255. ImageFormatRg8i = 27,
  256. ImageFormatR16i = 28,
  257. ImageFormatR8i = 29,
  258. ImageFormatRgba32ui = 30,
  259. ImageFormatRgba16ui = 31,
  260. ImageFormatRgba8ui = 32,
  261. ImageFormatR32ui = 33,
  262. ImageFormatRgb10a2ui = 34,
  263. ImageFormatRg32ui = 35,
  264. ImageFormatRg16ui = 36,
  265. ImageFormatRg8ui = 37,
  266. ImageFormatR16ui = 38,
  267. ImageFormatR8ui = 39,
  268. ImageFormatR64ui = 40,
  269. ImageFormatR64i = 41,
  270. ImageFormatMax = 0x7fffffff,
  271. };
  272. enum ImageChannelOrder {
  273. ImageChannelOrderR = 0,
  274. ImageChannelOrderA = 1,
  275. ImageChannelOrderRG = 2,
  276. ImageChannelOrderRA = 3,
  277. ImageChannelOrderRGB = 4,
  278. ImageChannelOrderRGBA = 5,
  279. ImageChannelOrderBGRA = 6,
  280. ImageChannelOrderARGB = 7,
  281. ImageChannelOrderIntensity = 8,
  282. ImageChannelOrderLuminance = 9,
  283. ImageChannelOrderRx = 10,
  284. ImageChannelOrderRGx = 11,
  285. ImageChannelOrderRGBx = 12,
  286. ImageChannelOrderDepth = 13,
  287. ImageChannelOrderDepthStencil = 14,
  288. ImageChannelOrdersRGB = 15,
  289. ImageChannelOrdersRGBx = 16,
  290. ImageChannelOrdersRGBA = 17,
  291. ImageChannelOrdersBGRA = 18,
  292. ImageChannelOrderABGR = 19,
  293. ImageChannelOrderMax = 0x7fffffff,
  294. };
  295. enum ImageChannelDataType {
  296. ImageChannelDataTypeSnormInt8 = 0,
  297. ImageChannelDataTypeSnormInt16 = 1,
  298. ImageChannelDataTypeUnormInt8 = 2,
  299. ImageChannelDataTypeUnormInt16 = 3,
  300. ImageChannelDataTypeUnormShort565 = 4,
  301. ImageChannelDataTypeUnormShort555 = 5,
  302. ImageChannelDataTypeUnormInt101010 = 6,
  303. ImageChannelDataTypeSignedInt8 = 7,
  304. ImageChannelDataTypeSignedInt16 = 8,
  305. ImageChannelDataTypeSignedInt32 = 9,
  306. ImageChannelDataTypeUnsignedInt8 = 10,
  307. ImageChannelDataTypeUnsignedInt16 = 11,
  308. ImageChannelDataTypeUnsignedInt32 = 12,
  309. ImageChannelDataTypeHalfFloat = 13,
  310. ImageChannelDataTypeFloat = 14,
  311. ImageChannelDataTypeUnormInt24 = 15,
  312. ImageChannelDataTypeUnormInt101010_2 = 16,
  313. ImageChannelDataTypeMax = 0x7fffffff,
  314. };
  315. enum ImageOperandsShift {
  316. ImageOperandsBiasShift = 0,
  317. ImageOperandsLodShift = 1,
  318. ImageOperandsGradShift = 2,
  319. ImageOperandsConstOffsetShift = 3,
  320. ImageOperandsOffsetShift = 4,
  321. ImageOperandsConstOffsetsShift = 5,
  322. ImageOperandsSampleShift = 6,
  323. ImageOperandsMinLodShift = 7,
  324. ImageOperandsMakeTexelAvailableShift = 8,
  325. ImageOperandsMakeTexelAvailableKHRShift = 8,
  326. ImageOperandsMakeTexelVisibleShift = 9,
  327. ImageOperandsMakeTexelVisibleKHRShift = 9,
  328. ImageOperandsNonPrivateTexelShift = 10,
  329. ImageOperandsNonPrivateTexelKHRShift = 10,
  330. ImageOperandsVolatileTexelShift = 11,
  331. ImageOperandsVolatileTexelKHRShift = 11,
  332. ImageOperandsSignExtendShift = 12,
  333. ImageOperandsZeroExtendShift = 13,
  334. ImageOperandsMax = 0x7fffffff,
  335. };
  336. enum ImageOperandsMask {
  337. ImageOperandsMaskNone = 0,
  338. ImageOperandsBiasMask = 0x00000001,
  339. ImageOperandsLodMask = 0x00000002,
  340. ImageOperandsGradMask = 0x00000004,
  341. ImageOperandsConstOffsetMask = 0x00000008,
  342. ImageOperandsOffsetMask = 0x00000010,
  343. ImageOperandsConstOffsetsMask = 0x00000020,
  344. ImageOperandsSampleMask = 0x00000040,
  345. ImageOperandsMinLodMask = 0x00000080,
  346. ImageOperandsMakeTexelAvailableMask = 0x00000100,
  347. ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
  348. ImageOperandsMakeTexelVisibleMask = 0x00000200,
  349. ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
  350. ImageOperandsNonPrivateTexelMask = 0x00000400,
  351. ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
  352. ImageOperandsVolatileTexelMask = 0x00000800,
  353. ImageOperandsVolatileTexelKHRMask = 0x00000800,
  354. ImageOperandsSignExtendMask = 0x00001000,
  355. ImageOperandsZeroExtendMask = 0x00002000,
  356. };
  357. enum FPFastMathModeShift {
  358. FPFastMathModeNotNaNShift = 0,
  359. FPFastMathModeNotInfShift = 1,
  360. FPFastMathModeNSZShift = 2,
  361. FPFastMathModeAllowRecipShift = 3,
  362. FPFastMathModeFastShift = 4,
  363. FPFastMathModeAllowContractFastINTELShift = 16,
  364. FPFastMathModeAllowReassocINTELShift = 17,
  365. FPFastMathModeMax = 0x7fffffff,
  366. };
  367. enum FPFastMathModeMask {
  368. FPFastMathModeMaskNone = 0,
  369. FPFastMathModeNotNaNMask = 0x00000001,
  370. FPFastMathModeNotInfMask = 0x00000002,
  371. FPFastMathModeNSZMask = 0x00000004,
  372. FPFastMathModeAllowRecipMask = 0x00000008,
  373. FPFastMathModeFastMask = 0x00000010,
  374. FPFastMathModeAllowContractFastINTELMask = 0x00010000,
  375. FPFastMathModeAllowReassocINTELMask = 0x00020000,
  376. };
  377. enum FPRoundingMode {
  378. FPRoundingModeRTE = 0,
  379. FPRoundingModeRTZ = 1,
  380. FPRoundingModeRTP = 2,
  381. FPRoundingModeRTN = 3,
  382. FPRoundingModeMax = 0x7fffffff,
  383. };
  384. enum LinkageType {
  385. LinkageTypeExport = 0,
  386. LinkageTypeImport = 1,
  387. LinkageTypeMax = 0x7fffffff,
  388. };
  389. enum AccessQualifier {
  390. AccessQualifierReadOnly = 0,
  391. AccessQualifierWriteOnly = 1,
  392. AccessQualifierReadWrite = 2,
  393. AccessQualifierMax = 0x7fffffff,
  394. };
  395. enum FunctionParameterAttribute {
  396. FunctionParameterAttributeZext = 0,
  397. FunctionParameterAttributeSext = 1,
  398. FunctionParameterAttributeByVal = 2,
  399. FunctionParameterAttributeSret = 3,
  400. FunctionParameterAttributeNoAlias = 4,
  401. FunctionParameterAttributeNoCapture = 5,
  402. FunctionParameterAttributeNoWrite = 6,
  403. FunctionParameterAttributeNoReadWrite = 7,
  404. FunctionParameterAttributeMax = 0x7fffffff,
  405. };
  406. enum Decoration {
  407. DecorationRelaxedPrecision = 0,
  408. DecorationSpecId = 1,
  409. DecorationBlock = 2,
  410. DecorationBufferBlock = 3,
  411. DecorationRowMajor = 4,
  412. DecorationColMajor = 5,
  413. DecorationArrayStride = 6,
  414. DecorationMatrixStride = 7,
  415. DecorationGLSLShared = 8,
  416. DecorationGLSLPacked = 9,
  417. DecorationCPacked = 10,
  418. DecorationBuiltIn = 11,
  419. DecorationNoPerspective = 13,
  420. DecorationFlat = 14,
  421. DecorationPatch = 15,
  422. DecorationCentroid = 16,
  423. DecorationSample = 17,
  424. DecorationInvariant = 18,
  425. DecorationRestrict = 19,
  426. DecorationAliased = 20,
  427. DecorationVolatile = 21,
  428. DecorationConstant = 22,
  429. DecorationCoherent = 23,
  430. DecorationNonWritable = 24,
  431. DecorationNonReadable = 25,
  432. DecorationUniform = 26,
  433. DecorationUniformId = 27,
  434. DecorationSaturatedConversion = 28,
  435. DecorationStream = 29,
  436. DecorationLocation = 30,
  437. DecorationComponent = 31,
  438. DecorationIndex = 32,
  439. DecorationBinding = 33,
  440. DecorationDescriptorSet = 34,
  441. DecorationOffset = 35,
  442. DecorationXfbBuffer = 36,
  443. DecorationXfbStride = 37,
  444. DecorationFuncParamAttr = 38,
  445. DecorationFPRoundingMode = 39,
  446. DecorationFPFastMathMode = 40,
  447. DecorationLinkageAttributes = 41,
  448. DecorationNoContraction = 42,
  449. DecorationInputAttachmentIndex = 43,
  450. DecorationAlignment = 44,
  451. DecorationMaxByteOffset = 45,
  452. DecorationAlignmentId = 46,
  453. DecorationMaxByteOffsetId = 47,
  454. DecorationNoSignedWrap = 4469,
  455. DecorationNoUnsignedWrap = 4470,
  456. DecorationExplicitInterpAMD = 4999,
  457. DecorationOverrideCoverageNV = 5248,
  458. DecorationPassthroughNV = 5250,
  459. DecorationViewportRelativeNV = 5252,
  460. DecorationSecondaryViewportRelativeNV = 5256,
  461. DecorationPerPrimitiveNV = 5271,
  462. DecorationPerViewNV = 5272,
  463. DecorationPerTaskNV = 5273,
  464. DecorationPerVertexNV = 5285,
  465. DecorationNonUniform = 5300,
  466. DecorationNonUniformEXT = 5300,
  467. DecorationRestrictPointer = 5355,
  468. DecorationRestrictPointerEXT = 5355,
  469. DecorationAliasedPointer = 5356,
  470. DecorationAliasedPointerEXT = 5356,
  471. DecorationSIMTCallINTEL = 5599,
  472. DecorationReferencedIndirectlyINTEL = 5602,
  473. DecorationClobberINTEL = 5607,
  474. DecorationSideEffectsINTEL = 5608,
  475. DecorationVectorComputeVariableINTEL = 5624,
  476. DecorationFuncParamIOKindINTEL = 5625,
  477. DecorationVectorComputeFunctionINTEL = 5626,
  478. DecorationStackCallINTEL = 5627,
  479. DecorationGlobalVariableOffsetINTEL = 5628,
  480. DecorationCounterBuffer = 5634,
  481. DecorationHlslCounterBufferGOOGLE = 5634,
  482. DecorationHlslSemanticGOOGLE = 5635,
  483. DecorationUserSemantic = 5635,
  484. DecorationUserTypeGOOGLE = 5636,
  485. DecorationFunctionRoundingModeINTEL = 5822,
  486. DecorationFunctionDenormModeINTEL = 5823,
  487. DecorationRegisterINTEL = 5825,
  488. DecorationMemoryINTEL = 5826,
  489. DecorationNumbanksINTEL = 5827,
  490. DecorationBankwidthINTEL = 5828,
  491. DecorationMaxPrivateCopiesINTEL = 5829,
  492. DecorationSinglepumpINTEL = 5830,
  493. DecorationDoublepumpINTEL = 5831,
  494. DecorationMaxReplicatesINTEL = 5832,
  495. DecorationSimpleDualPortINTEL = 5833,
  496. DecorationMergeINTEL = 5834,
  497. DecorationBankBitsINTEL = 5835,
  498. DecorationForcePow2DepthINTEL = 5836,
  499. DecorationBurstCoalesceINTEL = 5899,
  500. DecorationCacheSizeINTEL = 5900,
  501. DecorationDontStaticallyCoalesceINTEL = 5901,
  502. DecorationPrefetchINTEL = 5902,
  503. DecorationStallEnableINTEL = 5905,
  504. DecorationFuseLoopsInFunctionINTEL = 5907,
  505. DecorationBufferLocationINTEL = 5921,
  506. DecorationIOPipeStorageINTEL = 5944,
  507. DecorationFunctionFloatingPointModeINTEL = 6080,
  508. DecorationSingleElementVectorINTEL = 6085,
  509. DecorationVectorComputeCallableFunctionINTEL = 6087,
  510. DecorationMax = 0x7fffffff,
  511. };
  512. enum BuiltIn {
  513. BuiltInPosition = 0,
  514. BuiltInPointSize = 1,
  515. BuiltInClipDistance = 3,
  516. BuiltInCullDistance = 4,
  517. BuiltInVertexId = 5,
  518. BuiltInInstanceId = 6,
  519. BuiltInPrimitiveId = 7,
  520. BuiltInInvocationId = 8,
  521. BuiltInLayer = 9,
  522. BuiltInViewportIndex = 10,
  523. BuiltInTessLevelOuter = 11,
  524. BuiltInTessLevelInner = 12,
  525. BuiltInTessCoord = 13,
  526. BuiltInPatchVertices = 14,
  527. BuiltInFragCoord = 15,
  528. BuiltInPointCoord = 16,
  529. BuiltInFrontFacing = 17,
  530. BuiltInSampleId = 18,
  531. BuiltInSamplePosition = 19,
  532. BuiltInSampleMask = 20,
  533. BuiltInFragDepth = 22,
  534. BuiltInHelperInvocation = 23,
  535. BuiltInNumWorkgroups = 24,
  536. BuiltInWorkgroupSize = 25,
  537. BuiltInWorkgroupId = 26,
  538. BuiltInLocalInvocationId = 27,
  539. BuiltInGlobalInvocationId = 28,
  540. BuiltInLocalInvocationIndex = 29,
  541. BuiltInWorkDim = 30,
  542. BuiltInGlobalSize = 31,
  543. BuiltInEnqueuedWorkgroupSize = 32,
  544. BuiltInGlobalOffset = 33,
  545. BuiltInGlobalLinearId = 34,
  546. BuiltInSubgroupSize = 36,
  547. BuiltInSubgroupMaxSize = 37,
  548. BuiltInNumSubgroups = 38,
  549. BuiltInNumEnqueuedSubgroups = 39,
  550. BuiltInSubgroupId = 40,
  551. BuiltInSubgroupLocalInvocationId = 41,
  552. BuiltInVertexIndex = 42,
  553. BuiltInInstanceIndex = 43,
  554. BuiltInSubgroupEqMask = 4416,
  555. BuiltInSubgroupEqMaskKHR = 4416,
  556. BuiltInSubgroupGeMask = 4417,
  557. BuiltInSubgroupGeMaskKHR = 4417,
  558. BuiltInSubgroupGtMask = 4418,
  559. BuiltInSubgroupGtMaskKHR = 4418,
  560. BuiltInSubgroupLeMask = 4419,
  561. BuiltInSubgroupLeMaskKHR = 4419,
  562. BuiltInSubgroupLtMask = 4420,
  563. BuiltInSubgroupLtMaskKHR = 4420,
  564. BuiltInBaseVertex = 4424,
  565. BuiltInBaseInstance = 4425,
  566. BuiltInDrawIndex = 4426,
  567. BuiltInPrimitiveShadingRateKHR = 4432,
  568. BuiltInDeviceIndex = 4438,
  569. BuiltInViewIndex = 4440,
  570. BuiltInShadingRateKHR = 4444,
  571. BuiltInBaryCoordNoPerspAMD = 4992,
  572. BuiltInBaryCoordNoPerspCentroidAMD = 4993,
  573. BuiltInBaryCoordNoPerspSampleAMD = 4994,
  574. BuiltInBaryCoordSmoothAMD = 4995,
  575. BuiltInBaryCoordSmoothCentroidAMD = 4996,
  576. BuiltInBaryCoordSmoothSampleAMD = 4997,
  577. BuiltInBaryCoordPullModelAMD = 4998,
  578. BuiltInFragStencilRefEXT = 5014,
  579. BuiltInViewportMaskNV = 5253,
  580. BuiltInSecondaryPositionNV = 5257,
  581. BuiltInSecondaryViewportMaskNV = 5258,
  582. BuiltInPositionPerViewNV = 5261,
  583. BuiltInViewportMaskPerViewNV = 5262,
  584. BuiltInFullyCoveredEXT = 5264,
  585. BuiltInTaskCountNV = 5274,
  586. BuiltInPrimitiveCountNV = 5275,
  587. BuiltInPrimitiveIndicesNV = 5276,
  588. BuiltInClipDistancePerViewNV = 5277,
  589. BuiltInCullDistancePerViewNV = 5278,
  590. BuiltInLayerPerViewNV = 5279,
  591. BuiltInMeshViewCountNV = 5280,
  592. BuiltInMeshViewIndicesNV = 5281,
  593. BuiltInBaryCoordNV = 5286,
  594. BuiltInBaryCoordNoPerspNV = 5287,
  595. BuiltInFragSizeEXT = 5292,
  596. BuiltInFragmentSizeNV = 5292,
  597. BuiltInFragInvocationCountEXT = 5293,
  598. BuiltInInvocationsPerPixelNV = 5293,
  599. BuiltInLaunchIdKHR = 5319,
  600. BuiltInLaunchIdNV = 5319,
  601. BuiltInLaunchSizeKHR = 5320,
  602. BuiltInLaunchSizeNV = 5320,
  603. BuiltInWorldRayOriginKHR = 5321,
  604. BuiltInWorldRayOriginNV = 5321,
  605. BuiltInWorldRayDirectionKHR = 5322,
  606. BuiltInWorldRayDirectionNV = 5322,
  607. BuiltInObjectRayOriginKHR = 5323,
  608. BuiltInObjectRayOriginNV = 5323,
  609. BuiltInObjectRayDirectionKHR = 5324,
  610. BuiltInObjectRayDirectionNV = 5324,
  611. BuiltInRayTminKHR = 5325,
  612. BuiltInRayTminNV = 5325,
  613. BuiltInRayTmaxKHR = 5326,
  614. BuiltInRayTmaxNV = 5326,
  615. BuiltInInstanceCustomIndexKHR = 5327,
  616. BuiltInInstanceCustomIndexNV = 5327,
  617. BuiltInObjectToWorldKHR = 5330,
  618. BuiltInObjectToWorldNV = 5330,
  619. BuiltInWorldToObjectKHR = 5331,
  620. BuiltInWorldToObjectNV = 5331,
  621. BuiltInHitTNV = 5332,
  622. BuiltInHitKindKHR = 5333,
  623. BuiltInHitKindNV = 5333,
  624. BuiltInIncomingRayFlagsKHR = 5351,
  625. BuiltInIncomingRayFlagsNV = 5351,
  626. BuiltInRayGeometryIndexKHR = 5352,
  627. BuiltInWarpsPerSMNV = 5374,
  628. BuiltInSMCountNV = 5375,
  629. BuiltInWarpIDNV = 5376,
  630. BuiltInSMIDNV = 5377,
  631. BuiltInMax = 0x7fffffff,
  632. };
  633. enum SelectionControlShift {
  634. SelectionControlFlattenShift = 0,
  635. SelectionControlDontFlattenShift = 1,
  636. SelectionControlMax = 0x7fffffff,
  637. };
  638. enum SelectionControlMask {
  639. SelectionControlMaskNone = 0,
  640. SelectionControlFlattenMask = 0x00000001,
  641. SelectionControlDontFlattenMask = 0x00000002,
  642. };
  643. enum LoopControlShift {
  644. LoopControlUnrollShift = 0,
  645. LoopControlDontUnrollShift = 1,
  646. LoopControlDependencyInfiniteShift = 2,
  647. LoopControlDependencyLengthShift = 3,
  648. LoopControlMinIterationsShift = 4,
  649. LoopControlMaxIterationsShift = 5,
  650. LoopControlIterationMultipleShift = 6,
  651. LoopControlPeelCountShift = 7,
  652. LoopControlPartialCountShift = 8,
  653. LoopControlInitiationIntervalINTELShift = 16,
  654. LoopControlMaxConcurrencyINTELShift = 17,
  655. LoopControlDependencyArrayINTELShift = 18,
  656. LoopControlPipelineEnableINTELShift = 19,
  657. LoopControlLoopCoalesceINTELShift = 20,
  658. LoopControlMaxInterleavingINTELShift = 21,
  659. LoopControlSpeculatedIterationsINTELShift = 22,
  660. LoopControlNoFusionINTELShift = 23,
  661. LoopControlMax = 0x7fffffff,
  662. };
  663. enum LoopControlMask {
  664. LoopControlMaskNone = 0,
  665. LoopControlUnrollMask = 0x00000001,
  666. LoopControlDontUnrollMask = 0x00000002,
  667. LoopControlDependencyInfiniteMask = 0x00000004,
  668. LoopControlDependencyLengthMask = 0x00000008,
  669. LoopControlMinIterationsMask = 0x00000010,
  670. LoopControlMaxIterationsMask = 0x00000020,
  671. LoopControlIterationMultipleMask = 0x00000040,
  672. LoopControlPeelCountMask = 0x00000080,
  673. LoopControlPartialCountMask = 0x00000100,
  674. LoopControlInitiationIntervalINTELMask = 0x00010000,
  675. LoopControlMaxConcurrencyINTELMask = 0x00020000,
  676. LoopControlDependencyArrayINTELMask = 0x00040000,
  677. LoopControlPipelineEnableINTELMask = 0x00080000,
  678. LoopControlLoopCoalesceINTELMask = 0x00100000,
  679. LoopControlMaxInterleavingINTELMask = 0x00200000,
  680. LoopControlSpeculatedIterationsINTELMask = 0x00400000,
  681. LoopControlNoFusionINTELMask = 0x00800000,
  682. };
  683. enum FunctionControlShift {
  684. FunctionControlInlineShift = 0,
  685. FunctionControlDontInlineShift = 1,
  686. FunctionControlPureShift = 2,
  687. FunctionControlConstShift = 3,
  688. FunctionControlMax = 0x7fffffff,
  689. };
  690. enum FunctionControlMask {
  691. FunctionControlMaskNone = 0,
  692. FunctionControlInlineMask = 0x00000001,
  693. FunctionControlDontInlineMask = 0x00000002,
  694. FunctionControlPureMask = 0x00000004,
  695. FunctionControlConstMask = 0x00000008,
  696. };
  697. enum MemorySemanticsShift {
  698. MemorySemanticsAcquireShift = 1,
  699. MemorySemanticsReleaseShift = 2,
  700. MemorySemanticsAcquireReleaseShift = 3,
  701. MemorySemanticsSequentiallyConsistentShift = 4,
  702. MemorySemanticsUniformMemoryShift = 6,
  703. MemorySemanticsSubgroupMemoryShift = 7,
  704. MemorySemanticsWorkgroupMemoryShift = 8,
  705. MemorySemanticsCrossWorkgroupMemoryShift = 9,
  706. MemorySemanticsAtomicCounterMemoryShift = 10,
  707. MemorySemanticsImageMemoryShift = 11,
  708. MemorySemanticsOutputMemoryShift = 12,
  709. MemorySemanticsOutputMemoryKHRShift = 12,
  710. MemorySemanticsMakeAvailableShift = 13,
  711. MemorySemanticsMakeAvailableKHRShift = 13,
  712. MemorySemanticsMakeVisibleShift = 14,
  713. MemorySemanticsMakeVisibleKHRShift = 14,
  714. MemorySemanticsVolatileShift = 15,
  715. MemorySemanticsMax = 0x7fffffff,
  716. };
  717. enum MemorySemanticsMask {
  718. MemorySemanticsMaskNone = 0,
  719. MemorySemanticsAcquireMask = 0x00000002,
  720. MemorySemanticsReleaseMask = 0x00000004,
  721. MemorySemanticsAcquireReleaseMask = 0x00000008,
  722. MemorySemanticsSequentiallyConsistentMask = 0x00000010,
  723. MemorySemanticsUniformMemoryMask = 0x00000040,
  724. MemorySemanticsSubgroupMemoryMask = 0x00000080,
  725. MemorySemanticsWorkgroupMemoryMask = 0x00000100,
  726. MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
  727. MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
  728. MemorySemanticsImageMemoryMask = 0x00000800,
  729. MemorySemanticsOutputMemoryMask = 0x00001000,
  730. MemorySemanticsOutputMemoryKHRMask = 0x00001000,
  731. MemorySemanticsMakeAvailableMask = 0x00002000,
  732. MemorySemanticsMakeAvailableKHRMask = 0x00002000,
  733. MemorySemanticsMakeVisibleMask = 0x00004000,
  734. MemorySemanticsMakeVisibleKHRMask = 0x00004000,
  735. MemorySemanticsVolatileMask = 0x00008000,
  736. };
  737. enum MemoryAccessShift {
  738. MemoryAccessVolatileShift = 0,
  739. MemoryAccessAlignedShift = 1,
  740. MemoryAccessNontemporalShift = 2,
  741. MemoryAccessMakePointerAvailableShift = 3,
  742. MemoryAccessMakePointerAvailableKHRShift = 3,
  743. MemoryAccessMakePointerVisibleShift = 4,
  744. MemoryAccessMakePointerVisibleKHRShift = 4,
  745. MemoryAccessNonPrivatePointerShift = 5,
  746. MemoryAccessNonPrivatePointerKHRShift = 5,
  747. MemoryAccessMax = 0x7fffffff,
  748. };
  749. enum MemoryAccessMask {
  750. MemoryAccessMaskNone = 0,
  751. MemoryAccessVolatileMask = 0x00000001,
  752. MemoryAccessAlignedMask = 0x00000002,
  753. MemoryAccessNontemporalMask = 0x00000004,
  754. MemoryAccessMakePointerAvailableMask = 0x00000008,
  755. MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
  756. MemoryAccessMakePointerVisibleMask = 0x00000010,
  757. MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
  758. MemoryAccessNonPrivatePointerMask = 0x00000020,
  759. MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
  760. };
  761. enum Scope {
  762. ScopeCrossDevice = 0,
  763. ScopeDevice = 1,
  764. ScopeWorkgroup = 2,
  765. ScopeSubgroup = 3,
  766. ScopeInvocation = 4,
  767. ScopeQueueFamily = 5,
  768. ScopeQueueFamilyKHR = 5,
  769. ScopeShaderCallKHR = 6,
  770. ScopeMax = 0x7fffffff,
  771. };
  772. enum GroupOperation {
  773. GroupOperationReduce = 0,
  774. GroupOperationInclusiveScan = 1,
  775. GroupOperationExclusiveScan = 2,
  776. GroupOperationClusteredReduce = 3,
  777. GroupOperationPartitionedReduceNV = 6,
  778. GroupOperationPartitionedInclusiveScanNV = 7,
  779. GroupOperationPartitionedExclusiveScanNV = 8,
  780. GroupOperationMax = 0x7fffffff,
  781. };
  782. enum KernelEnqueueFlags {
  783. KernelEnqueueFlagsNoWait = 0,
  784. KernelEnqueueFlagsWaitKernel = 1,
  785. KernelEnqueueFlagsWaitWorkGroup = 2,
  786. KernelEnqueueFlagsMax = 0x7fffffff,
  787. };
  788. enum KernelProfilingInfoShift {
  789. KernelProfilingInfoCmdExecTimeShift = 0,
  790. KernelProfilingInfoMax = 0x7fffffff,
  791. };
  792. enum KernelProfilingInfoMask {
  793. KernelProfilingInfoMaskNone = 0,
  794. KernelProfilingInfoCmdExecTimeMask = 0x00000001,
  795. };
  796. enum Capability {
  797. CapabilityMatrix = 0,
  798. CapabilityShader = 1,
  799. CapabilityGeometry = 2,
  800. CapabilityTessellation = 3,
  801. CapabilityAddresses = 4,
  802. CapabilityLinkage = 5,
  803. CapabilityKernel = 6,
  804. CapabilityVector16 = 7,
  805. CapabilityFloat16Buffer = 8,
  806. CapabilityFloat16 = 9,
  807. CapabilityFloat64 = 10,
  808. CapabilityInt64 = 11,
  809. CapabilityInt64Atomics = 12,
  810. CapabilityImageBasic = 13,
  811. CapabilityImageReadWrite = 14,
  812. CapabilityImageMipmap = 15,
  813. CapabilityPipes = 17,
  814. CapabilityGroups = 18,
  815. CapabilityDeviceEnqueue = 19,
  816. CapabilityLiteralSampler = 20,
  817. CapabilityAtomicStorage = 21,
  818. CapabilityInt16 = 22,
  819. CapabilityTessellationPointSize = 23,
  820. CapabilityGeometryPointSize = 24,
  821. CapabilityImageGatherExtended = 25,
  822. CapabilityStorageImageMultisample = 27,
  823. CapabilityUniformBufferArrayDynamicIndexing = 28,
  824. CapabilitySampledImageArrayDynamicIndexing = 29,
  825. CapabilityStorageBufferArrayDynamicIndexing = 30,
  826. CapabilityStorageImageArrayDynamicIndexing = 31,
  827. CapabilityClipDistance = 32,
  828. CapabilityCullDistance = 33,
  829. CapabilityImageCubeArray = 34,
  830. CapabilitySampleRateShading = 35,
  831. CapabilityImageRect = 36,
  832. CapabilitySampledRect = 37,
  833. CapabilityGenericPointer = 38,
  834. CapabilityInt8 = 39,
  835. CapabilityInputAttachment = 40,
  836. CapabilitySparseResidency = 41,
  837. CapabilityMinLod = 42,
  838. CapabilitySampled1D = 43,
  839. CapabilityImage1D = 44,
  840. CapabilitySampledCubeArray = 45,
  841. CapabilitySampledBuffer = 46,
  842. CapabilityImageBuffer = 47,
  843. CapabilityImageMSArray = 48,
  844. CapabilityStorageImageExtendedFormats = 49,
  845. CapabilityImageQuery = 50,
  846. CapabilityDerivativeControl = 51,
  847. CapabilityInterpolationFunction = 52,
  848. CapabilityTransformFeedback = 53,
  849. CapabilityGeometryStreams = 54,
  850. CapabilityStorageImageReadWithoutFormat = 55,
  851. CapabilityStorageImageWriteWithoutFormat = 56,
  852. CapabilityMultiViewport = 57,
  853. CapabilitySubgroupDispatch = 58,
  854. CapabilityNamedBarrier = 59,
  855. CapabilityPipeStorage = 60,
  856. CapabilityGroupNonUniform = 61,
  857. CapabilityGroupNonUniformVote = 62,
  858. CapabilityGroupNonUniformArithmetic = 63,
  859. CapabilityGroupNonUniformBallot = 64,
  860. CapabilityGroupNonUniformShuffle = 65,
  861. CapabilityGroupNonUniformShuffleRelative = 66,
  862. CapabilityGroupNonUniformClustered = 67,
  863. CapabilityGroupNonUniformQuad = 68,
  864. CapabilityShaderLayer = 69,
  865. CapabilityShaderViewportIndex = 70,
  866. CapabilityFragmentShadingRateKHR = 4422,
  867. CapabilitySubgroupBallotKHR = 4423,
  868. CapabilityDrawParameters = 4427,
  869. CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
  870. CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
  871. CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
  872. CapabilitySubgroupVoteKHR = 4431,
  873. CapabilityStorageBuffer16BitAccess = 4433,
  874. CapabilityStorageUniformBufferBlock16 = 4433,
  875. CapabilityStorageUniform16 = 4434,
  876. CapabilityUniformAndStorageBuffer16BitAccess = 4434,
  877. CapabilityStoragePushConstant16 = 4435,
  878. CapabilityStorageInputOutput16 = 4436,
  879. CapabilityDeviceGroup = 4437,
  880. CapabilityMultiView = 4439,
  881. CapabilityVariablePointersStorageBuffer = 4441,
  882. CapabilityVariablePointers = 4442,
  883. CapabilityAtomicStorageOps = 4445,
  884. CapabilitySampleMaskPostDepthCoverage = 4447,
  885. CapabilityStorageBuffer8BitAccess = 4448,
  886. CapabilityUniformAndStorageBuffer8BitAccess = 4449,
  887. CapabilityStoragePushConstant8 = 4450,
  888. CapabilityDenormPreserve = 4464,
  889. CapabilityDenormFlushToZero = 4465,
  890. CapabilitySignedZeroInfNanPreserve = 4466,
  891. CapabilityRoundingModeRTE = 4467,
  892. CapabilityRoundingModeRTZ = 4468,
  893. CapabilityRayQueryProvisionalKHR = 4471,
  894. CapabilityRayQueryKHR = 4472,
  895. CapabilityRayTraversalPrimitiveCullingKHR = 4478,
  896. CapabilityRayTracingKHR = 4479,
  897. CapabilityFloat16ImageAMD = 5008,
  898. CapabilityImageGatherBiasLodAMD = 5009,
  899. CapabilityFragmentMaskAMD = 5010,
  900. CapabilityStencilExportEXT = 5013,
  901. CapabilityImageReadWriteLodAMD = 5015,
  902. CapabilityInt64ImageEXT = 5016,
  903. CapabilityShaderClockKHR = 5055,
  904. CapabilitySampleMaskOverrideCoverageNV = 5249,
  905. CapabilityGeometryShaderPassthroughNV = 5251,
  906. CapabilityShaderViewportIndexLayerEXT = 5254,
  907. CapabilityShaderViewportIndexLayerNV = 5254,
  908. CapabilityShaderViewportMaskNV = 5255,
  909. CapabilityShaderStereoViewNV = 5259,
  910. CapabilityPerViewAttributesNV = 5260,
  911. CapabilityFragmentFullyCoveredEXT = 5265,
  912. CapabilityMeshShadingNV = 5266,
  913. CapabilityImageFootprintNV = 5282,
  914. CapabilityFragmentBarycentricNV = 5284,
  915. CapabilityComputeDerivativeGroupQuadsNV = 5288,
  916. CapabilityFragmentDensityEXT = 5291,
  917. CapabilityShadingRateNV = 5291,
  918. CapabilityGroupNonUniformPartitionedNV = 5297,
  919. CapabilityShaderNonUniform = 5301,
  920. CapabilityShaderNonUniformEXT = 5301,
  921. CapabilityRuntimeDescriptorArray = 5302,
  922. CapabilityRuntimeDescriptorArrayEXT = 5302,
  923. CapabilityInputAttachmentArrayDynamicIndexing = 5303,
  924. CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
  925. CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
  926. CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
  927. CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
  928. CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
  929. CapabilityUniformBufferArrayNonUniformIndexing = 5306,
  930. CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
  931. CapabilitySampledImageArrayNonUniformIndexing = 5307,
  932. CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
  933. CapabilityStorageBufferArrayNonUniformIndexing = 5308,
  934. CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
  935. CapabilityStorageImageArrayNonUniformIndexing = 5309,
  936. CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
  937. CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
  938. CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
  939. CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
  940. CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
  941. CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
  942. CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
  943. CapabilityRayTracingNV = 5340,
  944. CapabilityVulkanMemoryModel = 5345,
  945. CapabilityVulkanMemoryModelKHR = 5345,
  946. CapabilityVulkanMemoryModelDeviceScope = 5346,
  947. CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
  948. CapabilityPhysicalStorageBufferAddresses = 5347,
  949. CapabilityPhysicalStorageBufferAddressesEXT = 5347,
  950. CapabilityComputeDerivativeGroupLinearNV = 5350,
  951. CapabilityRayTracingProvisionalKHR = 5353,
  952. CapabilityCooperativeMatrixNV = 5357,
  953. CapabilityFragmentShaderSampleInterlockEXT = 5363,
  954. CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
  955. CapabilityShaderSMBuiltinsNV = 5373,
  956. CapabilityFragmentShaderPixelInterlockEXT = 5378,
  957. CapabilityDemoteToHelperInvocationEXT = 5379,
  958. CapabilitySubgroupShuffleINTEL = 5568,
  959. CapabilitySubgroupBufferBlockIOINTEL = 5569,
  960. CapabilitySubgroupImageBlockIOINTEL = 5570,
  961. CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
  962. CapabilityRoundToInfinityINTEL = 5582,
  963. CapabilityFloatingPointModeINTEL = 5583,
  964. CapabilityIntegerFunctions2INTEL = 5584,
  965. CapabilityFunctionPointersINTEL = 5603,
  966. CapabilityIndirectReferencesINTEL = 5604,
  967. CapabilityAsmINTEL = 5606,
  968. CapabilityVectorComputeINTEL = 5617,
  969. CapabilityVectorAnyINTEL = 5619,
  970. CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
  971. CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
  972. CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
  973. CapabilityVariableLengthArrayINTEL = 5817,
  974. CapabilityFunctionFloatControlINTEL = 5821,
  975. CapabilityFPGAMemoryAttributesINTEL = 5824,
  976. CapabilityFPFastMathModeINTEL = 5837,
  977. CapabilityArbitraryPrecisionIntegersINTEL = 5844,
  978. CapabilityUnstructuredLoopControlsINTEL = 5886,
  979. CapabilityFPGALoopControlsINTEL = 5888,
  980. CapabilityKernelAttributesINTEL = 5892,
  981. CapabilityFPGAKernelAttributesINTEL = 5897,
  982. CapabilityFPGAMemoryAccessesINTEL = 5898,
  983. CapabilityFPGAClusterAttributesINTEL = 5904,
  984. CapabilityLoopFuseINTEL = 5906,
  985. CapabilityFPGABufferLocationINTEL = 5920,
  986. CapabilityUSMStorageClassesINTEL = 5935,
  987. CapabilityIOPipesINTEL = 5943,
  988. CapabilityBlockingPipesINTEL = 5945,
  989. CapabilityFPGARegINTEL = 5948,
  990. CapabilityAtomicFloat32AddEXT = 6033,
  991. CapabilityAtomicFloat64AddEXT = 6034,
  992. CapabilityLongConstantCompositeINTEL = 6089,
  993. CapabilityMax = 0x7fffffff,
  994. };
  995. enum RayFlagsShift {
  996. RayFlagsOpaqueKHRShift = 0,
  997. RayFlagsNoOpaqueKHRShift = 1,
  998. RayFlagsTerminateOnFirstHitKHRShift = 2,
  999. RayFlagsSkipClosestHitShaderKHRShift = 3,
  1000. RayFlagsCullBackFacingTrianglesKHRShift = 4,
  1001. RayFlagsCullFrontFacingTrianglesKHRShift = 5,
  1002. RayFlagsCullOpaqueKHRShift = 6,
  1003. RayFlagsCullNoOpaqueKHRShift = 7,
  1004. RayFlagsSkipTrianglesKHRShift = 8,
  1005. RayFlagsSkipAABBsKHRShift = 9,
  1006. RayFlagsMax = 0x7fffffff,
  1007. };
  1008. enum RayFlagsMask {
  1009. RayFlagsMaskNone = 0,
  1010. RayFlagsOpaqueKHRMask = 0x00000001,
  1011. RayFlagsNoOpaqueKHRMask = 0x00000002,
  1012. RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
  1013. RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
  1014. RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
  1015. RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
  1016. RayFlagsCullOpaqueKHRMask = 0x00000040,
  1017. RayFlagsCullNoOpaqueKHRMask = 0x00000080,
  1018. RayFlagsSkipTrianglesKHRMask = 0x00000100,
  1019. RayFlagsSkipAABBsKHRMask = 0x00000200,
  1020. };
  1021. enum RayQueryIntersection {
  1022. RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
  1023. RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
  1024. RayQueryIntersectionMax = 0x7fffffff,
  1025. };
  1026. enum RayQueryCommittedIntersectionType {
  1027. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
  1028. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
  1029. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
  1030. RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
  1031. };
  1032. enum RayQueryCandidateIntersectionType {
  1033. RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
  1034. RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
  1035. RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
  1036. };
  1037. enum FragmentShadingRateShift {
  1038. FragmentShadingRateVertical2PixelsShift = 0,
  1039. FragmentShadingRateVertical4PixelsShift = 1,
  1040. FragmentShadingRateHorizontal2PixelsShift = 2,
  1041. FragmentShadingRateHorizontal4PixelsShift = 3,
  1042. FragmentShadingRateMax = 0x7fffffff,
  1043. };
  1044. enum FragmentShadingRateMask {
  1045. FragmentShadingRateMaskNone = 0,
  1046. FragmentShadingRateVertical2PixelsMask = 0x00000001,
  1047. FragmentShadingRateVertical4PixelsMask = 0x00000002,
  1048. FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
  1049. FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
  1050. };
  1051. enum FPDenormMode {
  1052. FPDenormModePreserve = 0,
  1053. FPDenormModeFlushToZero = 1,
  1054. FPDenormModeMax = 0x7fffffff,
  1055. };
  1056. enum FPOperationMode {
  1057. FPOperationModeIEEE = 0,
  1058. FPOperationModeALT = 1,
  1059. FPOperationModeMax = 0x7fffffff,
  1060. };
  1061. enum Op {
  1062. OpNop = 0,
  1063. OpUndef = 1,
  1064. OpSourceContinued = 2,
  1065. OpSource = 3,
  1066. OpSourceExtension = 4,
  1067. OpName = 5,
  1068. OpMemberName = 6,
  1069. OpString = 7,
  1070. OpLine = 8,
  1071. OpExtension = 10,
  1072. OpExtInstImport = 11,
  1073. OpExtInst = 12,
  1074. OpMemoryModel = 14,
  1075. OpEntryPoint = 15,
  1076. OpExecutionMode = 16,
  1077. OpCapability = 17,
  1078. OpTypeVoid = 19,
  1079. OpTypeBool = 20,
  1080. OpTypeInt = 21,
  1081. OpTypeFloat = 22,
  1082. OpTypeVector = 23,
  1083. OpTypeMatrix = 24,
  1084. OpTypeImage = 25,
  1085. OpTypeSampler = 26,
  1086. OpTypeSampledImage = 27,
  1087. OpTypeArray = 28,
  1088. OpTypeRuntimeArray = 29,
  1089. OpTypeStruct = 30,
  1090. OpTypeOpaque = 31,
  1091. OpTypePointer = 32,
  1092. OpTypeFunction = 33,
  1093. OpTypeEvent = 34,
  1094. OpTypeDeviceEvent = 35,
  1095. OpTypeReserveId = 36,
  1096. OpTypeQueue = 37,
  1097. OpTypePipe = 38,
  1098. OpTypeForwardPointer = 39,
  1099. OpConstantTrue = 41,
  1100. OpConstantFalse = 42,
  1101. OpConstant = 43,
  1102. OpConstantComposite = 44,
  1103. OpConstantSampler = 45,
  1104. OpConstantNull = 46,
  1105. OpSpecConstantTrue = 48,
  1106. OpSpecConstantFalse = 49,
  1107. OpSpecConstant = 50,
  1108. OpSpecConstantComposite = 51,
  1109. OpSpecConstantOp = 52,
  1110. OpFunction = 54,
  1111. OpFunctionParameter = 55,
  1112. OpFunctionEnd = 56,
  1113. OpFunctionCall = 57,
  1114. OpVariable = 59,
  1115. OpImageTexelPointer = 60,
  1116. OpLoad = 61,
  1117. OpStore = 62,
  1118. OpCopyMemory = 63,
  1119. OpCopyMemorySized = 64,
  1120. OpAccessChain = 65,
  1121. OpInBoundsAccessChain = 66,
  1122. OpPtrAccessChain = 67,
  1123. OpArrayLength = 68,
  1124. OpGenericPtrMemSemantics = 69,
  1125. OpInBoundsPtrAccessChain = 70,
  1126. OpDecorate = 71,
  1127. OpMemberDecorate = 72,
  1128. OpDecorationGroup = 73,
  1129. OpGroupDecorate = 74,
  1130. OpGroupMemberDecorate = 75,
  1131. OpVectorExtractDynamic = 77,
  1132. OpVectorInsertDynamic = 78,
  1133. OpVectorShuffle = 79,
  1134. OpCompositeConstruct = 80,
  1135. OpCompositeExtract = 81,
  1136. OpCompositeInsert = 82,
  1137. OpCopyObject = 83,
  1138. OpTranspose = 84,
  1139. OpSampledImage = 86,
  1140. OpImageSampleImplicitLod = 87,
  1141. OpImageSampleExplicitLod = 88,
  1142. OpImageSampleDrefImplicitLod = 89,
  1143. OpImageSampleDrefExplicitLod = 90,
  1144. OpImageSampleProjImplicitLod = 91,
  1145. OpImageSampleProjExplicitLod = 92,
  1146. OpImageSampleProjDrefImplicitLod = 93,
  1147. OpImageSampleProjDrefExplicitLod = 94,
  1148. OpImageFetch = 95,
  1149. OpImageGather = 96,
  1150. OpImageDrefGather = 97,
  1151. OpImageRead = 98,
  1152. OpImageWrite = 99,
  1153. OpImage = 100,
  1154. OpImageQueryFormat = 101,
  1155. OpImageQueryOrder = 102,
  1156. OpImageQuerySizeLod = 103,
  1157. OpImageQuerySize = 104,
  1158. OpImageQueryLod = 105,
  1159. OpImageQueryLevels = 106,
  1160. OpImageQuerySamples = 107,
  1161. OpConvertFToU = 109,
  1162. OpConvertFToS = 110,
  1163. OpConvertSToF = 111,
  1164. OpConvertUToF = 112,
  1165. OpUConvert = 113,
  1166. OpSConvert = 114,
  1167. OpFConvert = 115,
  1168. OpQuantizeToF16 = 116,
  1169. OpConvertPtrToU = 117,
  1170. OpSatConvertSToU = 118,
  1171. OpSatConvertUToS = 119,
  1172. OpConvertUToPtr = 120,
  1173. OpPtrCastToGeneric = 121,
  1174. OpGenericCastToPtr = 122,
  1175. OpGenericCastToPtrExplicit = 123,
  1176. OpBitcast = 124,
  1177. OpSNegate = 126,
  1178. OpFNegate = 127,
  1179. OpIAdd = 128,
  1180. OpFAdd = 129,
  1181. OpISub = 130,
  1182. OpFSub = 131,
  1183. OpIMul = 132,
  1184. OpFMul = 133,
  1185. OpUDiv = 134,
  1186. OpSDiv = 135,
  1187. OpFDiv = 136,
  1188. OpUMod = 137,
  1189. OpSRem = 138,
  1190. OpSMod = 139,
  1191. OpFRem = 140,
  1192. OpFMod = 141,
  1193. OpVectorTimesScalar = 142,
  1194. OpMatrixTimesScalar = 143,
  1195. OpVectorTimesMatrix = 144,
  1196. OpMatrixTimesVector = 145,
  1197. OpMatrixTimesMatrix = 146,
  1198. OpOuterProduct = 147,
  1199. OpDot = 148,
  1200. OpIAddCarry = 149,
  1201. OpISubBorrow = 150,
  1202. OpUMulExtended = 151,
  1203. OpSMulExtended = 152,
  1204. OpAny = 154,
  1205. OpAll = 155,
  1206. OpIsNan = 156,
  1207. OpIsInf = 157,
  1208. OpIsFinite = 158,
  1209. OpIsNormal = 159,
  1210. OpSignBitSet = 160,
  1211. OpLessOrGreater = 161,
  1212. OpOrdered = 162,
  1213. OpUnordered = 163,
  1214. OpLogicalEqual = 164,
  1215. OpLogicalNotEqual = 165,
  1216. OpLogicalOr = 166,
  1217. OpLogicalAnd = 167,
  1218. OpLogicalNot = 168,
  1219. OpSelect = 169,
  1220. OpIEqual = 170,
  1221. OpINotEqual = 171,
  1222. OpUGreaterThan = 172,
  1223. OpSGreaterThan = 173,
  1224. OpUGreaterThanEqual = 174,
  1225. OpSGreaterThanEqual = 175,
  1226. OpULessThan = 176,
  1227. OpSLessThan = 177,
  1228. OpULessThanEqual = 178,
  1229. OpSLessThanEqual = 179,
  1230. OpFOrdEqual = 180,
  1231. OpFUnordEqual = 181,
  1232. OpFOrdNotEqual = 182,
  1233. OpFUnordNotEqual = 183,
  1234. OpFOrdLessThan = 184,
  1235. OpFUnordLessThan = 185,
  1236. OpFOrdGreaterThan = 186,
  1237. OpFUnordGreaterThan = 187,
  1238. OpFOrdLessThanEqual = 188,
  1239. OpFUnordLessThanEqual = 189,
  1240. OpFOrdGreaterThanEqual = 190,
  1241. OpFUnordGreaterThanEqual = 191,
  1242. OpShiftRightLogical = 194,
  1243. OpShiftRightArithmetic = 195,
  1244. OpShiftLeftLogical = 196,
  1245. OpBitwiseOr = 197,
  1246. OpBitwiseXor = 198,
  1247. OpBitwiseAnd = 199,
  1248. OpNot = 200,
  1249. OpBitFieldInsert = 201,
  1250. OpBitFieldSExtract = 202,
  1251. OpBitFieldUExtract = 203,
  1252. OpBitReverse = 204,
  1253. OpBitCount = 205,
  1254. OpDPdx = 207,
  1255. OpDPdy = 208,
  1256. OpFwidth = 209,
  1257. OpDPdxFine = 210,
  1258. OpDPdyFine = 211,
  1259. OpFwidthFine = 212,
  1260. OpDPdxCoarse = 213,
  1261. OpDPdyCoarse = 214,
  1262. OpFwidthCoarse = 215,
  1263. OpEmitVertex = 218,
  1264. OpEndPrimitive = 219,
  1265. OpEmitStreamVertex = 220,
  1266. OpEndStreamPrimitive = 221,
  1267. OpControlBarrier = 224,
  1268. OpMemoryBarrier = 225,
  1269. OpAtomicLoad = 227,
  1270. OpAtomicStore = 228,
  1271. OpAtomicExchange = 229,
  1272. OpAtomicCompareExchange = 230,
  1273. OpAtomicCompareExchangeWeak = 231,
  1274. OpAtomicIIncrement = 232,
  1275. OpAtomicIDecrement = 233,
  1276. OpAtomicIAdd = 234,
  1277. OpAtomicISub = 235,
  1278. OpAtomicSMin = 236,
  1279. OpAtomicUMin = 237,
  1280. OpAtomicSMax = 238,
  1281. OpAtomicUMax = 239,
  1282. OpAtomicAnd = 240,
  1283. OpAtomicOr = 241,
  1284. OpAtomicXor = 242,
  1285. OpPhi = 245,
  1286. OpLoopMerge = 246,
  1287. OpSelectionMerge = 247,
  1288. OpLabel = 248,
  1289. OpBranch = 249,
  1290. OpBranchConditional = 250,
  1291. OpSwitch = 251,
  1292. OpKill = 252,
  1293. OpReturn = 253,
  1294. OpReturnValue = 254,
  1295. OpUnreachable = 255,
  1296. OpLifetimeStart = 256,
  1297. OpLifetimeStop = 257,
  1298. OpGroupAsyncCopy = 259,
  1299. OpGroupWaitEvents = 260,
  1300. OpGroupAll = 261,
  1301. OpGroupAny = 262,
  1302. OpGroupBroadcast = 263,
  1303. OpGroupIAdd = 264,
  1304. OpGroupFAdd = 265,
  1305. OpGroupFMin = 266,
  1306. OpGroupUMin = 267,
  1307. OpGroupSMin = 268,
  1308. OpGroupFMax = 269,
  1309. OpGroupUMax = 270,
  1310. OpGroupSMax = 271,
  1311. OpReadPipe = 274,
  1312. OpWritePipe = 275,
  1313. OpReservedReadPipe = 276,
  1314. OpReservedWritePipe = 277,
  1315. OpReserveReadPipePackets = 278,
  1316. OpReserveWritePipePackets = 279,
  1317. OpCommitReadPipe = 280,
  1318. OpCommitWritePipe = 281,
  1319. OpIsValidReserveId = 282,
  1320. OpGetNumPipePackets = 283,
  1321. OpGetMaxPipePackets = 284,
  1322. OpGroupReserveReadPipePackets = 285,
  1323. OpGroupReserveWritePipePackets = 286,
  1324. OpGroupCommitReadPipe = 287,
  1325. OpGroupCommitWritePipe = 288,
  1326. OpEnqueueMarker = 291,
  1327. OpEnqueueKernel = 292,
  1328. OpGetKernelNDrangeSubGroupCount = 293,
  1329. OpGetKernelNDrangeMaxSubGroupSize = 294,
  1330. OpGetKernelWorkGroupSize = 295,
  1331. OpGetKernelPreferredWorkGroupSizeMultiple = 296,
  1332. OpRetainEvent = 297,
  1333. OpReleaseEvent = 298,
  1334. OpCreateUserEvent = 299,
  1335. OpIsValidEvent = 300,
  1336. OpSetUserEventStatus = 301,
  1337. OpCaptureEventProfilingInfo = 302,
  1338. OpGetDefaultQueue = 303,
  1339. OpBuildNDRange = 304,
  1340. OpImageSparseSampleImplicitLod = 305,
  1341. OpImageSparseSampleExplicitLod = 306,
  1342. OpImageSparseSampleDrefImplicitLod = 307,
  1343. OpImageSparseSampleDrefExplicitLod = 308,
  1344. OpImageSparseSampleProjImplicitLod = 309,
  1345. OpImageSparseSampleProjExplicitLod = 310,
  1346. OpImageSparseSampleProjDrefImplicitLod = 311,
  1347. OpImageSparseSampleProjDrefExplicitLod = 312,
  1348. OpImageSparseFetch = 313,
  1349. OpImageSparseGather = 314,
  1350. OpImageSparseDrefGather = 315,
  1351. OpImageSparseTexelsResident = 316,
  1352. OpNoLine = 317,
  1353. OpAtomicFlagTestAndSet = 318,
  1354. OpAtomicFlagClear = 319,
  1355. OpImageSparseRead = 320,
  1356. OpSizeOf = 321,
  1357. OpTypePipeStorage = 322,
  1358. OpConstantPipeStorage = 323,
  1359. OpCreatePipeFromPipeStorage = 324,
  1360. OpGetKernelLocalSizeForSubgroupCount = 325,
  1361. OpGetKernelMaxNumSubgroups = 326,
  1362. OpTypeNamedBarrier = 327,
  1363. OpNamedBarrierInitialize = 328,
  1364. OpMemoryNamedBarrier = 329,
  1365. OpModuleProcessed = 330,
  1366. OpExecutionModeId = 331,
  1367. OpDecorateId = 332,
  1368. OpGroupNonUniformElect = 333,
  1369. OpGroupNonUniformAll = 334,
  1370. OpGroupNonUniformAny = 335,
  1371. OpGroupNonUniformAllEqual = 336,
  1372. OpGroupNonUniformBroadcast = 337,
  1373. OpGroupNonUniformBroadcastFirst = 338,
  1374. OpGroupNonUniformBallot = 339,
  1375. OpGroupNonUniformInverseBallot = 340,
  1376. OpGroupNonUniformBallotBitExtract = 341,
  1377. OpGroupNonUniformBallotBitCount = 342,
  1378. OpGroupNonUniformBallotFindLSB = 343,
  1379. OpGroupNonUniformBallotFindMSB = 344,
  1380. OpGroupNonUniformShuffle = 345,
  1381. OpGroupNonUniformShuffleXor = 346,
  1382. OpGroupNonUniformShuffleUp = 347,
  1383. OpGroupNonUniformShuffleDown = 348,
  1384. OpGroupNonUniformIAdd = 349,
  1385. OpGroupNonUniformFAdd = 350,
  1386. OpGroupNonUniformIMul = 351,
  1387. OpGroupNonUniformFMul = 352,
  1388. OpGroupNonUniformSMin = 353,
  1389. OpGroupNonUniformUMin = 354,
  1390. OpGroupNonUniformFMin = 355,
  1391. OpGroupNonUniformSMax = 356,
  1392. OpGroupNonUniformUMax = 357,
  1393. OpGroupNonUniformFMax = 358,
  1394. OpGroupNonUniformBitwiseAnd = 359,
  1395. OpGroupNonUniformBitwiseOr = 360,
  1396. OpGroupNonUniformBitwiseXor = 361,
  1397. OpGroupNonUniformLogicalAnd = 362,
  1398. OpGroupNonUniformLogicalOr = 363,
  1399. OpGroupNonUniformLogicalXor = 364,
  1400. OpGroupNonUniformQuadBroadcast = 365,
  1401. OpGroupNonUniformQuadSwap = 366,
  1402. OpCopyLogical = 400,
  1403. OpPtrEqual = 401,
  1404. OpPtrNotEqual = 402,
  1405. OpPtrDiff = 403,
  1406. OpTerminateInvocation = 4416,
  1407. OpSubgroupBallotKHR = 4421,
  1408. OpSubgroupFirstInvocationKHR = 4422,
  1409. OpSubgroupAllKHR = 4428,
  1410. OpSubgroupAnyKHR = 4429,
  1411. OpSubgroupAllEqualKHR = 4430,
  1412. OpSubgroupReadInvocationKHR = 4432,
  1413. OpTraceRayKHR = 4445,
  1414. OpExecuteCallableKHR = 4446,
  1415. OpConvertUToAccelerationStructureKHR = 4447,
  1416. OpIgnoreIntersectionKHR = 4448,
  1417. OpTerminateRayKHR = 4449,
  1418. OpTypeRayQueryKHR = 4472,
  1419. OpRayQueryInitializeKHR = 4473,
  1420. OpRayQueryTerminateKHR = 4474,
  1421. OpRayQueryGenerateIntersectionKHR = 4475,
  1422. OpRayQueryConfirmIntersectionKHR = 4476,
  1423. OpRayQueryProceedKHR = 4477,
  1424. OpRayQueryGetIntersectionTypeKHR = 4479,
  1425. OpGroupIAddNonUniformAMD = 5000,
  1426. OpGroupFAddNonUniformAMD = 5001,
  1427. OpGroupFMinNonUniformAMD = 5002,
  1428. OpGroupUMinNonUniformAMD = 5003,
  1429. OpGroupSMinNonUniformAMD = 5004,
  1430. OpGroupFMaxNonUniformAMD = 5005,
  1431. OpGroupUMaxNonUniformAMD = 5006,
  1432. OpGroupSMaxNonUniformAMD = 5007,
  1433. OpFragmentMaskFetchAMD = 5011,
  1434. OpFragmentFetchAMD = 5012,
  1435. OpReadClockKHR = 5056,
  1436. OpImageSampleFootprintNV = 5283,
  1437. OpGroupNonUniformPartitionNV = 5296,
  1438. OpWritePackedPrimitiveIndices4x8NV = 5299,
  1439. OpReportIntersectionKHR = 5334,
  1440. OpReportIntersectionNV = 5334,
  1441. OpIgnoreIntersectionNV = 5335,
  1442. OpTerminateRayNV = 5336,
  1443. OpTraceNV = 5337,
  1444. OpTypeAccelerationStructureKHR = 5341,
  1445. OpTypeAccelerationStructureNV = 5341,
  1446. OpExecuteCallableNV = 5344,
  1447. OpTypeCooperativeMatrixNV = 5358,
  1448. OpCooperativeMatrixLoadNV = 5359,
  1449. OpCooperativeMatrixStoreNV = 5360,
  1450. OpCooperativeMatrixMulAddNV = 5361,
  1451. OpCooperativeMatrixLengthNV = 5362,
  1452. OpBeginInvocationInterlockEXT = 5364,
  1453. OpEndInvocationInterlockEXT = 5365,
  1454. OpDemoteToHelperInvocationEXT = 5380,
  1455. OpIsHelperInvocationEXT = 5381,
  1456. OpSubgroupShuffleINTEL = 5571,
  1457. OpSubgroupShuffleDownINTEL = 5572,
  1458. OpSubgroupShuffleUpINTEL = 5573,
  1459. OpSubgroupShuffleXorINTEL = 5574,
  1460. OpSubgroupBlockReadINTEL = 5575,
  1461. OpSubgroupBlockWriteINTEL = 5576,
  1462. OpSubgroupImageBlockReadINTEL = 5577,
  1463. OpSubgroupImageBlockWriteINTEL = 5578,
  1464. OpSubgroupImageMediaBlockReadINTEL = 5580,
  1465. OpSubgroupImageMediaBlockWriteINTEL = 5581,
  1466. OpUCountLeadingZerosINTEL = 5585,
  1467. OpUCountTrailingZerosINTEL = 5586,
  1468. OpAbsISubINTEL = 5587,
  1469. OpAbsUSubINTEL = 5588,
  1470. OpIAddSatINTEL = 5589,
  1471. OpUAddSatINTEL = 5590,
  1472. OpIAverageINTEL = 5591,
  1473. OpUAverageINTEL = 5592,
  1474. OpIAverageRoundedINTEL = 5593,
  1475. OpUAverageRoundedINTEL = 5594,
  1476. OpISubSatINTEL = 5595,
  1477. OpUSubSatINTEL = 5596,
  1478. OpIMul32x16INTEL = 5597,
  1479. OpUMul32x16INTEL = 5598,
  1480. OpConstFunctionPointerINTEL = 5600,
  1481. OpFunctionPointerCallINTEL = 5601,
  1482. OpAsmTargetINTEL = 5609,
  1483. OpAsmINTEL = 5610,
  1484. OpAsmCallINTEL = 5611,
  1485. OpDecorateString = 5632,
  1486. OpDecorateStringGOOGLE = 5632,
  1487. OpMemberDecorateString = 5633,
  1488. OpMemberDecorateStringGOOGLE = 5633,
  1489. OpVmeImageINTEL = 5699,
  1490. OpTypeVmeImageINTEL = 5700,
  1491. OpTypeAvcImePayloadINTEL = 5701,
  1492. OpTypeAvcRefPayloadINTEL = 5702,
  1493. OpTypeAvcSicPayloadINTEL = 5703,
  1494. OpTypeAvcMcePayloadINTEL = 5704,
  1495. OpTypeAvcMceResultINTEL = 5705,
  1496. OpTypeAvcImeResultINTEL = 5706,
  1497. OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
  1498. OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
  1499. OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
  1500. OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
  1501. OpTypeAvcRefResultINTEL = 5711,
  1502. OpTypeAvcSicResultINTEL = 5712,
  1503. OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
  1504. OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
  1505. OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
  1506. OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
  1507. OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
  1508. OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
  1509. OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
  1510. OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
  1511. OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
  1512. OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
  1513. OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
  1514. OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
  1515. OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
  1516. OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
  1517. OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
  1518. OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
  1519. OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
  1520. OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
  1521. OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
  1522. OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
  1523. OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
  1524. OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
  1525. OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
  1526. OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
  1527. OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
  1528. OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
  1529. OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
  1530. OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
  1531. OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
  1532. OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
  1533. OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
  1534. OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
  1535. OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
  1536. OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
  1537. OpSubgroupAvcImeInitializeINTEL = 5747,
  1538. OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
  1539. OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
  1540. OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
  1541. OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
  1542. OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
  1543. OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
  1544. OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
  1545. OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
  1546. OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
  1547. OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
  1548. OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
  1549. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
  1550. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
  1551. OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
  1552. OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
  1553. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
  1554. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
  1555. OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
  1556. OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
  1557. OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
  1558. OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
  1559. OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
  1560. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
  1561. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
  1562. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
  1563. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
  1564. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
  1565. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
  1566. OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
  1567. OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
  1568. OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
  1569. OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
  1570. OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
  1571. OpSubgroupAvcFmeInitializeINTEL = 5781,
  1572. OpSubgroupAvcBmeInitializeINTEL = 5782,
  1573. OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
  1574. OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
  1575. OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
  1576. OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
  1577. OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
  1578. OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
  1579. OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
  1580. OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
  1581. OpSubgroupAvcSicInitializeINTEL = 5791,
  1582. OpSubgroupAvcSicConfigureSkcINTEL = 5792,
  1583. OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
  1584. OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
  1585. OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
  1586. OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
  1587. OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
  1588. OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
  1589. OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
  1590. OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
  1591. OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
  1592. OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
  1593. OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
  1594. OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
  1595. OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
  1596. OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
  1597. OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
  1598. OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
  1599. OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
  1600. OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
  1601. OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
  1602. OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
  1603. OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
  1604. OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
  1605. OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
  1606. OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
  1607. OpVariableLengthArrayINTEL = 5818,
  1608. OpSaveMemoryINTEL = 5819,
  1609. OpRestoreMemoryINTEL = 5820,
  1610. OpLoopControlINTEL = 5887,
  1611. OpPtrCastToCrossWorkgroupINTEL = 5934,
  1612. OpCrossWorkgroupCastToPtrINTEL = 5938,
  1613. OpReadPipeBlockingINTEL = 5946,
  1614. OpWritePipeBlockingINTEL = 5947,
  1615. OpFPGARegINTEL = 5949,
  1616. OpRayQueryGetRayTMinKHR = 6016,
  1617. OpRayQueryGetRayFlagsKHR = 6017,
  1618. OpRayQueryGetIntersectionTKHR = 6018,
  1619. OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
  1620. OpRayQueryGetIntersectionInstanceIdKHR = 6020,
  1621. OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
  1622. OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
  1623. OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
  1624. OpRayQueryGetIntersectionBarycentricsKHR = 6024,
  1625. OpRayQueryGetIntersectionFrontFaceKHR = 6025,
  1626. OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
  1627. OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
  1628. OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
  1629. OpRayQueryGetWorldRayDirectionKHR = 6029,
  1630. OpRayQueryGetWorldRayOriginKHR = 6030,
  1631. OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
  1632. OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
  1633. OpAtomicFAddEXT = 6035,
  1634. OpTypeBufferSurfaceINTEL = 6086,
  1635. OpTypeStructContinuedINTEL = 6090,
  1636. OpConstantCompositeContinuedINTEL = 6091,
  1637. OpSpecConstantCompositeContinuedINTEL = 6092,
  1638. OpMax = 0x7fffffff,
  1639. };
  1640. #ifdef SPV_ENABLE_UTILITY_CODE
  1641. inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
  1642. *hasResult = *hasResultType = false;
  1643. switch (opcode) {
  1644. default: /* unknown opcode */ break;
  1645. case OpNop: *hasResult = false; *hasResultType = false; break;
  1646. case OpUndef: *hasResult = true; *hasResultType = true; break;
  1647. case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
  1648. case OpSource: *hasResult = false; *hasResultType = false; break;
  1649. case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
  1650. case OpName: *hasResult = false; *hasResultType = false; break;
  1651. case OpMemberName: *hasResult = false; *hasResultType = false; break;
  1652. case OpString: *hasResult = true; *hasResultType = false; break;
  1653. case OpLine: *hasResult = false; *hasResultType = false; break;
  1654. case OpExtension: *hasResult = false; *hasResultType = false; break;
  1655. case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
  1656. case OpExtInst: *hasResult = true; *hasResultType = true; break;
  1657. case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
  1658. case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
  1659. case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
  1660. case OpCapability: *hasResult = false; *hasResultType = false; break;
  1661. case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
  1662. case OpTypeBool: *hasResult = true; *hasResultType = false; break;
  1663. case OpTypeInt: *hasResult = true; *hasResultType = false; break;
  1664. case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
  1665. case OpTypeVector: *hasResult = true; *hasResultType = false; break;
  1666. case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
  1667. case OpTypeImage: *hasResult = true; *hasResultType = false; break;
  1668. case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
  1669. case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
  1670. case OpTypeArray: *hasResult = true; *hasResultType = false; break;
  1671. case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
  1672. case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
  1673. case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
  1674. case OpTypePointer: *hasResult = true; *hasResultType = false; break;
  1675. case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
  1676. case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
  1677. case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
  1678. case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
  1679. case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
  1680. case OpTypePipe: *hasResult = true; *hasResultType = false; break;
  1681. case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
  1682. case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
  1683. case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
  1684. case OpConstant: *hasResult = true; *hasResultType = true; break;
  1685. case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
  1686. case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
  1687. case OpConstantNull: *hasResult = true; *hasResultType = true; break;
  1688. case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
  1689. case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
  1690. case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
  1691. case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
  1692. case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
  1693. case OpFunction: *hasResult = true; *hasResultType = true; break;
  1694. case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
  1695. case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
  1696. case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
  1697. case OpVariable: *hasResult = true; *hasResultType = true; break;
  1698. case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
  1699. case OpLoad: *hasResult = true; *hasResultType = true; break;
  1700. case OpStore: *hasResult = false; *hasResultType = false; break;
  1701. case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
  1702. case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
  1703. case OpAccessChain: *hasResult = true; *hasResultType = true; break;
  1704. case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
  1705. case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  1706. case OpArrayLength: *hasResult = true; *hasResultType = true; break;
  1707. case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
  1708. case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  1709. case OpDecorate: *hasResult = false; *hasResultType = false; break;
  1710. case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
  1711. case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
  1712. case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
  1713. case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
  1714. case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
  1715. case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
  1716. case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
  1717. case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
  1718. case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
  1719. case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
  1720. case OpCopyObject: *hasResult = true; *hasResultType = true; break;
  1721. case OpTranspose: *hasResult = true; *hasResultType = true; break;
  1722. case OpSampledImage: *hasResult = true; *hasResultType = true; break;
  1723. case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  1724. case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  1725. case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1726. case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1727. case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  1728. case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  1729. case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1730. case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1731. case OpImageFetch: *hasResult = true; *hasResultType = true; break;
  1732. case OpImageGather: *hasResult = true; *hasResultType = true; break;
  1733. case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
  1734. case OpImageRead: *hasResult = true; *hasResultType = true; break;
  1735. case OpImageWrite: *hasResult = false; *hasResultType = false; break;
  1736. case OpImage: *hasResult = true; *hasResultType = true; break;
  1737. case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
  1738. case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
  1739. case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
  1740. case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
  1741. case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
  1742. case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
  1743. case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
  1744. case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
  1745. case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
  1746. case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
  1747. case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
  1748. case OpUConvert: *hasResult = true; *hasResultType = true; break;
  1749. case OpSConvert: *hasResult = true; *hasResultType = true; break;
  1750. case OpFConvert: *hasResult = true; *hasResultType = true; break;
  1751. case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
  1752. case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
  1753. case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
  1754. case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
  1755. case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
  1756. case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
  1757. case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
  1758. case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
  1759. case OpBitcast: *hasResult = true; *hasResultType = true; break;
  1760. case OpSNegate: *hasResult = true; *hasResultType = true; break;
  1761. case OpFNegate: *hasResult = true; *hasResultType = true; break;
  1762. case OpIAdd: *hasResult = true; *hasResultType = true; break;
  1763. case OpFAdd: *hasResult = true; *hasResultType = true; break;
  1764. case OpISub: *hasResult = true; *hasResultType = true; break;
  1765. case OpFSub: *hasResult = true; *hasResultType = true; break;
  1766. case OpIMul: *hasResult = true; *hasResultType = true; break;
  1767. case OpFMul: *hasResult = true; *hasResultType = true; break;
  1768. case OpUDiv: *hasResult = true; *hasResultType = true; break;
  1769. case OpSDiv: *hasResult = true; *hasResultType = true; break;
  1770. case OpFDiv: *hasResult = true; *hasResultType = true; break;
  1771. case OpUMod: *hasResult = true; *hasResultType = true; break;
  1772. case OpSRem: *hasResult = true; *hasResultType = true; break;
  1773. case OpSMod: *hasResult = true; *hasResultType = true; break;
  1774. case OpFRem: *hasResult = true; *hasResultType = true; break;
  1775. case OpFMod: *hasResult = true; *hasResultType = true; break;
  1776. case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
  1777. case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
  1778. case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
  1779. case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
  1780. case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
  1781. case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
  1782. case OpDot: *hasResult = true; *hasResultType = true; break;
  1783. case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
  1784. case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
  1785. case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
  1786. case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
  1787. case OpAny: *hasResult = true; *hasResultType = true; break;
  1788. case OpAll: *hasResult = true; *hasResultType = true; break;
  1789. case OpIsNan: *hasResult = true; *hasResultType = true; break;
  1790. case OpIsInf: *hasResult = true; *hasResultType = true; break;
  1791. case OpIsFinite: *hasResult = true; *hasResultType = true; break;
  1792. case OpIsNormal: *hasResult = true; *hasResultType = true; break;
  1793. case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
  1794. case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
  1795. case OpOrdered: *hasResult = true; *hasResultType = true; break;
  1796. case OpUnordered: *hasResult = true; *hasResultType = true; break;
  1797. case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
  1798. case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
  1799. case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
  1800. case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
  1801. case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
  1802. case OpSelect: *hasResult = true; *hasResultType = true; break;
  1803. case OpIEqual: *hasResult = true; *hasResultType = true; break;
  1804. case OpINotEqual: *hasResult = true; *hasResultType = true; break;
  1805. case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
  1806. case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
  1807. case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1808. case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1809. case OpULessThan: *hasResult = true; *hasResultType = true; break;
  1810. case OpSLessThan: *hasResult = true; *hasResultType = true; break;
  1811. case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
  1812. case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
  1813. case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
  1814. case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
  1815. case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
  1816. case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
  1817. case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
  1818. case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
  1819. case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
  1820. case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
  1821. case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
  1822. case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
  1823. case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1824. case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1825. case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
  1826. case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
  1827. case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
  1828. case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
  1829. case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
  1830. case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  1831. case OpNot: *hasResult = true; *hasResultType = true; break;
  1832. case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
  1833. case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
  1834. case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
  1835. case OpBitReverse: *hasResult = true; *hasResultType = true; break;
  1836. case OpBitCount: *hasResult = true; *hasResultType = true; break;
  1837. case OpDPdx: *hasResult = true; *hasResultType = true; break;
  1838. case OpDPdy: *hasResult = true; *hasResultType = true; break;
  1839. case OpFwidth: *hasResult = true; *hasResultType = true; break;
  1840. case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
  1841. case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
  1842. case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
  1843. case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
  1844. case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
  1845. case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
  1846. case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
  1847. case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
  1848. case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
  1849. case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
  1850. case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
  1851. case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
  1852. case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
  1853. case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
  1854. case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
  1855. case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
  1856. case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
  1857. case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
  1858. case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
  1859. case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
  1860. case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
  1861. case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
  1862. case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
  1863. case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
  1864. case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
  1865. case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
  1866. case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
  1867. case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
  1868. case OpPhi: *hasResult = true; *hasResultType = true; break;
  1869. case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
  1870. case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
  1871. case OpLabel: *hasResult = true; *hasResultType = false; break;
  1872. case OpBranch: *hasResult = false; *hasResultType = false; break;
  1873. case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
  1874. case OpSwitch: *hasResult = false; *hasResultType = false; break;
  1875. case OpKill: *hasResult = false; *hasResultType = false; break;
  1876. case OpReturn: *hasResult = false; *hasResultType = false; break;
  1877. case OpReturnValue: *hasResult = false; *hasResultType = false; break;
  1878. case OpUnreachable: *hasResult = false; *hasResultType = false; break;
  1879. case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
  1880. case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
  1881. case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
  1882. case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
  1883. case OpGroupAll: *hasResult = true; *hasResultType = true; break;
  1884. case OpGroupAny: *hasResult = true; *hasResultType = true; break;
  1885. case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
  1886. case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
  1887. case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
  1888. case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
  1889. case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
  1890. case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
  1891. case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
  1892. case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
  1893. case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
  1894. case OpReadPipe: *hasResult = true; *hasResultType = true; break;
  1895. case OpWritePipe: *hasResult = true; *hasResultType = true; break;
  1896. case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
  1897. case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
  1898. case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  1899. case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  1900. case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  1901. case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  1902. case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
  1903. case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
  1904. case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
  1905. case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  1906. case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  1907. case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  1908. case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  1909. case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
  1910. case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
  1911. case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
  1912. case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
  1913. case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
  1914. case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
  1915. case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
  1916. case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
  1917. case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
  1918. case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
  1919. case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
  1920. case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
  1921. case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
  1922. case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
  1923. case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  1924. case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  1925. case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1926. case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1927. case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  1928. case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  1929. case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1930. case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1931. case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
  1932. case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
  1933. case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
  1934. case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
  1935. case OpNoLine: *hasResult = false; *hasResultType = false; break;
  1936. case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
  1937. case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
  1938. case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
  1939. case OpSizeOf: *hasResult = true; *hasResultType = true; break;
  1940. case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
  1941. case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
  1942. case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
  1943. case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
  1944. case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
  1945. case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
  1946. case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
  1947. case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
  1948. case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
  1949. case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
  1950. case OpDecorateId: *hasResult = false; *hasResultType = false; break;
  1951. case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
  1952. case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
  1953. case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
  1954. case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
  1955. case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
  1956. case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
  1957. case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
  1958. case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
  1959. case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
  1960. case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
  1961. case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
  1962. case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
  1963. case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
  1964. case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
  1965. case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
  1966. case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
  1967. case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
  1968. case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
  1969. case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
  1970. case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
  1971. case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
  1972. case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
  1973. case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
  1974. case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
  1975. case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
  1976. case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
  1977. case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  1978. case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
  1979. case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
  1980. case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
  1981. case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
  1982. case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
  1983. case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
  1984. case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
  1985. case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
  1986. case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
  1987. case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
  1988. case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
  1989. case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
  1990. case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
  1991. case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
  1992. case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
  1993. case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
  1994. case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
  1995. case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
  1996. case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
  1997. case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
  1998. case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
  1999. case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2000. case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
  2001. case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
  2002. case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
  2003. case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
  2004. case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2005. case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2006. case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
  2007. case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
  2008. case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2009. case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2010. case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2011. case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2012. case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2013. case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2014. case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2015. case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2016. case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
  2017. case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
  2018. case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
  2019. case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
  2020. case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
  2021. case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
  2022. case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
  2023. case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
  2024. case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
  2025. case OpTraceNV: *hasResult = false; *hasResultType = false; break;
  2026. case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
  2027. case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
  2028. case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
  2029. case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
  2030. case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
  2031. case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
  2032. case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
  2033. case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  2034. case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  2035. case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
  2036. case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
  2037. case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
  2038. case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
  2039. case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
  2040. case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
  2041. case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2042. case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2043. case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2044. case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2045. case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2046. case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2047. case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  2048. case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  2049. case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
  2050. case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
  2051. case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  2052. case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  2053. case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
  2054. case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
  2055. case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  2056. case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  2057. case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
  2058. case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
  2059. case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  2060. case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  2061. case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
  2062. case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
  2063. case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
  2064. case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
  2065. case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
  2066. case OpDecorateString: *hasResult = false; *hasResultType = false; break;
  2067. case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
  2068. case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
  2069. case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
  2070. case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2071. case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2072. case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2073. case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2074. case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
  2075. case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
  2076. case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  2077. case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  2078. case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  2079. case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  2080. case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
  2081. case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
  2082. case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2083. case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2084. case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2085. case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2086. case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2087. case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2088. case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2089. case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2090. case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2091. case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2092. case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2093. case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2094. case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2095. case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2096. case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2097. case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
  2098. case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  2099. case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  2100. case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  2101. case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2102. case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
  2103. case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2104. case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
  2105. case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2106. case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
  2107. case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2108. case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2109. case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2110. case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2111. case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2112. case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
  2113. case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  2114. case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2115. case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  2116. case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2117. case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2118. case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2119. case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
  2120. case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
  2121. case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2122. case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  2123. case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  2124. case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2125. case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
  2126. case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2127. case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2128. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2129. case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2130. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2131. case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2132. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  2133. case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  2134. case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2135. case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2136. case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2137. case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2138. case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2139. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2140. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2141. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2142. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2143. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2144. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2145. case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
  2146. case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
  2147. case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
  2148. case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
  2149. case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2150. case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2151. case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2152. case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2153. case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  2154. case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2155. case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2156. case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2157. case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2158. case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  2159. case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2160. case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2161. case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
  2162. case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
  2163. case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
  2164. case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
  2165. case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2166. case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2167. case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2168. case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2169. case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2170. case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2171. case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
  2172. case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
  2173. case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2174. case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2175. case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2176. case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  2177. case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2178. case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2179. case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2180. case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2181. case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
  2182. case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
  2183. case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2184. case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2185. case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
  2186. case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
  2187. case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
  2188. case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
  2189. case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
  2190. case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
  2191. case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
  2192. case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  2193. case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  2194. case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
  2195. case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
  2196. case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
  2197. case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
  2198. case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
  2199. case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
  2200. case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
  2201. case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
  2202. case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
  2203. case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
  2204. case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
  2205. case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
  2206. case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  2207. case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  2208. case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  2209. case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  2210. case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
  2211. case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
  2212. case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
  2213. case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
  2214. case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  2215. case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  2216. case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  2217. }
  2218. }
  2219. #endif /* SPV_ENABLE_UTILITY_CODE */
  2220. // Overload operator| for mask bit combining
  2221. inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
  2222. inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
  2223. inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
  2224. inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
  2225. inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
  2226. inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
  2227. inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
  2228. inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
  2229. inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
  2230. inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
  2231. } // end namespace spv
  2232. #endif // #ifndef spirv_HPP