spirv.hpp 122 KB

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