123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614 |
- //===- IntrinsicsNVVM.td - Defines NVVM intrinsics ---------*- tablegen -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- //
- // This file defines all of the NVVM-specific intrinsics for use with NVPTX.
- //
- //===----------------------------------------------------------------------===//
- // The following intrinsics were once defined here, but are now auto-upgraded
- // to target-generic LLVM intrinsics.
- //
- // * llvm.nvvm.brev32 --> llvm.bitreverse.i32
- // * llvm.nvvm.brev64 --> llvm.bitreverse.i64
- // * llvm.nvvm.clz.i --> llvm.ctlz.i32
- // * llvm.nvvm.clz.ll --> trunc i64 llvm.ctlz.i64(x) to i32
- // * llvm.nvvm.popc.i --> llvm.ctpop.i32
- // * llvm.nvvm.popc.ll --> trunc i64 llvm.ctpop.i64 to i32
- // * llvm.nvvm.abs.i --> select(x >= -x, x, -x)
- // * llvm.nvvm.abs.ll --> ibid.
- // * llvm.nvvm.max.i --> select(x sge y, x, y)
- // * llvm.nvvm.max.ll --> ibid.
- // * llvm.nvvm.max.ui --> select(x uge y, x, y)
- // * llvm.nvvm.max.ull --> ibid.
- // * llvm.nvvm.max.i --> select(x sle y, x, y)
- // * llvm.nvvm.max.ll --> ibid.
- // * llvm.nvvm.max.ui --> select(x ule y, x, y)
- // * llvm.nvvm.max.ull --> ibid.
- // * llvm.nvvm.h2f --> llvm.convert.to.fp16.f32
- def llvm_global_i8ptr_ty : LLVMQualPointerType<llvm_i8_ty, 1>; // (global)i8*
- def llvm_shared_i8ptr_ty : LLVMQualPointerType<llvm_i8_ty, 3>; // (shared)i8*
- def llvm_i64ptr_ty : LLVMPointerType<llvm_i64_ty>; // i64*
- def llvm_any_i64ptr_ty : LLVMAnyPointerType<llvm_i64_ty>; // (space)i64*
- def llvm_shared_i64ptr_ty : LLVMQualPointerType<llvm_i64_ty, 3>; // (shared)i64*
- //
- // MISC
- //
- // Helper class that represents a 'fragment' of an NVPTX *MMA instruction.
- // Geom: m<M>n<N>k<K>. E.g. m8n32k16
- // Frag: [a|b|c|d] ([x1|x2|x4] for ldmatrix)
- // PtxEltType: PTX type for the element.
- class WMMA_REGS<string Geom, string Frag, string PtxEltType> {
- string geom = Geom;
- string frag = Frag;
- string ptx_elt_type = PtxEltType;
- string gft = Geom#":"#Frag#":"#ptx_elt_type;
- string ft = frag#":"#ptx_elt_type;
- list<LLVMType> regs = !cond(
- // mma fp ops use smaller fragments than wmma fp ops
- !eq(gft,"m8n8k4:a:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m8n8k4:b:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k8:a:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k8:b:f16") : [llvm_v2f16_ty],
- !eq(gft,"m16n8k8:c:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k8:d:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k8:c:f32") : !listsplat(llvm_float_ty, 4),
- !eq(gft,"m16n8k8:d:f32") : !listsplat(llvm_float_ty, 4),
- !eq(gft,"m16n8k16:a:f16") : !listsplat(llvm_v2f16_ty, 4),
- !eq(gft,"m16n8k16:b:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k16:c:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k16:d:f16") : !listsplat(llvm_v2f16_ty, 2),
- !eq(gft,"m16n8k16:c:f32") : !listsplat(llvm_float_ty, 4),
- !eq(gft,"m16n8k16:d:f32") : !listsplat(llvm_float_ty, 4),
- !eq(gft,"m16n8k4:c:f32") : !listsplat(llvm_float_ty, 4),
- !eq(gft,"m16n8k4:d:f32") : !listsplat(llvm_float_ty, 4),
- // wmma fp16 -> fp16/fp32 @ m16n16k16/m8n32k16/m32n8k16
- // All other supported geometries use the same fragment format for f32 and
- // f16, so we only need to consider {fragment, type}.
- !eq(ft,"a:f16") : !listsplat(llvm_v2f16_ty, 8),
- !eq(ft,"b:f16") : !listsplat(llvm_v2f16_ty, 8),
- !eq(ft,"c:f16") : !listsplat(llvm_v2f16_ty, 4),
- !eq(ft,"d:f16") : !listsplat(llvm_v2f16_ty, 4),
- !eq(ft,"c:f32") : !listsplat(llvm_float_ty, 8),
- !eq(ft,"d:f32") : !listsplat(llvm_float_ty, 8),
- // wmma tf32 -> s32 @ m16n16k8
- !eq(gft,"m16n16k8:a:tf32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n16k8:b:tf32") : !listsplat(llvm_i32_ty, 4),
- // mma tf32 -> s32 @ m16n16k8/m16n8k8
- !eq(gft,"m16n8k4:a:tf32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k4:b:tf32") : [llvm_i32_ty],
- !eq(gft,"m16n8k8:a:tf32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k8:b:tf32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m8n8k4:a:f64") : [llvm_double_ty],
- !eq(gft,"m8n8k4:b:f64") : [llvm_double_ty],
- !eq(gft,"m8n8k4:c:f64") : !listsplat(llvm_double_ty, 2),
- !eq(gft,"m8n8k4:d:f64") : !listsplat(llvm_double_ty, 2),
- // wmma bf16 -> s32 @ m16n16k16/m8n32k16/m32n8k16
- !eq(gft,"m16n16k16:a:bf16") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n16k16:b:bf16") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m8n32k16:a:bf16") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m8n32k16:b:bf16") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m32n8k16:a:bf16") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m32n8k16:b:bf16") : !listsplat(llvm_i32_ty, 2),
- // mma bf16 -> s32 @ m16n8k16/m16n8k8
- !eq(gft,"m16n8k16:a:bf16") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k16:b:bf16") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k8:a:bf16") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k8:b:bf16") : [llvm_i32_ty],
- // wmma u8/s8 -> s32 @ m16n16k16/m8n32k16/m32n8k16
- !eq(gft,"m16n16k16:a:u8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n16k16:a:s8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n16k16:b:u8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n16k16:b:s8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n16k16:c:s32") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m16n16k16:d:s32") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m8n32k16:a:u8") : [llvm_i32_ty],
- !eq(gft,"m8n32k16:a:s8") : [llvm_i32_ty],
- !eq(gft,"m8n32k16:b:u8") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m8n32k16:b:s8") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m8n32k16:c:s32") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m8n32k16:d:s32") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m32n8k16:a:u8") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m32n8k16:a:s8") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m32n8k16:b:u8") : [llvm_i32_ty],
- !eq(gft,"m32n8k16:b:s8") : [llvm_i32_ty],
- !eq(gft,"m32n8k16:c:s32") : !listsplat(llvm_i32_ty, 8),
- !eq(gft,"m32n8k16:d:s32") : !listsplat(llvm_i32_ty, 8),
- // mma u8/s8 -> s32 @ m8n8k16/m16n8k16/m16n8k32
- !eq(gft,"m8n8k16:a:u8") : [llvm_i32_ty],
- !eq(gft,"m8n8k16:a:s8") : [llvm_i32_ty],
- !eq(gft,"m8n8k16:b:u8") : [llvm_i32_ty],
- !eq(gft,"m8n8k16:b:s8") : [llvm_i32_ty],
- !eq(gft,"m8n8k16:c:s32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m8n8k16:d:s32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k16:a:u8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k16:a:s8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k16:b:u8") : [llvm_i32_ty],
- !eq(gft,"m16n8k16:b:s8") : [llvm_i32_ty],
- !eq(gft,"m16n8k16:c:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k16:d:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k32:a:u8") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k32:a:s8") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k32:b:u8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k32:b:s8") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k32:c:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k32:d:s32") : !listsplat(llvm_i32_ty, 4),
- // wmma/mma u4/s4 -> s32 @ m8n8k32 (u4/s4)
- !eq(gft,"m8n8k32:a:u4") : [llvm_i32_ty],
- !eq(gft,"m8n8k32:a:s4") : [llvm_i32_ty],
- !eq(gft,"m8n8k32:b:u4") : [llvm_i32_ty],
- !eq(gft,"m8n8k32:b:s4") : [llvm_i32_ty],
- !eq(gft,"m8n8k32:c:s32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m8n8k32:d:s32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k32:a:u4") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k32:a:s4") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k32:b:u4") : [llvm_i32_ty],
- !eq(gft,"m16n8k32:b:s4") : [llvm_i32_ty],
- !eq(gft,"m16n8k32:c:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k32:d:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k64:a:u4") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k64:a:s4") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k64:b:u4") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k64:b:s4") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k64:c:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k64:d:s32") : !listsplat(llvm_i32_ty, 4),
- // wmma/mma b1 -> s32 @ m8n8k128(b1)
- !eq(gft,"m8n8k128:a:b1") : [llvm_i32_ty],
- !eq(gft,"m8n8k128:b:b1") : [llvm_i32_ty],
- !eq(gft,"m8n8k128:c:s32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m8n8k128:d:s32") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k128:a:b1") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k128:b:b1") : [llvm_i32_ty],
- !eq(gft,"m16n8k128:c:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k128:d:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k256:a:b1") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k256:b:b1") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m16n8k256:c:s32") : !listsplat(llvm_i32_ty, 4),
- !eq(gft,"m16n8k256:d:s32") : !listsplat(llvm_i32_ty, 4),
- // ldmatrix b16 -> s32 @ m8n8
- !eq(gft,"m8n8:x1:b16") : !listsplat(llvm_i32_ty, 1),
- !eq(gft,"m8n8:x2:b16") : !listsplat(llvm_i32_ty, 2),
- !eq(gft,"m8n8:x4:b16") : !listsplat(llvm_i32_ty, 4),
- );
- }
- class WMMA_NAME_LDST<string Op, WMMA_REGS Frag, string Layout, int WithStride> {
- string intr = "llvm.nvvm.wmma."
- # Frag.geom
- # "." # Op
- # "." # Frag.frag
- # "." # Layout
- # !if(WithStride, ".stride", "")
- # "." # Frag.ptx_elt_type
- ;
- // TODO(tra): record name should ideally use the same field order as the intrinsic.
- // E.g. string record = !subst("llvm", "int",
- // !subst(".", "_", llvm));
- string record = "int_nvvm_wmma_"
- # Frag.geom
- # "_" # Op
- # "_" # Frag.frag
- # "_" # Frag.ptx_elt_type
- # "_" # Layout
- # !if(WithStride, "_stride", "");
- }
- class MMA_SIGNATURE<WMMA_REGS A, WMMA_REGS B, WMMA_REGS C, WMMA_REGS D> {
- list<WMMA_REGS> id_frags = !cond(
- // FP16 ops are identified by accumulator & result type.
- !eq(A.ptx_elt_type, "f16") : [D, C],
- // other ops are identified by input types.
- !ne(A.ptx_elt_type, B.ptx_elt_type): [A, B],
- true: [A]
- );
- string ret = !foldl("", id_frags, a, b, !strconcat(a, ".", b.ptx_elt_type));
- }
- class WMMA_NAME<string ALayout, string BLayout, int Satfinite, string Rnd, string b1op,
- WMMA_REGS A, WMMA_REGS B, WMMA_REGS C, WMMA_REGS D> {
- string signature = MMA_SIGNATURE<A, B, C, D>.ret;
- string llvm = "llvm.nvvm.wmma."
- # A.geom
- # ".mma"
- # b1op
- # "." # ALayout
- # "." # BLayout
- # !if(!ne(Rnd, ""), !strconcat(".", Rnd), "")
- # signature
- # !if(Satfinite, ".satfinite", "");
- string record = !subst(".", "_",
- !subst("llvm.", "int_", llvm));
- }
- class MMA_NAME<string ALayout, string BLayout, int Satfinite, string b1op,
- WMMA_REGS A, WMMA_REGS B, WMMA_REGS C, WMMA_REGS D> {
- string signature = MMA_SIGNATURE<A, B, C, D>.ret;
- string llvm = "llvm.nvvm.mma"
- # b1op
- # "." # A.geom
- # "." # ALayout
- # "." # BLayout
- # !if(Satfinite, ".satfinite", "")
- # signature;
- string record = !subst(".", "_",
- !subst("llvm.", "int_", llvm));
- }
- class LDMATRIX_NAME<WMMA_REGS Frag, int Trans> {
- string intr = "llvm.nvvm.ldmatrix.sync.aligned"
- # "." # Frag.geom
- # "." # Frag.frag
- # !if(Trans, ".trans", "")
- # "." # Frag.ptx_elt_type
- ;
- string record = !subst(".", "_",
- !subst("llvm.", "int_", intr));
- }
- // Generates list of 4-tuples of WMMA_REGS representing a valid MMA op.
- // Geom: list of supported geometries.
- // TypeN: PTX type of the corresponding fragment's element.
- // TypeB and TypeD may be empty if it must match that of TypeA or TypeC.
- class MMA_OPS<list<string> Geom, list<string> TypeA, list<string> TypeB,
- list<string> TypeC, list<string> TypeD> {
- list<list<WMMA_REGS>> ret =
- !foldl([]<list<WMMA_REGS>>, Geom, t1, geom, !listconcat(t1,
- !foldl([]<list<WMMA_REGS>>, TypeA, t2, type_a, !listconcat(t2,
- !foldl([]<list<WMMA_REGS>>, !if(!size(TypeB), TypeB, [type_a]), t3, type_b, !listconcat(t3,
- !foldl([]<list<WMMA_REGS>>, TypeC, t4, type_c, !listconcat(t4,
- !foldl([]<list<WMMA_REGS>>, !if(!size(TypeD), TypeD, [type_c]), t5, type_d, !listconcat(t5,
- [[WMMA_REGS<geom, "a", type_a>,
- WMMA_REGS<geom, "b", type_b>,
- WMMA_REGS<geom, "c", type_c>,
- WMMA_REGS<geom, "d", type_d>]]))))))))));
- // Debugging aid for readable representation of the list above.
- list<list<string>> ops = !foreach(x, ret, [x[0].gft, x[1].gft, x[2].gft, x[3].gft]);
- }
- class MMA_LDST_OPS<list<string> Geom, list<string> Frags, list<string> Types> {
- list<WMMA_REGS> ret =
- !foldl([]<WMMA_REGS>, Geom, t1, geom, !listconcat(t1,
- !foldl([]<WMMA_REGS>, Frags, t2, frag, !listconcat(t2,
- !foldl([]<WMMA_REGS>, Types, t3, type, !listconcat(t3,
- [WMMA_REGS<geom, frag, type>]))))));
- // Debugging aid for readable representation of the list above.
- list<string> ops = !foreach(x, ret, x.gft);
- }
- class LDMATRIX_OPS<list<string> Geom, list<string> Frags, list<string> Types> {
- list<WMMA_REGS> ret =
- !foldl([]<WMMA_REGS>, Geom, t1, geom, !listconcat(t1,
- !foldl([]<WMMA_REGS>, Frags, t2, frag, !listconcat(t2,
- !foldl([]<WMMA_REGS>, Types, t3, type, !listconcat(t3,
- [WMMA_REGS<geom, frag, type>]))))));
- // Debugging aid for readable representation of the list above.
- list<string> ops = !foreach(x, ret, x.gft);
- }
- // Creates list of valid combinations of fragments. This is the main list that
- // drives generation of corresponding intrinsics and instructions.
- class NVVM_MMA_OPS {
- list<list<WMMA_REGS>> tf32_wmma_ops = MMA_OPS<
- ["m16n16k8"],
- ["tf32"], [], ["f32"], []>.ret;
- list<list<WMMA_REGS>> bf16_wmma_ops = MMA_OPS<
- ["m16n16k16", "m32n8k16", "m8n32k16"],
- ["bf16"], [], ["f32"], []>.ret;
- list<list<WMMA_REGS>> f64_wmma_ops = MMA_OPS<
- ["m8n8k4"],
- ["f64"], [], ["f64"], []>.ret;
- list<list<WMMA_REGS>> fp_wmma_ops = MMA_OPS<
- ["m16n16k16", "m32n8k16", "m8n32k16"],
- ["f16"], [], ["f16", "f32"], ["f16", "f32"]>.ret;
- list<list<WMMA_REGS>> int_wmma_ops = MMA_OPS<
- ["m16n16k16", "m32n8k16", "m8n32k16"],
- ["s8", "u8"], [], ["s32"], []>.ret;
- list<list<WMMA_REGS>> subint_wmma_ops = MMA_OPS<
- ["m8n8k32"],
- ["s4", "u4"], [], ["s32"], []>.ret;
- list<list<WMMA_REGS>> bit_wmma_ops = MMA_OPS<
- ["m8n8k128"],
- ["b1"], [], ["s32"], []>.ret;
- list<list<WMMA_REGS>> all_wmma_ops = !listconcat(
- tf32_wmma_ops, bf16_wmma_ops, f64_wmma_ops,
- fp_wmma_ops, int_wmma_ops, subint_wmma_ops, bit_wmma_ops);
- list<list<WMMA_REGS>> tf32_mma_ops = MMA_OPS<
- ["m16n8k4", "m16n8k8"],
- ["tf32"], [], ["f32"], []>.ret;
- list<list<WMMA_REGS>> bf16_mma_ops = MMA_OPS<
- ["m16n8k16", "m16n8k8"],
- ["bf16"], [], ["f32"], []>.ret;
- list<list<WMMA_REGS>> f64_mma_ops = MMA_OPS<
- ["m8n8k4"],
- ["f64"], [], ["f64"], []>.ret;
- list<list<WMMA_REGS>> fp_mma_ops = MMA_OPS<
- ["m8n8k4", "m16n8k8", "m16n8k16"],
- ["f16"], [], ["f16", "f32"], ["f16", "f32"]>.ret;
- list<list<WMMA_REGS>> int_mma_ops = MMA_OPS<
- ["m8n8k16", "m16n8k16", "m16n8k32"],
- ["s8", "u8"], ["s8", "u8"], ["s32"], []>.ret;
- list<list<WMMA_REGS>> subint_mma_ops = MMA_OPS<
- ["m8n8k32", "m16n8k32", "m16n8k64"],
- ["s4", "u4"], ["s4", "u4"], ["s32"], []>.ret;
- list<list<WMMA_REGS>> bit_mma_ops = MMA_OPS<
- ["m8n8k128", "m16n8k128", "m16n8k256"],
- ["b1"], [], ["s32"], []>.ret;
- list<list<WMMA_REGS>> all_mma_ops = !listconcat(
- tf32_mma_ops, bf16_mma_ops, f64_mma_ops,
- fp_mma_ops, int_mma_ops, subint_mma_ops, bit_mma_ops);
- list<WMMA_REGS> ldst_ab_ops = MMA_LDST_OPS<
- ["m16n16k16", "m32n8k16", "m8n32k16"],
- ["a", "b"], ["f16", "u8", "s8", "bf16"]>.ret;
- list<WMMA_REGS> ldst_cd_ops = MMA_LDST_OPS<
- ["m16n16k16", "m32n8k16", "m8n32k16"],
- ["c", "d"], ["f16", "f32", "s32"]>.ret;
- list<WMMA_REGS> ldst_tf32_ab_ops = MMA_LDST_OPS<
- ["m16n16k8"],
- ["a", "b"], ["tf32"]>.ret;
- list<WMMA_REGS> ldst_tf32_cd_ops = MMA_LDST_OPS<
- ["m16n16k8"],
- ["c", "d"], ["f32"]>.ret;
- list<WMMA_REGS> ldst_f64_abcd_ops = MMA_LDST_OPS<
- ["m8n8k4"],
- ["a", "b", "c", "d"], ["f64"]>.ret;
- list<WMMA_REGS> ldst_subint_ab_ops = MMA_LDST_OPS<
- ["m8n8k32"], ["a", "b"], ["s4","u4"]>.ret;
- list<WMMA_REGS> ldst_bit_ab_ops = MMA_LDST_OPS<
- ["m8n8k128"], ["a", "b"], ["b1"]>.ret;
- list<WMMA_REGS> ldst_subint_cd_ops = MMA_LDST_OPS<
- ["m8n8k32", "m8n8k128"], ["c", "d"], ["s32"]>.ret;
- list<WMMA_REGS> all_ldst_ops = !listconcat(ldst_ab_ops, ldst_cd_ops,
- ldst_tf32_ab_ops,
- ldst_tf32_cd_ops,
- ldst_f64_abcd_ops,
- ldst_subint_ab_ops,
- ldst_bit_ab_ops,
- ldst_subint_cd_ops);
- // Separate A/B/C fragments (loads) from D (stores).
- list<WMMA_REGS> all_ld_ops = !filter(op, all_ldst_ops, !ne(op.frag, "d"));
- list<WMMA_REGS> all_st_ops = !filter(op, all_ldst_ops, !eq(op.frag, "d"));
- list<WMMA_REGS> ldmatrix_b16_ops = LDMATRIX_OPS<
- ["m8n8"], ["x1", "x2", "x4"], ["b16"]>.ret;
- list<WMMA_REGS> all_ldmatrix_ops = ldmatrix_b16_ops;
- }
- def NVVM_MMA_OPS : NVVM_MMA_OPS;
- // Returns true if this combination of fragment and layout for WMMA load/store
- // ops is supported; false otherwise.
- // E.g.
- // if NVVM_WMMA_LDST_SUPPORTED<...>.ret then
- // def : FOO<>; // The record will only be defined for supported ops.
- //
- class NVVM_WMMA_LDST_SUPPORTED<WMMA_REGS frag, string layout> {
- string f = frag.frag;
- string t = frag.ptx_elt_type;
- bit ret = !cond(
- // Sub-int load and store requires A fragment to be of row layout and B
- // fragments to be of column layout.
- !and(!or(!eq(t, "b1"),
- !eq(t, "u4"),
- !eq(t, "s4")),
- !or(!and(!eq(f, "a"),
- !ne(layout, "row")),
- !and(!eq(f, "b"),
- !ne(layout, "col")))) : false,
- true: true
- );
- }
- // Returns true if this combination of layout/satf/rnd for WMMA ops is
- // supported; false otherwise.
- // E.g.
- // if NVVM_WMMA_SUPPORTED<...>.ret then
- // def : FOO<>; // The record will only be defined for supported ops.
- //
- class NVVM_WMMA_SUPPORTED<list<WMMA_REGS> frags, string layout_a, string layout_b, int satf, string rnd> {
- // WMMA ops check both layouts.
- string layout = layout_a # ":" # layout_b;
- string t = frags[0].ptx_elt_type;
- bit ret = !cond(
- // only f64 wmma functions support rnd options
- // any non f64 type that uses a rnd value is invalid
- !and(!ne(t, "f64"), !ne(rnd, "")) : false,
- // satf is only valid for select types
- !and(!eq(satf, 1),
- !ne(t, "s8"),
- !ne(t, "u8"),
- !ne(t, "s4"),
- !ne(t, "u4"),
- !ne(t, "f16")): false,
- // Sub-int wmma requires row/column layout
- !and(!or(!eq(t, "s4"),
- !eq(t, "u4"),
- !eq(t, "b1")),
- !ne(layout, "row:col")) : false,
- true: true
- );
- }
- class NVVM_MMA_B1OPS<list<WMMA_REGS> frags> {
- list<string> ret = !cond(
- !eq(frags[0].ptx_elt_type, "b1") : [".xor.popc", ".and.popc"],
- true: [""]
- );
- }
- // Returns true if this combination of layout/satf for MMA ops is supported;
- // false otherwise.
- // E.g.
- // if NVVM_MMA_SUPPORTED<...>.ret then
- // def : FOO<>; // The record will only be defined for supported ops.
- //
- class NVVM_MMA_SUPPORTED<list<WMMA_REGS> frags, string layout_a, string layout_b, int satf> {
- // MMA ops check both layouts.
- string layout = layout_a # ":" # layout_b;
- string a_type = frags[0].ptx_elt_type;
- string b_type = frags[1].ptx_elt_type;
- string c_type = frags[2].ptx_elt_type;
- string d_type = frags[3].ptx_elt_type;
- string geom = frags[0].geom;
- // gcd is a shortcut used to identify instructions that depend on
- // geom+frag_c+frag_d.
- string gcd = geom # ":" # c_type # d_type;
- bit ret = !cond(
- // Limit satf to valid types
- !and(!eq(satf, 1),
- !ne(a_type, "s8"),
- !ne(a_type, "u8"),
- !ne(a_type, "s4"),
- !ne(a_type, "u4")): false,
- // m8n8k4 has no C=f32 D=f16 variant.
- !eq(gcd, "m8n8k4:f32f16"): false,
- // only m8n8k4 for f16 does not require row:col layout
- !and(!ne(layout, "row:col"),
- !or(!ne(geom, "m8n8k4"),
- !ne(a_type, "f16"))) : false,
- // m16n8k8 requires A and B to be the same type and C and D to be the same
- // type.
- !and(!eq(geom, "m16n8k8"),
- !or(!ne(a_type, b_type),
- !ne(c_type, d_type))): false,
- // m16n8k8 requires C and D to be the same type.
- !and(!eq(geom, "m16n8k8"),
- !ne(c_type, d_type)): false,
- // All other are OK.
- true: true
- );
- }
- // Returns true if the fragment is valid for ldmatrix ops is supported;
- // false otherwise.
- // E.g.
- // if NVVM_LDMATRIX_SUPPORTED<...>.ret then
- // def : FOO<>; // The record will only be defined for supported ops.
- //
- class NVVM_LDMATRIX_SUPPORTED<WMMA_REGS frag> {
- string g = frag.geom;
- string t = frag.ptx_elt_type;
- bit ret = !cond(
- // Only currently support m8n8 and b16
- !and(!eq(g, "m8n8"), !eq(t, "b16")): true,
- true: false
- );
- }
- class SHFL_INFO<bit sync, string mode, string type, bit return_pred> {
- string Suffix = !if(sync, "sync_", "")
- # mode # "_"
- # type
- # !if(return_pred, "p", "");
- string Name = "int_nvvm_shfl_" # Suffix;
- string Builtin = "__nvvm_shfl_" # Suffix;
- string IntrName = "llvm.nvvm.shfl." # !subst("_",".", Suffix);
- bit withGccBuiltin = !not(return_pred);
- bit withoutGccBuiltin = return_pred;
- LLVMType OpType = !cond(
- !eq(type,"i32"): llvm_i32_ty,
- !eq(type,"f32"): llvm_float_ty);
- list<LLVMType> RetTy = !if(return_pred, [OpType, llvm_i1_ty], [OpType]);
- list<LLVMType> ArgsTy = !if(sync,
- [llvm_i32_ty, OpType, llvm_i32_ty, llvm_i32_ty],
- [OpType, llvm_i32_ty, llvm_i32_ty]);
- }
- let TargetPrefix = "nvvm" in {
- def int_nvvm_prmt : GCCBuiltin<"__nvvm_prmt">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, Commutative]>;
- //
- // Min Max
- //
- def int_nvvm_fmin_f : GCCBuiltin<"__nvvm_fmin_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_fmin_ftz_f : GCCBuiltin<"__nvvm_fmin_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_fmax_f : GCCBuiltin<"__nvvm_fmax_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty]
- , [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_fmax_ftz_f : GCCBuiltin<"__nvvm_fmax_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_fmin_d : GCCBuiltin<"__nvvm_fmin_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_fmax_d : GCCBuiltin<"__nvvm_fmax_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- //
- // Multiplication
- //
- def int_nvvm_mulhi_i : GCCBuiltin<"__nvvm_mulhi_i">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mulhi_ui : GCCBuiltin<"__nvvm_mulhi_ui">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mulhi_ll : GCCBuiltin<"__nvvm_mulhi_ll">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mulhi_ull : GCCBuiltin<"__nvvm_mulhi_ull">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rn_ftz_f : GCCBuiltin<"__nvvm_mul_rn_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rn_f : GCCBuiltin<"__nvvm_mul_rn_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rz_ftz_f : GCCBuiltin<"__nvvm_mul_rz_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rz_f : GCCBuiltin<"__nvvm_mul_rz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rm_ftz_f : GCCBuiltin<"__nvvm_mul_rm_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rm_f : GCCBuiltin<"__nvvm_mul_rm_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rp_ftz_f : GCCBuiltin<"__nvvm_mul_rp_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rp_f : GCCBuiltin<"__nvvm_mul_rp_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rn_d : GCCBuiltin<"__nvvm_mul_rn_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rz_d : GCCBuiltin<"__nvvm_mul_rz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rm_d : GCCBuiltin<"__nvvm_mul_rm_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul_rp_d : GCCBuiltin<"__nvvm_mul_rp_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul24_i : GCCBuiltin<"__nvvm_mul24_i">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_mul24_ui : GCCBuiltin<"__nvvm_mul24_ui">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- //
- // Div
- //
- def int_nvvm_div_approx_ftz_f : GCCBuiltin<"__nvvm_div_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_approx_f : GCCBuiltin<"__nvvm_div_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rn_ftz_f : GCCBuiltin<"__nvvm_div_rn_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rn_f : GCCBuiltin<"__nvvm_div_rn_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rz_ftz_f : GCCBuiltin<"__nvvm_div_rz_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rz_f : GCCBuiltin<"__nvvm_div_rz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rm_ftz_f : GCCBuiltin<"__nvvm_div_rm_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rm_f : GCCBuiltin<"__nvvm_div_rm_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rp_ftz_f : GCCBuiltin<"__nvvm_div_rp_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rp_f : GCCBuiltin<"__nvvm_div_rp_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rn_d : GCCBuiltin<"__nvvm_div_rn_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rz_d : GCCBuiltin<"__nvvm_div_rz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rm_d : GCCBuiltin<"__nvvm_div_rm_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem]>;
- def int_nvvm_div_rp_d : GCCBuiltin<"__nvvm_div_rp_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem]>;
- //
- // Sad
- //
- def int_nvvm_sad_i : GCCBuiltin<"__nvvm_sad_i">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, Commutative]>;
- def int_nvvm_sad_ui : GCCBuiltin<"__nvvm_sad_ui">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, Commutative]>;
- //
- // Floor Ceil
- //
- def int_nvvm_floor_ftz_f : GCCBuiltin<"__nvvm_floor_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_floor_f : GCCBuiltin<"__nvvm_floor_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_floor_d : GCCBuiltin<"__nvvm_floor_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ceil_ftz_f : GCCBuiltin<"__nvvm_ceil_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ceil_f : GCCBuiltin<"__nvvm_ceil_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ceil_d : GCCBuiltin<"__nvvm_ceil_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- //
- // Abs
- //
- def int_nvvm_fabs_ftz_f : GCCBuiltin<"__nvvm_fabs_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fabs_f : GCCBuiltin<"__nvvm_fabs_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fabs_d : GCCBuiltin<"__nvvm_fabs_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- //
- // Round
- //
- def int_nvvm_round_ftz_f : GCCBuiltin<"__nvvm_round_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_round_f : GCCBuiltin<"__nvvm_round_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_round_d : GCCBuiltin<"__nvvm_round_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- //
- // Trunc
- //
- def int_nvvm_trunc_ftz_f : GCCBuiltin<"__nvvm_trunc_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_trunc_f : GCCBuiltin<"__nvvm_trunc_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_trunc_d : GCCBuiltin<"__nvvm_trunc_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- //
- // Saturate
- //
- def int_nvvm_saturate_ftz_f : GCCBuiltin<"__nvvm_saturate_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_saturate_f : GCCBuiltin<"__nvvm_saturate_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_saturate_d : GCCBuiltin<"__nvvm_saturate_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- //
- // Exp2 Log2
- //
- def int_nvvm_ex2_approx_ftz_f : GCCBuiltin<"__nvvm_ex2_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ex2_approx_f : GCCBuiltin<"__nvvm_ex2_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ex2_approx_d : GCCBuiltin<"__nvvm_ex2_approx_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_lg2_approx_ftz_f : GCCBuiltin<"__nvvm_lg2_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_lg2_approx_f : GCCBuiltin<"__nvvm_lg2_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_lg2_approx_d : GCCBuiltin<"__nvvm_lg2_approx_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- //
- // Sin Cos
- //
- def int_nvvm_sin_approx_ftz_f : GCCBuiltin<"__nvvm_sin_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sin_approx_f : GCCBuiltin<"__nvvm_sin_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_cos_approx_ftz_f : GCCBuiltin<"__nvvm_cos_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_cos_approx_f : GCCBuiltin<"__nvvm_cos_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- //
- // Fma
- //
- def int_nvvm_fma_rn_ftz_f : GCCBuiltin<"__nvvm_fma_rn_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rn_f : GCCBuiltin<"__nvvm_fma_rn_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rz_ftz_f : GCCBuiltin<"__nvvm_fma_rz_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rz_f : GCCBuiltin<"__nvvm_fma_rz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rm_ftz_f : GCCBuiltin<"__nvvm_fma_rm_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rm_f : GCCBuiltin<"__nvvm_fma_rm_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rp_ftz_f : GCCBuiltin<"__nvvm_fma_rp_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rp_f : GCCBuiltin<"__nvvm_fma_rp_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rn_d : GCCBuiltin<"__nvvm_fma_rn_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty],
- [llvm_double_ty, llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rz_d : GCCBuiltin<"__nvvm_fma_rz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty],
- [llvm_double_ty, llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rm_d : GCCBuiltin<"__nvvm_fma_rm_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty],
- [llvm_double_ty, llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_fma_rp_d : GCCBuiltin<"__nvvm_fma_rp_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty],
- [llvm_double_ty, llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable]>;
- //
- // Rcp
- //
- def int_nvvm_rcp_rn_ftz_f : GCCBuiltin<"__nvvm_rcp_rn_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rn_f : GCCBuiltin<"__nvvm_rcp_rn_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rz_ftz_f : GCCBuiltin<"__nvvm_rcp_rz_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rz_f : GCCBuiltin<"__nvvm_rcp_rz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rm_ftz_f : GCCBuiltin<"__nvvm_rcp_rm_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rm_f : GCCBuiltin<"__nvvm_rcp_rm_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rp_ftz_f : GCCBuiltin<"__nvvm_rcp_rp_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rp_f : GCCBuiltin<"__nvvm_rcp_rp_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rn_d : GCCBuiltin<"__nvvm_rcp_rn_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rz_d : GCCBuiltin<"__nvvm_rcp_rz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rm_d : GCCBuiltin<"__nvvm_rcp_rm_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_rcp_rp_d : GCCBuiltin<"__nvvm_rcp_rp_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_rcp_approx_ftz_d : GCCBuiltin<"__nvvm_rcp_approx_ftz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- //
- // Sqrt
- //
- def int_nvvm_sqrt_f : GCCBuiltin<"__nvvm_sqrt_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rn_ftz_f : GCCBuiltin<"__nvvm_sqrt_rn_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rn_f : GCCBuiltin<"__nvvm_sqrt_rn_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rz_ftz_f : GCCBuiltin<"__nvvm_sqrt_rz_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rz_f : GCCBuiltin<"__nvvm_sqrt_rz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rm_ftz_f : GCCBuiltin<"__nvvm_sqrt_rm_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rm_f : GCCBuiltin<"__nvvm_sqrt_rm_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rp_ftz_f : GCCBuiltin<"__nvvm_sqrt_rp_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rp_f : GCCBuiltin<"__nvvm_sqrt_rp_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_approx_ftz_f : GCCBuiltin<"__nvvm_sqrt_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_approx_f : GCCBuiltin<"__nvvm_sqrt_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rn_d : GCCBuiltin<"__nvvm_sqrt_rn_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rz_d : GCCBuiltin<"__nvvm_sqrt_rz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rm_d : GCCBuiltin<"__nvvm_sqrt_rm_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- def int_nvvm_sqrt_rp_d : GCCBuiltin<"__nvvm_sqrt_rp_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- //
- // Rsqrt
- //
- def int_nvvm_rsqrt_approx_ftz_f : GCCBuiltin<"__nvvm_rsqrt_approx_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rsqrt_approx_f : GCCBuiltin<"__nvvm_rsqrt_approx_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_rsqrt_approx_d : GCCBuiltin<"__nvvm_rsqrt_approx_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>;
- //
- // Add
- //
- def int_nvvm_add_rn_ftz_f : GCCBuiltin<"__nvvm_add_rn_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rn_f : GCCBuiltin<"__nvvm_add_rn_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rz_ftz_f : GCCBuiltin<"__nvvm_add_rz_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rz_f : GCCBuiltin<"__nvvm_add_rz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rm_ftz_f : GCCBuiltin<"__nvvm_add_rm_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rm_f : GCCBuiltin<"__nvvm_add_rm_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rp_ftz_f : GCCBuiltin<"__nvvm_add_rp_ftz_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rp_f : GCCBuiltin<"__nvvm_add_rp_f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rn_d : GCCBuiltin<"__nvvm_add_rn_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rz_d : GCCBuiltin<"__nvvm_add_rz_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rm_d : GCCBuiltin<"__nvvm_add_rm_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_add_rp_d : GCCBuiltin<"__nvvm_add_rp_d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- //
- // Convert
- //
- def int_nvvm_d2f_rn_ftz : GCCBuiltin<"__nvvm_d2f_rn_ftz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rn : GCCBuiltin<"__nvvm_d2f_rn">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rz_ftz : GCCBuiltin<"__nvvm_d2f_rz_ftz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rz : GCCBuiltin<"__nvvm_d2f_rz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rm_ftz : GCCBuiltin<"__nvvm_d2f_rm_ftz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rm : GCCBuiltin<"__nvvm_d2f_rm">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rp_ftz : GCCBuiltin<"__nvvm_d2f_rp_ftz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2f_rp : GCCBuiltin<"__nvvm_d2f_rp">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2i_rn : GCCBuiltin<"__nvvm_d2i_rn">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2i_rz : GCCBuiltin<"__nvvm_d2i_rz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2i_rm : GCCBuiltin<"__nvvm_d2i_rm">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2i_rp : GCCBuiltin<"__nvvm_d2i_rp">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ui_rn : GCCBuiltin<"__nvvm_d2ui_rn">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ui_rz : GCCBuiltin<"__nvvm_d2ui_rz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ui_rm : GCCBuiltin<"__nvvm_d2ui_rm">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ui_rp : GCCBuiltin<"__nvvm_d2ui_rp">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2d_rn : GCCBuiltin<"__nvvm_i2d_rn">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2d_rz : GCCBuiltin<"__nvvm_i2d_rz">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2d_rm : GCCBuiltin<"__nvvm_i2d_rm">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2d_rp : GCCBuiltin<"__nvvm_i2d_rp">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2d_rn : GCCBuiltin<"__nvvm_ui2d_rn">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2d_rz : GCCBuiltin<"__nvvm_ui2d_rz">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2d_rm : GCCBuiltin<"__nvvm_ui2d_rm">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2d_rp : GCCBuiltin<"__nvvm_ui2d_rp">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rn_ftz : GCCBuiltin<"__nvvm_f2i_rn_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rn : GCCBuiltin<"__nvvm_f2i_rn">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rz_ftz : GCCBuiltin<"__nvvm_f2i_rz_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rz : GCCBuiltin<"__nvvm_f2i_rz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rm_ftz : GCCBuiltin<"__nvvm_f2i_rm_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rm : GCCBuiltin<"__nvvm_f2i_rm">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rp_ftz : GCCBuiltin<"__nvvm_f2i_rp_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2i_rp : GCCBuiltin<"__nvvm_f2i_rp">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rn_ftz : GCCBuiltin<"__nvvm_f2ui_rn_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rn : GCCBuiltin<"__nvvm_f2ui_rn">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rz_ftz : GCCBuiltin<"__nvvm_f2ui_rz_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rz : GCCBuiltin<"__nvvm_f2ui_rz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rm_ftz : GCCBuiltin<"__nvvm_f2ui_rm_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rm : GCCBuiltin<"__nvvm_f2ui_rm">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rp_ftz : GCCBuiltin<"__nvvm_f2ui_rp_ftz">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ui_rp : GCCBuiltin<"__nvvm_f2ui_rp">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2f_rn : GCCBuiltin<"__nvvm_i2f_rn">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2f_rz : GCCBuiltin<"__nvvm_i2f_rz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2f_rm : GCCBuiltin<"__nvvm_i2f_rm">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_i2f_rp : GCCBuiltin<"__nvvm_i2f_rp">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2f_rn : GCCBuiltin<"__nvvm_ui2f_rn">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2f_rz : GCCBuiltin<"__nvvm_ui2f_rz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2f_rm : GCCBuiltin<"__nvvm_ui2f_rm">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ui2f_rp : GCCBuiltin<"__nvvm_ui2f_rp">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_lohi_i2d : GCCBuiltin<"__nvvm_lohi_i2d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable, Commutative]>;
- def int_nvvm_d2i_lo : GCCBuiltin<"__nvvm_d2i_lo">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2i_hi : GCCBuiltin<"__nvvm_d2i_hi">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rn_ftz : GCCBuiltin<"__nvvm_f2ll_rn_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rn : GCCBuiltin<"__nvvm_f2ll_rn">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rz_ftz : GCCBuiltin<"__nvvm_f2ll_rz_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rz : GCCBuiltin<"__nvvm_f2ll_rz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rm_ftz : GCCBuiltin<"__nvvm_f2ll_rm_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rm : GCCBuiltin<"__nvvm_f2ll_rm">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rp_ftz : GCCBuiltin<"__nvvm_f2ll_rp_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ll_rp : GCCBuiltin<"__nvvm_f2ll_rp">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rn_ftz : GCCBuiltin<"__nvvm_f2ull_rn_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rn : GCCBuiltin<"__nvvm_f2ull_rn">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rz_ftz : GCCBuiltin<"__nvvm_f2ull_rz_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rz : GCCBuiltin<"__nvvm_f2ull_rz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rm_ftz : GCCBuiltin<"__nvvm_f2ull_rm_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rm : GCCBuiltin<"__nvvm_f2ull_rm">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rp_ftz : GCCBuiltin<"__nvvm_f2ull_rp_ftz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2ull_rp : GCCBuiltin<"__nvvm_f2ull_rp">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ll_rn : GCCBuiltin<"__nvvm_d2ll_rn">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ll_rz : GCCBuiltin<"__nvvm_d2ll_rz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ll_rm : GCCBuiltin<"__nvvm_d2ll_rm">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ll_rp : GCCBuiltin<"__nvvm_d2ll_rp">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ull_rn : GCCBuiltin<"__nvvm_d2ull_rn">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ull_rz : GCCBuiltin<"__nvvm_d2ull_rz">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ull_rm : GCCBuiltin<"__nvvm_d2ull_rm">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_d2ull_rp : GCCBuiltin<"__nvvm_d2ull_rp">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2f_rn : GCCBuiltin<"__nvvm_ll2f_rn">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2f_rz : GCCBuiltin<"__nvvm_ll2f_rz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2f_rm : GCCBuiltin<"__nvvm_ll2f_rm">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2f_rp : GCCBuiltin<"__nvvm_ll2f_rp">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2f_rn : GCCBuiltin<"__nvvm_ull2f_rn">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2f_rz : GCCBuiltin<"__nvvm_ull2f_rz">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2f_rm : GCCBuiltin<"__nvvm_ull2f_rm">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2f_rp : GCCBuiltin<"__nvvm_ull2f_rp">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2d_rn : GCCBuiltin<"__nvvm_ll2d_rn">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2d_rz : GCCBuiltin<"__nvvm_ll2d_rz">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2d_rm : GCCBuiltin<"__nvvm_ll2d_rm">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ll2d_rp : GCCBuiltin<"__nvvm_ll2d_rp">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2d_rn : GCCBuiltin<"__nvvm_ull2d_rn">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2d_rz : GCCBuiltin<"__nvvm_ull2d_rz">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2d_rm : GCCBuiltin<"__nvvm_ull2d_rm">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ull2d_rp : GCCBuiltin<"__nvvm_ull2d_rp">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2h_rn_ftz : GCCBuiltin<"__nvvm_f2h_rn_ftz">,
- DefaultAttrsIntrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_f2h_rn : GCCBuiltin<"__nvvm_f2h_rn">,
- DefaultAttrsIntrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_ff2bf16x2_rn : GCCBuiltin<"__nvvm_ff2bf16x2_rn">,
- Intrinsic<[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2bf16x2_rn_relu : GCCBuiltin<"__nvvm_ff2bf16x2_rn_relu">,
- Intrinsic<[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2bf16x2_rz : GCCBuiltin<"__nvvm_ff2bf16x2_rz">,
- Intrinsic<[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2bf16x2_rz_relu : GCCBuiltin<"__nvvm_ff2bf16x2_rz_relu">,
- Intrinsic<[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2f16x2_rn : GCCBuiltin<"__nvvm_ff2f16x2_rn">,
- Intrinsic<[llvm_v2f16_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2f16x2_rn_relu : GCCBuiltin<"__nvvm_ff2f16x2_rn_relu">,
- Intrinsic<[llvm_v2f16_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2f16x2_rz : GCCBuiltin<"__nvvm_ff2f16x2_rz">,
- Intrinsic<[llvm_v2f16_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_ff2f16x2_rz_relu : GCCBuiltin<"__nvvm_ff2f16x2_rz_relu">,
- Intrinsic<[llvm_v2f16_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_f2bf16_rn : GCCBuiltin<"__nvvm_f2bf16_rn">,
- Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_f2bf16_rn_relu : GCCBuiltin<"__nvvm_f2bf16_rn_relu">,
- Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_f2bf16_rz : GCCBuiltin<"__nvvm_f2bf16_rz">,
- Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_f2bf16_rz_relu : GCCBuiltin<"__nvvm_f2bf16_rz_relu">,
- Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>;
- def int_nvvm_f2tf32_rna : GCCBuiltin<"__nvvm_f2tf32_rna">,
- Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>;
- //
- // Bitcast
- //
- def int_nvvm_bitcast_f2i : GCCBuiltin<"__nvvm_bitcast_f2i">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_bitcast_i2f : GCCBuiltin<"__nvvm_bitcast_i2f">,
- DefaultAttrsIntrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_bitcast_ll2d : GCCBuiltin<"__nvvm_bitcast_ll2d">,
- DefaultAttrsIntrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem, IntrSpeculatable]>;
- def int_nvvm_bitcast_d2ll : GCCBuiltin<"__nvvm_bitcast_d2ll">,
- DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem, IntrSpeculatable]>;
- // FNS
- def int_nvvm_fns : GCCBuiltin<"__nvvm_fns">,
- DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem]>;
- // Atomics not available as llvm intrinsics.
- def int_nvvm_atomic_load_inc_32 : Intrinsic<[llvm_i32_ty],
- [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty],
- [IntrArgMemOnly, NoCapture<ArgIndex<0>>]>;
- def int_nvvm_atomic_load_dec_32 : Intrinsic<[llvm_i32_ty],
- [LLVMAnyPointerType<llvm_i32_ty>, llvm_i32_ty],
- [IntrArgMemOnly, NoCapture<ArgIndex<0>>]>;
- class SCOPED_ATOMIC2_impl<LLVMType elty>
- : Intrinsic<[elty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, LLVMMatchType<0>],
- [IntrArgMemOnly, NoCapture<ArgIndex<0>>]>;
- class SCOPED_ATOMIC3_impl<LLVMType elty>
- : Intrinsic<[elty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, LLVMMatchType<0>,
- LLVMMatchType<0>],
- [IntrArgMemOnly, NoCapture<ArgIndex<0>>]>;
- multiclass PTXAtomicWithScope2<LLVMType elty> {
- def _cta : SCOPED_ATOMIC2_impl<elty>;
- def _sys : SCOPED_ATOMIC2_impl<elty>;
- }
- multiclass PTXAtomicWithScope3<LLVMType elty> {
- def _cta : SCOPED_ATOMIC3_impl<elty>;
- def _sys : SCOPED_ATOMIC3_impl<elty>;
- }
- multiclass PTXAtomicWithScope2_fi {
- defm _f: PTXAtomicWithScope2<llvm_anyfloat_ty>;
- defm _i: PTXAtomicWithScope2<llvm_anyint_ty>;
- }
- defm int_nvvm_atomic_add_gen : PTXAtomicWithScope2_fi;
- defm int_nvvm_atomic_inc_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_dec_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_exch_gen_i: PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_xor_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_max_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_min_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_or_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_and_gen_i : PTXAtomicWithScope2<llvm_anyint_ty>;
- defm int_nvvm_atomic_cas_gen_i : PTXAtomicWithScope3<llvm_anyint_ty>;
- // Bar.Sync
- // The builtin for "bar.sync 0" is called __syncthreads. Unlike most of the
- // intrinsics in this file, this one is a user-facing API.
- def int_nvvm_barrier0 : GCCBuiltin<"__syncthreads">,
- Intrinsic<[], [], [IntrConvergent]>;
- // Synchronize all threads in the CTA at barrier 'n'.
- def int_nvvm_barrier_n : GCCBuiltin<"__nvvm_bar_n">,
- Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>;
- // Synchronize 'm', a multiple of warp size, (arg 2) threads in
- // the CTA at barrier 'n' (arg 1).
- def int_nvvm_barrier : GCCBuiltin<"__nvvm_bar">,
- Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [IntrConvergent]>;
- def int_nvvm_barrier0_popc : GCCBuiltin<"__nvvm_bar0_popc">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>;
- def int_nvvm_barrier0_and : GCCBuiltin<"__nvvm_bar0_and">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>;
- def int_nvvm_barrier0_or : GCCBuiltin<"__nvvm_bar0_or">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>;
- def int_nvvm_bar_sync :
- Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>,
- GCCBuiltin<"__nvvm_bar_sync">;
- def int_nvvm_bar_warp_sync :
- Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>,
- GCCBuiltin<"__nvvm_bar_warp_sync">;
- // barrier.sync id[, cnt]
- def int_nvvm_barrier_sync :
- Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>,
- GCCBuiltin<"__nvvm_barrier_sync">;
- def int_nvvm_barrier_sync_cnt :
- Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [IntrConvergent]>,
- GCCBuiltin<"__nvvm_barrier_sync_cnt">;
- // Membar
- def int_nvvm_membar_cta : GCCBuiltin<"__nvvm_membar_cta">,
- Intrinsic<[], [], []>;
- def int_nvvm_membar_gl : GCCBuiltin<"__nvvm_membar_gl">,
- Intrinsic<[], [], []>;
- def int_nvvm_membar_sys : GCCBuiltin<"__nvvm_membar_sys">,
- Intrinsic<[], [], []>;
- // Async Copy
- def int_nvvm_cp_async_mbarrier_arrive :
- GCCBuiltin<"__nvvm_cp_async_mbarrier_arrive">,
- Intrinsic<[],[llvm_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_cp_async_mbarrier_arrive_shared :
- GCCBuiltin<"__nvvm_cp_async_mbarrier_arrive_shared">,
- Intrinsic<[],[llvm_shared_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_cp_async_mbarrier_arrive_noinc :
- GCCBuiltin<"__nvvm_cp_async_mbarrier_arrive_noinc">,
- Intrinsic<[],[llvm_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_cp_async_mbarrier_arrive_noinc_shared :
- GCCBuiltin<"__nvvm_cp_async_mbarrier_arrive_noinc_shared">,
- Intrinsic<[],[llvm_shared_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_cp_async_ca_shared_global_4 :
- GCCBuiltin<"__nvvm_cp_async_ca_shared_global_4">,
- Intrinsic<[],[llvm_shared_i8ptr_ty, llvm_global_i8ptr_ty],
- [IntrArgMemOnly, NoAlias<ArgIndex<0>>, NoAlias<ArgIndex<1>>,
- WriteOnly<ArgIndex<0>>, ReadOnly<ArgIndex<1>>],
- "llvm.nvvm.cp.async.ca.shared.global.4">;
- def int_nvvm_cp_async_ca_shared_global_8 :
- GCCBuiltin<"__nvvm_cp_async_ca_shared_global_8">,
- Intrinsic<[],[llvm_shared_i8ptr_ty, llvm_global_i8ptr_ty],
- [IntrArgMemOnly, NoAlias<ArgIndex<0>>, NoAlias<ArgIndex<1>>,
- WriteOnly<ArgIndex<0>>, ReadOnly<ArgIndex<1>>],
- "llvm.nvvm.cp.async.ca.shared.global.8">;
- def int_nvvm_cp_async_ca_shared_global_16 :
- GCCBuiltin<"__nvvm_cp_async_ca_shared_global_16">,
- Intrinsic<[],[llvm_shared_i8ptr_ty, llvm_global_i8ptr_ty],
- [IntrArgMemOnly, NoAlias<ArgIndex<0>>, NoAlias<ArgIndex<1>>,
- WriteOnly<ArgIndex<0>>, ReadOnly<ArgIndex<1>>],
- "llvm.nvvm.cp.async.ca.shared.global.16">;
- def int_nvvm_cp_async_cg_shared_global_16 :
- GCCBuiltin<"__nvvm_cp_async_cg_shared_global_16">,
- Intrinsic<[],[llvm_shared_i8ptr_ty, llvm_global_i8ptr_ty],
- [IntrArgMemOnly, NoAlias<ArgIndex<0>>, NoAlias<ArgIndex<1>>,
- WriteOnly<ArgIndex<0>>, ReadOnly<ArgIndex<1>>],
- "llvm.nvvm.cp.async.cg.shared.global.16">;
- def int_nvvm_cp_async_commit_group :
- GCCBuiltin<"__nvvm_cp_async_commit_group">,
- Intrinsic<[],[],[]>;
- def int_nvvm_cp_async_wait_group :
- GCCBuiltin<"__nvvm_cp_async_wait_group">,
- Intrinsic<[],[llvm_i32_ty],[ImmArg<ArgIndex<0>>]>;
- def int_nvvm_cp_async_wait_all :
- GCCBuiltin<"__nvvm_cp_async_wait_all">,
- Intrinsic<[],[],[]>;
- // mbarrier
- def int_nvvm_mbarrier_init : GCCBuiltin<"__nvvm_mbarrier_init">,
- Intrinsic<[],[llvm_i64ptr_ty, llvm_i32_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_init_shared :
- GCCBuiltin<"__nvvm_mbarrier_init_shared">,
- Intrinsic<[],[llvm_shared_i64ptr_ty, llvm_i32_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_inval : GCCBuiltin<"__nvvm_mbarrier_inval">,
- Intrinsic<[],[llvm_i64ptr_ty],
- [IntrConvergent, IntrWriteMem, IntrArgMemOnly,
- WriteOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
- def int_nvvm_mbarrier_inval_shared :
- GCCBuiltin<"__nvvm_mbarrier_inval_shared">,
- Intrinsic<[],[llvm_shared_i64ptr_ty],
- [IntrConvergent, IntrWriteMem, IntrArgMemOnly,
- WriteOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
- def int_nvvm_mbarrier_arrive : GCCBuiltin<"__nvvm_mbarrier_arrive">,
- Intrinsic<[llvm_i64_ty],[llvm_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_shared :
- GCCBuiltin<"__nvvm_mbarrier_arrive_shared">,
- Intrinsic<[llvm_i64_ty],[llvm_shared_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_noComplete :
- GCCBuiltin<"__nvvm_mbarrier_arrive_noComplete">,
- Intrinsic<[llvm_i64_ty],[llvm_i64ptr_ty, llvm_i32_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_noComplete_shared :
- GCCBuiltin<"__nvvm_mbarrier_arrive_noComplete_shared">,
- Intrinsic<[llvm_i64_ty],[llvm_shared_i64ptr_ty, llvm_i32_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_drop :
- GCCBuiltin<"__nvvm_mbarrier_arrive_drop">,
- Intrinsic<[llvm_i64_ty],[llvm_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_drop_shared :
- GCCBuiltin<"__nvvm_mbarrier_arrive_drop_shared">,
- Intrinsic<[llvm_i64_ty],[llvm_shared_i64ptr_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_drop_noComplete :
- GCCBuiltin<"__nvvm_mbarrier_arrive_drop_noComplete">,
- Intrinsic<[llvm_i64_ty],[llvm_i64ptr_ty, llvm_i32_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_arrive_drop_noComplete_shared :
- GCCBuiltin<"__nvvm_mbarrier_arrive_drop_noComplete_shared">,
- Intrinsic<[llvm_i64_ty],[llvm_shared_i64ptr_ty, llvm_i32_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_test_wait :
- GCCBuiltin<"__nvvm_mbarrier_test_wait">,
- Intrinsic<[llvm_i1_ty],[llvm_i64ptr_ty, llvm_i64_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_test_wait_shared :
- GCCBuiltin<"__nvvm_mbarrier_test_wait_shared">,
- Intrinsic<[llvm_i1_ty],[llvm_shared_i64ptr_ty, llvm_i64_ty],[IntrConvergent]>;
- def int_nvvm_mbarrier_pending_count :
- GCCBuiltin<"__nvvm_mbarrier_pending_count">,
- Intrinsic<[llvm_i32_ty],[llvm_i64_ty],[IntrNoMem, IntrConvergent]>;
- // Generated within nvvm. Use for ldu on sm_20 or later. Second arg is the
- // pointer's alignment.
- def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
- [IntrReadMem, IntrArgMemOnly, NoCapture<ArgIndex<0>>],
- "llvm.nvvm.ldu.global.i">;
- def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
- [IntrReadMem, IntrArgMemOnly, NoCapture<ArgIndex<0>>],
- "llvm.nvvm.ldu.global.f">;
- def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
- [IntrReadMem, IntrArgMemOnly, NoCapture<ArgIndex<0>>],
- "llvm.nvvm.ldu.global.p">;
- // Generated within nvvm. Use for ldg on sm_35 or later. Second arg is the
- // pointer's alignment.
- def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
- [IntrReadMem, IntrArgMemOnly, NoCapture<ArgIndex<0>>],
- "llvm.nvvm.ldg.global.i">;
- def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
- [IntrReadMem, IntrArgMemOnly, NoCapture<ArgIndex<0>>],
- "llvm.nvvm.ldg.global.f">;
- def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty],
- [LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
- [IntrReadMem, IntrArgMemOnly, NoCapture<ArgIndex<0>>],
- "llvm.nvvm.ldg.global.p">;
- // Use for generic pointers
- // - These intrinsics are used to convert address spaces.
- // - The input pointer and output pointer must have the same type, except for
- // the address-space. (This restriction is not enforced here as there is
- // currently no way to describe it).
- // - This complements the llvm bitcast, which can be used to cast one type
- // of pointer to another type of pointer, while the address space remains
- // the same.
- def int_nvvm_ptr_local_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.local.to.gen">;
- def int_nvvm_ptr_shared_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.shared.to.gen">;
- def int_nvvm_ptr_global_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.global.to.gen">;
- def int_nvvm_ptr_constant_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.constant.to.gen">;
- def int_nvvm_ptr_gen_to_global: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.gen.to.global">;
- def int_nvvm_ptr_gen_to_shared: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.gen.to.shared">;
- def int_nvvm_ptr_gen_to_local: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.gen.to.local">;
- def int_nvvm_ptr_gen_to_constant: DefaultAttrsIntrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.gen.to.constant">;
- // Used in nvvm internally to help address space opt and ptx code generation
- // This is for params that are passed to kernel functions by pointer by-val.
- def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty],
- [llvm_anyptr_ty],
- [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.ptr.gen.to.param">;
- // Move intrinsics, used in nvvm internally
- def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem],
- "llvm.nvvm.move.i16">;
- def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem],
- "llvm.nvvm.move.i32">;
- def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.move.i64">;
- def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty],
- [IntrNoMem], "llvm.nvvm.move.float">;
- def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty],
- [IntrNoMem], "llvm.nvvm.move.double">;
- def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty],
- [IntrNoMem, NoCapture<ArgIndex<0>>], "llvm.nvvm.move.ptr">;
- // For getting the handle from a texture or surface variable
- def int_nvvm_texsurf_handle
- : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_any_i64ptr_ty],
- [IntrNoMem], "llvm.nvvm.texsurf.handle">;
- def int_nvvm_texsurf_handle_internal
- : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty],
- [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">;
- /// Error / Warn
- def int_nvvm_compiler_error :
- Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">;
- def int_nvvm_compiler_warn :
- Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">;
- def int_nvvm_reflect :
- Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.reflect">;
- // isspacep.{const, global, local, shared}
- def int_nvvm_isspacep_const
- : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.isspacep.const">,
- GCCBuiltin<"__nvvm_isspacep_const">;
- def int_nvvm_isspacep_global
- : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.isspacep.global">,
- GCCBuiltin<"__nvvm_isspacep_global">;
- def int_nvvm_isspacep_local
- : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.isspacep.local">,
- GCCBuiltin<"__nvvm_isspacep_local">;
- def int_nvvm_isspacep_shared
- : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.isspacep.shared">,
- GCCBuiltin<"__nvvm_isspacep_shared">;
- // Environment register read
- def int_nvvm_read_ptx_sreg_envreg0
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg0">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">;
- def int_nvvm_read_ptx_sreg_envreg1
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg1">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">;
- def int_nvvm_read_ptx_sreg_envreg2
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg2">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">;
- def int_nvvm_read_ptx_sreg_envreg3
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg3">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">;
- def int_nvvm_read_ptx_sreg_envreg4
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg4">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">;
- def int_nvvm_read_ptx_sreg_envreg5
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg5">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">;
- def int_nvvm_read_ptx_sreg_envreg6
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg6">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">;
- def int_nvvm_read_ptx_sreg_envreg7
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg7">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">;
- def int_nvvm_read_ptx_sreg_envreg8
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg8">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">;
- def int_nvvm_read_ptx_sreg_envreg9
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg9">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">;
- def int_nvvm_read_ptx_sreg_envreg10
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg10">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">;
- def int_nvvm_read_ptx_sreg_envreg11
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg11">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">;
- def int_nvvm_read_ptx_sreg_envreg12
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg12">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">;
- def int_nvvm_read_ptx_sreg_envreg13
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg13">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">;
- def int_nvvm_read_ptx_sreg_envreg14
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg14">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">;
- def int_nvvm_read_ptx_sreg_envreg15
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg15">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">;
- def int_nvvm_read_ptx_sreg_envreg16
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg16">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">;
- def int_nvvm_read_ptx_sreg_envreg17
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg17">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">;
- def int_nvvm_read_ptx_sreg_envreg18
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg18">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">;
- def int_nvvm_read_ptx_sreg_envreg19
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg19">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">;
- def int_nvvm_read_ptx_sreg_envreg20
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg20">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">;
- def int_nvvm_read_ptx_sreg_envreg21
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg21">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">;
- def int_nvvm_read_ptx_sreg_envreg22
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg22">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">;
- def int_nvvm_read_ptx_sreg_envreg23
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg23">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">;
- def int_nvvm_read_ptx_sreg_envreg24
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg24">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">;
- def int_nvvm_read_ptx_sreg_envreg25
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg25">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">;
- def int_nvvm_read_ptx_sreg_envreg26
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg26">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">;
- def int_nvvm_read_ptx_sreg_envreg27
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg27">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">;
- def int_nvvm_read_ptx_sreg_envreg28
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg28">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">;
- def int_nvvm_read_ptx_sreg_envreg29
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg29">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">;
- def int_nvvm_read_ptx_sreg_envreg30
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg30">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">;
- def int_nvvm_read_ptx_sreg_envreg31
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable],
- "llvm.nvvm.read.ptx.sreg.envreg31">,
- GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">;
- // Texture Fetch
- // texmode_independent
- def int_nvvm_tex_1d_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.1d.v4f32.s32">;
- def int_nvvm_tex_1d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.v4f32.f32">;
- def int_nvvm_tex_1d_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.level.v4f32.f32">;
- def int_nvvm_tex_1d_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.1d.grad.v4f32.f32">;
- def int_nvvm_tex_1d_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.1d.v4s32.s32">;
- def int_nvvm_tex_1d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.v4s32.f32">;
- def int_nvvm_tex_1d_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.level.v4s32.f32">;
- def int_nvvm_tex_1d_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.1d.grad.v4s32.f32">;
- def int_nvvm_tex_1d_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.1d.v4u32.s32">;
- def int_nvvm_tex_1d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.v4u32.f32">;
- def int_nvvm_tex_1d_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.level.v4u32.f32">;
- def int_nvvm_tex_1d_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.1d.grad.v4u32.f32">;
- def int_nvvm_tex_1d_array_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.1d.array.v4f32.s32">;
- def int_nvvm_tex_1d_array_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.v4f32.f32">;
- def int_nvvm_tex_1d_array_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.level.v4f32.f32">;
- def int_nvvm_tex_1d_array_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.grad.v4f32.f32">;
- def int_nvvm_tex_1d_array_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.1d.array.v4s32.s32">;
- def int_nvvm_tex_1d_array_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.v4s32.f32">;
- def int_nvvm_tex_1d_array_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.level.v4s32.f32">;
- def int_nvvm_tex_1d_array_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.grad.v4s32.f32">;
- def int_nvvm_tex_1d_array_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.1d.array.v4u32.s32">;
- def int_nvvm_tex_1d_array_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.v4u32.f32">;
- def int_nvvm_tex_1d_array_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.level.v4u32.f32">;
- def int_nvvm_tex_1d_array_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.1d.array.grad.v4u32.f32">;
- def int_nvvm_tex_2d_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.2d.v4f32.s32">;
- def int_nvvm_tex_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.v4f32.f32">;
- def int_nvvm_tex_2d_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.level.v4f32.f32">;
- def int_nvvm_tex_2d_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.grad.v4f32.f32">;
- def int_nvvm_tex_2d_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.2d.v4s32.s32">;
- def int_nvvm_tex_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.v4s32.f32">;
- def int_nvvm_tex_2d_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.level.v4s32.f32">;
- def int_nvvm_tex_2d_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.grad.v4s32.f32">;
- def int_nvvm_tex_2d_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.2d.v4u32.s32">;
- def int_nvvm_tex_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.v4u32.f32">;
- def int_nvvm_tex_2d_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.level.v4u32.f32">;
- def int_nvvm_tex_2d_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.grad.v4u32.f32">;
- def int_nvvm_tex_2d_array_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty], [],
- "llvm.nvvm.tex.2d.array.v4f32.s32">;
- def int_nvvm_tex_2d_array_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.v4f32.f32">;
- def int_nvvm_tex_2d_array_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.level.v4f32.f32">;
- def int_nvvm_tex_2d_array_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.grad.v4f32.f32">;
- def int_nvvm_tex_2d_array_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty], [],
- "llvm.nvvm.tex.2d.array.v4s32.s32">;
- def int_nvvm_tex_2d_array_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.v4s32.f32">;
- def int_nvvm_tex_2d_array_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.level.v4s32.f32">;
- def int_nvvm_tex_2d_array_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.grad.v4s32.f32">;
- def int_nvvm_tex_2d_array_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty], [],
- "llvm.nvvm.tex.2d.array.v4u32.s32">;
- def int_nvvm_tex_2d_array_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.v4u32.f32">;
- def int_nvvm_tex_2d_array_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.level.v4u32.f32">;
- def int_nvvm_tex_2d_array_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.2d.array.grad.v4u32.f32">;
- def int_nvvm_tex_3d_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [], "llvm.nvvm.tex.3d.v4f32.s32">;
- def int_nvvm_tex_3d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.3d.v4f32.f32">;
- def int_nvvm_tex_3d_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.3d.level.v4f32.f32">;
- def int_nvvm_tex_3d_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.3d.grad.v4f32.f32">;
- def int_nvvm_tex_3d_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [], "llvm.nvvm.tex.3d.v4s32.s32">;
- def int_nvvm_tex_3d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.3d.v4s32.f32">;
- def int_nvvm_tex_3d_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.3d.level.v4s32.f32">;
- def int_nvvm_tex_3d_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.3d.grad.v4s32.f32">;
- def int_nvvm_tex_3d_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [], "llvm.nvvm.tex.3d.v4u32.s32">;
- def int_nvvm_tex_3d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.3d.v4u32.f32">;
- def int_nvvm_tex_3d_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.3d.level.v4u32.f32">;
- def int_nvvm_tex_3d_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.3d.grad.v4u32.f32">;
- def int_nvvm_tex_cube_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.v4f32.f32">;
- def int_nvvm_tex_cube_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.level.v4f32.f32">;
- def int_nvvm_tex_cube_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.v4s32.f32">;
- def int_nvvm_tex_cube_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.level.v4s32.f32">;
- def int_nvvm_tex_cube_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.v4u32.f32">;
- def int_nvvm_tex_cube_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.level.v4u32.f32">;
- def int_nvvm_tex_cube_array_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.array.v4f32.f32">;
- def int_nvvm_tex_cube_array_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.array.level.v4f32.f32">;
- def int_nvvm_tex_cube_array_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.array.v4s32.f32">;
- def int_nvvm_tex_cube_array_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.array.level.v4s32.f32">;
- def int_nvvm_tex_cube_array_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.array.v4u32.f32">;
- def int_nvvm_tex_cube_array_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.cube.array.level.v4u32.f32">;
- def int_nvvm_tld4_r_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.r.2d.v4f32.f32">;
- def int_nvvm_tld4_g_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.g.2d.v4f32.f32">;
- def int_nvvm_tld4_b_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.b.2d.v4f32.f32">;
- def int_nvvm_tld4_a_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.a.2d.v4f32.f32">;
- def int_nvvm_tld4_r_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.r.2d.v4s32.f32">;
- def int_nvvm_tld4_g_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.g.2d.v4s32.f32">;
- def int_nvvm_tld4_b_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.b.2d.v4s32.f32">;
- def int_nvvm_tld4_a_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.a.2d.v4s32.f32">;
- def int_nvvm_tld4_r_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.r.2d.v4u32.f32">;
- def int_nvvm_tld4_g_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.g.2d.v4u32.f32">;
- def int_nvvm_tld4_b_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.b.2d.v4u32.f32">;
- def int_nvvm_tld4_a_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.a.2d.v4u32.f32">;
- // texmode_unified
- def int_nvvm_tex_unified_1d_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.1d.v4f32.s32">;
- def int_nvvm_tex_unified_1d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.v4f32.f32">;
- def int_nvvm_tex_unified_1d_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.level.v4f32.f32">;
- def int_nvvm_tex_unified_1d_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.grad.v4f32.f32">;
- def int_nvvm_tex_unified_1d_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.1d.v4s32.s32">;
- def int_nvvm_tex_unified_1d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.v4s32.f32">;
- def int_nvvm_tex_unified_1d_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.level.v4s32.f32">;
- def int_nvvm_tex_unified_1d_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.grad.v4s32.f32">;
- def int_nvvm_tex_unified_1d_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.1d.v4u32.s32">;
- def int_nvvm_tex_unified_1d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.v4u32.f32">;
- def int_nvvm_tex_unified_1d_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.level.v4u32.f32">;
- def int_nvvm_tex_unified_1d_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.grad.v4u32.f32">;
- def int_nvvm_tex_unified_1d_array_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.1d.array.v4f32.s32">;
- def int_nvvm_tex_unified_1d_array_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.v4f32.f32">;
- def int_nvvm_tex_unified_1d_array_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32">;
- def int_nvvm_tex_unified_1d_array_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32">;
- def int_nvvm_tex_unified_1d_array_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.1d.array.v4s32.s32">;
- def int_nvvm_tex_unified_1d_array_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.v4s32.f32">;
- def int_nvvm_tex_unified_1d_array_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32">;
- def int_nvvm_tex_unified_1d_array_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32">;
- def int_nvvm_tex_unified_1d_array_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.1d.array.v4u32.s32">;
- def int_nvvm_tex_unified_1d_array_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.v4u32.f32">;
- def int_nvvm_tex_unified_1d_array_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32">;
- def int_nvvm_tex_unified_1d_array_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32">;
- def int_nvvm_tex_unified_2d_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.2d.v4f32.s32">;
- def int_nvvm_tex_unified_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.v4f32.f32">;
- def int_nvvm_tex_unified_2d_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.level.v4f32.f32">;
- def int_nvvm_tex_unified_2d_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.grad.v4f32.f32">;
- def int_nvvm_tex_unified_2d_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.2d.v4s32.s32">;
- def int_nvvm_tex_unified_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.v4s32.f32">;
- def int_nvvm_tex_unified_2d_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.level.v4s32.f32">;
- def int_nvvm_tex_unified_2d_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.grad.v4s32.f32">;
- def int_nvvm_tex_unified_2d_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.2d.v4u32.s32">;
- def int_nvvm_tex_unified_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.v4u32.f32">;
- def int_nvvm_tex_unified_2d_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.level.v4u32.f32">;
- def int_nvvm_tex_unified_2d_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.grad.v4u32.f32">;
- def int_nvvm_tex_unified_2d_array_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.2d.array.v4f32.s32">;
- def int_nvvm_tex_unified_2d_array_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.v4f32.f32">;
- def int_nvvm_tex_unified_2d_array_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32">;
- def int_nvvm_tex_unified_2d_array_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32">;
- def int_nvvm_tex_unified_2d_array_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.2d.array.v4s32.s32">;
- def int_nvvm_tex_unified_2d_array_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.v4s32.f32">;
- def int_nvvm_tex_unified_2d_array_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32">;
- def int_nvvm_tex_unified_2d_array_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32">;
- def int_nvvm_tex_unified_2d_array_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty], [],
- "llvm.nvvm.tex.unified.2d.array.v4u32.s32">;
- def int_nvvm_tex_unified_2d_array_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.v4u32.f32">;
- def int_nvvm_tex_unified_2d_array_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32">;
- def int_nvvm_tex_unified_2d_array_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32">;
- def int_nvvm_tex_unified_3d_v4f32_s32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [], "llvm.nvvm.tex.unified.3d.v4f32.s32">;
- def int_nvvm_tex_unified_3d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.v4f32.f32">;
- def int_nvvm_tex_unified_3d_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.level.v4f32.f32">;
- def int_nvvm_tex_unified_3d_grad_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.grad.v4f32.f32">;
- def int_nvvm_tex_unified_3d_v4s32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [], "llvm.nvvm.tex.unified.3d.v4s32.s32">;
- def int_nvvm_tex_unified_3d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.v4s32.f32">;
- def int_nvvm_tex_unified_3d_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.level.v4s32.f32">;
- def int_nvvm_tex_unified_3d_grad_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.grad.v4s32.f32">;
- def int_nvvm_tex_unified_3d_v4u32_s32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [], "llvm.nvvm.tex.unified.3d.v4u32.s32">;
- def int_nvvm_tex_unified_3d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.v4u32.f32">;
- def int_nvvm_tex_unified_3d_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.level.v4u32.f32">;
- def int_nvvm_tex_unified_3d_grad_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.3d.grad.v4u32.f32">;
- def int_nvvm_tex_unified_cube_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.v4f32.f32">;
- def int_nvvm_tex_unified_cube_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.level.v4f32.f32">;
- def int_nvvm_tex_unified_cube_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.v4s32.f32">;
- def int_nvvm_tex_unified_cube_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.level.v4s32.f32">;
- def int_nvvm_tex_unified_cube_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.v4u32.f32">;
- def int_nvvm_tex_unified_cube_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.level.v4u32.f32">;
- def int_nvvm_tex_unified_cube_array_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.array.v4f32.f32">;
- def int_nvvm_tex_unified_cube_array_level_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32">;
- def int_nvvm_tex_unified_cube_array_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.array.v4s32.f32">;
- def int_nvvm_tex_unified_cube_array_level_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32">;
- def int_nvvm_tex_unified_cube_array_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.array.v4u32.f32">;
- def int_nvvm_tex_unified_cube_array_level_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty,
- llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32">;
- def int_nvvm_tld4_unified_r_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.r.2d.v4f32.f32">;
- def int_nvvm_tld4_unified_g_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.g.2d.v4f32.f32">;
- def int_nvvm_tld4_unified_b_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.b.2d.v4f32.f32">;
- def int_nvvm_tld4_unified_a_2d_v4f32_f32
- : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.a.2d.v4f32.f32">;
- def int_nvvm_tld4_unified_r_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.r.2d.v4s32.f32">;
- def int_nvvm_tld4_unified_g_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.g.2d.v4s32.f32">;
- def int_nvvm_tld4_unified_b_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.b.2d.v4s32.f32">;
- def int_nvvm_tld4_unified_a_2d_v4s32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.a.2d.v4s32.f32">;
- def int_nvvm_tld4_unified_r_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.r.2d.v4u32.f32">;
- def int_nvvm_tld4_unified_g_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.g.2d.v4u32.f32">;
- def int_nvvm_tld4_unified_b_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.b.2d.v4u32.f32">;
- def int_nvvm_tld4_unified_a_2d_v4u32_f32
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [],
- "llvm.nvvm.tld4.unified.a.2d.v4u32.f32">;
- //=== Surface Load
- // .clamp variants
- def int_nvvm_suld_1d_i8_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i8.clamp">;
- def int_nvvm_suld_1d_i16_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i16.clamp">;
- def int_nvvm_suld_1d_i32_clamp
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i32.clamp">;
- def int_nvvm_suld_1d_i64_clamp
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i64.clamp">;
- def int_nvvm_suld_1d_v2i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i8.clamp">;
- def int_nvvm_suld_1d_v2i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i16.clamp">;
- def int_nvvm_suld_1d_v2i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i32.clamp">;
- def int_nvvm_suld_1d_v2i64_clamp
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i64.clamp">;
- def int_nvvm_suld_1d_v4i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i8.clamp">;
- def int_nvvm_suld_1d_v4i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i16.clamp">;
- def int_nvvm_suld_1d_v4i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i32.clamp">;
- def int_nvvm_suld_1d_array_i8_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i8.clamp">;
- def int_nvvm_suld_1d_array_i16_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i16.clamp">;
- def int_nvvm_suld_1d_array_i32_clamp
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i32.clamp">;
- def int_nvvm_suld_1d_array_i64_clamp
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i64.clamp">;
- def int_nvvm_suld_1d_array_v2i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i8.clamp">;
- def int_nvvm_suld_1d_array_v2i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i16.clamp">;
- def int_nvvm_suld_1d_array_v2i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i32.clamp">;
- def int_nvvm_suld_1d_array_v2i64_clamp
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i64.clamp">;
- def int_nvvm_suld_1d_array_v4i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i8.clamp">;
- def int_nvvm_suld_1d_array_v4i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i16.clamp">;
- def int_nvvm_suld_1d_array_v4i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i32.clamp">;
- def int_nvvm_suld_2d_i8_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i8.clamp">;
- def int_nvvm_suld_2d_i16_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i16.clamp">;
- def int_nvvm_suld_2d_i32_clamp
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i32.clamp">;
- def int_nvvm_suld_2d_i64_clamp
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i64.clamp">;
- def int_nvvm_suld_2d_v2i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i8.clamp">;
- def int_nvvm_suld_2d_v2i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i16.clamp">;
- def int_nvvm_suld_2d_v2i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i32.clamp">;
- def int_nvvm_suld_2d_v2i64_clamp
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i64.clamp">;
- def int_nvvm_suld_2d_v4i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i8.clamp">;
- def int_nvvm_suld_2d_v4i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i16.clamp">;
- def int_nvvm_suld_2d_v4i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i32.clamp">;
- def int_nvvm_suld_2d_array_i8_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i8.clamp">;
- def int_nvvm_suld_2d_array_i16_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i16.clamp">;
- def int_nvvm_suld_2d_array_i32_clamp
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i32.clamp">;
- def int_nvvm_suld_2d_array_i64_clamp
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i64.clamp">;
- def int_nvvm_suld_2d_array_v2i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i8.clamp">;
- def int_nvvm_suld_2d_array_v2i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i16.clamp">;
- def int_nvvm_suld_2d_array_v2i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i32.clamp">;
- def int_nvvm_suld_2d_array_v2i64_clamp
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i64.clamp">;
- def int_nvvm_suld_2d_array_v4i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i8.clamp">;
- def int_nvvm_suld_2d_array_v4i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i16.clamp">;
- def int_nvvm_suld_2d_array_v4i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i32.clamp">;
- def int_nvvm_suld_3d_i8_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i8.clamp">;
- def int_nvvm_suld_3d_i16_clamp
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i16.clamp">;
- def int_nvvm_suld_3d_i32_clamp
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i32.clamp">;
- def int_nvvm_suld_3d_i64_clamp
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i64.clamp">;
- def int_nvvm_suld_3d_v2i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i8.clamp">;
- def int_nvvm_suld_3d_v2i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i16.clamp">;
- def int_nvvm_suld_3d_v2i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i32.clamp">;
- def int_nvvm_suld_3d_v2i64_clamp
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i64.clamp">;
- def int_nvvm_suld_3d_v4i8_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i8.clamp">;
- def int_nvvm_suld_3d_v4i16_clamp
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i16.clamp">;
- def int_nvvm_suld_3d_v4i32_clamp
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i32.clamp">;
- // .trap variants
- def int_nvvm_suld_1d_i8_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i8.trap">;
- def int_nvvm_suld_1d_i16_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i16.trap">;
- def int_nvvm_suld_1d_i32_trap
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i32.trap">;
- def int_nvvm_suld_1d_i64_trap
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i64.trap">;
- def int_nvvm_suld_1d_v2i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i8.trap">;
- def int_nvvm_suld_1d_v2i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i16.trap">;
- def int_nvvm_suld_1d_v2i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i32.trap">;
- def int_nvvm_suld_1d_v2i64_trap
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i64.trap">;
- def int_nvvm_suld_1d_v4i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i8.trap">;
- def int_nvvm_suld_1d_v4i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i16.trap">;
- def int_nvvm_suld_1d_v4i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i32.trap">;
- def int_nvvm_suld_1d_array_i8_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i8.trap">;
- def int_nvvm_suld_1d_array_i16_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i16.trap">;
- def int_nvvm_suld_1d_array_i32_trap
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i32.trap">;
- def int_nvvm_suld_1d_array_i64_trap
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i64.trap">;
- def int_nvvm_suld_1d_array_v2i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i8.trap">;
- def int_nvvm_suld_1d_array_v2i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i16.trap">;
- def int_nvvm_suld_1d_array_v2i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i32.trap">;
- def int_nvvm_suld_1d_array_v2i64_trap
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i64.trap">;
- def int_nvvm_suld_1d_array_v4i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i8.trap">;
- def int_nvvm_suld_1d_array_v4i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i16.trap">;
- def int_nvvm_suld_1d_array_v4i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i32.trap">;
- def int_nvvm_suld_2d_i8_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i8.trap">;
- def int_nvvm_suld_2d_i16_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i16.trap">;
- def int_nvvm_suld_2d_i32_trap
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i32.trap">;
- def int_nvvm_suld_2d_i64_trap
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i64.trap">;
- def int_nvvm_suld_2d_v2i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i8.trap">;
- def int_nvvm_suld_2d_v2i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i16.trap">;
- def int_nvvm_suld_2d_v2i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i32.trap">;
- def int_nvvm_suld_2d_v2i64_trap
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i64.trap">;
- def int_nvvm_suld_2d_v4i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i8.trap">;
- def int_nvvm_suld_2d_v4i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i16.trap">;
- def int_nvvm_suld_2d_v4i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i32.trap">;
- def int_nvvm_suld_2d_array_i8_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i8.trap">;
- def int_nvvm_suld_2d_array_i16_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i16.trap">;
- def int_nvvm_suld_2d_array_i32_trap
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i32.trap">;
- def int_nvvm_suld_2d_array_i64_trap
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i64.trap">;
- def int_nvvm_suld_2d_array_v2i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i8.trap">;
- def int_nvvm_suld_2d_array_v2i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i16.trap">;
- def int_nvvm_suld_2d_array_v2i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i32.trap">;
- def int_nvvm_suld_2d_array_v2i64_trap
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i64.trap">;
- def int_nvvm_suld_2d_array_v4i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i8.trap">;
- def int_nvvm_suld_2d_array_v4i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i16.trap">;
- def int_nvvm_suld_2d_array_v4i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i32.trap">;
- def int_nvvm_suld_3d_i8_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i8.trap">;
- def int_nvvm_suld_3d_i16_trap
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i16.trap">;
- def int_nvvm_suld_3d_i32_trap
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i32.trap">;
- def int_nvvm_suld_3d_i64_trap
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i64.trap">;
- def int_nvvm_suld_3d_v2i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i8.trap">;
- def int_nvvm_suld_3d_v2i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i16.trap">;
- def int_nvvm_suld_3d_v2i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i32.trap">;
- def int_nvvm_suld_3d_v2i64_trap
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i64.trap">;
- def int_nvvm_suld_3d_v4i8_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i8.trap">;
- def int_nvvm_suld_3d_v4i16_trap
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i16.trap">;
- def int_nvvm_suld_3d_v4i32_trap
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i32.trap">;
- // .zero variants
- def int_nvvm_suld_1d_i8_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i8.zero">;
- def int_nvvm_suld_1d_i16_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i16.zero">;
- def int_nvvm_suld_1d_i32_zero
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i32.zero">;
- def int_nvvm_suld_1d_i64_zero
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.i64.zero">;
- def int_nvvm_suld_1d_v2i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i8.zero">;
- def int_nvvm_suld_1d_v2i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i16.zero">;
- def int_nvvm_suld_1d_v2i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i32.zero">;
- def int_nvvm_suld_1d_v2i64_zero
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v2i64.zero">;
- def int_nvvm_suld_1d_v4i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i8.zero">;
- def int_nvvm_suld_1d_v4i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i16.zero">;
- def int_nvvm_suld_1d_v4i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.v4i32.zero">;
- def int_nvvm_suld_1d_array_i8_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i8.zero">;
- def int_nvvm_suld_1d_array_i16_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i16.zero">;
- def int_nvvm_suld_1d_array_i32_zero
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i32.zero">;
- def int_nvvm_suld_1d_array_i64_zero
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.i64.zero">;
- def int_nvvm_suld_1d_array_v2i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i8.zero">;
- def int_nvvm_suld_1d_array_v2i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i16.zero">;
- def int_nvvm_suld_1d_array_v2i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i32.zero">;
- def int_nvvm_suld_1d_array_v2i64_zero
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v2i64.zero">;
- def int_nvvm_suld_1d_array_v4i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i8.zero">;
- def int_nvvm_suld_1d_array_v4i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i16.zero">;
- def int_nvvm_suld_1d_array_v4i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.1d.array.v4i32.zero">;
- def int_nvvm_suld_2d_i8_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i8.zero">;
- def int_nvvm_suld_2d_i16_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i16.zero">;
- def int_nvvm_suld_2d_i32_zero
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i32.zero">;
- def int_nvvm_suld_2d_i64_zero
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.i64.zero">;
- def int_nvvm_suld_2d_v2i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i8.zero">;
- def int_nvvm_suld_2d_v2i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i16.zero">;
- def int_nvvm_suld_2d_v2i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i32.zero">;
- def int_nvvm_suld_2d_v2i64_zero
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v2i64.zero">;
- def int_nvvm_suld_2d_v4i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i8.zero">;
- def int_nvvm_suld_2d_v4i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i16.zero">;
- def int_nvvm_suld_2d_v4i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.v4i32.zero">;
- def int_nvvm_suld_2d_array_i8_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i8.zero">;
- def int_nvvm_suld_2d_array_i16_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i16.zero">;
- def int_nvvm_suld_2d_array_i32_zero
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i32.zero">;
- def int_nvvm_suld_2d_array_i64_zero
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.i64.zero">;
- def int_nvvm_suld_2d_array_v2i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i8.zero">;
- def int_nvvm_suld_2d_array_v2i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i16.zero">;
- def int_nvvm_suld_2d_array_v2i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i32.zero">;
- def int_nvvm_suld_2d_array_v2i64_zero
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v2i64.zero">;
- def int_nvvm_suld_2d_array_v4i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i8.zero">;
- def int_nvvm_suld_2d_array_v4i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i16.zero">;
- def int_nvvm_suld_2d_array_v4i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.2d.array.v4i32.zero">;
- def int_nvvm_suld_3d_i8_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i8.zero">;
- def int_nvvm_suld_3d_i16_zero
- : Intrinsic<[llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i16.zero">;
- def int_nvvm_suld_3d_i32_zero
- : Intrinsic<[llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i32.zero">;
- def int_nvvm_suld_3d_i64_zero
- : Intrinsic<[llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.i64.zero">;
- def int_nvvm_suld_3d_v2i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i8.zero">;
- def int_nvvm_suld_3d_v2i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i16.zero">;
- def int_nvvm_suld_3d_v2i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i32.zero">;
- def int_nvvm_suld_3d_v2i64_zero
- : Intrinsic<[llvm_i64_ty, llvm_i64_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v2i64.zero">;
- def int_nvvm_suld_3d_v4i8_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i8.zero">;
- def int_nvvm_suld_3d_v4i16_zero
- : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i16.zero">;
- def int_nvvm_suld_3d_v4i32_zero
- : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
- [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.suld.3d.v4i32.zero">;
- //===- Texture Query ------------------------------------------------------===//
- def int_nvvm_txq_channel_order
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.channel.order">,
- GCCBuiltin<"__nvvm_txq_channel_order">;
- def int_nvvm_txq_channel_data_type
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.channel.data.type">,
- GCCBuiltin<"__nvvm_txq_channel_data_type">;
- def int_nvvm_txq_width
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.width">,
- GCCBuiltin<"__nvvm_txq_width">;
- def int_nvvm_txq_height
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.height">,
- GCCBuiltin<"__nvvm_txq_height">;
- def int_nvvm_txq_depth
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.depth">,
- GCCBuiltin<"__nvvm_txq_depth">;
- def int_nvvm_txq_array_size
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.array.size">,
- GCCBuiltin<"__nvvm_txq_array_size">;
- def int_nvvm_txq_num_samples
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.num.samples">,
- GCCBuiltin<"__nvvm_txq_num_samples">;
- def int_nvvm_txq_num_mipmap_levels
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.txq.num.mipmap.levels">,
- GCCBuiltin<"__nvvm_txq_num_mipmap_levels">;
- //===- Surface Query ------------------------------------------------------===//
- def int_nvvm_suq_channel_order
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.suq.channel.order">,
- GCCBuiltin<"__nvvm_suq_channel_order">;
- def int_nvvm_suq_channel_data_type
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.suq.channel.data.type">,
- GCCBuiltin<"__nvvm_suq_channel_data_type">;
- def int_nvvm_suq_width
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.suq.width">,
- GCCBuiltin<"__nvvm_suq_width">;
- def int_nvvm_suq_height
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.suq.height">,
- GCCBuiltin<"__nvvm_suq_height">;
- def int_nvvm_suq_depth
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.suq.depth">,
- GCCBuiltin<"__nvvm_suq_depth">;
- def int_nvvm_suq_array_size
- : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.suq.array.size">,
- GCCBuiltin<"__nvvm_suq_array_size">;
- //===- Handle Query -------------------------------------------------------===//
- def int_nvvm_istypep_sampler
- : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.istypep.sampler">,
- GCCBuiltin<"__nvvm_istypep_sampler">;
- def int_nvvm_istypep_surface
- : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.istypep.surface">,
- GCCBuiltin<"__nvvm_istypep_surface">;
- def int_nvvm_istypep_texture
- : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem],
- "llvm.nvvm.istypep.texture">,
- GCCBuiltin<"__nvvm_istypep_texture">;
- //===- Surface Stores -----------------------------------------------------===//
- // Unformatted
- // .clamp variant
- def int_nvvm_sust_b_1d_i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_i8_clamp">;
- def int_nvvm_sust_b_1d_i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_i16_clamp">;
- def int_nvvm_sust_b_1d_i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_i32_clamp">;
- def int_nvvm_sust_b_1d_i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_i64_clamp">;
- def int_nvvm_sust_b_1d_v2i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v2i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i8_clamp">;
- def int_nvvm_sust_b_1d_v2i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v2i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i16_clamp">;
- def int_nvvm_sust_b_1d_v2i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.v2i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i32_clamp">;
- def int_nvvm_sust_b_1d_v2i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.v2i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i64_clamp">;
- def int_nvvm_sust_b_1d_v4i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v4i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i8_clamp">;
- def int_nvvm_sust_b_1d_v4i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v4i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i16_clamp">;
- def int_nvvm_sust_b_1d_v4i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.v4i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i32_clamp">;
- def int_nvvm_sust_b_1d_array_i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i8_clamp">;
- def int_nvvm_sust_b_1d_array_i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i16_clamp">;
- def int_nvvm_sust_b_1d_array_i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i32_clamp">;
- def int_nvvm_sust_b_1d_array_i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.array.i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i64_clamp">;
- def int_nvvm_sust_b_1d_array_v2i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_clamp">;
- def int_nvvm_sust_b_1d_array_v2i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_clamp">;
- def int_nvvm_sust_b_1d_array_v2i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_clamp">;
- def int_nvvm_sust_b_1d_array_v2i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_clamp">;
- def int_nvvm_sust_b_1d_array_v4i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_clamp">;
- def int_nvvm_sust_b_1d_array_v4i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_clamp">;
- def int_nvvm_sust_b_1d_array_v4i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_clamp">;
- def int_nvvm_sust_b_2d_i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_i8_clamp">;
- def int_nvvm_sust_b_2d_i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_i16_clamp">;
- def int_nvvm_sust_b_2d_i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_i32_clamp">;
- def int_nvvm_sust_b_2d_i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_i64_clamp">;
- def int_nvvm_sust_b_2d_v2i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v2i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i8_clamp">;
- def int_nvvm_sust_b_2d_v2i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v2i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i16_clamp">;
- def int_nvvm_sust_b_2d_v2i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.v2i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i32_clamp">;
- def int_nvvm_sust_b_2d_v2i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.v2i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i64_clamp">;
- def int_nvvm_sust_b_2d_v4i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v4i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i8_clamp">;
- def int_nvvm_sust_b_2d_v4i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v4i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i16_clamp">;
- def int_nvvm_sust_b_2d_v4i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.v4i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i32_clamp">;
- def int_nvvm_sust_b_2d_array_i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i8_clamp">;
- def int_nvvm_sust_b_2d_array_i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i16_clamp">;
- def int_nvvm_sust_b_2d_array_i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i32_clamp">;
- def int_nvvm_sust_b_2d_array_i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.array.i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i64_clamp">;
- def int_nvvm_sust_b_2d_array_v2i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_clamp">;
- def int_nvvm_sust_b_2d_array_v2i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_clamp">;
- def int_nvvm_sust_b_2d_array_v2i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_clamp">;
- def int_nvvm_sust_b_2d_array_v2i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_clamp">;
- def int_nvvm_sust_b_2d_array_v4i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_clamp">;
- def int_nvvm_sust_b_2d_array_v4i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_clamp">;
- def int_nvvm_sust_b_2d_array_v4i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_clamp">;
- def int_nvvm_sust_b_3d_i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_i8_clamp">;
- def int_nvvm_sust_b_3d_i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_i16_clamp">;
- def int_nvvm_sust_b_3d_i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_i32_clamp">;
- def int_nvvm_sust_b_3d_i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.3d.i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_i64_clamp">;
- def int_nvvm_sust_b_3d_v2i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v2i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i8_clamp">;
- def int_nvvm_sust_b_3d_v2i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v2i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i16_clamp">;
- def int_nvvm_sust_b_3d_v2i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.v2i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i32_clamp">;
- def int_nvvm_sust_b_3d_v2i64_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.3d.v2i64.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i64_clamp">;
- def int_nvvm_sust_b_3d_v4i8_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v4i8.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i8_clamp">;
- def int_nvvm_sust_b_3d_v4i16_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v4i16.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i16_clamp">;
- def int_nvvm_sust_b_3d_v4i32_clamp
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.v4i32.clamp">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i32_clamp">;
- // .trap variant
- def int_nvvm_sust_b_1d_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">;
- def int_nvvm_sust_b_1d_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">;
- def int_nvvm_sust_b_1d_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">;
- def int_nvvm_sust_b_1d_i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_i64_trap">;
- def int_nvvm_sust_b_1d_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">;
- def int_nvvm_sust_b_1d_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">;
- def int_nvvm_sust_b_1d_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">;
- def int_nvvm_sust_b_1d_v2i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.v2i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i64_trap">;
- def int_nvvm_sust_b_1d_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">;
- def int_nvvm_sust_b_1d_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">;
- def int_nvvm_sust_b_1d_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">;
- def int_nvvm_sust_b_1d_array_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">;
- def int_nvvm_sust_b_1d_array_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">;
- def int_nvvm_sust_b_1d_array_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">;
- def int_nvvm_sust_b_1d_array_i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.array.i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i64_trap">;
- def int_nvvm_sust_b_1d_array_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">;
- def int_nvvm_sust_b_1d_array_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">;
- def int_nvvm_sust_b_1d_array_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">;
- def int_nvvm_sust_b_1d_array_v2i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_trap">;
- def int_nvvm_sust_b_1d_array_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">;
- def int_nvvm_sust_b_1d_array_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">;
- def int_nvvm_sust_b_1d_array_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">;
- def int_nvvm_sust_b_2d_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">;
- def int_nvvm_sust_b_2d_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">;
- def int_nvvm_sust_b_2d_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">;
- def int_nvvm_sust_b_2d_i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_i64_trap">;
- def int_nvvm_sust_b_2d_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">;
- def int_nvvm_sust_b_2d_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">;
- def int_nvvm_sust_b_2d_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">;
- def int_nvvm_sust_b_2d_v2i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.v2i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i64_trap">;
- def int_nvvm_sust_b_2d_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">;
- def int_nvvm_sust_b_2d_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">;
- def int_nvvm_sust_b_2d_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">;
- def int_nvvm_sust_b_2d_array_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">;
- def int_nvvm_sust_b_2d_array_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">;
- def int_nvvm_sust_b_2d_array_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">;
- def int_nvvm_sust_b_2d_array_i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.array.i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i64_trap">;
- def int_nvvm_sust_b_2d_array_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">;
- def int_nvvm_sust_b_2d_array_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">;
- def int_nvvm_sust_b_2d_array_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">;
- def int_nvvm_sust_b_2d_array_v2i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_trap">;
- def int_nvvm_sust_b_2d_array_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">;
- def int_nvvm_sust_b_2d_array_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">;
- def int_nvvm_sust_b_2d_array_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">;
- def int_nvvm_sust_b_3d_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">;
- def int_nvvm_sust_b_3d_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">;
- def int_nvvm_sust_b_3d_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">;
- def int_nvvm_sust_b_3d_i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.3d.i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_i64_trap">;
- def int_nvvm_sust_b_3d_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">;
- def int_nvvm_sust_b_3d_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">;
- def int_nvvm_sust_b_3d_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">;
- def int_nvvm_sust_b_3d_v2i64_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.3d.v2i64.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i64_trap">;
- def int_nvvm_sust_b_3d_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">;
- def int_nvvm_sust_b_3d_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">;
- def int_nvvm_sust_b_3d_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">;
- // .zero variant
- def int_nvvm_sust_b_1d_i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_i8_zero">;
- def int_nvvm_sust_b_1d_i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_i16_zero">;
- def int_nvvm_sust_b_1d_i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_i32_zero">;
- def int_nvvm_sust_b_1d_i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_i64_zero">;
- def int_nvvm_sust_b_1d_v2i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v2i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i8_zero">;
- def int_nvvm_sust_b_1d_v2i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v2i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i16_zero">;
- def int_nvvm_sust_b_1d_v2i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.v2i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i32_zero">;
- def int_nvvm_sust_b_1d_v2i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.v2i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v2i64_zero">;
- def int_nvvm_sust_b_1d_v4i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v4i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i8_zero">;
- def int_nvvm_sust_b_1d_v4i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.v4i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i16_zero">;
- def int_nvvm_sust_b_1d_v4i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.v4i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_v4i32_zero">;
- def int_nvvm_sust_b_1d_array_i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i8_zero">;
- def int_nvvm_sust_b_1d_array_i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i16_zero">;
- def int_nvvm_sust_b_1d_array_i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i32_zero">;
- def int_nvvm_sust_b_1d_array_i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.array.i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_i64_zero">;
- def int_nvvm_sust_b_1d_array_v2i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_zero">;
- def int_nvvm_sust_b_1d_array_v2i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_zero">;
- def int_nvvm_sust_b_1d_array_v2i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_zero">;
- def int_nvvm_sust_b_1d_array_v2i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.1d.array.v2i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_zero">;
- def int_nvvm_sust_b_1d_array_v4i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_zero">;
- def int_nvvm_sust_b_1d_array_v4i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_zero">;
- def int_nvvm_sust_b_1d_array_v4i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.1d.array.v4i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_zero">;
- def int_nvvm_sust_b_2d_i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_i8_zero">;
- def int_nvvm_sust_b_2d_i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_i16_zero">;
- def int_nvvm_sust_b_2d_i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_i32_zero">;
- def int_nvvm_sust_b_2d_i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_i64_zero">;
- def int_nvvm_sust_b_2d_v2i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v2i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i8_zero">;
- def int_nvvm_sust_b_2d_v2i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v2i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i16_zero">;
- def int_nvvm_sust_b_2d_v2i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.v2i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i32_zero">;
- def int_nvvm_sust_b_2d_v2i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.v2i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v2i64_zero">;
- def int_nvvm_sust_b_2d_v4i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v4i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i8_zero">;
- def int_nvvm_sust_b_2d_v4i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.v4i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i16_zero">;
- def int_nvvm_sust_b_2d_v4i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.v4i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_v4i32_zero">;
- def int_nvvm_sust_b_2d_array_i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i8_zero">;
- def int_nvvm_sust_b_2d_array_i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i16_zero">;
- def int_nvvm_sust_b_2d_array_i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i32_zero">;
- def int_nvvm_sust_b_2d_array_i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.array.i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_i64_zero">;
- def int_nvvm_sust_b_2d_array_v2i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_zero">;
- def int_nvvm_sust_b_2d_array_v2i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_zero">;
- def int_nvvm_sust_b_2d_array_v2i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_zero">;
- def int_nvvm_sust_b_2d_array_v2i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.2d.array.v2i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_zero">;
- def int_nvvm_sust_b_2d_array_v4i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_zero">;
- def int_nvvm_sust_b_2d_array_v4i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_zero">;
- def int_nvvm_sust_b_2d_array_v4i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.2d.array.v4i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_zero">;
- def int_nvvm_sust_b_3d_i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_i8_zero">;
- def int_nvvm_sust_b_3d_i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_i16_zero">;
- def int_nvvm_sust_b_3d_i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_i32_zero">;
- def int_nvvm_sust_b_3d_i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.3d.i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_i64_zero">;
- def int_nvvm_sust_b_3d_v2i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v2i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i8_zero">;
- def int_nvvm_sust_b_3d_v2i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v2i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i16_zero">;
- def int_nvvm_sust_b_3d_v2i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.v2i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i32_zero">;
- def int_nvvm_sust_b_3d_v2i64_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i64_ty, llvm_i64_ty], [],
- "llvm.nvvm.sust.b.3d.v2i64.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v2i64_zero">;
- def int_nvvm_sust_b_3d_v4i8_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v4i8.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i8_zero">;
- def int_nvvm_sust_b_3d_v4i16_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.b.3d.v4i16.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i16_zero">;
- def int_nvvm_sust_b_3d_v4i32_zero
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.b.3d.v4i32.zero">,
- GCCBuiltin<"__nvvm_sust_b_3d_v4i32_zero">;
- // Formatted
- def int_nvvm_sust_p_1d_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">;
- def int_nvvm_sust_p_1d_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">;
- def int_nvvm_sust_p_1d_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.1d.i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">;
- def int_nvvm_sust_p_1d_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">;
- def int_nvvm_sust_p_1d_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">;
- def int_nvvm_sust_p_1d_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.1d.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">;
- def int_nvvm_sust_p_1d_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">;
- def int_nvvm_sust_p_1d_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">;
- def int_nvvm_sust_p_1d_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.1d.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">;
- def int_nvvm_sust_p_1d_array_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.array.i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">;
- def int_nvvm_sust_p_1d_array_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.array.i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">;
- def int_nvvm_sust_p_1d_array_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.1d.array.i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">;
- def int_nvvm_sust_p_1d_array_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.array.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">;
- def int_nvvm_sust_p_1d_array_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.array.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">;
- def int_nvvm_sust_p_1d_array_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.1d.array.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">;
- def int_nvvm_sust_p_1d_array_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.array.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">;
- def int_nvvm_sust_p_1d_array_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.1d.array.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">;
- def int_nvvm_sust_p_1d_array_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.1d.array.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">;
- def int_nvvm_sust_p_2d_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">;
- def int_nvvm_sust_p_2d_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">;
- def int_nvvm_sust_p_2d_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.2d.i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">;
- def int_nvvm_sust_p_2d_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">;
- def int_nvvm_sust_p_2d_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">;
- def int_nvvm_sust_p_2d_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.2d.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">;
- def int_nvvm_sust_p_2d_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">;
- def int_nvvm_sust_p_2d_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">;
- def int_nvvm_sust_p_2d_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.2d.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">;
- def int_nvvm_sust_p_2d_array_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.array.i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">;
- def int_nvvm_sust_p_2d_array_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.array.i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">;
- def int_nvvm_sust_p_2d_array_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.2d.array.i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">;
- def int_nvvm_sust_p_2d_array_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.array.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">;
- def int_nvvm_sust_p_2d_array_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.array.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">;
- def int_nvvm_sust_p_2d_array_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.2d.array.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">;
- def int_nvvm_sust_p_2d_array_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.array.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">;
- def int_nvvm_sust_p_2d_array_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.2d.array.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">;
- def int_nvvm_sust_p_2d_array_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.2d.array.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">;
- def int_nvvm_sust_p_3d_i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.3d.i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">;
- def int_nvvm_sust_p_3d_i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.3d.i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">;
- def int_nvvm_sust_p_3d_i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.3d.i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">;
- def int_nvvm_sust_p_3d_v2i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.3d.v2i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">;
- def int_nvvm_sust_p_3d_v2i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.3d.v2i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">;
- def int_nvvm_sust_p_3d_v2i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.3d.v2i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">;
- def int_nvvm_sust_p_3d_v4i8_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.3d.v4i8.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">;
- def int_nvvm_sust_p_3d_v4i16_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [],
- "llvm.nvvm.sust.p.3d.v4i16.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">;
- def int_nvvm_sust_p_3d_v4i32_trap
- : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty,
- llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [],
- "llvm.nvvm.sust.p.3d.v4i32.trap">,
- GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">;
- def int_nvvm_rotate_b32
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable], "llvm.nvvm.rotate.b32">,
- GCCBuiltin<"__nvvm_rotate_b32">;
- def int_nvvm_rotate_b64
- : DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable], "llvm.nvvm.rotate.b64">,
- GCCBuiltin<"__nvvm_rotate_b64">;
- def int_nvvm_rotate_right_b64
- : DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty],
- [IntrNoMem, IntrSpeculatable], "llvm.nvvm.rotate.right.b64">,
- GCCBuiltin<"__nvvm_rotate_right_b64">;
- def int_nvvm_swap_lo_hi_b64
- : DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty],
- [IntrNoMem, IntrSpeculatable], "llvm.nvvm.swap.lo.hi.b64">,
- GCCBuiltin<"__nvvm_swap_lo_hi_b64">;
- // Accessing special registers.
- multiclass PTXReadSRegIntrinsic_v4i32<string regname> {
- // FIXME: Do we need the 128-bit integer type version?
- // def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem, IntrSpeculatable]>;
- // FIXME: Enable this once v4i32 support is enabled in back-end.
- // def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem, IntrSpeculatable]>;
- def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_x">;
- def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_y">;
- def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_z">;
- def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_w">;
- }
- class PTXReadSRegIntrinsic_r32<string name>
- : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>;
- class PTXReadSRegIntrinsic_r64<string name>
- : DefaultAttrsIntrinsic<[llvm_i64_ty], [], [IntrNoMem, IntrSpeculatable]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>;
- // Intrinsics to read registers with non-constant values. E.g. the values that
- // do change over the kernel lifetime. Such reads should not be CSE'd.
- class PTXReadNCSRegIntrinsic_r32<string name>
- : Intrinsic<[llvm_i32_ty], [], [IntrInaccessibleMemOnly]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>;
- class PTXReadNCSRegIntrinsic_r64<string name>
- : Intrinsic<[llvm_i64_ty], [], [IntrInaccessibleMemOnly]>,
- GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>;
- defm int_nvvm_read_ptx_sreg_tid : PTXReadSRegIntrinsic_v4i32<"tid">;
- defm int_nvvm_read_ptx_sreg_ntid : PTXReadSRegIntrinsic_v4i32<"ntid">;
- def int_nvvm_read_ptx_sreg_laneid : PTXReadSRegIntrinsic_r32<"laneid">;
- def int_nvvm_read_ptx_sreg_warpid : PTXReadSRegIntrinsic_r32<"warpid">;
- def int_nvvm_read_ptx_sreg_nwarpid : PTXReadSRegIntrinsic_r32<"nwarpid">;
- defm int_nvvm_read_ptx_sreg_ctaid : PTXReadSRegIntrinsic_v4i32<"ctaid">;
- defm int_nvvm_read_ptx_sreg_nctaid : PTXReadSRegIntrinsic_v4i32<"nctaid">;
- def int_nvvm_read_ptx_sreg_smid : PTXReadSRegIntrinsic_r32<"smid">;
- def int_nvvm_read_ptx_sreg_nsmid : PTXReadSRegIntrinsic_r32<"nsmid">;
- def int_nvvm_read_ptx_sreg_gridid : PTXReadSRegIntrinsic_r32<"gridid">;
- def int_nvvm_read_ptx_sreg_lanemask_eq :
- PTXReadSRegIntrinsic_r32<"lanemask_eq">;
- def int_nvvm_read_ptx_sreg_lanemask_le :
- PTXReadSRegIntrinsic_r32<"lanemask_le">;
- def int_nvvm_read_ptx_sreg_lanemask_lt :
- PTXReadSRegIntrinsic_r32<"lanemask_lt">;
- def int_nvvm_read_ptx_sreg_lanemask_ge :
- PTXReadSRegIntrinsic_r32<"lanemask_ge">;
- def int_nvvm_read_ptx_sreg_lanemask_gt :
- PTXReadSRegIntrinsic_r32<"lanemask_gt">;
- def int_nvvm_read_ptx_sreg_clock : PTXReadNCSRegIntrinsic_r32<"clock">;
- def int_nvvm_read_ptx_sreg_clock64 : PTXReadNCSRegIntrinsic_r64<"clock64">;
- def int_nvvm_read_ptx_sreg_pm0 : PTXReadNCSRegIntrinsic_r32<"pm0">;
- def int_nvvm_read_ptx_sreg_pm1 : PTXReadNCSRegIntrinsic_r32<"pm1">;
- def int_nvvm_read_ptx_sreg_pm2 : PTXReadNCSRegIntrinsic_r32<"pm2">;
- def int_nvvm_read_ptx_sreg_pm3 : PTXReadNCSRegIntrinsic_r32<"pm3">;
- def int_nvvm_read_ptx_sreg_warpsize : PTXReadSRegIntrinsic_r32<"warpsize">;
- //
- // SHUFFLE
- //
- // Generate intrinsics for all variants of shfl instruction.
- foreach sync = [false, true] in {
- foreach mode = ["up", "down", "bfly", "idx"] in {
- foreach type = ["i32", "f32"] in {
- foreach return_pred = [false, true] in {
- foreach i = [SHFL_INFO<sync, mode, type, return_pred>] in {
- if i.withGccBuiltin then {
- def i.Name : GCCBuiltin<i.Builtin>,
- Intrinsic<i.RetTy, i.ArgsTy,
- [IntrInaccessibleMemOnly, IntrConvergent],
- i.IntrName>;
- }
- if i.withoutGccBuiltin then {
- def i.Name : Intrinsic<i.RetTy, i.ArgsTy,
- [IntrInaccessibleMemOnly, IntrConvergent], i.IntrName>;
- }
- }
- }
- }
- }
- }
- //
- // VOTE
- //
- // vote.all pred
- def int_nvvm_vote_all :
- Intrinsic<[llvm_i1_ty], [llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.all">,
- GCCBuiltin<"__nvvm_vote_all">;
- // vote.any pred
- def int_nvvm_vote_any :
- Intrinsic<[llvm_i1_ty], [llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.any">,
- GCCBuiltin<"__nvvm_vote_any">;
- // vote.uni pred
- def int_nvvm_vote_uni :
- Intrinsic<[llvm_i1_ty], [llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.uni">,
- GCCBuiltin<"__nvvm_vote_uni">;
- // vote.ballot pred
- def int_nvvm_vote_ballot :
- Intrinsic<[llvm_i32_ty], [llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.ballot">,
- GCCBuiltin<"__nvvm_vote_ballot">;
- //
- // VOTE.SYNC
- //
- // vote.sync.all mask, pred
- def int_nvvm_vote_all_sync :
- Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.all.sync">,
- GCCBuiltin<"__nvvm_vote_all_sync">;
- // vote.sync.any mask, pred
- def int_nvvm_vote_any_sync :
- Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.any.sync">,
- GCCBuiltin<"__nvvm_vote_any_sync">;
- // vote.sync.uni mask, pred
- def int_nvvm_vote_uni_sync :
- Intrinsic<[llvm_i1_ty], [llvm_i32_ty, llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.uni.sync">,
- GCCBuiltin<"__nvvm_vote_uni_sync">;
- // vote.sync.ballot mask, pred
- def int_nvvm_vote_ballot_sync :
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i1_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.vote.ballot.sync">,
- GCCBuiltin<"__nvvm_vote_ballot_sync">;
- //
- // MATCH.SYNC
- //
- // match.any.sync.b32 mask, value
- def int_nvvm_match_any_sync_i32 :
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.any.sync.i32">,
- GCCBuiltin<"__nvvm_match_any_sync_i32">;
- // match.any.sync.b64 mask, value
- def int_nvvm_match_any_sync_i64 :
- Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i64_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.any.sync.i64">,
- GCCBuiltin<"__nvvm_match_any_sync_i64">;
- // match.all instruction have two variants -- one returns a single value, another
- // returns a pair {value, predicate}. We currently only implement the latter as
- // that's the variant exposed by CUDA API.
- // match.all.sync.b32p mask, value
- def int_nvvm_match_all_sync_i32p :
- Intrinsic<[llvm_i32_ty, llvm_i1_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.all.sync.i32p">;
- // match.all.sync.b64p mask, value
- def int_nvvm_match_all_sync_i64p :
- Intrinsic<[llvm_i64_ty, llvm_i1_ty], [llvm_i32_ty, llvm_i64_ty],
- [IntrInaccessibleMemOnly, IntrConvergent], "llvm.nvvm.match.all.sync.i64p">;
- //
- // REDUX.SYNC
- //
- // redux.sync.min.u32 dst, src, membermask;
- def int_nvvm_redux_sync_umin : GCCBuiltin<"__nvvm_redux_sync_umin">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.max.u32 dst, src, membermask;
- def int_nvvm_redux_sync_umax : GCCBuiltin<"__nvvm_redux_sync_umax">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.add.s32 dst, src, membermask;
- def int_nvvm_redux_sync_add : GCCBuiltin<"__nvvm_redux_sync_add">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.min.s32 dst, src, membermask;
- def int_nvvm_redux_sync_min : GCCBuiltin<"__nvvm_redux_sync_min">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.max.s32 dst, src, membermask;
- def int_nvvm_redux_sync_max : GCCBuiltin<"__nvvm_redux_sync_max">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.and.b32 dst, src, membermask;
- def int_nvvm_redux_sync_and : GCCBuiltin<"__nvvm_redux_sync_and">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.xor.b32 dst, src, membermask;
- def int_nvvm_redux_sync_xor : GCCBuiltin<"__nvvm_redux_sync_xor">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- // redux.sync.or.b32 dst, src, membermask;
- def int_nvvm_redux_sync_or : GCCBuiltin<"__nvvm_redux_sync_or">,
- Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
- [IntrConvergent, IntrInaccessibleMemOnly]>;
- //
- // WMMA instructions
- //
- // WMMA.LOAD
- class NVVM_WMMA_LD<WMMA_REGS Frag, string Layout, int WithStride>
- : Intrinsic<Frag.regs,
- !if(WithStride, [llvm_anyptr_ty, llvm_i32_ty], [llvm_anyptr_ty]),
- [IntrReadMem, IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>],
- WMMA_NAME_LDST<"load", Frag, Layout, WithStride>.intr>;
- // WMMA.STORE.D
- class NVVM_WMMA_ST<WMMA_REGS Frag, string Layout, int WithStride>
- : Intrinsic<[],
- !listconcat(
- [llvm_anyptr_ty],
- Frag.regs,
- !if(WithStride, [llvm_i32_ty], [])),
- [IntrWriteMem, IntrArgMemOnly, WriteOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>],
- WMMA_NAME_LDST<"store", Frag, Layout, WithStride>.intr>;
- // Create all load/store variants
- foreach layout = ["row", "col"] in {
- foreach stride = [0, 1] in {
- foreach frag = NVVM_MMA_OPS.all_ld_ops in
- if NVVM_WMMA_LDST_SUPPORTED<frag, layout>.ret then
- def WMMA_NAME_LDST<"load", frag, layout, stride>.record
- : NVVM_WMMA_LD<frag, layout, stride>;
- foreach frag = NVVM_MMA_OPS.all_st_ops in
- if NVVM_WMMA_LDST_SUPPORTED<frag, layout>.ret then
- def WMMA_NAME_LDST<"store", frag, layout, stride>.record
- : NVVM_WMMA_ST<frag, layout, stride>;
- }
- }
- // WMMA.MMA
- class NVVM_WMMA_MMA<string ALayout, string BLayout, int Satfinite, string rnd, string b1op,
- WMMA_REGS A, WMMA_REGS B,
- WMMA_REGS C, WMMA_REGS D>
- : Intrinsic<D.regs,
- !listconcat(A.regs, B.regs, C.regs),
- [IntrNoMem],
- WMMA_NAME<ALayout, BLayout, Satfinite, rnd, b1op, A, B, C, D>.llvm>;
- foreach layout_a = ["row", "col"] in {
- foreach layout_b = ["row", "col"] in {
- foreach satf = [0, 1] in {
- foreach rnd = ["", "rn", "rz", "rm", "rp"] in {
- foreach op = NVVM_MMA_OPS.all_wmma_ops in {
- foreach b1op = NVVM_MMA_B1OPS<op>.ret in {
- if NVVM_WMMA_SUPPORTED<op, layout_a, layout_b, satf, rnd>.ret then {
- def WMMA_NAME<layout_a, layout_b, satf, rnd, b1op,
- op[0], op[1], op[2], op[3]>.record
- : NVVM_WMMA_MMA<layout_a, layout_b, satf, rnd, b1op,
- op[0], op[1], op[2], op[3]>;
- }
- } // b1op
- } // op
- } // rnd
- } // satf
- } // layout_b
- } // layout_a
- // MMA
- class NVVM_MMA<string ALayout, string BLayout, int Satfinite, string b1op,
- WMMA_REGS A, WMMA_REGS B, WMMA_REGS C, WMMA_REGS D>
- : Intrinsic<D.regs,
- !listconcat(A.regs, B.regs, C.regs),
- [IntrNoMem],
- MMA_NAME<ALayout, BLayout, Satfinite, b1op, A, B, C, D>.llvm>;
- foreach layout_a = ["row", "col"] in {
- foreach layout_b = ["row", "col"] in {
- foreach satf = [0, 1] in {
- foreach op = NVVM_MMA_OPS.all_mma_ops in {
- foreach b1op = NVVM_MMA_B1OPS<op>.ret in {
- if NVVM_MMA_SUPPORTED<op, layout_a, layout_b, satf>.ret then {
- def MMA_NAME<layout_a, layout_b, satf, b1op, op[0], op[1], op[2], op[3]>.record
- : NVVM_MMA<layout_a, layout_b, satf, b1op, op[0], op[1], op[2], op[3]>;
- }
- } // b1op
- } // op
- } // satf
- } // layout_b
- } // layout_a
- // LDMATRIX
- class NVVM_LDMATRIX<WMMA_REGS Frag, int Transposed>
- : Intrinsic<Frag.regs, [llvm_anyptr_ty],
- [IntrReadMem, IntrArgMemOnly, ReadOnly<ArgIndex<0>>,
- NoCapture<ArgIndex<0>>],
- LDMATRIX_NAME<Frag, Transposed>.intr>;
- foreach transposed = [0, 1] in {
- foreach frag = NVVM_MMA_OPS.all_ldmatrix_ops in {
- if NVVM_LDMATRIX_SUPPORTED<frag>.ret then {
- def LDMATRIX_NAME<frag, transposed>.record
- : NVVM_LDMATRIX<frag, transposed>;
- }
- }
- }
- } // let TargetPrefix = "nvvm"
|