spirv.hpp11 282 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377
  1. // Copyright (c) 2014-2024 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 class SourceLanguage : unsigned {
  56. Unknown = 0,
  57. ESSL = 1,
  58. GLSL = 2,
  59. OpenCL_C = 3,
  60. OpenCL_CPP = 4,
  61. HLSL = 5,
  62. CPP_for_OpenCL = 6,
  63. SYCL = 7,
  64. HERO_C = 8,
  65. NZSL = 9,
  66. WGSL = 10,
  67. Slang = 11,
  68. Zig = 12,
  69. Rust = 13,
  70. Max = 0x7fffffff,
  71. };
  72. enum class ExecutionModel : unsigned {
  73. Vertex = 0,
  74. TessellationControl = 1,
  75. TessellationEvaluation = 2,
  76. Geometry = 3,
  77. Fragment = 4,
  78. GLCompute = 5,
  79. Kernel = 6,
  80. TaskNV = 5267,
  81. MeshNV = 5268,
  82. RayGenerationKHR = 5313,
  83. RayGenerationNV = 5313,
  84. IntersectionKHR = 5314,
  85. IntersectionNV = 5314,
  86. AnyHitKHR = 5315,
  87. AnyHitNV = 5315,
  88. ClosestHitKHR = 5316,
  89. ClosestHitNV = 5316,
  90. MissKHR = 5317,
  91. MissNV = 5317,
  92. CallableKHR = 5318,
  93. CallableNV = 5318,
  94. TaskEXT = 5364,
  95. MeshEXT = 5365,
  96. Max = 0x7fffffff,
  97. };
  98. enum class AddressingModel : unsigned {
  99. Logical = 0,
  100. Physical32 = 1,
  101. Physical64 = 2,
  102. PhysicalStorageBuffer64 = 5348,
  103. PhysicalStorageBuffer64EXT = 5348,
  104. Max = 0x7fffffff,
  105. };
  106. enum class MemoryModel : unsigned {
  107. Simple = 0,
  108. GLSL450 = 1,
  109. OpenCL = 2,
  110. Vulkan = 3,
  111. VulkanKHR = 3,
  112. Max = 0x7fffffff,
  113. };
  114. enum class ExecutionMode : unsigned {
  115. Invocations = 0,
  116. SpacingEqual = 1,
  117. SpacingFractionalEven = 2,
  118. SpacingFractionalOdd = 3,
  119. VertexOrderCw = 4,
  120. VertexOrderCcw = 5,
  121. PixelCenterInteger = 6,
  122. OriginUpperLeft = 7,
  123. OriginLowerLeft = 8,
  124. EarlyFragmentTests = 9,
  125. PointMode = 10,
  126. Xfb = 11,
  127. DepthReplacing = 12,
  128. DepthGreater = 14,
  129. DepthLess = 15,
  130. DepthUnchanged = 16,
  131. LocalSize = 17,
  132. LocalSizeHint = 18,
  133. InputPoints = 19,
  134. InputLines = 20,
  135. InputLinesAdjacency = 21,
  136. Triangles = 22,
  137. InputTrianglesAdjacency = 23,
  138. Quads = 24,
  139. Isolines = 25,
  140. OutputVertices = 26,
  141. OutputPoints = 27,
  142. OutputLineStrip = 28,
  143. OutputTriangleStrip = 29,
  144. VecTypeHint = 30,
  145. ContractionOff = 31,
  146. Initializer = 33,
  147. Finalizer = 34,
  148. SubgroupSize = 35,
  149. SubgroupsPerWorkgroup = 36,
  150. SubgroupsPerWorkgroupId = 37,
  151. LocalSizeId = 38,
  152. LocalSizeHintId = 39,
  153. NonCoherentColorAttachmentReadEXT = 4169,
  154. NonCoherentDepthAttachmentReadEXT = 4170,
  155. NonCoherentStencilAttachmentReadEXT = 4171,
  156. SubgroupUniformControlFlowKHR = 4421,
  157. PostDepthCoverage = 4446,
  158. DenormPreserve = 4459,
  159. DenormFlushToZero = 4460,
  160. SignedZeroInfNanPreserve = 4461,
  161. RoundingModeRTE = 4462,
  162. RoundingModeRTZ = 4463,
  163. NonCoherentTileAttachmentReadQCOM = 4489,
  164. TileShadingRateQCOM = 4490,
  165. EarlyAndLateFragmentTestsAMD = 5017,
  166. StencilRefReplacingEXT = 5027,
  167. CoalescingAMDX = 5069,
  168. IsApiEntryAMDX = 5070,
  169. MaxNodeRecursionAMDX = 5071,
  170. StaticNumWorkgroupsAMDX = 5072,
  171. ShaderIndexAMDX = 5073,
  172. MaxNumWorkgroupsAMDX = 5077,
  173. StencilRefUnchangedFrontAMD = 5079,
  174. StencilRefGreaterFrontAMD = 5080,
  175. StencilRefLessFrontAMD = 5081,
  176. StencilRefUnchangedBackAMD = 5082,
  177. StencilRefGreaterBackAMD = 5083,
  178. StencilRefLessBackAMD = 5084,
  179. QuadDerivativesKHR = 5088,
  180. RequireFullQuadsKHR = 5089,
  181. SharesInputWithAMDX = 5102,
  182. OutputLinesEXT = 5269,
  183. OutputLinesNV = 5269,
  184. OutputPrimitivesEXT = 5270,
  185. OutputPrimitivesNV = 5270,
  186. DerivativeGroupQuadsKHR = 5289,
  187. DerivativeGroupQuadsNV = 5289,
  188. DerivativeGroupLinearKHR = 5290,
  189. DerivativeGroupLinearNV = 5290,
  190. OutputTrianglesEXT = 5298,
  191. OutputTrianglesNV = 5298,
  192. PixelInterlockOrderedEXT = 5366,
  193. PixelInterlockUnorderedEXT = 5367,
  194. SampleInterlockOrderedEXT = 5368,
  195. SampleInterlockUnorderedEXT = 5369,
  196. ShadingRateInterlockOrderedEXT = 5370,
  197. ShadingRateInterlockUnorderedEXT = 5371,
  198. Shader64BitIndexingEXT = 5427,
  199. SharedLocalMemorySizeINTEL = 5618,
  200. RoundingModeRTPINTEL = 5620,
  201. RoundingModeRTNINTEL = 5621,
  202. FloatingPointModeALTINTEL = 5622,
  203. FloatingPointModeIEEEINTEL = 5623,
  204. MaxWorkgroupSizeINTEL = 5893,
  205. MaxWorkDimINTEL = 5894,
  206. NoGlobalOffsetINTEL = 5895,
  207. NumSIMDWorkitemsINTEL = 5896,
  208. SchedulerTargetFmaxMhzINTEL = 5903,
  209. MaximallyReconvergesKHR = 6023,
  210. FPFastMathDefault = 6028,
  211. StreamingInterfaceINTEL = 6154,
  212. RegisterMapInterfaceINTEL = 6160,
  213. NamedBarrierCountINTEL = 6417,
  214. MaximumRegistersINTEL = 6461,
  215. MaximumRegistersIdINTEL = 6462,
  216. NamedMaximumRegistersINTEL = 6463,
  217. Max = 0x7fffffff,
  218. };
  219. enum class StorageClass : unsigned {
  220. UniformConstant = 0,
  221. Input = 1,
  222. Uniform = 2,
  223. Output = 3,
  224. Workgroup = 4,
  225. CrossWorkgroup = 5,
  226. Private = 6,
  227. Function = 7,
  228. Generic = 8,
  229. PushConstant = 9,
  230. AtomicCounter = 10,
  231. Image = 11,
  232. StorageBuffer = 12,
  233. TileImageEXT = 4172,
  234. TileAttachmentQCOM = 4491,
  235. NodePayloadAMDX = 5068,
  236. CallableDataKHR = 5328,
  237. CallableDataNV = 5328,
  238. IncomingCallableDataKHR = 5329,
  239. IncomingCallableDataNV = 5329,
  240. RayPayloadKHR = 5338,
  241. RayPayloadNV = 5338,
  242. HitAttributeKHR = 5339,
  243. HitAttributeNV = 5339,
  244. IncomingRayPayloadKHR = 5342,
  245. IncomingRayPayloadNV = 5342,
  246. ShaderRecordBufferKHR = 5343,
  247. ShaderRecordBufferNV = 5343,
  248. PhysicalStorageBuffer = 5349,
  249. PhysicalStorageBufferEXT = 5349,
  250. HitObjectAttributeNV = 5385,
  251. TaskPayloadWorkgroupEXT = 5402,
  252. HitObjectAttributeEXT = 5411,
  253. CodeSectionINTEL = 5605,
  254. DeviceOnlyINTEL = 5936,
  255. HostOnlyINTEL = 5937,
  256. Max = 0x7fffffff,
  257. };
  258. enum class Dim : unsigned {
  259. Dim1D = 0,
  260. Dim2D = 1,
  261. Dim3D = 2,
  262. Cube = 3,
  263. Rect = 4,
  264. Buffer = 5,
  265. SubpassData = 6,
  266. TileImageDataEXT = 4173,
  267. Max = 0x7fffffff,
  268. };
  269. enum class SamplerAddressingMode : unsigned {
  270. None = 0,
  271. ClampToEdge = 1,
  272. Clamp = 2,
  273. Repeat = 3,
  274. RepeatMirrored = 4,
  275. Max = 0x7fffffff,
  276. };
  277. enum class SamplerFilterMode : unsigned {
  278. Nearest = 0,
  279. Linear = 1,
  280. Max = 0x7fffffff,
  281. };
  282. enum class ImageFormat : unsigned {
  283. Unknown = 0,
  284. Rgba32f = 1,
  285. Rgba16f = 2,
  286. R32f = 3,
  287. Rgba8 = 4,
  288. Rgba8Snorm = 5,
  289. Rg32f = 6,
  290. Rg16f = 7,
  291. R11fG11fB10f = 8,
  292. R16f = 9,
  293. Rgba16 = 10,
  294. Rgb10A2 = 11,
  295. Rg16 = 12,
  296. Rg8 = 13,
  297. R16 = 14,
  298. R8 = 15,
  299. Rgba16Snorm = 16,
  300. Rg16Snorm = 17,
  301. Rg8Snorm = 18,
  302. R16Snorm = 19,
  303. R8Snorm = 20,
  304. Rgba32i = 21,
  305. Rgba16i = 22,
  306. Rgba8i = 23,
  307. R32i = 24,
  308. Rg32i = 25,
  309. Rg16i = 26,
  310. Rg8i = 27,
  311. R16i = 28,
  312. R8i = 29,
  313. Rgba32ui = 30,
  314. Rgba16ui = 31,
  315. Rgba8ui = 32,
  316. R32ui = 33,
  317. Rgb10a2ui = 34,
  318. Rg32ui = 35,
  319. Rg16ui = 36,
  320. Rg8ui = 37,
  321. R16ui = 38,
  322. R8ui = 39,
  323. R64ui = 40,
  324. R64i = 41,
  325. Max = 0x7fffffff,
  326. };
  327. enum class ImageChannelOrder : unsigned {
  328. R = 0,
  329. A = 1,
  330. RG = 2,
  331. RA = 3,
  332. RGB = 4,
  333. RGBA = 5,
  334. BGRA = 6,
  335. ARGB = 7,
  336. Intensity = 8,
  337. Luminance = 9,
  338. Rx = 10,
  339. RGx = 11,
  340. RGBx = 12,
  341. Depth = 13,
  342. DepthStencil = 14,
  343. sRGB = 15,
  344. sRGBx = 16,
  345. sRGBA = 17,
  346. sBGRA = 18,
  347. ABGR = 19,
  348. Max = 0x7fffffff,
  349. };
  350. enum class ImageChannelDataType : unsigned {
  351. SnormInt8 = 0,
  352. SnormInt16 = 1,
  353. UnormInt8 = 2,
  354. UnormInt16 = 3,
  355. UnormShort565 = 4,
  356. UnormShort555 = 5,
  357. UnormInt101010 = 6,
  358. SignedInt8 = 7,
  359. SignedInt16 = 8,
  360. SignedInt32 = 9,
  361. UnsignedInt8 = 10,
  362. UnsignedInt16 = 11,
  363. UnsignedInt32 = 12,
  364. HalfFloat = 13,
  365. Float = 14,
  366. UnormInt24 = 15,
  367. UnormInt101010_2 = 16,
  368. UnsignedIntRaw10EXT = 19,
  369. UnsignedIntRaw12EXT = 20,
  370. UnormInt2_101010EXT = 21,
  371. Max = 0x7fffffff,
  372. };
  373. enum class ImageOperandsShift : unsigned {
  374. Bias = 0,
  375. Lod = 1,
  376. Grad = 2,
  377. ConstOffset = 3,
  378. Offset = 4,
  379. ConstOffsets = 5,
  380. Sample = 6,
  381. MinLod = 7,
  382. MakeTexelAvailable = 8,
  383. MakeTexelAvailableKHR = 8,
  384. MakeTexelVisible = 9,
  385. MakeTexelVisibleKHR = 9,
  386. NonPrivateTexel = 10,
  387. NonPrivateTexelKHR = 10,
  388. VolatileTexel = 11,
  389. VolatileTexelKHR = 11,
  390. SignExtend = 12,
  391. ZeroExtend = 13,
  392. Nontemporal = 14,
  393. Offsets = 16,
  394. Max = 0x7fffffff,
  395. };
  396. enum class ImageOperandsMask : unsigned {
  397. MaskNone = 0,
  398. Bias = 0x00000001,
  399. Lod = 0x00000002,
  400. Grad = 0x00000004,
  401. ConstOffset = 0x00000008,
  402. Offset = 0x00000010,
  403. ConstOffsets = 0x00000020,
  404. Sample = 0x00000040,
  405. MinLod = 0x00000080,
  406. MakeTexelAvailable = 0x00000100,
  407. MakeTexelAvailableKHR = 0x00000100,
  408. MakeTexelVisible = 0x00000200,
  409. MakeTexelVisibleKHR = 0x00000200,
  410. NonPrivateTexel = 0x00000400,
  411. NonPrivateTexelKHR = 0x00000400,
  412. VolatileTexel = 0x00000800,
  413. VolatileTexelKHR = 0x00000800,
  414. SignExtend = 0x00001000,
  415. ZeroExtend = 0x00002000,
  416. Nontemporal = 0x00004000,
  417. Offsets = 0x00010000,
  418. };
  419. enum class FPFastMathModeShift : unsigned {
  420. NotNaN = 0,
  421. NotInf = 1,
  422. NSZ = 2,
  423. AllowRecip = 3,
  424. Fast = 4,
  425. AllowContract = 16,
  426. AllowContractFastINTEL = 16,
  427. AllowReassoc = 17,
  428. AllowReassocINTEL = 17,
  429. AllowTransform = 18,
  430. Max = 0x7fffffff,
  431. };
  432. enum class FPFastMathModeMask : unsigned {
  433. MaskNone = 0,
  434. NotNaN = 0x00000001,
  435. NotInf = 0x00000002,
  436. NSZ = 0x00000004,
  437. AllowRecip = 0x00000008,
  438. Fast = 0x00000010,
  439. AllowContract = 0x00010000,
  440. AllowContractFastINTEL = 0x00010000,
  441. AllowReassoc = 0x00020000,
  442. AllowReassocINTEL = 0x00020000,
  443. AllowTransform = 0x00040000,
  444. };
  445. enum class FPRoundingMode : unsigned {
  446. RTE = 0,
  447. RTZ = 1,
  448. RTP = 2,
  449. RTN = 3,
  450. Max = 0x7fffffff,
  451. };
  452. enum class LinkageType : unsigned {
  453. Export = 0,
  454. Import = 1,
  455. LinkOnceODR = 2,
  456. Max = 0x7fffffff,
  457. };
  458. enum class AccessQualifier : unsigned {
  459. ReadOnly = 0,
  460. WriteOnly = 1,
  461. ReadWrite = 2,
  462. Max = 0x7fffffff,
  463. };
  464. enum class FunctionParameterAttribute : unsigned {
  465. Zext = 0,
  466. Sext = 1,
  467. ByVal = 2,
  468. Sret = 3,
  469. NoAlias = 4,
  470. NoCapture = 5,
  471. NoWrite = 6,
  472. NoReadWrite = 7,
  473. RuntimeAlignedINTEL = 5940,
  474. Max = 0x7fffffff,
  475. };
  476. enum class Decoration : unsigned {
  477. RelaxedPrecision = 0,
  478. SpecId = 1,
  479. Block = 2,
  480. BufferBlock = 3,
  481. RowMajor = 4,
  482. ColMajor = 5,
  483. ArrayStride = 6,
  484. MatrixStride = 7,
  485. GLSLShared = 8,
  486. GLSLPacked = 9,
  487. CPacked = 10,
  488. BuiltIn = 11,
  489. NoPerspective = 13,
  490. Flat = 14,
  491. Patch = 15,
  492. Centroid = 16,
  493. Sample = 17,
  494. Invariant = 18,
  495. Restrict = 19,
  496. Aliased = 20,
  497. Volatile = 21,
  498. Constant = 22,
  499. Coherent = 23,
  500. NonWritable = 24,
  501. NonReadable = 25,
  502. Uniform = 26,
  503. UniformId = 27,
  504. SaturatedConversion = 28,
  505. Stream = 29,
  506. Location = 30,
  507. Component = 31,
  508. Index = 32,
  509. Binding = 33,
  510. DescriptorSet = 34,
  511. Offset = 35,
  512. XfbBuffer = 36,
  513. XfbStride = 37,
  514. FuncParamAttr = 38,
  515. FPRoundingMode = 39,
  516. FPFastMathMode = 40,
  517. LinkageAttributes = 41,
  518. NoContraction = 42,
  519. InputAttachmentIndex = 43,
  520. Alignment = 44,
  521. MaxByteOffset = 45,
  522. AlignmentId = 46,
  523. MaxByteOffsetId = 47,
  524. SaturatedToLargestFloat8NormalConversionEXT = 4216,
  525. NoSignedWrap = 4469,
  526. NoUnsignedWrap = 4470,
  527. WeightTextureQCOM = 4487,
  528. BlockMatchTextureQCOM = 4488,
  529. BlockMatchSamplerQCOM = 4499,
  530. ExplicitInterpAMD = 4999,
  531. NodeSharesPayloadLimitsWithAMDX = 5019,
  532. NodeMaxPayloadsAMDX = 5020,
  533. TrackFinishWritingAMDX = 5078,
  534. PayloadNodeNameAMDX = 5091,
  535. PayloadNodeBaseIndexAMDX = 5098,
  536. PayloadNodeSparseArrayAMDX = 5099,
  537. PayloadNodeArraySizeAMDX = 5100,
  538. PayloadDispatchIndirectAMDX = 5105,
  539. ArrayStrideIdEXT = 5124,
  540. OffsetIdEXT = 5125,
  541. OverrideCoverageNV = 5248,
  542. PassthroughNV = 5250,
  543. ViewportRelativeNV = 5252,
  544. SecondaryViewportRelativeNV = 5256,
  545. PerPrimitiveEXT = 5271,
  546. PerPrimitiveNV = 5271,
  547. PerViewNV = 5272,
  548. PerTaskNV = 5273,
  549. PerVertexKHR = 5285,
  550. PerVertexNV = 5285,
  551. NonUniform = 5300,
  552. NonUniformEXT = 5300,
  553. RestrictPointer = 5355,
  554. RestrictPointerEXT = 5355,
  555. AliasedPointer = 5356,
  556. AliasedPointerEXT = 5356,
  557. MemberOffsetNV = 5358,
  558. HitObjectShaderRecordBufferNV = 5386,
  559. HitObjectShaderRecordBufferEXT = 5389,
  560. BankNV = 5397,
  561. BindlessSamplerNV = 5398,
  562. BindlessImageNV = 5399,
  563. BoundSamplerNV = 5400,
  564. BoundImageNV = 5401,
  565. SIMTCallINTEL = 5599,
  566. ReferencedIndirectlyINTEL = 5602,
  567. ClobberINTEL = 5607,
  568. SideEffectsINTEL = 5608,
  569. VectorComputeVariableINTEL = 5624,
  570. FuncParamIOKindINTEL = 5625,
  571. VectorComputeFunctionINTEL = 5626,
  572. StackCallINTEL = 5627,
  573. GlobalVariableOffsetINTEL = 5628,
  574. CounterBuffer = 5634,
  575. HlslCounterBufferGOOGLE = 5634,
  576. HlslSemanticGOOGLE = 5635,
  577. UserSemantic = 5635,
  578. UserTypeGOOGLE = 5636,
  579. FunctionRoundingModeINTEL = 5822,
  580. FunctionDenormModeINTEL = 5823,
  581. RegisterINTEL = 5825,
  582. MemoryINTEL = 5826,
  583. NumbanksINTEL = 5827,
  584. BankwidthINTEL = 5828,
  585. MaxPrivateCopiesINTEL = 5829,
  586. SinglepumpINTEL = 5830,
  587. DoublepumpINTEL = 5831,
  588. MaxReplicatesINTEL = 5832,
  589. SimpleDualPortINTEL = 5833,
  590. MergeINTEL = 5834,
  591. BankBitsINTEL = 5835,
  592. ForcePow2DepthINTEL = 5836,
  593. StridesizeINTEL = 5883,
  594. WordsizeINTEL = 5884,
  595. TrueDualPortINTEL = 5885,
  596. BurstCoalesceINTEL = 5899,
  597. CacheSizeINTEL = 5900,
  598. DontStaticallyCoalesceINTEL = 5901,
  599. PrefetchINTEL = 5902,
  600. StallEnableINTEL = 5905,
  601. FuseLoopsInFunctionINTEL = 5907,
  602. MathOpDSPModeINTEL = 5909,
  603. AliasScopeINTEL = 5914,
  604. NoAliasINTEL = 5915,
  605. InitiationIntervalINTEL = 5917,
  606. MaxConcurrencyINTEL = 5918,
  607. PipelineEnableINTEL = 5919,
  608. BufferLocationINTEL = 5921,
  609. IOPipeStorageINTEL = 5944,
  610. FunctionFloatingPointModeINTEL = 6080,
  611. SingleElementVectorINTEL = 6085,
  612. VectorComputeCallableFunctionINTEL = 6087,
  613. MediaBlockIOINTEL = 6140,
  614. StallFreeINTEL = 6151,
  615. FPMaxErrorDecorationINTEL = 6170,
  616. LatencyControlLabelINTEL = 6172,
  617. LatencyControlConstraintINTEL = 6173,
  618. ConduitKernelArgumentINTEL = 6175,
  619. RegisterMapKernelArgumentINTEL = 6176,
  620. MMHostInterfaceAddressWidthINTEL = 6177,
  621. MMHostInterfaceDataWidthINTEL = 6178,
  622. MMHostInterfaceLatencyINTEL = 6179,
  623. MMHostInterfaceReadWriteModeINTEL = 6180,
  624. MMHostInterfaceMaxBurstINTEL = 6181,
  625. MMHostInterfaceWaitRequestINTEL = 6182,
  626. StableKernelArgumentINTEL = 6183,
  627. HostAccessINTEL = 6188,
  628. InitModeINTEL = 6190,
  629. ImplementInRegisterMapINTEL = 6191,
  630. CacheControlLoadINTEL = 6442,
  631. CacheControlStoreINTEL = 6443,
  632. Max = 0x7fffffff,
  633. };
  634. enum class BuiltIn : unsigned {
  635. Position = 0,
  636. PointSize = 1,
  637. ClipDistance = 3,
  638. CullDistance = 4,
  639. VertexId = 5,
  640. InstanceId = 6,
  641. PrimitiveId = 7,
  642. InvocationId = 8,
  643. Layer = 9,
  644. ViewportIndex = 10,
  645. TessLevelOuter = 11,
  646. TessLevelInner = 12,
  647. TessCoord = 13,
  648. PatchVertices = 14,
  649. FragCoord = 15,
  650. PointCoord = 16,
  651. FrontFacing = 17,
  652. SampleId = 18,
  653. SamplePosition = 19,
  654. SampleMask = 20,
  655. FragDepth = 22,
  656. HelperInvocation = 23,
  657. NumWorkgroups = 24,
  658. WorkgroupSize = 25,
  659. WorkgroupId = 26,
  660. LocalInvocationId = 27,
  661. GlobalInvocationId = 28,
  662. LocalInvocationIndex = 29,
  663. WorkDim = 30,
  664. GlobalSize = 31,
  665. EnqueuedWorkgroupSize = 32,
  666. GlobalOffset = 33,
  667. GlobalLinearId = 34,
  668. SubgroupSize = 36,
  669. SubgroupMaxSize = 37,
  670. NumSubgroups = 38,
  671. NumEnqueuedSubgroups = 39,
  672. SubgroupId = 40,
  673. SubgroupLocalInvocationId = 41,
  674. VertexIndex = 42,
  675. InstanceIndex = 43,
  676. CoreIDARM = 4160,
  677. CoreCountARM = 4161,
  678. CoreMaxIDARM = 4162,
  679. WarpIDARM = 4163,
  680. WarpMaxIDARM = 4164,
  681. SubgroupEqMask = 4416,
  682. SubgroupEqMaskKHR = 4416,
  683. SubgroupGeMask = 4417,
  684. SubgroupGeMaskKHR = 4417,
  685. SubgroupGtMask = 4418,
  686. SubgroupGtMaskKHR = 4418,
  687. SubgroupLeMask = 4419,
  688. SubgroupLeMaskKHR = 4419,
  689. SubgroupLtMask = 4420,
  690. SubgroupLtMaskKHR = 4420,
  691. BaseVertex = 4424,
  692. BaseInstance = 4425,
  693. DrawIndex = 4426,
  694. PrimitiveShadingRateKHR = 4432,
  695. DeviceIndex = 4438,
  696. ViewIndex = 4440,
  697. ShadingRateKHR = 4444,
  698. TileOffsetQCOM = 4492,
  699. TileDimensionQCOM = 4493,
  700. TileApronSizeQCOM = 4494,
  701. BaryCoordNoPerspAMD = 4992,
  702. BaryCoordNoPerspCentroidAMD = 4993,
  703. BaryCoordNoPerspSampleAMD = 4994,
  704. BaryCoordSmoothAMD = 4995,
  705. BaryCoordSmoothCentroidAMD = 4996,
  706. BaryCoordSmoothSampleAMD = 4997,
  707. BaryCoordPullModelAMD = 4998,
  708. FragStencilRefEXT = 5014,
  709. RemainingRecursionLevelsAMDX = 5021,
  710. ShaderIndexAMDX = 5073,
  711. SamplerHeapEXT = 5122,
  712. ResourceHeapEXT = 5123,
  713. ViewportMaskNV = 5253,
  714. SecondaryPositionNV = 5257,
  715. SecondaryViewportMaskNV = 5258,
  716. PositionPerViewNV = 5261,
  717. ViewportMaskPerViewNV = 5262,
  718. FullyCoveredEXT = 5264,
  719. TaskCountNV = 5274,
  720. PrimitiveCountNV = 5275,
  721. PrimitiveIndicesNV = 5276,
  722. ClipDistancePerViewNV = 5277,
  723. CullDistancePerViewNV = 5278,
  724. LayerPerViewNV = 5279,
  725. MeshViewCountNV = 5280,
  726. MeshViewIndicesNV = 5281,
  727. BaryCoordKHR = 5286,
  728. BaryCoordNV = 5286,
  729. BaryCoordNoPerspKHR = 5287,
  730. BaryCoordNoPerspNV = 5287,
  731. FragSizeEXT = 5292,
  732. FragmentSizeNV = 5292,
  733. FragInvocationCountEXT = 5293,
  734. InvocationsPerPixelNV = 5293,
  735. PrimitivePointIndicesEXT = 5294,
  736. PrimitiveLineIndicesEXT = 5295,
  737. PrimitiveTriangleIndicesEXT = 5296,
  738. CullPrimitiveEXT = 5299,
  739. LaunchIdKHR = 5319,
  740. LaunchIdNV = 5319,
  741. LaunchSizeKHR = 5320,
  742. LaunchSizeNV = 5320,
  743. WorldRayOriginKHR = 5321,
  744. WorldRayOriginNV = 5321,
  745. WorldRayDirectionKHR = 5322,
  746. WorldRayDirectionNV = 5322,
  747. ObjectRayOriginKHR = 5323,
  748. ObjectRayOriginNV = 5323,
  749. ObjectRayDirectionKHR = 5324,
  750. ObjectRayDirectionNV = 5324,
  751. RayTminKHR = 5325,
  752. RayTminNV = 5325,
  753. RayTmaxKHR = 5326,
  754. RayTmaxNV = 5326,
  755. InstanceCustomIndexKHR = 5327,
  756. InstanceCustomIndexNV = 5327,
  757. ObjectToWorldKHR = 5330,
  758. ObjectToWorldNV = 5330,
  759. WorldToObjectKHR = 5331,
  760. WorldToObjectNV = 5331,
  761. HitTNV = 5332,
  762. HitKindKHR = 5333,
  763. HitKindNV = 5333,
  764. CurrentRayTimeNV = 5334,
  765. HitTriangleVertexPositionsKHR = 5335,
  766. HitMicroTriangleVertexPositionsNV = 5337,
  767. HitMicroTriangleVertexBarycentricsNV = 5344,
  768. IncomingRayFlagsKHR = 5351,
  769. IncomingRayFlagsNV = 5351,
  770. RayGeometryIndexKHR = 5352,
  771. HitIsSphereNV = 5359,
  772. HitIsLSSNV = 5360,
  773. HitSpherePositionNV = 5361,
  774. WarpsPerSMNV = 5374,
  775. SMCountNV = 5375,
  776. WarpIDNV = 5376,
  777. SMIDNV = 5377,
  778. HitLSSPositionsNV = 5396,
  779. HitKindFrontFacingMicroTriangleNV = 5405,
  780. HitKindBackFacingMicroTriangleNV = 5406,
  781. HitSphereRadiusNV = 5420,
  782. HitLSSRadiiNV = 5421,
  783. ClusterIDNV = 5436,
  784. CullMaskKHR = 6021,
  785. Max = 0x7fffffff,
  786. };
  787. enum class SelectionControlShift : unsigned {
  788. Flatten = 0,
  789. DontFlatten = 1,
  790. Max = 0x7fffffff,
  791. };
  792. enum class SelectionControlMask : unsigned {
  793. MaskNone = 0,
  794. Flatten = 0x00000001,
  795. DontFlatten = 0x00000002,
  796. };
  797. enum class LoopControlShift : unsigned {
  798. Unroll = 0,
  799. DontUnroll = 1,
  800. DependencyInfinite = 2,
  801. DependencyLength = 3,
  802. MinIterations = 4,
  803. MaxIterations = 5,
  804. IterationMultiple = 6,
  805. PeelCount = 7,
  806. PartialCount = 8,
  807. InitiationIntervalINTEL = 16,
  808. MaxConcurrencyINTEL = 17,
  809. DependencyArrayINTEL = 18,
  810. PipelineEnableINTEL = 19,
  811. LoopCoalesceINTEL = 20,
  812. MaxInterleavingINTEL = 21,
  813. SpeculatedIterationsINTEL = 22,
  814. NoFusionINTEL = 23,
  815. LoopCountINTEL = 24,
  816. MaxReinvocationDelayINTEL = 25,
  817. Max = 0x7fffffff,
  818. };
  819. enum class LoopControlMask : unsigned {
  820. MaskNone = 0,
  821. Unroll = 0x00000001,
  822. DontUnroll = 0x00000002,
  823. DependencyInfinite = 0x00000004,
  824. DependencyLength = 0x00000008,
  825. MinIterations = 0x00000010,
  826. MaxIterations = 0x00000020,
  827. IterationMultiple = 0x00000040,
  828. PeelCount = 0x00000080,
  829. PartialCount = 0x00000100,
  830. InitiationIntervalINTEL = 0x00010000,
  831. MaxConcurrencyINTEL = 0x00020000,
  832. DependencyArrayINTEL = 0x00040000,
  833. PipelineEnableINTEL = 0x00080000,
  834. LoopCoalesceINTEL = 0x00100000,
  835. MaxInterleavingINTEL = 0x00200000,
  836. SpeculatedIterationsINTEL = 0x00400000,
  837. NoFusionINTEL = 0x00800000,
  838. LoopCountINTEL = 0x01000000,
  839. MaxReinvocationDelayINTEL = 0x02000000,
  840. };
  841. enum class FunctionControlShift : unsigned {
  842. Inline = 0,
  843. DontInline = 1,
  844. Pure = 2,
  845. Const = 3,
  846. OptNoneEXT = 16,
  847. OptNoneINTEL = 16,
  848. Max = 0x7fffffff,
  849. };
  850. enum class FunctionControlMask : unsigned {
  851. MaskNone = 0,
  852. Inline = 0x00000001,
  853. DontInline = 0x00000002,
  854. Pure = 0x00000004,
  855. Const = 0x00000008,
  856. OptNoneEXT = 0x00010000,
  857. OptNoneINTEL = 0x00010000,
  858. };
  859. enum class MemorySemanticsShift : unsigned {
  860. Acquire = 1,
  861. Release = 2,
  862. AcquireRelease = 3,
  863. SequentiallyConsistent = 4,
  864. UniformMemory = 6,
  865. SubgroupMemory = 7,
  866. WorkgroupMemory = 8,
  867. CrossWorkgroupMemory = 9,
  868. AtomicCounterMemory = 10,
  869. ImageMemory = 11,
  870. OutputMemory = 12,
  871. OutputMemoryKHR = 12,
  872. MakeAvailable = 13,
  873. MakeAvailableKHR = 13,
  874. MakeVisible = 14,
  875. MakeVisibleKHR = 14,
  876. Volatile = 15,
  877. Max = 0x7fffffff,
  878. };
  879. enum class MemorySemanticsMask : unsigned {
  880. MaskNone = 0,
  881. Acquire = 0x00000002,
  882. Release = 0x00000004,
  883. AcquireRelease = 0x00000008,
  884. SequentiallyConsistent = 0x00000010,
  885. UniformMemory = 0x00000040,
  886. SubgroupMemory = 0x00000080,
  887. WorkgroupMemory = 0x00000100,
  888. CrossWorkgroupMemory = 0x00000200,
  889. AtomicCounterMemory = 0x00000400,
  890. ImageMemory = 0x00000800,
  891. OutputMemory = 0x00001000,
  892. OutputMemoryKHR = 0x00001000,
  893. MakeAvailable = 0x00002000,
  894. MakeAvailableKHR = 0x00002000,
  895. MakeVisible = 0x00004000,
  896. MakeVisibleKHR = 0x00004000,
  897. Volatile = 0x00008000,
  898. };
  899. enum class MemoryAccessShift : unsigned {
  900. Volatile = 0,
  901. Aligned = 1,
  902. Nontemporal = 2,
  903. MakePointerAvailable = 3,
  904. MakePointerAvailableKHR = 3,
  905. MakePointerVisible = 4,
  906. MakePointerVisibleKHR = 4,
  907. NonPrivatePointer = 5,
  908. NonPrivatePointerKHR = 5,
  909. AliasScopeINTELMask = 16,
  910. NoAliasINTELMask = 17,
  911. Max = 0x7fffffff,
  912. };
  913. enum class MemoryAccessMask : unsigned {
  914. MaskNone = 0,
  915. Volatile = 0x00000001,
  916. Aligned = 0x00000002,
  917. Nontemporal = 0x00000004,
  918. MakePointerAvailable = 0x00000008,
  919. MakePointerAvailableKHR = 0x00000008,
  920. MakePointerVisible = 0x00000010,
  921. MakePointerVisibleKHR = 0x00000010,
  922. NonPrivatePointer = 0x00000020,
  923. NonPrivatePointerKHR = 0x00000020,
  924. AliasScopeINTELMask = 0x00010000,
  925. NoAliasINTELMask = 0x00020000,
  926. };
  927. enum class Scope : unsigned {
  928. CrossDevice = 0,
  929. Device = 1,
  930. Workgroup = 2,
  931. Subgroup = 3,
  932. Invocation = 4,
  933. QueueFamily = 5,
  934. QueueFamilyKHR = 5,
  935. ShaderCallKHR = 6,
  936. Max = 0x7fffffff,
  937. };
  938. enum class GroupOperation : unsigned {
  939. Reduce = 0,
  940. InclusiveScan = 1,
  941. ExclusiveScan = 2,
  942. ClusteredReduce = 3,
  943. PartitionedReduceNV = 6,
  944. PartitionedInclusiveScanNV = 7,
  945. PartitionedExclusiveScanNV = 8,
  946. Max = 0x7fffffff,
  947. };
  948. enum class KernelEnqueueFlags : unsigned {
  949. NoWait = 0,
  950. WaitKernel = 1,
  951. WaitWorkGroup = 2,
  952. Max = 0x7fffffff,
  953. };
  954. enum class KernelProfilingInfoShift : unsigned {
  955. CmdExecTime = 0,
  956. Max = 0x7fffffff,
  957. };
  958. enum class KernelProfilingInfoMask : unsigned {
  959. MaskNone = 0,
  960. CmdExecTime = 0x00000001,
  961. };
  962. enum class Capability : unsigned {
  963. Matrix = 0,
  964. Shader = 1,
  965. Geometry = 2,
  966. Tessellation = 3,
  967. Addresses = 4,
  968. Linkage = 5,
  969. Kernel = 6,
  970. Vector16 = 7,
  971. Float16Buffer = 8,
  972. Float16 = 9,
  973. Float64 = 10,
  974. Int64 = 11,
  975. Int64Atomics = 12,
  976. ImageBasic = 13,
  977. ImageReadWrite = 14,
  978. ImageMipmap = 15,
  979. Pipes = 17,
  980. Groups = 18,
  981. DeviceEnqueue = 19,
  982. LiteralSampler = 20,
  983. AtomicStorage = 21,
  984. Int16 = 22,
  985. TessellationPointSize = 23,
  986. GeometryPointSize = 24,
  987. ImageGatherExtended = 25,
  988. StorageImageMultisample = 27,
  989. UniformBufferArrayDynamicIndexing = 28,
  990. SampledImageArrayDynamicIndexing = 29,
  991. StorageBufferArrayDynamicIndexing = 30,
  992. StorageImageArrayDynamicIndexing = 31,
  993. ClipDistance = 32,
  994. CullDistance = 33,
  995. ImageCubeArray = 34,
  996. SampleRateShading = 35,
  997. ImageRect = 36,
  998. SampledRect = 37,
  999. GenericPointer = 38,
  1000. Int8 = 39,
  1001. InputAttachment = 40,
  1002. SparseResidency = 41,
  1003. MinLod = 42,
  1004. Sampled1D = 43,
  1005. Image1D = 44,
  1006. SampledCubeArray = 45,
  1007. SampledBuffer = 46,
  1008. ImageBuffer = 47,
  1009. ImageMSArray = 48,
  1010. StorageImageExtendedFormats = 49,
  1011. ImageQuery = 50,
  1012. DerivativeControl = 51,
  1013. InterpolationFunction = 52,
  1014. TransformFeedback = 53,
  1015. GeometryStreams = 54,
  1016. StorageImageReadWithoutFormat = 55,
  1017. StorageImageWriteWithoutFormat = 56,
  1018. MultiViewport = 57,
  1019. SubgroupDispatch = 58,
  1020. NamedBarrier = 59,
  1021. PipeStorage = 60,
  1022. GroupNonUniform = 61,
  1023. GroupNonUniformVote = 62,
  1024. GroupNonUniformArithmetic = 63,
  1025. GroupNonUniformBallot = 64,
  1026. GroupNonUniformShuffle = 65,
  1027. GroupNonUniformShuffleRelative = 66,
  1028. GroupNonUniformClustered = 67,
  1029. GroupNonUniformQuad = 68,
  1030. ShaderLayer = 69,
  1031. ShaderViewportIndex = 70,
  1032. UniformDecoration = 71,
  1033. CoreBuiltinsARM = 4165,
  1034. TileImageColorReadAccessEXT = 4166,
  1035. TileImageDepthReadAccessEXT = 4167,
  1036. TileImageStencilReadAccessEXT = 4168,
  1037. TensorsARM = 4174,
  1038. CooperativeMatrixLayoutsARM = 4201,
  1039. Float8EXT = 4212,
  1040. Float8CooperativeMatrixEXT = 4213,
  1041. FragmentShadingRateKHR = 4422,
  1042. SubgroupBallotKHR = 4423,
  1043. DrawParameters = 4427,
  1044. WorkgroupMemoryExplicitLayoutKHR = 4428,
  1045. WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
  1046. WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
  1047. SubgroupVoteKHR = 4431,
  1048. StorageBuffer16BitAccess = 4433,
  1049. StorageUniformBufferBlock16 = 4433,
  1050. StorageUniform16 = 4434,
  1051. UniformAndStorageBuffer16BitAccess = 4434,
  1052. StoragePushConstant16 = 4435,
  1053. StorageInputOutput16 = 4436,
  1054. DeviceGroup = 4437,
  1055. MultiView = 4439,
  1056. VariablePointersStorageBuffer = 4441,
  1057. VariablePointers = 4442,
  1058. AtomicStorageOps = 4445,
  1059. SampleMaskPostDepthCoverage = 4447,
  1060. StorageBuffer8BitAccess = 4448,
  1061. UniformAndStorageBuffer8BitAccess = 4449,
  1062. StoragePushConstant8 = 4450,
  1063. DenormPreserve = 4464,
  1064. DenormFlushToZero = 4465,
  1065. SignedZeroInfNanPreserve = 4466,
  1066. RoundingModeRTE = 4467,
  1067. RoundingModeRTZ = 4468,
  1068. RayQueryProvisionalKHR = 4471,
  1069. RayQueryKHR = 4472,
  1070. UntypedPointersKHR = 4473,
  1071. RayTraversalPrimitiveCullingKHR = 4478,
  1072. RayTracingKHR = 4479,
  1073. TextureSampleWeightedQCOM = 4484,
  1074. TextureBoxFilterQCOM = 4485,
  1075. TextureBlockMatchQCOM = 4486,
  1076. TileShadingQCOM = 4495,
  1077. CooperativeMatrixConversionQCOM = 4496,
  1078. TextureBlockMatch2QCOM = 4498,
  1079. Float16ImageAMD = 5008,
  1080. ImageGatherBiasLodAMD = 5009,
  1081. FragmentMaskAMD = 5010,
  1082. StencilExportEXT = 5013,
  1083. ImageReadWriteLodAMD = 5015,
  1084. Int64ImageEXT = 5016,
  1085. ShaderClockKHR = 5055,
  1086. ShaderEnqueueAMDX = 5067,
  1087. QuadControlKHR = 5087,
  1088. BFloat16TypeKHR = 5116,
  1089. BFloat16DotProductKHR = 5117,
  1090. BFloat16CooperativeMatrixKHR = 5118,
  1091. DescriptorHeapEXT = 5128,
  1092. SampleMaskOverrideCoverageNV = 5249,
  1093. GeometryShaderPassthroughNV = 5251,
  1094. ShaderViewportIndexLayerEXT = 5254,
  1095. ShaderViewportIndexLayerNV = 5254,
  1096. ShaderViewportMaskNV = 5255,
  1097. ShaderStereoViewNV = 5259,
  1098. PerViewAttributesNV = 5260,
  1099. FragmentFullyCoveredEXT = 5265,
  1100. MeshShadingNV = 5266,
  1101. ImageFootprintNV = 5282,
  1102. MeshShadingEXT = 5283,
  1103. FragmentBarycentricKHR = 5284,
  1104. FragmentBarycentricNV = 5284,
  1105. ComputeDerivativeGroupQuadsKHR = 5288,
  1106. ComputeDerivativeGroupQuadsNV = 5288,
  1107. FragmentDensityEXT = 5291,
  1108. ShadingRateNV = 5291,
  1109. GroupNonUniformPartitionedNV = 5297,
  1110. ShaderNonUniform = 5301,
  1111. ShaderNonUniformEXT = 5301,
  1112. RuntimeDescriptorArray = 5302,
  1113. RuntimeDescriptorArrayEXT = 5302,
  1114. InputAttachmentArrayDynamicIndexing = 5303,
  1115. InputAttachmentArrayDynamicIndexingEXT = 5303,
  1116. UniformTexelBufferArrayDynamicIndexing = 5304,
  1117. UniformTexelBufferArrayDynamicIndexingEXT = 5304,
  1118. StorageTexelBufferArrayDynamicIndexing = 5305,
  1119. StorageTexelBufferArrayDynamicIndexingEXT = 5305,
  1120. UniformBufferArrayNonUniformIndexing = 5306,
  1121. UniformBufferArrayNonUniformIndexingEXT = 5306,
  1122. SampledImageArrayNonUniformIndexing = 5307,
  1123. SampledImageArrayNonUniformIndexingEXT = 5307,
  1124. StorageBufferArrayNonUniformIndexing = 5308,
  1125. StorageBufferArrayNonUniformIndexingEXT = 5308,
  1126. StorageImageArrayNonUniformIndexing = 5309,
  1127. StorageImageArrayNonUniformIndexingEXT = 5309,
  1128. InputAttachmentArrayNonUniformIndexing = 5310,
  1129. InputAttachmentArrayNonUniformIndexingEXT = 5310,
  1130. UniformTexelBufferArrayNonUniformIndexing = 5311,
  1131. UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
  1132. StorageTexelBufferArrayNonUniformIndexing = 5312,
  1133. StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
  1134. RayTracingPositionFetchKHR = 5336,
  1135. RayTracingNV = 5340,
  1136. RayTracingMotionBlurNV = 5341,
  1137. VulkanMemoryModel = 5345,
  1138. VulkanMemoryModelKHR = 5345,
  1139. VulkanMemoryModelDeviceScope = 5346,
  1140. VulkanMemoryModelDeviceScopeKHR = 5346,
  1141. PhysicalStorageBufferAddresses = 5347,
  1142. PhysicalStorageBufferAddressesEXT = 5347,
  1143. ComputeDerivativeGroupLinearKHR = 5350,
  1144. ComputeDerivativeGroupLinearNV = 5350,
  1145. RayTracingProvisionalKHR = 5353,
  1146. CooperativeMatrixNV = 5357,
  1147. FragmentShaderSampleInterlockEXT = 5363,
  1148. FragmentShaderShadingRateInterlockEXT = 5372,
  1149. ShaderSMBuiltinsNV = 5373,
  1150. FragmentShaderPixelInterlockEXT = 5378,
  1151. DemoteToHelperInvocation = 5379,
  1152. DemoteToHelperInvocationEXT = 5379,
  1153. DisplacementMicromapNV = 5380,
  1154. RayTracingOpacityMicromapEXT = 5381,
  1155. ShaderInvocationReorderNV = 5383,
  1156. ShaderInvocationReorderEXT = 5388,
  1157. BindlessTextureNV = 5390,
  1158. RayQueryPositionFetchKHR = 5391,
  1159. CooperativeVectorNV = 5394,
  1160. AtomicFloat16VectorNV = 5404,
  1161. RayTracingDisplacementMicromapNV = 5409,
  1162. RawAccessChainsNV = 5414,
  1163. RayTracingSpheresGeometryNV = 5418,
  1164. RayTracingLinearSweptSpheresGeometryNV = 5419,
  1165. PushConstantBanksNV = 5423,
  1166. LongVectorEXT = 5425,
  1167. Shader64BitIndexingEXT = 5426,
  1168. CooperativeMatrixReductionsNV = 5430,
  1169. CooperativeMatrixConversionsNV = 5431,
  1170. CooperativeMatrixPerElementOperationsNV = 5432,
  1171. CooperativeMatrixTensorAddressingNV = 5433,
  1172. CooperativeMatrixBlockLoadsNV = 5434,
  1173. CooperativeVectorTrainingNV = 5435,
  1174. RayTracingClusterAccelerationStructureNV = 5437,
  1175. TensorAddressingNV = 5439,
  1176. SubgroupShuffleINTEL = 5568,
  1177. SubgroupBufferBlockIOINTEL = 5569,
  1178. SubgroupImageBlockIOINTEL = 5570,
  1179. SubgroupImageMediaBlockIOINTEL = 5579,
  1180. RoundToInfinityINTEL = 5582,
  1181. FloatingPointModeINTEL = 5583,
  1182. IntegerFunctions2INTEL = 5584,
  1183. FunctionPointersINTEL = 5603,
  1184. IndirectReferencesINTEL = 5604,
  1185. AsmINTEL = 5606,
  1186. AtomicFloat32MinMaxEXT = 5612,
  1187. AtomicFloat64MinMaxEXT = 5613,
  1188. AtomicFloat16MinMaxEXT = 5616,
  1189. VectorComputeINTEL = 5617,
  1190. VectorAnyINTEL = 5619,
  1191. ExpectAssumeKHR = 5629,
  1192. SubgroupAvcMotionEstimationINTEL = 5696,
  1193. SubgroupAvcMotionEstimationIntraINTEL = 5697,
  1194. SubgroupAvcMotionEstimationChromaINTEL = 5698,
  1195. VariableLengthArrayINTEL = 5817,
  1196. FunctionFloatControlINTEL = 5821,
  1197. FPGAMemoryAttributesINTEL = 5824,
  1198. FPFastMathModeINTEL = 5837,
  1199. ArbitraryPrecisionIntegersINTEL = 5844,
  1200. ArbitraryPrecisionFloatingPointINTEL = 5845,
  1201. UnstructuredLoopControlsINTEL = 5886,
  1202. FPGALoopControlsINTEL = 5888,
  1203. KernelAttributesINTEL = 5892,
  1204. FPGAKernelAttributesINTEL = 5897,
  1205. FPGAMemoryAccessesINTEL = 5898,
  1206. FPGAClusterAttributesINTEL = 5904,
  1207. LoopFuseINTEL = 5906,
  1208. FPGADSPControlINTEL = 5908,
  1209. MemoryAccessAliasingINTEL = 5910,
  1210. FPGAInvocationPipeliningAttributesINTEL = 5916,
  1211. FPGABufferLocationINTEL = 5920,
  1212. ArbitraryPrecisionFixedPointINTEL = 5922,
  1213. USMStorageClassesINTEL = 5935,
  1214. RuntimeAlignedAttributeINTEL = 5939,
  1215. IOPipesINTEL = 5943,
  1216. BlockingPipesINTEL = 5945,
  1217. FPGARegINTEL = 5948,
  1218. DotProductInputAll = 6016,
  1219. DotProductInputAllKHR = 6016,
  1220. DotProductInput4x8Bit = 6017,
  1221. DotProductInput4x8BitKHR = 6017,
  1222. DotProductInput4x8BitPacked = 6018,
  1223. DotProductInput4x8BitPackedKHR = 6018,
  1224. DotProduct = 6019,
  1225. DotProductKHR = 6019,
  1226. RayCullMaskKHR = 6020,
  1227. CooperativeMatrixKHR = 6022,
  1228. ReplicatedCompositesEXT = 6024,
  1229. BitInstructions = 6025,
  1230. GroupNonUniformRotateKHR = 6026,
  1231. FloatControls2 = 6029,
  1232. AtomicFloat32AddEXT = 6033,
  1233. AtomicFloat64AddEXT = 6034,
  1234. LongCompositesINTEL = 6089,
  1235. OptNoneEXT = 6094,
  1236. OptNoneINTEL = 6094,
  1237. AtomicFloat16AddEXT = 6095,
  1238. DebugInfoModuleINTEL = 6114,
  1239. BFloat16ConversionINTEL = 6115,
  1240. SplitBarrierINTEL = 6141,
  1241. ArithmeticFenceEXT = 6144,
  1242. FPGAClusterAttributesV2INTEL = 6150,
  1243. FPGAKernelAttributesv2INTEL = 6161,
  1244. FPMaxErrorINTEL = 6169,
  1245. FPGALatencyControlINTEL = 6171,
  1246. FPGAArgumentInterfacesINTEL = 6174,
  1247. GlobalVariableHostAccessINTEL = 6187,
  1248. GlobalVariableFPGADecorationsINTEL = 6189,
  1249. SubgroupBufferPrefetchINTEL = 6220,
  1250. Subgroup2DBlockIOINTEL = 6228,
  1251. Subgroup2DBlockTransformINTEL = 6229,
  1252. Subgroup2DBlockTransposeINTEL = 6230,
  1253. SubgroupMatrixMultiplyAccumulateINTEL = 6236,
  1254. GroupUniformArithmeticKHR = 6400,
  1255. MaskedGatherScatterINTEL = 6427,
  1256. CacheControlsINTEL = 6441,
  1257. RegisterLimitsINTEL = 6460,
  1258. Max = 0x7fffffff,
  1259. };
  1260. enum class RayFlagsShift : unsigned {
  1261. OpaqueKHR = 0,
  1262. NoOpaqueKHR = 1,
  1263. TerminateOnFirstHitKHR = 2,
  1264. SkipClosestHitShaderKHR = 3,
  1265. CullBackFacingTrianglesKHR = 4,
  1266. CullFrontFacingTrianglesKHR = 5,
  1267. CullOpaqueKHR = 6,
  1268. CullNoOpaqueKHR = 7,
  1269. SkipBuiltinPrimitivesNV = 8,
  1270. SkipTrianglesKHR = 8,
  1271. SkipAABBsKHR = 9,
  1272. ForceOpacityMicromap2StateEXT = 10,
  1273. Max = 0x7fffffff,
  1274. };
  1275. enum class RayFlagsMask : unsigned {
  1276. MaskNone = 0,
  1277. OpaqueKHR = 0x00000001,
  1278. NoOpaqueKHR = 0x00000002,
  1279. TerminateOnFirstHitKHR = 0x00000004,
  1280. SkipClosestHitShaderKHR = 0x00000008,
  1281. CullBackFacingTrianglesKHR = 0x00000010,
  1282. CullFrontFacingTrianglesKHR = 0x00000020,
  1283. CullOpaqueKHR = 0x00000040,
  1284. CullNoOpaqueKHR = 0x00000080,
  1285. SkipBuiltinPrimitivesNV = 0x00000100,
  1286. SkipTrianglesKHR = 0x00000100,
  1287. SkipAABBsKHR = 0x00000200,
  1288. ForceOpacityMicromap2StateEXT = 0x00000400,
  1289. };
  1290. enum class RayQueryIntersection : unsigned {
  1291. RayQueryCandidateIntersectionKHR = 0,
  1292. RayQueryCommittedIntersectionKHR = 1,
  1293. Max = 0x7fffffff,
  1294. };
  1295. enum class RayQueryCommittedIntersectionType : unsigned {
  1296. RayQueryCommittedIntersectionNoneKHR = 0,
  1297. RayQueryCommittedIntersectionTriangleKHR = 1,
  1298. RayQueryCommittedIntersectionGeneratedKHR = 2,
  1299. Max = 0x7fffffff,
  1300. };
  1301. enum class RayQueryCandidateIntersectionType : unsigned {
  1302. RayQueryCandidateIntersectionTriangleKHR = 0,
  1303. RayQueryCandidateIntersectionAABBKHR = 1,
  1304. Max = 0x7fffffff,
  1305. };
  1306. enum class FragmentShadingRateShift : unsigned {
  1307. Vertical2Pixels = 0,
  1308. Vertical4Pixels = 1,
  1309. Horizontal2Pixels = 2,
  1310. Horizontal4Pixels = 3,
  1311. Max = 0x7fffffff,
  1312. };
  1313. enum class FragmentShadingRateMask : unsigned {
  1314. MaskNone = 0,
  1315. Vertical2Pixels = 0x00000001,
  1316. Vertical4Pixels = 0x00000002,
  1317. Horizontal2Pixels = 0x00000004,
  1318. Horizontal4Pixels = 0x00000008,
  1319. };
  1320. enum class FPDenormMode : unsigned {
  1321. Preserve = 0,
  1322. FlushToZero = 1,
  1323. Max = 0x7fffffff,
  1324. };
  1325. enum class FPOperationMode : unsigned {
  1326. IEEE = 0,
  1327. ALT = 1,
  1328. Max = 0x7fffffff,
  1329. };
  1330. enum class QuantizationModes : unsigned {
  1331. TRN = 0,
  1332. TRN_ZERO = 1,
  1333. RND = 2,
  1334. RND_ZERO = 3,
  1335. RND_INF = 4,
  1336. RND_MIN_INF = 5,
  1337. RND_CONV = 6,
  1338. RND_CONV_ODD = 7,
  1339. Max = 0x7fffffff,
  1340. };
  1341. enum class OverflowModes : unsigned {
  1342. WRAP = 0,
  1343. SAT = 1,
  1344. SAT_ZERO = 2,
  1345. SAT_SYM = 3,
  1346. Max = 0x7fffffff,
  1347. };
  1348. enum class PackedVectorFormat : unsigned {
  1349. PackedVectorFormat4x8Bit = 0,
  1350. PackedVectorFormat4x8BitKHR = 0,
  1351. Max = 0x7fffffff,
  1352. };
  1353. enum class CooperativeMatrixOperandsShift : unsigned {
  1354. MatrixASignedComponentsKHR = 0,
  1355. MatrixBSignedComponentsKHR = 1,
  1356. MatrixCSignedComponentsKHR = 2,
  1357. MatrixResultSignedComponentsKHR = 3,
  1358. SaturatingAccumulationKHR = 4,
  1359. Max = 0x7fffffff,
  1360. };
  1361. enum class CooperativeMatrixOperandsMask : unsigned {
  1362. MaskNone = 0,
  1363. MatrixASignedComponentsKHR = 0x00000001,
  1364. MatrixBSignedComponentsKHR = 0x00000002,
  1365. MatrixCSignedComponentsKHR = 0x00000004,
  1366. MatrixResultSignedComponentsKHR = 0x00000008,
  1367. SaturatingAccumulationKHR = 0x00000010,
  1368. };
  1369. enum class CooperativeMatrixLayout : unsigned {
  1370. RowMajorKHR = 0,
  1371. ColumnMajorKHR = 1,
  1372. RowBlockedInterleavedARM = 4202,
  1373. ColumnBlockedInterleavedARM = 4203,
  1374. Max = 0x7fffffff,
  1375. };
  1376. enum class CooperativeMatrixUse : unsigned {
  1377. MatrixAKHR = 0,
  1378. MatrixBKHR = 1,
  1379. MatrixAccumulatorKHR = 2,
  1380. Max = 0x7fffffff,
  1381. };
  1382. enum class CooperativeMatrixReduceShift : unsigned {
  1383. Row = 0,
  1384. Column = 1,
  1385. CooperativeMatrixReduce2x2 = 2,
  1386. Max = 0x7fffffff,
  1387. };
  1388. enum class CooperativeMatrixReduceMask : unsigned {
  1389. MaskNone = 0,
  1390. Row = 0x00000001,
  1391. Column = 0x00000002,
  1392. CooperativeMatrixReduce2x2 = 0x00000004,
  1393. };
  1394. enum class TensorClampMode : unsigned {
  1395. Undefined = 0,
  1396. Constant = 1,
  1397. ClampToEdge = 2,
  1398. Repeat = 3,
  1399. RepeatMirrored = 4,
  1400. Max = 0x7fffffff,
  1401. };
  1402. enum class TensorAddressingOperandsShift : unsigned {
  1403. TensorView = 0,
  1404. DecodeFunc = 1,
  1405. Max = 0x7fffffff,
  1406. };
  1407. enum class TensorAddressingOperandsMask : unsigned {
  1408. MaskNone = 0,
  1409. TensorView = 0x00000001,
  1410. DecodeFunc = 0x00000002,
  1411. };
  1412. enum class TensorOperandsShift : unsigned {
  1413. NontemporalARM = 0,
  1414. OutOfBoundsValueARM = 1,
  1415. Max = 0x7fffffff,
  1416. };
  1417. enum class TensorOperandsMask : unsigned {
  1418. MaskNone = 0,
  1419. NontemporalARM = 0x00000001,
  1420. OutOfBoundsValueARM = 0x00000002,
  1421. };
  1422. enum class InitializationModeQualifier : unsigned {
  1423. InitOnDeviceReprogramINTEL = 0,
  1424. InitOnDeviceResetINTEL = 1,
  1425. Max = 0x7fffffff,
  1426. };
  1427. enum class HostAccessQualifier : unsigned {
  1428. NoneINTEL = 0,
  1429. ReadINTEL = 1,
  1430. WriteINTEL = 2,
  1431. ReadWriteINTEL = 3,
  1432. Max = 0x7fffffff,
  1433. };
  1434. enum class LoadCacheControl : unsigned {
  1435. UncachedINTEL = 0,
  1436. CachedINTEL = 1,
  1437. StreamingINTEL = 2,
  1438. InvalidateAfterReadINTEL = 3,
  1439. ConstCachedINTEL = 4,
  1440. Max = 0x7fffffff,
  1441. };
  1442. enum class StoreCacheControl : unsigned {
  1443. UncachedINTEL = 0,
  1444. WriteThroughINTEL = 1,
  1445. WriteBackINTEL = 2,
  1446. StreamingINTEL = 3,
  1447. Max = 0x7fffffff,
  1448. };
  1449. enum class NamedMaximumNumberOfRegisters : unsigned {
  1450. AutoINTEL = 0,
  1451. Max = 0x7fffffff,
  1452. };
  1453. enum class MatrixMultiplyAccumulateOperandsShift : unsigned {
  1454. MatrixASignedComponentsINTEL = 0,
  1455. MatrixBSignedComponentsINTEL = 1,
  1456. MatrixCBFloat16INTEL = 2,
  1457. MatrixResultBFloat16INTEL = 3,
  1458. MatrixAPackedInt8INTEL = 4,
  1459. MatrixBPackedInt8INTEL = 5,
  1460. MatrixAPackedInt4INTEL = 6,
  1461. MatrixBPackedInt4INTEL = 7,
  1462. MatrixATF32INTEL = 8,
  1463. MatrixBTF32INTEL = 9,
  1464. MatrixAPackedFloat16INTEL = 10,
  1465. MatrixBPackedFloat16INTEL = 11,
  1466. MatrixAPackedBFloat16INTEL = 12,
  1467. MatrixBPackedBFloat16INTEL = 13,
  1468. Max = 0x7fffffff,
  1469. };
  1470. enum class MatrixMultiplyAccumulateOperandsMask : unsigned {
  1471. MaskNone = 0,
  1472. MatrixASignedComponentsINTEL = 0x00000001,
  1473. MatrixBSignedComponentsINTEL = 0x00000002,
  1474. MatrixCBFloat16INTEL = 0x00000004,
  1475. MatrixResultBFloat16INTEL = 0x00000008,
  1476. MatrixAPackedInt8INTEL = 0x00000010,
  1477. MatrixBPackedInt8INTEL = 0x00000020,
  1478. MatrixAPackedInt4INTEL = 0x00000040,
  1479. MatrixBPackedInt4INTEL = 0x00000080,
  1480. MatrixATF32INTEL = 0x00000100,
  1481. MatrixBTF32INTEL = 0x00000200,
  1482. MatrixAPackedFloat16INTEL = 0x00000400,
  1483. MatrixBPackedFloat16INTEL = 0x00000800,
  1484. MatrixAPackedBFloat16INTEL = 0x00001000,
  1485. MatrixBPackedBFloat16INTEL = 0x00002000,
  1486. };
  1487. enum class RawAccessChainOperandsShift : unsigned {
  1488. RobustnessPerComponentNV = 0,
  1489. RobustnessPerElementNV = 1,
  1490. Max = 0x7fffffff,
  1491. };
  1492. enum class RawAccessChainOperandsMask : unsigned {
  1493. MaskNone = 0,
  1494. RobustnessPerComponentNV = 0x00000001,
  1495. RobustnessPerElementNV = 0x00000002,
  1496. };
  1497. enum class FPEncoding : unsigned {
  1498. BFloat16KHR = 0,
  1499. Float8E4M3EXT = 4214,
  1500. Float8E5M2EXT = 4215,
  1501. Max = 0x7fffffff,
  1502. };
  1503. enum class CooperativeVectorMatrixLayout : unsigned {
  1504. RowMajorNV = 0,
  1505. ColumnMajorNV = 1,
  1506. InferencingOptimalNV = 2,
  1507. TrainingOptimalNV = 3,
  1508. Max = 0x7fffffff,
  1509. };
  1510. enum class ComponentType : unsigned {
  1511. Float16NV = 0,
  1512. Float32NV = 1,
  1513. Float64NV = 2,
  1514. SignedInt8NV = 3,
  1515. SignedInt16NV = 4,
  1516. SignedInt32NV = 5,
  1517. SignedInt64NV = 6,
  1518. UnsignedInt8NV = 7,
  1519. UnsignedInt16NV = 8,
  1520. UnsignedInt32NV = 9,
  1521. UnsignedInt64NV = 10,
  1522. SignedInt8PackedNV = 1000491000,
  1523. UnsignedInt8PackedNV = 1000491001,
  1524. FloatE4M3NV = 1000491002,
  1525. FloatE5M2NV = 1000491003,
  1526. Max = 0x7fffffff,
  1527. };
  1528. enum class Op : unsigned {
  1529. OpNop = 0,
  1530. OpUndef = 1,
  1531. OpSourceContinued = 2,
  1532. OpSource = 3,
  1533. OpSourceExtension = 4,
  1534. OpName = 5,
  1535. OpMemberName = 6,
  1536. OpString = 7,
  1537. OpLine = 8,
  1538. OpExtension = 10,
  1539. OpExtInstImport = 11,
  1540. OpExtInst = 12,
  1541. OpMemoryModel = 14,
  1542. OpEntryPoint = 15,
  1543. OpExecutionMode = 16,
  1544. OpCapability = 17,
  1545. OpTypeVoid = 19,
  1546. OpTypeBool = 20,
  1547. OpTypeInt = 21,
  1548. OpTypeFloat = 22,
  1549. OpTypeVector = 23,
  1550. OpTypeMatrix = 24,
  1551. OpTypeImage = 25,
  1552. OpTypeSampler = 26,
  1553. OpTypeSampledImage = 27,
  1554. OpTypeArray = 28,
  1555. OpTypeRuntimeArray = 29,
  1556. OpTypeStruct = 30,
  1557. OpTypeOpaque = 31,
  1558. OpTypePointer = 32,
  1559. OpTypeFunction = 33,
  1560. OpTypeEvent = 34,
  1561. OpTypeDeviceEvent = 35,
  1562. OpTypeReserveId = 36,
  1563. OpTypeQueue = 37,
  1564. OpTypePipe = 38,
  1565. OpTypeForwardPointer = 39,
  1566. OpConstantTrue = 41,
  1567. OpConstantFalse = 42,
  1568. OpConstant = 43,
  1569. OpConstantComposite = 44,
  1570. OpConstantSampler = 45,
  1571. OpConstantNull = 46,
  1572. OpSpecConstantTrue = 48,
  1573. OpSpecConstantFalse = 49,
  1574. OpSpecConstant = 50,
  1575. OpSpecConstantComposite = 51,
  1576. OpSpecConstantOp = 52,
  1577. OpFunction = 54,
  1578. OpFunctionParameter = 55,
  1579. OpFunctionEnd = 56,
  1580. OpFunctionCall = 57,
  1581. OpVariable = 59,
  1582. OpImageTexelPointer = 60,
  1583. OpLoad = 61,
  1584. OpStore = 62,
  1585. OpCopyMemory = 63,
  1586. OpCopyMemorySized = 64,
  1587. OpAccessChain = 65,
  1588. OpInBoundsAccessChain = 66,
  1589. OpPtrAccessChain = 67,
  1590. OpArrayLength = 68,
  1591. OpGenericPtrMemSemantics = 69,
  1592. OpInBoundsPtrAccessChain = 70,
  1593. OpDecorate = 71,
  1594. OpMemberDecorate = 72,
  1595. OpDecorationGroup = 73,
  1596. OpGroupDecorate = 74,
  1597. OpGroupMemberDecorate = 75,
  1598. OpVectorExtractDynamic = 77,
  1599. OpVectorInsertDynamic = 78,
  1600. OpVectorShuffle = 79,
  1601. OpCompositeConstruct = 80,
  1602. OpCompositeExtract = 81,
  1603. OpCompositeInsert = 82,
  1604. OpCopyObject = 83,
  1605. OpTranspose = 84,
  1606. OpSampledImage = 86,
  1607. OpImageSampleImplicitLod = 87,
  1608. OpImageSampleExplicitLod = 88,
  1609. OpImageSampleDrefImplicitLod = 89,
  1610. OpImageSampleDrefExplicitLod = 90,
  1611. OpImageSampleProjImplicitLod = 91,
  1612. OpImageSampleProjExplicitLod = 92,
  1613. OpImageSampleProjDrefImplicitLod = 93,
  1614. OpImageSampleProjDrefExplicitLod = 94,
  1615. OpImageFetch = 95,
  1616. OpImageGather = 96,
  1617. OpImageDrefGather = 97,
  1618. OpImageRead = 98,
  1619. OpImageWrite = 99,
  1620. OpImage = 100,
  1621. OpImageQueryFormat = 101,
  1622. OpImageQueryOrder = 102,
  1623. OpImageQuerySizeLod = 103,
  1624. OpImageQuerySize = 104,
  1625. OpImageQueryLod = 105,
  1626. OpImageQueryLevels = 106,
  1627. OpImageQuerySamples = 107,
  1628. OpConvertFToU = 109,
  1629. OpConvertFToS = 110,
  1630. OpConvertSToF = 111,
  1631. OpConvertUToF = 112,
  1632. OpUConvert = 113,
  1633. OpSConvert = 114,
  1634. OpFConvert = 115,
  1635. OpQuantizeToF16 = 116,
  1636. OpConvertPtrToU = 117,
  1637. OpSatConvertSToU = 118,
  1638. OpSatConvertUToS = 119,
  1639. OpConvertUToPtr = 120,
  1640. OpPtrCastToGeneric = 121,
  1641. OpGenericCastToPtr = 122,
  1642. OpGenericCastToPtrExplicit = 123,
  1643. OpBitcast = 124,
  1644. OpSNegate = 126,
  1645. OpFNegate = 127,
  1646. OpIAdd = 128,
  1647. OpFAdd = 129,
  1648. OpISub = 130,
  1649. OpFSub = 131,
  1650. OpIMul = 132,
  1651. OpFMul = 133,
  1652. OpUDiv = 134,
  1653. OpSDiv = 135,
  1654. OpFDiv = 136,
  1655. OpUMod = 137,
  1656. OpSRem = 138,
  1657. OpSMod = 139,
  1658. OpFRem = 140,
  1659. OpFMod = 141,
  1660. OpVectorTimesScalar = 142,
  1661. OpMatrixTimesScalar = 143,
  1662. OpVectorTimesMatrix = 144,
  1663. OpMatrixTimesVector = 145,
  1664. OpMatrixTimesMatrix = 146,
  1665. OpOuterProduct = 147,
  1666. OpDot = 148,
  1667. OpIAddCarry = 149,
  1668. OpISubBorrow = 150,
  1669. OpUMulExtended = 151,
  1670. OpSMulExtended = 152,
  1671. OpAny = 154,
  1672. OpAll = 155,
  1673. OpIsNan = 156,
  1674. OpIsInf = 157,
  1675. OpIsFinite = 158,
  1676. OpIsNormal = 159,
  1677. OpSignBitSet = 160,
  1678. OpLessOrGreater = 161,
  1679. OpOrdered = 162,
  1680. OpUnordered = 163,
  1681. OpLogicalEqual = 164,
  1682. OpLogicalNotEqual = 165,
  1683. OpLogicalOr = 166,
  1684. OpLogicalAnd = 167,
  1685. OpLogicalNot = 168,
  1686. OpSelect = 169,
  1687. OpIEqual = 170,
  1688. OpINotEqual = 171,
  1689. OpUGreaterThan = 172,
  1690. OpSGreaterThan = 173,
  1691. OpUGreaterThanEqual = 174,
  1692. OpSGreaterThanEqual = 175,
  1693. OpULessThan = 176,
  1694. OpSLessThan = 177,
  1695. OpULessThanEqual = 178,
  1696. OpSLessThanEqual = 179,
  1697. OpFOrdEqual = 180,
  1698. OpFUnordEqual = 181,
  1699. OpFOrdNotEqual = 182,
  1700. OpFUnordNotEqual = 183,
  1701. OpFOrdLessThan = 184,
  1702. OpFUnordLessThan = 185,
  1703. OpFOrdGreaterThan = 186,
  1704. OpFUnordGreaterThan = 187,
  1705. OpFOrdLessThanEqual = 188,
  1706. OpFUnordLessThanEqual = 189,
  1707. OpFOrdGreaterThanEqual = 190,
  1708. OpFUnordGreaterThanEqual = 191,
  1709. OpShiftRightLogical = 194,
  1710. OpShiftRightArithmetic = 195,
  1711. OpShiftLeftLogical = 196,
  1712. OpBitwiseOr = 197,
  1713. OpBitwiseXor = 198,
  1714. OpBitwiseAnd = 199,
  1715. OpNot = 200,
  1716. OpBitFieldInsert = 201,
  1717. OpBitFieldSExtract = 202,
  1718. OpBitFieldUExtract = 203,
  1719. OpBitReverse = 204,
  1720. OpBitCount = 205,
  1721. OpDPdx = 207,
  1722. OpDPdy = 208,
  1723. OpFwidth = 209,
  1724. OpDPdxFine = 210,
  1725. OpDPdyFine = 211,
  1726. OpFwidthFine = 212,
  1727. OpDPdxCoarse = 213,
  1728. OpDPdyCoarse = 214,
  1729. OpFwidthCoarse = 215,
  1730. OpEmitVertex = 218,
  1731. OpEndPrimitive = 219,
  1732. OpEmitStreamVertex = 220,
  1733. OpEndStreamPrimitive = 221,
  1734. OpControlBarrier = 224,
  1735. OpMemoryBarrier = 225,
  1736. OpAtomicLoad = 227,
  1737. OpAtomicStore = 228,
  1738. OpAtomicExchange = 229,
  1739. OpAtomicCompareExchange = 230,
  1740. OpAtomicCompareExchangeWeak = 231,
  1741. OpAtomicIIncrement = 232,
  1742. OpAtomicIDecrement = 233,
  1743. OpAtomicIAdd = 234,
  1744. OpAtomicISub = 235,
  1745. OpAtomicSMin = 236,
  1746. OpAtomicUMin = 237,
  1747. OpAtomicSMax = 238,
  1748. OpAtomicUMax = 239,
  1749. OpAtomicAnd = 240,
  1750. OpAtomicOr = 241,
  1751. OpAtomicXor = 242,
  1752. OpPhi = 245,
  1753. OpLoopMerge = 246,
  1754. OpSelectionMerge = 247,
  1755. OpLabel = 248,
  1756. OpBranch = 249,
  1757. OpBranchConditional = 250,
  1758. OpSwitch = 251,
  1759. OpKill = 252,
  1760. OpReturn = 253,
  1761. OpReturnValue = 254,
  1762. OpUnreachable = 255,
  1763. OpLifetimeStart = 256,
  1764. OpLifetimeStop = 257,
  1765. OpGroupAsyncCopy = 259,
  1766. OpGroupWaitEvents = 260,
  1767. OpGroupAll = 261,
  1768. OpGroupAny = 262,
  1769. OpGroupBroadcast = 263,
  1770. OpGroupIAdd = 264,
  1771. OpGroupFAdd = 265,
  1772. OpGroupFMin = 266,
  1773. OpGroupUMin = 267,
  1774. OpGroupSMin = 268,
  1775. OpGroupFMax = 269,
  1776. OpGroupUMax = 270,
  1777. OpGroupSMax = 271,
  1778. OpReadPipe = 274,
  1779. OpWritePipe = 275,
  1780. OpReservedReadPipe = 276,
  1781. OpReservedWritePipe = 277,
  1782. OpReserveReadPipePackets = 278,
  1783. OpReserveWritePipePackets = 279,
  1784. OpCommitReadPipe = 280,
  1785. OpCommitWritePipe = 281,
  1786. OpIsValidReserveId = 282,
  1787. OpGetNumPipePackets = 283,
  1788. OpGetMaxPipePackets = 284,
  1789. OpGroupReserveReadPipePackets = 285,
  1790. OpGroupReserveWritePipePackets = 286,
  1791. OpGroupCommitReadPipe = 287,
  1792. OpGroupCommitWritePipe = 288,
  1793. OpEnqueueMarker = 291,
  1794. OpEnqueueKernel = 292,
  1795. OpGetKernelNDrangeSubGroupCount = 293,
  1796. OpGetKernelNDrangeMaxSubGroupSize = 294,
  1797. OpGetKernelWorkGroupSize = 295,
  1798. OpGetKernelPreferredWorkGroupSizeMultiple = 296,
  1799. OpRetainEvent = 297,
  1800. OpReleaseEvent = 298,
  1801. OpCreateUserEvent = 299,
  1802. OpIsValidEvent = 300,
  1803. OpSetUserEventStatus = 301,
  1804. OpCaptureEventProfilingInfo = 302,
  1805. OpGetDefaultQueue = 303,
  1806. OpBuildNDRange = 304,
  1807. OpImageSparseSampleImplicitLod = 305,
  1808. OpImageSparseSampleExplicitLod = 306,
  1809. OpImageSparseSampleDrefImplicitLod = 307,
  1810. OpImageSparseSampleDrefExplicitLod = 308,
  1811. OpImageSparseSampleProjImplicitLod = 309,
  1812. OpImageSparseSampleProjExplicitLod = 310,
  1813. OpImageSparseSampleProjDrefImplicitLod = 311,
  1814. OpImageSparseSampleProjDrefExplicitLod = 312,
  1815. OpImageSparseFetch = 313,
  1816. OpImageSparseGather = 314,
  1817. OpImageSparseDrefGather = 315,
  1818. OpImageSparseTexelsResident = 316,
  1819. OpNoLine = 317,
  1820. OpAtomicFlagTestAndSet = 318,
  1821. OpAtomicFlagClear = 319,
  1822. OpImageSparseRead = 320,
  1823. OpSizeOf = 321,
  1824. OpTypePipeStorage = 322,
  1825. OpConstantPipeStorage = 323,
  1826. OpCreatePipeFromPipeStorage = 324,
  1827. OpGetKernelLocalSizeForSubgroupCount = 325,
  1828. OpGetKernelMaxNumSubgroups = 326,
  1829. OpTypeNamedBarrier = 327,
  1830. OpNamedBarrierInitialize = 328,
  1831. OpMemoryNamedBarrier = 329,
  1832. OpModuleProcessed = 330,
  1833. OpExecutionModeId = 331,
  1834. OpDecorateId = 332,
  1835. OpGroupNonUniformElect = 333,
  1836. OpGroupNonUniformAll = 334,
  1837. OpGroupNonUniformAny = 335,
  1838. OpGroupNonUniformAllEqual = 336,
  1839. OpGroupNonUniformBroadcast = 337,
  1840. OpGroupNonUniformBroadcastFirst = 338,
  1841. OpGroupNonUniformBallot = 339,
  1842. OpGroupNonUniformInverseBallot = 340,
  1843. OpGroupNonUniformBallotBitExtract = 341,
  1844. OpGroupNonUniformBallotBitCount = 342,
  1845. OpGroupNonUniformBallotFindLSB = 343,
  1846. OpGroupNonUniformBallotFindMSB = 344,
  1847. OpGroupNonUniformShuffle = 345,
  1848. OpGroupNonUniformShuffleXor = 346,
  1849. OpGroupNonUniformShuffleUp = 347,
  1850. OpGroupNonUniformShuffleDown = 348,
  1851. OpGroupNonUniformIAdd = 349,
  1852. OpGroupNonUniformFAdd = 350,
  1853. OpGroupNonUniformIMul = 351,
  1854. OpGroupNonUniformFMul = 352,
  1855. OpGroupNonUniformSMin = 353,
  1856. OpGroupNonUniformUMin = 354,
  1857. OpGroupNonUniformFMin = 355,
  1858. OpGroupNonUniformSMax = 356,
  1859. OpGroupNonUniformUMax = 357,
  1860. OpGroupNonUniformFMax = 358,
  1861. OpGroupNonUniformBitwiseAnd = 359,
  1862. OpGroupNonUniformBitwiseOr = 360,
  1863. OpGroupNonUniformBitwiseXor = 361,
  1864. OpGroupNonUniformLogicalAnd = 362,
  1865. OpGroupNonUniformLogicalOr = 363,
  1866. OpGroupNonUniformLogicalXor = 364,
  1867. OpGroupNonUniformQuadBroadcast = 365,
  1868. OpGroupNonUniformQuadSwap = 366,
  1869. OpCopyLogical = 400,
  1870. OpPtrEqual = 401,
  1871. OpPtrNotEqual = 402,
  1872. OpPtrDiff = 403,
  1873. OpColorAttachmentReadEXT = 4160,
  1874. OpDepthAttachmentReadEXT = 4161,
  1875. OpStencilAttachmentReadEXT = 4162,
  1876. OpTypeTensorARM = 4163,
  1877. OpTensorReadARM = 4164,
  1878. OpTensorWriteARM = 4165,
  1879. OpTensorQuerySizeARM = 4166,
  1880. OpTerminateInvocation = 4416,
  1881. OpTypeUntypedPointerKHR = 4417,
  1882. OpUntypedVariableKHR = 4418,
  1883. OpUntypedAccessChainKHR = 4419,
  1884. OpUntypedInBoundsAccessChainKHR = 4420,
  1885. OpSubgroupBallotKHR = 4421,
  1886. OpSubgroupFirstInvocationKHR = 4422,
  1887. OpUntypedPtrAccessChainKHR = 4423,
  1888. OpUntypedInBoundsPtrAccessChainKHR = 4424,
  1889. OpUntypedArrayLengthKHR = 4425,
  1890. OpUntypedPrefetchKHR = 4426,
  1891. OpSubgroupAllKHR = 4428,
  1892. OpSubgroupAnyKHR = 4429,
  1893. OpSubgroupAllEqualKHR = 4430,
  1894. OpGroupNonUniformRotateKHR = 4431,
  1895. OpSubgroupReadInvocationKHR = 4432,
  1896. OpExtInstWithForwardRefsKHR = 4433,
  1897. OpTraceRayKHR = 4445,
  1898. OpExecuteCallableKHR = 4446,
  1899. OpConvertUToAccelerationStructureKHR = 4447,
  1900. OpIgnoreIntersectionKHR = 4448,
  1901. OpTerminateRayKHR = 4449,
  1902. OpSDot = 4450,
  1903. OpSDotKHR = 4450,
  1904. OpUDot = 4451,
  1905. OpUDotKHR = 4451,
  1906. OpSUDot = 4452,
  1907. OpSUDotKHR = 4452,
  1908. OpSDotAccSat = 4453,
  1909. OpSDotAccSatKHR = 4453,
  1910. OpUDotAccSat = 4454,
  1911. OpUDotAccSatKHR = 4454,
  1912. OpSUDotAccSat = 4455,
  1913. OpSUDotAccSatKHR = 4455,
  1914. OpTypeCooperativeMatrixKHR = 4456,
  1915. OpCooperativeMatrixLoadKHR = 4457,
  1916. OpCooperativeMatrixStoreKHR = 4458,
  1917. OpCooperativeMatrixMulAddKHR = 4459,
  1918. OpCooperativeMatrixLengthKHR = 4460,
  1919. OpConstantCompositeReplicateEXT = 4461,
  1920. OpSpecConstantCompositeReplicateEXT = 4462,
  1921. OpCompositeConstructReplicateEXT = 4463,
  1922. OpTypeRayQueryKHR = 4472,
  1923. OpRayQueryInitializeKHR = 4473,
  1924. OpRayQueryTerminateKHR = 4474,
  1925. OpRayQueryGenerateIntersectionKHR = 4475,
  1926. OpRayQueryConfirmIntersectionKHR = 4476,
  1927. OpRayQueryProceedKHR = 4477,
  1928. OpRayQueryGetIntersectionTypeKHR = 4479,
  1929. OpImageSampleWeightedQCOM = 4480,
  1930. OpImageBoxFilterQCOM = 4481,
  1931. OpImageBlockMatchSSDQCOM = 4482,
  1932. OpImageBlockMatchSADQCOM = 4483,
  1933. OpBitCastArrayQCOM = 4497,
  1934. OpImageBlockMatchWindowSSDQCOM = 4500,
  1935. OpImageBlockMatchWindowSADQCOM = 4501,
  1936. OpImageBlockMatchGatherSSDQCOM = 4502,
  1937. OpImageBlockMatchGatherSADQCOM = 4503,
  1938. OpCompositeConstructCoopMatQCOM = 4540,
  1939. OpCompositeExtractCoopMatQCOM = 4541,
  1940. OpExtractSubArrayQCOM = 4542,
  1941. OpGroupIAddNonUniformAMD = 5000,
  1942. OpGroupFAddNonUniformAMD = 5001,
  1943. OpGroupFMinNonUniformAMD = 5002,
  1944. OpGroupUMinNonUniformAMD = 5003,
  1945. OpGroupSMinNonUniformAMD = 5004,
  1946. OpGroupFMaxNonUniformAMD = 5005,
  1947. OpGroupUMaxNonUniformAMD = 5006,
  1948. OpGroupSMaxNonUniformAMD = 5007,
  1949. OpFragmentMaskFetchAMD = 5011,
  1950. OpFragmentFetchAMD = 5012,
  1951. OpReadClockKHR = 5056,
  1952. OpAllocateNodePayloadsAMDX = 5074,
  1953. OpEnqueueNodePayloadsAMDX = 5075,
  1954. OpTypeNodePayloadArrayAMDX = 5076,
  1955. OpFinishWritingNodePayloadAMDX = 5078,
  1956. OpNodePayloadArrayLengthAMDX = 5090,
  1957. OpIsNodePayloadValidAMDX = 5101,
  1958. OpConstantStringAMDX = 5103,
  1959. OpSpecConstantStringAMDX = 5104,
  1960. OpGroupNonUniformQuadAllKHR = 5110,
  1961. OpGroupNonUniformQuadAnyKHR = 5111,
  1962. OpTypeBufferEXT = 5115,
  1963. OpBufferPointerEXT = 5119,
  1964. OpUntypedImageTexelPointerEXT = 5126,
  1965. OpMemberDecorateIdEXT = 5127,
  1966. OpConstantSizeOfEXT = 5129,
  1967. OpHitObjectRecordHitMotionNV = 5249,
  1968. OpHitObjectRecordHitWithIndexMotionNV = 5250,
  1969. OpHitObjectRecordMissMotionNV = 5251,
  1970. OpHitObjectGetWorldToObjectNV = 5252,
  1971. OpHitObjectGetObjectToWorldNV = 5253,
  1972. OpHitObjectGetObjectRayDirectionNV = 5254,
  1973. OpHitObjectGetObjectRayOriginNV = 5255,
  1974. OpHitObjectTraceRayMotionNV = 5256,
  1975. OpHitObjectGetShaderRecordBufferHandleNV = 5257,
  1976. OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
  1977. OpHitObjectRecordEmptyNV = 5259,
  1978. OpHitObjectTraceRayNV = 5260,
  1979. OpHitObjectRecordHitNV = 5261,
  1980. OpHitObjectRecordHitWithIndexNV = 5262,
  1981. OpHitObjectRecordMissNV = 5263,
  1982. OpHitObjectExecuteShaderNV = 5264,
  1983. OpHitObjectGetCurrentTimeNV = 5265,
  1984. OpHitObjectGetAttributesNV = 5266,
  1985. OpHitObjectGetHitKindNV = 5267,
  1986. OpHitObjectGetPrimitiveIndexNV = 5268,
  1987. OpHitObjectGetGeometryIndexNV = 5269,
  1988. OpHitObjectGetInstanceIdNV = 5270,
  1989. OpHitObjectGetInstanceCustomIndexNV = 5271,
  1990. OpHitObjectGetWorldRayDirectionNV = 5272,
  1991. OpHitObjectGetWorldRayOriginNV = 5273,
  1992. OpHitObjectGetRayTMaxNV = 5274,
  1993. OpHitObjectGetRayTMinNV = 5275,
  1994. OpHitObjectIsEmptyNV = 5276,
  1995. OpHitObjectIsHitNV = 5277,
  1996. OpHitObjectIsMissNV = 5278,
  1997. OpReorderThreadWithHitObjectNV = 5279,
  1998. OpReorderThreadWithHintNV = 5280,
  1999. OpTypeHitObjectNV = 5281,
  2000. OpImageSampleFootprintNV = 5283,
  2001. OpTypeCooperativeVectorNV = 5288,
  2002. OpTypeVectorIdEXT = 5288,
  2003. OpCooperativeVectorMatrixMulNV = 5289,
  2004. OpCooperativeVectorOuterProductAccumulateNV = 5290,
  2005. OpCooperativeVectorReduceSumAccumulateNV = 5291,
  2006. OpCooperativeVectorMatrixMulAddNV = 5292,
  2007. OpCooperativeMatrixConvertNV = 5293,
  2008. OpEmitMeshTasksEXT = 5294,
  2009. OpSetMeshOutputsEXT = 5295,
  2010. OpGroupNonUniformPartitionNV = 5296,
  2011. OpWritePackedPrimitiveIndices4x8NV = 5299,
  2012. OpFetchMicroTriangleVertexPositionNV = 5300,
  2013. OpFetchMicroTriangleVertexBarycentricNV = 5301,
  2014. OpCooperativeVectorLoadNV = 5302,
  2015. OpCooperativeVectorStoreNV = 5303,
  2016. OpHitObjectRecordFromQueryEXT = 5304,
  2017. OpHitObjectRecordMissEXT = 5305,
  2018. OpHitObjectRecordMissMotionEXT = 5306,
  2019. OpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307,
  2020. OpHitObjectGetRayFlagsEXT = 5308,
  2021. OpHitObjectSetShaderBindingTableRecordIndexEXT = 5309,
  2022. OpHitObjectReorderExecuteShaderEXT = 5310,
  2023. OpHitObjectTraceReorderExecuteEXT = 5311,
  2024. OpHitObjectTraceMotionReorderExecuteEXT = 5312,
  2025. OpTypeHitObjectEXT = 5313,
  2026. OpReorderThreadWithHintEXT = 5314,
  2027. OpReorderThreadWithHitObjectEXT = 5315,
  2028. OpHitObjectTraceRayEXT = 5316,
  2029. OpHitObjectTraceRayMotionEXT = 5317,
  2030. OpHitObjectRecordEmptyEXT = 5318,
  2031. OpHitObjectExecuteShaderEXT = 5319,
  2032. OpHitObjectGetCurrentTimeEXT = 5320,
  2033. OpHitObjectGetAttributesEXT = 5321,
  2034. OpHitObjectGetHitKindEXT = 5322,
  2035. OpHitObjectGetPrimitiveIndexEXT = 5323,
  2036. OpHitObjectGetGeometryIndexEXT = 5324,
  2037. OpHitObjectGetInstanceIdEXT = 5325,
  2038. OpHitObjectGetInstanceCustomIndexEXT = 5326,
  2039. OpHitObjectGetObjectRayOriginEXT = 5327,
  2040. OpHitObjectGetObjectRayDirectionEXT = 5328,
  2041. OpHitObjectGetWorldRayDirectionEXT = 5329,
  2042. OpHitObjectGetWorldRayOriginEXT = 5330,
  2043. OpHitObjectGetObjectToWorldEXT = 5331,
  2044. OpHitObjectGetWorldToObjectEXT = 5332,
  2045. OpHitObjectGetRayTMaxEXT = 5333,
  2046. OpReportIntersectionKHR = 5334,
  2047. OpReportIntersectionNV = 5334,
  2048. OpIgnoreIntersectionNV = 5335,
  2049. OpTerminateRayNV = 5336,
  2050. OpTraceNV = 5337,
  2051. OpTraceMotionNV = 5338,
  2052. OpTraceRayMotionNV = 5339,
  2053. OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
  2054. OpTypeAccelerationStructureKHR = 5341,
  2055. OpTypeAccelerationStructureNV = 5341,
  2056. OpExecuteCallableNV = 5344,
  2057. OpRayQueryGetClusterIdNV = 5345,
  2058. OpHitObjectGetClusterIdNV = 5346,
  2059. OpHitObjectGetRayTMinEXT = 5347,
  2060. OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348,
  2061. OpHitObjectGetShaderRecordBufferHandleEXT = 5349,
  2062. OpHitObjectIsEmptyEXT = 5350,
  2063. OpHitObjectIsHitEXT = 5351,
  2064. OpHitObjectIsMissEXT = 5352,
  2065. OpTypeCooperativeMatrixNV = 5358,
  2066. OpCooperativeMatrixLoadNV = 5359,
  2067. OpCooperativeMatrixStoreNV = 5360,
  2068. OpCooperativeMatrixMulAddNV = 5361,
  2069. OpCooperativeMatrixLengthNV = 5362,
  2070. OpBeginInvocationInterlockEXT = 5364,
  2071. OpEndInvocationInterlockEXT = 5365,
  2072. OpCooperativeMatrixReduceNV = 5366,
  2073. OpCooperativeMatrixLoadTensorNV = 5367,
  2074. OpCooperativeMatrixStoreTensorNV = 5368,
  2075. OpCooperativeMatrixPerElementOpNV = 5369,
  2076. OpTypeTensorLayoutNV = 5370,
  2077. OpTypeTensorViewNV = 5371,
  2078. OpCreateTensorLayoutNV = 5372,
  2079. OpTensorLayoutSetDimensionNV = 5373,
  2080. OpTensorLayoutSetStrideNV = 5374,
  2081. OpTensorLayoutSliceNV = 5375,
  2082. OpTensorLayoutSetClampValueNV = 5376,
  2083. OpCreateTensorViewNV = 5377,
  2084. OpTensorViewSetDimensionNV = 5378,
  2085. OpTensorViewSetStrideNV = 5379,
  2086. OpDemoteToHelperInvocation = 5380,
  2087. OpDemoteToHelperInvocationEXT = 5380,
  2088. OpIsHelperInvocationEXT = 5381,
  2089. OpTensorViewSetClipNV = 5382,
  2090. OpTensorLayoutSetBlockSizeNV = 5384,
  2091. OpCooperativeMatrixTransposeNV = 5390,
  2092. OpConvertUToImageNV = 5391,
  2093. OpConvertUToSamplerNV = 5392,
  2094. OpConvertImageToUNV = 5393,
  2095. OpConvertSamplerToUNV = 5394,
  2096. OpConvertUToSampledImageNV = 5395,
  2097. OpConvertSampledImageToUNV = 5396,
  2098. OpSamplerImageAddressingModeNV = 5397,
  2099. OpRawAccessChainNV = 5398,
  2100. OpRayQueryGetIntersectionSpherePositionNV = 5427,
  2101. OpRayQueryGetIntersectionSphereRadiusNV = 5428,
  2102. OpRayQueryGetIntersectionLSSPositionsNV = 5429,
  2103. OpRayQueryGetIntersectionLSSRadiiNV = 5430,
  2104. OpRayQueryGetIntersectionLSSHitValueNV = 5431,
  2105. OpHitObjectGetSpherePositionNV = 5432,
  2106. OpHitObjectGetSphereRadiusNV = 5433,
  2107. OpHitObjectGetLSSPositionsNV = 5434,
  2108. OpHitObjectGetLSSRadiiNV = 5435,
  2109. OpHitObjectIsSphereHitNV = 5436,
  2110. OpHitObjectIsLSSHitNV = 5437,
  2111. OpRayQueryIsSphereHitNV = 5438,
  2112. OpRayQueryIsLSSHitNV = 5439,
  2113. OpSubgroupShuffleINTEL = 5571,
  2114. OpSubgroupShuffleDownINTEL = 5572,
  2115. OpSubgroupShuffleUpINTEL = 5573,
  2116. OpSubgroupShuffleXorINTEL = 5574,
  2117. OpSubgroupBlockReadINTEL = 5575,
  2118. OpSubgroupBlockWriteINTEL = 5576,
  2119. OpSubgroupImageBlockReadINTEL = 5577,
  2120. OpSubgroupImageBlockWriteINTEL = 5578,
  2121. OpSubgroupImageMediaBlockReadINTEL = 5580,
  2122. OpSubgroupImageMediaBlockWriteINTEL = 5581,
  2123. OpUCountLeadingZerosINTEL = 5585,
  2124. OpUCountTrailingZerosINTEL = 5586,
  2125. OpAbsISubINTEL = 5587,
  2126. OpAbsUSubINTEL = 5588,
  2127. OpIAddSatINTEL = 5589,
  2128. OpUAddSatINTEL = 5590,
  2129. OpIAverageINTEL = 5591,
  2130. OpUAverageINTEL = 5592,
  2131. OpIAverageRoundedINTEL = 5593,
  2132. OpUAverageRoundedINTEL = 5594,
  2133. OpISubSatINTEL = 5595,
  2134. OpUSubSatINTEL = 5596,
  2135. OpIMul32x16INTEL = 5597,
  2136. OpUMul32x16INTEL = 5598,
  2137. OpConstantFunctionPointerINTEL = 5600,
  2138. OpFunctionPointerCallINTEL = 5601,
  2139. OpAsmTargetINTEL = 5609,
  2140. OpAsmINTEL = 5610,
  2141. OpAsmCallINTEL = 5611,
  2142. OpAtomicFMinEXT = 5614,
  2143. OpAtomicFMaxEXT = 5615,
  2144. OpAssumeTrueKHR = 5630,
  2145. OpExpectKHR = 5631,
  2146. OpDecorateString = 5632,
  2147. OpDecorateStringGOOGLE = 5632,
  2148. OpMemberDecorateString = 5633,
  2149. OpMemberDecorateStringGOOGLE = 5633,
  2150. OpVmeImageINTEL = 5699,
  2151. OpTypeVmeImageINTEL = 5700,
  2152. OpTypeAvcImePayloadINTEL = 5701,
  2153. OpTypeAvcRefPayloadINTEL = 5702,
  2154. OpTypeAvcSicPayloadINTEL = 5703,
  2155. OpTypeAvcMcePayloadINTEL = 5704,
  2156. OpTypeAvcMceResultINTEL = 5705,
  2157. OpTypeAvcImeResultINTEL = 5706,
  2158. OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
  2159. OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
  2160. OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
  2161. OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
  2162. OpTypeAvcRefResultINTEL = 5711,
  2163. OpTypeAvcSicResultINTEL = 5712,
  2164. OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
  2165. OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
  2166. OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
  2167. OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
  2168. OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
  2169. OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
  2170. OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
  2171. OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
  2172. OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
  2173. OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
  2174. OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
  2175. OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
  2176. OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
  2177. OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
  2178. OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
  2179. OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
  2180. OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
  2181. OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
  2182. OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
  2183. OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
  2184. OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
  2185. OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
  2186. OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
  2187. OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
  2188. OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
  2189. OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
  2190. OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
  2191. OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
  2192. OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
  2193. OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
  2194. OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
  2195. OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
  2196. OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
  2197. OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
  2198. OpSubgroupAvcImeInitializeINTEL = 5747,
  2199. OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
  2200. OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
  2201. OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
  2202. OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
  2203. OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
  2204. OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
  2205. OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
  2206. OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
  2207. OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
  2208. OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
  2209. OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
  2210. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
  2211. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
  2212. OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
  2213. OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
  2214. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
  2215. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
  2216. OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
  2217. OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
  2218. OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
  2219. OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
  2220. OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
  2221. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
  2222. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
  2223. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
  2224. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
  2225. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
  2226. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
  2227. OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
  2228. OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
  2229. OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
  2230. OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
  2231. OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
  2232. OpSubgroupAvcFmeInitializeINTEL = 5781,
  2233. OpSubgroupAvcBmeInitializeINTEL = 5782,
  2234. OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
  2235. OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
  2236. OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
  2237. OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
  2238. OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
  2239. OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
  2240. OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
  2241. OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
  2242. OpSubgroupAvcSicInitializeINTEL = 5791,
  2243. OpSubgroupAvcSicConfigureSkcINTEL = 5792,
  2244. OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
  2245. OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
  2246. OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
  2247. OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
  2248. OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
  2249. OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
  2250. OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
  2251. OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
  2252. OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
  2253. OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
  2254. OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
  2255. OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
  2256. OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
  2257. OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
  2258. OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
  2259. OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
  2260. OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
  2261. OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
  2262. OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
  2263. OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
  2264. OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
  2265. OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
  2266. OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
  2267. OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
  2268. OpVariableLengthArrayINTEL = 5818,
  2269. OpSaveMemoryINTEL = 5819,
  2270. OpRestoreMemoryINTEL = 5820,
  2271. OpArbitraryFloatSinCosPiINTEL = 5840,
  2272. OpArbitraryFloatCastINTEL = 5841,
  2273. OpArbitraryFloatCastFromIntINTEL = 5842,
  2274. OpArbitraryFloatCastToIntINTEL = 5843,
  2275. OpArbitraryFloatAddINTEL = 5846,
  2276. OpArbitraryFloatSubINTEL = 5847,
  2277. OpArbitraryFloatMulINTEL = 5848,
  2278. OpArbitraryFloatDivINTEL = 5849,
  2279. OpArbitraryFloatGTINTEL = 5850,
  2280. OpArbitraryFloatGEINTEL = 5851,
  2281. OpArbitraryFloatLTINTEL = 5852,
  2282. OpArbitraryFloatLEINTEL = 5853,
  2283. OpArbitraryFloatEQINTEL = 5854,
  2284. OpArbitraryFloatRecipINTEL = 5855,
  2285. OpArbitraryFloatRSqrtINTEL = 5856,
  2286. OpArbitraryFloatCbrtINTEL = 5857,
  2287. OpArbitraryFloatHypotINTEL = 5858,
  2288. OpArbitraryFloatSqrtINTEL = 5859,
  2289. OpArbitraryFloatLogINTEL = 5860,
  2290. OpArbitraryFloatLog2INTEL = 5861,
  2291. OpArbitraryFloatLog10INTEL = 5862,
  2292. OpArbitraryFloatLog1pINTEL = 5863,
  2293. OpArbitraryFloatExpINTEL = 5864,
  2294. OpArbitraryFloatExp2INTEL = 5865,
  2295. OpArbitraryFloatExp10INTEL = 5866,
  2296. OpArbitraryFloatExpm1INTEL = 5867,
  2297. OpArbitraryFloatSinINTEL = 5868,
  2298. OpArbitraryFloatCosINTEL = 5869,
  2299. OpArbitraryFloatSinCosINTEL = 5870,
  2300. OpArbitraryFloatSinPiINTEL = 5871,
  2301. OpArbitraryFloatCosPiINTEL = 5872,
  2302. OpArbitraryFloatASinINTEL = 5873,
  2303. OpArbitraryFloatASinPiINTEL = 5874,
  2304. OpArbitraryFloatACosINTEL = 5875,
  2305. OpArbitraryFloatACosPiINTEL = 5876,
  2306. OpArbitraryFloatATanINTEL = 5877,
  2307. OpArbitraryFloatATanPiINTEL = 5878,
  2308. OpArbitraryFloatATan2INTEL = 5879,
  2309. OpArbitraryFloatPowINTEL = 5880,
  2310. OpArbitraryFloatPowRINTEL = 5881,
  2311. OpArbitraryFloatPowNINTEL = 5882,
  2312. OpLoopControlINTEL = 5887,
  2313. OpAliasDomainDeclINTEL = 5911,
  2314. OpAliasScopeDeclINTEL = 5912,
  2315. OpAliasScopeListDeclINTEL = 5913,
  2316. OpFixedSqrtINTEL = 5923,
  2317. OpFixedRecipINTEL = 5924,
  2318. OpFixedRsqrtINTEL = 5925,
  2319. OpFixedSinINTEL = 5926,
  2320. OpFixedCosINTEL = 5927,
  2321. OpFixedSinCosINTEL = 5928,
  2322. OpFixedSinPiINTEL = 5929,
  2323. OpFixedCosPiINTEL = 5930,
  2324. OpFixedSinCosPiINTEL = 5931,
  2325. OpFixedLogINTEL = 5932,
  2326. OpFixedExpINTEL = 5933,
  2327. OpPtrCastToCrossWorkgroupINTEL = 5934,
  2328. OpCrossWorkgroupCastToPtrINTEL = 5938,
  2329. OpReadPipeBlockingINTEL = 5946,
  2330. OpWritePipeBlockingINTEL = 5947,
  2331. OpFPGARegINTEL = 5949,
  2332. OpRayQueryGetRayTMinKHR = 6016,
  2333. OpRayQueryGetRayFlagsKHR = 6017,
  2334. OpRayQueryGetIntersectionTKHR = 6018,
  2335. OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
  2336. OpRayQueryGetIntersectionInstanceIdKHR = 6020,
  2337. OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
  2338. OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
  2339. OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
  2340. OpRayQueryGetIntersectionBarycentricsKHR = 6024,
  2341. OpRayQueryGetIntersectionFrontFaceKHR = 6025,
  2342. OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
  2343. OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
  2344. OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
  2345. OpRayQueryGetWorldRayDirectionKHR = 6029,
  2346. OpRayQueryGetWorldRayOriginKHR = 6030,
  2347. OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
  2348. OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
  2349. OpAtomicFAddEXT = 6035,
  2350. OpTypeBufferSurfaceINTEL = 6086,
  2351. OpTypeStructContinuedINTEL = 6090,
  2352. OpConstantCompositeContinuedINTEL = 6091,
  2353. OpSpecConstantCompositeContinuedINTEL = 6092,
  2354. OpCompositeConstructContinuedINTEL = 6096,
  2355. OpConvertFToBF16INTEL = 6116,
  2356. OpConvertBF16ToFINTEL = 6117,
  2357. OpControlBarrierArriveINTEL = 6142,
  2358. OpControlBarrierWaitINTEL = 6143,
  2359. OpArithmeticFenceEXT = 6145,
  2360. OpSubgroupBlockPrefetchINTEL = 6221,
  2361. OpSubgroup2DBlockLoadINTEL = 6231,
  2362. OpSubgroup2DBlockLoadTransformINTEL = 6232,
  2363. OpSubgroup2DBlockLoadTransposeINTEL = 6233,
  2364. OpSubgroup2DBlockPrefetchINTEL = 6234,
  2365. OpSubgroup2DBlockStoreINTEL = 6235,
  2366. OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
  2367. OpGroupIMulKHR = 6401,
  2368. OpGroupFMulKHR = 6402,
  2369. OpGroupBitwiseAndKHR = 6403,
  2370. OpGroupBitwiseOrKHR = 6404,
  2371. OpGroupBitwiseXorKHR = 6405,
  2372. OpGroupLogicalAndKHR = 6406,
  2373. OpGroupLogicalOrKHR = 6407,
  2374. OpGroupLogicalXorKHR = 6408,
  2375. OpMaskedGatherINTEL = 6428,
  2376. OpMaskedScatterINTEL = 6429,
  2377. Max = 0x7fffffff,
  2378. };
  2379. #ifdef SPV_ENABLE_UTILITY_CODE
  2380. #ifndef __cplusplus
  2381. #include <stdbool.h>
  2382. #endif
  2383. inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
  2384. *hasResult = *hasResultType = false;
  2385. switch (opcode) {
  2386. default: /* unknown opcode */ break;
  2387. case Op::OpNop: *hasResult = false; *hasResultType = false; break;
  2388. case Op::OpUndef: *hasResult = true; *hasResultType = true; break;
  2389. case Op::OpSourceContinued: *hasResult = false; *hasResultType = false; break;
  2390. case Op::OpSource: *hasResult = false; *hasResultType = false; break;
  2391. case Op::OpSourceExtension: *hasResult = false; *hasResultType = false; break;
  2392. case Op::OpName: *hasResult = false; *hasResultType = false; break;
  2393. case Op::OpMemberName: *hasResult = false; *hasResultType = false; break;
  2394. case Op::OpString: *hasResult = true; *hasResultType = false; break;
  2395. case Op::OpLine: *hasResult = false; *hasResultType = false; break;
  2396. case Op::OpExtension: *hasResult = false; *hasResultType = false; break;
  2397. case Op::OpExtInstImport: *hasResult = true; *hasResultType = false; break;
  2398. case Op::OpExtInst: *hasResult = true; *hasResultType = true; break;
  2399. case Op::OpMemoryModel: *hasResult = false; *hasResultType = false; break;
  2400. case Op::OpEntryPoint: *hasResult = false; *hasResultType = false; break;
  2401. case Op::OpExecutionMode: *hasResult = false; *hasResultType = false; break;
  2402. case Op::OpCapability: *hasResult = false; *hasResultType = false; break;
  2403. case Op::OpTypeVoid: *hasResult = true; *hasResultType = false; break;
  2404. case Op::OpTypeBool: *hasResult = true; *hasResultType = false; break;
  2405. case Op::OpTypeInt: *hasResult = true; *hasResultType = false; break;
  2406. case Op::OpTypeFloat: *hasResult = true; *hasResultType = false; break;
  2407. case Op::OpTypeVector: *hasResult = true; *hasResultType = false; break;
  2408. case Op::OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
  2409. case Op::OpTypeImage: *hasResult = true; *hasResultType = false; break;
  2410. case Op::OpTypeSampler: *hasResult = true; *hasResultType = false; break;
  2411. case Op::OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
  2412. case Op::OpTypeArray: *hasResult = true; *hasResultType = false; break;
  2413. case Op::OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
  2414. case Op::OpTypeStruct: *hasResult = true; *hasResultType = false; break;
  2415. case Op::OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
  2416. case Op::OpTypePointer: *hasResult = true; *hasResultType = false; break;
  2417. case Op::OpTypeFunction: *hasResult = true; *hasResultType = false; break;
  2418. case Op::OpTypeEvent: *hasResult = true; *hasResultType = false; break;
  2419. case Op::OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
  2420. case Op::OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
  2421. case Op::OpTypeQueue: *hasResult = true; *hasResultType = false; break;
  2422. case Op::OpTypePipe: *hasResult = true; *hasResultType = false; break;
  2423. case Op::OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
  2424. case Op::OpConstantTrue: *hasResult = true; *hasResultType = true; break;
  2425. case Op::OpConstantFalse: *hasResult = true; *hasResultType = true; break;
  2426. case Op::OpConstant: *hasResult = true; *hasResultType = true; break;
  2427. case Op::OpConstantComposite: *hasResult = true; *hasResultType = true; break;
  2428. case Op::OpConstantSampler: *hasResult = true; *hasResultType = true; break;
  2429. case Op::OpConstantNull: *hasResult = true; *hasResultType = true; break;
  2430. case Op::OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
  2431. case Op::OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
  2432. case Op::OpSpecConstant: *hasResult = true; *hasResultType = true; break;
  2433. case Op::OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
  2434. case Op::OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
  2435. case Op::OpFunction: *hasResult = true; *hasResultType = true; break;
  2436. case Op::OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
  2437. case Op::OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
  2438. case Op::OpFunctionCall: *hasResult = true; *hasResultType = true; break;
  2439. case Op::OpVariable: *hasResult = true; *hasResultType = true; break;
  2440. case Op::OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
  2441. case Op::OpLoad: *hasResult = true; *hasResultType = true; break;
  2442. case Op::OpStore: *hasResult = false; *hasResultType = false; break;
  2443. case Op::OpCopyMemory: *hasResult = false; *hasResultType = false; break;
  2444. case Op::OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
  2445. case Op::OpAccessChain: *hasResult = true; *hasResultType = true; break;
  2446. case Op::OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
  2447. case Op::OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  2448. case Op::OpArrayLength: *hasResult = true; *hasResultType = true; break;
  2449. case Op::OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
  2450. case Op::OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  2451. case Op::OpDecorate: *hasResult = false; *hasResultType = false; break;
  2452. case Op::OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
  2453. case Op::OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
  2454. case Op::OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
  2455. case Op::OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
  2456. case Op::OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
  2457. case Op::OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
  2458. case Op::OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
  2459. case Op::OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
  2460. case Op::OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
  2461. case Op::OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
  2462. case Op::OpCopyObject: *hasResult = true; *hasResultType = true; break;
  2463. case Op::OpTranspose: *hasResult = true; *hasResultType = true; break;
  2464. case Op::OpSampledImage: *hasResult = true; *hasResultType = true; break;
  2465. case Op::OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  2466. case Op::OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  2467. case Op::OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2468. case Op::OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2469. case Op::OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  2470. case Op::OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  2471. case Op::OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2472. case Op::OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2473. case Op::OpImageFetch: *hasResult = true; *hasResultType = true; break;
  2474. case Op::OpImageGather: *hasResult = true; *hasResultType = true; break;
  2475. case Op::OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
  2476. case Op::OpImageRead: *hasResult = true; *hasResultType = true; break;
  2477. case Op::OpImageWrite: *hasResult = false; *hasResultType = false; break;
  2478. case Op::OpImage: *hasResult = true; *hasResultType = true; break;
  2479. case Op::OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
  2480. case Op::OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
  2481. case Op::OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
  2482. case Op::OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
  2483. case Op::OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
  2484. case Op::OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
  2485. case Op::OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
  2486. case Op::OpConvertFToU: *hasResult = true; *hasResultType = true; break;
  2487. case Op::OpConvertFToS: *hasResult = true; *hasResultType = true; break;
  2488. case Op::OpConvertSToF: *hasResult = true; *hasResultType = true; break;
  2489. case Op::OpConvertUToF: *hasResult = true; *hasResultType = true; break;
  2490. case Op::OpUConvert: *hasResult = true; *hasResultType = true; break;
  2491. case Op::OpSConvert: *hasResult = true; *hasResultType = true; break;
  2492. case Op::OpFConvert: *hasResult = true; *hasResultType = true; break;
  2493. case Op::OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
  2494. case Op::OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
  2495. case Op::OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
  2496. case Op::OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
  2497. case Op::OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
  2498. case Op::OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
  2499. case Op::OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
  2500. case Op::OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
  2501. case Op::OpBitcast: *hasResult = true; *hasResultType = true; break;
  2502. case Op::OpSNegate: *hasResult = true; *hasResultType = true; break;
  2503. case Op::OpFNegate: *hasResult = true; *hasResultType = true; break;
  2504. case Op::OpIAdd: *hasResult = true; *hasResultType = true; break;
  2505. case Op::OpFAdd: *hasResult = true; *hasResultType = true; break;
  2506. case Op::OpISub: *hasResult = true; *hasResultType = true; break;
  2507. case Op::OpFSub: *hasResult = true; *hasResultType = true; break;
  2508. case Op::OpIMul: *hasResult = true; *hasResultType = true; break;
  2509. case Op::OpFMul: *hasResult = true; *hasResultType = true; break;
  2510. case Op::OpUDiv: *hasResult = true; *hasResultType = true; break;
  2511. case Op::OpSDiv: *hasResult = true; *hasResultType = true; break;
  2512. case Op::OpFDiv: *hasResult = true; *hasResultType = true; break;
  2513. case Op::OpUMod: *hasResult = true; *hasResultType = true; break;
  2514. case Op::OpSRem: *hasResult = true; *hasResultType = true; break;
  2515. case Op::OpSMod: *hasResult = true; *hasResultType = true; break;
  2516. case Op::OpFRem: *hasResult = true; *hasResultType = true; break;
  2517. case Op::OpFMod: *hasResult = true; *hasResultType = true; break;
  2518. case Op::OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
  2519. case Op::OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
  2520. case Op::OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
  2521. case Op::OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
  2522. case Op::OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
  2523. case Op::OpOuterProduct: *hasResult = true; *hasResultType = true; break;
  2524. case Op::OpDot: *hasResult = true; *hasResultType = true; break;
  2525. case Op::OpIAddCarry: *hasResult = true; *hasResultType = true; break;
  2526. case Op::OpISubBorrow: *hasResult = true; *hasResultType = true; break;
  2527. case Op::OpUMulExtended: *hasResult = true; *hasResultType = true; break;
  2528. case Op::OpSMulExtended: *hasResult = true; *hasResultType = true; break;
  2529. case Op::OpAny: *hasResult = true; *hasResultType = true; break;
  2530. case Op::OpAll: *hasResult = true; *hasResultType = true; break;
  2531. case Op::OpIsNan: *hasResult = true; *hasResultType = true; break;
  2532. case Op::OpIsInf: *hasResult = true; *hasResultType = true; break;
  2533. case Op::OpIsFinite: *hasResult = true; *hasResultType = true; break;
  2534. case Op::OpIsNormal: *hasResult = true; *hasResultType = true; break;
  2535. case Op::OpSignBitSet: *hasResult = true; *hasResultType = true; break;
  2536. case Op::OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
  2537. case Op::OpOrdered: *hasResult = true; *hasResultType = true; break;
  2538. case Op::OpUnordered: *hasResult = true; *hasResultType = true; break;
  2539. case Op::OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
  2540. case Op::OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
  2541. case Op::OpLogicalOr: *hasResult = true; *hasResultType = true; break;
  2542. case Op::OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
  2543. case Op::OpLogicalNot: *hasResult = true; *hasResultType = true; break;
  2544. case Op::OpSelect: *hasResult = true; *hasResultType = true; break;
  2545. case Op::OpIEqual: *hasResult = true; *hasResultType = true; break;
  2546. case Op::OpINotEqual: *hasResult = true; *hasResultType = true; break;
  2547. case Op::OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
  2548. case Op::OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
  2549. case Op::OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2550. case Op::OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2551. case Op::OpULessThan: *hasResult = true; *hasResultType = true; break;
  2552. case Op::OpSLessThan: *hasResult = true; *hasResultType = true; break;
  2553. case Op::OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
  2554. case Op::OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
  2555. case Op::OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
  2556. case Op::OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
  2557. case Op::OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
  2558. case Op::OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
  2559. case Op::OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
  2560. case Op::OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
  2561. case Op::OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
  2562. case Op::OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
  2563. case Op::OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
  2564. case Op::OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
  2565. case Op::OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2566. case Op::OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2567. case Op::OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
  2568. case Op::OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
  2569. case Op::OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
  2570. case Op::OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
  2571. case Op::OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
  2572. case Op::OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  2573. case Op::OpNot: *hasResult = true; *hasResultType = true; break;
  2574. case Op::OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
  2575. case Op::OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
  2576. case Op::OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
  2577. case Op::OpBitReverse: *hasResult = true; *hasResultType = true; break;
  2578. case Op::OpBitCount: *hasResult = true; *hasResultType = true; break;
  2579. case Op::OpDPdx: *hasResult = true; *hasResultType = true; break;
  2580. case Op::OpDPdy: *hasResult = true; *hasResultType = true; break;
  2581. case Op::OpFwidth: *hasResult = true; *hasResultType = true; break;
  2582. case Op::OpDPdxFine: *hasResult = true; *hasResultType = true; break;
  2583. case Op::OpDPdyFine: *hasResult = true; *hasResultType = true; break;
  2584. case Op::OpFwidthFine: *hasResult = true; *hasResultType = true; break;
  2585. case Op::OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
  2586. case Op::OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
  2587. case Op::OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
  2588. case Op::OpEmitVertex: *hasResult = false; *hasResultType = false; break;
  2589. case Op::OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
  2590. case Op::OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
  2591. case Op::OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
  2592. case Op::OpControlBarrier: *hasResult = false; *hasResultType = false; break;
  2593. case Op::OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
  2594. case Op::OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
  2595. case Op::OpAtomicStore: *hasResult = false; *hasResultType = false; break;
  2596. case Op::OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
  2597. case Op::OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
  2598. case Op::OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
  2599. case Op::OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
  2600. case Op::OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
  2601. case Op::OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
  2602. case Op::OpAtomicISub: *hasResult = true; *hasResultType = true; break;
  2603. case Op::OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
  2604. case Op::OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
  2605. case Op::OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
  2606. case Op::OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
  2607. case Op::OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
  2608. case Op::OpAtomicOr: *hasResult = true; *hasResultType = true; break;
  2609. case Op::OpAtomicXor: *hasResult = true; *hasResultType = true; break;
  2610. case Op::OpPhi: *hasResult = true; *hasResultType = true; break;
  2611. case Op::OpLoopMerge: *hasResult = false; *hasResultType = false; break;
  2612. case Op::OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
  2613. case Op::OpLabel: *hasResult = true; *hasResultType = false; break;
  2614. case Op::OpBranch: *hasResult = false; *hasResultType = false; break;
  2615. case Op::OpBranchConditional: *hasResult = false; *hasResultType = false; break;
  2616. case Op::OpSwitch: *hasResult = false; *hasResultType = false; break;
  2617. case Op::OpKill: *hasResult = false; *hasResultType = false; break;
  2618. case Op::OpReturn: *hasResult = false; *hasResultType = false; break;
  2619. case Op::OpReturnValue: *hasResult = false; *hasResultType = false; break;
  2620. case Op::OpUnreachable: *hasResult = false; *hasResultType = false; break;
  2621. case Op::OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
  2622. case Op::OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
  2623. case Op::OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
  2624. case Op::OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
  2625. case Op::OpGroupAll: *hasResult = true; *hasResultType = true; break;
  2626. case Op::OpGroupAny: *hasResult = true; *hasResultType = true; break;
  2627. case Op::OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
  2628. case Op::OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
  2629. case Op::OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
  2630. case Op::OpGroupFMin: *hasResult = true; *hasResultType = true; break;
  2631. case Op::OpGroupUMin: *hasResult = true; *hasResultType = true; break;
  2632. case Op::OpGroupSMin: *hasResult = true; *hasResultType = true; break;
  2633. case Op::OpGroupFMax: *hasResult = true; *hasResultType = true; break;
  2634. case Op::OpGroupUMax: *hasResult = true; *hasResultType = true; break;
  2635. case Op::OpGroupSMax: *hasResult = true; *hasResultType = true; break;
  2636. case Op::OpReadPipe: *hasResult = true; *hasResultType = true; break;
  2637. case Op::OpWritePipe: *hasResult = true; *hasResultType = true; break;
  2638. case Op::OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
  2639. case Op::OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
  2640. case Op::OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  2641. case Op::OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  2642. case Op::OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  2643. case Op::OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  2644. case Op::OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
  2645. case Op::OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
  2646. case Op::OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
  2647. case Op::OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  2648. case Op::OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  2649. case Op::OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  2650. case Op::OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  2651. case Op::OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
  2652. case Op::OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
  2653. case Op::OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
  2654. case Op::OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
  2655. case Op::OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
  2656. case Op::OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
  2657. case Op::OpRetainEvent: *hasResult = false; *hasResultType = false; break;
  2658. case Op::OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
  2659. case Op::OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
  2660. case Op::OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
  2661. case Op::OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
  2662. case Op::OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
  2663. case Op::OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
  2664. case Op::OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
  2665. case Op::OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  2666. case Op::OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  2667. case Op::OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2668. case Op::OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2669. case Op::OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  2670. case Op::OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  2671. case Op::OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2672. case Op::OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2673. case Op::OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
  2674. case Op::OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
  2675. case Op::OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
  2676. case Op::OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
  2677. case Op::OpNoLine: *hasResult = false; *hasResultType = false; break;
  2678. case Op::OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
  2679. case Op::OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
  2680. case Op::OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
  2681. case Op::OpSizeOf: *hasResult = true; *hasResultType = true; break;
  2682. case Op::OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
  2683. case Op::OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
  2684. case Op::OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
  2685. case Op::OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
  2686. case Op::OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
  2687. case Op::OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
  2688. case Op::OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
  2689. case Op::OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
  2690. case Op::OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
  2691. case Op::OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
  2692. case Op::OpDecorateId: *hasResult = false; *hasResultType = false; break;
  2693. case Op::OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
  2694. case Op::OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
  2695. case Op::OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
  2696. case Op::OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
  2697. case Op::OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
  2698. case Op::OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
  2699. case Op::OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
  2700. case Op::OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
  2701. case Op::OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
  2702. case Op::OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
  2703. case Op::OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
  2704. case Op::OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
  2705. case Op::OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
  2706. case Op::OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
  2707. case Op::OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
  2708. case Op::OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
  2709. case Op::OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
  2710. case Op::OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
  2711. case Op::OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
  2712. case Op::OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
  2713. case Op::OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
  2714. case Op::OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
  2715. case Op::OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
  2716. case Op::OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
  2717. case Op::OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
  2718. case Op::OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
  2719. case Op::OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  2720. case Op::OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
  2721. case Op::OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
  2722. case Op::OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
  2723. case Op::OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
  2724. case Op::OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
  2725. case Op::OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
  2726. case Op::OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
  2727. case Op::OpCopyLogical: *hasResult = true; *hasResultType = true; break;
  2728. case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
  2729. case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
  2730. case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
  2731. case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
  2732. case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
  2733. case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
  2734. case Op::OpTypeTensorARM: *hasResult = true; *hasResultType = false; break;
  2735. case Op::OpTensorReadARM: *hasResult = true; *hasResultType = true; break;
  2736. case Op::OpTensorWriteARM: *hasResult = false; *hasResultType = false; break;
  2737. case Op::OpTensorQuerySizeARM: *hasResult = true; *hasResultType = true; break;
  2738. case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
  2739. case Op::OpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
  2740. case Op::OpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
  2741. case Op::OpUntypedAccessChainKHR: *hasResult = true; *hasResultType = true; break;
  2742. case Op::OpUntypedInBoundsAccessChainKHR: *hasResult = true; *hasResultType = true; break;
  2743. case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
  2744. case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
  2745. case Op::OpUntypedPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
  2746. case Op::OpUntypedInBoundsPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
  2747. case Op::OpUntypedArrayLengthKHR: *hasResult = true; *hasResultType = true; break;
  2748. case Op::OpUntypedPrefetchKHR: *hasResult = false; *hasResultType = false; break;
  2749. case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
  2750. case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
  2751. case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
  2752. case Op::OpBufferPointerEXT: *hasResult = true; *hasResultType = true; break;
  2753. case Op::OpUntypedImageTexelPointerEXT: *hasResult = true; *hasResultType = true; break;
  2754. case Op::OpMemberDecorateIdEXT: *hasResult = false; *hasResultType = false; break;
  2755. case Op::OpConstantSizeOfEXT: *hasResult = true; *hasResultType = true; break;
  2756. case Op::OpTypeBufferEXT: *hasResult = true; *hasResultType = false; break;
  2757. case Op::OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
  2758. case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
  2759. case Op::OpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break;
  2760. case Op::OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
  2761. case Op::OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
  2762. case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
  2763. case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2764. case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
  2765. case Op::OpSDot: *hasResult = true; *hasResultType = true; break;
  2766. case Op::OpUDot: *hasResult = true; *hasResultType = true; break;
  2767. case Op::OpSUDot: *hasResult = true; *hasResultType = true; break;
  2768. case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
  2769. case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
  2770. case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
  2771. case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
  2772. case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
  2773. case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
  2774. case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
  2775. case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
  2776. case Op::OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
  2777. case Op::OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
  2778. case Op::OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
  2779. case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
  2780. case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
  2781. case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
  2782. case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2783. case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2784. case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
  2785. case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
  2786. case Op::OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
  2787. case Op::OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
  2788. case Op::OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
  2789. case Op::OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
  2790. case Op::OpBitCastArrayQCOM: *hasResult = true; *hasResultType = true; break;
  2791. case Op::OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
  2792. case Op::OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
  2793. case Op::OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
  2794. case Op::OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
  2795. case Op::OpCompositeConstructCoopMatQCOM: *hasResult = true; *hasResultType = true; break;
  2796. case Op::OpCompositeExtractCoopMatQCOM: *hasResult = true; *hasResultType = true; break;
  2797. case Op::OpExtractSubArrayQCOM: *hasResult = true; *hasResultType = true; break;
  2798. case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2799. case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2800. case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2801. case Op::OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2802. case Op::OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2803. case Op::OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2804. case Op::OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2805. case Op::OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2806. case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
  2807. case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
  2808. case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
  2809. case Op::OpAllocateNodePayloadsAMDX: *hasResult = true; *hasResultType = true; break;
  2810. case Op::OpEnqueueNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
  2811. case Op::OpTypeNodePayloadArrayAMDX: *hasResult = true; *hasResultType = false; break;
  2812. case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
  2813. case Op::OpNodePayloadArrayLengthAMDX: *hasResult = true; *hasResultType = true; break;
  2814. case Op::OpIsNodePayloadValidAMDX: *hasResult = true; *hasResultType = true; break;
  2815. case Op::OpConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
  2816. case Op::OpSpecConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
  2817. case Op::OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
  2818. case Op::OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
  2819. case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
  2820. case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
  2821. case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
  2822. case Op::OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
  2823. case Op::OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
  2824. case Op::OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
  2825. case Op::OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
  2826. case Op::OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
  2827. case Op::OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
  2828. case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
  2829. case Op::OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
  2830. case Op::OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
  2831. case Op::OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
  2832. case Op::OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
  2833. case Op::OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
  2834. case Op::OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
  2835. case Op::OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
  2836. case Op::OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
  2837. case Op::OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
  2838. case Op::OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
  2839. case Op::OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
  2840. case Op::OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
  2841. case Op::OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
  2842. case Op::OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
  2843. case Op::OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
  2844. case Op::OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
  2845. case Op::OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
  2846. case Op::OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
  2847. case Op::OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
  2848. case Op::OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
  2849. case Op::OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
  2850. case Op::OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
  2851. case Op::OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
  2852. case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
  2853. case Op::OpTypeCooperativeVectorNV: *hasResult = true; *hasResultType = false; break;
  2854. case Op::OpCooperativeVectorMatrixMulNV: *hasResult = true; *hasResultType = true; break;
  2855. case Op::OpCooperativeVectorOuterProductAccumulateNV: *hasResult = false; *hasResultType = false; break;
  2856. case Op::OpCooperativeVectorReduceSumAccumulateNV: *hasResult = false; *hasResultType = false; break;
  2857. case Op::OpCooperativeVectorMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
  2858. case Op::OpCooperativeMatrixConvertNV: *hasResult = true; *hasResultType = true; break;
  2859. case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
  2860. case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
  2861. case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
  2862. case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
  2863. case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
  2864. case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
  2865. case Op::OpCooperativeVectorLoadNV: *hasResult = true; *hasResultType = true; break;
  2866. case Op::OpCooperativeVectorStoreNV: *hasResult = false; *hasResultType = false; break;
  2867. case Op::OpHitObjectRecordFromQueryEXT: *hasResult = false; *hasResultType = false; break;
  2868. case Op::OpHitObjectRecordMissEXT: *hasResult = false; *hasResultType = false; break;
  2869. case Op::OpHitObjectRecordMissMotionEXT: *hasResult = false; *hasResultType = false; break;
  2870. case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: *hasResult = true; *hasResultType = true; break;
  2871. case Op::OpHitObjectGetRayFlagsEXT: *hasResult = true; *hasResultType = true; break;
  2872. case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: *hasResult = false; *hasResultType = false; break;
  2873. case Op::OpHitObjectReorderExecuteShaderEXT: *hasResult = false; *hasResultType = false; break;
  2874. case Op::OpHitObjectTraceReorderExecuteEXT: *hasResult = false; *hasResultType = false; break;
  2875. case Op::OpHitObjectTraceMotionReorderExecuteEXT: *hasResult = false; *hasResultType = false; break;
  2876. case Op::OpTypeHitObjectEXT: *hasResult = true; *hasResultType = false; break;
  2877. case Op::OpReorderThreadWithHintEXT: *hasResult = false; *hasResultType = false; break;
  2878. case Op::OpReorderThreadWithHitObjectEXT: *hasResult = false; *hasResultType = false; break;
  2879. case Op::OpHitObjectTraceRayEXT: *hasResult = false; *hasResultType = false; break;
  2880. case Op::OpHitObjectTraceRayMotionEXT: *hasResult = false; *hasResultType = false; break;
  2881. case Op::OpHitObjectRecordEmptyEXT: *hasResult = false; *hasResultType = false; break;
  2882. case Op::OpHitObjectExecuteShaderEXT: *hasResult = false; *hasResultType = false; break;
  2883. case Op::OpHitObjectGetCurrentTimeEXT: *hasResult = true; *hasResultType = true; break;
  2884. case Op::OpHitObjectGetAttributesEXT: *hasResult = false; *hasResultType = false; break;
  2885. case Op::OpHitObjectGetHitKindEXT: *hasResult = true; *hasResultType = true; break;
  2886. case Op::OpHitObjectGetPrimitiveIndexEXT: *hasResult = true; *hasResultType = true; break;
  2887. case Op::OpHitObjectGetGeometryIndexEXT: *hasResult = true; *hasResultType = true; break;
  2888. case Op::OpHitObjectGetInstanceIdEXT: *hasResult = true; *hasResultType = true; break;
  2889. case Op::OpHitObjectGetInstanceCustomIndexEXT: *hasResult = true; *hasResultType = true; break;
  2890. case Op::OpHitObjectGetObjectRayOriginEXT: *hasResult = true; *hasResultType = true; break;
  2891. case Op::OpHitObjectGetObjectRayDirectionEXT: *hasResult = true; *hasResultType = true; break;
  2892. case Op::OpHitObjectGetWorldRayDirectionEXT: *hasResult = true; *hasResultType = true; break;
  2893. case Op::OpHitObjectGetWorldRayOriginEXT: *hasResult = true; *hasResultType = true; break;
  2894. case Op::OpHitObjectGetObjectToWorldEXT: *hasResult = true; *hasResultType = true; break;
  2895. case Op::OpHitObjectGetWorldToObjectEXT: *hasResult = true; *hasResultType = true; break;
  2896. case Op::OpHitObjectGetRayTMaxEXT: *hasResult = true; *hasResultType = true; break;
  2897. case Op::OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break;
  2898. case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
  2899. case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
  2900. case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
  2901. case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
  2902. case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
  2903. case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
  2904. case Op::OpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break;
  2905. case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
  2906. case Op::OpRayQueryGetClusterIdNV: *hasResult = true; *hasResultType = true; break;
  2907. case Op::OpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break;
  2908. case Op::OpHitObjectGetRayTMinEXT: *hasResult = true; *hasResultType = true; break;
  2909. case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: *hasResult = true; *hasResultType = true; break;
  2910. case Op::OpHitObjectGetShaderRecordBufferHandleEXT: *hasResult = true; *hasResultType = true; break;
  2911. case Op::OpHitObjectIsEmptyEXT: *hasResult = true; *hasResultType = true; break;
  2912. case Op::OpHitObjectIsHitEXT: *hasResult = true; *hasResultType = true; break;
  2913. case Op::OpHitObjectIsMissEXT: *hasResult = true; *hasResultType = true; break;
  2914. case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
  2915. case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
  2916. case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
  2917. case Op::OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
  2918. case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
  2919. case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  2920. case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  2921. case Op::OpCooperativeMatrixReduceNV: *hasResult = true; *hasResultType = true; break;
  2922. case Op::OpCooperativeMatrixLoadTensorNV: *hasResult = true; *hasResultType = true; break;
  2923. case Op::OpCooperativeMatrixStoreTensorNV: *hasResult = false; *hasResultType = false; break;
  2924. case Op::OpCooperativeMatrixPerElementOpNV: *hasResult = true; *hasResultType = true; break;
  2925. case Op::OpTypeTensorLayoutNV: *hasResult = true; *hasResultType = false; break;
  2926. case Op::OpTypeTensorViewNV: *hasResult = true; *hasResultType = false; break;
  2927. case Op::OpCreateTensorLayoutNV: *hasResult = true; *hasResultType = true; break;
  2928. case Op::OpTensorLayoutSetDimensionNV: *hasResult = true; *hasResultType = true; break;
  2929. case Op::OpTensorLayoutSetStrideNV: *hasResult = true; *hasResultType = true; break;
  2930. case Op::OpTensorLayoutSliceNV: *hasResult = true; *hasResultType = true; break;
  2931. case Op::OpTensorLayoutSetClampValueNV: *hasResult = true; *hasResultType = true; break;
  2932. case Op::OpCreateTensorViewNV: *hasResult = true; *hasResultType = true; break;
  2933. case Op::OpTensorViewSetDimensionNV: *hasResult = true; *hasResultType = true; break;
  2934. case Op::OpTensorViewSetStrideNV: *hasResult = true; *hasResultType = true; break;
  2935. case Op::OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
  2936. case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
  2937. case Op::OpTensorViewSetClipNV: *hasResult = true; *hasResultType = true; break;
  2938. case Op::OpTensorLayoutSetBlockSizeNV: *hasResult = true; *hasResultType = true; break;
  2939. case Op::OpCooperativeMatrixTransposeNV: *hasResult = true; *hasResultType = true; break;
  2940. case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
  2941. case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
  2942. case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
  2943. case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
  2944. case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
  2945. case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
  2946. case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
  2947. case Op::OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
  2948. case Op::OpRayQueryGetIntersectionSpherePositionNV: *hasResult = true; *hasResultType = true; break;
  2949. case Op::OpRayQueryGetIntersectionSphereRadiusNV: *hasResult = true; *hasResultType = true; break;
  2950. case Op::OpRayQueryGetIntersectionLSSPositionsNV: *hasResult = true; *hasResultType = true; break;
  2951. case Op::OpRayQueryGetIntersectionLSSRadiiNV: *hasResult = true; *hasResultType = true; break;
  2952. case Op::OpRayQueryGetIntersectionLSSHitValueNV: *hasResult = true; *hasResultType = true; break;
  2953. case Op::OpHitObjectGetSpherePositionNV: *hasResult = true; *hasResultType = true; break;
  2954. case Op::OpHitObjectGetSphereRadiusNV: *hasResult = true; *hasResultType = true; break;
  2955. case Op::OpHitObjectGetLSSPositionsNV: *hasResult = true; *hasResultType = true; break;
  2956. case Op::OpHitObjectGetLSSRadiiNV: *hasResult = true; *hasResultType = true; break;
  2957. case Op::OpHitObjectIsSphereHitNV: *hasResult = true; *hasResultType = true; break;
  2958. case Op::OpHitObjectIsLSSHitNV: *hasResult = true; *hasResultType = true; break;
  2959. case Op::OpRayQueryIsSphereHitNV: *hasResult = true; *hasResultType = true; break;
  2960. case Op::OpRayQueryIsLSSHitNV: *hasResult = true; *hasResultType = true; break;
  2961. case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
  2962. case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
  2963. case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
  2964. case Op::OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
  2965. case Op::OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2966. case Op::OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2967. case Op::OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2968. case Op::OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2969. case Op::OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2970. case Op::OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2971. case Op::OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  2972. case Op::OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  2973. case Op::OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
  2974. case Op::OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
  2975. case Op::OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  2976. case Op::OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  2977. case Op::OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
  2978. case Op::OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
  2979. case Op::OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  2980. case Op::OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  2981. case Op::OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
  2982. case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
  2983. case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  2984. case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  2985. case Op::OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
  2986. case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
  2987. case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = false; break;
  2988. case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
  2989. case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
  2990. case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
  2991. case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
  2992. case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
  2993. case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break;
  2994. case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
  2995. case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
  2996. case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
  2997. case Op::OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
  2998. case Op::OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2999. case Op::OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  3000. case Op::OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  3001. case Op::OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  3002. case Op::OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
  3003. case Op::OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
  3004. case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  3005. case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  3006. case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  3007. case Op::OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  3008. case Op::OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
  3009. case Op::OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
  3010. case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3011. case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3012. case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3013. case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3014. case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3015. case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3016. case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3017. case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  3018. case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  3019. case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  3020. case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  3021. case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  3022. case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3023. case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3024. case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3025. case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
  3026. case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  3027. case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  3028. case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  3029. case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  3030. case Op::OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
  3031. case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  3032. case Op::OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
  3033. case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  3034. case Op::OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
  3035. case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  3036. case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  3037. case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  3038. case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  3039. case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  3040. case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
  3041. case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  3042. case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  3043. case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  3044. case Op::OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  3045. case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3046. case Op::OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3047. case Op::OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
  3048. case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
  3049. case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  3050. case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  3051. case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  3052. case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  3053. case Op::OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
  3054. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3055. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3056. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  3057. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  3058. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  3059. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  3060. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  3061. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  3062. case Op::OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  3063. case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  3064. case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  3065. case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  3066. case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  3067. case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  3068. case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  3069. case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  3070. case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  3071. case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  3072. case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  3073. case Op::OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
  3074. case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
  3075. case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
  3076. case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
  3077. case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  3078. case Op::OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  3079. case Op::OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  3080. case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  3081. case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  3082. case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  3083. case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3084. case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3085. case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3086. case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  3087. case Op::OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  3088. case Op::OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  3089. case Op::OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
  3090. case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
  3091. case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
  3092. case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
  3093. case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  3094. case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  3095. case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  3096. case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  3097. case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  3098. case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
  3099. case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
  3100. case Op::OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
  3101. case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3102. case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3103. case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  3104. case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  3105. case Op::OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  3106. case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
  3107. case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  3108. case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  3109. case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
  3110. case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
  3111. case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  3112. case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  3113. case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
  3114. case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
  3115. case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
  3116. case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
  3117. case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  3118. case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
  3119. case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
  3120. case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
  3121. case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
  3122. case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
  3123. case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
  3124. case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
  3125. case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
  3126. case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
  3127. case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
  3128. case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
  3129. case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
  3130. case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
  3131. case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
  3132. case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
  3133. case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
  3134. case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
  3135. case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
  3136. case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
  3137. case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
  3138. case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
  3139. case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
  3140. case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
  3141. case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
  3142. case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
  3143. case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
  3144. case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
  3145. case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
  3146. case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
  3147. case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  3148. case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
  3149. case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
  3150. case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
  3151. case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
  3152. case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
  3153. case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
  3154. case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
  3155. case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
  3156. case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
  3157. case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
  3158. case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
  3159. case Op::OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
  3160. case Op::OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
  3161. case Op::OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
  3162. case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
  3163. case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
  3164. case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
  3165. case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
  3166. case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
  3167. case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
  3168. case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
  3169. case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  3170. case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  3171. case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
  3172. case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
  3173. case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
  3174. case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
  3175. case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  3176. case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  3177. case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
  3178. case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
  3179. case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
  3180. case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
  3181. case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
  3182. case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
  3183. case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
  3184. case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
  3185. case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
  3186. case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
  3187. case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
  3188. case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
  3189. case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  3190. case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  3191. case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  3192. case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  3193. case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
  3194. case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
  3195. case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
  3196. case Op::OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
  3197. case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  3198. case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  3199. case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  3200. case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
  3201. case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
  3202. case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
  3203. case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
  3204. case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
  3205. case Op::OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
  3206. case Op::OpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
  3207. case Op::OpSubgroup2DBlockLoadINTEL: *hasResult = false; *hasResultType = false; break;
  3208. case Op::OpSubgroup2DBlockLoadTransformINTEL: *hasResult = false; *hasResultType = false; break;
  3209. case Op::OpSubgroup2DBlockLoadTransposeINTEL: *hasResult = false; *hasResultType = false; break;
  3210. case Op::OpSubgroup2DBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
  3211. case Op::OpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break;
  3212. case Op::OpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break;
  3213. case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
  3214. case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
  3215. case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
  3216. case Op::OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
  3217. case Op::OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
  3218. case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
  3219. case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
  3220. case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
  3221. case Op::OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
  3222. case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
  3223. }
  3224. }
  3225. inline const char* SourceLanguageToString(SourceLanguage value) {
  3226. switch (value) {
  3227. case SourceLanguage::Unknown: return "Unknown";
  3228. case SourceLanguage::ESSL: return "ESSL";
  3229. case SourceLanguage::GLSL: return "GLSL";
  3230. case SourceLanguage::OpenCL_C: return "OpenCL_C";
  3231. case SourceLanguage::OpenCL_CPP: return "OpenCL_CPP";
  3232. case SourceLanguage::HLSL: return "HLSL";
  3233. case SourceLanguage::CPP_for_OpenCL: return "CPP_for_OpenCL";
  3234. case SourceLanguage::SYCL: return "SYCL";
  3235. case SourceLanguage::HERO_C: return "HERO_C";
  3236. case SourceLanguage::NZSL: return "NZSL";
  3237. case SourceLanguage::WGSL: return "WGSL";
  3238. case SourceLanguage::Slang: return "Slang";
  3239. case SourceLanguage::Zig: return "Zig";
  3240. case SourceLanguage::Rust: return "Rust";
  3241. default: return "Unknown";
  3242. }
  3243. }
  3244. inline const char* ExecutionModelToString(ExecutionModel value) {
  3245. switch (value) {
  3246. case ExecutionModel::Vertex: return "Vertex";
  3247. case ExecutionModel::TessellationControl: return "TessellationControl";
  3248. case ExecutionModel::TessellationEvaluation: return "TessellationEvaluation";
  3249. case ExecutionModel::Geometry: return "Geometry";
  3250. case ExecutionModel::Fragment: return "Fragment";
  3251. case ExecutionModel::GLCompute: return "GLCompute";
  3252. case ExecutionModel::Kernel: return "Kernel";
  3253. case ExecutionModel::TaskNV: return "TaskNV";
  3254. case ExecutionModel::MeshNV: return "MeshNV";
  3255. case ExecutionModel::RayGenerationKHR: return "RayGenerationKHR";
  3256. case ExecutionModel::IntersectionKHR: return "IntersectionKHR";
  3257. case ExecutionModel::AnyHitKHR: return "AnyHitKHR";
  3258. case ExecutionModel::ClosestHitKHR: return "ClosestHitKHR";
  3259. case ExecutionModel::MissKHR: return "MissKHR";
  3260. case ExecutionModel::CallableKHR: return "CallableKHR";
  3261. case ExecutionModel::TaskEXT: return "TaskEXT";
  3262. case ExecutionModel::MeshEXT: return "MeshEXT";
  3263. default: return "Unknown";
  3264. }
  3265. }
  3266. inline const char* AddressingModelToString(AddressingModel value) {
  3267. switch (value) {
  3268. case AddressingModel::Logical: return "Logical";
  3269. case AddressingModel::Physical32: return "Physical32";
  3270. case AddressingModel::Physical64: return "Physical64";
  3271. case AddressingModel::PhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
  3272. default: return "Unknown";
  3273. }
  3274. }
  3275. inline const char* MemoryModelToString(MemoryModel value) {
  3276. switch (value) {
  3277. case MemoryModel::Simple: return "Simple";
  3278. case MemoryModel::GLSL450: return "GLSL450";
  3279. case MemoryModel::OpenCL: return "OpenCL";
  3280. case MemoryModel::Vulkan: return "Vulkan";
  3281. default: return "Unknown";
  3282. }
  3283. }
  3284. inline const char* ExecutionModeToString(ExecutionMode value) {
  3285. switch (value) {
  3286. case ExecutionMode::Invocations: return "Invocations";
  3287. case ExecutionMode::SpacingEqual: return "SpacingEqual";
  3288. case ExecutionMode::SpacingFractionalEven: return "SpacingFractionalEven";
  3289. case ExecutionMode::SpacingFractionalOdd: return "SpacingFractionalOdd";
  3290. case ExecutionMode::VertexOrderCw: return "VertexOrderCw";
  3291. case ExecutionMode::VertexOrderCcw: return "VertexOrderCcw";
  3292. case ExecutionMode::PixelCenterInteger: return "PixelCenterInteger";
  3293. case ExecutionMode::OriginUpperLeft: return "OriginUpperLeft";
  3294. case ExecutionMode::OriginLowerLeft: return "OriginLowerLeft";
  3295. case ExecutionMode::EarlyFragmentTests: return "EarlyFragmentTests";
  3296. case ExecutionMode::PointMode: return "PointMode";
  3297. case ExecutionMode::Xfb: return "Xfb";
  3298. case ExecutionMode::DepthReplacing: return "DepthReplacing";
  3299. case ExecutionMode::DepthGreater: return "DepthGreater";
  3300. case ExecutionMode::DepthLess: return "DepthLess";
  3301. case ExecutionMode::DepthUnchanged: return "DepthUnchanged";
  3302. case ExecutionMode::LocalSize: return "LocalSize";
  3303. case ExecutionMode::LocalSizeHint: return "LocalSizeHint";
  3304. case ExecutionMode::InputPoints: return "InputPoints";
  3305. case ExecutionMode::InputLines: return "InputLines";
  3306. case ExecutionMode::InputLinesAdjacency: return "InputLinesAdjacency";
  3307. case ExecutionMode::Triangles: return "Triangles";
  3308. case ExecutionMode::InputTrianglesAdjacency: return "InputTrianglesAdjacency";
  3309. case ExecutionMode::Quads: return "Quads";
  3310. case ExecutionMode::Isolines: return "Isolines";
  3311. case ExecutionMode::OutputVertices: return "OutputVertices";
  3312. case ExecutionMode::OutputPoints: return "OutputPoints";
  3313. case ExecutionMode::OutputLineStrip: return "OutputLineStrip";
  3314. case ExecutionMode::OutputTriangleStrip: return "OutputTriangleStrip";
  3315. case ExecutionMode::VecTypeHint: return "VecTypeHint";
  3316. case ExecutionMode::ContractionOff: return "ContractionOff";
  3317. case ExecutionMode::Initializer: return "Initializer";
  3318. case ExecutionMode::Finalizer: return "Finalizer";
  3319. case ExecutionMode::SubgroupSize: return "SubgroupSize";
  3320. case ExecutionMode::SubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
  3321. case ExecutionMode::SubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
  3322. case ExecutionMode::LocalSizeId: return "LocalSizeId";
  3323. case ExecutionMode::LocalSizeHintId: return "LocalSizeHintId";
  3324. case ExecutionMode::NonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
  3325. case ExecutionMode::NonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
  3326. case ExecutionMode::NonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
  3327. case ExecutionMode::SubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
  3328. case ExecutionMode::PostDepthCoverage: return "PostDepthCoverage";
  3329. case ExecutionMode::DenormPreserve: return "DenormPreserve";
  3330. case ExecutionMode::DenormFlushToZero: return "DenormFlushToZero";
  3331. case ExecutionMode::SignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
  3332. case ExecutionMode::RoundingModeRTE: return "RoundingModeRTE";
  3333. case ExecutionMode::RoundingModeRTZ: return "RoundingModeRTZ";
  3334. case ExecutionMode::NonCoherentTileAttachmentReadQCOM: return "NonCoherentTileAttachmentReadQCOM";
  3335. case ExecutionMode::TileShadingRateQCOM: return "TileShadingRateQCOM";
  3336. case ExecutionMode::EarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
  3337. case ExecutionMode::StencilRefReplacingEXT: return "StencilRefReplacingEXT";
  3338. case ExecutionMode::CoalescingAMDX: return "CoalescingAMDX";
  3339. case ExecutionMode::IsApiEntryAMDX: return "IsApiEntryAMDX";
  3340. case ExecutionMode::MaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
  3341. case ExecutionMode::StaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
  3342. case ExecutionMode::ShaderIndexAMDX: return "ShaderIndexAMDX";
  3343. case ExecutionMode::MaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
  3344. case ExecutionMode::StencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
  3345. case ExecutionMode::StencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
  3346. case ExecutionMode::StencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
  3347. case ExecutionMode::StencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
  3348. case ExecutionMode::StencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
  3349. case ExecutionMode::StencilRefLessBackAMD: return "StencilRefLessBackAMD";
  3350. case ExecutionMode::QuadDerivativesKHR: return "QuadDerivativesKHR";
  3351. case ExecutionMode::RequireFullQuadsKHR: return "RequireFullQuadsKHR";
  3352. case ExecutionMode::SharesInputWithAMDX: return "SharesInputWithAMDX";
  3353. case ExecutionMode::OutputLinesEXT: return "OutputLinesEXT";
  3354. case ExecutionMode::OutputPrimitivesEXT: return "OutputPrimitivesEXT";
  3355. case ExecutionMode::DerivativeGroupQuadsKHR: return "DerivativeGroupQuadsKHR";
  3356. case ExecutionMode::DerivativeGroupLinearKHR: return "DerivativeGroupLinearKHR";
  3357. case ExecutionMode::OutputTrianglesEXT: return "OutputTrianglesEXT";
  3358. case ExecutionMode::PixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
  3359. case ExecutionMode::PixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
  3360. case ExecutionMode::SampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
  3361. case ExecutionMode::SampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
  3362. case ExecutionMode::ShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
  3363. case ExecutionMode::ShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
  3364. case ExecutionMode::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT";
  3365. case ExecutionMode::SharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
  3366. case ExecutionMode::RoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
  3367. case ExecutionMode::RoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
  3368. case ExecutionMode::FloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
  3369. case ExecutionMode::FloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
  3370. case ExecutionMode::MaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
  3371. case ExecutionMode::MaxWorkDimINTEL: return "MaxWorkDimINTEL";
  3372. case ExecutionMode::NoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
  3373. case ExecutionMode::NumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
  3374. case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
  3375. case ExecutionMode::MaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
  3376. case ExecutionMode::FPFastMathDefault: return "FPFastMathDefault";
  3377. case ExecutionMode::StreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
  3378. case ExecutionMode::RegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
  3379. case ExecutionMode::NamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
  3380. case ExecutionMode::MaximumRegistersINTEL: return "MaximumRegistersINTEL";
  3381. case ExecutionMode::MaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
  3382. case ExecutionMode::NamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
  3383. default: return "Unknown";
  3384. }
  3385. }
  3386. inline const char* StorageClassToString(StorageClass value) {
  3387. switch (value) {
  3388. case StorageClass::UniformConstant: return "UniformConstant";
  3389. case StorageClass::Input: return "Input";
  3390. case StorageClass::Uniform: return "Uniform";
  3391. case StorageClass::Output: return "Output";
  3392. case StorageClass::Workgroup: return "Workgroup";
  3393. case StorageClass::CrossWorkgroup: return "CrossWorkgroup";
  3394. case StorageClass::Private: return "Private";
  3395. case StorageClass::Function: return "Function";
  3396. case StorageClass::Generic: return "Generic";
  3397. case StorageClass::PushConstant: return "PushConstant";
  3398. case StorageClass::AtomicCounter: return "AtomicCounter";
  3399. case StorageClass::Image: return "Image";
  3400. case StorageClass::StorageBuffer: return "StorageBuffer";
  3401. case StorageClass::TileImageEXT: return "TileImageEXT";
  3402. case StorageClass::TileAttachmentQCOM: return "TileAttachmentQCOM";
  3403. case StorageClass::NodePayloadAMDX: return "NodePayloadAMDX";
  3404. case StorageClass::CallableDataKHR: return "CallableDataKHR";
  3405. case StorageClass::IncomingCallableDataKHR: return "IncomingCallableDataKHR";
  3406. case StorageClass::RayPayloadKHR: return "RayPayloadKHR";
  3407. case StorageClass::HitAttributeKHR: return "HitAttributeKHR";
  3408. case StorageClass::IncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
  3409. case StorageClass::ShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
  3410. case StorageClass::PhysicalStorageBuffer: return "PhysicalStorageBuffer";
  3411. case StorageClass::HitObjectAttributeNV: return "HitObjectAttributeNV";
  3412. case StorageClass::TaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
  3413. case StorageClass::HitObjectAttributeEXT: return "HitObjectAttributeEXT";
  3414. case StorageClass::CodeSectionINTEL: return "CodeSectionINTEL";
  3415. case StorageClass::DeviceOnlyINTEL: return "DeviceOnlyINTEL";
  3416. case StorageClass::HostOnlyINTEL: return "HostOnlyINTEL";
  3417. default: return "Unknown";
  3418. }
  3419. }
  3420. inline const char* DimToString(Dim value) {
  3421. switch (value) {
  3422. case Dim::Dim1D: return "1D";
  3423. case Dim::Dim2D: return "2D";
  3424. case Dim::Dim3D: return "3D";
  3425. case Dim::Cube: return "Cube";
  3426. case Dim::Rect: return "Rect";
  3427. case Dim::Buffer: return "Buffer";
  3428. case Dim::SubpassData: return "SubpassData";
  3429. case Dim::TileImageDataEXT: return "TileImageDataEXT";
  3430. default: return "Unknown";
  3431. }
  3432. }
  3433. inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) {
  3434. switch (value) {
  3435. case SamplerAddressingMode::None: return "None";
  3436. case SamplerAddressingMode::ClampToEdge: return "ClampToEdge";
  3437. case SamplerAddressingMode::Clamp: return "Clamp";
  3438. case SamplerAddressingMode::Repeat: return "Repeat";
  3439. case SamplerAddressingMode::RepeatMirrored: return "RepeatMirrored";
  3440. default: return "Unknown";
  3441. }
  3442. }
  3443. inline const char* SamplerFilterModeToString(SamplerFilterMode value) {
  3444. switch (value) {
  3445. case SamplerFilterMode::Nearest: return "Nearest";
  3446. case SamplerFilterMode::Linear: return "Linear";
  3447. default: return "Unknown";
  3448. }
  3449. }
  3450. inline const char* ImageFormatToString(ImageFormat value) {
  3451. switch (value) {
  3452. case ImageFormat::Unknown: return "Unknown";
  3453. case ImageFormat::Rgba32f: return "Rgba32f";
  3454. case ImageFormat::Rgba16f: return "Rgba16f";
  3455. case ImageFormat::R32f: return "R32f";
  3456. case ImageFormat::Rgba8: return "Rgba8";
  3457. case ImageFormat::Rgba8Snorm: return "Rgba8Snorm";
  3458. case ImageFormat::Rg32f: return "Rg32f";
  3459. case ImageFormat::Rg16f: return "Rg16f";
  3460. case ImageFormat::R11fG11fB10f: return "R11fG11fB10f";
  3461. case ImageFormat::R16f: return "R16f";
  3462. case ImageFormat::Rgba16: return "Rgba16";
  3463. case ImageFormat::Rgb10A2: return "Rgb10A2";
  3464. case ImageFormat::Rg16: return "Rg16";
  3465. case ImageFormat::Rg8: return "Rg8";
  3466. case ImageFormat::R16: return "R16";
  3467. case ImageFormat::R8: return "R8";
  3468. case ImageFormat::Rgba16Snorm: return "Rgba16Snorm";
  3469. case ImageFormat::Rg16Snorm: return "Rg16Snorm";
  3470. case ImageFormat::Rg8Snorm: return "Rg8Snorm";
  3471. case ImageFormat::R16Snorm: return "R16Snorm";
  3472. case ImageFormat::R8Snorm: return "R8Snorm";
  3473. case ImageFormat::Rgba32i: return "Rgba32i";
  3474. case ImageFormat::Rgba16i: return "Rgba16i";
  3475. case ImageFormat::Rgba8i: return "Rgba8i";
  3476. case ImageFormat::R32i: return "R32i";
  3477. case ImageFormat::Rg32i: return "Rg32i";
  3478. case ImageFormat::Rg16i: return "Rg16i";
  3479. case ImageFormat::Rg8i: return "Rg8i";
  3480. case ImageFormat::R16i: return "R16i";
  3481. case ImageFormat::R8i: return "R8i";
  3482. case ImageFormat::Rgba32ui: return "Rgba32ui";
  3483. case ImageFormat::Rgba16ui: return "Rgba16ui";
  3484. case ImageFormat::Rgba8ui: return "Rgba8ui";
  3485. case ImageFormat::R32ui: return "R32ui";
  3486. case ImageFormat::Rgb10a2ui: return "Rgb10a2ui";
  3487. case ImageFormat::Rg32ui: return "Rg32ui";
  3488. case ImageFormat::Rg16ui: return "Rg16ui";
  3489. case ImageFormat::Rg8ui: return "Rg8ui";
  3490. case ImageFormat::R16ui: return "R16ui";
  3491. case ImageFormat::R8ui: return "R8ui";
  3492. case ImageFormat::R64ui: return "R64ui";
  3493. case ImageFormat::R64i: return "R64i";
  3494. default: return "Unknown";
  3495. }
  3496. }
  3497. inline const char* ImageChannelOrderToString(ImageChannelOrder value) {
  3498. switch (value) {
  3499. case ImageChannelOrder::R: return "R";
  3500. case ImageChannelOrder::A: return "A";
  3501. case ImageChannelOrder::RG: return "RG";
  3502. case ImageChannelOrder::RA: return "RA";
  3503. case ImageChannelOrder::RGB: return "RGB";
  3504. case ImageChannelOrder::RGBA: return "RGBA";
  3505. case ImageChannelOrder::BGRA: return "BGRA";
  3506. case ImageChannelOrder::ARGB: return "ARGB";
  3507. case ImageChannelOrder::Intensity: return "Intensity";
  3508. case ImageChannelOrder::Luminance: return "Luminance";
  3509. case ImageChannelOrder::Rx: return "Rx";
  3510. case ImageChannelOrder::RGx: return "RGx";
  3511. case ImageChannelOrder::RGBx: return "RGBx";
  3512. case ImageChannelOrder::Depth: return "Depth";
  3513. case ImageChannelOrder::DepthStencil: return "DepthStencil";
  3514. case ImageChannelOrder::sRGB: return "sRGB";
  3515. case ImageChannelOrder::sRGBx: return "sRGBx";
  3516. case ImageChannelOrder::sRGBA: return "sRGBA";
  3517. case ImageChannelOrder::sBGRA: return "sBGRA";
  3518. case ImageChannelOrder::ABGR: return "ABGR";
  3519. default: return "Unknown";
  3520. }
  3521. }
  3522. inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) {
  3523. switch (value) {
  3524. case ImageChannelDataType::SnormInt8: return "SnormInt8";
  3525. case ImageChannelDataType::SnormInt16: return "SnormInt16";
  3526. case ImageChannelDataType::UnormInt8: return "UnormInt8";
  3527. case ImageChannelDataType::UnormInt16: return "UnormInt16";
  3528. case ImageChannelDataType::UnormShort565: return "UnormShort565";
  3529. case ImageChannelDataType::UnormShort555: return "UnormShort555";
  3530. case ImageChannelDataType::UnormInt101010: return "UnormInt101010";
  3531. case ImageChannelDataType::SignedInt8: return "SignedInt8";
  3532. case ImageChannelDataType::SignedInt16: return "SignedInt16";
  3533. case ImageChannelDataType::SignedInt32: return "SignedInt32";
  3534. case ImageChannelDataType::UnsignedInt8: return "UnsignedInt8";
  3535. case ImageChannelDataType::UnsignedInt16: return "UnsignedInt16";
  3536. case ImageChannelDataType::UnsignedInt32: return "UnsignedInt32";
  3537. case ImageChannelDataType::HalfFloat: return "HalfFloat";
  3538. case ImageChannelDataType::Float: return "Float";
  3539. case ImageChannelDataType::UnormInt24: return "UnormInt24";
  3540. case ImageChannelDataType::UnormInt101010_2: return "UnormInt101010_2";
  3541. case ImageChannelDataType::UnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
  3542. case ImageChannelDataType::UnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
  3543. case ImageChannelDataType::UnormInt2_101010EXT: return "UnormInt2_101010EXT";
  3544. default: return "Unknown";
  3545. }
  3546. }
  3547. inline const char* FPRoundingModeToString(FPRoundingMode value) {
  3548. switch (value) {
  3549. case FPRoundingMode::RTE: return "RTE";
  3550. case FPRoundingMode::RTZ: return "RTZ";
  3551. case FPRoundingMode::RTP: return "RTP";
  3552. case FPRoundingMode::RTN: return "RTN";
  3553. default: return "Unknown";
  3554. }
  3555. }
  3556. inline const char* LinkageTypeToString(LinkageType value) {
  3557. switch (value) {
  3558. case LinkageType::Export: return "Export";
  3559. case LinkageType::Import: return "Import";
  3560. case LinkageType::LinkOnceODR: return "LinkOnceODR";
  3561. default: return "Unknown";
  3562. }
  3563. }
  3564. inline const char* AccessQualifierToString(AccessQualifier value) {
  3565. switch (value) {
  3566. case AccessQualifier::ReadOnly: return "ReadOnly";
  3567. case AccessQualifier::WriteOnly: return "WriteOnly";
  3568. case AccessQualifier::ReadWrite: return "ReadWrite";
  3569. default: return "Unknown";
  3570. }
  3571. }
  3572. inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) {
  3573. switch (value) {
  3574. case FunctionParameterAttribute::Zext: return "Zext";
  3575. case FunctionParameterAttribute::Sext: return "Sext";
  3576. case FunctionParameterAttribute::ByVal: return "ByVal";
  3577. case FunctionParameterAttribute::Sret: return "Sret";
  3578. case FunctionParameterAttribute::NoAlias: return "NoAlias";
  3579. case FunctionParameterAttribute::NoCapture: return "NoCapture";
  3580. case FunctionParameterAttribute::NoWrite: return "NoWrite";
  3581. case FunctionParameterAttribute::NoReadWrite: return "NoReadWrite";
  3582. case FunctionParameterAttribute::RuntimeAlignedINTEL: return "RuntimeAlignedINTEL";
  3583. default: return "Unknown";
  3584. }
  3585. }
  3586. inline const char* DecorationToString(Decoration value) {
  3587. switch (value) {
  3588. case Decoration::RelaxedPrecision: return "RelaxedPrecision";
  3589. case Decoration::SpecId: return "SpecId";
  3590. case Decoration::Block: return "Block";
  3591. case Decoration::BufferBlock: return "BufferBlock";
  3592. case Decoration::RowMajor: return "RowMajor";
  3593. case Decoration::ColMajor: return "ColMajor";
  3594. case Decoration::ArrayStride: return "ArrayStride";
  3595. case Decoration::MatrixStride: return "MatrixStride";
  3596. case Decoration::GLSLShared: return "GLSLShared";
  3597. case Decoration::GLSLPacked: return "GLSLPacked";
  3598. case Decoration::CPacked: return "CPacked";
  3599. case Decoration::BuiltIn: return "BuiltIn";
  3600. case Decoration::NoPerspective: return "NoPerspective";
  3601. case Decoration::Flat: return "Flat";
  3602. case Decoration::Patch: return "Patch";
  3603. case Decoration::Centroid: return "Centroid";
  3604. case Decoration::Sample: return "Sample";
  3605. case Decoration::Invariant: return "Invariant";
  3606. case Decoration::Restrict: return "Restrict";
  3607. case Decoration::Aliased: return "Aliased";
  3608. case Decoration::Volatile: return "Volatile";
  3609. case Decoration::Constant: return "Constant";
  3610. case Decoration::Coherent: return "Coherent";
  3611. case Decoration::NonWritable: return "NonWritable";
  3612. case Decoration::NonReadable: return "NonReadable";
  3613. case Decoration::Uniform: return "Uniform";
  3614. case Decoration::UniformId: return "UniformId";
  3615. case Decoration::SaturatedConversion: return "SaturatedConversion";
  3616. case Decoration::Stream: return "Stream";
  3617. case Decoration::Location: return "Location";
  3618. case Decoration::Component: return "Component";
  3619. case Decoration::Index: return "Index";
  3620. case Decoration::Binding: return "Binding";
  3621. case Decoration::DescriptorSet: return "DescriptorSet";
  3622. case Decoration::Offset: return "Offset";
  3623. case Decoration::XfbBuffer: return "XfbBuffer";
  3624. case Decoration::XfbStride: return "XfbStride";
  3625. case Decoration::FuncParamAttr: return "FuncParamAttr";
  3626. case Decoration::FPRoundingMode: return "FPRoundingMode";
  3627. case Decoration::FPFastMathMode: return "FPFastMathMode";
  3628. case Decoration::LinkageAttributes: return "LinkageAttributes";
  3629. case Decoration::NoContraction: return "NoContraction";
  3630. case Decoration::InputAttachmentIndex: return "InputAttachmentIndex";
  3631. case Decoration::Alignment: return "Alignment";
  3632. case Decoration::MaxByteOffset: return "MaxByteOffset";
  3633. case Decoration::AlignmentId: return "AlignmentId";
  3634. case Decoration::MaxByteOffsetId: return "MaxByteOffsetId";
  3635. case Decoration::SaturatedToLargestFloat8NormalConversionEXT: return "SaturatedToLargestFloat8NormalConversionEXT";
  3636. case Decoration::NoSignedWrap: return "NoSignedWrap";
  3637. case Decoration::NoUnsignedWrap: return "NoUnsignedWrap";
  3638. case Decoration::WeightTextureQCOM: return "WeightTextureQCOM";
  3639. case Decoration::BlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
  3640. case Decoration::BlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
  3641. case Decoration::ExplicitInterpAMD: return "ExplicitInterpAMD";
  3642. case Decoration::NodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
  3643. case Decoration::NodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
  3644. case Decoration::TrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
  3645. case Decoration::PayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
  3646. case Decoration::PayloadNodeBaseIndexAMDX: return "PayloadNodeBaseIndexAMDX";
  3647. case Decoration::PayloadNodeSparseArrayAMDX: return "PayloadNodeSparseArrayAMDX";
  3648. case Decoration::PayloadNodeArraySizeAMDX: return "PayloadNodeArraySizeAMDX";
  3649. case Decoration::PayloadDispatchIndirectAMDX: return "PayloadDispatchIndirectAMDX";
  3650. case Decoration::OverrideCoverageNV: return "OverrideCoverageNV";
  3651. case Decoration::PassthroughNV: return "PassthroughNV";
  3652. case Decoration::ViewportRelativeNV: return "ViewportRelativeNV";
  3653. case Decoration::SecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
  3654. case Decoration::PerPrimitiveEXT: return "PerPrimitiveEXT";
  3655. case Decoration::PerViewNV: return "PerViewNV";
  3656. case Decoration::PerTaskNV: return "PerTaskNV";
  3657. case Decoration::PerVertexKHR: return "PerVertexKHR";
  3658. case Decoration::NonUniform: return "NonUniform";
  3659. case Decoration::RestrictPointer: return "RestrictPointer";
  3660. case Decoration::AliasedPointer: return "AliasedPointer";
  3661. case Decoration::MemberOffsetNV: return "MemberOffsetNV";
  3662. case Decoration::HitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
  3663. case Decoration::BankNV: return "BankNV";
  3664. case Decoration::HitObjectShaderRecordBufferEXT: return "HitObjectShaderRecordBufferEXT";
  3665. case Decoration::BindlessSamplerNV: return "BindlessSamplerNV";
  3666. case Decoration::BindlessImageNV: return "BindlessImageNV";
  3667. case Decoration::BoundSamplerNV: return "BoundSamplerNV";
  3668. case Decoration::BoundImageNV: return "BoundImageNV";
  3669. case Decoration::SIMTCallINTEL: return "SIMTCallINTEL";
  3670. case Decoration::ReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
  3671. case Decoration::ClobberINTEL: return "ClobberINTEL";
  3672. case Decoration::SideEffectsINTEL: return "SideEffectsINTEL";
  3673. case Decoration::VectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
  3674. case Decoration::FuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
  3675. case Decoration::VectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
  3676. case Decoration::StackCallINTEL: return "StackCallINTEL";
  3677. case Decoration::GlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
  3678. case Decoration::CounterBuffer: return "CounterBuffer";
  3679. case Decoration::HlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
  3680. case Decoration::UserTypeGOOGLE: return "UserTypeGOOGLE";
  3681. case Decoration::FunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
  3682. case Decoration::FunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
  3683. case Decoration::RegisterINTEL: return "RegisterINTEL";
  3684. case Decoration::MemoryINTEL: return "MemoryINTEL";
  3685. case Decoration::NumbanksINTEL: return "NumbanksINTEL";
  3686. case Decoration::BankwidthINTEL: return "BankwidthINTEL";
  3687. case Decoration::MaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL";
  3688. case Decoration::SinglepumpINTEL: return "SinglepumpINTEL";
  3689. case Decoration::DoublepumpINTEL: return "DoublepumpINTEL";
  3690. case Decoration::MaxReplicatesINTEL: return "MaxReplicatesINTEL";
  3691. case Decoration::SimpleDualPortINTEL: return "SimpleDualPortINTEL";
  3692. case Decoration::MergeINTEL: return "MergeINTEL";
  3693. case Decoration::BankBitsINTEL: return "BankBitsINTEL";
  3694. case Decoration::ForcePow2DepthINTEL: return "ForcePow2DepthINTEL";
  3695. case Decoration::StridesizeINTEL: return "StridesizeINTEL";
  3696. case Decoration::WordsizeINTEL: return "WordsizeINTEL";
  3697. case Decoration::TrueDualPortINTEL: return "TrueDualPortINTEL";
  3698. case Decoration::BurstCoalesceINTEL: return "BurstCoalesceINTEL";
  3699. case Decoration::CacheSizeINTEL: return "CacheSizeINTEL";
  3700. case Decoration::DontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL";
  3701. case Decoration::PrefetchINTEL: return "PrefetchINTEL";
  3702. case Decoration::StallEnableINTEL: return "StallEnableINTEL";
  3703. case Decoration::FuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL";
  3704. case Decoration::MathOpDSPModeINTEL: return "MathOpDSPModeINTEL";
  3705. case Decoration::AliasScopeINTEL: return "AliasScopeINTEL";
  3706. case Decoration::NoAliasINTEL: return "NoAliasINTEL";
  3707. case Decoration::InitiationIntervalINTEL: return "InitiationIntervalINTEL";
  3708. case Decoration::MaxConcurrencyINTEL: return "MaxConcurrencyINTEL";
  3709. case Decoration::PipelineEnableINTEL: return "PipelineEnableINTEL";
  3710. case Decoration::BufferLocationINTEL: return "BufferLocationINTEL";
  3711. case Decoration::IOPipeStorageINTEL: return "IOPipeStorageINTEL";
  3712. case Decoration::FunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
  3713. case Decoration::SingleElementVectorINTEL: return "SingleElementVectorINTEL";
  3714. case Decoration::VectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
  3715. case Decoration::MediaBlockIOINTEL: return "MediaBlockIOINTEL";
  3716. case Decoration::StallFreeINTEL: return "StallFreeINTEL";
  3717. case Decoration::FPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
  3718. case Decoration::LatencyControlLabelINTEL: return "LatencyControlLabelINTEL";
  3719. case Decoration::LatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL";
  3720. case Decoration::ConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL";
  3721. case Decoration::RegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL";
  3722. case Decoration::MMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL";
  3723. case Decoration::MMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL";
  3724. case Decoration::MMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL";
  3725. case Decoration::MMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL";
  3726. case Decoration::MMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL";
  3727. case Decoration::MMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL";
  3728. case Decoration::StableKernelArgumentINTEL: return "StableKernelArgumentINTEL";
  3729. case Decoration::HostAccessINTEL: return "HostAccessINTEL";
  3730. case Decoration::InitModeINTEL: return "InitModeINTEL";
  3731. case Decoration::ImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
  3732. case Decoration::CacheControlLoadINTEL: return "CacheControlLoadINTEL";
  3733. case Decoration::CacheControlStoreINTEL: return "CacheControlStoreINTEL";
  3734. default: return "Unknown";
  3735. }
  3736. }
  3737. inline const char* BuiltInToString(BuiltIn value) {
  3738. switch (value) {
  3739. case BuiltIn::Position: return "Position";
  3740. case BuiltIn::PointSize: return "PointSize";
  3741. case BuiltIn::ClipDistance: return "ClipDistance";
  3742. case BuiltIn::CullDistance: return "CullDistance";
  3743. case BuiltIn::VertexId: return "VertexId";
  3744. case BuiltIn::InstanceId: return "InstanceId";
  3745. case BuiltIn::PrimitiveId: return "PrimitiveId";
  3746. case BuiltIn::InvocationId: return "InvocationId";
  3747. case BuiltIn::Layer: return "Layer";
  3748. case BuiltIn::ViewportIndex: return "ViewportIndex";
  3749. case BuiltIn::TessLevelOuter: return "TessLevelOuter";
  3750. case BuiltIn::TessLevelInner: return "TessLevelInner";
  3751. case BuiltIn::TessCoord: return "TessCoord";
  3752. case BuiltIn::PatchVertices: return "PatchVertices";
  3753. case BuiltIn::FragCoord: return "FragCoord";
  3754. case BuiltIn::PointCoord: return "PointCoord";
  3755. case BuiltIn::FrontFacing: return "FrontFacing";
  3756. case BuiltIn::SampleId: return "SampleId";
  3757. case BuiltIn::SamplePosition: return "SamplePosition";
  3758. case BuiltIn::SampleMask: return "SampleMask";
  3759. case BuiltIn::FragDepth: return "FragDepth";
  3760. case BuiltIn::HelperInvocation: return "HelperInvocation";
  3761. case BuiltIn::NumWorkgroups: return "NumWorkgroups";
  3762. case BuiltIn::WorkgroupSize: return "WorkgroupSize";
  3763. case BuiltIn::WorkgroupId: return "WorkgroupId";
  3764. case BuiltIn::LocalInvocationId: return "LocalInvocationId";
  3765. case BuiltIn::GlobalInvocationId: return "GlobalInvocationId";
  3766. case BuiltIn::LocalInvocationIndex: return "LocalInvocationIndex";
  3767. case BuiltIn::WorkDim: return "WorkDim";
  3768. case BuiltIn::GlobalSize: return "GlobalSize";
  3769. case BuiltIn::EnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
  3770. case BuiltIn::GlobalOffset: return "GlobalOffset";
  3771. case BuiltIn::GlobalLinearId: return "GlobalLinearId";
  3772. case BuiltIn::SubgroupSize: return "SubgroupSize";
  3773. case BuiltIn::SubgroupMaxSize: return "SubgroupMaxSize";
  3774. case BuiltIn::NumSubgroups: return "NumSubgroups";
  3775. case BuiltIn::NumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
  3776. case BuiltIn::SubgroupId: return "SubgroupId";
  3777. case BuiltIn::SubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
  3778. case BuiltIn::VertexIndex: return "VertexIndex";
  3779. case BuiltIn::InstanceIndex: return "InstanceIndex";
  3780. case BuiltIn::CoreIDARM: return "CoreIDARM";
  3781. case BuiltIn::CoreCountARM: return "CoreCountARM";
  3782. case BuiltIn::CoreMaxIDARM: return "CoreMaxIDARM";
  3783. case BuiltIn::WarpIDARM: return "WarpIDARM";
  3784. case BuiltIn::WarpMaxIDARM: return "WarpMaxIDARM";
  3785. case BuiltIn::SubgroupEqMask: return "SubgroupEqMask";
  3786. case BuiltIn::SubgroupGeMask: return "SubgroupGeMask";
  3787. case BuiltIn::SubgroupGtMask: return "SubgroupGtMask";
  3788. case BuiltIn::SubgroupLeMask: return "SubgroupLeMask";
  3789. case BuiltIn::SubgroupLtMask: return "SubgroupLtMask";
  3790. case BuiltIn::BaseVertex: return "BaseVertex";
  3791. case BuiltIn::BaseInstance: return "BaseInstance";
  3792. case BuiltIn::DrawIndex: return "DrawIndex";
  3793. case BuiltIn::PrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
  3794. case BuiltIn::DeviceIndex: return "DeviceIndex";
  3795. case BuiltIn::ViewIndex: return "ViewIndex";
  3796. case BuiltIn::ShadingRateKHR: return "ShadingRateKHR";
  3797. case BuiltIn::TileOffsetQCOM: return "TileOffsetQCOM";
  3798. case BuiltIn::TileDimensionQCOM: return "TileDimensionQCOM";
  3799. case BuiltIn::TileApronSizeQCOM: return "TileApronSizeQCOM";
  3800. case BuiltIn::BaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
  3801. case BuiltIn::BaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
  3802. case BuiltIn::BaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
  3803. case BuiltIn::BaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
  3804. case BuiltIn::BaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
  3805. case BuiltIn::BaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
  3806. case BuiltIn::BaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
  3807. case BuiltIn::FragStencilRefEXT: return "FragStencilRefEXT";
  3808. case BuiltIn::RemainingRecursionLevelsAMDX: return "RemainingRecursionLevelsAMDX";
  3809. case BuiltIn::ShaderIndexAMDX: return "ShaderIndexAMDX";
  3810. case BuiltIn::ViewportMaskNV: return "ViewportMaskNV";
  3811. case BuiltIn::SecondaryPositionNV: return "SecondaryPositionNV";
  3812. case BuiltIn::SecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
  3813. case BuiltIn::PositionPerViewNV: return "PositionPerViewNV";
  3814. case BuiltIn::ViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
  3815. case BuiltIn::FullyCoveredEXT: return "FullyCoveredEXT";
  3816. case BuiltIn::TaskCountNV: return "TaskCountNV";
  3817. case BuiltIn::PrimitiveCountNV: return "PrimitiveCountNV";
  3818. case BuiltIn::PrimitiveIndicesNV: return "PrimitiveIndicesNV";
  3819. case BuiltIn::ClipDistancePerViewNV: return "ClipDistancePerViewNV";
  3820. case BuiltIn::CullDistancePerViewNV: return "CullDistancePerViewNV";
  3821. case BuiltIn::LayerPerViewNV: return "LayerPerViewNV";
  3822. case BuiltIn::MeshViewCountNV: return "MeshViewCountNV";
  3823. case BuiltIn::MeshViewIndicesNV: return "MeshViewIndicesNV";
  3824. case BuiltIn::BaryCoordKHR: return "BaryCoordKHR";
  3825. case BuiltIn::BaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
  3826. case BuiltIn::FragSizeEXT: return "FragSizeEXT";
  3827. case BuiltIn::FragInvocationCountEXT: return "FragInvocationCountEXT";
  3828. case BuiltIn::PrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
  3829. case BuiltIn::PrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
  3830. case BuiltIn::PrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
  3831. case BuiltIn::CullPrimitiveEXT: return "CullPrimitiveEXT";
  3832. case BuiltIn::LaunchIdKHR: return "LaunchIdKHR";
  3833. case BuiltIn::LaunchSizeKHR: return "LaunchSizeKHR";
  3834. case BuiltIn::WorldRayOriginKHR: return "WorldRayOriginKHR";
  3835. case BuiltIn::WorldRayDirectionKHR: return "WorldRayDirectionKHR";
  3836. case BuiltIn::ObjectRayOriginKHR: return "ObjectRayOriginKHR";
  3837. case BuiltIn::ObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
  3838. case BuiltIn::RayTminKHR: return "RayTminKHR";
  3839. case BuiltIn::RayTmaxKHR: return "RayTmaxKHR";
  3840. case BuiltIn::InstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
  3841. case BuiltIn::ObjectToWorldKHR: return "ObjectToWorldKHR";
  3842. case BuiltIn::WorldToObjectKHR: return "WorldToObjectKHR";
  3843. case BuiltIn::HitTNV: return "HitTNV";
  3844. case BuiltIn::HitKindKHR: return "HitKindKHR";
  3845. case BuiltIn::CurrentRayTimeNV: return "CurrentRayTimeNV";
  3846. case BuiltIn::HitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
  3847. case BuiltIn::HitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
  3848. case BuiltIn::HitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
  3849. case BuiltIn::IncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
  3850. case BuiltIn::RayGeometryIndexKHR: return "RayGeometryIndexKHR";
  3851. case BuiltIn::HitIsSphereNV: return "HitIsSphereNV";
  3852. case BuiltIn::HitIsLSSNV: return "HitIsLSSNV";
  3853. case BuiltIn::HitSpherePositionNV: return "HitSpherePositionNV";
  3854. case BuiltIn::WarpsPerSMNV: return "WarpsPerSMNV";
  3855. case BuiltIn::SMCountNV: return "SMCountNV";
  3856. case BuiltIn::WarpIDNV: return "WarpIDNV";
  3857. case BuiltIn::SMIDNV: return "SMIDNV";
  3858. case BuiltIn::HitLSSPositionsNV: return "HitLSSPositionsNV";
  3859. case BuiltIn::HitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
  3860. case BuiltIn::HitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
  3861. case BuiltIn::HitSphereRadiusNV: return "HitSphereRadiusNV";
  3862. case BuiltIn::HitLSSRadiiNV: return "HitLSSRadiiNV";
  3863. case BuiltIn::ClusterIDNV: return "ClusterIDNV";
  3864. case BuiltIn::CullMaskKHR: return "CullMaskKHR";
  3865. default: return "Unknown";
  3866. }
  3867. }
  3868. inline const char* ScopeToString(Scope value) {
  3869. switch (value) {
  3870. case Scope::CrossDevice: return "CrossDevice";
  3871. case Scope::Device: return "Device";
  3872. case Scope::Workgroup: return "Workgroup";
  3873. case Scope::Subgroup: return "Subgroup";
  3874. case Scope::Invocation: return "Invocation";
  3875. case Scope::QueueFamily: return "QueueFamily";
  3876. case Scope::ShaderCallKHR: return "ShaderCallKHR";
  3877. default: return "Unknown";
  3878. }
  3879. }
  3880. inline const char* GroupOperationToString(GroupOperation value) {
  3881. switch (value) {
  3882. case GroupOperation::Reduce: return "Reduce";
  3883. case GroupOperation::InclusiveScan: return "InclusiveScan";
  3884. case GroupOperation::ExclusiveScan: return "ExclusiveScan";
  3885. case GroupOperation::ClusteredReduce: return "ClusteredReduce";
  3886. case GroupOperation::PartitionedReduceNV: return "PartitionedReduceNV";
  3887. case GroupOperation::PartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV";
  3888. case GroupOperation::PartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV";
  3889. default: return "Unknown";
  3890. }
  3891. }
  3892. inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) {
  3893. switch (value) {
  3894. case KernelEnqueueFlags::NoWait: return "NoWait";
  3895. case KernelEnqueueFlags::WaitKernel: return "WaitKernel";
  3896. case KernelEnqueueFlags::WaitWorkGroup: return "WaitWorkGroup";
  3897. default: return "Unknown";
  3898. }
  3899. }
  3900. inline const char* CapabilityToString(Capability value) {
  3901. switch (value) {
  3902. case Capability::Matrix: return "Matrix";
  3903. case Capability::Shader: return "Shader";
  3904. case Capability::Geometry: return "Geometry";
  3905. case Capability::Tessellation: return "Tessellation";
  3906. case Capability::Addresses: return "Addresses";
  3907. case Capability::Linkage: return "Linkage";
  3908. case Capability::Kernel: return "Kernel";
  3909. case Capability::Vector16: return "Vector16";
  3910. case Capability::Float16Buffer: return "Float16Buffer";
  3911. case Capability::Float16: return "Float16";
  3912. case Capability::Float64: return "Float64";
  3913. case Capability::Int64: return "Int64";
  3914. case Capability::Int64Atomics: return "Int64Atomics";
  3915. case Capability::ImageBasic: return "ImageBasic";
  3916. case Capability::ImageReadWrite: return "ImageReadWrite";
  3917. case Capability::ImageMipmap: return "ImageMipmap";
  3918. case Capability::Pipes: return "Pipes";
  3919. case Capability::Groups: return "Groups";
  3920. case Capability::DeviceEnqueue: return "DeviceEnqueue";
  3921. case Capability::LiteralSampler: return "LiteralSampler";
  3922. case Capability::AtomicStorage: return "AtomicStorage";
  3923. case Capability::Int16: return "Int16";
  3924. case Capability::TessellationPointSize: return "TessellationPointSize";
  3925. case Capability::GeometryPointSize: return "GeometryPointSize";
  3926. case Capability::ImageGatherExtended: return "ImageGatherExtended";
  3927. case Capability::StorageImageMultisample: return "StorageImageMultisample";
  3928. case Capability::UniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
  3929. case Capability::SampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
  3930. case Capability::StorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
  3931. case Capability::StorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
  3932. case Capability::ClipDistance: return "ClipDistance";
  3933. case Capability::CullDistance: return "CullDistance";
  3934. case Capability::ImageCubeArray: return "ImageCubeArray";
  3935. case Capability::SampleRateShading: return "SampleRateShading";
  3936. case Capability::ImageRect: return "ImageRect";
  3937. case Capability::SampledRect: return "SampledRect";
  3938. case Capability::GenericPointer: return "GenericPointer";
  3939. case Capability::Int8: return "Int8";
  3940. case Capability::InputAttachment: return "InputAttachment";
  3941. case Capability::SparseResidency: return "SparseResidency";
  3942. case Capability::MinLod: return "MinLod";
  3943. case Capability::Sampled1D: return "Sampled1D";
  3944. case Capability::Image1D: return "Image1D";
  3945. case Capability::SampledCubeArray: return "SampledCubeArray";
  3946. case Capability::SampledBuffer: return "SampledBuffer";
  3947. case Capability::ImageBuffer: return "ImageBuffer";
  3948. case Capability::ImageMSArray: return "ImageMSArray";
  3949. case Capability::StorageImageExtendedFormats: return "StorageImageExtendedFormats";
  3950. case Capability::ImageQuery: return "ImageQuery";
  3951. case Capability::DerivativeControl: return "DerivativeControl";
  3952. case Capability::InterpolationFunction: return "InterpolationFunction";
  3953. case Capability::TransformFeedback: return "TransformFeedback";
  3954. case Capability::GeometryStreams: return "GeometryStreams";
  3955. case Capability::StorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
  3956. case Capability::StorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
  3957. case Capability::MultiViewport: return "MultiViewport";
  3958. case Capability::SubgroupDispatch: return "SubgroupDispatch";
  3959. case Capability::NamedBarrier: return "NamedBarrier";
  3960. case Capability::PipeStorage: return "PipeStorage";
  3961. case Capability::GroupNonUniform: return "GroupNonUniform";
  3962. case Capability::GroupNonUniformVote: return "GroupNonUniformVote";
  3963. case Capability::GroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
  3964. case Capability::GroupNonUniformBallot: return "GroupNonUniformBallot";
  3965. case Capability::GroupNonUniformShuffle: return "GroupNonUniformShuffle";
  3966. case Capability::GroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
  3967. case Capability::GroupNonUniformClustered: return "GroupNonUniformClustered";
  3968. case Capability::GroupNonUniformQuad: return "GroupNonUniformQuad";
  3969. case Capability::ShaderLayer: return "ShaderLayer";
  3970. case Capability::ShaderViewportIndex: return "ShaderViewportIndex";
  3971. case Capability::UniformDecoration: return "UniformDecoration";
  3972. case Capability::CoreBuiltinsARM: return "CoreBuiltinsARM";
  3973. case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
  3974. case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
  3975. case Capability::TileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
  3976. case Capability::TensorsARM: return "TensorsARM";
  3977. case Capability::CooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
  3978. case Capability::Float8EXT: return "Float8EXT";
  3979. case Capability::Float8CooperativeMatrixEXT: return "Float8CooperativeMatrixEXT";
  3980. case Capability::FragmentShadingRateKHR: return "FragmentShadingRateKHR";
  3981. case Capability::SubgroupBallotKHR: return "SubgroupBallotKHR";
  3982. case Capability::DrawParameters: return "DrawParameters";
  3983. case Capability::WorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
  3984. case Capability::WorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
  3985. case Capability::WorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
  3986. case Capability::SubgroupVoteKHR: return "SubgroupVoteKHR";
  3987. case Capability::StorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
  3988. case Capability::StorageUniform16: return "StorageUniform16";
  3989. case Capability::StoragePushConstant16: return "StoragePushConstant16";
  3990. case Capability::StorageInputOutput16: return "StorageInputOutput16";
  3991. case Capability::DeviceGroup: return "DeviceGroup";
  3992. case Capability::MultiView: return "MultiView";
  3993. case Capability::VariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
  3994. case Capability::VariablePointers: return "VariablePointers";
  3995. case Capability::AtomicStorageOps: return "AtomicStorageOps";
  3996. case Capability::SampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
  3997. case Capability::StorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
  3998. case Capability::UniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
  3999. case Capability::StoragePushConstant8: return "StoragePushConstant8";
  4000. case Capability::DenormPreserve: return "DenormPreserve";
  4001. case Capability::DenormFlushToZero: return "DenormFlushToZero";
  4002. case Capability::SignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
  4003. case Capability::RoundingModeRTE: return "RoundingModeRTE";
  4004. case Capability::RoundingModeRTZ: return "RoundingModeRTZ";
  4005. case Capability::RayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
  4006. case Capability::RayQueryKHR: return "RayQueryKHR";
  4007. case Capability::UntypedPointersKHR: return "UntypedPointersKHR";
  4008. case Capability::RayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
  4009. case Capability::RayTracingKHR: return "RayTracingKHR";
  4010. case Capability::TextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
  4011. case Capability::TextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
  4012. case Capability::TextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
  4013. case Capability::TileShadingQCOM: return "TileShadingQCOM";
  4014. case Capability::CooperativeMatrixConversionQCOM: return "CooperativeMatrixConversionQCOM";
  4015. case Capability::TextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
  4016. case Capability::Float16ImageAMD: return "Float16ImageAMD";
  4017. case Capability::ImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
  4018. case Capability::FragmentMaskAMD: return "FragmentMaskAMD";
  4019. case Capability::StencilExportEXT: return "StencilExportEXT";
  4020. case Capability::ImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
  4021. case Capability::Int64ImageEXT: return "Int64ImageEXT";
  4022. case Capability::ShaderClockKHR: return "ShaderClockKHR";
  4023. case Capability::ShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
  4024. case Capability::QuadControlKHR: return "QuadControlKHR";
  4025. case Capability::BFloat16TypeKHR: return "BFloat16TypeKHR";
  4026. case Capability::BFloat16DotProductKHR: return "BFloat16DotProductKHR";
  4027. case Capability::BFloat16CooperativeMatrixKHR: return "BFloat16CooperativeMatrixKHR";
  4028. case Capability::SampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
  4029. case Capability::GeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
  4030. case Capability::ShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
  4031. case Capability::ShaderViewportMaskNV: return "ShaderViewportMaskNV";
  4032. case Capability::ShaderStereoViewNV: return "ShaderStereoViewNV";
  4033. case Capability::PerViewAttributesNV: return "PerViewAttributesNV";
  4034. case Capability::FragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
  4035. case Capability::MeshShadingNV: return "MeshShadingNV";
  4036. case Capability::ImageFootprintNV: return "ImageFootprintNV";
  4037. case Capability::MeshShadingEXT: return "MeshShadingEXT";
  4038. case Capability::FragmentBarycentricKHR: return "FragmentBarycentricKHR";
  4039. case Capability::ComputeDerivativeGroupQuadsKHR: return "ComputeDerivativeGroupQuadsKHR";
  4040. case Capability::FragmentDensityEXT: return "FragmentDensityEXT";
  4041. case Capability::GroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
  4042. case Capability::ShaderNonUniform: return "ShaderNonUniform";
  4043. case Capability::RuntimeDescriptorArray: return "RuntimeDescriptorArray";
  4044. case Capability::InputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
  4045. case Capability::UniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
  4046. case Capability::StorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
  4047. case Capability::UniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
  4048. case Capability::SampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
  4049. case Capability::StorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
  4050. case Capability::StorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
  4051. case Capability::InputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
  4052. case Capability::UniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
  4053. case Capability::StorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
  4054. case Capability::RayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
  4055. case Capability::RayTracingNV: return "RayTracingNV";
  4056. case Capability::RayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
  4057. case Capability::VulkanMemoryModel: return "VulkanMemoryModel";
  4058. case Capability::VulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
  4059. case Capability::PhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
  4060. case Capability::ComputeDerivativeGroupLinearKHR: return "ComputeDerivativeGroupLinearKHR";
  4061. case Capability::RayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
  4062. case Capability::CooperativeMatrixNV: return "CooperativeMatrixNV";
  4063. case Capability::FragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
  4064. case Capability::FragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
  4065. case Capability::ShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
  4066. case Capability::FragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
  4067. case Capability::DemoteToHelperInvocation: return "DemoteToHelperInvocation";
  4068. case Capability::DisplacementMicromapNV: return "DisplacementMicromapNV";
  4069. case Capability::RayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
  4070. case Capability::ShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
  4071. case Capability::ShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT";
  4072. case Capability::BindlessTextureNV: return "BindlessTextureNV";
  4073. case Capability::RayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
  4074. case Capability::CooperativeVectorNV: return "CooperativeVectorNV";
  4075. case Capability::AtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
  4076. case Capability::RayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
  4077. case Capability::RawAccessChainsNV: return "RawAccessChainsNV";
  4078. case Capability::RayTracingSpheresGeometryNV: return "RayTracingSpheresGeometryNV";
  4079. case Capability::RayTracingLinearSweptSpheresGeometryNV: return "RayTracingLinearSweptSpheresGeometryNV";
  4080. case Capability::PushConstantBanksNV: return "PushConstantBanksNV";
  4081. case Capability::LongVectorEXT: return "LongVectorEXT";
  4082. case Capability::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT";
  4083. case Capability::CooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV";
  4084. case Capability::CooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV";
  4085. case Capability::CooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV";
  4086. case Capability::CooperativeMatrixTensorAddressingNV: return "CooperativeMatrixTensorAddressingNV";
  4087. case Capability::CooperativeMatrixBlockLoadsNV: return "CooperativeMatrixBlockLoadsNV";
  4088. case Capability::CooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
  4089. case Capability::RayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
  4090. case Capability::TensorAddressingNV: return "TensorAddressingNV";
  4091. case Capability::SubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
  4092. case Capability::SubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
  4093. case Capability::SubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
  4094. case Capability::SubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
  4095. case Capability::RoundToInfinityINTEL: return "RoundToInfinityINTEL";
  4096. case Capability::FloatingPointModeINTEL: return "FloatingPointModeINTEL";
  4097. case Capability::IntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
  4098. case Capability::FunctionPointersINTEL: return "FunctionPointersINTEL";
  4099. case Capability::IndirectReferencesINTEL: return "IndirectReferencesINTEL";
  4100. case Capability::AsmINTEL: return "AsmINTEL";
  4101. case Capability::AtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
  4102. case Capability::AtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
  4103. case Capability::AtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
  4104. case Capability::VectorComputeINTEL: return "VectorComputeINTEL";
  4105. case Capability::VectorAnyINTEL: return "VectorAnyINTEL";
  4106. case Capability::ExpectAssumeKHR: return "ExpectAssumeKHR";
  4107. case Capability::SubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
  4108. case Capability::SubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
  4109. case Capability::SubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
  4110. case Capability::VariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
  4111. case Capability::FunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
  4112. case Capability::FPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL";
  4113. case Capability::FPFastMathModeINTEL: return "FPFastMathModeINTEL";
  4114. case Capability::ArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL";
  4115. case Capability::ArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL";
  4116. case Capability::UnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
  4117. case Capability::FPGALoopControlsINTEL: return "FPGALoopControlsINTEL";
  4118. case Capability::KernelAttributesINTEL: return "KernelAttributesINTEL";
  4119. case Capability::FPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
  4120. case Capability::FPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL";
  4121. case Capability::FPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL";
  4122. case Capability::LoopFuseINTEL: return "LoopFuseINTEL";
  4123. case Capability::FPGADSPControlINTEL: return "FPGADSPControlINTEL";
  4124. case Capability::MemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
  4125. case Capability::FPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL";
  4126. case Capability::FPGABufferLocationINTEL: return "FPGABufferLocationINTEL";
  4127. case Capability::ArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL";
  4128. case Capability::USMStorageClassesINTEL: return "USMStorageClassesINTEL";
  4129. case Capability::RuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL";
  4130. case Capability::IOPipesINTEL: return "IOPipesINTEL";
  4131. case Capability::BlockingPipesINTEL: return "BlockingPipesINTEL";
  4132. case Capability::FPGARegINTEL: return "FPGARegINTEL";
  4133. case Capability::DotProductInputAll: return "DotProductInputAll";
  4134. case Capability::DotProductInput4x8Bit: return "DotProductInput4x8Bit";
  4135. case Capability::DotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
  4136. case Capability::DotProduct: return "DotProduct";
  4137. case Capability::RayCullMaskKHR: return "RayCullMaskKHR";
  4138. case Capability::CooperativeMatrixKHR: return "CooperativeMatrixKHR";
  4139. case Capability::ReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
  4140. case Capability::BitInstructions: return "BitInstructions";
  4141. case Capability::GroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
  4142. case Capability::FloatControls2: return "FloatControls2";
  4143. case Capability::AtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
  4144. case Capability::AtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
  4145. case Capability::LongCompositesINTEL: return "LongCompositesINTEL";
  4146. case Capability::OptNoneEXT: return "OptNoneEXT";
  4147. case Capability::AtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
  4148. case Capability::DebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
  4149. case Capability::BFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
  4150. case Capability::SplitBarrierINTEL: return "SplitBarrierINTEL";
  4151. case Capability::ArithmeticFenceEXT: return "ArithmeticFenceEXT";
  4152. case Capability::FPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL";
  4153. case Capability::FPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
  4154. case Capability::FPMaxErrorINTEL: return "FPMaxErrorINTEL";
  4155. case Capability::FPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
  4156. case Capability::FPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
  4157. case Capability::GlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
  4158. case Capability::GlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
  4159. case Capability::SubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL";
  4160. case Capability::Subgroup2DBlockIOINTEL: return "Subgroup2DBlockIOINTEL";
  4161. case Capability::Subgroup2DBlockTransformINTEL: return "Subgroup2DBlockTransformINTEL";
  4162. case Capability::Subgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL";
  4163. case Capability::SubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL";
  4164. case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
  4165. case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
  4166. case Capability::CacheControlsINTEL: return "CacheControlsINTEL";
  4167. case Capability::RegisterLimitsINTEL: return "RegisterLimitsINTEL";
  4168. default: return "Unknown";
  4169. }
  4170. }
  4171. inline const char* RayQueryIntersectionToString(RayQueryIntersection value) {
  4172. switch (value) {
  4173. case RayQueryIntersection::RayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
  4174. case RayQueryIntersection::RayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
  4175. default: return "Unknown";
  4176. }
  4177. }
  4178. inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) {
  4179. switch (value) {
  4180. case RayQueryCommittedIntersectionType::RayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
  4181. case RayQueryCommittedIntersectionType::RayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
  4182. case RayQueryCommittedIntersectionType::RayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
  4183. default: return "Unknown";
  4184. }
  4185. }
  4186. inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) {
  4187. switch (value) {
  4188. case RayQueryCandidateIntersectionType::RayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
  4189. case RayQueryCandidateIntersectionType::RayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
  4190. default: return "Unknown";
  4191. }
  4192. }
  4193. inline const char* FPDenormModeToString(FPDenormMode value) {
  4194. switch (value) {
  4195. case FPDenormMode::Preserve: return "Preserve";
  4196. case FPDenormMode::FlushToZero: return "FlushToZero";
  4197. default: return "Unknown";
  4198. }
  4199. }
  4200. inline const char* FPOperationModeToString(FPOperationMode value) {
  4201. switch (value) {
  4202. case FPOperationMode::IEEE: return "IEEE";
  4203. case FPOperationMode::ALT: return "ALT";
  4204. default: return "Unknown";
  4205. }
  4206. }
  4207. inline const char* QuantizationModesToString(QuantizationModes value) {
  4208. switch (value) {
  4209. case QuantizationModes::TRN: return "TRN";
  4210. case QuantizationModes::TRN_ZERO: return "TRN_ZERO";
  4211. case QuantizationModes::RND: return "RND";
  4212. case QuantizationModes::RND_ZERO: return "RND_ZERO";
  4213. case QuantizationModes::RND_INF: return "RND_INF";
  4214. case QuantizationModes::RND_MIN_INF: return "RND_MIN_INF";
  4215. case QuantizationModes::RND_CONV: return "RND_CONV";
  4216. case QuantizationModes::RND_CONV_ODD: return "RND_CONV_ODD";
  4217. default: return "Unknown";
  4218. }
  4219. }
  4220. inline const char* OverflowModesToString(OverflowModes value) {
  4221. switch (value) {
  4222. case OverflowModes::WRAP: return "WRAP";
  4223. case OverflowModes::SAT: return "SAT";
  4224. case OverflowModes::SAT_ZERO: return "SAT_ZERO";
  4225. case OverflowModes::SAT_SYM: return "SAT_SYM";
  4226. default: return "Unknown";
  4227. }
  4228. }
  4229. inline const char* PackedVectorFormatToString(PackedVectorFormat value) {
  4230. switch (value) {
  4231. case PackedVectorFormat::PackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
  4232. default: return "Unknown";
  4233. }
  4234. }
  4235. inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) {
  4236. switch (value) {
  4237. case CooperativeMatrixLayout::RowMajorKHR: return "RowMajorKHR";
  4238. case CooperativeMatrixLayout::ColumnMajorKHR: return "ColumnMajorKHR";
  4239. case CooperativeMatrixLayout::RowBlockedInterleavedARM: return "RowBlockedInterleavedARM";
  4240. case CooperativeMatrixLayout::ColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM";
  4241. default: return "Unknown";
  4242. }
  4243. }
  4244. inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) {
  4245. switch (value) {
  4246. case CooperativeMatrixUse::MatrixAKHR: return "MatrixAKHR";
  4247. case CooperativeMatrixUse::MatrixBKHR: return "MatrixBKHR";
  4248. case CooperativeMatrixUse::MatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
  4249. default: return "Unknown";
  4250. }
  4251. }
  4252. inline const char* TensorClampModeToString(TensorClampMode value) {
  4253. switch (value) {
  4254. case TensorClampMode::Undefined: return "Undefined";
  4255. case TensorClampMode::Constant: return "Constant";
  4256. case TensorClampMode::ClampToEdge: return "ClampToEdge";
  4257. case TensorClampMode::Repeat: return "Repeat";
  4258. case TensorClampMode::RepeatMirrored: return "RepeatMirrored";
  4259. default: return "Unknown";
  4260. }
  4261. }
  4262. inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) {
  4263. switch (value) {
  4264. case InitializationModeQualifier::InitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL";
  4265. case InitializationModeQualifier::InitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL";
  4266. default: return "Unknown";
  4267. }
  4268. }
  4269. inline const char* HostAccessQualifierToString(HostAccessQualifier value) {
  4270. switch (value) {
  4271. case HostAccessQualifier::NoneINTEL: return "NoneINTEL";
  4272. case HostAccessQualifier::ReadINTEL: return "ReadINTEL";
  4273. case HostAccessQualifier::WriteINTEL: return "WriteINTEL";
  4274. case HostAccessQualifier::ReadWriteINTEL: return "ReadWriteINTEL";
  4275. default: return "Unknown";
  4276. }
  4277. }
  4278. inline const char* LoadCacheControlToString(LoadCacheControl value) {
  4279. switch (value) {
  4280. case LoadCacheControl::UncachedINTEL: return "UncachedINTEL";
  4281. case LoadCacheControl::CachedINTEL: return "CachedINTEL";
  4282. case LoadCacheControl::StreamingINTEL: return "StreamingINTEL";
  4283. case LoadCacheControl::InvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
  4284. case LoadCacheControl::ConstCachedINTEL: return "ConstCachedINTEL";
  4285. default: return "Unknown";
  4286. }
  4287. }
  4288. inline const char* StoreCacheControlToString(StoreCacheControl value) {
  4289. switch (value) {
  4290. case StoreCacheControl::UncachedINTEL: return "UncachedINTEL";
  4291. case StoreCacheControl::WriteThroughINTEL: return "WriteThroughINTEL";
  4292. case StoreCacheControl::WriteBackINTEL: return "WriteBackINTEL";
  4293. case StoreCacheControl::StreamingINTEL: return "StreamingINTEL";
  4294. default: return "Unknown";
  4295. }
  4296. }
  4297. inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) {
  4298. switch (value) {
  4299. case NamedMaximumNumberOfRegisters::AutoINTEL: return "AutoINTEL";
  4300. default: return "Unknown";
  4301. }
  4302. }
  4303. inline const char* FPEncodingToString(FPEncoding value) {
  4304. switch (value) {
  4305. case FPEncoding::BFloat16KHR: return "BFloat16KHR";
  4306. case FPEncoding::Float8E4M3EXT: return "Float8E4M3EXT";
  4307. case FPEncoding::Float8E5M2EXT: return "Float8E5M2EXT";
  4308. default: return "Unknown";
  4309. }
  4310. }
  4311. inline const char* CooperativeVectorMatrixLayoutToString(CooperativeVectorMatrixLayout value) {
  4312. switch (value) {
  4313. case CooperativeVectorMatrixLayout::RowMajorNV: return "RowMajorNV";
  4314. case CooperativeVectorMatrixLayout::ColumnMajorNV: return "ColumnMajorNV";
  4315. case CooperativeVectorMatrixLayout::InferencingOptimalNV: return "InferencingOptimalNV";
  4316. case CooperativeVectorMatrixLayout::TrainingOptimalNV: return "TrainingOptimalNV";
  4317. default: return "Unknown";
  4318. }
  4319. }
  4320. inline const char* ComponentTypeToString(ComponentType value) {
  4321. switch (value) {
  4322. case ComponentType::Float16NV: return "Float16NV";
  4323. case ComponentType::Float32NV: return "Float32NV";
  4324. case ComponentType::Float64NV: return "Float64NV";
  4325. case ComponentType::SignedInt8NV: return "SignedInt8NV";
  4326. case ComponentType::SignedInt16NV: return "SignedInt16NV";
  4327. case ComponentType::SignedInt32NV: return "SignedInt32NV";
  4328. case ComponentType::SignedInt64NV: return "SignedInt64NV";
  4329. case ComponentType::UnsignedInt8NV: return "UnsignedInt8NV";
  4330. case ComponentType::UnsignedInt16NV: return "UnsignedInt16NV";
  4331. case ComponentType::UnsignedInt32NV: return "UnsignedInt32NV";
  4332. case ComponentType::UnsignedInt64NV: return "UnsignedInt64NV";
  4333. case ComponentType::SignedInt8PackedNV: return "SignedInt8PackedNV";
  4334. case ComponentType::UnsignedInt8PackedNV: return "UnsignedInt8PackedNV";
  4335. case ComponentType::FloatE4M3NV: return "FloatE4M3NV";
  4336. case ComponentType::FloatE5M2NV: return "FloatE5M2NV";
  4337. default: return "Unknown";
  4338. }
  4339. }
  4340. inline const char* OpToString(Op value) {
  4341. switch (value) {
  4342. case Op::OpNop: return "OpNop";
  4343. case Op::OpUndef: return "OpUndef";
  4344. case Op::OpSourceContinued: return "OpSourceContinued";
  4345. case Op::OpSource: return "OpSource";
  4346. case Op::OpSourceExtension: return "OpSourceExtension";
  4347. case Op::OpName: return "OpName";
  4348. case Op::OpMemberName: return "OpMemberName";
  4349. case Op::OpString: return "OpString";
  4350. case Op::OpLine: return "OpLine";
  4351. case Op::OpExtension: return "OpExtension";
  4352. case Op::OpExtInstImport: return "OpExtInstImport";
  4353. case Op::OpExtInst: return "OpExtInst";
  4354. case Op::OpMemoryModel: return "OpMemoryModel";
  4355. case Op::OpEntryPoint: return "OpEntryPoint";
  4356. case Op::OpExecutionMode: return "OpExecutionMode";
  4357. case Op::OpCapability: return "OpCapability";
  4358. case Op::OpTypeVoid: return "OpTypeVoid";
  4359. case Op::OpTypeBool: return "OpTypeBool";
  4360. case Op::OpTypeInt: return "OpTypeInt";
  4361. case Op::OpTypeFloat: return "OpTypeFloat";
  4362. case Op::OpTypeVector: return "OpTypeVector";
  4363. case Op::OpTypeMatrix: return "OpTypeMatrix";
  4364. case Op::OpTypeImage: return "OpTypeImage";
  4365. case Op::OpTypeSampler: return "OpTypeSampler";
  4366. case Op::OpTypeSampledImage: return "OpTypeSampledImage";
  4367. case Op::OpTypeArray: return "OpTypeArray";
  4368. case Op::OpTypeRuntimeArray: return "OpTypeRuntimeArray";
  4369. case Op::OpTypeStruct: return "OpTypeStruct";
  4370. case Op::OpTypeOpaque: return "OpTypeOpaque";
  4371. case Op::OpTypePointer: return "OpTypePointer";
  4372. case Op::OpTypeFunction: return "OpTypeFunction";
  4373. case Op::OpTypeEvent: return "OpTypeEvent";
  4374. case Op::OpTypeDeviceEvent: return "OpTypeDeviceEvent";
  4375. case Op::OpTypeReserveId: return "OpTypeReserveId";
  4376. case Op::OpTypeQueue: return "OpTypeQueue";
  4377. case Op::OpTypePipe: return "OpTypePipe";
  4378. case Op::OpTypeForwardPointer: return "OpTypeForwardPointer";
  4379. case Op::OpConstantTrue: return "OpConstantTrue";
  4380. case Op::OpConstantFalse: return "OpConstantFalse";
  4381. case Op::OpConstant: return "OpConstant";
  4382. case Op::OpConstantComposite: return "OpConstantComposite";
  4383. case Op::OpConstantSampler: return "OpConstantSampler";
  4384. case Op::OpConstantNull: return "OpConstantNull";
  4385. case Op::OpSpecConstantTrue: return "OpSpecConstantTrue";
  4386. case Op::OpSpecConstantFalse: return "OpSpecConstantFalse";
  4387. case Op::OpSpecConstant: return "OpSpecConstant";
  4388. case Op::OpSpecConstantComposite: return "OpSpecConstantComposite";
  4389. case Op::OpSpecConstantOp: return "OpSpecConstantOp";
  4390. case Op::OpFunction: return "OpFunction";
  4391. case Op::OpFunctionParameter: return "OpFunctionParameter";
  4392. case Op::OpFunctionEnd: return "OpFunctionEnd";
  4393. case Op::OpFunctionCall: return "OpFunctionCall";
  4394. case Op::OpVariable: return "OpVariable";
  4395. case Op::OpImageTexelPointer: return "OpImageTexelPointer";
  4396. case Op::OpLoad: return "OpLoad";
  4397. case Op::OpStore: return "OpStore";
  4398. case Op::OpCopyMemory: return "OpCopyMemory";
  4399. case Op::OpCopyMemorySized: return "OpCopyMemorySized";
  4400. case Op::OpAccessChain: return "OpAccessChain";
  4401. case Op::OpInBoundsAccessChain: return "OpInBoundsAccessChain";
  4402. case Op::OpPtrAccessChain: return "OpPtrAccessChain";
  4403. case Op::OpArrayLength: return "OpArrayLength";
  4404. case Op::OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
  4405. case Op::OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
  4406. case Op::OpDecorate: return "OpDecorate";
  4407. case Op::OpMemberDecorate: return "OpMemberDecorate";
  4408. case Op::OpDecorationGroup: return "OpDecorationGroup";
  4409. case Op::OpGroupDecorate: return "OpGroupDecorate";
  4410. case Op::OpGroupMemberDecorate: return "OpGroupMemberDecorate";
  4411. case Op::OpVectorExtractDynamic: return "OpVectorExtractDynamic";
  4412. case Op::OpVectorInsertDynamic: return "OpVectorInsertDynamic";
  4413. case Op::OpVectorShuffle: return "OpVectorShuffle";
  4414. case Op::OpCompositeConstruct: return "OpCompositeConstruct";
  4415. case Op::OpCompositeExtract: return "OpCompositeExtract";
  4416. case Op::OpCompositeInsert: return "OpCompositeInsert";
  4417. case Op::OpCopyObject: return "OpCopyObject";
  4418. case Op::OpTranspose: return "OpTranspose";
  4419. case Op::OpSampledImage: return "OpSampledImage";
  4420. case Op::OpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
  4421. case Op::OpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
  4422. case Op::OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
  4423. case Op::OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
  4424. case Op::OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
  4425. case Op::OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
  4426. case Op::OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
  4427. case Op::OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
  4428. case Op::OpImageFetch: return "OpImageFetch";
  4429. case Op::OpImageGather: return "OpImageGather";
  4430. case Op::OpImageDrefGather: return "OpImageDrefGather";
  4431. case Op::OpImageRead: return "OpImageRead";
  4432. case Op::OpImageWrite: return "OpImageWrite";
  4433. case Op::OpImage: return "OpImage";
  4434. case Op::OpImageQueryFormat: return "OpImageQueryFormat";
  4435. case Op::OpImageQueryOrder: return "OpImageQueryOrder";
  4436. case Op::OpImageQuerySizeLod: return "OpImageQuerySizeLod";
  4437. case Op::OpImageQuerySize: return "OpImageQuerySize";
  4438. case Op::OpImageQueryLod: return "OpImageQueryLod";
  4439. case Op::OpImageQueryLevels: return "OpImageQueryLevels";
  4440. case Op::OpImageQuerySamples: return "OpImageQuerySamples";
  4441. case Op::OpConvertFToU: return "OpConvertFToU";
  4442. case Op::OpConvertFToS: return "OpConvertFToS";
  4443. case Op::OpConvertSToF: return "OpConvertSToF";
  4444. case Op::OpConvertUToF: return "OpConvertUToF";
  4445. case Op::OpUConvert: return "OpUConvert";
  4446. case Op::OpSConvert: return "OpSConvert";
  4447. case Op::OpFConvert: return "OpFConvert";
  4448. case Op::OpQuantizeToF16: return "OpQuantizeToF16";
  4449. case Op::OpConvertPtrToU: return "OpConvertPtrToU";
  4450. case Op::OpSatConvertSToU: return "OpSatConvertSToU";
  4451. case Op::OpSatConvertUToS: return "OpSatConvertUToS";
  4452. case Op::OpConvertUToPtr: return "OpConvertUToPtr";
  4453. case Op::OpPtrCastToGeneric: return "OpPtrCastToGeneric";
  4454. case Op::OpGenericCastToPtr: return "OpGenericCastToPtr";
  4455. case Op::OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
  4456. case Op::OpBitcast: return "OpBitcast";
  4457. case Op::OpSNegate: return "OpSNegate";
  4458. case Op::OpFNegate: return "OpFNegate";
  4459. case Op::OpIAdd: return "OpIAdd";
  4460. case Op::OpFAdd: return "OpFAdd";
  4461. case Op::OpISub: return "OpISub";
  4462. case Op::OpFSub: return "OpFSub";
  4463. case Op::OpIMul: return "OpIMul";
  4464. case Op::OpFMul: return "OpFMul";
  4465. case Op::OpUDiv: return "OpUDiv";
  4466. case Op::OpSDiv: return "OpSDiv";
  4467. case Op::OpFDiv: return "OpFDiv";
  4468. case Op::OpUMod: return "OpUMod";
  4469. case Op::OpSRem: return "OpSRem";
  4470. case Op::OpSMod: return "OpSMod";
  4471. case Op::OpFRem: return "OpFRem";
  4472. case Op::OpFMod: return "OpFMod";
  4473. case Op::OpVectorTimesScalar: return "OpVectorTimesScalar";
  4474. case Op::OpMatrixTimesScalar: return "OpMatrixTimesScalar";
  4475. case Op::OpVectorTimesMatrix: return "OpVectorTimesMatrix";
  4476. case Op::OpMatrixTimesVector: return "OpMatrixTimesVector";
  4477. case Op::OpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
  4478. case Op::OpOuterProduct: return "OpOuterProduct";
  4479. case Op::OpDot: return "OpDot";
  4480. case Op::OpIAddCarry: return "OpIAddCarry";
  4481. case Op::OpISubBorrow: return "OpISubBorrow";
  4482. case Op::OpUMulExtended: return "OpUMulExtended";
  4483. case Op::OpSMulExtended: return "OpSMulExtended";
  4484. case Op::OpAny: return "OpAny";
  4485. case Op::OpAll: return "OpAll";
  4486. case Op::OpIsNan: return "OpIsNan";
  4487. case Op::OpIsInf: return "OpIsInf";
  4488. case Op::OpIsFinite: return "OpIsFinite";
  4489. case Op::OpIsNormal: return "OpIsNormal";
  4490. case Op::OpSignBitSet: return "OpSignBitSet";
  4491. case Op::OpLessOrGreater: return "OpLessOrGreater";
  4492. case Op::OpOrdered: return "OpOrdered";
  4493. case Op::OpUnordered: return "OpUnordered";
  4494. case Op::OpLogicalEqual: return "OpLogicalEqual";
  4495. case Op::OpLogicalNotEqual: return "OpLogicalNotEqual";
  4496. case Op::OpLogicalOr: return "OpLogicalOr";
  4497. case Op::OpLogicalAnd: return "OpLogicalAnd";
  4498. case Op::OpLogicalNot: return "OpLogicalNot";
  4499. case Op::OpSelect: return "OpSelect";
  4500. case Op::OpIEqual: return "OpIEqual";
  4501. case Op::OpINotEqual: return "OpINotEqual";
  4502. case Op::OpUGreaterThan: return "OpUGreaterThan";
  4503. case Op::OpSGreaterThan: return "OpSGreaterThan";
  4504. case Op::OpUGreaterThanEqual: return "OpUGreaterThanEqual";
  4505. case Op::OpSGreaterThanEqual: return "OpSGreaterThanEqual";
  4506. case Op::OpULessThan: return "OpULessThan";
  4507. case Op::OpSLessThan: return "OpSLessThan";
  4508. case Op::OpULessThanEqual: return "OpULessThanEqual";
  4509. case Op::OpSLessThanEqual: return "OpSLessThanEqual";
  4510. case Op::OpFOrdEqual: return "OpFOrdEqual";
  4511. case Op::OpFUnordEqual: return "OpFUnordEqual";
  4512. case Op::OpFOrdNotEqual: return "OpFOrdNotEqual";
  4513. case Op::OpFUnordNotEqual: return "OpFUnordNotEqual";
  4514. case Op::OpFOrdLessThan: return "OpFOrdLessThan";
  4515. case Op::OpFUnordLessThan: return "OpFUnordLessThan";
  4516. case Op::OpFOrdGreaterThan: return "OpFOrdGreaterThan";
  4517. case Op::OpFUnordGreaterThan: return "OpFUnordGreaterThan";
  4518. case Op::OpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
  4519. case Op::OpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
  4520. case Op::OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
  4521. case Op::OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
  4522. case Op::OpShiftRightLogical: return "OpShiftRightLogical";
  4523. case Op::OpShiftRightArithmetic: return "OpShiftRightArithmetic";
  4524. case Op::OpShiftLeftLogical: return "OpShiftLeftLogical";
  4525. case Op::OpBitwiseOr: return "OpBitwiseOr";
  4526. case Op::OpBitwiseXor: return "OpBitwiseXor";
  4527. case Op::OpBitwiseAnd: return "OpBitwiseAnd";
  4528. case Op::OpNot: return "OpNot";
  4529. case Op::OpBitFieldInsert: return "OpBitFieldInsert";
  4530. case Op::OpBitFieldSExtract: return "OpBitFieldSExtract";
  4531. case Op::OpBitFieldUExtract: return "OpBitFieldUExtract";
  4532. case Op::OpBitReverse: return "OpBitReverse";
  4533. case Op::OpBitCount: return "OpBitCount";
  4534. case Op::OpDPdx: return "OpDPdx";
  4535. case Op::OpDPdy: return "OpDPdy";
  4536. case Op::OpFwidth: return "OpFwidth";
  4537. case Op::OpDPdxFine: return "OpDPdxFine";
  4538. case Op::OpDPdyFine: return "OpDPdyFine";
  4539. case Op::OpFwidthFine: return "OpFwidthFine";
  4540. case Op::OpDPdxCoarse: return "OpDPdxCoarse";
  4541. case Op::OpDPdyCoarse: return "OpDPdyCoarse";
  4542. case Op::OpFwidthCoarse: return "OpFwidthCoarse";
  4543. case Op::OpEmitVertex: return "OpEmitVertex";
  4544. case Op::OpEndPrimitive: return "OpEndPrimitive";
  4545. case Op::OpEmitStreamVertex: return "OpEmitStreamVertex";
  4546. case Op::OpEndStreamPrimitive: return "OpEndStreamPrimitive";
  4547. case Op::OpControlBarrier: return "OpControlBarrier";
  4548. case Op::OpMemoryBarrier: return "OpMemoryBarrier";
  4549. case Op::OpAtomicLoad: return "OpAtomicLoad";
  4550. case Op::OpAtomicStore: return "OpAtomicStore";
  4551. case Op::OpAtomicExchange: return "OpAtomicExchange";
  4552. case Op::OpAtomicCompareExchange: return "OpAtomicCompareExchange";
  4553. case Op::OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
  4554. case Op::OpAtomicIIncrement: return "OpAtomicIIncrement";
  4555. case Op::OpAtomicIDecrement: return "OpAtomicIDecrement";
  4556. case Op::OpAtomicIAdd: return "OpAtomicIAdd";
  4557. case Op::OpAtomicISub: return "OpAtomicISub";
  4558. case Op::OpAtomicSMin: return "OpAtomicSMin";
  4559. case Op::OpAtomicUMin: return "OpAtomicUMin";
  4560. case Op::OpAtomicSMax: return "OpAtomicSMax";
  4561. case Op::OpAtomicUMax: return "OpAtomicUMax";
  4562. case Op::OpAtomicAnd: return "OpAtomicAnd";
  4563. case Op::OpAtomicOr: return "OpAtomicOr";
  4564. case Op::OpAtomicXor: return "OpAtomicXor";
  4565. case Op::OpPhi: return "OpPhi";
  4566. case Op::OpLoopMerge: return "OpLoopMerge";
  4567. case Op::OpSelectionMerge: return "OpSelectionMerge";
  4568. case Op::OpLabel: return "OpLabel";
  4569. case Op::OpBranch: return "OpBranch";
  4570. case Op::OpBranchConditional: return "OpBranchConditional";
  4571. case Op::OpSwitch: return "OpSwitch";
  4572. case Op::OpKill: return "OpKill";
  4573. case Op::OpReturn: return "OpReturn";
  4574. case Op::OpReturnValue: return "OpReturnValue";
  4575. case Op::OpUnreachable: return "OpUnreachable";
  4576. case Op::OpLifetimeStart: return "OpLifetimeStart";
  4577. case Op::OpLifetimeStop: return "OpLifetimeStop";
  4578. case Op::OpGroupAsyncCopy: return "OpGroupAsyncCopy";
  4579. case Op::OpGroupWaitEvents: return "OpGroupWaitEvents";
  4580. case Op::OpGroupAll: return "OpGroupAll";
  4581. case Op::OpGroupAny: return "OpGroupAny";
  4582. case Op::OpGroupBroadcast: return "OpGroupBroadcast";
  4583. case Op::OpGroupIAdd: return "OpGroupIAdd";
  4584. case Op::OpGroupFAdd: return "OpGroupFAdd";
  4585. case Op::OpGroupFMin: return "OpGroupFMin";
  4586. case Op::OpGroupUMin: return "OpGroupUMin";
  4587. case Op::OpGroupSMin: return "OpGroupSMin";
  4588. case Op::OpGroupFMax: return "OpGroupFMax";
  4589. case Op::OpGroupUMax: return "OpGroupUMax";
  4590. case Op::OpGroupSMax: return "OpGroupSMax";
  4591. case Op::OpReadPipe: return "OpReadPipe";
  4592. case Op::OpWritePipe: return "OpWritePipe";
  4593. case Op::OpReservedReadPipe: return "OpReservedReadPipe";
  4594. case Op::OpReservedWritePipe: return "OpReservedWritePipe";
  4595. case Op::OpReserveReadPipePackets: return "OpReserveReadPipePackets";
  4596. case Op::OpReserveWritePipePackets: return "OpReserveWritePipePackets";
  4597. case Op::OpCommitReadPipe: return "OpCommitReadPipe";
  4598. case Op::OpCommitWritePipe: return "OpCommitWritePipe";
  4599. case Op::OpIsValidReserveId: return "OpIsValidReserveId";
  4600. case Op::OpGetNumPipePackets: return "OpGetNumPipePackets";
  4601. case Op::OpGetMaxPipePackets: return "OpGetMaxPipePackets";
  4602. case Op::OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
  4603. case Op::OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
  4604. case Op::OpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
  4605. case Op::OpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
  4606. case Op::OpEnqueueMarker: return "OpEnqueueMarker";
  4607. case Op::OpEnqueueKernel: return "OpEnqueueKernel";
  4608. case Op::OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
  4609. case Op::OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
  4610. case Op::OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
  4611. case Op::OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
  4612. case Op::OpRetainEvent: return "OpRetainEvent";
  4613. case Op::OpReleaseEvent: return "OpReleaseEvent";
  4614. case Op::OpCreateUserEvent: return "OpCreateUserEvent";
  4615. case Op::OpIsValidEvent: return "OpIsValidEvent";
  4616. case Op::OpSetUserEventStatus: return "OpSetUserEventStatus";
  4617. case Op::OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
  4618. case Op::OpGetDefaultQueue: return "OpGetDefaultQueue";
  4619. case Op::OpBuildNDRange: return "OpBuildNDRange";
  4620. case Op::OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
  4621. case Op::OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
  4622. case Op::OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
  4623. case Op::OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
  4624. case Op::OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
  4625. case Op::OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
  4626. case Op::OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
  4627. case Op::OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
  4628. case Op::OpImageSparseFetch: return "OpImageSparseFetch";
  4629. case Op::OpImageSparseGather: return "OpImageSparseGather";
  4630. case Op::OpImageSparseDrefGather: return "OpImageSparseDrefGather";
  4631. case Op::OpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
  4632. case Op::OpNoLine: return "OpNoLine";
  4633. case Op::OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
  4634. case Op::OpAtomicFlagClear: return "OpAtomicFlagClear";
  4635. case Op::OpImageSparseRead: return "OpImageSparseRead";
  4636. case Op::OpSizeOf: return "OpSizeOf";
  4637. case Op::OpTypePipeStorage: return "OpTypePipeStorage";
  4638. case Op::OpConstantPipeStorage: return "OpConstantPipeStorage";
  4639. case Op::OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
  4640. case Op::OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
  4641. case Op::OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
  4642. case Op::OpTypeNamedBarrier: return "OpTypeNamedBarrier";
  4643. case Op::OpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
  4644. case Op::OpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
  4645. case Op::OpModuleProcessed: return "OpModuleProcessed";
  4646. case Op::OpExecutionModeId: return "OpExecutionModeId";
  4647. case Op::OpDecorateId: return "OpDecorateId";
  4648. case Op::OpGroupNonUniformElect: return "OpGroupNonUniformElect";
  4649. case Op::OpGroupNonUniformAll: return "OpGroupNonUniformAll";
  4650. case Op::OpGroupNonUniformAny: return "OpGroupNonUniformAny";
  4651. case Op::OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
  4652. case Op::OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
  4653. case Op::OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
  4654. case Op::OpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
  4655. case Op::OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
  4656. case Op::OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
  4657. case Op::OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
  4658. case Op::OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
  4659. case Op::OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
  4660. case Op::OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
  4661. case Op::OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
  4662. case Op::OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
  4663. case Op::OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
  4664. case Op::OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
  4665. case Op::OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
  4666. case Op::OpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
  4667. case Op::OpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
  4668. case Op::OpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
  4669. case Op::OpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
  4670. case Op::OpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
  4671. case Op::OpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
  4672. case Op::OpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
  4673. case Op::OpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
  4674. case Op::OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
  4675. case Op::OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
  4676. case Op::OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
  4677. case Op::OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
  4678. case Op::OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
  4679. case Op::OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
  4680. case Op::OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
  4681. case Op::OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
  4682. case Op::OpCopyLogical: return "OpCopyLogical";
  4683. case Op::OpPtrEqual: return "OpPtrEqual";
  4684. case Op::OpPtrNotEqual: return "OpPtrNotEqual";
  4685. case Op::OpPtrDiff: return "OpPtrDiff";
  4686. case Op::OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
  4687. case Op::OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
  4688. case Op::OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
  4689. case Op::OpTypeTensorARM: return "OpTypeTensorARM";
  4690. case Op::OpTensorReadARM: return "OpTensorReadARM";
  4691. case Op::OpTensorWriteARM: return "OpTensorWriteARM";
  4692. case Op::OpTensorQuerySizeARM: return "OpTensorQuerySizeARM";
  4693. case Op::OpTerminateInvocation: return "OpTerminateInvocation";
  4694. case Op::OpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
  4695. case Op::OpUntypedVariableKHR: return "OpUntypedVariableKHR";
  4696. case Op::OpUntypedAccessChainKHR: return "OpUntypedAccessChainKHR";
  4697. case Op::OpUntypedInBoundsAccessChainKHR: return "OpUntypedInBoundsAccessChainKHR";
  4698. case Op::OpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
  4699. case Op::OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
  4700. case Op::OpUntypedPtrAccessChainKHR: return "OpUntypedPtrAccessChainKHR";
  4701. case Op::OpUntypedInBoundsPtrAccessChainKHR: return "OpUntypedInBoundsPtrAccessChainKHR";
  4702. case Op::OpUntypedArrayLengthKHR: return "OpUntypedArrayLengthKHR";
  4703. case Op::OpUntypedPrefetchKHR: return "OpUntypedPrefetchKHR";
  4704. case Op::OpSubgroupAllKHR: return "OpSubgroupAllKHR";
  4705. case Op::OpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
  4706. case Op::OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
  4707. case Op::OpBufferPointerEXT: return "OpBufferPointerEXT";
  4708. case Op::OpUntypedImageTexelPointerEXT: return "OpUntypedImageTexelPointerEXT";
  4709. case Op::OpMemberDecorateIdEXT: return "OpMemberDecorateIdEXT";
  4710. case Op::OpConstantSizeOfEXT: return "OpConstantSizeOfEXT";
  4711. case Op::OpTypeBufferEXT: return "OpTypeBufferEXT";
  4712. case Op::OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
  4713. case Op::OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
  4714. case Op::OpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR";
  4715. case Op::OpTraceRayKHR: return "OpTraceRayKHR";
  4716. case Op::OpExecuteCallableKHR: return "OpExecuteCallableKHR";
  4717. case Op::OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
  4718. case Op::OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
  4719. case Op::OpTerminateRayKHR: return "OpTerminateRayKHR";
  4720. case Op::OpSDot: return "OpSDot";
  4721. case Op::OpUDot: return "OpUDot";
  4722. case Op::OpSUDot: return "OpSUDot";
  4723. case Op::OpSDotAccSat: return "OpSDotAccSat";
  4724. case Op::OpUDotAccSat: return "OpUDotAccSat";
  4725. case Op::OpSUDotAccSat: return "OpSUDotAccSat";
  4726. case Op::OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
  4727. case Op::OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
  4728. case Op::OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
  4729. case Op::OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
  4730. case Op::OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
  4731. case Op::OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
  4732. case Op::OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
  4733. case Op::OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
  4734. case Op::OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
  4735. case Op::OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
  4736. case Op::OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
  4737. case Op::OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
  4738. case Op::OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
  4739. case Op::OpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
  4740. case Op::OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
  4741. case Op::OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
  4742. case Op::OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
  4743. case Op::OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
  4744. case Op::OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
  4745. case Op::OpBitCastArrayQCOM: return "OpBitCastArrayQCOM";
  4746. case Op::OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
  4747. case Op::OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
  4748. case Op::OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
  4749. case Op::OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
  4750. case Op::OpCompositeConstructCoopMatQCOM: return "OpCompositeConstructCoopMatQCOM";
  4751. case Op::OpCompositeExtractCoopMatQCOM: return "OpCompositeExtractCoopMatQCOM";
  4752. case Op::OpExtractSubArrayQCOM: return "OpExtractSubArrayQCOM";
  4753. case Op::OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
  4754. case Op::OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
  4755. case Op::OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
  4756. case Op::OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
  4757. case Op::OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
  4758. case Op::OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
  4759. case Op::OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
  4760. case Op::OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
  4761. case Op::OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
  4762. case Op::OpFragmentFetchAMD: return "OpFragmentFetchAMD";
  4763. case Op::OpReadClockKHR: return "OpReadClockKHR";
  4764. case Op::OpAllocateNodePayloadsAMDX: return "OpAllocateNodePayloadsAMDX";
  4765. case Op::OpEnqueueNodePayloadsAMDX: return "OpEnqueueNodePayloadsAMDX";
  4766. case Op::OpTypeNodePayloadArrayAMDX: return "OpTypeNodePayloadArrayAMDX";
  4767. case Op::OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
  4768. case Op::OpNodePayloadArrayLengthAMDX: return "OpNodePayloadArrayLengthAMDX";
  4769. case Op::OpIsNodePayloadValidAMDX: return "OpIsNodePayloadValidAMDX";
  4770. case Op::OpConstantStringAMDX: return "OpConstantStringAMDX";
  4771. case Op::OpSpecConstantStringAMDX: return "OpSpecConstantStringAMDX";
  4772. case Op::OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
  4773. case Op::OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
  4774. case Op::OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
  4775. case Op::OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
  4776. case Op::OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
  4777. case Op::OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
  4778. case Op::OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
  4779. case Op::OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
  4780. case Op::OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
  4781. case Op::OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
  4782. case Op::OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
  4783. case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
  4784. case Op::OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
  4785. case Op::OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
  4786. case Op::OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
  4787. case Op::OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
  4788. case Op::OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
  4789. case Op::OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
  4790. case Op::OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
  4791. case Op::OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
  4792. case Op::OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
  4793. case Op::OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
  4794. case Op::OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
  4795. case Op::OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
  4796. case Op::OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
  4797. case Op::OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
  4798. case Op::OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
  4799. case Op::OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
  4800. case Op::OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
  4801. case Op::OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
  4802. case Op::OpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
  4803. case Op::OpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
  4804. case Op::OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
  4805. case Op::OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
  4806. case Op::OpTypeHitObjectNV: return "OpTypeHitObjectNV";
  4807. case Op::OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
  4808. case Op::OpTypeCooperativeVectorNV: return "OpTypeCooperativeVectorNV";
  4809. case Op::OpCooperativeVectorMatrixMulNV: return "OpCooperativeVectorMatrixMulNV";
  4810. case Op::OpCooperativeVectorOuterProductAccumulateNV: return "OpCooperativeVectorOuterProductAccumulateNV";
  4811. case Op::OpCooperativeVectorReduceSumAccumulateNV: return "OpCooperativeVectorReduceSumAccumulateNV";
  4812. case Op::OpCooperativeVectorMatrixMulAddNV: return "OpCooperativeVectorMatrixMulAddNV";
  4813. case Op::OpCooperativeMatrixConvertNV: return "OpCooperativeMatrixConvertNV";
  4814. case Op::OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
  4815. case Op::OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
  4816. case Op::OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
  4817. case Op::OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
  4818. case Op::OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
  4819. case Op::OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
  4820. case Op::OpCooperativeVectorLoadNV: return "OpCooperativeVectorLoadNV";
  4821. case Op::OpCooperativeVectorStoreNV: return "OpCooperativeVectorStoreNV";
  4822. case Op::OpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT";
  4823. case Op::OpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT";
  4824. case Op::OpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT";
  4825. case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT";
  4826. case Op::OpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT";
  4827. case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT";
  4828. case Op::OpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteShaderEXT";
  4829. case Op::OpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT";
  4830. case Op::OpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT";
  4831. case Op::OpTypeHitObjectEXT: return "OpTypeHitObjectEXT";
  4832. case Op::OpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT";
  4833. case Op::OpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT";
  4834. case Op::OpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT";
  4835. case Op::OpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT";
  4836. case Op::OpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT";
  4837. case Op::OpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT";
  4838. case Op::OpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT";
  4839. case Op::OpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT";
  4840. case Op::OpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT";
  4841. case Op::OpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT";
  4842. case Op::OpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT";
  4843. case Op::OpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT";
  4844. case Op::OpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT";
  4845. case Op::OpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT";
  4846. case Op::OpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT";
  4847. case Op::OpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT";
  4848. case Op::OpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT";
  4849. case Op::OpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT";
  4850. case Op::OpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT";
  4851. case Op::OpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT";
  4852. case Op::OpReportIntersectionKHR: return "OpReportIntersectionKHR";
  4853. case Op::OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
  4854. case Op::OpTerminateRayNV: return "OpTerminateRayNV";
  4855. case Op::OpTraceNV: return "OpTraceNV";
  4856. case Op::OpTraceMotionNV: return "OpTraceMotionNV";
  4857. case Op::OpTraceRayMotionNV: return "OpTraceRayMotionNV";
  4858. case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
  4859. case Op::OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
  4860. case Op::OpExecuteCallableNV: return "OpExecuteCallableNV";
  4861. case Op::OpRayQueryGetClusterIdNV: return "OpRayQueryGetClusterIdNV";
  4862. case Op::OpHitObjectGetClusterIdNV: return "OpHitObjectGetClusterIdNV";
  4863. case Op::OpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT";
  4864. case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT";
  4865. case Op::OpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT";
  4866. case Op::OpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT";
  4867. case Op::OpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT";
  4868. case Op::OpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT";
  4869. case Op::OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
  4870. case Op::OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
  4871. case Op::OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
  4872. case Op::OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
  4873. case Op::OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
  4874. case Op::OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
  4875. case Op::OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
  4876. case Op::OpCooperativeMatrixReduceNV: return "OpCooperativeMatrixReduceNV";
  4877. case Op::OpCooperativeMatrixLoadTensorNV: return "OpCooperativeMatrixLoadTensorNV";
  4878. case Op::OpCooperativeMatrixStoreTensorNV: return "OpCooperativeMatrixStoreTensorNV";
  4879. case Op::OpCooperativeMatrixPerElementOpNV: return "OpCooperativeMatrixPerElementOpNV";
  4880. case Op::OpTypeTensorLayoutNV: return "OpTypeTensorLayoutNV";
  4881. case Op::OpTypeTensorViewNV: return "OpTypeTensorViewNV";
  4882. case Op::OpCreateTensorLayoutNV: return "OpCreateTensorLayoutNV";
  4883. case Op::OpTensorLayoutSetDimensionNV: return "OpTensorLayoutSetDimensionNV";
  4884. case Op::OpTensorLayoutSetStrideNV: return "OpTensorLayoutSetStrideNV";
  4885. case Op::OpTensorLayoutSliceNV: return "OpTensorLayoutSliceNV";
  4886. case Op::OpTensorLayoutSetClampValueNV: return "OpTensorLayoutSetClampValueNV";
  4887. case Op::OpCreateTensorViewNV: return "OpCreateTensorViewNV";
  4888. case Op::OpTensorViewSetDimensionNV: return "OpTensorViewSetDimensionNV";
  4889. case Op::OpTensorViewSetStrideNV: return "OpTensorViewSetStrideNV";
  4890. case Op::OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
  4891. case Op::OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
  4892. case Op::OpTensorViewSetClipNV: return "OpTensorViewSetClipNV";
  4893. case Op::OpTensorLayoutSetBlockSizeNV: return "OpTensorLayoutSetBlockSizeNV";
  4894. case Op::OpCooperativeMatrixTransposeNV: return "OpCooperativeMatrixTransposeNV";
  4895. case Op::OpConvertUToImageNV: return "OpConvertUToImageNV";
  4896. case Op::OpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
  4897. case Op::OpConvertImageToUNV: return "OpConvertImageToUNV";
  4898. case Op::OpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
  4899. case Op::OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
  4900. case Op::OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
  4901. case Op::OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
  4902. case Op::OpRawAccessChainNV: return "OpRawAccessChainNV";
  4903. case Op::OpRayQueryGetIntersectionSpherePositionNV: return "OpRayQueryGetIntersectionSpherePositionNV";
  4904. case Op::OpRayQueryGetIntersectionSphereRadiusNV: return "OpRayQueryGetIntersectionSphereRadiusNV";
  4905. case Op::OpRayQueryGetIntersectionLSSPositionsNV: return "OpRayQueryGetIntersectionLSSPositionsNV";
  4906. case Op::OpRayQueryGetIntersectionLSSRadiiNV: return "OpRayQueryGetIntersectionLSSRadiiNV";
  4907. case Op::OpRayQueryGetIntersectionLSSHitValueNV: return "OpRayQueryGetIntersectionLSSHitValueNV";
  4908. case Op::OpHitObjectGetSpherePositionNV: return "OpHitObjectGetSpherePositionNV";
  4909. case Op::OpHitObjectGetSphereRadiusNV: return "OpHitObjectGetSphereRadiusNV";
  4910. case Op::OpHitObjectGetLSSPositionsNV: return "OpHitObjectGetLSSPositionsNV";
  4911. case Op::OpHitObjectGetLSSRadiiNV: return "OpHitObjectGetLSSRadiiNV";
  4912. case Op::OpHitObjectIsSphereHitNV: return "OpHitObjectIsSphereHitNV";
  4913. case Op::OpHitObjectIsLSSHitNV: return "OpHitObjectIsLSSHitNV";
  4914. case Op::OpRayQueryIsSphereHitNV: return "OpRayQueryIsSphereHitNV";
  4915. case Op::OpRayQueryIsLSSHitNV: return "OpRayQueryIsLSSHitNV";
  4916. case Op::OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
  4917. case Op::OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
  4918. case Op::OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
  4919. case Op::OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
  4920. case Op::OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
  4921. case Op::OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
  4922. case Op::OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
  4923. case Op::OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
  4924. case Op::OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
  4925. case Op::OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
  4926. case Op::OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
  4927. case Op::OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
  4928. case Op::OpAbsISubINTEL: return "OpAbsISubINTEL";
  4929. case Op::OpAbsUSubINTEL: return "OpAbsUSubINTEL";
  4930. case Op::OpIAddSatINTEL: return "OpIAddSatINTEL";
  4931. case Op::OpUAddSatINTEL: return "OpUAddSatINTEL";
  4932. case Op::OpIAverageINTEL: return "OpIAverageINTEL";
  4933. case Op::OpUAverageINTEL: return "OpUAverageINTEL";
  4934. case Op::OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
  4935. case Op::OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
  4936. case Op::OpISubSatINTEL: return "OpISubSatINTEL";
  4937. case Op::OpUSubSatINTEL: return "OpUSubSatINTEL";
  4938. case Op::OpIMul32x16INTEL: return "OpIMul32x16INTEL";
  4939. case Op::OpUMul32x16INTEL: return "OpUMul32x16INTEL";
  4940. case Op::OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
  4941. case Op::OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
  4942. case Op::OpAsmTargetINTEL: return "OpAsmTargetINTEL";
  4943. case Op::OpAsmINTEL: return "OpAsmINTEL";
  4944. case Op::OpAsmCallINTEL: return "OpAsmCallINTEL";
  4945. case Op::OpAtomicFMinEXT: return "OpAtomicFMinEXT";
  4946. case Op::OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
  4947. case Op::OpAssumeTrueKHR: return "OpAssumeTrueKHR";
  4948. case Op::OpExpectKHR: return "OpExpectKHR";
  4949. case Op::OpDecorateString: return "OpDecorateString";
  4950. case Op::OpMemberDecorateString: return "OpMemberDecorateString";
  4951. case Op::OpVmeImageINTEL: return "OpVmeImageINTEL";
  4952. case Op::OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
  4953. case Op::OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
  4954. case Op::OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
  4955. case Op::OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
  4956. case Op::OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
  4957. case Op::OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
  4958. case Op::OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
  4959. case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
  4960. case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
  4961. case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
  4962. case Op::OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
  4963. case Op::OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
  4964. case Op::OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
  4965. case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
  4966. case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
  4967. case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
  4968. case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
  4969. case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
  4970. case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
  4971. case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
  4972. case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
  4973. case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
  4974. case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
  4975. case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
  4976. case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
  4977. case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
  4978. case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
  4979. case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
  4980. case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
  4981. case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
  4982. case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
  4983. case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
  4984. case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
  4985. case Op::OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
  4986. case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
  4987. case Op::OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
  4988. case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
  4989. case Op::OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
  4990. case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
  4991. case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
  4992. case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
  4993. case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
  4994. case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
  4995. case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
  4996. case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
  4997. case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
  4998. case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
  4999. case Op::OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
  5000. case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
  5001. case Op::OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
  5002. case Op::OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
  5003. case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
  5004. case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
  5005. case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
  5006. case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
  5007. case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
  5008. case Op::OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
  5009. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
  5010. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
  5011. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
  5012. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
  5013. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
  5014. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
  5015. case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
  5016. case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
  5017. case Op::OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
  5018. case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
  5019. case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
  5020. case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
  5021. case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
  5022. case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
  5023. case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
  5024. case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
  5025. case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
  5026. case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
  5027. case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
  5028. case Op::OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
  5029. case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
  5030. case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
  5031. case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
  5032. case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
  5033. case Op::OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
  5034. case Op::OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
  5035. case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
  5036. case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
  5037. case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
  5038. case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
  5039. case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
  5040. case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
  5041. case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
  5042. case Op::OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
  5043. case Op::OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
  5044. case Op::OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
  5045. case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
  5046. case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
  5047. case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
  5048. case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
  5049. case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
  5050. case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
  5051. case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
  5052. case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
  5053. case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
  5054. case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
  5055. case Op::OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
  5056. case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
  5057. case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
  5058. case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
  5059. case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
  5060. case Op::OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
  5061. case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
  5062. case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
  5063. case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
  5064. case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
  5065. case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
  5066. case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
  5067. case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
  5068. case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
  5069. case Op::OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
  5070. case Op::OpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
  5071. case Op::OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
  5072. case Op::OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL";
  5073. case Op::OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL";
  5074. case Op::OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL";
  5075. case Op::OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL";
  5076. case Op::OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL";
  5077. case Op::OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL";
  5078. case Op::OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL";
  5079. case Op::OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL";
  5080. case Op::OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL";
  5081. case Op::OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL";
  5082. case Op::OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL";
  5083. case Op::OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL";
  5084. case Op::OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL";
  5085. case Op::OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL";
  5086. case Op::OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL";
  5087. case Op::OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL";
  5088. case Op::OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL";
  5089. case Op::OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL";
  5090. case Op::OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
  5091. case Op::OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
  5092. case Op::OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
  5093. case Op::OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
  5094. case Op::OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
  5095. case Op::OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
  5096. case Op::OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
  5097. case Op::OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
  5098. case Op::OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
  5099. case Op::OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
  5100. case Op::OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
  5101. case Op::OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
  5102. case Op::OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
  5103. case Op::OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
  5104. case Op::OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
  5105. case Op::OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
  5106. case Op::OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
  5107. case Op::OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
  5108. case Op::OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
  5109. case Op::OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
  5110. case Op::OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
  5111. case Op::OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
  5112. case Op::OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
  5113. case Op::OpLoopControlINTEL: return "OpLoopControlINTEL";
  5114. case Op::OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
  5115. case Op::OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
  5116. case Op::OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
  5117. case Op::OpFixedSqrtINTEL: return "OpFixedSqrtINTEL";
  5118. case Op::OpFixedRecipINTEL: return "OpFixedRecipINTEL";
  5119. case Op::OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL";
  5120. case Op::OpFixedSinINTEL: return "OpFixedSinINTEL";
  5121. case Op::OpFixedCosINTEL: return "OpFixedCosINTEL";
  5122. case Op::OpFixedSinCosINTEL: return "OpFixedSinCosINTEL";
  5123. case Op::OpFixedSinPiINTEL: return "OpFixedSinPiINTEL";
  5124. case Op::OpFixedCosPiINTEL: return "OpFixedCosPiINTEL";
  5125. case Op::OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL";
  5126. case Op::OpFixedLogINTEL: return "OpFixedLogINTEL";
  5127. case Op::OpFixedExpINTEL: return "OpFixedExpINTEL";
  5128. case Op::OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL";
  5129. case Op::OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL";
  5130. case Op::OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL";
  5131. case Op::OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL";
  5132. case Op::OpFPGARegINTEL: return "OpFPGARegINTEL";
  5133. case Op::OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
  5134. case Op::OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
  5135. case Op::OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
  5136. case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
  5137. case Op::OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
  5138. case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
  5139. case Op::OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
  5140. case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
  5141. case Op::OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
  5142. case Op::OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
  5143. case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
  5144. case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
  5145. case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
  5146. case Op::OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
  5147. case Op::OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
  5148. case Op::OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
  5149. case Op::OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
  5150. case Op::OpAtomicFAddEXT: return "OpAtomicFAddEXT";
  5151. case Op::OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
  5152. case Op::OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
  5153. case Op::OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
  5154. case Op::OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
  5155. case Op::OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
  5156. case Op::OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
  5157. case Op::OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
  5158. case Op::OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
  5159. case Op::OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
  5160. case Op::OpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
  5161. case Op::OpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL";
  5162. case Op::OpSubgroup2DBlockLoadINTEL: return "OpSubgroup2DBlockLoadINTEL";
  5163. case Op::OpSubgroup2DBlockLoadTransformINTEL: return "OpSubgroup2DBlockLoadTransformINTEL";
  5164. case Op::OpSubgroup2DBlockLoadTransposeINTEL: return "OpSubgroup2DBlockLoadTransposeINTEL";
  5165. case Op::OpSubgroup2DBlockPrefetchINTEL: return "OpSubgroup2DBlockPrefetchINTEL";
  5166. case Op::OpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL";
  5167. case Op::OpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL";
  5168. case Op::OpGroupIMulKHR: return "OpGroupIMulKHR";
  5169. case Op::OpGroupFMulKHR: return "OpGroupFMulKHR";
  5170. case Op::OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
  5171. case Op::OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
  5172. case Op::OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
  5173. case Op::OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
  5174. case Op::OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
  5175. case Op::OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
  5176. case Op::OpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
  5177. case Op::OpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
  5178. default: return "Unknown";
  5179. }
  5180. }
  5181. #endif /* SPV_ENABLE_UTILITY_CODE */
  5182. // Overload bitwise operators for mask bit combining
  5183. constexpr ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
  5184. constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
  5185. constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
  5186. constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
  5187. constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
  5188. constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
  5189. constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
  5190. constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
  5191. constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
  5192. constexpr SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
  5193. constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
  5194. constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
  5195. constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
  5196. constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
  5197. constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
  5198. constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
  5199. constexpr FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
  5200. constexpr FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
  5201. constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
  5202. constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
  5203. constexpr MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
  5204. constexpr MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
  5205. constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
  5206. constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
  5207. constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
  5208. constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
  5209. constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
  5210. constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
  5211. constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
  5212. constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
  5213. constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
  5214. constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
  5215. constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
  5216. constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
  5217. constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
  5218. constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
  5219. constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
  5220. constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
  5221. constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
  5222. constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
  5223. constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
  5224. constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
  5225. constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
  5226. constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
  5227. constexpr CooperativeMatrixReduceMask operator|(CooperativeMatrixReduceMask a, CooperativeMatrixReduceMask b) { return CooperativeMatrixReduceMask(unsigned(a) | unsigned(b)); }
  5228. constexpr CooperativeMatrixReduceMask operator&(CooperativeMatrixReduceMask a, CooperativeMatrixReduceMask b) { return CooperativeMatrixReduceMask(unsigned(a) & unsigned(b)); }
  5229. constexpr CooperativeMatrixReduceMask operator^(CooperativeMatrixReduceMask a, CooperativeMatrixReduceMask b) { return CooperativeMatrixReduceMask(unsigned(a) ^ unsigned(b)); }
  5230. constexpr CooperativeMatrixReduceMask operator~(CooperativeMatrixReduceMask a) { return CooperativeMatrixReduceMask(~unsigned(a)); }
  5231. constexpr TensorAddressingOperandsMask operator|(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) | unsigned(b)); }
  5232. constexpr TensorAddressingOperandsMask operator&(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) & unsigned(b)); }
  5233. constexpr TensorAddressingOperandsMask operator^(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) ^ unsigned(b)); }
  5234. constexpr TensorAddressingOperandsMask operator~(TensorAddressingOperandsMask a) { return TensorAddressingOperandsMask(~unsigned(a)); }
  5235. constexpr TensorOperandsMask operator|(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) | unsigned(b)); }
  5236. constexpr TensorOperandsMask operator&(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) & unsigned(b)); }
  5237. constexpr TensorOperandsMask operator^(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) ^ unsigned(b)); }
  5238. constexpr TensorOperandsMask operator~(TensorOperandsMask a) { return TensorOperandsMask(~unsigned(a)); }
  5239. constexpr MatrixMultiplyAccumulateOperandsMask operator|(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) | unsigned(b)); }
  5240. constexpr MatrixMultiplyAccumulateOperandsMask operator&(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) & unsigned(b)); }
  5241. constexpr MatrixMultiplyAccumulateOperandsMask operator^(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) ^ unsigned(b)); }
  5242. constexpr MatrixMultiplyAccumulateOperandsMask operator~(MatrixMultiplyAccumulateOperandsMask a) { return MatrixMultiplyAccumulateOperandsMask(~unsigned(a)); }
  5243. constexpr RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); }
  5244. constexpr RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); }
  5245. constexpr RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); }
  5246. constexpr RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); }
  5247. } // end namespace spv
  5248. #endif // #ifndef spirv_HPP