spirv.hpp 123 KB

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