sha256-mb-x86_64.s 151 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948
  1. .text
  2. .globl _sha256_multi_block
  3. .p2align 5
  4. _sha256_multi_block:
  5. movq _OPENSSL_ia32cap_P+4(%rip),%rcx
  6. btq $61,%rcx
  7. jc _shaext_shortcut
  8. testl $268435456,%ecx
  9. jnz _avx_shortcut
  10. movq %rsp,%rax
  11. pushq %rbx
  12. pushq %rbp
  13. subq $288,%rsp
  14. andq $-256,%rsp
  15. movq %rax,272(%rsp)
  16. L$body:
  17. leaq K256+128(%rip),%rbp
  18. leaq 256(%rsp),%rbx
  19. leaq 128(%rdi),%rdi
  20. L$oop_grande:
  21. movl %edx,280(%rsp)
  22. xorl %edx,%edx
  23. movq 0(%rsi),%r8
  24. movl 8(%rsi),%ecx
  25. cmpl %edx,%ecx
  26. cmovgl %ecx,%edx
  27. testl %ecx,%ecx
  28. movl %ecx,0(%rbx)
  29. cmovleq %rbp,%r8
  30. movq 16(%rsi),%r9
  31. movl 24(%rsi),%ecx
  32. cmpl %edx,%ecx
  33. cmovgl %ecx,%edx
  34. testl %ecx,%ecx
  35. movl %ecx,4(%rbx)
  36. cmovleq %rbp,%r9
  37. movq 32(%rsi),%r10
  38. movl 40(%rsi),%ecx
  39. cmpl %edx,%ecx
  40. cmovgl %ecx,%edx
  41. testl %ecx,%ecx
  42. movl %ecx,8(%rbx)
  43. cmovleq %rbp,%r10
  44. movq 48(%rsi),%r11
  45. movl 56(%rsi),%ecx
  46. cmpl %edx,%ecx
  47. cmovgl %ecx,%edx
  48. testl %ecx,%ecx
  49. movl %ecx,12(%rbx)
  50. cmovleq %rbp,%r11
  51. testl %edx,%edx
  52. jz L$done
  53. movdqu 0-128(%rdi),%xmm8
  54. leaq 128(%rsp),%rax
  55. movdqu 32-128(%rdi),%xmm9
  56. movdqu 64-128(%rdi),%xmm10
  57. movdqu 96-128(%rdi),%xmm11
  58. movdqu 128-128(%rdi),%xmm12
  59. movdqu 160-128(%rdi),%xmm13
  60. movdqu 192-128(%rdi),%xmm14
  61. movdqu 224-128(%rdi),%xmm15
  62. movdqu L$pbswap(%rip),%xmm6
  63. jmp L$oop
  64. .p2align 5
  65. L$oop:
  66. movdqa %xmm10,%xmm4
  67. pxor %xmm9,%xmm4
  68. movd 0(%r8),%xmm5
  69. movd 0(%r9),%xmm0
  70. movd 0(%r10),%xmm1
  71. movd 0(%r11),%xmm2
  72. punpckldq %xmm1,%xmm5
  73. punpckldq %xmm2,%xmm0
  74. punpckldq %xmm0,%xmm5
  75. movdqa %xmm12,%xmm7
  76. .byte 102,15,56,0,238
  77. movdqa %xmm12,%xmm2
  78. psrld $6,%xmm7
  79. movdqa %xmm12,%xmm1
  80. pslld $7,%xmm2
  81. movdqa %xmm5,0-128(%rax)
  82. paddd %xmm15,%xmm5
  83. psrld $11,%xmm1
  84. pxor %xmm2,%xmm7
  85. pslld $21-7,%xmm2
  86. paddd -128(%rbp),%xmm5
  87. pxor %xmm1,%xmm7
  88. psrld $25-11,%xmm1
  89. movdqa %xmm12,%xmm0
  90. pxor %xmm2,%xmm7
  91. movdqa %xmm12,%xmm3
  92. pslld $26-21,%xmm2
  93. pandn %xmm14,%xmm0
  94. pand %xmm13,%xmm3
  95. pxor %xmm1,%xmm7
  96. movdqa %xmm8,%xmm1
  97. pxor %xmm2,%xmm7
  98. movdqa %xmm8,%xmm2
  99. psrld $2,%xmm1
  100. paddd %xmm7,%xmm5
  101. pxor %xmm3,%xmm0
  102. movdqa %xmm9,%xmm3
  103. movdqa %xmm8,%xmm7
  104. pslld $10,%xmm2
  105. pxor %xmm8,%xmm3
  106. psrld $13,%xmm7
  107. pxor %xmm2,%xmm1
  108. paddd %xmm0,%xmm5
  109. pslld $19-10,%xmm2
  110. pand %xmm3,%xmm4
  111. pxor %xmm7,%xmm1
  112. psrld $22-13,%xmm7
  113. pxor %xmm2,%xmm1
  114. movdqa %xmm9,%xmm15
  115. pslld $30-19,%xmm2
  116. pxor %xmm1,%xmm7
  117. pxor %xmm4,%xmm15
  118. paddd %xmm5,%xmm11
  119. pxor %xmm2,%xmm7
  120. paddd %xmm5,%xmm15
  121. paddd %xmm7,%xmm15
  122. movd 4(%r8),%xmm5
  123. movd 4(%r9),%xmm0
  124. movd 4(%r10),%xmm1
  125. movd 4(%r11),%xmm2
  126. punpckldq %xmm1,%xmm5
  127. punpckldq %xmm2,%xmm0
  128. punpckldq %xmm0,%xmm5
  129. movdqa %xmm11,%xmm7
  130. movdqa %xmm11,%xmm2
  131. .byte 102,15,56,0,238
  132. psrld $6,%xmm7
  133. movdqa %xmm11,%xmm1
  134. pslld $7,%xmm2
  135. movdqa %xmm5,16-128(%rax)
  136. paddd %xmm14,%xmm5
  137. psrld $11,%xmm1
  138. pxor %xmm2,%xmm7
  139. pslld $21-7,%xmm2
  140. paddd -96(%rbp),%xmm5
  141. pxor %xmm1,%xmm7
  142. psrld $25-11,%xmm1
  143. movdqa %xmm11,%xmm0
  144. pxor %xmm2,%xmm7
  145. movdqa %xmm11,%xmm4
  146. pslld $26-21,%xmm2
  147. pandn %xmm13,%xmm0
  148. pand %xmm12,%xmm4
  149. pxor %xmm1,%xmm7
  150. movdqa %xmm15,%xmm1
  151. pxor %xmm2,%xmm7
  152. movdqa %xmm15,%xmm2
  153. psrld $2,%xmm1
  154. paddd %xmm7,%xmm5
  155. pxor %xmm4,%xmm0
  156. movdqa %xmm8,%xmm4
  157. movdqa %xmm15,%xmm7
  158. pslld $10,%xmm2
  159. pxor %xmm15,%xmm4
  160. psrld $13,%xmm7
  161. pxor %xmm2,%xmm1
  162. paddd %xmm0,%xmm5
  163. pslld $19-10,%xmm2
  164. pand %xmm4,%xmm3
  165. pxor %xmm7,%xmm1
  166. psrld $22-13,%xmm7
  167. pxor %xmm2,%xmm1
  168. movdqa %xmm8,%xmm14
  169. pslld $30-19,%xmm2
  170. pxor %xmm1,%xmm7
  171. pxor %xmm3,%xmm14
  172. paddd %xmm5,%xmm10
  173. pxor %xmm2,%xmm7
  174. paddd %xmm5,%xmm14
  175. paddd %xmm7,%xmm14
  176. movd 8(%r8),%xmm5
  177. movd 8(%r9),%xmm0
  178. movd 8(%r10),%xmm1
  179. movd 8(%r11),%xmm2
  180. punpckldq %xmm1,%xmm5
  181. punpckldq %xmm2,%xmm0
  182. punpckldq %xmm0,%xmm5
  183. movdqa %xmm10,%xmm7
  184. .byte 102,15,56,0,238
  185. movdqa %xmm10,%xmm2
  186. psrld $6,%xmm7
  187. movdqa %xmm10,%xmm1
  188. pslld $7,%xmm2
  189. movdqa %xmm5,32-128(%rax)
  190. paddd %xmm13,%xmm5
  191. psrld $11,%xmm1
  192. pxor %xmm2,%xmm7
  193. pslld $21-7,%xmm2
  194. paddd -64(%rbp),%xmm5
  195. pxor %xmm1,%xmm7
  196. psrld $25-11,%xmm1
  197. movdqa %xmm10,%xmm0
  198. pxor %xmm2,%xmm7
  199. movdqa %xmm10,%xmm3
  200. pslld $26-21,%xmm2
  201. pandn %xmm12,%xmm0
  202. pand %xmm11,%xmm3
  203. pxor %xmm1,%xmm7
  204. movdqa %xmm14,%xmm1
  205. pxor %xmm2,%xmm7
  206. movdqa %xmm14,%xmm2
  207. psrld $2,%xmm1
  208. paddd %xmm7,%xmm5
  209. pxor %xmm3,%xmm0
  210. movdqa %xmm15,%xmm3
  211. movdqa %xmm14,%xmm7
  212. pslld $10,%xmm2
  213. pxor %xmm14,%xmm3
  214. psrld $13,%xmm7
  215. pxor %xmm2,%xmm1
  216. paddd %xmm0,%xmm5
  217. pslld $19-10,%xmm2
  218. pand %xmm3,%xmm4
  219. pxor %xmm7,%xmm1
  220. psrld $22-13,%xmm7
  221. pxor %xmm2,%xmm1
  222. movdqa %xmm15,%xmm13
  223. pslld $30-19,%xmm2
  224. pxor %xmm1,%xmm7
  225. pxor %xmm4,%xmm13
  226. paddd %xmm5,%xmm9
  227. pxor %xmm2,%xmm7
  228. paddd %xmm5,%xmm13
  229. paddd %xmm7,%xmm13
  230. movd 12(%r8),%xmm5
  231. movd 12(%r9),%xmm0
  232. movd 12(%r10),%xmm1
  233. movd 12(%r11),%xmm2
  234. punpckldq %xmm1,%xmm5
  235. punpckldq %xmm2,%xmm0
  236. punpckldq %xmm0,%xmm5
  237. movdqa %xmm9,%xmm7
  238. movdqa %xmm9,%xmm2
  239. .byte 102,15,56,0,238
  240. psrld $6,%xmm7
  241. movdqa %xmm9,%xmm1
  242. pslld $7,%xmm2
  243. movdqa %xmm5,48-128(%rax)
  244. paddd %xmm12,%xmm5
  245. psrld $11,%xmm1
  246. pxor %xmm2,%xmm7
  247. pslld $21-7,%xmm2
  248. paddd -32(%rbp),%xmm5
  249. pxor %xmm1,%xmm7
  250. psrld $25-11,%xmm1
  251. movdqa %xmm9,%xmm0
  252. pxor %xmm2,%xmm7
  253. movdqa %xmm9,%xmm4
  254. pslld $26-21,%xmm2
  255. pandn %xmm11,%xmm0
  256. pand %xmm10,%xmm4
  257. pxor %xmm1,%xmm7
  258. movdqa %xmm13,%xmm1
  259. pxor %xmm2,%xmm7
  260. movdqa %xmm13,%xmm2
  261. psrld $2,%xmm1
  262. paddd %xmm7,%xmm5
  263. pxor %xmm4,%xmm0
  264. movdqa %xmm14,%xmm4
  265. movdqa %xmm13,%xmm7
  266. pslld $10,%xmm2
  267. pxor %xmm13,%xmm4
  268. psrld $13,%xmm7
  269. pxor %xmm2,%xmm1
  270. paddd %xmm0,%xmm5
  271. pslld $19-10,%xmm2
  272. pand %xmm4,%xmm3
  273. pxor %xmm7,%xmm1
  274. psrld $22-13,%xmm7
  275. pxor %xmm2,%xmm1
  276. movdqa %xmm14,%xmm12
  277. pslld $30-19,%xmm2
  278. pxor %xmm1,%xmm7
  279. pxor %xmm3,%xmm12
  280. paddd %xmm5,%xmm8
  281. pxor %xmm2,%xmm7
  282. paddd %xmm5,%xmm12
  283. paddd %xmm7,%xmm12
  284. movd 16(%r8),%xmm5
  285. movd 16(%r9),%xmm0
  286. movd 16(%r10),%xmm1
  287. movd 16(%r11),%xmm2
  288. punpckldq %xmm1,%xmm5
  289. punpckldq %xmm2,%xmm0
  290. punpckldq %xmm0,%xmm5
  291. movdqa %xmm8,%xmm7
  292. .byte 102,15,56,0,238
  293. movdqa %xmm8,%xmm2
  294. psrld $6,%xmm7
  295. movdqa %xmm8,%xmm1
  296. pslld $7,%xmm2
  297. movdqa %xmm5,64-128(%rax)
  298. paddd %xmm11,%xmm5
  299. psrld $11,%xmm1
  300. pxor %xmm2,%xmm7
  301. pslld $21-7,%xmm2
  302. paddd 0(%rbp),%xmm5
  303. pxor %xmm1,%xmm7
  304. psrld $25-11,%xmm1
  305. movdqa %xmm8,%xmm0
  306. pxor %xmm2,%xmm7
  307. movdqa %xmm8,%xmm3
  308. pslld $26-21,%xmm2
  309. pandn %xmm10,%xmm0
  310. pand %xmm9,%xmm3
  311. pxor %xmm1,%xmm7
  312. movdqa %xmm12,%xmm1
  313. pxor %xmm2,%xmm7
  314. movdqa %xmm12,%xmm2
  315. psrld $2,%xmm1
  316. paddd %xmm7,%xmm5
  317. pxor %xmm3,%xmm0
  318. movdqa %xmm13,%xmm3
  319. movdqa %xmm12,%xmm7
  320. pslld $10,%xmm2
  321. pxor %xmm12,%xmm3
  322. psrld $13,%xmm7
  323. pxor %xmm2,%xmm1
  324. paddd %xmm0,%xmm5
  325. pslld $19-10,%xmm2
  326. pand %xmm3,%xmm4
  327. pxor %xmm7,%xmm1
  328. psrld $22-13,%xmm7
  329. pxor %xmm2,%xmm1
  330. movdqa %xmm13,%xmm11
  331. pslld $30-19,%xmm2
  332. pxor %xmm1,%xmm7
  333. pxor %xmm4,%xmm11
  334. paddd %xmm5,%xmm15
  335. pxor %xmm2,%xmm7
  336. paddd %xmm5,%xmm11
  337. paddd %xmm7,%xmm11
  338. movd 20(%r8),%xmm5
  339. movd 20(%r9),%xmm0
  340. movd 20(%r10),%xmm1
  341. movd 20(%r11),%xmm2
  342. punpckldq %xmm1,%xmm5
  343. punpckldq %xmm2,%xmm0
  344. punpckldq %xmm0,%xmm5
  345. movdqa %xmm15,%xmm7
  346. movdqa %xmm15,%xmm2
  347. .byte 102,15,56,0,238
  348. psrld $6,%xmm7
  349. movdqa %xmm15,%xmm1
  350. pslld $7,%xmm2
  351. movdqa %xmm5,80-128(%rax)
  352. paddd %xmm10,%xmm5
  353. psrld $11,%xmm1
  354. pxor %xmm2,%xmm7
  355. pslld $21-7,%xmm2
  356. paddd 32(%rbp),%xmm5
  357. pxor %xmm1,%xmm7
  358. psrld $25-11,%xmm1
  359. movdqa %xmm15,%xmm0
  360. pxor %xmm2,%xmm7
  361. movdqa %xmm15,%xmm4
  362. pslld $26-21,%xmm2
  363. pandn %xmm9,%xmm0
  364. pand %xmm8,%xmm4
  365. pxor %xmm1,%xmm7
  366. movdqa %xmm11,%xmm1
  367. pxor %xmm2,%xmm7
  368. movdqa %xmm11,%xmm2
  369. psrld $2,%xmm1
  370. paddd %xmm7,%xmm5
  371. pxor %xmm4,%xmm0
  372. movdqa %xmm12,%xmm4
  373. movdqa %xmm11,%xmm7
  374. pslld $10,%xmm2
  375. pxor %xmm11,%xmm4
  376. psrld $13,%xmm7
  377. pxor %xmm2,%xmm1
  378. paddd %xmm0,%xmm5
  379. pslld $19-10,%xmm2
  380. pand %xmm4,%xmm3
  381. pxor %xmm7,%xmm1
  382. psrld $22-13,%xmm7
  383. pxor %xmm2,%xmm1
  384. movdqa %xmm12,%xmm10
  385. pslld $30-19,%xmm2
  386. pxor %xmm1,%xmm7
  387. pxor %xmm3,%xmm10
  388. paddd %xmm5,%xmm14
  389. pxor %xmm2,%xmm7
  390. paddd %xmm5,%xmm10
  391. paddd %xmm7,%xmm10
  392. movd 24(%r8),%xmm5
  393. movd 24(%r9),%xmm0
  394. movd 24(%r10),%xmm1
  395. movd 24(%r11),%xmm2
  396. punpckldq %xmm1,%xmm5
  397. punpckldq %xmm2,%xmm0
  398. punpckldq %xmm0,%xmm5
  399. movdqa %xmm14,%xmm7
  400. .byte 102,15,56,0,238
  401. movdqa %xmm14,%xmm2
  402. psrld $6,%xmm7
  403. movdqa %xmm14,%xmm1
  404. pslld $7,%xmm2
  405. movdqa %xmm5,96-128(%rax)
  406. paddd %xmm9,%xmm5
  407. psrld $11,%xmm1
  408. pxor %xmm2,%xmm7
  409. pslld $21-7,%xmm2
  410. paddd 64(%rbp),%xmm5
  411. pxor %xmm1,%xmm7
  412. psrld $25-11,%xmm1
  413. movdqa %xmm14,%xmm0
  414. pxor %xmm2,%xmm7
  415. movdqa %xmm14,%xmm3
  416. pslld $26-21,%xmm2
  417. pandn %xmm8,%xmm0
  418. pand %xmm15,%xmm3
  419. pxor %xmm1,%xmm7
  420. movdqa %xmm10,%xmm1
  421. pxor %xmm2,%xmm7
  422. movdqa %xmm10,%xmm2
  423. psrld $2,%xmm1
  424. paddd %xmm7,%xmm5
  425. pxor %xmm3,%xmm0
  426. movdqa %xmm11,%xmm3
  427. movdqa %xmm10,%xmm7
  428. pslld $10,%xmm2
  429. pxor %xmm10,%xmm3
  430. psrld $13,%xmm7
  431. pxor %xmm2,%xmm1
  432. paddd %xmm0,%xmm5
  433. pslld $19-10,%xmm2
  434. pand %xmm3,%xmm4
  435. pxor %xmm7,%xmm1
  436. psrld $22-13,%xmm7
  437. pxor %xmm2,%xmm1
  438. movdqa %xmm11,%xmm9
  439. pslld $30-19,%xmm2
  440. pxor %xmm1,%xmm7
  441. pxor %xmm4,%xmm9
  442. paddd %xmm5,%xmm13
  443. pxor %xmm2,%xmm7
  444. paddd %xmm5,%xmm9
  445. paddd %xmm7,%xmm9
  446. movd 28(%r8),%xmm5
  447. movd 28(%r9),%xmm0
  448. movd 28(%r10),%xmm1
  449. movd 28(%r11),%xmm2
  450. punpckldq %xmm1,%xmm5
  451. punpckldq %xmm2,%xmm0
  452. punpckldq %xmm0,%xmm5
  453. movdqa %xmm13,%xmm7
  454. movdqa %xmm13,%xmm2
  455. .byte 102,15,56,0,238
  456. psrld $6,%xmm7
  457. movdqa %xmm13,%xmm1
  458. pslld $7,%xmm2
  459. movdqa %xmm5,112-128(%rax)
  460. paddd %xmm8,%xmm5
  461. psrld $11,%xmm1
  462. pxor %xmm2,%xmm7
  463. pslld $21-7,%xmm2
  464. paddd 96(%rbp),%xmm5
  465. pxor %xmm1,%xmm7
  466. psrld $25-11,%xmm1
  467. movdqa %xmm13,%xmm0
  468. pxor %xmm2,%xmm7
  469. movdqa %xmm13,%xmm4
  470. pslld $26-21,%xmm2
  471. pandn %xmm15,%xmm0
  472. pand %xmm14,%xmm4
  473. pxor %xmm1,%xmm7
  474. movdqa %xmm9,%xmm1
  475. pxor %xmm2,%xmm7
  476. movdqa %xmm9,%xmm2
  477. psrld $2,%xmm1
  478. paddd %xmm7,%xmm5
  479. pxor %xmm4,%xmm0
  480. movdqa %xmm10,%xmm4
  481. movdqa %xmm9,%xmm7
  482. pslld $10,%xmm2
  483. pxor %xmm9,%xmm4
  484. psrld $13,%xmm7
  485. pxor %xmm2,%xmm1
  486. paddd %xmm0,%xmm5
  487. pslld $19-10,%xmm2
  488. pand %xmm4,%xmm3
  489. pxor %xmm7,%xmm1
  490. psrld $22-13,%xmm7
  491. pxor %xmm2,%xmm1
  492. movdqa %xmm10,%xmm8
  493. pslld $30-19,%xmm2
  494. pxor %xmm1,%xmm7
  495. pxor %xmm3,%xmm8
  496. paddd %xmm5,%xmm12
  497. pxor %xmm2,%xmm7
  498. paddd %xmm5,%xmm8
  499. paddd %xmm7,%xmm8
  500. leaq 256(%rbp),%rbp
  501. movd 32(%r8),%xmm5
  502. movd 32(%r9),%xmm0
  503. movd 32(%r10),%xmm1
  504. movd 32(%r11),%xmm2
  505. punpckldq %xmm1,%xmm5
  506. punpckldq %xmm2,%xmm0
  507. punpckldq %xmm0,%xmm5
  508. movdqa %xmm12,%xmm7
  509. .byte 102,15,56,0,238
  510. movdqa %xmm12,%xmm2
  511. psrld $6,%xmm7
  512. movdqa %xmm12,%xmm1
  513. pslld $7,%xmm2
  514. movdqa %xmm5,128-128(%rax)
  515. paddd %xmm15,%xmm5
  516. psrld $11,%xmm1
  517. pxor %xmm2,%xmm7
  518. pslld $21-7,%xmm2
  519. paddd -128(%rbp),%xmm5
  520. pxor %xmm1,%xmm7
  521. psrld $25-11,%xmm1
  522. movdqa %xmm12,%xmm0
  523. pxor %xmm2,%xmm7
  524. movdqa %xmm12,%xmm3
  525. pslld $26-21,%xmm2
  526. pandn %xmm14,%xmm0
  527. pand %xmm13,%xmm3
  528. pxor %xmm1,%xmm7
  529. movdqa %xmm8,%xmm1
  530. pxor %xmm2,%xmm7
  531. movdqa %xmm8,%xmm2
  532. psrld $2,%xmm1
  533. paddd %xmm7,%xmm5
  534. pxor %xmm3,%xmm0
  535. movdqa %xmm9,%xmm3
  536. movdqa %xmm8,%xmm7
  537. pslld $10,%xmm2
  538. pxor %xmm8,%xmm3
  539. psrld $13,%xmm7
  540. pxor %xmm2,%xmm1
  541. paddd %xmm0,%xmm5
  542. pslld $19-10,%xmm2
  543. pand %xmm3,%xmm4
  544. pxor %xmm7,%xmm1
  545. psrld $22-13,%xmm7
  546. pxor %xmm2,%xmm1
  547. movdqa %xmm9,%xmm15
  548. pslld $30-19,%xmm2
  549. pxor %xmm1,%xmm7
  550. pxor %xmm4,%xmm15
  551. paddd %xmm5,%xmm11
  552. pxor %xmm2,%xmm7
  553. paddd %xmm5,%xmm15
  554. paddd %xmm7,%xmm15
  555. movd 36(%r8),%xmm5
  556. movd 36(%r9),%xmm0
  557. movd 36(%r10),%xmm1
  558. movd 36(%r11),%xmm2
  559. punpckldq %xmm1,%xmm5
  560. punpckldq %xmm2,%xmm0
  561. punpckldq %xmm0,%xmm5
  562. movdqa %xmm11,%xmm7
  563. movdqa %xmm11,%xmm2
  564. .byte 102,15,56,0,238
  565. psrld $6,%xmm7
  566. movdqa %xmm11,%xmm1
  567. pslld $7,%xmm2
  568. movdqa %xmm5,144-128(%rax)
  569. paddd %xmm14,%xmm5
  570. psrld $11,%xmm1
  571. pxor %xmm2,%xmm7
  572. pslld $21-7,%xmm2
  573. paddd -96(%rbp),%xmm5
  574. pxor %xmm1,%xmm7
  575. psrld $25-11,%xmm1
  576. movdqa %xmm11,%xmm0
  577. pxor %xmm2,%xmm7
  578. movdqa %xmm11,%xmm4
  579. pslld $26-21,%xmm2
  580. pandn %xmm13,%xmm0
  581. pand %xmm12,%xmm4
  582. pxor %xmm1,%xmm7
  583. movdqa %xmm15,%xmm1
  584. pxor %xmm2,%xmm7
  585. movdqa %xmm15,%xmm2
  586. psrld $2,%xmm1
  587. paddd %xmm7,%xmm5
  588. pxor %xmm4,%xmm0
  589. movdqa %xmm8,%xmm4
  590. movdqa %xmm15,%xmm7
  591. pslld $10,%xmm2
  592. pxor %xmm15,%xmm4
  593. psrld $13,%xmm7
  594. pxor %xmm2,%xmm1
  595. paddd %xmm0,%xmm5
  596. pslld $19-10,%xmm2
  597. pand %xmm4,%xmm3
  598. pxor %xmm7,%xmm1
  599. psrld $22-13,%xmm7
  600. pxor %xmm2,%xmm1
  601. movdqa %xmm8,%xmm14
  602. pslld $30-19,%xmm2
  603. pxor %xmm1,%xmm7
  604. pxor %xmm3,%xmm14
  605. paddd %xmm5,%xmm10
  606. pxor %xmm2,%xmm7
  607. paddd %xmm5,%xmm14
  608. paddd %xmm7,%xmm14
  609. movd 40(%r8),%xmm5
  610. movd 40(%r9),%xmm0
  611. movd 40(%r10),%xmm1
  612. movd 40(%r11),%xmm2
  613. punpckldq %xmm1,%xmm5
  614. punpckldq %xmm2,%xmm0
  615. punpckldq %xmm0,%xmm5
  616. movdqa %xmm10,%xmm7
  617. .byte 102,15,56,0,238
  618. movdqa %xmm10,%xmm2
  619. psrld $6,%xmm7
  620. movdqa %xmm10,%xmm1
  621. pslld $7,%xmm2
  622. movdqa %xmm5,160-128(%rax)
  623. paddd %xmm13,%xmm5
  624. psrld $11,%xmm1
  625. pxor %xmm2,%xmm7
  626. pslld $21-7,%xmm2
  627. paddd -64(%rbp),%xmm5
  628. pxor %xmm1,%xmm7
  629. psrld $25-11,%xmm1
  630. movdqa %xmm10,%xmm0
  631. pxor %xmm2,%xmm7
  632. movdqa %xmm10,%xmm3
  633. pslld $26-21,%xmm2
  634. pandn %xmm12,%xmm0
  635. pand %xmm11,%xmm3
  636. pxor %xmm1,%xmm7
  637. movdqa %xmm14,%xmm1
  638. pxor %xmm2,%xmm7
  639. movdqa %xmm14,%xmm2
  640. psrld $2,%xmm1
  641. paddd %xmm7,%xmm5
  642. pxor %xmm3,%xmm0
  643. movdqa %xmm15,%xmm3
  644. movdqa %xmm14,%xmm7
  645. pslld $10,%xmm2
  646. pxor %xmm14,%xmm3
  647. psrld $13,%xmm7
  648. pxor %xmm2,%xmm1
  649. paddd %xmm0,%xmm5
  650. pslld $19-10,%xmm2
  651. pand %xmm3,%xmm4
  652. pxor %xmm7,%xmm1
  653. psrld $22-13,%xmm7
  654. pxor %xmm2,%xmm1
  655. movdqa %xmm15,%xmm13
  656. pslld $30-19,%xmm2
  657. pxor %xmm1,%xmm7
  658. pxor %xmm4,%xmm13
  659. paddd %xmm5,%xmm9
  660. pxor %xmm2,%xmm7
  661. paddd %xmm5,%xmm13
  662. paddd %xmm7,%xmm13
  663. movd 44(%r8),%xmm5
  664. movd 44(%r9),%xmm0
  665. movd 44(%r10),%xmm1
  666. movd 44(%r11),%xmm2
  667. punpckldq %xmm1,%xmm5
  668. punpckldq %xmm2,%xmm0
  669. punpckldq %xmm0,%xmm5
  670. movdqa %xmm9,%xmm7
  671. movdqa %xmm9,%xmm2
  672. .byte 102,15,56,0,238
  673. psrld $6,%xmm7
  674. movdqa %xmm9,%xmm1
  675. pslld $7,%xmm2
  676. movdqa %xmm5,176-128(%rax)
  677. paddd %xmm12,%xmm5
  678. psrld $11,%xmm1
  679. pxor %xmm2,%xmm7
  680. pslld $21-7,%xmm2
  681. paddd -32(%rbp),%xmm5
  682. pxor %xmm1,%xmm7
  683. psrld $25-11,%xmm1
  684. movdqa %xmm9,%xmm0
  685. pxor %xmm2,%xmm7
  686. movdqa %xmm9,%xmm4
  687. pslld $26-21,%xmm2
  688. pandn %xmm11,%xmm0
  689. pand %xmm10,%xmm4
  690. pxor %xmm1,%xmm7
  691. movdqa %xmm13,%xmm1
  692. pxor %xmm2,%xmm7
  693. movdqa %xmm13,%xmm2
  694. psrld $2,%xmm1
  695. paddd %xmm7,%xmm5
  696. pxor %xmm4,%xmm0
  697. movdqa %xmm14,%xmm4
  698. movdqa %xmm13,%xmm7
  699. pslld $10,%xmm2
  700. pxor %xmm13,%xmm4
  701. psrld $13,%xmm7
  702. pxor %xmm2,%xmm1
  703. paddd %xmm0,%xmm5
  704. pslld $19-10,%xmm2
  705. pand %xmm4,%xmm3
  706. pxor %xmm7,%xmm1
  707. psrld $22-13,%xmm7
  708. pxor %xmm2,%xmm1
  709. movdqa %xmm14,%xmm12
  710. pslld $30-19,%xmm2
  711. pxor %xmm1,%xmm7
  712. pxor %xmm3,%xmm12
  713. paddd %xmm5,%xmm8
  714. pxor %xmm2,%xmm7
  715. paddd %xmm5,%xmm12
  716. paddd %xmm7,%xmm12
  717. movd 48(%r8),%xmm5
  718. movd 48(%r9),%xmm0
  719. movd 48(%r10),%xmm1
  720. movd 48(%r11),%xmm2
  721. punpckldq %xmm1,%xmm5
  722. punpckldq %xmm2,%xmm0
  723. punpckldq %xmm0,%xmm5
  724. movdqa %xmm8,%xmm7
  725. .byte 102,15,56,0,238
  726. movdqa %xmm8,%xmm2
  727. psrld $6,%xmm7
  728. movdqa %xmm8,%xmm1
  729. pslld $7,%xmm2
  730. movdqa %xmm5,192-128(%rax)
  731. paddd %xmm11,%xmm5
  732. psrld $11,%xmm1
  733. pxor %xmm2,%xmm7
  734. pslld $21-7,%xmm2
  735. paddd 0(%rbp),%xmm5
  736. pxor %xmm1,%xmm7
  737. psrld $25-11,%xmm1
  738. movdqa %xmm8,%xmm0
  739. pxor %xmm2,%xmm7
  740. movdqa %xmm8,%xmm3
  741. pslld $26-21,%xmm2
  742. pandn %xmm10,%xmm0
  743. pand %xmm9,%xmm3
  744. pxor %xmm1,%xmm7
  745. movdqa %xmm12,%xmm1
  746. pxor %xmm2,%xmm7
  747. movdqa %xmm12,%xmm2
  748. psrld $2,%xmm1
  749. paddd %xmm7,%xmm5
  750. pxor %xmm3,%xmm0
  751. movdqa %xmm13,%xmm3
  752. movdqa %xmm12,%xmm7
  753. pslld $10,%xmm2
  754. pxor %xmm12,%xmm3
  755. psrld $13,%xmm7
  756. pxor %xmm2,%xmm1
  757. paddd %xmm0,%xmm5
  758. pslld $19-10,%xmm2
  759. pand %xmm3,%xmm4
  760. pxor %xmm7,%xmm1
  761. psrld $22-13,%xmm7
  762. pxor %xmm2,%xmm1
  763. movdqa %xmm13,%xmm11
  764. pslld $30-19,%xmm2
  765. pxor %xmm1,%xmm7
  766. pxor %xmm4,%xmm11
  767. paddd %xmm5,%xmm15
  768. pxor %xmm2,%xmm7
  769. paddd %xmm5,%xmm11
  770. paddd %xmm7,%xmm11
  771. movd 52(%r8),%xmm5
  772. movd 52(%r9),%xmm0
  773. movd 52(%r10),%xmm1
  774. movd 52(%r11),%xmm2
  775. punpckldq %xmm1,%xmm5
  776. punpckldq %xmm2,%xmm0
  777. punpckldq %xmm0,%xmm5
  778. movdqa %xmm15,%xmm7
  779. movdqa %xmm15,%xmm2
  780. .byte 102,15,56,0,238
  781. psrld $6,%xmm7
  782. movdqa %xmm15,%xmm1
  783. pslld $7,%xmm2
  784. movdqa %xmm5,208-128(%rax)
  785. paddd %xmm10,%xmm5
  786. psrld $11,%xmm1
  787. pxor %xmm2,%xmm7
  788. pslld $21-7,%xmm2
  789. paddd 32(%rbp),%xmm5
  790. pxor %xmm1,%xmm7
  791. psrld $25-11,%xmm1
  792. movdqa %xmm15,%xmm0
  793. pxor %xmm2,%xmm7
  794. movdqa %xmm15,%xmm4
  795. pslld $26-21,%xmm2
  796. pandn %xmm9,%xmm0
  797. pand %xmm8,%xmm4
  798. pxor %xmm1,%xmm7
  799. movdqa %xmm11,%xmm1
  800. pxor %xmm2,%xmm7
  801. movdqa %xmm11,%xmm2
  802. psrld $2,%xmm1
  803. paddd %xmm7,%xmm5
  804. pxor %xmm4,%xmm0
  805. movdqa %xmm12,%xmm4
  806. movdqa %xmm11,%xmm7
  807. pslld $10,%xmm2
  808. pxor %xmm11,%xmm4
  809. psrld $13,%xmm7
  810. pxor %xmm2,%xmm1
  811. paddd %xmm0,%xmm5
  812. pslld $19-10,%xmm2
  813. pand %xmm4,%xmm3
  814. pxor %xmm7,%xmm1
  815. psrld $22-13,%xmm7
  816. pxor %xmm2,%xmm1
  817. movdqa %xmm12,%xmm10
  818. pslld $30-19,%xmm2
  819. pxor %xmm1,%xmm7
  820. pxor %xmm3,%xmm10
  821. paddd %xmm5,%xmm14
  822. pxor %xmm2,%xmm7
  823. paddd %xmm5,%xmm10
  824. paddd %xmm7,%xmm10
  825. movd 56(%r8),%xmm5
  826. movd 56(%r9),%xmm0
  827. movd 56(%r10),%xmm1
  828. movd 56(%r11),%xmm2
  829. punpckldq %xmm1,%xmm5
  830. punpckldq %xmm2,%xmm0
  831. punpckldq %xmm0,%xmm5
  832. movdqa %xmm14,%xmm7
  833. .byte 102,15,56,0,238
  834. movdqa %xmm14,%xmm2
  835. psrld $6,%xmm7
  836. movdqa %xmm14,%xmm1
  837. pslld $7,%xmm2
  838. movdqa %xmm5,224-128(%rax)
  839. paddd %xmm9,%xmm5
  840. psrld $11,%xmm1
  841. pxor %xmm2,%xmm7
  842. pslld $21-7,%xmm2
  843. paddd 64(%rbp),%xmm5
  844. pxor %xmm1,%xmm7
  845. psrld $25-11,%xmm1
  846. movdqa %xmm14,%xmm0
  847. pxor %xmm2,%xmm7
  848. movdqa %xmm14,%xmm3
  849. pslld $26-21,%xmm2
  850. pandn %xmm8,%xmm0
  851. pand %xmm15,%xmm3
  852. pxor %xmm1,%xmm7
  853. movdqa %xmm10,%xmm1
  854. pxor %xmm2,%xmm7
  855. movdqa %xmm10,%xmm2
  856. psrld $2,%xmm1
  857. paddd %xmm7,%xmm5
  858. pxor %xmm3,%xmm0
  859. movdqa %xmm11,%xmm3
  860. movdqa %xmm10,%xmm7
  861. pslld $10,%xmm2
  862. pxor %xmm10,%xmm3
  863. psrld $13,%xmm7
  864. pxor %xmm2,%xmm1
  865. paddd %xmm0,%xmm5
  866. pslld $19-10,%xmm2
  867. pand %xmm3,%xmm4
  868. pxor %xmm7,%xmm1
  869. psrld $22-13,%xmm7
  870. pxor %xmm2,%xmm1
  871. movdqa %xmm11,%xmm9
  872. pslld $30-19,%xmm2
  873. pxor %xmm1,%xmm7
  874. pxor %xmm4,%xmm9
  875. paddd %xmm5,%xmm13
  876. pxor %xmm2,%xmm7
  877. paddd %xmm5,%xmm9
  878. paddd %xmm7,%xmm9
  879. movd 60(%r8),%xmm5
  880. leaq 64(%r8),%r8
  881. movd 60(%r9),%xmm0
  882. leaq 64(%r9),%r9
  883. movd 60(%r10),%xmm1
  884. leaq 64(%r10),%r10
  885. movd 60(%r11),%xmm2
  886. leaq 64(%r11),%r11
  887. punpckldq %xmm1,%xmm5
  888. punpckldq %xmm2,%xmm0
  889. punpckldq %xmm0,%xmm5
  890. movdqa %xmm13,%xmm7
  891. movdqa %xmm13,%xmm2
  892. .byte 102,15,56,0,238
  893. psrld $6,%xmm7
  894. movdqa %xmm13,%xmm1
  895. pslld $7,%xmm2
  896. movdqa %xmm5,240-128(%rax)
  897. paddd %xmm8,%xmm5
  898. psrld $11,%xmm1
  899. pxor %xmm2,%xmm7
  900. pslld $21-7,%xmm2
  901. paddd 96(%rbp),%xmm5
  902. pxor %xmm1,%xmm7
  903. psrld $25-11,%xmm1
  904. movdqa %xmm13,%xmm0
  905. prefetcht0 63(%r8)
  906. pxor %xmm2,%xmm7
  907. movdqa %xmm13,%xmm4
  908. pslld $26-21,%xmm2
  909. pandn %xmm15,%xmm0
  910. pand %xmm14,%xmm4
  911. pxor %xmm1,%xmm7
  912. prefetcht0 63(%r9)
  913. movdqa %xmm9,%xmm1
  914. pxor %xmm2,%xmm7
  915. movdqa %xmm9,%xmm2
  916. psrld $2,%xmm1
  917. paddd %xmm7,%xmm5
  918. pxor %xmm4,%xmm0
  919. movdqa %xmm10,%xmm4
  920. movdqa %xmm9,%xmm7
  921. pslld $10,%xmm2
  922. pxor %xmm9,%xmm4
  923. prefetcht0 63(%r10)
  924. psrld $13,%xmm7
  925. pxor %xmm2,%xmm1
  926. paddd %xmm0,%xmm5
  927. pslld $19-10,%xmm2
  928. pand %xmm4,%xmm3
  929. pxor %xmm7,%xmm1
  930. prefetcht0 63(%r11)
  931. psrld $22-13,%xmm7
  932. pxor %xmm2,%xmm1
  933. movdqa %xmm10,%xmm8
  934. pslld $30-19,%xmm2
  935. pxor %xmm1,%xmm7
  936. pxor %xmm3,%xmm8
  937. paddd %xmm5,%xmm12
  938. pxor %xmm2,%xmm7
  939. paddd %xmm5,%xmm8
  940. paddd %xmm7,%xmm8
  941. leaq 256(%rbp),%rbp
  942. movdqu 0-128(%rax),%xmm5
  943. movl $3,%ecx
  944. jmp L$oop_16_xx
  945. .p2align 5
  946. L$oop_16_xx:
  947. movdqa 16-128(%rax),%xmm6
  948. paddd 144-128(%rax),%xmm5
  949. movdqa %xmm6,%xmm7
  950. movdqa %xmm6,%xmm1
  951. psrld $3,%xmm7
  952. movdqa %xmm6,%xmm2
  953. psrld $7,%xmm1
  954. movdqa 224-128(%rax),%xmm0
  955. pslld $14,%xmm2
  956. pxor %xmm1,%xmm7
  957. psrld $18-7,%xmm1
  958. movdqa %xmm0,%xmm3
  959. pxor %xmm2,%xmm7
  960. pslld $25-14,%xmm2
  961. pxor %xmm1,%xmm7
  962. psrld $10,%xmm0
  963. movdqa %xmm3,%xmm1
  964. psrld $17,%xmm3
  965. pxor %xmm2,%xmm7
  966. pslld $13,%xmm1
  967. paddd %xmm7,%xmm5
  968. pxor %xmm3,%xmm0
  969. psrld $19-17,%xmm3
  970. pxor %xmm1,%xmm0
  971. pslld $15-13,%xmm1
  972. pxor %xmm3,%xmm0
  973. pxor %xmm1,%xmm0
  974. paddd %xmm0,%xmm5
  975. movdqa %xmm12,%xmm7
  976. movdqa %xmm12,%xmm2
  977. psrld $6,%xmm7
  978. movdqa %xmm12,%xmm1
  979. pslld $7,%xmm2
  980. movdqa %xmm5,0-128(%rax)
  981. paddd %xmm15,%xmm5
  982. psrld $11,%xmm1
  983. pxor %xmm2,%xmm7
  984. pslld $21-7,%xmm2
  985. paddd -128(%rbp),%xmm5
  986. pxor %xmm1,%xmm7
  987. psrld $25-11,%xmm1
  988. movdqa %xmm12,%xmm0
  989. pxor %xmm2,%xmm7
  990. movdqa %xmm12,%xmm3
  991. pslld $26-21,%xmm2
  992. pandn %xmm14,%xmm0
  993. pand %xmm13,%xmm3
  994. pxor %xmm1,%xmm7
  995. movdqa %xmm8,%xmm1
  996. pxor %xmm2,%xmm7
  997. movdqa %xmm8,%xmm2
  998. psrld $2,%xmm1
  999. paddd %xmm7,%xmm5
  1000. pxor %xmm3,%xmm0
  1001. movdqa %xmm9,%xmm3
  1002. movdqa %xmm8,%xmm7
  1003. pslld $10,%xmm2
  1004. pxor %xmm8,%xmm3
  1005. psrld $13,%xmm7
  1006. pxor %xmm2,%xmm1
  1007. paddd %xmm0,%xmm5
  1008. pslld $19-10,%xmm2
  1009. pand %xmm3,%xmm4
  1010. pxor %xmm7,%xmm1
  1011. psrld $22-13,%xmm7
  1012. pxor %xmm2,%xmm1
  1013. movdqa %xmm9,%xmm15
  1014. pslld $30-19,%xmm2
  1015. pxor %xmm1,%xmm7
  1016. pxor %xmm4,%xmm15
  1017. paddd %xmm5,%xmm11
  1018. pxor %xmm2,%xmm7
  1019. paddd %xmm5,%xmm15
  1020. paddd %xmm7,%xmm15
  1021. movdqa 32-128(%rax),%xmm5
  1022. paddd 160-128(%rax),%xmm6
  1023. movdqa %xmm5,%xmm7
  1024. movdqa %xmm5,%xmm1
  1025. psrld $3,%xmm7
  1026. movdqa %xmm5,%xmm2
  1027. psrld $7,%xmm1
  1028. movdqa 240-128(%rax),%xmm0
  1029. pslld $14,%xmm2
  1030. pxor %xmm1,%xmm7
  1031. psrld $18-7,%xmm1
  1032. movdqa %xmm0,%xmm4
  1033. pxor %xmm2,%xmm7
  1034. pslld $25-14,%xmm2
  1035. pxor %xmm1,%xmm7
  1036. psrld $10,%xmm0
  1037. movdqa %xmm4,%xmm1
  1038. psrld $17,%xmm4
  1039. pxor %xmm2,%xmm7
  1040. pslld $13,%xmm1
  1041. paddd %xmm7,%xmm6
  1042. pxor %xmm4,%xmm0
  1043. psrld $19-17,%xmm4
  1044. pxor %xmm1,%xmm0
  1045. pslld $15-13,%xmm1
  1046. pxor %xmm4,%xmm0
  1047. pxor %xmm1,%xmm0
  1048. paddd %xmm0,%xmm6
  1049. movdqa %xmm11,%xmm7
  1050. movdqa %xmm11,%xmm2
  1051. psrld $6,%xmm7
  1052. movdqa %xmm11,%xmm1
  1053. pslld $7,%xmm2
  1054. movdqa %xmm6,16-128(%rax)
  1055. paddd %xmm14,%xmm6
  1056. psrld $11,%xmm1
  1057. pxor %xmm2,%xmm7
  1058. pslld $21-7,%xmm2
  1059. paddd -96(%rbp),%xmm6
  1060. pxor %xmm1,%xmm7
  1061. psrld $25-11,%xmm1
  1062. movdqa %xmm11,%xmm0
  1063. pxor %xmm2,%xmm7
  1064. movdqa %xmm11,%xmm4
  1065. pslld $26-21,%xmm2
  1066. pandn %xmm13,%xmm0
  1067. pand %xmm12,%xmm4
  1068. pxor %xmm1,%xmm7
  1069. movdqa %xmm15,%xmm1
  1070. pxor %xmm2,%xmm7
  1071. movdqa %xmm15,%xmm2
  1072. psrld $2,%xmm1
  1073. paddd %xmm7,%xmm6
  1074. pxor %xmm4,%xmm0
  1075. movdqa %xmm8,%xmm4
  1076. movdqa %xmm15,%xmm7
  1077. pslld $10,%xmm2
  1078. pxor %xmm15,%xmm4
  1079. psrld $13,%xmm7
  1080. pxor %xmm2,%xmm1
  1081. paddd %xmm0,%xmm6
  1082. pslld $19-10,%xmm2
  1083. pand %xmm4,%xmm3
  1084. pxor %xmm7,%xmm1
  1085. psrld $22-13,%xmm7
  1086. pxor %xmm2,%xmm1
  1087. movdqa %xmm8,%xmm14
  1088. pslld $30-19,%xmm2
  1089. pxor %xmm1,%xmm7
  1090. pxor %xmm3,%xmm14
  1091. paddd %xmm6,%xmm10
  1092. pxor %xmm2,%xmm7
  1093. paddd %xmm6,%xmm14
  1094. paddd %xmm7,%xmm14
  1095. movdqa 48-128(%rax),%xmm6
  1096. paddd 176-128(%rax),%xmm5
  1097. movdqa %xmm6,%xmm7
  1098. movdqa %xmm6,%xmm1
  1099. psrld $3,%xmm7
  1100. movdqa %xmm6,%xmm2
  1101. psrld $7,%xmm1
  1102. movdqa 0-128(%rax),%xmm0
  1103. pslld $14,%xmm2
  1104. pxor %xmm1,%xmm7
  1105. psrld $18-7,%xmm1
  1106. movdqa %xmm0,%xmm3
  1107. pxor %xmm2,%xmm7
  1108. pslld $25-14,%xmm2
  1109. pxor %xmm1,%xmm7
  1110. psrld $10,%xmm0
  1111. movdqa %xmm3,%xmm1
  1112. psrld $17,%xmm3
  1113. pxor %xmm2,%xmm7
  1114. pslld $13,%xmm1
  1115. paddd %xmm7,%xmm5
  1116. pxor %xmm3,%xmm0
  1117. psrld $19-17,%xmm3
  1118. pxor %xmm1,%xmm0
  1119. pslld $15-13,%xmm1
  1120. pxor %xmm3,%xmm0
  1121. pxor %xmm1,%xmm0
  1122. paddd %xmm0,%xmm5
  1123. movdqa %xmm10,%xmm7
  1124. movdqa %xmm10,%xmm2
  1125. psrld $6,%xmm7
  1126. movdqa %xmm10,%xmm1
  1127. pslld $7,%xmm2
  1128. movdqa %xmm5,32-128(%rax)
  1129. paddd %xmm13,%xmm5
  1130. psrld $11,%xmm1
  1131. pxor %xmm2,%xmm7
  1132. pslld $21-7,%xmm2
  1133. paddd -64(%rbp),%xmm5
  1134. pxor %xmm1,%xmm7
  1135. psrld $25-11,%xmm1
  1136. movdqa %xmm10,%xmm0
  1137. pxor %xmm2,%xmm7
  1138. movdqa %xmm10,%xmm3
  1139. pslld $26-21,%xmm2
  1140. pandn %xmm12,%xmm0
  1141. pand %xmm11,%xmm3
  1142. pxor %xmm1,%xmm7
  1143. movdqa %xmm14,%xmm1
  1144. pxor %xmm2,%xmm7
  1145. movdqa %xmm14,%xmm2
  1146. psrld $2,%xmm1
  1147. paddd %xmm7,%xmm5
  1148. pxor %xmm3,%xmm0
  1149. movdqa %xmm15,%xmm3
  1150. movdqa %xmm14,%xmm7
  1151. pslld $10,%xmm2
  1152. pxor %xmm14,%xmm3
  1153. psrld $13,%xmm7
  1154. pxor %xmm2,%xmm1
  1155. paddd %xmm0,%xmm5
  1156. pslld $19-10,%xmm2
  1157. pand %xmm3,%xmm4
  1158. pxor %xmm7,%xmm1
  1159. psrld $22-13,%xmm7
  1160. pxor %xmm2,%xmm1
  1161. movdqa %xmm15,%xmm13
  1162. pslld $30-19,%xmm2
  1163. pxor %xmm1,%xmm7
  1164. pxor %xmm4,%xmm13
  1165. paddd %xmm5,%xmm9
  1166. pxor %xmm2,%xmm7
  1167. paddd %xmm5,%xmm13
  1168. paddd %xmm7,%xmm13
  1169. movdqa 64-128(%rax),%xmm5
  1170. paddd 192-128(%rax),%xmm6
  1171. movdqa %xmm5,%xmm7
  1172. movdqa %xmm5,%xmm1
  1173. psrld $3,%xmm7
  1174. movdqa %xmm5,%xmm2
  1175. psrld $7,%xmm1
  1176. movdqa 16-128(%rax),%xmm0
  1177. pslld $14,%xmm2
  1178. pxor %xmm1,%xmm7
  1179. psrld $18-7,%xmm1
  1180. movdqa %xmm0,%xmm4
  1181. pxor %xmm2,%xmm7
  1182. pslld $25-14,%xmm2
  1183. pxor %xmm1,%xmm7
  1184. psrld $10,%xmm0
  1185. movdqa %xmm4,%xmm1
  1186. psrld $17,%xmm4
  1187. pxor %xmm2,%xmm7
  1188. pslld $13,%xmm1
  1189. paddd %xmm7,%xmm6
  1190. pxor %xmm4,%xmm0
  1191. psrld $19-17,%xmm4
  1192. pxor %xmm1,%xmm0
  1193. pslld $15-13,%xmm1
  1194. pxor %xmm4,%xmm0
  1195. pxor %xmm1,%xmm0
  1196. paddd %xmm0,%xmm6
  1197. movdqa %xmm9,%xmm7
  1198. movdqa %xmm9,%xmm2
  1199. psrld $6,%xmm7
  1200. movdqa %xmm9,%xmm1
  1201. pslld $7,%xmm2
  1202. movdqa %xmm6,48-128(%rax)
  1203. paddd %xmm12,%xmm6
  1204. psrld $11,%xmm1
  1205. pxor %xmm2,%xmm7
  1206. pslld $21-7,%xmm2
  1207. paddd -32(%rbp),%xmm6
  1208. pxor %xmm1,%xmm7
  1209. psrld $25-11,%xmm1
  1210. movdqa %xmm9,%xmm0
  1211. pxor %xmm2,%xmm7
  1212. movdqa %xmm9,%xmm4
  1213. pslld $26-21,%xmm2
  1214. pandn %xmm11,%xmm0
  1215. pand %xmm10,%xmm4
  1216. pxor %xmm1,%xmm7
  1217. movdqa %xmm13,%xmm1
  1218. pxor %xmm2,%xmm7
  1219. movdqa %xmm13,%xmm2
  1220. psrld $2,%xmm1
  1221. paddd %xmm7,%xmm6
  1222. pxor %xmm4,%xmm0
  1223. movdqa %xmm14,%xmm4
  1224. movdqa %xmm13,%xmm7
  1225. pslld $10,%xmm2
  1226. pxor %xmm13,%xmm4
  1227. psrld $13,%xmm7
  1228. pxor %xmm2,%xmm1
  1229. paddd %xmm0,%xmm6
  1230. pslld $19-10,%xmm2
  1231. pand %xmm4,%xmm3
  1232. pxor %xmm7,%xmm1
  1233. psrld $22-13,%xmm7
  1234. pxor %xmm2,%xmm1
  1235. movdqa %xmm14,%xmm12
  1236. pslld $30-19,%xmm2
  1237. pxor %xmm1,%xmm7
  1238. pxor %xmm3,%xmm12
  1239. paddd %xmm6,%xmm8
  1240. pxor %xmm2,%xmm7
  1241. paddd %xmm6,%xmm12
  1242. paddd %xmm7,%xmm12
  1243. movdqa 80-128(%rax),%xmm6
  1244. paddd 208-128(%rax),%xmm5
  1245. movdqa %xmm6,%xmm7
  1246. movdqa %xmm6,%xmm1
  1247. psrld $3,%xmm7
  1248. movdqa %xmm6,%xmm2
  1249. psrld $7,%xmm1
  1250. movdqa 32-128(%rax),%xmm0
  1251. pslld $14,%xmm2
  1252. pxor %xmm1,%xmm7
  1253. psrld $18-7,%xmm1
  1254. movdqa %xmm0,%xmm3
  1255. pxor %xmm2,%xmm7
  1256. pslld $25-14,%xmm2
  1257. pxor %xmm1,%xmm7
  1258. psrld $10,%xmm0
  1259. movdqa %xmm3,%xmm1
  1260. psrld $17,%xmm3
  1261. pxor %xmm2,%xmm7
  1262. pslld $13,%xmm1
  1263. paddd %xmm7,%xmm5
  1264. pxor %xmm3,%xmm0
  1265. psrld $19-17,%xmm3
  1266. pxor %xmm1,%xmm0
  1267. pslld $15-13,%xmm1
  1268. pxor %xmm3,%xmm0
  1269. pxor %xmm1,%xmm0
  1270. paddd %xmm0,%xmm5
  1271. movdqa %xmm8,%xmm7
  1272. movdqa %xmm8,%xmm2
  1273. psrld $6,%xmm7
  1274. movdqa %xmm8,%xmm1
  1275. pslld $7,%xmm2
  1276. movdqa %xmm5,64-128(%rax)
  1277. paddd %xmm11,%xmm5
  1278. psrld $11,%xmm1
  1279. pxor %xmm2,%xmm7
  1280. pslld $21-7,%xmm2
  1281. paddd 0(%rbp),%xmm5
  1282. pxor %xmm1,%xmm7
  1283. psrld $25-11,%xmm1
  1284. movdqa %xmm8,%xmm0
  1285. pxor %xmm2,%xmm7
  1286. movdqa %xmm8,%xmm3
  1287. pslld $26-21,%xmm2
  1288. pandn %xmm10,%xmm0
  1289. pand %xmm9,%xmm3
  1290. pxor %xmm1,%xmm7
  1291. movdqa %xmm12,%xmm1
  1292. pxor %xmm2,%xmm7
  1293. movdqa %xmm12,%xmm2
  1294. psrld $2,%xmm1
  1295. paddd %xmm7,%xmm5
  1296. pxor %xmm3,%xmm0
  1297. movdqa %xmm13,%xmm3
  1298. movdqa %xmm12,%xmm7
  1299. pslld $10,%xmm2
  1300. pxor %xmm12,%xmm3
  1301. psrld $13,%xmm7
  1302. pxor %xmm2,%xmm1
  1303. paddd %xmm0,%xmm5
  1304. pslld $19-10,%xmm2
  1305. pand %xmm3,%xmm4
  1306. pxor %xmm7,%xmm1
  1307. psrld $22-13,%xmm7
  1308. pxor %xmm2,%xmm1
  1309. movdqa %xmm13,%xmm11
  1310. pslld $30-19,%xmm2
  1311. pxor %xmm1,%xmm7
  1312. pxor %xmm4,%xmm11
  1313. paddd %xmm5,%xmm15
  1314. pxor %xmm2,%xmm7
  1315. paddd %xmm5,%xmm11
  1316. paddd %xmm7,%xmm11
  1317. movdqa 96-128(%rax),%xmm5
  1318. paddd 224-128(%rax),%xmm6
  1319. movdqa %xmm5,%xmm7
  1320. movdqa %xmm5,%xmm1
  1321. psrld $3,%xmm7
  1322. movdqa %xmm5,%xmm2
  1323. psrld $7,%xmm1
  1324. movdqa 48-128(%rax),%xmm0
  1325. pslld $14,%xmm2
  1326. pxor %xmm1,%xmm7
  1327. psrld $18-7,%xmm1
  1328. movdqa %xmm0,%xmm4
  1329. pxor %xmm2,%xmm7
  1330. pslld $25-14,%xmm2
  1331. pxor %xmm1,%xmm7
  1332. psrld $10,%xmm0
  1333. movdqa %xmm4,%xmm1
  1334. psrld $17,%xmm4
  1335. pxor %xmm2,%xmm7
  1336. pslld $13,%xmm1
  1337. paddd %xmm7,%xmm6
  1338. pxor %xmm4,%xmm0
  1339. psrld $19-17,%xmm4
  1340. pxor %xmm1,%xmm0
  1341. pslld $15-13,%xmm1
  1342. pxor %xmm4,%xmm0
  1343. pxor %xmm1,%xmm0
  1344. paddd %xmm0,%xmm6
  1345. movdqa %xmm15,%xmm7
  1346. movdqa %xmm15,%xmm2
  1347. psrld $6,%xmm7
  1348. movdqa %xmm15,%xmm1
  1349. pslld $7,%xmm2
  1350. movdqa %xmm6,80-128(%rax)
  1351. paddd %xmm10,%xmm6
  1352. psrld $11,%xmm1
  1353. pxor %xmm2,%xmm7
  1354. pslld $21-7,%xmm2
  1355. paddd 32(%rbp),%xmm6
  1356. pxor %xmm1,%xmm7
  1357. psrld $25-11,%xmm1
  1358. movdqa %xmm15,%xmm0
  1359. pxor %xmm2,%xmm7
  1360. movdqa %xmm15,%xmm4
  1361. pslld $26-21,%xmm2
  1362. pandn %xmm9,%xmm0
  1363. pand %xmm8,%xmm4
  1364. pxor %xmm1,%xmm7
  1365. movdqa %xmm11,%xmm1
  1366. pxor %xmm2,%xmm7
  1367. movdqa %xmm11,%xmm2
  1368. psrld $2,%xmm1
  1369. paddd %xmm7,%xmm6
  1370. pxor %xmm4,%xmm0
  1371. movdqa %xmm12,%xmm4
  1372. movdqa %xmm11,%xmm7
  1373. pslld $10,%xmm2
  1374. pxor %xmm11,%xmm4
  1375. psrld $13,%xmm7
  1376. pxor %xmm2,%xmm1
  1377. paddd %xmm0,%xmm6
  1378. pslld $19-10,%xmm2
  1379. pand %xmm4,%xmm3
  1380. pxor %xmm7,%xmm1
  1381. psrld $22-13,%xmm7
  1382. pxor %xmm2,%xmm1
  1383. movdqa %xmm12,%xmm10
  1384. pslld $30-19,%xmm2
  1385. pxor %xmm1,%xmm7
  1386. pxor %xmm3,%xmm10
  1387. paddd %xmm6,%xmm14
  1388. pxor %xmm2,%xmm7
  1389. paddd %xmm6,%xmm10
  1390. paddd %xmm7,%xmm10
  1391. movdqa 112-128(%rax),%xmm6
  1392. paddd 240-128(%rax),%xmm5
  1393. movdqa %xmm6,%xmm7
  1394. movdqa %xmm6,%xmm1
  1395. psrld $3,%xmm7
  1396. movdqa %xmm6,%xmm2
  1397. psrld $7,%xmm1
  1398. movdqa 64-128(%rax),%xmm0
  1399. pslld $14,%xmm2
  1400. pxor %xmm1,%xmm7
  1401. psrld $18-7,%xmm1
  1402. movdqa %xmm0,%xmm3
  1403. pxor %xmm2,%xmm7
  1404. pslld $25-14,%xmm2
  1405. pxor %xmm1,%xmm7
  1406. psrld $10,%xmm0
  1407. movdqa %xmm3,%xmm1
  1408. psrld $17,%xmm3
  1409. pxor %xmm2,%xmm7
  1410. pslld $13,%xmm1
  1411. paddd %xmm7,%xmm5
  1412. pxor %xmm3,%xmm0
  1413. psrld $19-17,%xmm3
  1414. pxor %xmm1,%xmm0
  1415. pslld $15-13,%xmm1
  1416. pxor %xmm3,%xmm0
  1417. pxor %xmm1,%xmm0
  1418. paddd %xmm0,%xmm5
  1419. movdqa %xmm14,%xmm7
  1420. movdqa %xmm14,%xmm2
  1421. psrld $6,%xmm7
  1422. movdqa %xmm14,%xmm1
  1423. pslld $7,%xmm2
  1424. movdqa %xmm5,96-128(%rax)
  1425. paddd %xmm9,%xmm5
  1426. psrld $11,%xmm1
  1427. pxor %xmm2,%xmm7
  1428. pslld $21-7,%xmm2
  1429. paddd 64(%rbp),%xmm5
  1430. pxor %xmm1,%xmm7
  1431. psrld $25-11,%xmm1
  1432. movdqa %xmm14,%xmm0
  1433. pxor %xmm2,%xmm7
  1434. movdqa %xmm14,%xmm3
  1435. pslld $26-21,%xmm2
  1436. pandn %xmm8,%xmm0
  1437. pand %xmm15,%xmm3
  1438. pxor %xmm1,%xmm7
  1439. movdqa %xmm10,%xmm1
  1440. pxor %xmm2,%xmm7
  1441. movdqa %xmm10,%xmm2
  1442. psrld $2,%xmm1
  1443. paddd %xmm7,%xmm5
  1444. pxor %xmm3,%xmm0
  1445. movdqa %xmm11,%xmm3
  1446. movdqa %xmm10,%xmm7
  1447. pslld $10,%xmm2
  1448. pxor %xmm10,%xmm3
  1449. psrld $13,%xmm7
  1450. pxor %xmm2,%xmm1
  1451. paddd %xmm0,%xmm5
  1452. pslld $19-10,%xmm2
  1453. pand %xmm3,%xmm4
  1454. pxor %xmm7,%xmm1
  1455. psrld $22-13,%xmm7
  1456. pxor %xmm2,%xmm1
  1457. movdqa %xmm11,%xmm9
  1458. pslld $30-19,%xmm2
  1459. pxor %xmm1,%xmm7
  1460. pxor %xmm4,%xmm9
  1461. paddd %xmm5,%xmm13
  1462. pxor %xmm2,%xmm7
  1463. paddd %xmm5,%xmm9
  1464. paddd %xmm7,%xmm9
  1465. movdqa 128-128(%rax),%xmm5
  1466. paddd 0-128(%rax),%xmm6
  1467. movdqa %xmm5,%xmm7
  1468. movdqa %xmm5,%xmm1
  1469. psrld $3,%xmm7
  1470. movdqa %xmm5,%xmm2
  1471. psrld $7,%xmm1
  1472. movdqa 80-128(%rax),%xmm0
  1473. pslld $14,%xmm2
  1474. pxor %xmm1,%xmm7
  1475. psrld $18-7,%xmm1
  1476. movdqa %xmm0,%xmm4
  1477. pxor %xmm2,%xmm7
  1478. pslld $25-14,%xmm2
  1479. pxor %xmm1,%xmm7
  1480. psrld $10,%xmm0
  1481. movdqa %xmm4,%xmm1
  1482. psrld $17,%xmm4
  1483. pxor %xmm2,%xmm7
  1484. pslld $13,%xmm1
  1485. paddd %xmm7,%xmm6
  1486. pxor %xmm4,%xmm0
  1487. psrld $19-17,%xmm4
  1488. pxor %xmm1,%xmm0
  1489. pslld $15-13,%xmm1
  1490. pxor %xmm4,%xmm0
  1491. pxor %xmm1,%xmm0
  1492. paddd %xmm0,%xmm6
  1493. movdqa %xmm13,%xmm7
  1494. movdqa %xmm13,%xmm2
  1495. psrld $6,%xmm7
  1496. movdqa %xmm13,%xmm1
  1497. pslld $7,%xmm2
  1498. movdqa %xmm6,112-128(%rax)
  1499. paddd %xmm8,%xmm6
  1500. psrld $11,%xmm1
  1501. pxor %xmm2,%xmm7
  1502. pslld $21-7,%xmm2
  1503. paddd 96(%rbp),%xmm6
  1504. pxor %xmm1,%xmm7
  1505. psrld $25-11,%xmm1
  1506. movdqa %xmm13,%xmm0
  1507. pxor %xmm2,%xmm7
  1508. movdqa %xmm13,%xmm4
  1509. pslld $26-21,%xmm2
  1510. pandn %xmm15,%xmm0
  1511. pand %xmm14,%xmm4
  1512. pxor %xmm1,%xmm7
  1513. movdqa %xmm9,%xmm1
  1514. pxor %xmm2,%xmm7
  1515. movdqa %xmm9,%xmm2
  1516. psrld $2,%xmm1
  1517. paddd %xmm7,%xmm6
  1518. pxor %xmm4,%xmm0
  1519. movdqa %xmm10,%xmm4
  1520. movdqa %xmm9,%xmm7
  1521. pslld $10,%xmm2
  1522. pxor %xmm9,%xmm4
  1523. psrld $13,%xmm7
  1524. pxor %xmm2,%xmm1
  1525. paddd %xmm0,%xmm6
  1526. pslld $19-10,%xmm2
  1527. pand %xmm4,%xmm3
  1528. pxor %xmm7,%xmm1
  1529. psrld $22-13,%xmm7
  1530. pxor %xmm2,%xmm1
  1531. movdqa %xmm10,%xmm8
  1532. pslld $30-19,%xmm2
  1533. pxor %xmm1,%xmm7
  1534. pxor %xmm3,%xmm8
  1535. paddd %xmm6,%xmm12
  1536. pxor %xmm2,%xmm7
  1537. paddd %xmm6,%xmm8
  1538. paddd %xmm7,%xmm8
  1539. leaq 256(%rbp),%rbp
  1540. movdqa 144-128(%rax),%xmm6
  1541. paddd 16-128(%rax),%xmm5
  1542. movdqa %xmm6,%xmm7
  1543. movdqa %xmm6,%xmm1
  1544. psrld $3,%xmm7
  1545. movdqa %xmm6,%xmm2
  1546. psrld $7,%xmm1
  1547. movdqa 96-128(%rax),%xmm0
  1548. pslld $14,%xmm2
  1549. pxor %xmm1,%xmm7
  1550. psrld $18-7,%xmm1
  1551. movdqa %xmm0,%xmm3
  1552. pxor %xmm2,%xmm7
  1553. pslld $25-14,%xmm2
  1554. pxor %xmm1,%xmm7
  1555. psrld $10,%xmm0
  1556. movdqa %xmm3,%xmm1
  1557. psrld $17,%xmm3
  1558. pxor %xmm2,%xmm7
  1559. pslld $13,%xmm1
  1560. paddd %xmm7,%xmm5
  1561. pxor %xmm3,%xmm0
  1562. psrld $19-17,%xmm3
  1563. pxor %xmm1,%xmm0
  1564. pslld $15-13,%xmm1
  1565. pxor %xmm3,%xmm0
  1566. pxor %xmm1,%xmm0
  1567. paddd %xmm0,%xmm5
  1568. movdqa %xmm12,%xmm7
  1569. movdqa %xmm12,%xmm2
  1570. psrld $6,%xmm7
  1571. movdqa %xmm12,%xmm1
  1572. pslld $7,%xmm2
  1573. movdqa %xmm5,128-128(%rax)
  1574. paddd %xmm15,%xmm5
  1575. psrld $11,%xmm1
  1576. pxor %xmm2,%xmm7
  1577. pslld $21-7,%xmm2
  1578. paddd -128(%rbp),%xmm5
  1579. pxor %xmm1,%xmm7
  1580. psrld $25-11,%xmm1
  1581. movdqa %xmm12,%xmm0
  1582. pxor %xmm2,%xmm7
  1583. movdqa %xmm12,%xmm3
  1584. pslld $26-21,%xmm2
  1585. pandn %xmm14,%xmm0
  1586. pand %xmm13,%xmm3
  1587. pxor %xmm1,%xmm7
  1588. movdqa %xmm8,%xmm1
  1589. pxor %xmm2,%xmm7
  1590. movdqa %xmm8,%xmm2
  1591. psrld $2,%xmm1
  1592. paddd %xmm7,%xmm5
  1593. pxor %xmm3,%xmm0
  1594. movdqa %xmm9,%xmm3
  1595. movdqa %xmm8,%xmm7
  1596. pslld $10,%xmm2
  1597. pxor %xmm8,%xmm3
  1598. psrld $13,%xmm7
  1599. pxor %xmm2,%xmm1
  1600. paddd %xmm0,%xmm5
  1601. pslld $19-10,%xmm2
  1602. pand %xmm3,%xmm4
  1603. pxor %xmm7,%xmm1
  1604. psrld $22-13,%xmm7
  1605. pxor %xmm2,%xmm1
  1606. movdqa %xmm9,%xmm15
  1607. pslld $30-19,%xmm2
  1608. pxor %xmm1,%xmm7
  1609. pxor %xmm4,%xmm15
  1610. paddd %xmm5,%xmm11
  1611. pxor %xmm2,%xmm7
  1612. paddd %xmm5,%xmm15
  1613. paddd %xmm7,%xmm15
  1614. movdqa 160-128(%rax),%xmm5
  1615. paddd 32-128(%rax),%xmm6
  1616. movdqa %xmm5,%xmm7
  1617. movdqa %xmm5,%xmm1
  1618. psrld $3,%xmm7
  1619. movdqa %xmm5,%xmm2
  1620. psrld $7,%xmm1
  1621. movdqa 112-128(%rax),%xmm0
  1622. pslld $14,%xmm2
  1623. pxor %xmm1,%xmm7
  1624. psrld $18-7,%xmm1
  1625. movdqa %xmm0,%xmm4
  1626. pxor %xmm2,%xmm7
  1627. pslld $25-14,%xmm2
  1628. pxor %xmm1,%xmm7
  1629. psrld $10,%xmm0
  1630. movdqa %xmm4,%xmm1
  1631. psrld $17,%xmm4
  1632. pxor %xmm2,%xmm7
  1633. pslld $13,%xmm1
  1634. paddd %xmm7,%xmm6
  1635. pxor %xmm4,%xmm0
  1636. psrld $19-17,%xmm4
  1637. pxor %xmm1,%xmm0
  1638. pslld $15-13,%xmm1
  1639. pxor %xmm4,%xmm0
  1640. pxor %xmm1,%xmm0
  1641. paddd %xmm0,%xmm6
  1642. movdqa %xmm11,%xmm7
  1643. movdqa %xmm11,%xmm2
  1644. psrld $6,%xmm7
  1645. movdqa %xmm11,%xmm1
  1646. pslld $7,%xmm2
  1647. movdqa %xmm6,144-128(%rax)
  1648. paddd %xmm14,%xmm6
  1649. psrld $11,%xmm1
  1650. pxor %xmm2,%xmm7
  1651. pslld $21-7,%xmm2
  1652. paddd -96(%rbp),%xmm6
  1653. pxor %xmm1,%xmm7
  1654. psrld $25-11,%xmm1
  1655. movdqa %xmm11,%xmm0
  1656. pxor %xmm2,%xmm7
  1657. movdqa %xmm11,%xmm4
  1658. pslld $26-21,%xmm2
  1659. pandn %xmm13,%xmm0
  1660. pand %xmm12,%xmm4
  1661. pxor %xmm1,%xmm7
  1662. movdqa %xmm15,%xmm1
  1663. pxor %xmm2,%xmm7
  1664. movdqa %xmm15,%xmm2
  1665. psrld $2,%xmm1
  1666. paddd %xmm7,%xmm6
  1667. pxor %xmm4,%xmm0
  1668. movdqa %xmm8,%xmm4
  1669. movdqa %xmm15,%xmm7
  1670. pslld $10,%xmm2
  1671. pxor %xmm15,%xmm4
  1672. psrld $13,%xmm7
  1673. pxor %xmm2,%xmm1
  1674. paddd %xmm0,%xmm6
  1675. pslld $19-10,%xmm2
  1676. pand %xmm4,%xmm3
  1677. pxor %xmm7,%xmm1
  1678. psrld $22-13,%xmm7
  1679. pxor %xmm2,%xmm1
  1680. movdqa %xmm8,%xmm14
  1681. pslld $30-19,%xmm2
  1682. pxor %xmm1,%xmm7
  1683. pxor %xmm3,%xmm14
  1684. paddd %xmm6,%xmm10
  1685. pxor %xmm2,%xmm7
  1686. paddd %xmm6,%xmm14
  1687. paddd %xmm7,%xmm14
  1688. movdqa 176-128(%rax),%xmm6
  1689. paddd 48-128(%rax),%xmm5
  1690. movdqa %xmm6,%xmm7
  1691. movdqa %xmm6,%xmm1
  1692. psrld $3,%xmm7
  1693. movdqa %xmm6,%xmm2
  1694. psrld $7,%xmm1
  1695. movdqa 128-128(%rax),%xmm0
  1696. pslld $14,%xmm2
  1697. pxor %xmm1,%xmm7
  1698. psrld $18-7,%xmm1
  1699. movdqa %xmm0,%xmm3
  1700. pxor %xmm2,%xmm7
  1701. pslld $25-14,%xmm2
  1702. pxor %xmm1,%xmm7
  1703. psrld $10,%xmm0
  1704. movdqa %xmm3,%xmm1
  1705. psrld $17,%xmm3
  1706. pxor %xmm2,%xmm7
  1707. pslld $13,%xmm1
  1708. paddd %xmm7,%xmm5
  1709. pxor %xmm3,%xmm0
  1710. psrld $19-17,%xmm3
  1711. pxor %xmm1,%xmm0
  1712. pslld $15-13,%xmm1
  1713. pxor %xmm3,%xmm0
  1714. pxor %xmm1,%xmm0
  1715. paddd %xmm0,%xmm5
  1716. movdqa %xmm10,%xmm7
  1717. movdqa %xmm10,%xmm2
  1718. psrld $6,%xmm7
  1719. movdqa %xmm10,%xmm1
  1720. pslld $7,%xmm2
  1721. movdqa %xmm5,160-128(%rax)
  1722. paddd %xmm13,%xmm5
  1723. psrld $11,%xmm1
  1724. pxor %xmm2,%xmm7
  1725. pslld $21-7,%xmm2
  1726. paddd -64(%rbp),%xmm5
  1727. pxor %xmm1,%xmm7
  1728. psrld $25-11,%xmm1
  1729. movdqa %xmm10,%xmm0
  1730. pxor %xmm2,%xmm7
  1731. movdqa %xmm10,%xmm3
  1732. pslld $26-21,%xmm2
  1733. pandn %xmm12,%xmm0
  1734. pand %xmm11,%xmm3
  1735. pxor %xmm1,%xmm7
  1736. movdqa %xmm14,%xmm1
  1737. pxor %xmm2,%xmm7
  1738. movdqa %xmm14,%xmm2
  1739. psrld $2,%xmm1
  1740. paddd %xmm7,%xmm5
  1741. pxor %xmm3,%xmm0
  1742. movdqa %xmm15,%xmm3
  1743. movdqa %xmm14,%xmm7
  1744. pslld $10,%xmm2
  1745. pxor %xmm14,%xmm3
  1746. psrld $13,%xmm7
  1747. pxor %xmm2,%xmm1
  1748. paddd %xmm0,%xmm5
  1749. pslld $19-10,%xmm2
  1750. pand %xmm3,%xmm4
  1751. pxor %xmm7,%xmm1
  1752. psrld $22-13,%xmm7
  1753. pxor %xmm2,%xmm1
  1754. movdqa %xmm15,%xmm13
  1755. pslld $30-19,%xmm2
  1756. pxor %xmm1,%xmm7
  1757. pxor %xmm4,%xmm13
  1758. paddd %xmm5,%xmm9
  1759. pxor %xmm2,%xmm7
  1760. paddd %xmm5,%xmm13
  1761. paddd %xmm7,%xmm13
  1762. movdqa 192-128(%rax),%xmm5
  1763. paddd 64-128(%rax),%xmm6
  1764. movdqa %xmm5,%xmm7
  1765. movdqa %xmm5,%xmm1
  1766. psrld $3,%xmm7
  1767. movdqa %xmm5,%xmm2
  1768. psrld $7,%xmm1
  1769. movdqa 144-128(%rax),%xmm0
  1770. pslld $14,%xmm2
  1771. pxor %xmm1,%xmm7
  1772. psrld $18-7,%xmm1
  1773. movdqa %xmm0,%xmm4
  1774. pxor %xmm2,%xmm7
  1775. pslld $25-14,%xmm2
  1776. pxor %xmm1,%xmm7
  1777. psrld $10,%xmm0
  1778. movdqa %xmm4,%xmm1
  1779. psrld $17,%xmm4
  1780. pxor %xmm2,%xmm7
  1781. pslld $13,%xmm1
  1782. paddd %xmm7,%xmm6
  1783. pxor %xmm4,%xmm0
  1784. psrld $19-17,%xmm4
  1785. pxor %xmm1,%xmm0
  1786. pslld $15-13,%xmm1
  1787. pxor %xmm4,%xmm0
  1788. pxor %xmm1,%xmm0
  1789. paddd %xmm0,%xmm6
  1790. movdqa %xmm9,%xmm7
  1791. movdqa %xmm9,%xmm2
  1792. psrld $6,%xmm7
  1793. movdqa %xmm9,%xmm1
  1794. pslld $7,%xmm2
  1795. movdqa %xmm6,176-128(%rax)
  1796. paddd %xmm12,%xmm6
  1797. psrld $11,%xmm1
  1798. pxor %xmm2,%xmm7
  1799. pslld $21-7,%xmm2
  1800. paddd -32(%rbp),%xmm6
  1801. pxor %xmm1,%xmm7
  1802. psrld $25-11,%xmm1
  1803. movdqa %xmm9,%xmm0
  1804. pxor %xmm2,%xmm7
  1805. movdqa %xmm9,%xmm4
  1806. pslld $26-21,%xmm2
  1807. pandn %xmm11,%xmm0
  1808. pand %xmm10,%xmm4
  1809. pxor %xmm1,%xmm7
  1810. movdqa %xmm13,%xmm1
  1811. pxor %xmm2,%xmm7
  1812. movdqa %xmm13,%xmm2
  1813. psrld $2,%xmm1
  1814. paddd %xmm7,%xmm6
  1815. pxor %xmm4,%xmm0
  1816. movdqa %xmm14,%xmm4
  1817. movdqa %xmm13,%xmm7
  1818. pslld $10,%xmm2
  1819. pxor %xmm13,%xmm4
  1820. psrld $13,%xmm7
  1821. pxor %xmm2,%xmm1
  1822. paddd %xmm0,%xmm6
  1823. pslld $19-10,%xmm2
  1824. pand %xmm4,%xmm3
  1825. pxor %xmm7,%xmm1
  1826. psrld $22-13,%xmm7
  1827. pxor %xmm2,%xmm1
  1828. movdqa %xmm14,%xmm12
  1829. pslld $30-19,%xmm2
  1830. pxor %xmm1,%xmm7
  1831. pxor %xmm3,%xmm12
  1832. paddd %xmm6,%xmm8
  1833. pxor %xmm2,%xmm7
  1834. paddd %xmm6,%xmm12
  1835. paddd %xmm7,%xmm12
  1836. movdqa 208-128(%rax),%xmm6
  1837. paddd 80-128(%rax),%xmm5
  1838. movdqa %xmm6,%xmm7
  1839. movdqa %xmm6,%xmm1
  1840. psrld $3,%xmm7
  1841. movdqa %xmm6,%xmm2
  1842. psrld $7,%xmm1
  1843. movdqa 160-128(%rax),%xmm0
  1844. pslld $14,%xmm2
  1845. pxor %xmm1,%xmm7
  1846. psrld $18-7,%xmm1
  1847. movdqa %xmm0,%xmm3
  1848. pxor %xmm2,%xmm7
  1849. pslld $25-14,%xmm2
  1850. pxor %xmm1,%xmm7
  1851. psrld $10,%xmm0
  1852. movdqa %xmm3,%xmm1
  1853. psrld $17,%xmm3
  1854. pxor %xmm2,%xmm7
  1855. pslld $13,%xmm1
  1856. paddd %xmm7,%xmm5
  1857. pxor %xmm3,%xmm0
  1858. psrld $19-17,%xmm3
  1859. pxor %xmm1,%xmm0
  1860. pslld $15-13,%xmm1
  1861. pxor %xmm3,%xmm0
  1862. pxor %xmm1,%xmm0
  1863. paddd %xmm0,%xmm5
  1864. movdqa %xmm8,%xmm7
  1865. movdqa %xmm8,%xmm2
  1866. psrld $6,%xmm7
  1867. movdqa %xmm8,%xmm1
  1868. pslld $7,%xmm2
  1869. movdqa %xmm5,192-128(%rax)
  1870. paddd %xmm11,%xmm5
  1871. psrld $11,%xmm1
  1872. pxor %xmm2,%xmm7
  1873. pslld $21-7,%xmm2
  1874. paddd 0(%rbp),%xmm5
  1875. pxor %xmm1,%xmm7
  1876. psrld $25-11,%xmm1
  1877. movdqa %xmm8,%xmm0
  1878. pxor %xmm2,%xmm7
  1879. movdqa %xmm8,%xmm3
  1880. pslld $26-21,%xmm2
  1881. pandn %xmm10,%xmm0
  1882. pand %xmm9,%xmm3
  1883. pxor %xmm1,%xmm7
  1884. movdqa %xmm12,%xmm1
  1885. pxor %xmm2,%xmm7
  1886. movdqa %xmm12,%xmm2
  1887. psrld $2,%xmm1
  1888. paddd %xmm7,%xmm5
  1889. pxor %xmm3,%xmm0
  1890. movdqa %xmm13,%xmm3
  1891. movdqa %xmm12,%xmm7
  1892. pslld $10,%xmm2
  1893. pxor %xmm12,%xmm3
  1894. psrld $13,%xmm7
  1895. pxor %xmm2,%xmm1
  1896. paddd %xmm0,%xmm5
  1897. pslld $19-10,%xmm2
  1898. pand %xmm3,%xmm4
  1899. pxor %xmm7,%xmm1
  1900. psrld $22-13,%xmm7
  1901. pxor %xmm2,%xmm1
  1902. movdqa %xmm13,%xmm11
  1903. pslld $30-19,%xmm2
  1904. pxor %xmm1,%xmm7
  1905. pxor %xmm4,%xmm11
  1906. paddd %xmm5,%xmm15
  1907. pxor %xmm2,%xmm7
  1908. paddd %xmm5,%xmm11
  1909. paddd %xmm7,%xmm11
  1910. movdqa 224-128(%rax),%xmm5
  1911. paddd 96-128(%rax),%xmm6
  1912. movdqa %xmm5,%xmm7
  1913. movdqa %xmm5,%xmm1
  1914. psrld $3,%xmm7
  1915. movdqa %xmm5,%xmm2
  1916. psrld $7,%xmm1
  1917. movdqa 176-128(%rax),%xmm0
  1918. pslld $14,%xmm2
  1919. pxor %xmm1,%xmm7
  1920. psrld $18-7,%xmm1
  1921. movdqa %xmm0,%xmm4
  1922. pxor %xmm2,%xmm7
  1923. pslld $25-14,%xmm2
  1924. pxor %xmm1,%xmm7
  1925. psrld $10,%xmm0
  1926. movdqa %xmm4,%xmm1
  1927. psrld $17,%xmm4
  1928. pxor %xmm2,%xmm7
  1929. pslld $13,%xmm1
  1930. paddd %xmm7,%xmm6
  1931. pxor %xmm4,%xmm0
  1932. psrld $19-17,%xmm4
  1933. pxor %xmm1,%xmm0
  1934. pslld $15-13,%xmm1
  1935. pxor %xmm4,%xmm0
  1936. pxor %xmm1,%xmm0
  1937. paddd %xmm0,%xmm6
  1938. movdqa %xmm15,%xmm7
  1939. movdqa %xmm15,%xmm2
  1940. psrld $6,%xmm7
  1941. movdqa %xmm15,%xmm1
  1942. pslld $7,%xmm2
  1943. movdqa %xmm6,208-128(%rax)
  1944. paddd %xmm10,%xmm6
  1945. psrld $11,%xmm1
  1946. pxor %xmm2,%xmm7
  1947. pslld $21-7,%xmm2
  1948. paddd 32(%rbp),%xmm6
  1949. pxor %xmm1,%xmm7
  1950. psrld $25-11,%xmm1
  1951. movdqa %xmm15,%xmm0
  1952. pxor %xmm2,%xmm7
  1953. movdqa %xmm15,%xmm4
  1954. pslld $26-21,%xmm2
  1955. pandn %xmm9,%xmm0
  1956. pand %xmm8,%xmm4
  1957. pxor %xmm1,%xmm7
  1958. movdqa %xmm11,%xmm1
  1959. pxor %xmm2,%xmm7
  1960. movdqa %xmm11,%xmm2
  1961. psrld $2,%xmm1
  1962. paddd %xmm7,%xmm6
  1963. pxor %xmm4,%xmm0
  1964. movdqa %xmm12,%xmm4
  1965. movdqa %xmm11,%xmm7
  1966. pslld $10,%xmm2
  1967. pxor %xmm11,%xmm4
  1968. psrld $13,%xmm7
  1969. pxor %xmm2,%xmm1
  1970. paddd %xmm0,%xmm6
  1971. pslld $19-10,%xmm2
  1972. pand %xmm4,%xmm3
  1973. pxor %xmm7,%xmm1
  1974. psrld $22-13,%xmm7
  1975. pxor %xmm2,%xmm1
  1976. movdqa %xmm12,%xmm10
  1977. pslld $30-19,%xmm2
  1978. pxor %xmm1,%xmm7
  1979. pxor %xmm3,%xmm10
  1980. paddd %xmm6,%xmm14
  1981. pxor %xmm2,%xmm7
  1982. paddd %xmm6,%xmm10
  1983. paddd %xmm7,%xmm10
  1984. movdqa 240-128(%rax),%xmm6
  1985. paddd 112-128(%rax),%xmm5
  1986. movdqa %xmm6,%xmm7
  1987. movdqa %xmm6,%xmm1
  1988. psrld $3,%xmm7
  1989. movdqa %xmm6,%xmm2
  1990. psrld $7,%xmm1
  1991. movdqa 192-128(%rax),%xmm0
  1992. pslld $14,%xmm2
  1993. pxor %xmm1,%xmm7
  1994. psrld $18-7,%xmm1
  1995. movdqa %xmm0,%xmm3
  1996. pxor %xmm2,%xmm7
  1997. pslld $25-14,%xmm2
  1998. pxor %xmm1,%xmm7
  1999. psrld $10,%xmm0
  2000. movdqa %xmm3,%xmm1
  2001. psrld $17,%xmm3
  2002. pxor %xmm2,%xmm7
  2003. pslld $13,%xmm1
  2004. paddd %xmm7,%xmm5
  2005. pxor %xmm3,%xmm0
  2006. psrld $19-17,%xmm3
  2007. pxor %xmm1,%xmm0
  2008. pslld $15-13,%xmm1
  2009. pxor %xmm3,%xmm0
  2010. pxor %xmm1,%xmm0
  2011. paddd %xmm0,%xmm5
  2012. movdqa %xmm14,%xmm7
  2013. movdqa %xmm14,%xmm2
  2014. psrld $6,%xmm7
  2015. movdqa %xmm14,%xmm1
  2016. pslld $7,%xmm2
  2017. movdqa %xmm5,224-128(%rax)
  2018. paddd %xmm9,%xmm5
  2019. psrld $11,%xmm1
  2020. pxor %xmm2,%xmm7
  2021. pslld $21-7,%xmm2
  2022. paddd 64(%rbp),%xmm5
  2023. pxor %xmm1,%xmm7
  2024. psrld $25-11,%xmm1
  2025. movdqa %xmm14,%xmm0
  2026. pxor %xmm2,%xmm7
  2027. movdqa %xmm14,%xmm3
  2028. pslld $26-21,%xmm2
  2029. pandn %xmm8,%xmm0
  2030. pand %xmm15,%xmm3
  2031. pxor %xmm1,%xmm7
  2032. movdqa %xmm10,%xmm1
  2033. pxor %xmm2,%xmm7
  2034. movdqa %xmm10,%xmm2
  2035. psrld $2,%xmm1
  2036. paddd %xmm7,%xmm5
  2037. pxor %xmm3,%xmm0
  2038. movdqa %xmm11,%xmm3
  2039. movdqa %xmm10,%xmm7
  2040. pslld $10,%xmm2
  2041. pxor %xmm10,%xmm3
  2042. psrld $13,%xmm7
  2043. pxor %xmm2,%xmm1
  2044. paddd %xmm0,%xmm5
  2045. pslld $19-10,%xmm2
  2046. pand %xmm3,%xmm4
  2047. pxor %xmm7,%xmm1
  2048. psrld $22-13,%xmm7
  2049. pxor %xmm2,%xmm1
  2050. movdqa %xmm11,%xmm9
  2051. pslld $30-19,%xmm2
  2052. pxor %xmm1,%xmm7
  2053. pxor %xmm4,%xmm9
  2054. paddd %xmm5,%xmm13
  2055. pxor %xmm2,%xmm7
  2056. paddd %xmm5,%xmm9
  2057. paddd %xmm7,%xmm9
  2058. movdqa 0-128(%rax),%xmm5
  2059. paddd 128-128(%rax),%xmm6
  2060. movdqa %xmm5,%xmm7
  2061. movdqa %xmm5,%xmm1
  2062. psrld $3,%xmm7
  2063. movdqa %xmm5,%xmm2
  2064. psrld $7,%xmm1
  2065. movdqa 208-128(%rax),%xmm0
  2066. pslld $14,%xmm2
  2067. pxor %xmm1,%xmm7
  2068. psrld $18-7,%xmm1
  2069. movdqa %xmm0,%xmm4
  2070. pxor %xmm2,%xmm7
  2071. pslld $25-14,%xmm2
  2072. pxor %xmm1,%xmm7
  2073. psrld $10,%xmm0
  2074. movdqa %xmm4,%xmm1
  2075. psrld $17,%xmm4
  2076. pxor %xmm2,%xmm7
  2077. pslld $13,%xmm1
  2078. paddd %xmm7,%xmm6
  2079. pxor %xmm4,%xmm0
  2080. psrld $19-17,%xmm4
  2081. pxor %xmm1,%xmm0
  2082. pslld $15-13,%xmm1
  2083. pxor %xmm4,%xmm0
  2084. pxor %xmm1,%xmm0
  2085. paddd %xmm0,%xmm6
  2086. movdqa %xmm13,%xmm7
  2087. movdqa %xmm13,%xmm2
  2088. psrld $6,%xmm7
  2089. movdqa %xmm13,%xmm1
  2090. pslld $7,%xmm2
  2091. movdqa %xmm6,240-128(%rax)
  2092. paddd %xmm8,%xmm6
  2093. psrld $11,%xmm1
  2094. pxor %xmm2,%xmm7
  2095. pslld $21-7,%xmm2
  2096. paddd 96(%rbp),%xmm6
  2097. pxor %xmm1,%xmm7
  2098. psrld $25-11,%xmm1
  2099. movdqa %xmm13,%xmm0
  2100. pxor %xmm2,%xmm7
  2101. movdqa %xmm13,%xmm4
  2102. pslld $26-21,%xmm2
  2103. pandn %xmm15,%xmm0
  2104. pand %xmm14,%xmm4
  2105. pxor %xmm1,%xmm7
  2106. movdqa %xmm9,%xmm1
  2107. pxor %xmm2,%xmm7
  2108. movdqa %xmm9,%xmm2
  2109. psrld $2,%xmm1
  2110. paddd %xmm7,%xmm6
  2111. pxor %xmm4,%xmm0
  2112. movdqa %xmm10,%xmm4
  2113. movdqa %xmm9,%xmm7
  2114. pslld $10,%xmm2
  2115. pxor %xmm9,%xmm4
  2116. psrld $13,%xmm7
  2117. pxor %xmm2,%xmm1
  2118. paddd %xmm0,%xmm6
  2119. pslld $19-10,%xmm2
  2120. pand %xmm4,%xmm3
  2121. pxor %xmm7,%xmm1
  2122. psrld $22-13,%xmm7
  2123. pxor %xmm2,%xmm1
  2124. movdqa %xmm10,%xmm8
  2125. pslld $30-19,%xmm2
  2126. pxor %xmm1,%xmm7
  2127. pxor %xmm3,%xmm8
  2128. paddd %xmm6,%xmm12
  2129. pxor %xmm2,%xmm7
  2130. paddd %xmm6,%xmm8
  2131. paddd %xmm7,%xmm8
  2132. leaq 256(%rbp),%rbp
  2133. decl %ecx
  2134. jnz L$oop_16_xx
  2135. movl $1,%ecx
  2136. leaq K256+128(%rip),%rbp
  2137. movdqa (%rbx),%xmm7
  2138. cmpl 0(%rbx),%ecx
  2139. pxor %xmm0,%xmm0
  2140. cmovgeq %rbp,%r8
  2141. cmpl 4(%rbx),%ecx
  2142. movdqa %xmm7,%xmm6
  2143. cmovgeq %rbp,%r9
  2144. cmpl 8(%rbx),%ecx
  2145. pcmpgtd %xmm0,%xmm6
  2146. cmovgeq %rbp,%r10
  2147. cmpl 12(%rbx),%ecx
  2148. paddd %xmm6,%xmm7
  2149. cmovgeq %rbp,%r11
  2150. movdqu 0-128(%rdi),%xmm0
  2151. pand %xmm6,%xmm8
  2152. movdqu 32-128(%rdi),%xmm1
  2153. pand %xmm6,%xmm9
  2154. movdqu 64-128(%rdi),%xmm2
  2155. pand %xmm6,%xmm10
  2156. movdqu 96-128(%rdi),%xmm5
  2157. pand %xmm6,%xmm11
  2158. paddd %xmm0,%xmm8
  2159. movdqu 128-128(%rdi),%xmm0
  2160. pand %xmm6,%xmm12
  2161. paddd %xmm1,%xmm9
  2162. movdqu 160-128(%rdi),%xmm1
  2163. pand %xmm6,%xmm13
  2164. paddd %xmm2,%xmm10
  2165. movdqu 192-128(%rdi),%xmm2
  2166. pand %xmm6,%xmm14
  2167. paddd %xmm5,%xmm11
  2168. movdqu 224-128(%rdi),%xmm5
  2169. pand %xmm6,%xmm15
  2170. paddd %xmm0,%xmm12
  2171. paddd %xmm1,%xmm13
  2172. movdqu %xmm8,0-128(%rdi)
  2173. paddd %xmm2,%xmm14
  2174. movdqu %xmm9,32-128(%rdi)
  2175. paddd %xmm5,%xmm15
  2176. movdqu %xmm10,64-128(%rdi)
  2177. movdqu %xmm11,96-128(%rdi)
  2178. movdqu %xmm12,128-128(%rdi)
  2179. movdqu %xmm13,160-128(%rdi)
  2180. movdqu %xmm14,192-128(%rdi)
  2181. movdqu %xmm15,224-128(%rdi)
  2182. movdqa %xmm7,(%rbx)
  2183. movdqa L$pbswap(%rip),%xmm6
  2184. decl %edx
  2185. jnz L$oop
  2186. movl 280(%rsp),%edx
  2187. leaq 16(%rdi),%rdi
  2188. leaq 64(%rsi),%rsi
  2189. decl %edx
  2190. jnz L$oop_grande
  2191. L$done:
  2192. movq 272(%rsp),%rax
  2193. movq -16(%rax),%rbp
  2194. movq -8(%rax),%rbx
  2195. leaq (%rax),%rsp
  2196. L$epilogue:
  2197. .byte 0xf3,0xc3
  2198. .p2align 5
  2199. sha256_multi_block_shaext:
  2200. _shaext_shortcut:
  2201. movq %rsp,%rax
  2202. pushq %rbx
  2203. pushq %rbp
  2204. subq $288,%rsp
  2205. shll $1,%edx
  2206. andq $-256,%rsp
  2207. leaq 128(%rdi),%rdi
  2208. movq %rax,272(%rsp)
  2209. L$body_shaext:
  2210. leaq 256(%rsp),%rbx
  2211. leaq K256_shaext+128(%rip),%rbp
  2212. L$oop_grande_shaext:
  2213. movl %edx,280(%rsp)
  2214. xorl %edx,%edx
  2215. movq 0(%rsi),%r8
  2216. movl 8(%rsi),%ecx
  2217. cmpl %edx,%ecx
  2218. cmovgl %ecx,%edx
  2219. testl %ecx,%ecx
  2220. movl %ecx,0(%rbx)
  2221. cmovleq %rsp,%r8
  2222. movq 16(%rsi),%r9
  2223. movl 24(%rsi),%ecx
  2224. cmpl %edx,%ecx
  2225. cmovgl %ecx,%edx
  2226. testl %ecx,%ecx
  2227. movl %ecx,4(%rbx)
  2228. cmovleq %rsp,%r9
  2229. testl %edx,%edx
  2230. jz L$done_shaext
  2231. movq 0-128(%rdi),%xmm12
  2232. movq 32-128(%rdi),%xmm4
  2233. movq 64-128(%rdi),%xmm13
  2234. movq 96-128(%rdi),%xmm5
  2235. movq 128-128(%rdi),%xmm8
  2236. movq 160-128(%rdi),%xmm9
  2237. movq 192-128(%rdi),%xmm10
  2238. movq 224-128(%rdi),%xmm11
  2239. punpckldq %xmm4,%xmm12
  2240. punpckldq %xmm5,%xmm13
  2241. punpckldq %xmm9,%xmm8
  2242. punpckldq %xmm11,%xmm10
  2243. movdqa K256_shaext-16(%rip),%xmm3
  2244. movdqa %xmm12,%xmm14
  2245. movdqa %xmm13,%xmm15
  2246. punpcklqdq %xmm8,%xmm12
  2247. punpcklqdq %xmm10,%xmm13
  2248. punpckhqdq %xmm8,%xmm14
  2249. punpckhqdq %xmm10,%xmm15
  2250. pshufd $27,%xmm12,%xmm12
  2251. pshufd $27,%xmm13,%xmm13
  2252. pshufd $27,%xmm14,%xmm14
  2253. pshufd $27,%xmm15,%xmm15
  2254. jmp L$oop_shaext
  2255. .p2align 5
  2256. L$oop_shaext:
  2257. movdqu 0(%r8),%xmm4
  2258. movdqu 0(%r9),%xmm8
  2259. movdqu 16(%r8),%xmm5
  2260. movdqu 16(%r9),%xmm9
  2261. movdqu 32(%r8),%xmm6
  2262. .byte 102,15,56,0,227
  2263. movdqu 32(%r9),%xmm10
  2264. .byte 102,68,15,56,0,195
  2265. movdqu 48(%r8),%xmm7
  2266. leaq 64(%r8),%r8
  2267. movdqu 48(%r9),%xmm11
  2268. leaq 64(%r9),%r9
  2269. movdqa 0-128(%rbp),%xmm0
  2270. .byte 102,15,56,0,235
  2271. paddd %xmm4,%xmm0
  2272. pxor %xmm12,%xmm4
  2273. movdqa %xmm0,%xmm1
  2274. movdqa 0-128(%rbp),%xmm2
  2275. .byte 102,68,15,56,0,203
  2276. paddd %xmm8,%xmm2
  2277. movdqa %xmm13,80(%rsp)
  2278. .byte 69,15,56,203,236
  2279. pxor %xmm14,%xmm8
  2280. movdqa %xmm2,%xmm0
  2281. movdqa %xmm15,112(%rsp)
  2282. .byte 69,15,56,203,254
  2283. pshufd $0x0e,%xmm1,%xmm0
  2284. pxor %xmm12,%xmm4
  2285. movdqa %xmm12,64(%rsp)
  2286. .byte 69,15,56,203,229
  2287. pshufd $0x0e,%xmm2,%xmm0
  2288. pxor %xmm14,%xmm8
  2289. movdqa %xmm14,96(%rsp)
  2290. movdqa 16-128(%rbp),%xmm1
  2291. paddd %xmm5,%xmm1
  2292. .byte 102,15,56,0,243
  2293. .byte 69,15,56,203,247
  2294. movdqa %xmm1,%xmm0
  2295. movdqa 16-128(%rbp),%xmm2
  2296. paddd %xmm9,%xmm2
  2297. .byte 69,15,56,203,236
  2298. movdqa %xmm2,%xmm0
  2299. prefetcht0 127(%r8)
  2300. .byte 102,15,56,0,251
  2301. .byte 102,68,15,56,0,211
  2302. prefetcht0 127(%r9)
  2303. .byte 69,15,56,203,254
  2304. pshufd $0x0e,%xmm1,%xmm0
  2305. .byte 102,68,15,56,0,219
  2306. .byte 15,56,204,229
  2307. .byte 69,15,56,203,229
  2308. pshufd $0x0e,%xmm2,%xmm0
  2309. movdqa 32-128(%rbp),%xmm1
  2310. paddd %xmm6,%xmm1
  2311. .byte 69,15,56,203,247
  2312. movdqa %xmm1,%xmm0
  2313. movdqa 32-128(%rbp),%xmm2
  2314. paddd %xmm10,%xmm2
  2315. .byte 69,15,56,203,236
  2316. .byte 69,15,56,204,193
  2317. movdqa %xmm2,%xmm0
  2318. movdqa %xmm7,%xmm3
  2319. .byte 69,15,56,203,254
  2320. pshufd $0x0e,%xmm1,%xmm0
  2321. .byte 102,15,58,15,222,4
  2322. paddd %xmm3,%xmm4
  2323. movdqa %xmm11,%xmm3
  2324. .byte 102,65,15,58,15,218,4
  2325. .byte 15,56,204,238
  2326. .byte 69,15,56,203,229
  2327. pshufd $0x0e,%xmm2,%xmm0
  2328. movdqa 48-128(%rbp),%xmm1
  2329. paddd %xmm7,%xmm1
  2330. .byte 69,15,56,203,247
  2331. .byte 69,15,56,204,202
  2332. movdqa %xmm1,%xmm0
  2333. movdqa 48-128(%rbp),%xmm2
  2334. paddd %xmm3,%xmm8
  2335. paddd %xmm11,%xmm2
  2336. .byte 15,56,205,231
  2337. .byte 69,15,56,203,236
  2338. movdqa %xmm2,%xmm0
  2339. movdqa %xmm4,%xmm3
  2340. .byte 102,15,58,15,223,4
  2341. .byte 69,15,56,203,254
  2342. .byte 69,15,56,205,195
  2343. pshufd $0x0e,%xmm1,%xmm0
  2344. paddd %xmm3,%xmm5
  2345. movdqa %xmm8,%xmm3
  2346. .byte 102,65,15,58,15,219,4
  2347. .byte 15,56,204,247
  2348. .byte 69,15,56,203,229
  2349. pshufd $0x0e,%xmm2,%xmm0
  2350. movdqa 64-128(%rbp),%xmm1
  2351. paddd %xmm4,%xmm1
  2352. .byte 69,15,56,203,247
  2353. .byte 69,15,56,204,211
  2354. movdqa %xmm1,%xmm0
  2355. movdqa 64-128(%rbp),%xmm2
  2356. paddd %xmm3,%xmm9
  2357. paddd %xmm8,%xmm2
  2358. .byte 15,56,205,236
  2359. .byte 69,15,56,203,236
  2360. movdqa %xmm2,%xmm0
  2361. movdqa %xmm5,%xmm3
  2362. .byte 102,15,58,15,220,4
  2363. .byte 69,15,56,203,254
  2364. .byte 69,15,56,205,200
  2365. pshufd $0x0e,%xmm1,%xmm0
  2366. paddd %xmm3,%xmm6
  2367. movdqa %xmm9,%xmm3
  2368. .byte 102,65,15,58,15,216,4
  2369. .byte 15,56,204,252
  2370. .byte 69,15,56,203,229
  2371. pshufd $0x0e,%xmm2,%xmm0
  2372. movdqa 80-128(%rbp),%xmm1
  2373. paddd %xmm5,%xmm1
  2374. .byte 69,15,56,203,247
  2375. .byte 69,15,56,204,216
  2376. movdqa %xmm1,%xmm0
  2377. movdqa 80-128(%rbp),%xmm2
  2378. paddd %xmm3,%xmm10
  2379. paddd %xmm9,%xmm2
  2380. .byte 15,56,205,245
  2381. .byte 69,15,56,203,236
  2382. movdqa %xmm2,%xmm0
  2383. movdqa %xmm6,%xmm3
  2384. .byte 102,15,58,15,221,4
  2385. .byte 69,15,56,203,254
  2386. .byte 69,15,56,205,209
  2387. pshufd $0x0e,%xmm1,%xmm0
  2388. paddd %xmm3,%xmm7
  2389. movdqa %xmm10,%xmm3
  2390. .byte 102,65,15,58,15,217,4
  2391. .byte 15,56,204,229
  2392. .byte 69,15,56,203,229
  2393. pshufd $0x0e,%xmm2,%xmm0
  2394. movdqa 96-128(%rbp),%xmm1
  2395. paddd %xmm6,%xmm1
  2396. .byte 69,15,56,203,247
  2397. .byte 69,15,56,204,193
  2398. movdqa %xmm1,%xmm0
  2399. movdqa 96-128(%rbp),%xmm2
  2400. paddd %xmm3,%xmm11
  2401. paddd %xmm10,%xmm2
  2402. .byte 15,56,205,254
  2403. .byte 69,15,56,203,236
  2404. movdqa %xmm2,%xmm0
  2405. movdqa %xmm7,%xmm3
  2406. .byte 102,15,58,15,222,4
  2407. .byte 69,15,56,203,254
  2408. .byte 69,15,56,205,218
  2409. pshufd $0x0e,%xmm1,%xmm0
  2410. paddd %xmm3,%xmm4
  2411. movdqa %xmm11,%xmm3
  2412. .byte 102,65,15,58,15,218,4
  2413. .byte 15,56,204,238
  2414. .byte 69,15,56,203,229
  2415. pshufd $0x0e,%xmm2,%xmm0
  2416. movdqa 112-128(%rbp),%xmm1
  2417. paddd %xmm7,%xmm1
  2418. .byte 69,15,56,203,247
  2419. .byte 69,15,56,204,202
  2420. movdqa %xmm1,%xmm0
  2421. movdqa 112-128(%rbp),%xmm2
  2422. paddd %xmm3,%xmm8
  2423. paddd %xmm11,%xmm2
  2424. .byte 15,56,205,231
  2425. .byte 69,15,56,203,236
  2426. movdqa %xmm2,%xmm0
  2427. movdqa %xmm4,%xmm3
  2428. .byte 102,15,58,15,223,4
  2429. .byte 69,15,56,203,254
  2430. .byte 69,15,56,205,195
  2431. pshufd $0x0e,%xmm1,%xmm0
  2432. paddd %xmm3,%xmm5
  2433. movdqa %xmm8,%xmm3
  2434. .byte 102,65,15,58,15,219,4
  2435. .byte 15,56,204,247
  2436. .byte 69,15,56,203,229
  2437. pshufd $0x0e,%xmm2,%xmm0
  2438. movdqa 128-128(%rbp),%xmm1
  2439. paddd %xmm4,%xmm1
  2440. .byte 69,15,56,203,247
  2441. .byte 69,15,56,204,211
  2442. movdqa %xmm1,%xmm0
  2443. movdqa 128-128(%rbp),%xmm2
  2444. paddd %xmm3,%xmm9
  2445. paddd %xmm8,%xmm2
  2446. .byte 15,56,205,236
  2447. .byte 69,15,56,203,236
  2448. movdqa %xmm2,%xmm0
  2449. movdqa %xmm5,%xmm3
  2450. .byte 102,15,58,15,220,4
  2451. .byte 69,15,56,203,254
  2452. .byte 69,15,56,205,200
  2453. pshufd $0x0e,%xmm1,%xmm0
  2454. paddd %xmm3,%xmm6
  2455. movdqa %xmm9,%xmm3
  2456. .byte 102,65,15,58,15,216,4
  2457. .byte 15,56,204,252
  2458. .byte 69,15,56,203,229
  2459. pshufd $0x0e,%xmm2,%xmm0
  2460. movdqa 144-128(%rbp),%xmm1
  2461. paddd %xmm5,%xmm1
  2462. .byte 69,15,56,203,247
  2463. .byte 69,15,56,204,216
  2464. movdqa %xmm1,%xmm0
  2465. movdqa 144-128(%rbp),%xmm2
  2466. paddd %xmm3,%xmm10
  2467. paddd %xmm9,%xmm2
  2468. .byte 15,56,205,245
  2469. .byte 69,15,56,203,236
  2470. movdqa %xmm2,%xmm0
  2471. movdqa %xmm6,%xmm3
  2472. .byte 102,15,58,15,221,4
  2473. .byte 69,15,56,203,254
  2474. .byte 69,15,56,205,209
  2475. pshufd $0x0e,%xmm1,%xmm0
  2476. paddd %xmm3,%xmm7
  2477. movdqa %xmm10,%xmm3
  2478. .byte 102,65,15,58,15,217,4
  2479. .byte 15,56,204,229
  2480. .byte 69,15,56,203,229
  2481. pshufd $0x0e,%xmm2,%xmm0
  2482. movdqa 160-128(%rbp),%xmm1
  2483. paddd %xmm6,%xmm1
  2484. .byte 69,15,56,203,247
  2485. .byte 69,15,56,204,193
  2486. movdqa %xmm1,%xmm0
  2487. movdqa 160-128(%rbp),%xmm2
  2488. paddd %xmm3,%xmm11
  2489. paddd %xmm10,%xmm2
  2490. .byte 15,56,205,254
  2491. .byte 69,15,56,203,236
  2492. movdqa %xmm2,%xmm0
  2493. movdqa %xmm7,%xmm3
  2494. .byte 102,15,58,15,222,4
  2495. .byte 69,15,56,203,254
  2496. .byte 69,15,56,205,218
  2497. pshufd $0x0e,%xmm1,%xmm0
  2498. paddd %xmm3,%xmm4
  2499. movdqa %xmm11,%xmm3
  2500. .byte 102,65,15,58,15,218,4
  2501. .byte 15,56,204,238
  2502. .byte 69,15,56,203,229
  2503. pshufd $0x0e,%xmm2,%xmm0
  2504. movdqa 176-128(%rbp),%xmm1
  2505. paddd %xmm7,%xmm1
  2506. .byte 69,15,56,203,247
  2507. .byte 69,15,56,204,202
  2508. movdqa %xmm1,%xmm0
  2509. movdqa 176-128(%rbp),%xmm2
  2510. paddd %xmm3,%xmm8
  2511. paddd %xmm11,%xmm2
  2512. .byte 15,56,205,231
  2513. .byte 69,15,56,203,236
  2514. movdqa %xmm2,%xmm0
  2515. movdqa %xmm4,%xmm3
  2516. .byte 102,15,58,15,223,4
  2517. .byte 69,15,56,203,254
  2518. .byte 69,15,56,205,195
  2519. pshufd $0x0e,%xmm1,%xmm0
  2520. paddd %xmm3,%xmm5
  2521. movdqa %xmm8,%xmm3
  2522. .byte 102,65,15,58,15,219,4
  2523. .byte 15,56,204,247
  2524. .byte 69,15,56,203,229
  2525. pshufd $0x0e,%xmm2,%xmm0
  2526. movdqa 192-128(%rbp),%xmm1
  2527. paddd %xmm4,%xmm1
  2528. .byte 69,15,56,203,247
  2529. .byte 69,15,56,204,211
  2530. movdqa %xmm1,%xmm0
  2531. movdqa 192-128(%rbp),%xmm2
  2532. paddd %xmm3,%xmm9
  2533. paddd %xmm8,%xmm2
  2534. .byte 15,56,205,236
  2535. .byte 69,15,56,203,236
  2536. movdqa %xmm2,%xmm0
  2537. movdqa %xmm5,%xmm3
  2538. .byte 102,15,58,15,220,4
  2539. .byte 69,15,56,203,254
  2540. .byte 69,15,56,205,200
  2541. pshufd $0x0e,%xmm1,%xmm0
  2542. paddd %xmm3,%xmm6
  2543. movdqa %xmm9,%xmm3
  2544. .byte 102,65,15,58,15,216,4
  2545. .byte 15,56,204,252
  2546. .byte 69,15,56,203,229
  2547. pshufd $0x0e,%xmm2,%xmm0
  2548. movdqa 208-128(%rbp),%xmm1
  2549. paddd %xmm5,%xmm1
  2550. .byte 69,15,56,203,247
  2551. .byte 69,15,56,204,216
  2552. movdqa %xmm1,%xmm0
  2553. movdqa 208-128(%rbp),%xmm2
  2554. paddd %xmm3,%xmm10
  2555. paddd %xmm9,%xmm2
  2556. .byte 15,56,205,245
  2557. .byte 69,15,56,203,236
  2558. movdqa %xmm2,%xmm0
  2559. movdqa %xmm6,%xmm3
  2560. .byte 102,15,58,15,221,4
  2561. .byte 69,15,56,203,254
  2562. .byte 69,15,56,205,209
  2563. pshufd $0x0e,%xmm1,%xmm0
  2564. paddd %xmm3,%xmm7
  2565. movdqa %xmm10,%xmm3
  2566. .byte 102,65,15,58,15,217,4
  2567. nop
  2568. .byte 69,15,56,203,229
  2569. pshufd $0x0e,%xmm2,%xmm0
  2570. movdqa 224-128(%rbp),%xmm1
  2571. paddd %xmm6,%xmm1
  2572. .byte 69,15,56,203,247
  2573. movdqa %xmm1,%xmm0
  2574. movdqa 224-128(%rbp),%xmm2
  2575. paddd %xmm3,%xmm11
  2576. paddd %xmm10,%xmm2
  2577. .byte 15,56,205,254
  2578. nop
  2579. .byte 69,15,56,203,236
  2580. movdqa %xmm2,%xmm0
  2581. movl $1,%ecx
  2582. pxor %xmm6,%xmm6
  2583. .byte 69,15,56,203,254
  2584. .byte 69,15,56,205,218
  2585. pshufd $0x0e,%xmm1,%xmm0
  2586. movdqa 240-128(%rbp),%xmm1
  2587. paddd %xmm7,%xmm1
  2588. movq (%rbx),%xmm7
  2589. nop
  2590. .byte 69,15,56,203,229
  2591. pshufd $0x0e,%xmm2,%xmm0
  2592. movdqa 240-128(%rbp),%xmm2
  2593. paddd %xmm11,%xmm2
  2594. .byte 69,15,56,203,247
  2595. movdqa %xmm1,%xmm0
  2596. cmpl 0(%rbx),%ecx
  2597. cmovgeq %rsp,%r8
  2598. cmpl 4(%rbx),%ecx
  2599. cmovgeq %rsp,%r9
  2600. pshufd $0x00,%xmm7,%xmm9
  2601. .byte 69,15,56,203,236
  2602. movdqa %xmm2,%xmm0
  2603. pshufd $0x55,%xmm7,%xmm10
  2604. movdqa %xmm7,%xmm11
  2605. .byte 69,15,56,203,254
  2606. pshufd $0x0e,%xmm1,%xmm0
  2607. pcmpgtd %xmm6,%xmm9
  2608. pcmpgtd %xmm6,%xmm10
  2609. .byte 69,15,56,203,229
  2610. pshufd $0x0e,%xmm2,%xmm0
  2611. pcmpgtd %xmm6,%xmm11
  2612. movdqa K256_shaext-16(%rip),%xmm3
  2613. .byte 69,15,56,203,247
  2614. pand %xmm9,%xmm13
  2615. pand %xmm10,%xmm15
  2616. pand %xmm9,%xmm12
  2617. pand %xmm10,%xmm14
  2618. paddd %xmm7,%xmm11
  2619. paddd 80(%rsp),%xmm13
  2620. paddd 112(%rsp),%xmm15
  2621. paddd 64(%rsp),%xmm12
  2622. paddd 96(%rsp),%xmm14
  2623. movq %xmm11,(%rbx)
  2624. decl %edx
  2625. jnz L$oop_shaext
  2626. movl 280(%rsp),%edx
  2627. pshufd $27,%xmm12,%xmm12
  2628. pshufd $27,%xmm13,%xmm13
  2629. pshufd $27,%xmm14,%xmm14
  2630. pshufd $27,%xmm15,%xmm15
  2631. movdqa %xmm12,%xmm5
  2632. movdqa %xmm13,%xmm6
  2633. punpckldq %xmm14,%xmm12
  2634. punpckhdq %xmm14,%xmm5
  2635. punpckldq %xmm15,%xmm13
  2636. punpckhdq %xmm15,%xmm6
  2637. movq %xmm12,0-128(%rdi)
  2638. psrldq $8,%xmm12
  2639. movq %xmm5,128-128(%rdi)
  2640. psrldq $8,%xmm5
  2641. movq %xmm12,32-128(%rdi)
  2642. movq %xmm5,160-128(%rdi)
  2643. movq %xmm13,64-128(%rdi)
  2644. psrldq $8,%xmm13
  2645. movq %xmm6,192-128(%rdi)
  2646. psrldq $8,%xmm6
  2647. movq %xmm13,96-128(%rdi)
  2648. movq %xmm6,224-128(%rdi)
  2649. leaq 8(%rdi),%rdi
  2650. leaq 32(%rsi),%rsi
  2651. decl %edx
  2652. jnz L$oop_grande_shaext
  2653. L$done_shaext:
  2654. movq -16(%rax),%rbp
  2655. movq -8(%rax),%rbx
  2656. leaq (%rax),%rsp
  2657. L$epilogue_shaext:
  2658. .byte 0xf3,0xc3
  2659. .p2align 5
  2660. sha256_multi_block_avx:
  2661. _avx_shortcut:
  2662. shrq $32,%rcx
  2663. cmpl $2,%edx
  2664. jb L$avx
  2665. testl $32,%ecx
  2666. jnz _avx2_shortcut
  2667. jmp L$avx
  2668. .p2align 5
  2669. L$avx:
  2670. movq %rsp,%rax
  2671. pushq %rbx
  2672. pushq %rbp
  2673. subq $288,%rsp
  2674. andq $-256,%rsp
  2675. movq %rax,272(%rsp)
  2676. L$body_avx:
  2677. leaq K256+128(%rip),%rbp
  2678. leaq 256(%rsp),%rbx
  2679. leaq 128(%rdi),%rdi
  2680. L$oop_grande_avx:
  2681. movl %edx,280(%rsp)
  2682. xorl %edx,%edx
  2683. movq 0(%rsi),%r8
  2684. movl 8(%rsi),%ecx
  2685. cmpl %edx,%ecx
  2686. cmovgl %ecx,%edx
  2687. testl %ecx,%ecx
  2688. movl %ecx,0(%rbx)
  2689. cmovleq %rbp,%r8
  2690. movq 16(%rsi),%r9
  2691. movl 24(%rsi),%ecx
  2692. cmpl %edx,%ecx
  2693. cmovgl %ecx,%edx
  2694. testl %ecx,%ecx
  2695. movl %ecx,4(%rbx)
  2696. cmovleq %rbp,%r9
  2697. movq 32(%rsi),%r10
  2698. movl 40(%rsi),%ecx
  2699. cmpl %edx,%ecx
  2700. cmovgl %ecx,%edx
  2701. testl %ecx,%ecx
  2702. movl %ecx,8(%rbx)
  2703. cmovleq %rbp,%r10
  2704. movq 48(%rsi),%r11
  2705. movl 56(%rsi),%ecx
  2706. cmpl %edx,%ecx
  2707. cmovgl %ecx,%edx
  2708. testl %ecx,%ecx
  2709. movl %ecx,12(%rbx)
  2710. cmovleq %rbp,%r11
  2711. testl %edx,%edx
  2712. jz L$done_avx
  2713. vmovdqu 0-128(%rdi),%xmm8
  2714. leaq 128(%rsp),%rax
  2715. vmovdqu 32-128(%rdi),%xmm9
  2716. vmovdqu 64-128(%rdi),%xmm10
  2717. vmovdqu 96-128(%rdi),%xmm11
  2718. vmovdqu 128-128(%rdi),%xmm12
  2719. vmovdqu 160-128(%rdi),%xmm13
  2720. vmovdqu 192-128(%rdi),%xmm14
  2721. vmovdqu 224-128(%rdi),%xmm15
  2722. vmovdqu L$pbswap(%rip),%xmm6
  2723. jmp L$oop_avx
  2724. .p2align 5
  2725. L$oop_avx:
  2726. vpxor %xmm9,%xmm10,%xmm4
  2727. vmovd 0(%r8),%xmm5
  2728. vmovd 0(%r9),%xmm0
  2729. vpinsrd $1,0(%r10),%xmm5,%xmm5
  2730. vpinsrd $1,0(%r11),%xmm0,%xmm0
  2731. vpunpckldq %xmm0,%xmm5,%xmm5
  2732. vpshufb %xmm6,%xmm5,%xmm5
  2733. vpsrld $6,%xmm12,%xmm7
  2734. vpslld $26,%xmm12,%xmm2
  2735. vmovdqu %xmm5,0-128(%rax)
  2736. vpaddd %xmm15,%xmm5,%xmm5
  2737. vpsrld $11,%xmm12,%xmm1
  2738. vpxor %xmm2,%xmm7,%xmm7
  2739. vpslld $21,%xmm12,%xmm2
  2740. vpaddd -128(%rbp),%xmm5,%xmm5
  2741. vpxor %xmm1,%xmm7,%xmm7
  2742. vpsrld $25,%xmm12,%xmm1
  2743. vpxor %xmm2,%xmm7,%xmm7
  2744. vpslld $7,%xmm12,%xmm2
  2745. vpandn %xmm14,%xmm12,%xmm0
  2746. vpand %xmm13,%xmm12,%xmm3
  2747. vpxor %xmm1,%xmm7,%xmm7
  2748. vpsrld $2,%xmm8,%xmm15
  2749. vpxor %xmm2,%xmm7,%xmm7
  2750. vpslld $30,%xmm8,%xmm1
  2751. vpxor %xmm3,%xmm0,%xmm0
  2752. vpxor %xmm8,%xmm9,%xmm3
  2753. vpxor %xmm1,%xmm15,%xmm15
  2754. vpaddd %xmm7,%xmm5,%xmm5
  2755. vpsrld $13,%xmm8,%xmm1
  2756. vpslld $19,%xmm8,%xmm2
  2757. vpaddd %xmm0,%xmm5,%xmm5
  2758. vpand %xmm3,%xmm4,%xmm4
  2759. vpxor %xmm1,%xmm15,%xmm7
  2760. vpsrld $22,%xmm8,%xmm1
  2761. vpxor %xmm2,%xmm7,%xmm7
  2762. vpslld $10,%xmm8,%xmm2
  2763. vpxor %xmm4,%xmm9,%xmm15
  2764. vpaddd %xmm5,%xmm11,%xmm11
  2765. vpxor %xmm1,%xmm7,%xmm7
  2766. vpxor %xmm2,%xmm7,%xmm7
  2767. vpaddd %xmm5,%xmm15,%xmm15
  2768. vpaddd %xmm7,%xmm15,%xmm15
  2769. vmovd 4(%r8),%xmm5
  2770. vmovd 4(%r9),%xmm0
  2771. vpinsrd $1,4(%r10),%xmm5,%xmm5
  2772. vpinsrd $1,4(%r11),%xmm0,%xmm0
  2773. vpunpckldq %xmm0,%xmm5,%xmm5
  2774. vpshufb %xmm6,%xmm5,%xmm5
  2775. vpsrld $6,%xmm11,%xmm7
  2776. vpslld $26,%xmm11,%xmm2
  2777. vmovdqu %xmm5,16-128(%rax)
  2778. vpaddd %xmm14,%xmm5,%xmm5
  2779. vpsrld $11,%xmm11,%xmm1
  2780. vpxor %xmm2,%xmm7,%xmm7
  2781. vpslld $21,%xmm11,%xmm2
  2782. vpaddd -96(%rbp),%xmm5,%xmm5
  2783. vpxor %xmm1,%xmm7,%xmm7
  2784. vpsrld $25,%xmm11,%xmm1
  2785. vpxor %xmm2,%xmm7,%xmm7
  2786. vpslld $7,%xmm11,%xmm2
  2787. vpandn %xmm13,%xmm11,%xmm0
  2788. vpand %xmm12,%xmm11,%xmm4
  2789. vpxor %xmm1,%xmm7,%xmm7
  2790. vpsrld $2,%xmm15,%xmm14
  2791. vpxor %xmm2,%xmm7,%xmm7
  2792. vpslld $30,%xmm15,%xmm1
  2793. vpxor %xmm4,%xmm0,%xmm0
  2794. vpxor %xmm15,%xmm8,%xmm4
  2795. vpxor %xmm1,%xmm14,%xmm14
  2796. vpaddd %xmm7,%xmm5,%xmm5
  2797. vpsrld $13,%xmm15,%xmm1
  2798. vpslld $19,%xmm15,%xmm2
  2799. vpaddd %xmm0,%xmm5,%xmm5
  2800. vpand %xmm4,%xmm3,%xmm3
  2801. vpxor %xmm1,%xmm14,%xmm7
  2802. vpsrld $22,%xmm15,%xmm1
  2803. vpxor %xmm2,%xmm7,%xmm7
  2804. vpslld $10,%xmm15,%xmm2
  2805. vpxor %xmm3,%xmm8,%xmm14
  2806. vpaddd %xmm5,%xmm10,%xmm10
  2807. vpxor %xmm1,%xmm7,%xmm7
  2808. vpxor %xmm2,%xmm7,%xmm7
  2809. vpaddd %xmm5,%xmm14,%xmm14
  2810. vpaddd %xmm7,%xmm14,%xmm14
  2811. vmovd 8(%r8),%xmm5
  2812. vmovd 8(%r9),%xmm0
  2813. vpinsrd $1,8(%r10),%xmm5,%xmm5
  2814. vpinsrd $1,8(%r11),%xmm0,%xmm0
  2815. vpunpckldq %xmm0,%xmm5,%xmm5
  2816. vpshufb %xmm6,%xmm5,%xmm5
  2817. vpsrld $6,%xmm10,%xmm7
  2818. vpslld $26,%xmm10,%xmm2
  2819. vmovdqu %xmm5,32-128(%rax)
  2820. vpaddd %xmm13,%xmm5,%xmm5
  2821. vpsrld $11,%xmm10,%xmm1
  2822. vpxor %xmm2,%xmm7,%xmm7
  2823. vpslld $21,%xmm10,%xmm2
  2824. vpaddd -64(%rbp),%xmm5,%xmm5
  2825. vpxor %xmm1,%xmm7,%xmm7
  2826. vpsrld $25,%xmm10,%xmm1
  2827. vpxor %xmm2,%xmm7,%xmm7
  2828. vpslld $7,%xmm10,%xmm2
  2829. vpandn %xmm12,%xmm10,%xmm0
  2830. vpand %xmm11,%xmm10,%xmm3
  2831. vpxor %xmm1,%xmm7,%xmm7
  2832. vpsrld $2,%xmm14,%xmm13
  2833. vpxor %xmm2,%xmm7,%xmm7
  2834. vpslld $30,%xmm14,%xmm1
  2835. vpxor %xmm3,%xmm0,%xmm0
  2836. vpxor %xmm14,%xmm15,%xmm3
  2837. vpxor %xmm1,%xmm13,%xmm13
  2838. vpaddd %xmm7,%xmm5,%xmm5
  2839. vpsrld $13,%xmm14,%xmm1
  2840. vpslld $19,%xmm14,%xmm2
  2841. vpaddd %xmm0,%xmm5,%xmm5
  2842. vpand %xmm3,%xmm4,%xmm4
  2843. vpxor %xmm1,%xmm13,%xmm7
  2844. vpsrld $22,%xmm14,%xmm1
  2845. vpxor %xmm2,%xmm7,%xmm7
  2846. vpslld $10,%xmm14,%xmm2
  2847. vpxor %xmm4,%xmm15,%xmm13
  2848. vpaddd %xmm5,%xmm9,%xmm9
  2849. vpxor %xmm1,%xmm7,%xmm7
  2850. vpxor %xmm2,%xmm7,%xmm7
  2851. vpaddd %xmm5,%xmm13,%xmm13
  2852. vpaddd %xmm7,%xmm13,%xmm13
  2853. vmovd 12(%r8),%xmm5
  2854. vmovd 12(%r9),%xmm0
  2855. vpinsrd $1,12(%r10),%xmm5,%xmm5
  2856. vpinsrd $1,12(%r11),%xmm0,%xmm0
  2857. vpunpckldq %xmm0,%xmm5,%xmm5
  2858. vpshufb %xmm6,%xmm5,%xmm5
  2859. vpsrld $6,%xmm9,%xmm7
  2860. vpslld $26,%xmm9,%xmm2
  2861. vmovdqu %xmm5,48-128(%rax)
  2862. vpaddd %xmm12,%xmm5,%xmm5
  2863. vpsrld $11,%xmm9,%xmm1
  2864. vpxor %xmm2,%xmm7,%xmm7
  2865. vpslld $21,%xmm9,%xmm2
  2866. vpaddd -32(%rbp),%xmm5,%xmm5
  2867. vpxor %xmm1,%xmm7,%xmm7
  2868. vpsrld $25,%xmm9,%xmm1
  2869. vpxor %xmm2,%xmm7,%xmm7
  2870. vpslld $7,%xmm9,%xmm2
  2871. vpandn %xmm11,%xmm9,%xmm0
  2872. vpand %xmm10,%xmm9,%xmm4
  2873. vpxor %xmm1,%xmm7,%xmm7
  2874. vpsrld $2,%xmm13,%xmm12
  2875. vpxor %xmm2,%xmm7,%xmm7
  2876. vpslld $30,%xmm13,%xmm1
  2877. vpxor %xmm4,%xmm0,%xmm0
  2878. vpxor %xmm13,%xmm14,%xmm4
  2879. vpxor %xmm1,%xmm12,%xmm12
  2880. vpaddd %xmm7,%xmm5,%xmm5
  2881. vpsrld $13,%xmm13,%xmm1
  2882. vpslld $19,%xmm13,%xmm2
  2883. vpaddd %xmm0,%xmm5,%xmm5
  2884. vpand %xmm4,%xmm3,%xmm3
  2885. vpxor %xmm1,%xmm12,%xmm7
  2886. vpsrld $22,%xmm13,%xmm1
  2887. vpxor %xmm2,%xmm7,%xmm7
  2888. vpslld $10,%xmm13,%xmm2
  2889. vpxor %xmm3,%xmm14,%xmm12
  2890. vpaddd %xmm5,%xmm8,%xmm8
  2891. vpxor %xmm1,%xmm7,%xmm7
  2892. vpxor %xmm2,%xmm7,%xmm7
  2893. vpaddd %xmm5,%xmm12,%xmm12
  2894. vpaddd %xmm7,%xmm12,%xmm12
  2895. vmovd 16(%r8),%xmm5
  2896. vmovd 16(%r9),%xmm0
  2897. vpinsrd $1,16(%r10),%xmm5,%xmm5
  2898. vpinsrd $1,16(%r11),%xmm0,%xmm0
  2899. vpunpckldq %xmm0,%xmm5,%xmm5
  2900. vpshufb %xmm6,%xmm5,%xmm5
  2901. vpsrld $6,%xmm8,%xmm7
  2902. vpslld $26,%xmm8,%xmm2
  2903. vmovdqu %xmm5,64-128(%rax)
  2904. vpaddd %xmm11,%xmm5,%xmm5
  2905. vpsrld $11,%xmm8,%xmm1
  2906. vpxor %xmm2,%xmm7,%xmm7
  2907. vpslld $21,%xmm8,%xmm2
  2908. vpaddd 0(%rbp),%xmm5,%xmm5
  2909. vpxor %xmm1,%xmm7,%xmm7
  2910. vpsrld $25,%xmm8,%xmm1
  2911. vpxor %xmm2,%xmm7,%xmm7
  2912. vpslld $7,%xmm8,%xmm2
  2913. vpandn %xmm10,%xmm8,%xmm0
  2914. vpand %xmm9,%xmm8,%xmm3
  2915. vpxor %xmm1,%xmm7,%xmm7
  2916. vpsrld $2,%xmm12,%xmm11
  2917. vpxor %xmm2,%xmm7,%xmm7
  2918. vpslld $30,%xmm12,%xmm1
  2919. vpxor %xmm3,%xmm0,%xmm0
  2920. vpxor %xmm12,%xmm13,%xmm3
  2921. vpxor %xmm1,%xmm11,%xmm11
  2922. vpaddd %xmm7,%xmm5,%xmm5
  2923. vpsrld $13,%xmm12,%xmm1
  2924. vpslld $19,%xmm12,%xmm2
  2925. vpaddd %xmm0,%xmm5,%xmm5
  2926. vpand %xmm3,%xmm4,%xmm4
  2927. vpxor %xmm1,%xmm11,%xmm7
  2928. vpsrld $22,%xmm12,%xmm1
  2929. vpxor %xmm2,%xmm7,%xmm7
  2930. vpslld $10,%xmm12,%xmm2
  2931. vpxor %xmm4,%xmm13,%xmm11
  2932. vpaddd %xmm5,%xmm15,%xmm15
  2933. vpxor %xmm1,%xmm7,%xmm7
  2934. vpxor %xmm2,%xmm7,%xmm7
  2935. vpaddd %xmm5,%xmm11,%xmm11
  2936. vpaddd %xmm7,%xmm11,%xmm11
  2937. vmovd 20(%r8),%xmm5
  2938. vmovd 20(%r9),%xmm0
  2939. vpinsrd $1,20(%r10),%xmm5,%xmm5
  2940. vpinsrd $1,20(%r11),%xmm0,%xmm0
  2941. vpunpckldq %xmm0,%xmm5,%xmm5
  2942. vpshufb %xmm6,%xmm5,%xmm5
  2943. vpsrld $6,%xmm15,%xmm7
  2944. vpslld $26,%xmm15,%xmm2
  2945. vmovdqu %xmm5,80-128(%rax)
  2946. vpaddd %xmm10,%xmm5,%xmm5
  2947. vpsrld $11,%xmm15,%xmm1
  2948. vpxor %xmm2,%xmm7,%xmm7
  2949. vpslld $21,%xmm15,%xmm2
  2950. vpaddd 32(%rbp),%xmm5,%xmm5
  2951. vpxor %xmm1,%xmm7,%xmm7
  2952. vpsrld $25,%xmm15,%xmm1
  2953. vpxor %xmm2,%xmm7,%xmm7
  2954. vpslld $7,%xmm15,%xmm2
  2955. vpandn %xmm9,%xmm15,%xmm0
  2956. vpand %xmm8,%xmm15,%xmm4
  2957. vpxor %xmm1,%xmm7,%xmm7
  2958. vpsrld $2,%xmm11,%xmm10
  2959. vpxor %xmm2,%xmm7,%xmm7
  2960. vpslld $30,%xmm11,%xmm1
  2961. vpxor %xmm4,%xmm0,%xmm0
  2962. vpxor %xmm11,%xmm12,%xmm4
  2963. vpxor %xmm1,%xmm10,%xmm10
  2964. vpaddd %xmm7,%xmm5,%xmm5
  2965. vpsrld $13,%xmm11,%xmm1
  2966. vpslld $19,%xmm11,%xmm2
  2967. vpaddd %xmm0,%xmm5,%xmm5
  2968. vpand %xmm4,%xmm3,%xmm3
  2969. vpxor %xmm1,%xmm10,%xmm7
  2970. vpsrld $22,%xmm11,%xmm1
  2971. vpxor %xmm2,%xmm7,%xmm7
  2972. vpslld $10,%xmm11,%xmm2
  2973. vpxor %xmm3,%xmm12,%xmm10
  2974. vpaddd %xmm5,%xmm14,%xmm14
  2975. vpxor %xmm1,%xmm7,%xmm7
  2976. vpxor %xmm2,%xmm7,%xmm7
  2977. vpaddd %xmm5,%xmm10,%xmm10
  2978. vpaddd %xmm7,%xmm10,%xmm10
  2979. vmovd 24(%r8),%xmm5
  2980. vmovd 24(%r9),%xmm0
  2981. vpinsrd $1,24(%r10),%xmm5,%xmm5
  2982. vpinsrd $1,24(%r11),%xmm0,%xmm0
  2983. vpunpckldq %xmm0,%xmm5,%xmm5
  2984. vpshufb %xmm6,%xmm5,%xmm5
  2985. vpsrld $6,%xmm14,%xmm7
  2986. vpslld $26,%xmm14,%xmm2
  2987. vmovdqu %xmm5,96-128(%rax)
  2988. vpaddd %xmm9,%xmm5,%xmm5
  2989. vpsrld $11,%xmm14,%xmm1
  2990. vpxor %xmm2,%xmm7,%xmm7
  2991. vpslld $21,%xmm14,%xmm2
  2992. vpaddd 64(%rbp),%xmm5,%xmm5
  2993. vpxor %xmm1,%xmm7,%xmm7
  2994. vpsrld $25,%xmm14,%xmm1
  2995. vpxor %xmm2,%xmm7,%xmm7
  2996. vpslld $7,%xmm14,%xmm2
  2997. vpandn %xmm8,%xmm14,%xmm0
  2998. vpand %xmm15,%xmm14,%xmm3
  2999. vpxor %xmm1,%xmm7,%xmm7
  3000. vpsrld $2,%xmm10,%xmm9
  3001. vpxor %xmm2,%xmm7,%xmm7
  3002. vpslld $30,%xmm10,%xmm1
  3003. vpxor %xmm3,%xmm0,%xmm0
  3004. vpxor %xmm10,%xmm11,%xmm3
  3005. vpxor %xmm1,%xmm9,%xmm9
  3006. vpaddd %xmm7,%xmm5,%xmm5
  3007. vpsrld $13,%xmm10,%xmm1
  3008. vpslld $19,%xmm10,%xmm2
  3009. vpaddd %xmm0,%xmm5,%xmm5
  3010. vpand %xmm3,%xmm4,%xmm4
  3011. vpxor %xmm1,%xmm9,%xmm7
  3012. vpsrld $22,%xmm10,%xmm1
  3013. vpxor %xmm2,%xmm7,%xmm7
  3014. vpslld $10,%xmm10,%xmm2
  3015. vpxor %xmm4,%xmm11,%xmm9
  3016. vpaddd %xmm5,%xmm13,%xmm13
  3017. vpxor %xmm1,%xmm7,%xmm7
  3018. vpxor %xmm2,%xmm7,%xmm7
  3019. vpaddd %xmm5,%xmm9,%xmm9
  3020. vpaddd %xmm7,%xmm9,%xmm9
  3021. vmovd 28(%r8),%xmm5
  3022. vmovd 28(%r9),%xmm0
  3023. vpinsrd $1,28(%r10),%xmm5,%xmm5
  3024. vpinsrd $1,28(%r11),%xmm0,%xmm0
  3025. vpunpckldq %xmm0,%xmm5,%xmm5
  3026. vpshufb %xmm6,%xmm5,%xmm5
  3027. vpsrld $6,%xmm13,%xmm7
  3028. vpslld $26,%xmm13,%xmm2
  3029. vmovdqu %xmm5,112-128(%rax)
  3030. vpaddd %xmm8,%xmm5,%xmm5
  3031. vpsrld $11,%xmm13,%xmm1
  3032. vpxor %xmm2,%xmm7,%xmm7
  3033. vpslld $21,%xmm13,%xmm2
  3034. vpaddd 96(%rbp),%xmm5,%xmm5
  3035. vpxor %xmm1,%xmm7,%xmm7
  3036. vpsrld $25,%xmm13,%xmm1
  3037. vpxor %xmm2,%xmm7,%xmm7
  3038. vpslld $7,%xmm13,%xmm2
  3039. vpandn %xmm15,%xmm13,%xmm0
  3040. vpand %xmm14,%xmm13,%xmm4
  3041. vpxor %xmm1,%xmm7,%xmm7
  3042. vpsrld $2,%xmm9,%xmm8
  3043. vpxor %xmm2,%xmm7,%xmm7
  3044. vpslld $30,%xmm9,%xmm1
  3045. vpxor %xmm4,%xmm0,%xmm0
  3046. vpxor %xmm9,%xmm10,%xmm4
  3047. vpxor %xmm1,%xmm8,%xmm8
  3048. vpaddd %xmm7,%xmm5,%xmm5
  3049. vpsrld $13,%xmm9,%xmm1
  3050. vpslld $19,%xmm9,%xmm2
  3051. vpaddd %xmm0,%xmm5,%xmm5
  3052. vpand %xmm4,%xmm3,%xmm3
  3053. vpxor %xmm1,%xmm8,%xmm7
  3054. vpsrld $22,%xmm9,%xmm1
  3055. vpxor %xmm2,%xmm7,%xmm7
  3056. vpslld $10,%xmm9,%xmm2
  3057. vpxor %xmm3,%xmm10,%xmm8
  3058. vpaddd %xmm5,%xmm12,%xmm12
  3059. vpxor %xmm1,%xmm7,%xmm7
  3060. vpxor %xmm2,%xmm7,%xmm7
  3061. vpaddd %xmm5,%xmm8,%xmm8
  3062. vpaddd %xmm7,%xmm8,%xmm8
  3063. addq $256,%rbp
  3064. vmovd 32(%r8),%xmm5
  3065. vmovd 32(%r9),%xmm0
  3066. vpinsrd $1,32(%r10),%xmm5,%xmm5
  3067. vpinsrd $1,32(%r11),%xmm0,%xmm0
  3068. vpunpckldq %xmm0,%xmm5,%xmm5
  3069. vpshufb %xmm6,%xmm5,%xmm5
  3070. vpsrld $6,%xmm12,%xmm7
  3071. vpslld $26,%xmm12,%xmm2
  3072. vmovdqu %xmm5,128-128(%rax)
  3073. vpaddd %xmm15,%xmm5,%xmm5
  3074. vpsrld $11,%xmm12,%xmm1
  3075. vpxor %xmm2,%xmm7,%xmm7
  3076. vpslld $21,%xmm12,%xmm2
  3077. vpaddd -128(%rbp),%xmm5,%xmm5
  3078. vpxor %xmm1,%xmm7,%xmm7
  3079. vpsrld $25,%xmm12,%xmm1
  3080. vpxor %xmm2,%xmm7,%xmm7
  3081. vpslld $7,%xmm12,%xmm2
  3082. vpandn %xmm14,%xmm12,%xmm0
  3083. vpand %xmm13,%xmm12,%xmm3
  3084. vpxor %xmm1,%xmm7,%xmm7
  3085. vpsrld $2,%xmm8,%xmm15
  3086. vpxor %xmm2,%xmm7,%xmm7
  3087. vpslld $30,%xmm8,%xmm1
  3088. vpxor %xmm3,%xmm0,%xmm0
  3089. vpxor %xmm8,%xmm9,%xmm3
  3090. vpxor %xmm1,%xmm15,%xmm15
  3091. vpaddd %xmm7,%xmm5,%xmm5
  3092. vpsrld $13,%xmm8,%xmm1
  3093. vpslld $19,%xmm8,%xmm2
  3094. vpaddd %xmm0,%xmm5,%xmm5
  3095. vpand %xmm3,%xmm4,%xmm4
  3096. vpxor %xmm1,%xmm15,%xmm7
  3097. vpsrld $22,%xmm8,%xmm1
  3098. vpxor %xmm2,%xmm7,%xmm7
  3099. vpslld $10,%xmm8,%xmm2
  3100. vpxor %xmm4,%xmm9,%xmm15
  3101. vpaddd %xmm5,%xmm11,%xmm11
  3102. vpxor %xmm1,%xmm7,%xmm7
  3103. vpxor %xmm2,%xmm7,%xmm7
  3104. vpaddd %xmm5,%xmm15,%xmm15
  3105. vpaddd %xmm7,%xmm15,%xmm15
  3106. vmovd 36(%r8),%xmm5
  3107. vmovd 36(%r9),%xmm0
  3108. vpinsrd $1,36(%r10),%xmm5,%xmm5
  3109. vpinsrd $1,36(%r11),%xmm0,%xmm0
  3110. vpunpckldq %xmm0,%xmm5,%xmm5
  3111. vpshufb %xmm6,%xmm5,%xmm5
  3112. vpsrld $6,%xmm11,%xmm7
  3113. vpslld $26,%xmm11,%xmm2
  3114. vmovdqu %xmm5,144-128(%rax)
  3115. vpaddd %xmm14,%xmm5,%xmm5
  3116. vpsrld $11,%xmm11,%xmm1
  3117. vpxor %xmm2,%xmm7,%xmm7
  3118. vpslld $21,%xmm11,%xmm2
  3119. vpaddd -96(%rbp),%xmm5,%xmm5
  3120. vpxor %xmm1,%xmm7,%xmm7
  3121. vpsrld $25,%xmm11,%xmm1
  3122. vpxor %xmm2,%xmm7,%xmm7
  3123. vpslld $7,%xmm11,%xmm2
  3124. vpandn %xmm13,%xmm11,%xmm0
  3125. vpand %xmm12,%xmm11,%xmm4
  3126. vpxor %xmm1,%xmm7,%xmm7
  3127. vpsrld $2,%xmm15,%xmm14
  3128. vpxor %xmm2,%xmm7,%xmm7
  3129. vpslld $30,%xmm15,%xmm1
  3130. vpxor %xmm4,%xmm0,%xmm0
  3131. vpxor %xmm15,%xmm8,%xmm4
  3132. vpxor %xmm1,%xmm14,%xmm14
  3133. vpaddd %xmm7,%xmm5,%xmm5
  3134. vpsrld $13,%xmm15,%xmm1
  3135. vpslld $19,%xmm15,%xmm2
  3136. vpaddd %xmm0,%xmm5,%xmm5
  3137. vpand %xmm4,%xmm3,%xmm3
  3138. vpxor %xmm1,%xmm14,%xmm7
  3139. vpsrld $22,%xmm15,%xmm1
  3140. vpxor %xmm2,%xmm7,%xmm7
  3141. vpslld $10,%xmm15,%xmm2
  3142. vpxor %xmm3,%xmm8,%xmm14
  3143. vpaddd %xmm5,%xmm10,%xmm10
  3144. vpxor %xmm1,%xmm7,%xmm7
  3145. vpxor %xmm2,%xmm7,%xmm7
  3146. vpaddd %xmm5,%xmm14,%xmm14
  3147. vpaddd %xmm7,%xmm14,%xmm14
  3148. vmovd 40(%r8),%xmm5
  3149. vmovd 40(%r9),%xmm0
  3150. vpinsrd $1,40(%r10),%xmm5,%xmm5
  3151. vpinsrd $1,40(%r11),%xmm0,%xmm0
  3152. vpunpckldq %xmm0,%xmm5,%xmm5
  3153. vpshufb %xmm6,%xmm5,%xmm5
  3154. vpsrld $6,%xmm10,%xmm7
  3155. vpslld $26,%xmm10,%xmm2
  3156. vmovdqu %xmm5,160-128(%rax)
  3157. vpaddd %xmm13,%xmm5,%xmm5
  3158. vpsrld $11,%xmm10,%xmm1
  3159. vpxor %xmm2,%xmm7,%xmm7
  3160. vpslld $21,%xmm10,%xmm2
  3161. vpaddd -64(%rbp),%xmm5,%xmm5
  3162. vpxor %xmm1,%xmm7,%xmm7
  3163. vpsrld $25,%xmm10,%xmm1
  3164. vpxor %xmm2,%xmm7,%xmm7
  3165. vpslld $7,%xmm10,%xmm2
  3166. vpandn %xmm12,%xmm10,%xmm0
  3167. vpand %xmm11,%xmm10,%xmm3
  3168. vpxor %xmm1,%xmm7,%xmm7
  3169. vpsrld $2,%xmm14,%xmm13
  3170. vpxor %xmm2,%xmm7,%xmm7
  3171. vpslld $30,%xmm14,%xmm1
  3172. vpxor %xmm3,%xmm0,%xmm0
  3173. vpxor %xmm14,%xmm15,%xmm3
  3174. vpxor %xmm1,%xmm13,%xmm13
  3175. vpaddd %xmm7,%xmm5,%xmm5
  3176. vpsrld $13,%xmm14,%xmm1
  3177. vpslld $19,%xmm14,%xmm2
  3178. vpaddd %xmm0,%xmm5,%xmm5
  3179. vpand %xmm3,%xmm4,%xmm4
  3180. vpxor %xmm1,%xmm13,%xmm7
  3181. vpsrld $22,%xmm14,%xmm1
  3182. vpxor %xmm2,%xmm7,%xmm7
  3183. vpslld $10,%xmm14,%xmm2
  3184. vpxor %xmm4,%xmm15,%xmm13
  3185. vpaddd %xmm5,%xmm9,%xmm9
  3186. vpxor %xmm1,%xmm7,%xmm7
  3187. vpxor %xmm2,%xmm7,%xmm7
  3188. vpaddd %xmm5,%xmm13,%xmm13
  3189. vpaddd %xmm7,%xmm13,%xmm13
  3190. vmovd 44(%r8),%xmm5
  3191. vmovd 44(%r9),%xmm0
  3192. vpinsrd $1,44(%r10),%xmm5,%xmm5
  3193. vpinsrd $1,44(%r11),%xmm0,%xmm0
  3194. vpunpckldq %xmm0,%xmm5,%xmm5
  3195. vpshufb %xmm6,%xmm5,%xmm5
  3196. vpsrld $6,%xmm9,%xmm7
  3197. vpslld $26,%xmm9,%xmm2
  3198. vmovdqu %xmm5,176-128(%rax)
  3199. vpaddd %xmm12,%xmm5,%xmm5
  3200. vpsrld $11,%xmm9,%xmm1
  3201. vpxor %xmm2,%xmm7,%xmm7
  3202. vpslld $21,%xmm9,%xmm2
  3203. vpaddd -32(%rbp),%xmm5,%xmm5
  3204. vpxor %xmm1,%xmm7,%xmm7
  3205. vpsrld $25,%xmm9,%xmm1
  3206. vpxor %xmm2,%xmm7,%xmm7
  3207. vpslld $7,%xmm9,%xmm2
  3208. vpandn %xmm11,%xmm9,%xmm0
  3209. vpand %xmm10,%xmm9,%xmm4
  3210. vpxor %xmm1,%xmm7,%xmm7
  3211. vpsrld $2,%xmm13,%xmm12
  3212. vpxor %xmm2,%xmm7,%xmm7
  3213. vpslld $30,%xmm13,%xmm1
  3214. vpxor %xmm4,%xmm0,%xmm0
  3215. vpxor %xmm13,%xmm14,%xmm4
  3216. vpxor %xmm1,%xmm12,%xmm12
  3217. vpaddd %xmm7,%xmm5,%xmm5
  3218. vpsrld $13,%xmm13,%xmm1
  3219. vpslld $19,%xmm13,%xmm2
  3220. vpaddd %xmm0,%xmm5,%xmm5
  3221. vpand %xmm4,%xmm3,%xmm3
  3222. vpxor %xmm1,%xmm12,%xmm7
  3223. vpsrld $22,%xmm13,%xmm1
  3224. vpxor %xmm2,%xmm7,%xmm7
  3225. vpslld $10,%xmm13,%xmm2
  3226. vpxor %xmm3,%xmm14,%xmm12
  3227. vpaddd %xmm5,%xmm8,%xmm8
  3228. vpxor %xmm1,%xmm7,%xmm7
  3229. vpxor %xmm2,%xmm7,%xmm7
  3230. vpaddd %xmm5,%xmm12,%xmm12
  3231. vpaddd %xmm7,%xmm12,%xmm12
  3232. vmovd 48(%r8),%xmm5
  3233. vmovd 48(%r9),%xmm0
  3234. vpinsrd $1,48(%r10),%xmm5,%xmm5
  3235. vpinsrd $1,48(%r11),%xmm0,%xmm0
  3236. vpunpckldq %xmm0,%xmm5,%xmm5
  3237. vpshufb %xmm6,%xmm5,%xmm5
  3238. vpsrld $6,%xmm8,%xmm7
  3239. vpslld $26,%xmm8,%xmm2
  3240. vmovdqu %xmm5,192-128(%rax)
  3241. vpaddd %xmm11,%xmm5,%xmm5
  3242. vpsrld $11,%xmm8,%xmm1
  3243. vpxor %xmm2,%xmm7,%xmm7
  3244. vpslld $21,%xmm8,%xmm2
  3245. vpaddd 0(%rbp),%xmm5,%xmm5
  3246. vpxor %xmm1,%xmm7,%xmm7
  3247. vpsrld $25,%xmm8,%xmm1
  3248. vpxor %xmm2,%xmm7,%xmm7
  3249. vpslld $7,%xmm8,%xmm2
  3250. vpandn %xmm10,%xmm8,%xmm0
  3251. vpand %xmm9,%xmm8,%xmm3
  3252. vpxor %xmm1,%xmm7,%xmm7
  3253. vpsrld $2,%xmm12,%xmm11
  3254. vpxor %xmm2,%xmm7,%xmm7
  3255. vpslld $30,%xmm12,%xmm1
  3256. vpxor %xmm3,%xmm0,%xmm0
  3257. vpxor %xmm12,%xmm13,%xmm3
  3258. vpxor %xmm1,%xmm11,%xmm11
  3259. vpaddd %xmm7,%xmm5,%xmm5
  3260. vpsrld $13,%xmm12,%xmm1
  3261. vpslld $19,%xmm12,%xmm2
  3262. vpaddd %xmm0,%xmm5,%xmm5
  3263. vpand %xmm3,%xmm4,%xmm4
  3264. vpxor %xmm1,%xmm11,%xmm7
  3265. vpsrld $22,%xmm12,%xmm1
  3266. vpxor %xmm2,%xmm7,%xmm7
  3267. vpslld $10,%xmm12,%xmm2
  3268. vpxor %xmm4,%xmm13,%xmm11
  3269. vpaddd %xmm5,%xmm15,%xmm15
  3270. vpxor %xmm1,%xmm7,%xmm7
  3271. vpxor %xmm2,%xmm7,%xmm7
  3272. vpaddd %xmm5,%xmm11,%xmm11
  3273. vpaddd %xmm7,%xmm11,%xmm11
  3274. vmovd 52(%r8),%xmm5
  3275. vmovd 52(%r9),%xmm0
  3276. vpinsrd $1,52(%r10),%xmm5,%xmm5
  3277. vpinsrd $1,52(%r11),%xmm0,%xmm0
  3278. vpunpckldq %xmm0,%xmm5,%xmm5
  3279. vpshufb %xmm6,%xmm5,%xmm5
  3280. vpsrld $6,%xmm15,%xmm7
  3281. vpslld $26,%xmm15,%xmm2
  3282. vmovdqu %xmm5,208-128(%rax)
  3283. vpaddd %xmm10,%xmm5,%xmm5
  3284. vpsrld $11,%xmm15,%xmm1
  3285. vpxor %xmm2,%xmm7,%xmm7
  3286. vpslld $21,%xmm15,%xmm2
  3287. vpaddd 32(%rbp),%xmm5,%xmm5
  3288. vpxor %xmm1,%xmm7,%xmm7
  3289. vpsrld $25,%xmm15,%xmm1
  3290. vpxor %xmm2,%xmm7,%xmm7
  3291. vpslld $7,%xmm15,%xmm2
  3292. vpandn %xmm9,%xmm15,%xmm0
  3293. vpand %xmm8,%xmm15,%xmm4
  3294. vpxor %xmm1,%xmm7,%xmm7
  3295. vpsrld $2,%xmm11,%xmm10
  3296. vpxor %xmm2,%xmm7,%xmm7
  3297. vpslld $30,%xmm11,%xmm1
  3298. vpxor %xmm4,%xmm0,%xmm0
  3299. vpxor %xmm11,%xmm12,%xmm4
  3300. vpxor %xmm1,%xmm10,%xmm10
  3301. vpaddd %xmm7,%xmm5,%xmm5
  3302. vpsrld $13,%xmm11,%xmm1
  3303. vpslld $19,%xmm11,%xmm2
  3304. vpaddd %xmm0,%xmm5,%xmm5
  3305. vpand %xmm4,%xmm3,%xmm3
  3306. vpxor %xmm1,%xmm10,%xmm7
  3307. vpsrld $22,%xmm11,%xmm1
  3308. vpxor %xmm2,%xmm7,%xmm7
  3309. vpslld $10,%xmm11,%xmm2
  3310. vpxor %xmm3,%xmm12,%xmm10
  3311. vpaddd %xmm5,%xmm14,%xmm14
  3312. vpxor %xmm1,%xmm7,%xmm7
  3313. vpxor %xmm2,%xmm7,%xmm7
  3314. vpaddd %xmm5,%xmm10,%xmm10
  3315. vpaddd %xmm7,%xmm10,%xmm10
  3316. vmovd 56(%r8),%xmm5
  3317. vmovd 56(%r9),%xmm0
  3318. vpinsrd $1,56(%r10),%xmm5,%xmm5
  3319. vpinsrd $1,56(%r11),%xmm0,%xmm0
  3320. vpunpckldq %xmm0,%xmm5,%xmm5
  3321. vpshufb %xmm6,%xmm5,%xmm5
  3322. vpsrld $6,%xmm14,%xmm7
  3323. vpslld $26,%xmm14,%xmm2
  3324. vmovdqu %xmm5,224-128(%rax)
  3325. vpaddd %xmm9,%xmm5,%xmm5
  3326. vpsrld $11,%xmm14,%xmm1
  3327. vpxor %xmm2,%xmm7,%xmm7
  3328. vpslld $21,%xmm14,%xmm2
  3329. vpaddd 64(%rbp),%xmm5,%xmm5
  3330. vpxor %xmm1,%xmm7,%xmm7
  3331. vpsrld $25,%xmm14,%xmm1
  3332. vpxor %xmm2,%xmm7,%xmm7
  3333. vpslld $7,%xmm14,%xmm2
  3334. vpandn %xmm8,%xmm14,%xmm0
  3335. vpand %xmm15,%xmm14,%xmm3
  3336. vpxor %xmm1,%xmm7,%xmm7
  3337. vpsrld $2,%xmm10,%xmm9
  3338. vpxor %xmm2,%xmm7,%xmm7
  3339. vpslld $30,%xmm10,%xmm1
  3340. vpxor %xmm3,%xmm0,%xmm0
  3341. vpxor %xmm10,%xmm11,%xmm3
  3342. vpxor %xmm1,%xmm9,%xmm9
  3343. vpaddd %xmm7,%xmm5,%xmm5
  3344. vpsrld $13,%xmm10,%xmm1
  3345. vpslld $19,%xmm10,%xmm2
  3346. vpaddd %xmm0,%xmm5,%xmm5
  3347. vpand %xmm3,%xmm4,%xmm4
  3348. vpxor %xmm1,%xmm9,%xmm7
  3349. vpsrld $22,%xmm10,%xmm1
  3350. vpxor %xmm2,%xmm7,%xmm7
  3351. vpslld $10,%xmm10,%xmm2
  3352. vpxor %xmm4,%xmm11,%xmm9
  3353. vpaddd %xmm5,%xmm13,%xmm13
  3354. vpxor %xmm1,%xmm7,%xmm7
  3355. vpxor %xmm2,%xmm7,%xmm7
  3356. vpaddd %xmm5,%xmm9,%xmm9
  3357. vpaddd %xmm7,%xmm9,%xmm9
  3358. vmovd 60(%r8),%xmm5
  3359. leaq 64(%r8),%r8
  3360. vmovd 60(%r9),%xmm0
  3361. leaq 64(%r9),%r9
  3362. vpinsrd $1,60(%r10),%xmm5,%xmm5
  3363. leaq 64(%r10),%r10
  3364. vpinsrd $1,60(%r11),%xmm0,%xmm0
  3365. leaq 64(%r11),%r11
  3366. vpunpckldq %xmm0,%xmm5,%xmm5
  3367. vpshufb %xmm6,%xmm5,%xmm5
  3368. vpsrld $6,%xmm13,%xmm7
  3369. vpslld $26,%xmm13,%xmm2
  3370. vmovdqu %xmm5,240-128(%rax)
  3371. vpaddd %xmm8,%xmm5,%xmm5
  3372. vpsrld $11,%xmm13,%xmm1
  3373. vpxor %xmm2,%xmm7,%xmm7
  3374. vpslld $21,%xmm13,%xmm2
  3375. vpaddd 96(%rbp),%xmm5,%xmm5
  3376. vpxor %xmm1,%xmm7,%xmm7
  3377. vpsrld $25,%xmm13,%xmm1
  3378. vpxor %xmm2,%xmm7,%xmm7
  3379. prefetcht0 63(%r8)
  3380. vpslld $7,%xmm13,%xmm2
  3381. vpandn %xmm15,%xmm13,%xmm0
  3382. vpand %xmm14,%xmm13,%xmm4
  3383. prefetcht0 63(%r9)
  3384. vpxor %xmm1,%xmm7,%xmm7
  3385. vpsrld $2,%xmm9,%xmm8
  3386. vpxor %xmm2,%xmm7,%xmm7
  3387. prefetcht0 63(%r10)
  3388. vpslld $30,%xmm9,%xmm1
  3389. vpxor %xmm4,%xmm0,%xmm0
  3390. vpxor %xmm9,%xmm10,%xmm4
  3391. prefetcht0 63(%r11)
  3392. vpxor %xmm1,%xmm8,%xmm8
  3393. vpaddd %xmm7,%xmm5,%xmm5
  3394. vpsrld $13,%xmm9,%xmm1
  3395. vpslld $19,%xmm9,%xmm2
  3396. vpaddd %xmm0,%xmm5,%xmm5
  3397. vpand %xmm4,%xmm3,%xmm3
  3398. vpxor %xmm1,%xmm8,%xmm7
  3399. vpsrld $22,%xmm9,%xmm1
  3400. vpxor %xmm2,%xmm7,%xmm7
  3401. vpslld $10,%xmm9,%xmm2
  3402. vpxor %xmm3,%xmm10,%xmm8
  3403. vpaddd %xmm5,%xmm12,%xmm12
  3404. vpxor %xmm1,%xmm7,%xmm7
  3405. vpxor %xmm2,%xmm7,%xmm7
  3406. vpaddd %xmm5,%xmm8,%xmm8
  3407. vpaddd %xmm7,%xmm8,%xmm8
  3408. addq $256,%rbp
  3409. vmovdqu 0-128(%rax),%xmm5
  3410. movl $3,%ecx
  3411. jmp L$oop_16_xx_avx
  3412. .p2align 5
  3413. L$oop_16_xx_avx:
  3414. vmovdqu 16-128(%rax),%xmm6
  3415. vpaddd 144-128(%rax),%xmm5,%xmm5
  3416. vpsrld $3,%xmm6,%xmm7
  3417. vpsrld $7,%xmm6,%xmm1
  3418. vpslld $25,%xmm6,%xmm2
  3419. vpxor %xmm1,%xmm7,%xmm7
  3420. vpsrld $18,%xmm6,%xmm1
  3421. vpxor %xmm2,%xmm7,%xmm7
  3422. vpslld $14,%xmm6,%xmm2
  3423. vmovdqu 224-128(%rax),%xmm0
  3424. vpsrld $10,%xmm0,%xmm3
  3425. vpxor %xmm1,%xmm7,%xmm7
  3426. vpsrld $17,%xmm0,%xmm1
  3427. vpxor %xmm2,%xmm7,%xmm7
  3428. vpslld $15,%xmm0,%xmm2
  3429. vpaddd %xmm7,%xmm5,%xmm5
  3430. vpxor %xmm1,%xmm3,%xmm7
  3431. vpsrld $19,%xmm0,%xmm1
  3432. vpxor %xmm2,%xmm7,%xmm7
  3433. vpslld $13,%xmm0,%xmm2
  3434. vpxor %xmm1,%xmm7,%xmm7
  3435. vpxor %xmm2,%xmm7,%xmm7
  3436. vpaddd %xmm7,%xmm5,%xmm5
  3437. vpsrld $6,%xmm12,%xmm7
  3438. vpslld $26,%xmm12,%xmm2
  3439. vmovdqu %xmm5,0-128(%rax)
  3440. vpaddd %xmm15,%xmm5,%xmm5
  3441. vpsrld $11,%xmm12,%xmm1
  3442. vpxor %xmm2,%xmm7,%xmm7
  3443. vpslld $21,%xmm12,%xmm2
  3444. vpaddd -128(%rbp),%xmm5,%xmm5
  3445. vpxor %xmm1,%xmm7,%xmm7
  3446. vpsrld $25,%xmm12,%xmm1
  3447. vpxor %xmm2,%xmm7,%xmm7
  3448. vpslld $7,%xmm12,%xmm2
  3449. vpandn %xmm14,%xmm12,%xmm0
  3450. vpand %xmm13,%xmm12,%xmm3
  3451. vpxor %xmm1,%xmm7,%xmm7
  3452. vpsrld $2,%xmm8,%xmm15
  3453. vpxor %xmm2,%xmm7,%xmm7
  3454. vpslld $30,%xmm8,%xmm1
  3455. vpxor %xmm3,%xmm0,%xmm0
  3456. vpxor %xmm8,%xmm9,%xmm3
  3457. vpxor %xmm1,%xmm15,%xmm15
  3458. vpaddd %xmm7,%xmm5,%xmm5
  3459. vpsrld $13,%xmm8,%xmm1
  3460. vpslld $19,%xmm8,%xmm2
  3461. vpaddd %xmm0,%xmm5,%xmm5
  3462. vpand %xmm3,%xmm4,%xmm4
  3463. vpxor %xmm1,%xmm15,%xmm7
  3464. vpsrld $22,%xmm8,%xmm1
  3465. vpxor %xmm2,%xmm7,%xmm7
  3466. vpslld $10,%xmm8,%xmm2
  3467. vpxor %xmm4,%xmm9,%xmm15
  3468. vpaddd %xmm5,%xmm11,%xmm11
  3469. vpxor %xmm1,%xmm7,%xmm7
  3470. vpxor %xmm2,%xmm7,%xmm7
  3471. vpaddd %xmm5,%xmm15,%xmm15
  3472. vpaddd %xmm7,%xmm15,%xmm15
  3473. vmovdqu 32-128(%rax),%xmm5
  3474. vpaddd 160-128(%rax),%xmm6,%xmm6
  3475. vpsrld $3,%xmm5,%xmm7
  3476. vpsrld $7,%xmm5,%xmm1
  3477. vpslld $25,%xmm5,%xmm2
  3478. vpxor %xmm1,%xmm7,%xmm7
  3479. vpsrld $18,%xmm5,%xmm1
  3480. vpxor %xmm2,%xmm7,%xmm7
  3481. vpslld $14,%xmm5,%xmm2
  3482. vmovdqu 240-128(%rax),%xmm0
  3483. vpsrld $10,%xmm0,%xmm4
  3484. vpxor %xmm1,%xmm7,%xmm7
  3485. vpsrld $17,%xmm0,%xmm1
  3486. vpxor %xmm2,%xmm7,%xmm7
  3487. vpslld $15,%xmm0,%xmm2
  3488. vpaddd %xmm7,%xmm6,%xmm6
  3489. vpxor %xmm1,%xmm4,%xmm7
  3490. vpsrld $19,%xmm0,%xmm1
  3491. vpxor %xmm2,%xmm7,%xmm7
  3492. vpslld $13,%xmm0,%xmm2
  3493. vpxor %xmm1,%xmm7,%xmm7
  3494. vpxor %xmm2,%xmm7,%xmm7
  3495. vpaddd %xmm7,%xmm6,%xmm6
  3496. vpsrld $6,%xmm11,%xmm7
  3497. vpslld $26,%xmm11,%xmm2
  3498. vmovdqu %xmm6,16-128(%rax)
  3499. vpaddd %xmm14,%xmm6,%xmm6
  3500. vpsrld $11,%xmm11,%xmm1
  3501. vpxor %xmm2,%xmm7,%xmm7
  3502. vpslld $21,%xmm11,%xmm2
  3503. vpaddd -96(%rbp),%xmm6,%xmm6
  3504. vpxor %xmm1,%xmm7,%xmm7
  3505. vpsrld $25,%xmm11,%xmm1
  3506. vpxor %xmm2,%xmm7,%xmm7
  3507. vpslld $7,%xmm11,%xmm2
  3508. vpandn %xmm13,%xmm11,%xmm0
  3509. vpand %xmm12,%xmm11,%xmm4
  3510. vpxor %xmm1,%xmm7,%xmm7
  3511. vpsrld $2,%xmm15,%xmm14
  3512. vpxor %xmm2,%xmm7,%xmm7
  3513. vpslld $30,%xmm15,%xmm1
  3514. vpxor %xmm4,%xmm0,%xmm0
  3515. vpxor %xmm15,%xmm8,%xmm4
  3516. vpxor %xmm1,%xmm14,%xmm14
  3517. vpaddd %xmm7,%xmm6,%xmm6
  3518. vpsrld $13,%xmm15,%xmm1
  3519. vpslld $19,%xmm15,%xmm2
  3520. vpaddd %xmm0,%xmm6,%xmm6
  3521. vpand %xmm4,%xmm3,%xmm3
  3522. vpxor %xmm1,%xmm14,%xmm7
  3523. vpsrld $22,%xmm15,%xmm1
  3524. vpxor %xmm2,%xmm7,%xmm7
  3525. vpslld $10,%xmm15,%xmm2
  3526. vpxor %xmm3,%xmm8,%xmm14
  3527. vpaddd %xmm6,%xmm10,%xmm10
  3528. vpxor %xmm1,%xmm7,%xmm7
  3529. vpxor %xmm2,%xmm7,%xmm7
  3530. vpaddd %xmm6,%xmm14,%xmm14
  3531. vpaddd %xmm7,%xmm14,%xmm14
  3532. vmovdqu 48-128(%rax),%xmm6
  3533. vpaddd 176-128(%rax),%xmm5,%xmm5
  3534. vpsrld $3,%xmm6,%xmm7
  3535. vpsrld $7,%xmm6,%xmm1
  3536. vpslld $25,%xmm6,%xmm2
  3537. vpxor %xmm1,%xmm7,%xmm7
  3538. vpsrld $18,%xmm6,%xmm1
  3539. vpxor %xmm2,%xmm7,%xmm7
  3540. vpslld $14,%xmm6,%xmm2
  3541. vmovdqu 0-128(%rax),%xmm0
  3542. vpsrld $10,%xmm0,%xmm3
  3543. vpxor %xmm1,%xmm7,%xmm7
  3544. vpsrld $17,%xmm0,%xmm1
  3545. vpxor %xmm2,%xmm7,%xmm7
  3546. vpslld $15,%xmm0,%xmm2
  3547. vpaddd %xmm7,%xmm5,%xmm5
  3548. vpxor %xmm1,%xmm3,%xmm7
  3549. vpsrld $19,%xmm0,%xmm1
  3550. vpxor %xmm2,%xmm7,%xmm7
  3551. vpslld $13,%xmm0,%xmm2
  3552. vpxor %xmm1,%xmm7,%xmm7
  3553. vpxor %xmm2,%xmm7,%xmm7
  3554. vpaddd %xmm7,%xmm5,%xmm5
  3555. vpsrld $6,%xmm10,%xmm7
  3556. vpslld $26,%xmm10,%xmm2
  3557. vmovdqu %xmm5,32-128(%rax)
  3558. vpaddd %xmm13,%xmm5,%xmm5
  3559. vpsrld $11,%xmm10,%xmm1
  3560. vpxor %xmm2,%xmm7,%xmm7
  3561. vpslld $21,%xmm10,%xmm2
  3562. vpaddd -64(%rbp),%xmm5,%xmm5
  3563. vpxor %xmm1,%xmm7,%xmm7
  3564. vpsrld $25,%xmm10,%xmm1
  3565. vpxor %xmm2,%xmm7,%xmm7
  3566. vpslld $7,%xmm10,%xmm2
  3567. vpandn %xmm12,%xmm10,%xmm0
  3568. vpand %xmm11,%xmm10,%xmm3
  3569. vpxor %xmm1,%xmm7,%xmm7
  3570. vpsrld $2,%xmm14,%xmm13
  3571. vpxor %xmm2,%xmm7,%xmm7
  3572. vpslld $30,%xmm14,%xmm1
  3573. vpxor %xmm3,%xmm0,%xmm0
  3574. vpxor %xmm14,%xmm15,%xmm3
  3575. vpxor %xmm1,%xmm13,%xmm13
  3576. vpaddd %xmm7,%xmm5,%xmm5
  3577. vpsrld $13,%xmm14,%xmm1
  3578. vpslld $19,%xmm14,%xmm2
  3579. vpaddd %xmm0,%xmm5,%xmm5
  3580. vpand %xmm3,%xmm4,%xmm4
  3581. vpxor %xmm1,%xmm13,%xmm7
  3582. vpsrld $22,%xmm14,%xmm1
  3583. vpxor %xmm2,%xmm7,%xmm7
  3584. vpslld $10,%xmm14,%xmm2
  3585. vpxor %xmm4,%xmm15,%xmm13
  3586. vpaddd %xmm5,%xmm9,%xmm9
  3587. vpxor %xmm1,%xmm7,%xmm7
  3588. vpxor %xmm2,%xmm7,%xmm7
  3589. vpaddd %xmm5,%xmm13,%xmm13
  3590. vpaddd %xmm7,%xmm13,%xmm13
  3591. vmovdqu 64-128(%rax),%xmm5
  3592. vpaddd 192-128(%rax),%xmm6,%xmm6
  3593. vpsrld $3,%xmm5,%xmm7
  3594. vpsrld $7,%xmm5,%xmm1
  3595. vpslld $25,%xmm5,%xmm2
  3596. vpxor %xmm1,%xmm7,%xmm7
  3597. vpsrld $18,%xmm5,%xmm1
  3598. vpxor %xmm2,%xmm7,%xmm7
  3599. vpslld $14,%xmm5,%xmm2
  3600. vmovdqu 16-128(%rax),%xmm0
  3601. vpsrld $10,%xmm0,%xmm4
  3602. vpxor %xmm1,%xmm7,%xmm7
  3603. vpsrld $17,%xmm0,%xmm1
  3604. vpxor %xmm2,%xmm7,%xmm7
  3605. vpslld $15,%xmm0,%xmm2
  3606. vpaddd %xmm7,%xmm6,%xmm6
  3607. vpxor %xmm1,%xmm4,%xmm7
  3608. vpsrld $19,%xmm0,%xmm1
  3609. vpxor %xmm2,%xmm7,%xmm7
  3610. vpslld $13,%xmm0,%xmm2
  3611. vpxor %xmm1,%xmm7,%xmm7
  3612. vpxor %xmm2,%xmm7,%xmm7
  3613. vpaddd %xmm7,%xmm6,%xmm6
  3614. vpsrld $6,%xmm9,%xmm7
  3615. vpslld $26,%xmm9,%xmm2
  3616. vmovdqu %xmm6,48-128(%rax)
  3617. vpaddd %xmm12,%xmm6,%xmm6
  3618. vpsrld $11,%xmm9,%xmm1
  3619. vpxor %xmm2,%xmm7,%xmm7
  3620. vpslld $21,%xmm9,%xmm2
  3621. vpaddd -32(%rbp),%xmm6,%xmm6
  3622. vpxor %xmm1,%xmm7,%xmm7
  3623. vpsrld $25,%xmm9,%xmm1
  3624. vpxor %xmm2,%xmm7,%xmm7
  3625. vpslld $7,%xmm9,%xmm2
  3626. vpandn %xmm11,%xmm9,%xmm0
  3627. vpand %xmm10,%xmm9,%xmm4
  3628. vpxor %xmm1,%xmm7,%xmm7
  3629. vpsrld $2,%xmm13,%xmm12
  3630. vpxor %xmm2,%xmm7,%xmm7
  3631. vpslld $30,%xmm13,%xmm1
  3632. vpxor %xmm4,%xmm0,%xmm0
  3633. vpxor %xmm13,%xmm14,%xmm4
  3634. vpxor %xmm1,%xmm12,%xmm12
  3635. vpaddd %xmm7,%xmm6,%xmm6
  3636. vpsrld $13,%xmm13,%xmm1
  3637. vpslld $19,%xmm13,%xmm2
  3638. vpaddd %xmm0,%xmm6,%xmm6
  3639. vpand %xmm4,%xmm3,%xmm3
  3640. vpxor %xmm1,%xmm12,%xmm7
  3641. vpsrld $22,%xmm13,%xmm1
  3642. vpxor %xmm2,%xmm7,%xmm7
  3643. vpslld $10,%xmm13,%xmm2
  3644. vpxor %xmm3,%xmm14,%xmm12
  3645. vpaddd %xmm6,%xmm8,%xmm8
  3646. vpxor %xmm1,%xmm7,%xmm7
  3647. vpxor %xmm2,%xmm7,%xmm7
  3648. vpaddd %xmm6,%xmm12,%xmm12
  3649. vpaddd %xmm7,%xmm12,%xmm12
  3650. vmovdqu 80-128(%rax),%xmm6
  3651. vpaddd 208-128(%rax),%xmm5,%xmm5
  3652. vpsrld $3,%xmm6,%xmm7
  3653. vpsrld $7,%xmm6,%xmm1
  3654. vpslld $25,%xmm6,%xmm2
  3655. vpxor %xmm1,%xmm7,%xmm7
  3656. vpsrld $18,%xmm6,%xmm1
  3657. vpxor %xmm2,%xmm7,%xmm7
  3658. vpslld $14,%xmm6,%xmm2
  3659. vmovdqu 32-128(%rax),%xmm0
  3660. vpsrld $10,%xmm0,%xmm3
  3661. vpxor %xmm1,%xmm7,%xmm7
  3662. vpsrld $17,%xmm0,%xmm1
  3663. vpxor %xmm2,%xmm7,%xmm7
  3664. vpslld $15,%xmm0,%xmm2
  3665. vpaddd %xmm7,%xmm5,%xmm5
  3666. vpxor %xmm1,%xmm3,%xmm7
  3667. vpsrld $19,%xmm0,%xmm1
  3668. vpxor %xmm2,%xmm7,%xmm7
  3669. vpslld $13,%xmm0,%xmm2
  3670. vpxor %xmm1,%xmm7,%xmm7
  3671. vpxor %xmm2,%xmm7,%xmm7
  3672. vpaddd %xmm7,%xmm5,%xmm5
  3673. vpsrld $6,%xmm8,%xmm7
  3674. vpslld $26,%xmm8,%xmm2
  3675. vmovdqu %xmm5,64-128(%rax)
  3676. vpaddd %xmm11,%xmm5,%xmm5
  3677. vpsrld $11,%xmm8,%xmm1
  3678. vpxor %xmm2,%xmm7,%xmm7
  3679. vpslld $21,%xmm8,%xmm2
  3680. vpaddd 0(%rbp),%xmm5,%xmm5
  3681. vpxor %xmm1,%xmm7,%xmm7
  3682. vpsrld $25,%xmm8,%xmm1
  3683. vpxor %xmm2,%xmm7,%xmm7
  3684. vpslld $7,%xmm8,%xmm2
  3685. vpandn %xmm10,%xmm8,%xmm0
  3686. vpand %xmm9,%xmm8,%xmm3
  3687. vpxor %xmm1,%xmm7,%xmm7
  3688. vpsrld $2,%xmm12,%xmm11
  3689. vpxor %xmm2,%xmm7,%xmm7
  3690. vpslld $30,%xmm12,%xmm1
  3691. vpxor %xmm3,%xmm0,%xmm0
  3692. vpxor %xmm12,%xmm13,%xmm3
  3693. vpxor %xmm1,%xmm11,%xmm11
  3694. vpaddd %xmm7,%xmm5,%xmm5
  3695. vpsrld $13,%xmm12,%xmm1
  3696. vpslld $19,%xmm12,%xmm2
  3697. vpaddd %xmm0,%xmm5,%xmm5
  3698. vpand %xmm3,%xmm4,%xmm4
  3699. vpxor %xmm1,%xmm11,%xmm7
  3700. vpsrld $22,%xmm12,%xmm1
  3701. vpxor %xmm2,%xmm7,%xmm7
  3702. vpslld $10,%xmm12,%xmm2
  3703. vpxor %xmm4,%xmm13,%xmm11
  3704. vpaddd %xmm5,%xmm15,%xmm15
  3705. vpxor %xmm1,%xmm7,%xmm7
  3706. vpxor %xmm2,%xmm7,%xmm7
  3707. vpaddd %xmm5,%xmm11,%xmm11
  3708. vpaddd %xmm7,%xmm11,%xmm11
  3709. vmovdqu 96-128(%rax),%xmm5
  3710. vpaddd 224-128(%rax),%xmm6,%xmm6
  3711. vpsrld $3,%xmm5,%xmm7
  3712. vpsrld $7,%xmm5,%xmm1
  3713. vpslld $25,%xmm5,%xmm2
  3714. vpxor %xmm1,%xmm7,%xmm7
  3715. vpsrld $18,%xmm5,%xmm1
  3716. vpxor %xmm2,%xmm7,%xmm7
  3717. vpslld $14,%xmm5,%xmm2
  3718. vmovdqu 48-128(%rax),%xmm0
  3719. vpsrld $10,%xmm0,%xmm4
  3720. vpxor %xmm1,%xmm7,%xmm7
  3721. vpsrld $17,%xmm0,%xmm1
  3722. vpxor %xmm2,%xmm7,%xmm7
  3723. vpslld $15,%xmm0,%xmm2
  3724. vpaddd %xmm7,%xmm6,%xmm6
  3725. vpxor %xmm1,%xmm4,%xmm7
  3726. vpsrld $19,%xmm0,%xmm1
  3727. vpxor %xmm2,%xmm7,%xmm7
  3728. vpslld $13,%xmm0,%xmm2
  3729. vpxor %xmm1,%xmm7,%xmm7
  3730. vpxor %xmm2,%xmm7,%xmm7
  3731. vpaddd %xmm7,%xmm6,%xmm6
  3732. vpsrld $6,%xmm15,%xmm7
  3733. vpslld $26,%xmm15,%xmm2
  3734. vmovdqu %xmm6,80-128(%rax)
  3735. vpaddd %xmm10,%xmm6,%xmm6
  3736. vpsrld $11,%xmm15,%xmm1
  3737. vpxor %xmm2,%xmm7,%xmm7
  3738. vpslld $21,%xmm15,%xmm2
  3739. vpaddd 32(%rbp),%xmm6,%xmm6
  3740. vpxor %xmm1,%xmm7,%xmm7
  3741. vpsrld $25,%xmm15,%xmm1
  3742. vpxor %xmm2,%xmm7,%xmm7
  3743. vpslld $7,%xmm15,%xmm2
  3744. vpandn %xmm9,%xmm15,%xmm0
  3745. vpand %xmm8,%xmm15,%xmm4
  3746. vpxor %xmm1,%xmm7,%xmm7
  3747. vpsrld $2,%xmm11,%xmm10
  3748. vpxor %xmm2,%xmm7,%xmm7
  3749. vpslld $30,%xmm11,%xmm1
  3750. vpxor %xmm4,%xmm0,%xmm0
  3751. vpxor %xmm11,%xmm12,%xmm4
  3752. vpxor %xmm1,%xmm10,%xmm10
  3753. vpaddd %xmm7,%xmm6,%xmm6
  3754. vpsrld $13,%xmm11,%xmm1
  3755. vpslld $19,%xmm11,%xmm2
  3756. vpaddd %xmm0,%xmm6,%xmm6
  3757. vpand %xmm4,%xmm3,%xmm3
  3758. vpxor %xmm1,%xmm10,%xmm7
  3759. vpsrld $22,%xmm11,%xmm1
  3760. vpxor %xmm2,%xmm7,%xmm7
  3761. vpslld $10,%xmm11,%xmm2
  3762. vpxor %xmm3,%xmm12,%xmm10
  3763. vpaddd %xmm6,%xmm14,%xmm14
  3764. vpxor %xmm1,%xmm7,%xmm7
  3765. vpxor %xmm2,%xmm7,%xmm7
  3766. vpaddd %xmm6,%xmm10,%xmm10
  3767. vpaddd %xmm7,%xmm10,%xmm10
  3768. vmovdqu 112-128(%rax),%xmm6
  3769. vpaddd 240-128(%rax),%xmm5,%xmm5
  3770. vpsrld $3,%xmm6,%xmm7
  3771. vpsrld $7,%xmm6,%xmm1
  3772. vpslld $25,%xmm6,%xmm2
  3773. vpxor %xmm1,%xmm7,%xmm7
  3774. vpsrld $18,%xmm6,%xmm1
  3775. vpxor %xmm2,%xmm7,%xmm7
  3776. vpslld $14,%xmm6,%xmm2
  3777. vmovdqu 64-128(%rax),%xmm0
  3778. vpsrld $10,%xmm0,%xmm3
  3779. vpxor %xmm1,%xmm7,%xmm7
  3780. vpsrld $17,%xmm0,%xmm1
  3781. vpxor %xmm2,%xmm7,%xmm7
  3782. vpslld $15,%xmm0,%xmm2
  3783. vpaddd %xmm7,%xmm5,%xmm5
  3784. vpxor %xmm1,%xmm3,%xmm7
  3785. vpsrld $19,%xmm0,%xmm1
  3786. vpxor %xmm2,%xmm7,%xmm7
  3787. vpslld $13,%xmm0,%xmm2
  3788. vpxor %xmm1,%xmm7,%xmm7
  3789. vpxor %xmm2,%xmm7,%xmm7
  3790. vpaddd %xmm7,%xmm5,%xmm5
  3791. vpsrld $6,%xmm14,%xmm7
  3792. vpslld $26,%xmm14,%xmm2
  3793. vmovdqu %xmm5,96-128(%rax)
  3794. vpaddd %xmm9,%xmm5,%xmm5
  3795. vpsrld $11,%xmm14,%xmm1
  3796. vpxor %xmm2,%xmm7,%xmm7
  3797. vpslld $21,%xmm14,%xmm2
  3798. vpaddd 64(%rbp),%xmm5,%xmm5
  3799. vpxor %xmm1,%xmm7,%xmm7
  3800. vpsrld $25,%xmm14,%xmm1
  3801. vpxor %xmm2,%xmm7,%xmm7
  3802. vpslld $7,%xmm14,%xmm2
  3803. vpandn %xmm8,%xmm14,%xmm0
  3804. vpand %xmm15,%xmm14,%xmm3
  3805. vpxor %xmm1,%xmm7,%xmm7
  3806. vpsrld $2,%xmm10,%xmm9
  3807. vpxor %xmm2,%xmm7,%xmm7
  3808. vpslld $30,%xmm10,%xmm1
  3809. vpxor %xmm3,%xmm0,%xmm0
  3810. vpxor %xmm10,%xmm11,%xmm3
  3811. vpxor %xmm1,%xmm9,%xmm9
  3812. vpaddd %xmm7,%xmm5,%xmm5
  3813. vpsrld $13,%xmm10,%xmm1
  3814. vpslld $19,%xmm10,%xmm2
  3815. vpaddd %xmm0,%xmm5,%xmm5
  3816. vpand %xmm3,%xmm4,%xmm4
  3817. vpxor %xmm1,%xmm9,%xmm7
  3818. vpsrld $22,%xmm10,%xmm1
  3819. vpxor %xmm2,%xmm7,%xmm7
  3820. vpslld $10,%xmm10,%xmm2
  3821. vpxor %xmm4,%xmm11,%xmm9
  3822. vpaddd %xmm5,%xmm13,%xmm13
  3823. vpxor %xmm1,%xmm7,%xmm7
  3824. vpxor %xmm2,%xmm7,%xmm7
  3825. vpaddd %xmm5,%xmm9,%xmm9
  3826. vpaddd %xmm7,%xmm9,%xmm9
  3827. vmovdqu 128-128(%rax),%xmm5
  3828. vpaddd 0-128(%rax),%xmm6,%xmm6
  3829. vpsrld $3,%xmm5,%xmm7
  3830. vpsrld $7,%xmm5,%xmm1
  3831. vpslld $25,%xmm5,%xmm2
  3832. vpxor %xmm1,%xmm7,%xmm7
  3833. vpsrld $18,%xmm5,%xmm1
  3834. vpxor %xmm2,%xmm7,%xmm7
  3835. vpslld $14,%xmm5,%xmm2
  3836. vmovdqu 80-128(%rax),%xmm0
  3837. vpsrld $10,%xmm0,%xmm4
  3838. vpxor %xmm1,%xmm7,%xmm7
  3839. vpsrld $17,%xmm0,%xmm1
  3840. vpxor %xmm2,%xmm7,%xmm7
  3841. vpslld $15,%xmm0,%xmm2
  3842. vpaddd %xmm7,%xmm6,%xmm6
  3843. vpxor %xmm1,%xmm4,%xmm7
  3844. vpsrld $19,%xmm0,%xmm1
  3845. vpxor %xmm2,%xmm7,%xmm7
  3846. vpslld $13,%xmm0,%xmm2
  3847. vpxor %xmm1,%xmm7,%xmm7
  3848. vpxor %xmm2,%xmm7,%xmm7
  3849. vpaddd %xmm7,%xmm6,%xmm6
  3850. vpsrld $6,%xmm13,%xmm7
  3851. vpslld $26,%xmm13,%xmm2
  3852. vmovdqu %xmm6,112-128(%rax)
  3853. vpaddd %xmm8,%xmm6,%xmm6
  3854. vpsrld $11,%xmm13,%xmm1
  3855. vpxor %xmm2,%xmm7,%xmm7
  3856. vpslld $21,%xmm13,%xmm2
  3857. vpaddd 96(%rbp),%xmm6,%xmm6
  3858. vpxor %xmm1,%xmm7,%xmm7
  3859. vpsrld $25,%xmm13,%xmm1
  3860. vpxor %xmm2,%xmm7,%xmm7
  3861. vpslld $7,%xmm13,%xmm2
  3862. vpandn %xmm15,%xmm13,%xmm0
  3863. vpand %xmm14,%xmm13,%xmm4
  3864. vpxor %xmm1,%xmm7,%xmm7
  3865. vpsrld $2,%xmm9,%xmm8
  3866. vpxor %xmm2,%xmm7,%xmm7
  3867. vpslld $30,%xmm9,%xmm1
  3868. vpxor %xmm4,%xmm0,%xmm0
  3869. vpxor %xmm9,%xmm10,%xmm4
  3870. vpxor %xmm1,%xmm8,%xmm8
  3871. vpaddd %xmm7,%xmm6,%xmm6
  3872. vpsrld $13,%xmm9,%xmm1
  3873. vpslld $19,%xmm9,%xmm2
  3874. vpaddd %xmm0,%xmm6,%xmm6
  3875. vpand %xmm4,%xmm3,%xmm3
  3876. vpxor %xmm1,%xmm8,%xmm7
  3877. vpsrld $22,%xmm9,%xmm1
  3878. vpxor %xmm2,%xmm7,%xmm7
  3879. vpslld $10,%xmm9,%xmm2
  3880. vpxor %xmm3,%xmm10,%xmm8
  3881. vpaddd %xmm6,%xmm12,%xmm12
  3882. vpxor %xmm1,%xmm7,%xmm7
  3883. vpxor %xmm2,%xmm7,%xmm7
  3884. vpaddd %xmm6,%xmm8,%xmm8
  3885. vpaddd %xmm7,%xmm8,%xmm8
  3886. addq $256,%rbp
  3887. vmovdqu 144-128(%rax),%xmm6
  3888. vpaddd 16-128(%rax),%xmm5,%xmm5
  3889. vpsrld $3,%xmm6,%xmm7
  3890. vpsrld $7,%xmm6,%xmm1
  3891. vpslld $25,%xmm6,%xmm2
  3892. vpxor %xmm1,%xmm7,%xmm7
  3893. vpsrld $18,%xmm6,%xmm1
  3894. vpxor %xmm2,%xmm7,%xmm7
  3895. vpslld $14,%xmm6,%xmm2
  3896. vmovdqu 96-128(%rax),%xmm0
  3897. vpsrld $10,%xmm0,%xmm3
  3898. vpxor %xmm1,%xmm7,%xmm7
  3899. vpsrld $17,%xmm0,%xmm1
  3900. vpxor %xmm2,%xmm7,%xmm7
  3901. vpslld $15,%xmm0,%xmm2
  3902. vpaddd %xmm7,%xmm5,%xmm5
  3903. vpxor %xmm1,%xmm3,%xmm7
  3904. vpsrld $19,%xmm0,%xmm1
  3905. vpxor %xmm2,%xmm7,%xmm7
  3906. vpslld $13,%xmm0,%xmm2
  3907. vpxor %xmm1,%xmm7,%xmm7
  3908. vpxor %xmm2,%xmm7,%xmm7
  3909. vpaddd %xmm7,%xmm5,%xmm5
  3910. vpsrld $6,%xmm12,%xmm7
  3911. vpslld $26,%xmm12,%xmm2
  3912. vmovdqu %xmm5,128-128(%rax)
  3913. vpaddd %xmm15,%xmm5,%xmm5
  3914. vpsrld $11,%xmm12,%xmm1
  3915. vpxor %xmm2,%xmm7,%xmm7
  3916. vpslld $21,%xmm12,%xmm2
  3917. vpaddd -128(%rbp),%xmm5,%xmm5
  3918. vpxor %xmm1,%xmm7,%xmm7
  3919. vpsrld $25,%xmm12,%xmm1
  3920. vpxor %xmm2,%xmm7,%xmm7
  3921. vpslld $7,%xmm12,%xmm2
  3922. vpandn %xmm14,%xmm12,%xmm0
  3923. vpand %xmm13,%xmm12,%xmm3
  3924. vpxor %xmm1,%xmm7,%xmm7
  3925. vpsrld $2,%xmm8,%xmm15
  3926. vpxor %xmm2,%xmm7,%xmm7
  3927. vpslld $30,%xmm8,%xmm1
  3928. vpxor %xmm3,%xmm0,%xmm0
  3929. vpxor %xmm8,%xmm9,%xmm3
  3930. vpxor %xmm1,%xmm15,%xmm15
  3931. vpaddd %xmm7,%xmm5,%xmm5
  3932. vpsrld $13,%xmm8,%xmm1
  3933. vpslld $19,%xmm8,%xmm2
  3934. vpaddd %xmm0,%xmm5,%xmm5
  3935. vpand %xmm3,%xmm4,%xmm4
  3936. vpxor %xmm1,%xmm15,%xmm7
  3937. vpsrld $22,%xmm8,%xmm1
  3938. vpxor %xmm2,%xmm7,%xmm7
  3939. vpslld $10,%xmm8,%xmm2
  3940. vpxor %xmm4,%xmm9,%xmm15
  3941. vpaddd %xmm5,%xmm11,%xmm11
  3942. vpxor %xmm1,%xmm7,%xmm7
  3943. vpxor %xmm2,%xmm7,%xmm7
  3944. vpaddd %xmm5,%xmm15,%xmm15
  3945. vpaddd %xmm7,%xmm15,%xmm15
  3946. vmovdqu 160-128(%rax),%xmm5
  3947. vpaddd 32-128(%rax),%xmm6,%xmm6
  3948. vpsrld $3,%xmm5,%xmm7
  3949. vpsrld $7,%xmm5,%xmm1
  3950. vpslld $25,%xmm5,%xmm2
  3951. vpxor %xmm1,%xmm7,%xmm7
  3952. vpsrld $18,%xmm5,%xmm1
  3953. vpxor %xmm2,%xmm7,%xmm7
  3954. vpslld $14,%xmm5,%xmm2
  3955. vmovdqu 112-128(%rax),%xmm0
  3956. vpsrld $10,%xmm0,%xmm4
  3957. vpxor %xmm1,%xmm7,%xmm7
  3958. vpsrld $17,%xmm0,%xmm1
  3959. vpxor %xmm2,%xmm7,%xmm7
  3960. vpslld $15,%xmm0,%xmm2
  3961. vpaddd %xmm7,%xmm6,%xmm6
  3962. vpxor %xmm1,%xmm4,%xmm7
  3963. vpsrld $19,%xmm0,%xmm1
  3964. vpxor %xmm2,%xmm7,%xmm7
  3965. vpslld $13,%xmm0,%xmm2
  3966. vpxor %xmm1,%xmm7,%xmm7
  3967. vpxor %xmm2,%xmm7,%xmm7
  3968. vpaddd %xmm7,%xmm6,%xmm6
  3969. vpsrld $6,%xmm11,%xmm7
  3970. vpslld $26,%xmm11,%xmm2
  3971. vmovdqu %xmm6,144-128(%rax)
  3972. vpaddd %xmm14,%xmm6,%xmm6
  3973. vpsrld $11,%xmm11,%xmm1
  3974. vpxor %xmm2,%xmm7,%xmm7
  3975. vpslld $21,%xmm11,%xmm2
  3976. vpaddd -96(%rbp),%xmm6,%xmm6
  3977. vpxor %xmm1,%xmm7,%xmm7
  3978. vpsrld $25,%xmm11,%xmm1
  3979. vpxor %xmm2,%xmm7,%xmm7
  3980. vpslld $7,%xmm11,%xmm2
  3981. vpandn %xmm13,%xmm11,%xmm0
  3982. vpand %xmm12,%xmm11,%xmm4
  3983. vpxor %xmm1,%xmm7,%xmm7
  3984. vpsrld $2,%xmm15,%xmm14
  3985. vpxor %xmm2,%xmm7,%xmm7
  3986. vpslld $30,%xmm15,%xmm1
  3987. vpxor %xmm4,%xmm0,%xmm0
  3988. vpxor %xmm15,%xmm8,%xmm4
  3989. vpxor %xmm1,%xmm14,%xmm14
  3990. vpaddd %xmm7,%xmm6,%xmm6
  3991. vpsrld $13,%xmm15,%xmm1
  3992. vpslld $19,%xmm15,%xmm2
  3993. vpaddd %xmm0,%xmm6,%xmm6
  3994. vpand %xmm4,%xmm3,%xmm3
  3995. vpxor %xmm1,%xmm14,%xmm7
  3996. vpsrld $22,%xmm15,%xmm1
  3997. vpxor %xmm2,%xmm7,%xmm7
  3998. vpslld $10,%xmm15,%xmm2
  3999. vpxor %xmm3,%xmm8,%xmm14
  4000. vpaddd %xmm6,%xmm10,%xmm10
  4001. vpxor %xmm1,%xmm7,%xmm7
  4002. vpxor %xmm2,%xmm7,%xmm7
  4003. vpaddd %xmm6,%xmm14,%xmm14
  4004. vpaddd %xmm7,%xmm14,%xmm14
  4005. vmovdqu 176-128(%rax),%xmm6
  4006. vpaddd 48-128(%rax),%xmm5,%xmm5
  4007. vpsrld $3,%xmm6,%xmm7
  4008. vpsrld $7,%xmm6,%xmm1
  4009. vpslld $25,%xmm6,%xmm2
  4010. vpxor %xmm1,%xmm7,%xmm7
  4011. vpsrld $18,%xmm6,%xmm1
  4012. vpxor %xmm2,%xmm7,%xmm7
  4013. vpslld $14,%xmm6,%xmm2
  4014. vmovdqu 128-128(%rax),%xmm0
  4015. vpsrld $10,%xmm0,%xmm3
  4016. vpxor %xmm1,%xmm7,%xmm7
  4017. vpsrld $17,%xmm0,%xmm1
  4018. vpxor %xmm2,%xmm7,%xmm7
  4019. vpslld $15,%xmm0,%xmm2
  4020. vpaddd %xmm7,%xmm5,%xmm5
  4021. vpxor %xmm1,%xmm3,%xmm7
  4022. vpsrld $19,%xmm0,%xmm1
  4023. vpxor %xmm2,%xmm7,%xmm7
  4024. vpslld $13,%xmm0,%xmm2
  4025. vpxor %xmm1,%xmm7,%xmm7
  4026. vpxor %xmm2,%xmm7,%xmm7
  4027. vpaddd %xmm7,%xmm5,%xmm5
  4028. vpsrld $6,%xmm10,%xmm7
  4029. vpslld $26,%xmm10,%xmm2
  4030. vmovdqu %xmm5,160-128(%rax)
  4031. vpaddd %xmm13,%xmm5,%xmm5
  4032. vpsrld $11,%xmm10,%xmm1
  4033. vpxor %xmm2,%xmm7,%xmm7
  4034. vpslld $21,%xmm10,%xmm2
  4035. vpaddd -64(%rbp),%xmm5,%xmm5
  4036. vpxor %xmm1,%xmm7,%xmm7
  4037. vpsrld $25,%xmm10,%xmm1
  4038. vpxor %xmm2,%xmm7,%xmm7
  4039. vpslld $7,%xmm10,%xmm2
  4040. vpandn %xmm12,%xmm10,%xmm0
  4041. vpand %xmm11,%xmm10,%xmm3
  4042. vpxor %xmm1,%xmm7,%xmm7
  4043. vpsrld $2,%xmm14,%xmm13
  4044. vpxor %xmm2,%xmm7,%xmm7
  4045. vpslld $30,%xmm14,%xmm1
  4046. vpxor %xmm3,%xmm0,%xmm0
  4047. vpxor %xmm14,%xmm15,%xmm3
  4048. vpxor %xmm1,%xmm13,%xmm13
  4049. vpaddd %xmm7,%xmm5,%xmm5
  4050. vpsrld $13,%xmm14,%xmm1
  4051. vpslld $19,%xmm14,%xmm2
  4052. vpaddd %xmm0,%xmm5,%xmm5
  4053. vpand %xmm3,%xmm4,%xmm4
  4054. vpxor %xmm1,%xmm13,%xmm7
  4055. vpsrld $22,%xmm14,%xmm1
  4056. vpxor %xmm2,%xmm7,%xmm7
  4057. vpslld $10,%xmm14,%xmm2
  4058. vpxor %xmm4,%xmm15,%xmm13
  4059. vpaddd %xmm5,%xmm9,%xmm9
  4060. vpxor %xmm1,%xmm7,%xmm7
  4061. vpxor %xmm2,%xmm7,%xmm7
  4062. vpaddd %xmm5,%xmm13,%xmm13
  4063. vpaddd %xmm7,%xmm13,%xmm13
  4064. vmovdqu 192-128(%rax),%xmm5
  4065. vpaddd 64-128(%rax),%xmm6,%xmm6
  4066. vpsrld $3,%xmm5,%xmm7
  4067. vpsrld $7,%xmm5,%xmm1
  4068. vpslld $25,%xmm5,%xmm2
  4069. vpxor %xmm1,%xmm7,%xmm7
  4070. vpsrld $18,%xmm5,%xmm1
  4071. vpxor %xmm2,%xmm7,%xmm7
  4072. vpslld $14,%xmm5,%xmm2
  4073. vmovdqu 144-128(%rax),%xmm0
  4074. vpsrld $10,%xmm0,%xmm4
  4075. vpxor %xmm1,%xmm7,%xmm7
  4076. vpsrld $17,%xmm0,%xmm1
  4077. vpxor %xmm2,%xmm7,%xmm7
  4078. vpslld $15,%xmm0,%xmm2
  4079. vpaddd %xmm7,%xmm6,%xmm6
  4080. vpxor %xmm1,%xmm4,%xmm7
  4081. vpsrld $19,%xmm0,%xmm1
  4082. vpxor %xmm2,%xmm7,%xmm7
  4083. vpslld $13,%xmm0,%xmm2
  4084. vpxor %xmm1,%xmm7,%xmm7
  4085. vpxor %xmm2,%xmm7,%xmm7
  4086. vpaddd %xmm7,%xmm6,%xmm6
  4087. vpsrld $6,%xmm9,%xmm7
  4088. vpslld $26,%xmm9,%xmm2
  4089. vmovdqu %xmm6,176-128(%rax)
  4090. vpaddd %xmm12,%xmm6,%xmm6
  4091. vpsrld $11,%xmm9,%xmm1
  4092. vpxor %xmm2,%xmm7,%xmm7
  4093. vpslld $21,%xmm9,%xmm2
  4094. vpaddd -32(%rbp),%xmm6,%xmm6
  4095. vpxor %xmm1,%xmm7,%xmm7
  4096. vpsrld $25,%xmm9,%xmm1
  4097. vpxor %xmm2,%xmm7,%xmm7
  4098. vpslld $7,%xmm9,%xmm2
  4099. vpandn %xmm11,%xmm9,%xmm0
  4100. vpand %xmm10,%xmm9,%xmm4
  4101. vpxor %xmm1,%xmm7,%xmm7
  4102. vpsrld $2,%xmm13,%xmm12
  4103. vpxor %xmm2,%xmm7,%xmm7
  4104. vpslld $30,%xmm13,%xmm1
  4105. vpxor %xmm4,%xmm0,%xmm0
  4106. vpxor %xmm13,%xmm14,%xmm4
  4107. vpxor %xmm1,%xmm12,%xmm12
  4108. vpaddd %xmm7,%xmm6,%xmm6
  4109. vpsrld $13,%xmm13,%xmm1
  4110. vpslld $19,%xmm13,%xmm2
  4111. vpaddd %xmm0,%xmm6,%xmm6
  4112. vpand %xmm4,%xmm3,%xmm3
  4113. vpxor %xmm1,%xmm12,%xmm7
  4114. vpsrld $22,%xmm13,%xmm1
  4115. vpxor %xmm2,%xmm7,%xmm7
  4116. vpslld $10,%xmm13,%xmm2
  4117. vpxor %xmm3,%xmm14,%xmm12
  4118. vpaddd %xmm6,%xmm8,%xmm8
  4119. vpxor %xmm1,%xmm7,%xmm7
  4120. vpxor %xmm2,%xmm7,%xmm7
  4121. vpaddd %xmm6,%xmm12,%xmm12
  4122. vpaddd %xmm7,%xmm12,%xmm12
  4123. vmovdqu 208-128(%rax),%xmm6
  4124. vpaddd 80-128(%rax),%xmm5,%xmm5
  4125. vpsrld $3,%xmm6,%xmm7
  4126. vpsrld $7,%xmm6,%xmm1
  4127. vpslld $25,%xmm6,%xmm2
  4128. vpxor %xmm1,%xmm7,%xmm7
  4129. vpsrld $18,%xmm6,%xmm1
  4130. vpxor %xmm2,%xmm7,%xmm7
  4131. vpslld $14,%xmm6,%xmm2
  4132. vmovdqu 160-128(%rax),%xmm0
  4133. vpsrld $10,%xmm0,%xmm3
  4134. vpxor %xmm1,%xmm7,%xmm7
  4135. vpsrld $17,%xmm0,%xmm1
  4136. vpxor %xmm2,%xmm7,%xmm7
  4137. vpslld $15,%xmm0,%xmm2
  4138. vpaddd %xmm7,%xmm5,%xmm5
  4139. vpxor %xmm1,%xmm3,%xmm7
  4140. vpsrld $19,%xmm0,%xmm1
  4141. vpxor %xmm2,%xmm7,%xmm7
  4142. vpslld $13,%xmm0,%xmm2
  4143. vpxor %xmm1,%xmm7,%xmm7
  4144. vpxor %xmm2,%xmm7,%xmm7
  4145. vpaddd %xmm7,%xmm5,%xmm5
  4146. vpsrld $6,%xmm8,%xmm7
  4147. vpslld $26,%xmm8,%xmm2
  4148. vmovdqu %xmm5,192-128(%rax)
  4149. vpaddd %xmm11,%xmm5,%xmm5
  4150. vpsrld $11,%xmm8,%xmm1
  4151. vpxor %xmm2,%xmm7,%xmm7
  4152. vpslld $21,%xmm8,%xmm2
  4153. vpaddd 0(%rbp),%xmm5,%xmm5
  4154. vpxor %xmm1,%xmm7,%xmm7
  4155. vpsrld $25,%xmm8,%xmm1
  4156. vpxor %xmm2,%xmm7,%xmm7
  4157. vpslld $7,%xmm8,%xmm2
  4158. vpandn %xmm10,%xmm8,%xmm0
  4159. vpand %xmm9,%xmm8,%xmm3
  4160. vpxor %xmm1,%xmm7,%xmm7
  4161. vpsrld $2,%xmm12,%xmm11
  4162. vpxor %xmm2,%xmm7,%xmm7
  4163. vpslld $30,%xmm12,%xmm1
  4164. vpxor %xmm3,%xmm0,%xmm0
  4165. vpxor %xmm12,%xmm13,%xmm3
  4166. vpxor %xmm1,%xmm11,%xmm11
  4167. vpaddd %xmm7,%xmm5,%xmm5
  4168. vpsrld $13,%xmm12,%xmm1
  4169. vpslld $19,%xmm12,%xmm2
  4170. vpaddd %xmm0,%xmm5,%xmm5
  4171. vpand %xmm3,%xmm4,%xmm4
  4172. vpxor %xmm1,%xmm11,%xmm7
  4173. vpsrld $22,%xmm12,%xmm1
  4174. vpxor %xmm2,%xmm7,%xmm7
  4175. vpslld $10,%xmm12,%xmm2
  4176. vpxor %xmm4,%xmm13,%xmm11
  4177. vpaddd %xmm5,%xmm15,%xmm15
  4178. vpxor %xmm1,%xmm7,%xmm7
  4179. vpxor %xmm2,%xmm7,%xmm7
  4180. vpaddd %xmm5,%xmm11,%xmm11
  4181. vpaddd %xmm7,%xmm11,%xmm11
  4182. vmovdqu 224-128(%rax),%xmm5
  4183. vpaddd 96-128(%rax),%xmm6,%xmm6
  4184. vpsrld $3,%xmm5,%xmm7
  4185. vpsrld $7,%xmm5,%xmm1
  4186. vpslld $25,%xmm5,%xmm2
  4187. vpxor %xmm1,%xmm7,%xmm7
  4188. vpsrld $18,%xmm5,%xmm1
  4189. vpxor %xmm2,%xmm7,%xmm7
  4190. vpslld $14,%xmm5,%xmm2
  4191. vmovdqu 176-128(%rax),%xmm0
  4192. vpsrld $10,%xmm0,%xmm4
  4193. vpxor %xmm1,%xmm7,%xmm7
  4194. vpsrld $17,%xmm0,%xmm1
  4195. vpxor %xmm2,%xmm7,%xmm7
  4196. vpslld $15,%xmm0,%xmm2
  4197. vpaddd %xmm7,%xmm6,%xmm6
  4198. vpxor %xmm1,%xmm4,%xmm7
  4199. vpsrld $19,%xmm0,%xmm1
  4200. vpxor %xmm2,%xmm7,%xmm7
  4201. vpslld $13,%xmm0,%xmm2
  4202. vpxor %xmm1,%xmm7,%xmm7
  4203. vpxor %xmm2,%xmm7,%xmm7
  4204. vpaddd %xmm7,%xmm6,%xmm6
  4205. vpsrld $6,%xmm15,%xmm7
  4206. vpslld $26,%xmm15,%xmm2
  4207. vmovdqu %xmm6,208-128(%rax)
  4208. vpaddd %xmm10,%xmm6,%xmm6
  4209. vpsrld $11,%xmm15,%xmm1
  4210. vpxor %xmm2,%xmm7,%xmm7
  4211. vpslld $21,%xmm15,%xmm2
  4212. vpaddd 32(%rbp),%xmm6,%xmm6
  4213. vpxor %xmm1,%xmm7,%xmm7
  4214. vpsrld $25,%xmm15,%xmm1
  4215. vpxor %xmm2,%xmm7,%xmm7
  4216. vpslld $7,%xmm15,%xmm2
  4217. vpandn %xmm9,%xmm15,%xmm0
  4218. vpand %xmm8,%xmm15,%xmm4
  4219. vpxor %xmm1,%xmm7,%xmm7
  4220. vpsrld $2,%xmm11,%xmm10
  4221. vpxor %xmm2,%xmm7,%xmm7
  4222. vpslld $30,%xmm11,%xmm1
  4223. vpxor %xmm4,%xmm0,%xmm0
  4224. vpxor %xmm11,%xmm12,%xmm4
  4225. vpxor %xmm1,%xmm10,%xmm10
  4226. vpaddd %xmm7,%xmm6,%xmm6
  4227. vpsrld $13,%xmm11,%xmm1
  4228. vpslld $19,%xmm11,%xmm2
  4229. vpaddd %xmm0,%xmm6,%xmm6
  4230. vpand %xmm4,%xmm3,%xmm3
  4231. vpxor %xmm1,%xmm10,%xmm7
  4232. vpsrld $22,%xmm11,%xmm1
  4233. vpxor %xmm2,%xmm7,%xmm7
  4234. vpslld $10,%xmm11,%xmm2
  4235. vpxor %xmm3,%xmm12,%xmm10
  4236. vpaddd %xmm6,%xmm14,%xmm14
  4237. vpxor %xmm1,%xmm7,%xmm7
  4238. vpxor %xmm2,%xmm7,%xmm7
  4239. vpaddd %xmm6,%xmm10,%xmm10
  4240. vpaddd %xmm7,%xmm10,%xmm10
  4241. vmovdqu 240-128(%rax),%xmm6
  4242. vpaddd 112-128(%rax),%xmm5,%xmm5
  4243. vpsrld $3,%xmm6,%xmm7
  4244. vpsrld $7,%xmm6,%xmm1
  4245. vpslld $25,%xmm6,%xmm2
  4246. vpxor %xmm1,%xmm7,%xmm7
  4247. vpsrld $18,%xmm6,%xmm1
  4248. vpxor %xmm2,%xmm7,%xmm7
  4249. vpslld $14,%xmm6,%xmm2
  4250. vmovdqu 192-128(%rax),%xmm0
  4251. vpsrld $10,%xmm0,%xmm3
  4252. vpxor %xmm1,%xmm7,%xmm7
  4253. vpsrld $17,%xmm0,%xmm1
  4254. vpxor %xmm2,%xmm7,%xmm7
  4255. vpslld $15,%xmm0,%xmm2
  4256. vpaddd %xmm7,%xmm5,%xmm5
  4257. vpxor %xmm1,%xmm3,%xmm7
  4258. vpsrld $19,%xmm0,%xmm1
  4259. vpxor %xmm2,%xmm7,%xmm7
  4260. vpslld $13,%xmm0,%xmm2
  4261. vpxor %xmm1,%xmm7,%xmm7
  4262. vpxor %xmm2,%xmm7,%xmm7
  4263. vpaddd %xmm7,%xmm5,%xmm5
  4264. vpsrld $6,%xmm14,%xmm7
  4265. vpslld $26,%xmm14,%xmm2
  4266. vmovdqu %xmm5,224-128(%rax)
  4267. vpaddd %xmm9,%xmm5,%xmm5
  4268. vpsrld $11,%xmm14,%xmm1
  4269. vpxor %xmm2,%xmm7,%xmm7
  4270. vpslld $21,%xmm14,%xmm2
  4271. vpaddd 64(%rbp),%xmm5,%xmm5
  4272. vpxor %xmm1,%xmm7,%xmm7
  4273. vpsrld $25,%xmm14,%xmm1
  4274. vpxor %xmm2,%xmm7,%xmm7
  4275. vpslld $7,%xmm14,%xmm2
  4276. vpandn %xmm8,%xmm14,%xmm0
  4277. vpand %xmm15,%xmm14,%xmm3
  4278. vpxor %xmm1,%xmm7,%xmm7
  4279. vpsrld $2,%xmm10,%xmm9
  4280. vpxor %xmm2,%xmm7,%xmm7
  4281. vpslld $30,%xmm10,%xmm1
  4282. vpxor %xmm3,%xmm0,%xmm0
  4283. vpxor %xmm10,%xmm11,%xmm3
  4284. vpxor %xmm1,%xmm9,%xmm9
  4285. vpaddd %xmm7,%xmm5,%xmm5
  4286. vpsrld $13,%xmm10,%xmm1
  4287. vpslld $19,%xmm10,%xmm2
  4288. vpaddd %xmm0,%xmm5,%xmm5
  4289. vpand %xmm3,%xmm4,%xmm4
  4290. vpxor %xmm1,%xmm9,%xmm7
  4291. vpsrld $22,%xmm10,%xmm1
  4292. vpxor %xmm2,%xmm7,%xmm7
  4293. vpslld $10,%xmm10,%xmm2
  4294. vpxor %xmm4,%xmm11,%xmm9
  4295. vpaddd %xmm5,%xmm13,%xmm13
  4296. vpxor %xmm1,%xmm7,%xmm7
  4297. vpxor %xmm2,%xmm7,%xmm7
  4298. vpaddd %xmm5,%xmm9,%xmm9
  4299. vpaddd %xmm7,%xmm9,%xmm9
  4300. vmovdqu 0-128(%rax),%xmm5
  4301. vpaddd 128-128(%rax),%xmm6,%xmm6
  4302. vpsrld $3,%xmm5,%xmm7
  4303. vpsrld $7,%xmm5,%xmm1
  4304. vpslld $25,%xmm5,%xmm2
  4305. vpxor %xmm1,%xmm7,%xmm7
  4306. vpsrld $18,%xmm5,%xmm1
  4307. vpxor %xmm2,%xmm7,%xmm7
  4308. vpslld $14,%xmm5,%xmm2
  4309. vmovdqu 208-128(%rax),%xmm0
  4310. vpsrld $10,%xmm0,%xmm4
  4311. vpxor %xmm1,%xmm7,%xmm7
  4312. vpsrld $17,%xmm0,%xmm1
  4313. vpxor %xmm2,%xmm7,%xmm7
  4314. vpslld $15,%xmm0,%xmm2
  4315. vpaddd %xmm7,%xmm6,%xmm6
  4316. vpxor %xmm1,%xmm4,%xmm7
  4317. vpsrld $19,%xmm0,%xmm1
  4318. vpxor %xmm2,%xmm7,%xmm7
  4319. vpslld $13,%xmm0,%xmm2
  4320. vpxor %xmm1,%xmm7,%xmm7
  4321. vpxor %xmm2,%xmm7,%xmm7
  4322. vpaddd %xmm7,%xmm6,%xmm6
  4323. vpsrld $6,%xmm13,%xmm7
  4324. vpslld $26,%xmm13,%xmm2
  4325. vmovdqu %xmm6,240-128(%rax)
  4326. vpaddd %xmm8,%xmm6,%xmm6
  4327. vpsrld $11,%xmm13,%xmm1
  4328. vpxor %xmm2,%xmm7,%xmm7
  4329. vpslld $21,%xmm13,%xmm2
  4330. vpaddd 96(%rbp),%xmm6,%xmm6
  4331. vpxor %xmm1,%xmm7,%xmm7
  4332. vpsrld $25,%xmm13,%xmm1
  4333. vpxor %xmm2,%xmm7,%xmm7
  4334. vpslld $7,%xmm13,%xmm2
  4335. vpandn %xmm15,%xmm13,%xmm0
  4336. vpand %xmm14,%xmm13,%xmm4
  4337. vpxor %xmm1,%xmm7,%xmm7
  4338. vpsrld $2,%xmm9,%xmm8
  4339. vpxor %xmm2,%xmm7,%xmm7
  4340. vpslld $30,%xmm9,%xmm1
  4341. vpxor %xmm4,%xmm0,%xmm0
  4342. vpxor %xmm9,%xmm10,%xmm4
  4343. vpxor %xmm1,%xmm8,%xmm8
  4344. vpaddd %xmm7,%xmm6,%xmm6
  4345. vpsrld $13,%xmm9,%xmm1
  4346. vpslld $19,%xmm9,%xmm2
  4347. vpaddd %xmm0,%xmm6,%xmm6
  4348. vpand %xmm4,%xmm3,%xmm3
  4349. vpxor %xmm1,%xmm8,%xmm7
  4350. vpsrld $22,%xmm9,%xmm1
  4351. vpxor %xmm2,%xmm7,%xmm7
  4352. vpslld $10,%xmm9,%xmm2
  4353. vpxor %xmm3,%xmm10,%xmm8
  4354. vpaddd %xmm6,%xmm12,%xmm12
  4355. vpxor %xmm1,%xmm7,%xmm7
  4356. vpxor %xmm2,%xmm7,%xmm7
  4357. vpaddd %xmm6,%xmm8,%xmm8
  4358. vpaddd %xmm7,%xmm8,%xmm8
  4359. addq $256,%rbp
  4360. decl %ecx
  4361. jnz L$oop_16_xx_avx
  4362. movl $1,%ecx
  4363. leaq K256+128(%rip),%rbp
  4364. cmpl 0(%rbx),%ecx
  4365. cmovgeq %rbp,%r8
  4366. cmpl 4(%rbx),%ecx
  4367. cmovgeq %rbp,%r9
  4368. cmpl 8(%rbx),%ecx
  4369. cmovgeq %rbp,%r10
  4370. cmpl 12(%rbx),%ecx
  4371. cmovgeq %rbp,%r11
  4372. vmovdqa (%rbx),%xmm7
  4373. vpxor %xmm0,%xmm0,%xmm0
  4374. vmovdqa %xmm7,%xmm6
  4375. vpcmpgtd %xmm0,%xmm6,%xmm6
  4376. vpaddd %xmm6,%xmm7,%xmm7
  4377. vmovdqu 0-128(%rdi),%xmm0
  4378. vpand %xmm6,%xmm8,%xmm8
  4379. vmovdqu 32-128(%rdi),%xmm1
  4380. vpand %xmm6,%xmm9,%xmm9
  4381. vmovdqu 64-128(%rdi),%xmm2
  4382. vpand %xmm6,%xmm10,%xmm10
  4383. vmovdqu 96-128(%rdi),%xmm5
  4384. vpand %xmm6,%xmm11,%xmm11
  4385. vpaddd %xmm0,%xmm8,%xmm8
  4386. vmovdqu 128-128(%rdi),%xmm0
  4387. vpand %xmm6,%xmm12,%xmm12
  4388. vpaddd %xmm1,%xmm9,%xmm9
  4389. vmovdqu 160-128(%rdi),%xmm1
  4390. vpand %xmm6,%xmm13,%xmm13
  4391. vpaddd %xmm2,%xmm10,%xmm10
  4392. vmovdqu 192-128(%rdi),%xmm2
  4393. vpand %xmm6,%xmm14,%xmm14
  4394. vpaddd %xmm5,%xmm11,%xmm11
  4395. vmovdqu 224-128(%rdi),%xmm5
  4396. vpand %xmm6,%xmm15,%xmm15
  4397. vpaddd %xmm0,%xmm12,%xmm12
  4398. vpaddd %xmm1,%xmm13,%xmm13
  4399. vmovdqu %xmm8,0-128(%rdi)
  4400. vpaddd %xmm2,%xmm14,%xmm14
  4401. vmovdqu %xmm9,32-128(%rdi)
  4402. vpaddd %xmm5,%xmm15,%xmm15
  4403. vmovdqu %xmm10,64-128(%rdi)
  4404. vmovdqu %xmm11,96-128(%rdi)
  4405. vmovdqu %xmm12,128-128(%rdi)
  4406. vmovdqu %xmm13,160-128(%rdi)
  4407. vmovdqu %xmm14,192-128(%rdi)
  4408. vmovdqu %xmm15,224-128(%rdi)
  4409. vmovdqu %xmm7,(%rbx)
  4410. vmovdqu L$pbswap(%rip),%xmm6
  4411. decl %edx
  4412. jnz L$oop_avx
  4413. movl 280(%rsp),%edx
  4414. leaq 16(%rdi),%rdi
  4415. leaq 64(%rsi),%rsi
  4416. decl %edx
  4417. jnz L$oop_grande_avx
  4418. L$done_avx:
  4419. movq 272(%rsp),%rax
  4420. vzeroupper
  4421. movq -16(%rax),%rbp
  4422. movq -8(%rax),%rbx
  4423. leaq (%rax),%rsp
  4424. L$epilogue_avx:
  4425. .byte 0xf3,0xc3
  4426. .p2align 5
  4427. sha256_multi_block_avx2:
  4428. _avx2_shortcut:
  4429. movq %rsp,%rax
  4430. pushq %rbx
  4431. pushq %rbp
  4432. pushq %r12
  4433. pushq %r13
  4434. pushq %r14
  4435. pushq %r15
  4436. subq $576,%rsp
  4437. andq $-256,%rsp
  4438. movq %rax,544(%rsp)
  4439. L$body_avx2:
  4440. leaq K256+128(%rip),%rbp
  4441. leaq 128(%rdi),%rdi
  4442. L$oop_grande_avx2:
  4443. movl %edx,552(%rsp)
  4444. xorl %edx,%edx
  4445. leaq 512(%rsp),%rbx
  4446. movq 0(%rsi),%r12
  4447. movl 8(%rsi),%ecx
  4448. cmpl %edx,%ecx
  4449. cmovgl %ecx,%edx
  4450. testl %ecx,%ecx
  4451. movl %ecx,0(%rbx)
  4452. cmovleq %rbp,%r12
  4453. movq 16(%rsi),%r13
  4454. movl 24(%rsi),%ecx
  4455. cmpl %edx,%ecx
  4456. cmovgl %ecx,%edx
  4457. testl %ecx,%ecx
  4458. movl %ecx,4(%rbx)
  4459. cmovleq %rbp,%r13
  4460. movq 32(%rsi),%r14
  4461. movl 40(%rsi),%ecx
  4462. cmpl %edx,%ecx
  4463. cmovgl %ecx,%edx
  4464. testl %ecx,%ecx
  4465. movl %ecx,8(%rbx)
  4466. cmovleq %rbp,%r14
  4467. movq 48(%rsi),%r15
  4468. movl 56(%rsi),%ecx
  4469. cmpl %edx,%ecx
  4470. cmovgl %ecx,%edx
  4471. testl %ecx,%ecx
  4472. movl %ecx,12(%rbx)
  4473. cmovleq %rbp,%r15
  4474. movq 64(%rsi),%r8
  4475. movl 72(%rsi),%ecx
  4476. cmpl %edx,%ecx
  4477. cmovgl %ecx,%edx
  4478. testl %ecx,%ecx
  4479. movl %ecx,16(%rbx)
  4480. cmovleq %rbp,%r8
  4481. movq 80(%rsi),%r9
  4482. movl 88(%rsi),%ecx
  4483. cmpl %edx,%ecx
  4484. cmovgl %ecx,%edx
  4485. testl %ecx,%ecx
  4486. movl %ecx,20(%rbx)
  4487. cmovleq %rbp,%r9
  4488. movq 96(%rsi),%r10
  4489. movl 104(%rsi),%ecx
  4490. cmpl %edx,%ecx
  4491. cmovgl %ecx,%edx
  4492. testl %ecx,%ecx
  4493. movl %ecx,24(%rbx)
  4494. cmovleq %rbp,%r10
  4495. movq 112(%rsi),%r11
  4496. movl 120(%rsi),%ecx
  4497. cmpl %edx,%ecx
  4498. cmovgl %ecx,%edx
  4499. testl %ecx,%ecx
  4500. movl %ecx,28(%rbx)
  4501. cmovleq %rbp,%r11
  4502. vmovdqu 0-128(%rdi),%ymm8
  4503. leaq 128(%rsp),%rax
  4504. vmovdqu 32-128(%rdi),%ymm9
  4505. leaq 256+128(%rsp),%rbx
  4506. vmovdqu 64-128(%rdi),%ymm10
  4507. vmovdqu 96-128(%rdi),%ymm11
  4508. vmovdqu 128-128(%rdi),%ymm12
  4509. vmovdqu 160-128(%rdi),%ymm13
  4510. vmovdqu 192-128(%rdi),%ymm14
  4511. vmovdqu 224-128(%rdi),%ymm15
  4512. vmovdqu L$pbswap(%rip),%ymm6
  4513. jmp L$oop_avx2
  4514. .p2align 5
  4515. L$oop_avx2:
  4516. vpxor %ymm9,%ymm10,%ymm4
  4517. vmovd 0(%r12),%xmm5
  4518. vmovd 0(%r8),%xmm0
  4519. vmovd 0(%r13),%xmm1
  4520. vmovd 0(%r9),%xmm2
  4521. vpinsrd $1,0(%r14),%xmm5,%xmm5
  4522. vpinsrd $1,0(%r10),%xmm0,%xmm0
  4523. vpinsrd $1,0(%r15),%xmm1,%xmm1
  4524. vpunpckldq %ymm1,%ymm5,%ymm5
  4525. vpinsrd $1,0(%r11),%xmm2,%xmm2
  4526. vpunpckldq %ymm2,%ymm0,%ymm0
  4527. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4528. vpshufb %ymm6,%ymm5,%ymm5
  4529. vpsrld $6,%ymm12,%ymm7
  4530. vpslld $26,%ymm12,%ymm2
  4531. vmovdqu %ymm5,0-128(%rax)
  4532. vpaddd %ymm15,%ymm5,%ymm5
  4533. vpsrld $11,%ymm12,%ymm1
  4534. vpxor %ymm2,%ymm7,%ymm7
  4535. vpslld $21,%ymm12,%ymm2
  4536. vpaddd -128(%rbp),%ymm5,%ymm5
  4537. vpxor %ymm1,%ymm7,%ymm7
  4538. vpsrld $25,%ymm12,%ymm1
  4539. vpxor %ymm2,%ymm7,%ymm7
  4540. vpslld $7,%ymm12,%ymm2
  4541. vpandn %ymm14,%ymm12,%ymm0
  4542. vpand %ymm13,%ymm12,%ymm3
  4543. vpxor %ymm1,%ymm7,%ymm7
  4544. vpsrld $2,%ymm8,%ymm15
  4545. vpxor %ymm2,%ymm7,%ymm7
  4546. vpslld $30,%ymm8,%ymm1
  4547. vpxor %ymm3,%ymm0,%ymm0
  4548. vpxor %ymm8,%ymm9,%ymm3
  4549. vpxor %ymm1,%ymm15,%ymm15
  4550. vpaddd %ymm7,%ymm5,%ymm5
  4551. vpsrld $13,%ymm8,%ymm1
  4552. vpslld $19,%ymm8,%ymm2
  4553. vpaddd %ymm0,%ymm5,%ymm5
  4554. vpand %ymm3,%ymm4,%ymm4
  4555. vpxor %ymm1,%ymm15,%ymm7
  4556. vpsrld $22,%ymm8,%ymm1
  4557. vpxor %ymm2,%ymm7,%ymm7
  4558. vpslld $10,%ymm8,%ymm2
  4559. vpxor %ymm4,%ymm9,%ymm15
  4560. vpaddd %ymm5,%ymm11,%ymm11
  4561. vpxor %ymm1,%ymm7,%ymm7
  4562. vpxor %ymm2,%ymm7,%ymm7
  4563. vpaddd %ymm5,%ymm15,%ymm15
  4564. vpaddd %ymm7,%ymm15,%ymm15
  4565. vmovd 4(%r12),%xmm5
  4566. vmovd 4(%r8),%xmm0
  4567. vmovd 4(%r13),%xmm1
  4568. vmovd 4(%r9),%xmm2
  4569. vpinsrd $1,4(%r14),%xmm5,%xmm5
  4570. vpinsrd $1,4(%r10),%xmm0,%xmm0
  4571. vpinsrd $1,4(%r15),%xmm1,%xmm1
  4572. vpunpckldq %ymm1,%ymm5,%ymm5
  4573. vpinsrd $1,4(%r11),%xmm2,%xmm2
  4574. vpunpckldq %ymm2,%ymm0,%ymm0
  4575. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4576. vpshufb %ymm6,%ymm5,%ymm5
  4577. vpsrld $6,%ymm11,%ymm7
  4578. vpslld $26,%ymm11,%ymm2
  4579. vmovdqu %ymm5,32-128(%rax)
  4580. vpaddd %ymm14,%ymm5,%ymm5
  4581. vpsrld $11,%ymm11,%ymm1
  4582. vpxor %ymm2,%ymm7,%ymm7
  4583. vpslld $21,%ymm11,%ymm2
  4584. vpaddd -96(%rbp),%ymm5,%ymm5
  4585. vpxor %ymm1,%ymm7,%ymm7
  4586. vpsrld $25,%ymm11,%ymm1
  4587. vpxor %ymm2,%ymm7,%ymm7
  4588. vpslld $7,%ymm11,%ymm2
  4589. vpandn %ymm13,%ymm11,%ymm0
  4590. vpand %ymm12,%ymm11,%ymm4
  4591. vpxor %ymm1,%ymm7,%ymm7
  4592. vpsrld $2,%ymm15,%ymm14
  4593. vpxor %ymm2,%ymm7,%ymm7
  4594. vpslld $30,%ymm15,%ymm1
  4595. vpxor %ymm4,%ymm0,%ymm0
  4596. vpxor %ymm15,%ymm8,%ymm4
  4597. vpxor %ymm1,%ymm14,%ymm14
  4598. vpaddd %ymm7,%ymm5,%ymm5
  4599. vpsrld $13,%ymm15,%ymm1
  4600. vpslld $19,%ymm15,%ymm2
  4601. vpaddd %ymm0,%ymm5,%ymm5
  4602. vpand %ymm4,%ymm3,%ymm3
  4603. vpxor %ymm1,%ymm14,%ymm7
  4604. vpsrld $22,%ymm15,%ymm1
  4605. vpxor %ymm2,%ymm7,%ymm7
  4606. vpslld $10,%ymm15,%ymm2
  4607. vpxor %ymm3,%ymm8,%ymm14
  4608. vpaddd %ymm5,%ymm10,%ymm10
  4609. vpxor %ymm1,%ymm7,%ymm7
  4610. vpxor %ymm2,%ymm7,%ymm7
  4611. vpaddd %ymm5,%ymm14,%ymm14
  4612. vpaddd %ymm7,%ymm14,%ymm14
  4613. vmovd 8(%r12),%xmm5
  4614. vmovd 8(%r8),%xmm0
  4615. vmovd 8(%r13),%xmm1
  4616. vmovd 8(%r9),%xmm2
  4617. vpinsrd $1,8(%r14),%xmm5,%xmm5
  4618. vpinsrd $1,8(%r10),%xmm0,%xmm0
  4619. vpinsrd $1,8(%r15),%xmm1,%xmm1
  4620. vpunpckldq %ymm1,%ymm5,%ymm5
  4621. vpinsrd $1,8(%r11),%xmm2,%xmm2
  4622. vpunpckldq %ymm2,%ymm0,%ymm0
  4623. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4624. vpshufb %ymm6,%ymm5,%ymm5
  4625. vpsrld $6,%ymm10,%ymm7
  4626. vpslld $26,%ymm10,%ymm2
  4627. vmovdqu %ymm5,64-128(%rax)
  4628. vpaddd %ymm13,%ymm5,%ymm5
  4629. vpsrld $11,%ymm10,%ymm1
  4630. vpxor %ymm2,%ymm7,%ymm7
  4631. vpslld $21,%ymm10,%ymm2
  4632. vpaddd -64(%rbp),%ymm5,%ymm5
  4633. vpxor %ymm1,%ymm7,%ymm7
  4634. vpsrld $25,%ymm10,%ymm1
  4635. vpxor %ymm2,%ymm7,%ymm7
  4636. vpslld $7,%ymm10,%ymm2
  4637. vpandn %ymm12,%ymm10,%ymm0
  4638. vpand %ymm11,%ymm10,%ymm3
  4639. vpxor %ymm1,%ymm7,%ymm7
  4640. vpsrld $2,%ymm14,%ymm13
  4641. vpxor %ymm2,%ymm7,%ymm7
  4642. vpslld $30,%ymm14,%ymm1
  4643. vpxor %ymm3,%ymm0,%ymm0
  4644. vpxor %ymm14,%ymm15,%ymm3
  4645. vpxor %ymm1,%ymm13,%ymm13
  4646. vpaddd %ymm7,%ymm5,%ymm5
  4647. vpsrld $13,%ymm14,%ymm1
  4648. vpslld $19,%ymm14,%ymm2
  4649. vpaddd %ymm0,%ymm5,%ymm5
  4650. vpand %ymm3,%ymm4,%ymm4
  4651. vpxor %ymm1,%ymm13,%ymm7
  4652. vpsrld $22,%ymm14,%ymm1
  4653. vpxor %ymm2,%ymm7,%ymm7
  4654. vpslld $10,%ymm14,%ymm2
  4655. vpxor %ymm4,%ymm15,%ymm13
  4656. vpaddd %ymm5,%ymm9,%ymm9
  4657. vpxor %ymm1,%ymm7,%ymm7
  4658. vpxor %ymm2,%ymm7,%ymm7
  4659. vpaddd %ymm5,%ymm13,%ymm13
  4660. vpaddd %ymm7,%ymm13,%ymm13
  4661. vmovd 12(%r12),%xmm5
  4662. vmovd 12(%r8),%xmm0
  4663. vmovd 12(%r13),%xmm1
  4664. vmovd 12(%r9),%xmm2
  4665. vpinsrd $1,12(%r14),%xmm5,%xmm5
  4666. vpinsrd $1,12(%r10),%xmm0,%xmm0
  4667. vpinsrd $1,12(%r15),%xmm1,%xmm1
  4668. vpunpckldq %ymm1,%ymm5,%ymm5
  4669. vpinsrd $1,12(%r11),%xmm2,%xmm2
  4670. vpunpckldq %ymm2,%ymm0,%ymm0
  4671. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4672. vpshufb %ymm6,%ymm5,%ymm5
  4673. vpsrld $6,%ymm9,%ymm7
  4674. vpslld $26,%ymm9,%ymm2
  4675. vmovdqu %ymm5,96-128(%rax)
  4676. vpaddd %ymm12,%ymm5,%ymm5
  4677. vpsrld $11,%ymm9,%ymm1
  4678. vpxor %ymm2,%ymm7,%ymm7
  4679. vpslld $21,%ymm9,%ymm2
  4680. vpaddd -32(%rbp),%ymm5,%ymm5
  4681. vpxor %ymm1,%ymm7,%ymm7
  4682. vpsrld $25,%ymm9,%ymm1
  4683. vpxor %ymm2,%ymm7,%ymm7
  4684. vpslld $7,%ymm9,%ymm2
  4685. vpandn %ymm11,%ymm9,%ymm0
  4686. vpand %ymm10,%ymm9,%ymm4
  4687. vpxor %ymm1,%ymm7,%ymm7
  4688. vpsrld $2,%ymm13,%ymm12
  4689. vpxor %ymm2,%ymm7,%ymm7
  4690. vpslld $30,%ymm13,%ymm1
  4691. vpxor %ymm4,%ymm0,%ymm0
  4692. vpxor %ymm13,%ymm14,%ymm4
  4693. vpxor %ymm1,%ymm12,%ymm12
  4694. vpaddd %ymm7,%ymm5,%ymm5
  4695. vpsrld $13,%ymm13,%ymm1
  4696. vpslld $19,%ymm13,%ymm2
  4697. vpaddd %ymm0,%ymm5,%ymm5
  4698. vpand %ymm4,%ymm3,%ymm3
  4699. vpxor %ymm1,%ymm12,%ymm7
  4700. vpsrld $22,%ymm13,%ymm1
  4701. vpxor %ymm2,%ymm7,%ymm7
  4702. vpslld $10,%ymm13,%ymm2
  4703. vpxor %ymm3,%ymm14,%ymm12
  4704. vpaddd %ymm5,%ymm8,%ymm8
  4705. vpxor %ymm1,%ymm7,%ymm7
  4706. vpxor %ymm2,%ymm7,%ymm7
  4707. vpaddd %ymm5,%ymm12,%ymm12
  4708. vpaddd %ymm7,%ymm12,%ymm12
  4709. vmovd 16(%r12),%xmm5
  4710. vmovd 16(%r8),%xmm0
  4711. vmovd 16(%r13),%xmm1
  4712. vmovd 16(%r9),%xmm2
  4713. vpinsrd $1,16(%r14),%xmm5,%xmm5
  4714. vpinsrd $1,16(%r10),%xmm0,%xmm0
  4715. vpinsrd $1,16(%r15),%xmm1,%xmm1
  4716. vpunpckldq %ymm1,%ymm5,%ymm5
  4717. vpinsrd $1,16(%r11),%xmm2,%xmm2
  4718. vpunpckldq %ymm2,%ymm0,%ymm0
  4719. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4720. vpshufb %ymm6,%ymm5,%ymm5
  4721. vpsrld $6,%ymm8,%ymm7
  4722. vpslld $26,%ymm8,%ymm2
  4723. vmovdqu %ymm5,128-128(%rax)
  4724. vpaddd %ymm11,%ymm5,%ymm5
  4725. vpsrld $11,%ymm8,%ymm1
  4726. vpxor %ymm2,%ymm7,%ymm7
  4727. vpslld $21,%ymm8,%ymm2
  4728. vpaddd 0(%rbp),%ymm5,%ymm5
  4729. vpxor %ymm1,%ymm7,%ymm7
  4730. vpsrld $25,%ymm8,%ymm1
  4731. vpxor %ymm2,%ymm7,%ymm7
  4732. vpslld $7,%ymm8,%ymm2
  4733. vpandn %ymm10,%ymm8,%ymm0
  4734. vpand %ymm9,%ymm8,%ymm3
  4735. vpxor %ymm1,%ymm7,%ymm7
  4736. vpsrld $2,%ymm12,%ymm11
  4737. vpxor %ymm2,%ymm7,%ymm7
  4738. vpslld $30,%ymm12,%ymm1
  4739. vpxor %ymm3,%ymm0,%ymm0
  4740. vpxor %ymm12,%ymm13,%ymm3
  4741. vpxor %ymm1,%ymm11,%ymm11
  4742. vpaddd %ymm7,%ymm5,%ymm5
  4743. vpsrld $13,%ymm12,%ymm1
  4744. vpslld $19,%ymm12,%ymm2
  4745. vpaddd %ymm0,%ymm5,%ymm5
  4746. vpand %ymm3,%ymm4,%ymm4
  4747. vpxor %ymm1,%ymm11,%ymm7
  4748. vpsrld $22,%ymm12,%ymm1
  4749. vpxor %ymm2,%ymm7,%ymm7
  4750. vpslld $10,%ymm12,%ymm2
  4751. vpxor %ymm4,%ymm13,%ymm11
  4752. vpaddd %ymm5,%ymm15,%ymm15
  4753. vpxor %ymm1,%ymm7,%ymm7
  4754. vpxor %ymm2,%ymm7,%ymm7
  4755. vpaddd %ymm5,%ymm11,%ymm11
  4756. vpaddd %ymm7,%ymm11,%ymm11
  4757. vmovd 20(%r12),%xmm5
  4758. vmovd 20(%r8),%xmm0
  4759. vmovd 20(%r13),%xmm1
  4760. vmovd 20(%r9),%xmm2
  4761. vpinsrd $1,20(%r14),%xmm5,%xmm5
  4762. vpinsrd $1,20(%r10),%xmm0,%xmm0
  4763. vpinsrd $1,20(%r15),%xmm1,%xmm1
  4764. vpunpckldq %ymm1,%ymm5,%ymm5
  4765. vpinsrd $1,20(%r11),%xmm2,%xmm2
  4766. vpunpckldq %ymm2,%ymm0,%ymm0
  4767. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4768. vpshufb %ymm6,%ymm5,%ymm5
  4769. vpsrld $6,%ymm15,%ymm7
  4770. vpslld $26,%ymm15,%ymm2
  4771. vmovdqu %ymm5,160-128(%rax)
  4772. vpaddd %ymm10,%ymm5,%ymm5
  4773. vpsrld $11,%ymm15,%ymm1
  4774. vpxor %ymm2,%ymm7,%ymm7
  4775. vpslld $21,%ymm15,%ymm2
  4776. vpaddd 32(%rbp),%ymm5,%ymm5
  4777. vpxor %ymm1,%ymm7,%ymm7
  4778. vpsrld $25,%ymm15,%ymm1
  4779. vpxor %ymm2,%ymm7,%ymm7
  4780. vpslld $7,%ymm15,%ymm2
  4781. vpandn %ymm9,%ymm15,%ymm0
  4782. vpand %ymm8,%ymm15,%ymm4
  4783. vpxor %ymm1,%ymm7,%ymm7
  4784. vpsrld $2,%ymm11,%ymm10
  4785. vpxor %ymm2,%ymm7,%ymm7
  4786. vpslld $30,%ymm11,%ymm1
  4787. vpxor %ymm4,%ymm0,%ymm0
  4788. vpxor %ymm11,%ymm12,%ymm4
  4789. vpxor %ymm1,%ymm10,%ymm10
  4790. vpaddd %ymm7,%ymm5,%ymm5
  4791. vpsrld $13,%ymm11,%ymm1
  4792. vpslld $19,%ymm11,%ymm2
  4793. vpaddd %ymm0,%ymm5,%ymm5
  4794. vpand %ymm4,%ymm3,%ymm3
  4795. vpxor %ymm1,%ymm10,%ymm7
  4796. vpsrld $22,%ymm11,%ymm1
  4797. vpxor %ymm2,%ymm7,%ymm7
  4798. vpslld $10,%ymm11,%ymm2
  4799. vpxor %ymm3,%ymm12,%ymm10
  4800. vpaddd %ymm5,%ymm14,%ymm14
  4801. vpxor %ymm1,%ymm7,%ymm7
  4802. vpxor %ymm2,%ymm7,%ymm7
  4803. vpaddd %ymm5,%ymm10,%ymm10
  4804. vpaddd %ymm7,%ymm10,%ymm10
  4805. vmovd 24(%r12),%xmm5
  4806. vmovd 24(%r8),%xmm0
  4807. vmovd 24(%r13),%xmm1
  4808. vmovd 24(%r9),%xmm2
  4809. vpinsrd $1,24(%r14),%xmm5,%xmm5
  4810. vpinsrd $1,24(%r10),%xmm0,%xmm0
  4811. vpinsrd $1,24(%r15),%xmm1,%xmm1
  4812. vpunpckldq %ymm1,%ymm5,%ymm5
  4813. vpinsrd $1,24(%r11),%xmm2,%xmm2
  4814. vpunpckldq %ymm2,%ymm0,%ymm0
  4815. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4816. vpshufb %ymm6,%ymm5,%ymm5
  4817. vpsrld $6,%ymm14,%ymm7
  4818. vpslld $26,%ymm14,%ymm2
  4819. vmovdqu %ymm5,192-128(%rax)
  4820. vpaddd %ymm9,%ymm5,%ymm5
  4821. vpsrld $11,%ymm14,%ymm1
  4822. vpxor %ymm2,%ymm7,%ymm7
  4823. vpslld $21,%ymm14,%ymm2
  4824. vpaddd 64(%rbp),%ymm5,%ymm5
  4825. vpxor %ymm1,%ymm7,%ymm7
  4826. vpsrld $25,%ymm14,%ymm1
  4827. vpxor %ymm2,%ymm7,%ymm7
  4828. vpslld $7,%ymm14,%ymm2
  4829. vpandn %ymm8,%ymm14,%ymm0
  4830. vpand %ymm15,%ymm14,%ymm3
  4831. vpxor %ymm1,%ymm7,%ymm7
  4832. vpsrld $2,%ymm10,%ymm9
  4833. vpxor %ymm2,%ymm7,%ymm7
  4834. vpslld $30,%ymm10,%ymm1
  4835. vpxor %ymm3,%ymm0,%ymm0
  4836. vpxor %ymm10,%ymm11,%ymm3
  4837. vpxor %ymm1,%ymm9,%ymm9
  4838. vpaddd %ymm7,%ymm5,%ymm5
  4839. vpsrld $13,%ymm10,%ymm1
  4840. vpslld $19,%ymm10,%ymm2
  4841. vpaddd %ymm0,%ymm5,%ymm5
  4842. vpand %ymm3,%ymm4,%ymm4
  4843. vpxor %ymm1,%ymm9,%ymm7
  4844. vpsrld $22,%ymm10,%ymm1
  4845. vpxor %ymm2,%ymm7,%ymm7
  4846. vpslld $10,%ymm10,%ymm2
  4847. vpxor %ymm4,%ymm11,%ymm9
  4848. vpaddd %ymm5,%ymm13,%ymm13
  4849. vpxor %ymm1,%ymm7,%ymm7
  4850. vpxor %ymm2,%ymm7,%ymm7
  4851. vpaddd %ymm5,%ymm9,%ymm9
  4852. vpaddd %ymm7,%ymm9,%ymm9
  4853. vmovd 28(%r12),%xmm5
  4854. vmovd 28(%r8),%xmm0
  4855. vmovd 28(%r13),%xmm1
  4856. vmovd 28(%r9),%xmm2
  4857. vpinsrd $1,28(%r14),%xmm5,%xmm5
  4858. vpinsrd $1,28(%r10),%xmm0,%xmm0
  4859. vpinsrd $1,28(%r15),%xmm1,%xmm1
  4860. vpunpckldq %ymm1,%ymm5,%ymm5
  4861. vpinsrd $1,28(%r11),%xmm2,%xmm2
  4862. vpunpckldq %ymm2,%ymm0,%ymm0
  4863. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4864. vpshufb %ymm6,%ymm5,%ymm5
  4865. vpsrld $6,%ymm13,%ymm7
  4866. vpslld $26,%ymm13,%ymm2
  4867. vmovdqu %ymm5,224-128(%rax)
  4868. vpaddd %ymm8,%ymm5,%ymm5
  4869. vpsrld $11,%ymm13,%ymm1
  4870. vpxor %ymm2,%ymm7,%ymm7
  4871. vpslld $21,%ymm13,%ymm2
  4872. vpaddd 96(%rbp),%ymm5,%ymm5
  4873. vpxor %ymm1,%ymm7,%ymm7
  4874. vpsrld $25,%ymm13,%ymm1
  4875. vpxor %ymm2,%ymm7,%ymm7
  4876. vpslld $7,%ymm13,%ymm2
  4877. vpandn %ymm15,%ymm13,%ymm0
  4878. vpand %ymm14,%ymm13,%ymm4
  4879. vpxor %ymm1,%ymm7,%ymm7
  4880. vpsrld $2,%ymm9,%ymm8
  4881. vpxor %ymm2,%ymm7,%ymm7
  4882. vpslld $30,%ymm9,%ymm1
  4883. vpxor %ymm4,%ymm0,%ymm0
  4884. vpxor %ymm9,%ymm10,%ymm4
  4885. vpxor %ymm1,%ymm8,%ymm8
  4886. vpaddd %ymm7,%ymm5,%ymm5
  4887. vpsrld $13,%ymm9,%ymm1
  4888. vpslld $19,%ymm9,%ymm2
  4889. vpaddd %ymm0,%ymm5,%ymm5
  4890. vpand %ymm4,%ymm3,%ymm3
  4891. vpxor %ymm1,%ymm8,%ymm7
  4892. vpsrld $22,%ymm9,%ymm1
  4893. vpxor %ymm2,%ymm7,%ymm7
  4894. vpslld $10,%ymm9,%ymm2
  4895. vpxor %ymm3,%ymm10,%ymm8
  4896. vpaddd %ymm5,%ymm12,%ymm12
  4897. vpxor %ymm1,%ymm7,%ymm7
  4898. vpxor %ymm2,%ymm7,%ymm7
  4899. vpaddd %ymm5,%ymm8,%ymm8
  4900. vpaddd %ymm7,%ymm8,%ymm8
  4901. addq $256,%rbp
  4902. vmovd 32(%r12),%xmm5
  4903. vmovd 32(%r8),%xmm0
  4904. vmovd 32(%r13),%xmm1
  4905. vmovd 32(%r9),%xmm2
  4906. vpinsrd $1,32(%r14),%xmm5,%xmm5
  4907. vpinsrd $1,32(%r10),%xmm0,%xmm0
  4908. vpinsrd $1,32(%r15),%xmm1,%xmm1
  4909. vpunpckldq %ymm1,%ymm5,%ymm5
  4910. vpinsrd $1,32(%r11),%xmm2,%xmm2
  4911. vpunpckldq %ymm2,%ymm0,%ymm0
  4912. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4913. vpshufb %ymm6,%ymm5,%ymm5
  4914. vpsrld $6,%ymm12,%ymm7
  4915. vpslld $26,%ymm12,%ymm2
  4916. vmovdqu %ymm5,256-256-128(%rbx)
  4917. vpaddd %ymm15,%ymm5,%ymm5
  4918. vpsrld $11,%ymm12,%ymm1
  4919. vpxor %ymm2,%ymm7,%ymm7
  4920. vpslld $21,%ymm12,%ymm2
  4921. vpaddd -128(%rbp),%ymm5,%ymm5
  4922. vpxor %ymm1,%ymm7,%ymm7
  4923. vpsrld $25,%ymm12,%ymm1
  4924. vpxor %ymm2,%ymm7,%ymm7
  4925. vpslld $7,%ymm12,%ymm2
  4926. vpandn %ymm14,%ymm12,%ymm0
  4927. vpand %ymm13,%ymm12,%ymm3
  4928. vpxor %ymm1,%ymm7,%ymm7
  4929. vpsrld $2,%ymm8,%ymm15
  4930. vpxor %ymm2,%ymm7,%ymm7
  4931. vpslld $30,%ymm8,%ymm1
  4932. vpxor %ymm3,%ymm0,%ymm0
  4933. vpxor %ymm8,%ymm9,%ymm3
  4934. vpxor %ymm1,%ymm15,%ymm15
  4935. vpaddd %ymm7,%ymm5,%ymm5
  4936. vpsrld $13,%ymm8,%ymm1
  4937. vpslld $19,%ymm8,%ymm2
  4938. vpaddd %ymm0,%ymm5,%ymm5
  4939. vpand %ymm3,%ymm4,%ymm4
  4940. vpxor %ymm1,%ymm15,%ymm7
  4941. vpsrld $22,%ymm8,%ymm1
  4942. vpxor %ymm2,%ymm7,%ymm7
  4943. vpslld $10,%ymm8,%ymm2
  4944. vpxor %ymm4,%ymm9,%ymm15
  4945. vpaddd %ymm5,%ymm11,%ymm11
  4946. vpxor %ymm1,%ymm7,%ymm7
  4947. vpxor %ymm2,%ymm7,%ymm7
  4948. vpaddd %ymm5,%ymm15,%ymm15
  4949. vpaddd %ymm7,%ymm15,%ymm15
  4950. vmovd 36(%r12),%xmm5
  4951. vmovd 36(%r8),%xmm0
  4952. vmovd 36(%r13),%xmm1
  4953. vmovd 36(%r9),%xmm2
  4954. vpinsrd $1,36(%r14),%xmm5,%xmm5
  4955. vpinsrd $1,36(%r10),%xmm0,%xmm0
  4956. vpinsrd $1,36(%r15),%xmm1,%xmm1
  4957. vpunpckldq %ymm1,%ymm5,%ymm5
  4958. vpinsrd $1,36(%r11),%xmm2,%xmm2
  4959. vpunpckldq %ymm2,%ymm0,%ymm0
  4960. vinserti128 $1,%xmm0,%ymm5,%ymm5
  4961. vpshufb %ymm6,%ymm5,%ymm5
  4962. vpsrld $6,%ymm11,%ymm7
  4963. vpslld $26,%ymm11,%ymm2
  4964. vmovdqu %ymm5,288-256-128(%rbx)
  4965. vpaddd %ymm14,%ymm5,%ymm5
  4966. vpsrld $11,%ymm11,%ymm1
  4967. vpxor %ymm2,%ymm7,%ymm7
  4968. vpslld $21,%ymm11,%ymm2
  4969. vpaddd -96(%rbp),%ymm5,%ymm5
  4970. vpxor %ymm1,%ymm7,%ymm7
  4971. vpsrld $25,%ymm11,%ymm1
  4972. vpxor %ymm2,%ymm7,%ymm7
  4973. vpslld $7,%ymm11,%ymm2
  4974. vpandn %ymm13,%ymm11,%ymm0
  4975. vpand %ymm12,%ymm11,%ymm4
  4976. vpxor %ymm1,%ymm7,%ymm7
  4977. vpsrld $2,%ymm15,%ymm14
  4978. vpxor %ymm2,%ymm7,%ymm7
  4979. vpslld $30,%ymm15,%ymm1
  4980. vpxor %ymm4,%ymm0,%ymm0
  4981. vpxor %ymm15,%ymm8,%ymm4
  4982. vpxor %ymm1,%ymm14,%ymm14
  4983. vpaddd %ymm7,%ymm5,%ymm5
  4984. vpsrld $13,%ymm15,%ymm1
  4985. vpslld $19,%ymm15,%ymm2
  4986. vpaddd %ymm0,%ymm5,%ymm5
  4987. vpand %ymm4,%ymm3,%ymm3
  4988. vpxor %ymm1,%ymm14,%ymm7
  4989. vpsrld $22,%ymm15,%ymm1
  4990. vpxor %ymm2,%ymm7,%ymm7
  4991. vpslld $10,%ymm15,%ymm2
  4992. vpxor %ymm3,%ymm8,%ymm14
  4993. vpaddd %ymm5,%ymm10,%ymm10
  4994. vpxor %ymm1,%ymm7,%ymm7
  4995. vpxor %ymm2,%ymm7,%ymm7
  4996. vpaddd %ymm5,%ymm14,%ymm14
  4997. vpaddd %ymm7,%ymm14,%ymm14
  4998. vmovd 40(%r12),%xmm5
  4999. vmovd 40(%r8),%xmm0
  5000. vmovd 40(%r13),%xmm1
  5001. vmovd 40(%r9),%xmm2
  5002. vpinsrd $1,40(%r14),%xmm5,%xmm5
  5003. vpinsrd $1,40(%r10),%xmm0,%xmm0
  5004. vpinsrd $1,40(%r15),%xmm1,%xmm1
  5005. vpunpckldq %ymm1,%ymm5,%ymm5
  5006. vpinsrd $1,40(%r11),%xmm2,%xmm2
  5007. vpunpckldq %ymm2,%ymm0,%ymm0
  5008. vinserti128 $1,%xmm0,%ymm5,%ymm5
  5009. vpshufb %ymm6,%ymm5,%ymm5
  5010. vpsrld $6,%ymm10,%ymm7
  5011. vpslld $26,%ymm10,%ymm2
  5012. vmovdqu %ymm5,320-256-128(%rbx)
  5013. vpaddd %ymm13,%ymm5,%ymm5
  5014. vpsrld $11,%ymm10,%ymm1
  5015. vpxor %ymm2,%ymm7,%ymm7
  5016. vpslld $21,%ymm10,%ymm2
  5017. vpaddd -64(%rbp),%ymm5,%ymm5
  5018. vpxor %ymm1,%ymm7,%ymm7
  5019. vpsrld $25,%ymm10,%ymm1
  5020. vpxor %ymm2,%ymm7,%ymm7
  5021. vpslld $7,%ymm10,%ymm2
  5022. vpandn %ymm12,%ymm10,%ymm0
  5023. vpand %ymm11,%ymm10,%ymm3
  5024. vpxor %ymm1,%ymm7,%ymm7
  5025. vpsrld $2,%ymm14,%ymm13
  5026. vpxor %ymm2,%ymm7,%ymm7
  5027. vpslld $30,%ymm14,%ymm1
  5028. vpxor %ymm3,%ymm0,%ymm0
  5029. vpxor %ymm14,%ymm15,%ymm3
  5030. vpxor %ymm1,%ymm13,%ymm13
  5031. vpaddd %ymm7,%ymm5,%ymm5
  5032. vpsrld $13,%ymm14,%ymm1
  5033. vpslld $19,%ymm14,%ymm2
  5034. vpaddd %ymm0,%ymm5,%ymm5
  5035. vpand %ymm3,%ymm4,%ymm4
  5036. vpxor %ymm1,%ymm13,%ymm7
  5037. vpsrld $22,%ymm14,%ymm1
  5038. vpxor %ymm2,%ymm7,%ymm7
  5039. vpslld $10,%ymm14,%ymm2
  5040. vpxor %ymm4,%ymm15,%ymm13
  5041. vpaddd %ymm5,%ymm9,%ymm9
  5042. vpxor %ymm1,%ymm7,%ymm7
  5043. vpxor %ymm2,%ymm7,%ymm7
  5044. vpaddd %ymm5,%ymm13,%ymm13
  5045. vpaddd %ymm7,%ymm13,%ymm13
  5046. vmovd 44(%r12),%xmm5
  5047. vmovd 44(%r8),%xmm0
  5048. vmovd 44(%r13),%xmm1
  5049. vmovd 44(%r9),%xmm2
  5050. vpinsrd $1,44(%r14),%xmm5,%xmm5
  5051. vpinsrd $1,44(%r10),%xmm0,%xmm0
  5052. vpinsrd $1,44(%r15),%xmm1,%xmm1
  5053. vpunpckldq %ymm1,%ymm5,%ymm5
  5054. vpinsrd $1,44(%r11),%xmm2,%xmm2
  5055. vpunpckldq %ymm2,%ymm0,%ymm0
  5056. vinserti128 $1,%xmm0,%ymm5,%ymm5
  5057. vpshufb %ymm6,%ymm5,%ymm5
  5058. vpsrld $6,%ymm9,%ymm7
  5059. vpslld $26,%ymm9,%ymm2
  5060. vmovdqu %ymm5,352-256-128(%rbx)
  5061. vpaddd %ymm12,%ymm5,%ymm5
  5062. vpsrld $11,%ymm9,%ymm1
  5063. vpxor %ymm2,%ymm7,%ymm7
  5064. vpslld $21,%ymm9,%ymm2
  5065. vpaddd -32(%rbp),%ymm5,%ymm5
  5066. vpxor %ymm1,%ymm7,%ymm7
  5067. vpsrld $25,%ymm9,%ymm1
  5068. vpxor %ymm2,%ymm7,%ymm7
  5069. vpslld $7,%ymm9,%ymm2
  5070. vpandn %ymm11,%ymm9,%ymm0
  5071. vpand %ymm10,%ymm9,%ymm4
  5072. vpxor %ymm1,%ymm7,%ymm7
  5073. vpsrld $2,%ymm13,%ymm12
  5074. vpxor %ymm2,%ymm7,%ymm7
  5075. vpslld $30,%ymm13,%ymm1
  5076. vpxor %ymm4,%ymm0,%ymm0
  5077. vpxor %ymm13,%ymm14,%ymm4
  5078. vpxor %ymm1,%ymm12,%ymm12
  5079. vpaddd %ymm7,%ymm5,%ymm5
  5080. vpsrld $13,%ymm13,%ymm1
  5081. vpslld $19,%ymm13,%ymm2
  5082. vpaddd %ymm0,%ymm5,%ymm5
  5083. vpand %ymm4,%ymm3,%ymm3
  5084. vpxor %ymm1,%ymm12,%ymm7
  5085. vpsrld $22,%ymm13,%ymm1
  5086. vpxor %ymm2,%ymm7,%ymm7
  5087. vpslld $10,%ymm13,%ymm2
  5088. vpxor %ymm3,%ymm14,%ymm12
  5089. vpaddd %ymm5,%ymm8,%ymm8
  5090. vpxor %ymm1,%ymm7,%ymm7
  5091. vpxor %ymm2,%ymm7,%ymm7
  5092. vpaddd %ymm5,%ymm12,%ymm12
  5093. vpaddd %ymm7,%ymm12,%ymm12
  5094. vmovd 48(%r12),%xmm5
  5095. vmovd 48(%r8),%xmm0
  5096. vmovd 48(%r13),%xmm1
  5097. vmovd 48(%r9),%xmm2
  5098. vpinsrd $1,48(%r14),%xmm5,%xmm5
  5099. vpinsrd $1,48(%r10),%xmm0,%xmm0
  5100. vpinsrd $1,48(%r15),%xmm1,%xmm1
  5101. vpunpckldq %ymm1,%ymm5,%ymm5
  5102. vpinsrd $1,48(%r11),%xmm2,%xmm2
  5103. vpunpckldq %ymm2,%ymm0,%ymm0
  5104. vinserti128 $1,%xmm0,%ymm5,%ymm5
  5105. vpshufb %ymm6,%ymm5,%ymm5
  5106. vpsrld $6,%ymm8,%ymm7
  5107. vpslld $26,%ymm8,%ymm2
  5108. vmovdqu %ymm5,384-256-128(%rbx)
  5109. vpaddd %ymm11,%ymm5,%ymm5
  5110. vpsrld $11,%ymm8,%ymm1
  5111. vpxor %ymm2,%ymm7,%ymm7
  5112. vpslld $21,%ymm8,%ymm2
  5113. vpaddd 0(%rbp),%ymm5,%ymm5
  5114. vpxor %ymm1,%ymm7,%ymm7
  5115. vpsrld $25,%ymm8,%ymm1
  5116. vpxor %ymm2,%ymm7,%ymm7
  5117. vpslld $7,%ymm8,%ymm2
  5118. vpandn %ymm10,%ymm8,%ymm0
  5119. vpand %ymm9,%ymm8,%ymm3
  5120. vpxor %ymm1,%ymm7,%ymm7
  5121. vpsrld $2,%ymm12,%ymm11
  5122. vpxor %ymm2,%ymm7,%ymm7
  5123. vpslld $30,%ymm12,%ymm1
  5124. vpxor %ymm3,%ymm0,%ymm0
  5125. vpxor %ymm12,%ymm13,%ymm3
  5126. vpxor %ymm1,%ymm11,%ymm11
  5127. vpaddd %ymm7,%ymm5,%ymm5
  5128. vpsrld $13,%ymm12,%ymm1
  5129. vpslld $19,%ymm12,%ymm2
  5130. vpaddd %ymm0,%ymm5,%ymm5
  5131. vpand %ymm3,%ymm4,%ymm4
  5132. vpxor %ymm1,%ymm11,%ymm7
  5133. vpsrld $22,%ymm12,%ymm1
  5134. vpxor %ymm2,%ymm7,%ymm7
  5135. vpslld $10,%ymm12,%ymm2
  5136. vpxor %ymm4,%ymm13,%ymm11
  5137. vpaddd %ymm5,%ymm15,%ymm15
  5138. vpxor %ymm1,%ymm7,%ymm7
  5139. vpxor %ymm2,%ymm7,%ymm7
  5140. vpaddd %ymm5,%ymm11,%ymm11
  5141. vpaddd %ymm7,%ymm11,%ymm11
  5142. vmovd 52(%r12),%xmm5
  5143. vmovd 52(%r8),%xmm0
  5144. vmovd 52(%r13),%xmm1
  5145. vmovd 52(%r9),%xmm2
  5146. vpinsrd $1,52(%r14),%xmm5,%xmm5
  5147. vpinsrd $1,52(%r10),%xmm0,%xmm0
  5148. vpinsrd $1,52(%r15),%xmm1,%xmm1
  5149. vpunpckldq %ymm1,%ymm5,%ymm5
  5150. vpinsrd $1,52(%r11),%xmm2,%xmm2
  5151. vpunpckldq %ymm2,%ymm0,%ymm0
  5152. vinserti128 $1,%xmm0,%ymm5,%ymm5
  5153. vpshufb %ymm6,%ymm5,%ymm5
  5154. vpsrld $6,%ymm15,%ymm7
  5155. vpslld $26,%ymm15,%ymm2
  5156. vmovdqu %ymm5,416-256-128(%rbx)
  5157. vpaddd %ymm10,%ymm5,%ymm5
  5158. vpsrld $11,%ymm15,%ymm1
  5159. vpxor %ymm2,%ymm7,%ymm7
  5160. vpslld $21,%ymm15,%ymm2
  5161. vpaddd 32(%rbp),%ymm5,%ymm5
  5162. vpxor %ymm1,%ymm7,%ymm7
  5163. vpsrld $25,%ymm15,%ymm1
  5164. vpxor %ymm2,%ymm7,%ymm7
  5165. vpslld $7,%ymm15,%ymm2
  5166. vpandn %ymm9,%ymm15,%ymm0
  5167. vpand %ymm8,%ymm15,%ymm4
  5168. vpxor %ymm1,%ymm7,%ymm7
  5169. vpsrld $2,%ymm11,%ymm10
  5170. vpxor %ymm2,%ymm7,%ymm7
  5171. vpslld $30,%ymm11,%ymm1
  5172. vpxor %ymm4,%ymm0,%ymm0
  5173. vpxor %ymm11,%ymm12,%ymm4
  5174. vpxor %ymm1,%ymm10,%ymm10
  5175. vpaddd %ymm7,%ymm5,%ymm5
  5176. vpsrld $13,%ymm11,%ymm1
  5177. vpslld $19,%ymm11,%ymm2
  5178. vpaddd %ymm0,%ymm5,%ymm5
  5179. vpand %ymm4,%ymm3,%ymm3
  5180. vpxor %ymm1,%ymm10,%ymm7
  5181. vpsrld $22,%ymm11,%ymm1
  5182. vpxor %ymm2,%ymm7,%ymm7
  5183. vpslld $10,%ymm11,%ymm2
  5184. vpxor %ymm3,%ymm12,%ymm10
  5185. vpaddd %ymm5,%ymm14,%ymm14
  5186. vpxor %ymm1,%ymm7,%ymm7
  5187. vpxor %ymm2,%ymm7,%ymm7
  5188. vpaddd %ymm5,%ymm10,%ymm10
  5189. vpaddd %ymm7,%ymm10,%ymm10
  5190. vmovd 56(%r12),%xmm5
  5191. vmovd 56(%r8),%xmm0
  5192. vmovd 56(%r13),%xmm1
  5193. vmovd 56(%r9),%xmm2
  5194. vpinsrd $1,56(%r14),%xmm5,%xmm5
  5195. vpinsrd $1,56(%r10),%xmm0,%xmm0
  5196. vpinsrd $1,56(%r15),%xmm1,%xmm1
  5197. vpunpckldq %ymm1,%ymm5,%ymm5
  5198. vpinsrd $1,56(%r11),%xmm2,%xmm2
  5199. vpunpckldq %ymm2,%ymm0,%ymm0
  5200. vinserti128 $1,%xmm0,%ymm5,%ymm5
  5201. vpshufb %ymm6,%ymm5,%ymm5
  5202. vpsrld $6,%ymm14,%ymm7
  5203. vpslld $26,%ymm14,%ymm2
  5204. vmovdqu %ymm5,448-256-128(%rbx)
  5205. vpaddd %ymm9,%ymm5,%ymm5
  5206. vpsrld $11,%ymm14,%ymm1
  5207. vpxor %ymm2,%ymm7,%ymm7
  5208. vpslld $21,%ymm14,%ymm2
  5209. vpaddd 64(%rbp),%ymm5,%ymm5
  5210. vpxor %ymm1,%ymm7,%ymm7
  5211. vpsrld $25,%ymm14,%ymm1
  5212. vpxor %ymm2,%ymm7,%ymm7
  5213. vpslld $7,%ymm14,%ymm2
  5214. vpandn %ymm8,%ymm14,%ymm0
  5215. vpand %ymm15,%ymm14,%ymm3
  5216. vpxor %ymm1,%ymm7,%ymm7
  5217. vpsrld $2,%ymm10,%ymm9
  5218. vpxor %ymm2,%ymm7,%ymm7
  5219. vpslld $30,%ymm10,%ymm1
  5220. vpxor %ymm3,%ymm0,%ymm0
  5221. vpxor %ymm10,%ymm11,%ymm3
  5222. vpxor %ymm1,%ymm9,%ymm9
  5223. vpaddd %ymm7,%ymm5,%ymm5
  5224. vpsrld $13,%ymm10,%ymm1
  5225. vpslld $19,%ymm10,%ymm2
  5226. vpaddd %ymm0,%ymm5,%ymm5
  5227. vpand %ymm3,%ymm4,%ymm4
  5228. vpxor %ymm1,%ymm9,%ymm7
  5229. vpsrld $22,%ymm10,%ymm1
  5230. vpxor %ymm2,%ymm7,%ymm7
  5231. vpslld $10,%ymm10,%ymm2
  5232. vpxor %ymm4,%ymm11,%ymm9
  5233. vpaddd %ymm5,%ymm13,%ymm13
  5234. vpxor %ymm1,%ymm7,%ymm7
  5235. vpxor %ymm2,%ymm7,%ymm7
  5236. vpaddd %ymm5,%ymm9,%ymm9
  5237. vpaddd %ymm7,%ymm9,%ymm9
  5238. vmovd 60(%r12),%xmm5
  5239. leaq 64(%r12),%r12
  5240. vmovd 60(%r8),%xmm0
  5241. leaq 64(%r8),%r8
  5242. vmovd 60(%r13),%xmm1
  5243. leaq 64(%r13),%r13
  5244. vmovd 60(%r9),%xmm2
  5245. leaq 64(%r9),%r9
  5246. vpinsrd $1,60(%r14),%xmm5,%xmm5
  5247. leaq 64(%r14),%r14
  5248. vpinsrd $1,60(%r10),%xmm0,%xmm0
  5249. leaq 64(%r10),%r10
  5250. vpinsrd $1,60(%r15),%xmm1,%xmm1
  5251. leaq 64(%r15),%r15
  5252. vpunpckldq %ymm1,%ymm5,%ymm5
  5253. vpinsrd $1,60(%r11),%xmm2,%xmm2
  5254. leaq 64(%r11),%r11
  5255. vpunpckldq %ymm2,%ymm0,%ymm0
  5256. vinserti128 $1,%xmm0,%ymm5,%ymm5
  5257. vpshufb %ymm6,%ymm5,%ymm5
  5258. vpsrld $6,%ymm13,%ymm7
  5259. vpslld $26,%ymm13,%ymm2
  5260. vmovdqu %ymm5,480-256-128(%rbx)
  5261. vpaddd %ymm8,%ymm5,%ymm5
  5262. vpsrld $11,%ymm13,%ymm1
  5263. vpxor %ymm2,%ymm7,%ymm7
  5264. vpslld $21,%ymm13,%ymm2
  5265. vpaddd 96(%rbp),%ymm5,%ymm5
  5266. vpxor %ymm1,%ymm7,%ymm7
  5267. vpsrld $25,%ymm13,%ymm1
  5268. vpxor %ymm2,%ymm7,%ymm7
  5269. prefetcht0 63(%r12)
  5270. vpslld $7,%ymm13,%ymm2
  5271. vpandn %ymm15,%ymm13,%ymm0
  5272. vpand %ymm14,%ymm13,%ymm4
  5273. prefetcht0 63(%r13)
  5274. vpxor %ymm1,%ymm7,%ymm7
  5275. vpsrld $2,%ymm9,%ymm8
  5276. vpxor %ymm2,%ymm7,%ymm7
  5277. prefetcht0 63(%r14)
  5278. vpslld $30,%ymm9,%ymm1
  5279. vpxor %ymm4,%ymm0,%ymm0
  5280. vpxor %ymm9,%ymm10,%ymm4
  5281. prefetcht0 63(%r15)
  5282. vpxor %ymm1,%ymm8,%ymm8
  5283. vpaddd %ymm7,%ymm5,%ymm5
  5284. vpsrld $13,%ymm9,%ymm1
  5285. prefetcht0 63(%r8)
  5286. vpslld $19,%ymm9,%ymm2
  5287. vpaddd %ymm0,%ymm5,%ymm5
  5288. vpand %ymm4,%ymm3,%ymm3
  5289. prefetcht0 63(%r9)
  5290. vpxor %ymm1,%ymm8,%ymm7
  5291. vpsrld $22,%ymm9,%ymm1
  5292. vpxor %ymm2,%ymm7,%ymm7
  5293. prefetcht0 63(%r10)
  5294. vpslld $10,%ymm9,%ymm2
  5295. vpxor %ymm3,%ymm10,%ymm8
  5296. vpaddd %ymm5,%ymm12,%ymm12
  5297. prefetcht0 63(%r11)
  5298. vpxor %ymm1,%ymm7,%ymm7
  5299. vpxor %ymm2,%ymm7,%ymm7
  5300. vpaddd %ymm5,%ymm8,%ymm8
  5301. vpaddd %ymm7,%ymm8,%ymm8
  5302. addq $256,%rbp
  5303. vmovdqu 0-128(%rax),%ymm5
  5304. movl $3,%ecx
  5305. jmp L$oop_16_xx_avx2
  5306. .p2align 5
  5307. L$oop_16_xx_avx2:
  5308. vmovdqu 32-128(%rax),%ymm6
  5309. vpaddd 288-256-128(%rbx),%ymm5,%ymm5
  5310. vpsrld $3,%ymm6,%ymm7
  5311. vpsrld $7,%ymm6,%ymm1
  5312. vpslld $25,%ymm6,%ymm2
  5313. vpxor %ymm1,%ymm7,%ymm7
  5314. vpsrld $18,%ymm6,%ymm1
  5315. vpxor %ymm2,%ymm7,%ymm7
  5316. vpslld $14,%ymm6,%ymm2
  5317. vmovdqu 448-256-128(%rbx),%ymm0
  5318. vpsrld $10,%ymm0,%ymm3
  5319. vpxor %ymm1,%ymm7,%ymm7
  5320. vpsrld $17,%ymm0,%ymm1
  5321. vpxor %ymm2,%ymm7,%ymm7
  5322. vpslld $15,%ymm0,%ymm2
  5323. vpaddd %ymm7,%ymm5,%ymm5
  5324. vpxor %ymm1,%ymm3,%ymm7
  5325. vpsrld $19,%ymm0,%ymm1
  5326. vpxor %ymm2,%ymm7,%ymm7
  5327. vpslld $13,%ymm0,%ymm2
  5328. vpxor %ymm1,%ymm7,%ymm7
  5329. vpxor %ymm2,%ymm7,%ymm7
  5330. vpaddd %ymm7,%ymm5,%ymm5
  5331. vpsrld $6,%ymm12,%ymm7
  5332. vpslld $26,%ymm12,%ymm2
  5333. vmovdqu %ymm5,0-128(%rax)
  5334. vpaddd %ymm15,%ymm5,%ymm5
  5335. vpsrld $11,%ymm12,%ymm1
  5336. vpxor %ymm2,%ymm7,%ymm7
  5337. vpslld $21,%ymm12,%ymm2
  5338. vpaddd -128(%rbp),%ymm5,%ymm5
  5339. vpxor %ymm1,%ymm7,%ymm7
  5340. vpsrld $25,%ymm12,%ymm1
  5341. vpxor %ymm2,%ymm7,%ymm7
  5342. vpslld $7,%ymm12,%ymm2
  5343. vpandn %ymm14,%ymm12,%ymm0
  5344. vpand %ymm13,%ymm12,%ymm3
  5345. vpxor %ymm1,%ymm7,%ymm7
  5346. vpsrld $2,%ymm8,%ymm15
  5347. vpxor %ymm2,%ymm7,%ymm7
  5348. vpslld $30,%ymm8,%ymm1
  5349. vpxor %ymm3,%ymm0,%ymm0
  5350. vpxor %ymm8,%ymm9,%ymm3
  5351. vpxor %ymm1,%ymm15,%ymm15
  5352. vpaddd %ymm7,%ymm5,%ymm5
  5353. vpsrld $13,%ymm8,%ymm1
  5354. vpslld $19,%ymm8,%ymm2
  5355. vpaddd %ymm0,%ymm5,%ymm5
  5356. vpand %ymm3,%ymm4,%ymm4
  5357. vpxor %ymm1,%ymm15,%ymm7
  5358. vpsrld $22,%ymm8,%ymm1
  5359. vpxor %ymm2,%ymm7,%ymm7
  5360. vpslld $10,%ymm8,%ymm2
  5361. vpxor %ymm4,%ymm9,%ymm15
  5362. vpaddd %ymm5,%ymm11,%ymm11
  5363. vpxor %ymm1,%ymm7,%ymm7
  5364. vpxor %ymm2,%ymm7,%ymm7
  5365. vpaddd %ymm5,%ymm15,%ymm15
  5366. vpaddd %ymm7,%ymm15,%ymm15
  5367. vmovdqu 64-128(%rax),%ymm5
  5368. vpaddd 320-256-128(%rbx),%ymm6,%ymm6
  5369. vpsrld $3,%ymm5,%ymm7
  5370. vpsrld $7,%ymm5,%ymm1
  5371. vpslld $25,%ymm5,%ymm2
  5372. vpxor %ymm1,%ymm7,%ymm7
  5373. vpsrld $18,%ymm5,%ymm1
  5374. vpxor %ymm2,%ymm7,%ymm7
  5375. vpslld $14,%ymm5,%ymm2
  5376. vmovdqu 480-256-128(%rbx),%ymm0
  5377. vpsrld $10,%ymm0,%ymm4
  5378. vpxor %ymm1,%ymm7,%ymm7
  5379. vpsrld $17,%ymm0,%ymm1
  5380. vpxor %ymm2,%ymm7,%ymm7
  5381. vpslld $15,%ymm0,%ymm2
  5382. vpaddd %ymm7,%ymm6,%ymm6
  5383. vpxor %ymm1,%ymm4,%ymm7
  5384. vpsrld $19,%ymm0,%ymm1
  5385. vpxor %ymm2,%ymm7,%ymm7
  5386. vpslld $13,%ymm0,%ymm2
  5387. vpxor %ymm1,%ymm7,%ymm7
  5388. vpxor %ymm2,%ymm7,%ymm7
  5389. vpaddd %ymm7,%ymm6,%ymm6
  5390. vpsrld $6,%ymm11,%ymm7
  5391. vpslld $26,%ymm11,%ymm2
  5392. vmovdqu %ymm6,32-128(%rax)
  5393. vpaddd %ymm14,%ymm6,%ymm6
  5394. vpsrld $11,%ymm11,%ymm1
  5395. vpxor %ymm2,%ymm7,%ymm7
  5396. vpslld $21,%ymm11,%ymm2
  5397. vpaddd -96(%rbp),%ymm6,%ymm6
  5398. vpxor %ymm1,%ymm7,%ymm7
  5399. vpsrld $25,%ymm11,%ymm1
  5400. vpxor %ymm2,%ymm7,%ymm7
  5401. vpslld $7,%ymm11,%ymm2
  5402. vpandn %ymm13,%ymm11,%ymm0
  5403. vpand %ymm12,%ymm11,%ymm4
  5404. vpxor %ymm1,%ymm7,%ymm7
  5405. vpsrld $2,%ymm15,%ymm14
  5406. vpxor %ymm2,%ymm7,%ymm7
  5407. vpslld $30,%ymm15,%ymm1
  5408. vpxor %ymm4,%ymm0,%ymm0
  5409. vpxor %ymm15,%ymm8,%ymm4
  5410. vpxor %ymm1,%ymm14,%ymm14
  5411. vpaddd %ymm7,%ymm6,%ymm6
  5412. vpsrld $13,%ymm15,%ymm1
  5413. vpslld $19,%ymm15,%ymm2
  5414. vpaddd %ymm0,%ymm6,%ymm6
  5415. vpand %ymm4,%ymm3,%ymm3
  5416. vpxor %ymm1,%ymm14,%ymm7
  5417. vpsrld $22,%ymm15,%ymm1
  5418. vpxor %ymm2,%ymm7,%ymm7
  5419. vpslld $10,%ymm15,%ymm2
  5420. vpxor %ymm3,%ymm8,%ymm14
  5421. vpaddd %ymm6,%ymm10,%ymm10
  5422. vpxor %ymm1,%ymm7,%ymm7
  5423. vpxor %ymm2,%ymm7,%ymm7
  5424. vpaddd %ymm6,%ymm14,%ymm14
  5425. vpaddd %ymm7,%ymm14,%ymm14
  5426. vmovdqu 96-128(%rax),%ymm6
  5427. vpaddd 352-256-128(%rbx),%ymm5,%ymm5
  5428. vpsrld $3,%ymm6,%ymm7
  5429. vpsrld $7,%ymm6,%ymm1
  5430. vpslld $25,%ymm6,%ymm2
  5431. vpxor %ymm1,%ymm7,%ymm7
  5432. vpsrld $18,%ymm6,%ymm1
  5433. vpxor %ymm2,%ymm7,%ymm7
  5434. vpslld $14,%ymm6,%ymm2
  5435. vmovdqu 0-128(%rax),%ymm0
  5436. vpsrld $10,%ymm0,%ymm3
  5437. vpxor %ymm1,%ymm7,%ymm7
  5438. vpsrld $17,%ymm0,%ymm1
  5439. vpxor %ymm2,%ymm7,%ymm7
  5440. vpslld $15,%ymm0,%ymm2
  5441. vpaddd %ymm7,%ymm5,%ymm5
  5442. vpxor %ymm1,%ymm3,%ymm7
  5443. vpsrld $19,%ymm0,%ymm1
  5444. vpxor %ymm2,%ymm7,%ymm7
  5445. vpslld $13,%ymm0,%ymm2
  5446. vpxor %ymm1,%ymm7,%ymm7
  5447. vpxor %ymm2,%ymm7,%ymm7
  5448. vpaddd %ymm7,%ymm5,%ymm5
  5449. vpsrld $6,%ymm10,%ymm7
  5450. vpslld $26,%ymm10,%ymm2
  5451. vmovdqu %ymm5,64-128(%rax)
  5452. vpaddd %ymm13,%ymm5,%ymm5
  5453. vpsrld $11,%ymm10,%ymm1
  5454. vpxor %ymm2,%ymm7,%ymm7
  5455. vpslld $21,%ymm10,%ymm2
  5456. vpaddd -64(%rbp),%ymm5,%ymm5
  5457. vpxor %ymm1,%ymm7,%ymm7
  5458. vpsrld $25,%ymm10,%ymm1
  5459. vpxor %ymm2,%ymm7,%ymm7
  5460. vpslld $7,%ymm10,%ymm2
  5461. vpandn %ymm12,%ymm10,%ymm0
  5462. vpand %ymm11,%ymm10,%ymm3
  5463. vpxor %ymm1,%ymm7,%ymm7
  5464. vpsrld $2,%ymm14,%ymm13
  5465. vpxor %ymm2,%ymm7,%ymm7
  5466. vpslld $30,%ymm14,%ymm1
  5467. vpxor %ymm3,%ymm0,%ymm0
  5468. vpxor %ymm14,%ymm15,%ymm3
  5469. vpxor %ymm1,%ymm13,%ymm13
  5470. vpaddd %ymm7,%ymm5,%ymm5
  5471. vpsrld $13,%ymm14,%ymm1
  5472. vpslld $19,%ymm14,%ymm2
  5473. vpaddd %ymm0,%ymm5,%ymm5
  5474. vpand %ymm3,%ymm4,%ymm4
  5475. vpxor %ymm1,%ymm13,%ymm7
  5476. vpsrld $22,%ymm14,%ymm1
  5477. vpxor %ymm2,%ymm7,%ymm7
  5478. vpslld $10,%ymm14,%ymm2
  5479. vpxor %ymm4,%ymm15,%ymm13
  5480. vpaddd %ymm5,%ymm9,%ymm9
  5481. vpxor %ymm1,%ymm7,%ymm7
  5482. vpxor %ymm2,%ymm7,%ymm7
  5483. vpaddd %ymm5,%ymm13,%ymm13
  5484. vpaddd %ymm7,%ymm13,%ymm13
  5485. vmovdqu 128-128(%rax),%ymm5
  5486. vpaddd 384-256-128(%rbx),%ymm6,%ymm6
  5487. vpsrld $3,%ymm5,%ymm7
  5488. vpsrld $7,%ymm5,%ymm1
  5489. vpslld $25,%ymm5,%ymm2
  5490. vpxor %ymm1,%ymm7,%ymm7
  5491. vpsrld $18,%ymm5,%ymm1
  5492. vpxor %ymm2,%ymm7,%ymm7
  5493. vpslld $14,%ymm5,%ymm2
  5494. vmovdqu 32-128(%rax),%ymm0
  5495. vpsrld $10,%ymm0,%ymm4
  5496. vpxor %ymm1,%ymm7,%ymm7
  5497. vpsrld $17,%ymm0,%ymm1
  5498. vpxor %ymm2,%ymm7,%ymm7
  5499. vpslld $15,%ymm0,%ymm2
  5500. vpaddd %ymm7,%ymm6,%ymm6
  5501. vpxor %ymm1,%ymm4,%ymm7
  5502. vpsrld $19,%ymm0,%ymm1
  5503. vpxor %ymm2,%ymm7,%ymm7
  5504. vpslld $13,%ymm0,%ymm2
  5505. vpxor %ymm1,%ymm7,%ymm7
  5506. vpxor %ymm2,%ymm7,%ymm7
  5507. vpaddd %ymm7,%ymm6,%ymm6
  5508. vpsrld $6,%ymm9,%ymm7
  5509. vpslld $26,%ymm9,%ymm2
  5510. vmovdqu %ymm6,96-128(%rax)
  5511. vpaddd %ymm12,%ymm6,%ymm6
  5512. vpsrld $11,%ymm9,%ymm1
  5513. vpxor %ymm2,%ymm7,%ymm7
  5514. vpslld $21,%ymm9,%ymm2
  5515. vpaddd -32(%rbp),%ymm6,%ymm6
  5516. vpxor %ymm1,%ymm7,%ymm7
  5517. vpsrld $25,%ymm9,%ymm1
  5518. vpxor %ymm2,%ymm7,%ymm7
  5519. vpslld $7,%ymm9,%ymm2
  5520. vpandn %ymm11,%ymm9,%ymm0
  5521. vpand %ymm10,%ymm9,%ymm4
  5522. vpxor %ymm1,%ymm7,%ymm7
  5523. vpsrld $2,%ymm13,%ymm12
  5524. vpxor %ymm2,%ymm7,%ymm7
  5525. vpslld $30,%ymm13,%ymm1
  5526. vpxor %ymm4,%ymm0,%ymm0
  5527. vpxor %ymm13,%ymm14,%ymm4
  5528. vpxor %ymm1,%ymm12,%ymm12
  5529. vpaddd %ymm7,%ymm6,%ymm6
  5530. vpsrld $13,%ymm13,%ymm1
  5531. vpslld $19,%ymm13,%ymm2
  5532. vpaddd %ymm0,%ymm6,%ymm6
  5533. vpand %ymm4,%ymm3,%ymm3
  5534. vpxor %ymm1,%ymm12,%ymm7
  5535. vpsrld $22,%ymm13,%ymm1
  5536. vpxor %ymm2,%ymm7,%ymm7
  5537. vpslld $10,%ymm13,%ymm2
  5538. vpxor %ymm3,%ymm14,%ymm12
  5539. vpaddd %ymm6,%ymm8,%ymm8
  5540. vpxor %ymm1,%ymm7,%ymm7
  5541. vpxor %ymm2,%ymm7,%ymm7
  5542. vpaddd %ymm6,%ymm12,%ymm12
  5543. vpaddd %ymm7,%ymm12,%ymm12
  5544. vmovdqu 160-128(%rax),%ymm6
  5545. vpaddd 416-256-128(%rbx),%ymm5,%ymm5
  5546. vpsrld $3,%ymm6,%ymm7
  5547. vpsrld $7,%ymm6,%ymm1
  5548. vpslld $25,%ymm6,%ymm2
  5549. vpxor %ymm1,%ymm7,%ymm7
  5550. vpsrld $18,%ymm6,%ymm1
  5551. vpxor %ymm2,%ymm7,%ymm7
  5552. vpslld $14,%ymm6,%ymm2
  5553. vmovdqu 64-128(%rax),%ymm0
  5554. vpsrld $10,%ymm0,%ymm3
  5555. vpxor %ymm1,%ymm7,%ymm7
  5556. vpsrld $17,%ymm0,%ymm1
  5557. vpxor %ymm2,%ymm7,%ymm7
  5558. vpslld $15,%ymm0,%ymm2
  5559. vpaddd %ymm7,%ymm5,%ymm5
  5560. vpxor %ymm1,%ymm3,%ymm7
  5561. vpsrld $19,%ymm0,%ymm1
  5562. vpxor %ymm2,%ymm7,%ymm7
  5563. vpslld $13,%ymm0,%ymm2
  5564. vpxor %ymm1,%ymm7,%ymm7
  5565. vpxor %ymm2,%ymm7,%ymm7
  5566. vpaddd %ymm7,%ymm5,%ymm5
  5567. vpsrld $6,%ymm8,%ymm7
  5568. vpslld $26,%ymm8,%ymm2
  5569. vmovdqu %ymm5,128-128(%rax)
  5570. vpaddd %ymm11,%ymm5,%ymm5
  5571. vpsrld $11,%ymm8,%ymm1
  5572. vpxor %ymm2,%ymm7,%ymm7
  5573. vpslld $21,%ymm8,%ymm2
  5574. vpaddd 0(%rbp),%ymm5,%ymm5
  5575. vpxor %ymm1,%ymm7,%ymm7
  5576. vpsrld $25,%ymm8,%ymm1
  5577. vpxor %ymm2,%ymm7,%ymm7
  5578. vpslld $7,%ymm8,%ymm2
  5579. vpandn %ymm10,%ymm8,%ymm0
  5580. vpand %ymm9,%ymm8,%ymm3
  5581. vpxor %ymm1,%ymm7,%ymm7
  5582. vpsrld $2,%ymm12,%ymm11
  5583. vpxor %ymm2,%ymm7,%ymm7
  5584. vpslld $30,%ymm12,%ymm1
  5585. vpxor %ymm3,%ymm0,%ymm0
  5586. vpxor %ymm12,%ymm13,%ymm3
  5587. vpxor %ymm1,%ymm11,%ymm11
  5588. vpaddd %ymm7,%ymm5,%ymm5
  5589. vpsrld $13,%ymm12,%ymm1
  5590. vpslld $19,%ymm12,%ymm2
  5591. vpaddd %ymm0,%ymm5,%ymm5
  5592. vpand %ymm3,%ymm4,%ymm4
  5593. vpxor %ymm1,%ymm11,%ymm7
  5594. vpsrld $22,%ymm12,%ymm1
  5595. vpxor %ymm2,%ymm7,%ymm7
  5596. vpslld $10,%ymm12,%ymm2
  5597. vpxor %ymm4,%ymm13,%ymm11
  5598. vpaddd %ymm5,%ymm15,%ymm15
  5599. vpxor %ymm1,%ymm7,%ymm7
  5600. vpxor %ymm2,%ymm7,%ymm7
  5601. vpaddd %ymm5,%ymm11,%ymm11
  5602. vpaddd %ymm7,%ymm11,%ymm11
  5603. vmovdqu 192-128(%rax),%ymm5
  5604. vpaddd 448-256-128(%rbx),%ymm6,%ymm6
  5605. vpsrld $3,%ymm5,%ymm7
  5606. vpsrld $7,%ymm5,%ymm1
  5607. vpslld $25,%ymm5,%ymm2
  5608. vpxor %ymm1,%ymm7,%ymm7
  5609. vpsrld $18,%ymm5,%ymm1
  5610. vpxor %ymm2,%ymm7,%ymm7
  5611. vpslld $14,%ymm5,%ymm2
  5612. vmovdqu 96-128(%rax),%ymm0
  5613. vpsrld $10,%ymm0,%ymm4
  5614. vpxor %ymm1,%ymm7,%ymm7
  5615. vpsrld $17,%ymm0,%ymm1
  5616. vpxor %ymm2,%ymm7,%ymm7
  5617. vpslld $15,%ymm0,%ymm2
  5618. vpaddd %ymm7,%ymm6,%ymm6
  5619. vpxor %ymm1,%ymm4,%ymm7
  5620. vpsrld $19,%ymm0,%ymm1
  5621. vpxor %ymm2,%ymm7,%ymm7
  5622. vpslld $13,%ymm0,%ymm2
  5623. vpxor %ymm1,%ymm7,%ymm7
  5624. vpxor %ymm2,%ymm7,%ymm7
  5625. vpaddd %ymm7,%ymm6,%ymm6
  5626. vpsrld $6,%ymm15,%ymm7
  5627. vpslld $26,%ymm15,%ymm2
  5628. vmovdqu %ymm6,160-128(%rax)
  5629. vpaddd %ymm10,%ymm6,%ymm6
  5630. vpsrld $11,%ymm15,%ymm1
  5631. vpxor %ymm2,%ymm7,%ymm7
  5632. vpslld $21,%ymm15,%ymm2
  5633. vpaddd 32(%rbp),%ymm6,%ymm6
  5634. vpxor %ymm1,%ymm7,%ymm7
  5635. vpsrld $25,%ymm15,%ymm1
  5636. vpxor %ymm2,%ymm7,%ymm7
  5637. vpslld $7,%ymm15,%ymm2
  5638. vpandn %ymm9,%ymm15,%ymm0
  5639. vpand %ymm8,%ymm15,%ymm4
  5640. vpxor %ymm1,%ymm7,%ymm7
  5641. vpsrld $2,%ymm11,%ymm10
  5642. vpxor %ymm2,%ymm7,%ymm7
  5643. vpslld $30,%ymm11,%ymm1
  5644. vpxor %ymm4,%ymm0,%ymm0
  5645. vpxor %ymm11,%ymm12,%ymm4
  5646. vpxor %ymm1,%ymm10,%ymm10
  5647. vpaddd %ymm7,%ymm6,%ymm6
  5648. vpsrld $13,%ymm11,%ymm1
  5649. vpslld $19,%ymm11,%ymm2
  5650. vpaddd %ymm0,%ymm6,%ymm6
  5651. vpand %ymm4,%ymm3,%ymm3
  5652. vpxor %ymm1,%ymm10,%ymm7
  5653. vpsrld $22,%ymm11,%ymm1
  5654. vpxor %ymm2,%ymm7,%ymm7
  5655. vpslld $10,%ymm11,%ymm2
  5656. vpxor %ymm3,%ymm12,%ymm10
  5657. vpaddd %ymm6,%ymm14,%ymm14
  5658. vpxor %ymm1,%ymm7,%ymm7
  5659. vpxor %ymm2,%ymm7,%ymm7
  5660. vpaddd %ymm6,%ymm10,%ymm10
  5661. vpaddd %ymm7,%ymm10,%ymm10
  5662. vmovdqu 224-128(%rax),%ymm6
  5663. vpaddd 480-256-128(%rbx),%ymm5,%ymm5
  5664. vpsrld $3,%ymm6,%ymm7
  5665. vpsrld $7,%ymm6,%ymm1
  5666. vpslld $25,%ymm6,%ymm2
  5667. vpxor %ymm1,%ymm7,%ymm7
  5668. vpsrld $18,%ymm6,%ymm1
  5669. vpxor %ymm2,%ymm7,%ymm7
  5670. vpslld $14,%ymm6,%ymm2
  5671. vmovdqu 128-128(%rax),%ymm0
  5672. vpsrld $10,%ymm0,%ymm3
  5673. vpxor %ymm1,%ymm7,%ymm7
  5674. vpsrld $17,%ymm0,%ymm1
  5675. vpxor %ymm2,%ymm7,%ymm7
  5676. vpslld $15,%ymm0,%ymm2
  5677. vpaddd %ymm7,%ymm5,%ymm5
  5678. vpxor %ymm1,%ymm3,%ymm7
  5679. vpsrld $19,%ymm0,%ymm1
  5680. vpxor %ymm2,%ymm7,%ymm7
  5681. vpslld $13,%ymm0,%ymm2
  5682. vpxor %ymm1,%ymm7,%ymm7
  5683. vpxor %ymm2,%ymm7,%ymm7
  5684. vpaddd %ymm7,%ymm5,%ymm5
  5685. vpsrld $6,%ymm14,%ymm7
  5686. vpslld $26,%ymm14,%ymm2
  5687. vmovdqu %ymm5,192-128(%rax)
  5688. vpaddd %ymm9,%ymm5,%ymm5
  5689. vpsrld $11,%ymm14,%ymm1
  5690. vpxor %ymm2,%ymm7,%ymm7
  5691. vpslld $21,%ymm14,%ymm2
  5692. vpaddd 64(%rbp),%ymm5,%ymm5
  5693. vpxor %ymm1,%ymm7,%ymm7
  5694. vpsrld $25,%ymm14,%ymm1
  5695. vpxor %ymm2,%ymm7,%ymm7
  5696. vpslld $7,%ymm14,%ymm2
  5697. vpandn %ymm8,%ymm14,%ymm0
  5698. vpand %ymm15,%ymm14,%ymm3
  5699. vpxor %ymm1,%ymm7,%ymm7
  5700. vpsrld $2,%ymm10,%ymm9
  5701. vpxor %ymm2,%ymm7,%ymm7
  5702. vpslld $30,%ymm10,%ymm1
  5703. vpxor %ymm3,%ymm0,%ymm0
  5704. vpxor %ymm10,%ymm11,%ymm3
  5705. vpxor %ymm1,%ymm9,%ymm9
  5706. vpaddd %ymm7,%ymm5,%ymm5
  5707. vpsrld $13,%ymm10,%ymm1
  5708. vpslld $19,%ymm10,%ymm2
  5709. vpaddd %ymm0,%ymm5,%ymm5
  5710. vpand %ymm3,%ymm4,%ymm4
  5711. vpxor %ymm1,%ymm9,%ymm7
  5712. vpsrld $22,%ymm10,%ymm1
  5713. vpxor %ymm2,%ymm7,%ymm7
  5714. vpslld $10,%ymm10,%ymm2
  5715. vpxor %ymm4,%ymm11,%ymm9
  5716. vpaddd %ymm5,%ymm13,%ymm13
  5717. vpxor %ymm1,%ymm7,%ymm7
  5718. vpxor %ymm2,%ymm7,%ymm7
  5719. vpaddd %ymm5,%ymm9,%ymm9
  5720. vpaddd %ymm7,%ymm9,%ymm9
  5721. vmovdqu 256-256-128(%rbx),%ymm5
  5722. vpaddd 0-128(%rax),%ymm6,%ymm6
  5723. vpsrld $3,%ymm5,%ymm7
  5724. vpsrld $7,%ymm5,%ymm1
  5725. vpslld $25,%ymm5,%ymm2
  5726. vpxor %ymm1,%ymm7,%ymm7
  5727. vpsrld $18,%ymm5,%ymm1
  5728. vpxor %ymm2,%ymm7,%ymm7
  5729. vpslld $14,%ymm5,%ymm2
  5730. vmovdqu 160-128(%rax),%ymm0
  5731. vpsrld $10,%ymm0,%ymm4
  5732. vpxor %ymm1,%ymm7,%ymm7
  5733. vpsrld $17,%ymm0,%ymm1
  5734. vpxor %ymm2,%ymm7,%ymm7
  5735. vpslld $15,%ymm0,%ymm2
  5736. vpaddd %ymm7,%ymm6,%ymm6
  5737. vpxor %ymm1,%ymm4,%ymm7
  5738. vpsrld $19,%ymm0,%ymm1
  5739. vpxor %ymm2,%ymm7,%ymm7
  5740. vpslld $13,%ymm0,%ymm2
  5741. vpxor %ymm1,%ymm7,%ymm7
  5742. vpxor %ymm2,%ymm7,%ymm7
  5743. vpaddd %ymm7,%ymm6,%ymm6
  5744. vpsrld $6,%ymm13,%ymm7
  5745. vpslld $26,%ymm13,%ymm2
  5746. vmovdqu %ymm6,224-128(%rax)
  5747. vpaddd %ymm8,%ymm6,%ymm6
  5748. vpsrld $11,%ymm13,%ymm1
  5749. vpxor %ymm2,%ymm7,%ymm7
  5750. vpslld $21,%ymm13,%ymm2
  5751. vpaddd 96(%rbp),%ymm6,%ymm6
  5752. vpxor %ymm1,%ymm7,%ymm7
  5753. vpsrld $25,%ymm13,%ymm1
  5754. vpxor %ymm2,%ymm7,%ymm7
  5755. vpslld $7,%ymm13,%ymm2
  5756. vpandn %ymm15,%ymm13,%ymm0
  5757. vpand %ymm14,%ymm13,%ymm4
  5758. vpxor %ymm1,%ymm7,%ymm7
  5759. vpsrld $2,%ymm9,%ymm8
  5760. vpxor %ymm2,%ymm7,%ymm7
  5761. vpslld $30,%ymm9,%ymm1
  5762. vpxor %ymm4,%ymm0,%ymm0
  5763. vpxor %ymm9,%ymm10,%ymm4
  5764. vpxor %ymm1,%ymm8,%ymm8
  5765. vpaddd %ymm7,%ymm6,%ymm6
  5766. vpsrld $13,%ymm9,%ymm1
  5767. vpslld $19,%ymm9,%ymm2
  5768. vpaddd %ymm0,%ymm6,%ymm6
  5769. vpand %ymm4,%ymm3,%ymm3
  5770. vpxor %ymm1,%ymm8,%ymm7
  5771. vpsrld $22,%ymm9,%ymm1
  5772. vpxor %ymm2,%ymm7,%ymm7
  5773. vpslld $10,%ymm9,%ymm2
  5774. vpxor %ymm3,%ymm10,%ymm8
  5775. vpaddd %ymm6,%ymm12,%ymm12
  5776. vpxor %ymm1,%ymm7,%ymm7
  5777. vpxor %ymm2,%ymm7,%ymm7
  5778. vpaddd %ymm6,%ymm8,%ymm8
  5779. vpaddd %ymm7,%ymm8,%ymm8
  5780. addq $256,%rbp
  5781. vmovdqu 288-256-128(%rbx),%ymm6
  5782. vpaddd 32-128(%rax),%ymm5,%ymm5
  5783. vpsrld $3,%ymm6,%ymm7
  5784. vpsrld $7,%ymm6,%ymm1
  5785. vpslld $25,%ymm6,%ymm2
  5786. vpxor %ymm1,%ymm7,%ymm7
  5787. vpsrld $18,%ymm6,%ymm1
  5788. vpxor %ymm2,%ymm7,%ymm7
  5789. vpslld $14,%ymm6,%ymm2
  5790. vmovdqu 192-128(%rax),%ymm0
  5791. vpsrld $10,%ymm0,%ymm3
  5792. vpxor %ymm1,%ymm7,%ymm7
  5793. vpsrld $17,%ymm0,%ymm1
  5794. vpxor %ymm2,%ymm7,%ymm7
  5795. vpslld $15,%ymm0,%ymm2
  5796. vpaddd %ymm7,%ymm5,%ymm5
  5797. vpxor %ymm1,%ymm3,%ymm7
  5798. vpsrld $19,%ymm0,%ymm1
  5799. vpxor %ymm2,%ymm7,%ymm7
  5800. vpslld $13,%ymm0,%ymm2
  5801. vpxor %ymm1,%ymm7,%ymm7
  5802. vpxor %ymm2,%ymm7,%ymm7
  5803. vpaddd %ymm7,%ymm5,%ymm5
  5804. vpsrld $6,%ymm12,%ymm7
  5805. vpslld $26,%ymm12,%ymm2
  5806. vmovdqu %ymm5,256-256-128(%rbx)
  5807. vpaddd %ymm15,%ymm5,%ymm5
  5808. vpsrld $11,%ymm12,%ymm1
  5809. vpxor %ymm2,%ymm7,%ymm7
  5810. vpslld $21,%ymm12,%ymm2
  5811. vpaddd -128(%rbp),%ymm5,%ymm5
  5812. vpxor %ymm1,%ymm7,%ymm7
  5813. vpsrld $25,%ymm12,%ymm1
  5814. vpxor %ymm2,%ymm7,%ymm7
  5815. vpslld $7,%ymm12,%ymm2
  5816. vpandn %ymm14,%ymm12,%ymm0
  5817. vpand %ymm13,%ymm12,%ymm3
  5818. vpxor %ymm1,%ymm7,%ymm7
  5819. vpsrld $2,%ymm8,%ymm15
  5820. vpxor %ymm2,%ymm7,%ymm7
  5821. vpslld $30,%ymm8,%ymm1
  5822. vpxor %ymm3,%ymm0,%ymm0
  5823. vpxor %ymm8,%ymm9,%ymm3
  5824. vpxor %ymm1,%ymm15,%ymm15
  5825. vpaddd %ymm7,%ymm5,%ymm5
  5826. vpsrld $13,%ymm8,%ymm1
  5827. vpslld $19,%ymm8,%ymm2
  5828. vpaddd %ymm0,%ymm5,%ymm5
  5829. vpand %ymm3,%ymm4,%ymm4
  5830. vpxor %ymm1,%ymm15,%ymm7
  5831. vpsrld $22,%ymm8,%ymm1
  5832. vpxor %ymm2,%ymm7,%ymm7
  5833. vpslld $10,%ymm8,%ymm2
  5834. vpxor %ymm4,%ymm9,%ymm15
  5835. vpaddd %ymm5,%ymm11,%ymm11
  5836. vpxor %ymm1,%ymm7,%ymm7
  5837. vpxor %ymm2,%ymm7,%ymm7
  5838. vpaddd %ymm5,%ymm15,%ymm15
  5839. vpaddd %ymm7,%ymm15,%ymm15
  5840. vmovdqu 320-256-128(%rbx),%ymm5
  5841. vpaddd 64-128(%rax),%ymm6,%ymm6
  5842. vpsrld $3,%ymm5,%ymm7
  5843. vpsrld $7,%ymm5,%ymm1
  5844. vpslld $25,%ymm5,%ymm2
  5845. vpxor %ymm1,%ymm7,%ymm7
  5846. vpsrld $18,%ymm5,%ymm1
  5847. vpxor %ymm2,%ymm7,%ymm7
  5848. vpslld $14,%ymm5,%ymm2
  5849. vmovdqu 224-128(%rax),%ymm0
  5850. vpsrld $10,%ymm0,%ymm4
  5851. vpxor %ymm1,%ymm7,%ymm7
  5852. vpsrld $17,%ymm0,%ymm1
  5853. vpxor %ymm2,%ymm7,%ymm7
  5854. vpslld $15,%ymm0,%ymm2
  5855. vpaddd %ymm7,%ymm6,%ymm6
  5856. vpxor %ymm1,%ymm4,%ymm7
  5857. vpsrld $19,%ymm0,%ymm1
  5858. vpxor %ymm2,%ymm7,%ymm7
  5859. vpslld $13,%ymm0,%ymm2
  5860. vpxor %ymm1,%ymm7,%ymm7
  5861. vpxor %ymm2,%ymm7,%ymm7
  5862. vpaddd %ymm7,%ymm6,%ymm6
  5863. vpsrld $6,%ymm11,%ymm7
  5864. vpslld $26,%ymm11,%ymm2
  5865. vmovdqu %ymm6,288-256-128(%rbx)
  5866. vpaddd %ymm14,%ymm6,%ymm6
  5867. vpsrld $11,%ymm11,%ymm1
  5868. vpxor %ymm2,%ymm7,%ymm7
  5869. vpslld $21,%ymm11,%ymm2
  5870. vpaddd -96(%rbp),%ymm6,%ymm6
  5871. vpxor %ymm1,%ymm7,%ymm7
  5872. vpsrld $25,%ymm11,%ymm1
  5873. vpxor %ymm2,%ymm7,%ymm7
  5874. vpslld $7,%ymm11,%ymm2
  5875. vpandn %ymm13,%ymm11,%ymm0
  5876. vpand %ymm12,%ymm11,%ymm4
  5877. vpxor %ymm1,%ymm7,%ymm7
  5878. vpsrld $2,%ymm15,%ymm14
  5879. vpxor %ymm2,%ymm7,%ymm7
  5880. vpslld $30,%ymm15,%ymm1
  5881. vpxor %ymm4,%ymm0,%ymm0
  5882. vpxor %ymm15,%ymm8,%ymm4
  5883. vpxor %ymm1,%ymm14,%ymm14
  5884. vpaddd %ymm7,%ymm6,%ymm6
  5885. vpsrld $13,%ymm15,%ymm1
  5886. vpslld $19,%ymm15,%ymm2
  5887. vpaddd %ymm0,%ymm6,%ymm6
  5888. vpand %ymm4,%ymm3,%ymm3
  5889. vpxor %ymm1,%ymm14,%ymm7
  5890. vpsrld $22,%ymm15,%ymm1
  5891. vpxor %ymm2,%ymm7,%ymm7
  5892. vpslld $10,%ymm15,%ymm2
  5893. vpxor %ymm3,%ymm8,%ymm14
  5894. vpaddd %ymm6,%ymm10,%ymm10
  5895. vpxor %ymm1,%ymm7,%ymm7
  5896. vpxor %ymm2,%ymm7,%ymm7
  5897. vpaddd %ymm6,%ymm14,%ymm14
  5898. vpaddd %ymm7,%ymm14,%ymm14
  5899. vmovdqu 352-256-128(%rbx),%ymm6
  5900. vpaddd 96-128(%rax),%ymm5,%ymm5
  5901. vpsrld $3,%ymm6,%ymm7
  5902. vpsrld $7,%ymm6,%ymm1
  5903. vpslld $25,%ymm6,%ymm2
  5904. vpxor %ymm1,%ymm7,%ymm7
  5905. vpsrld $18,%ymm6,%ymm1
  5906. vpxor %ymm2,%ymm7,%ymm7
  5907. vpslld $14,%ymm6,%ymm2
  5908. vmovdqu 256-256-128(%rbx),%ymm0
  5909. vpsrld $10,%ymm0,%ymm3
  5910. vpxor %ymm1,%ymm7,%ymm7
  5911. vpsrld $17,%ymm0,%ymm1
  5912. vpxor %ymm2,%ymm7,%ymm7
  5913. vpslld $15,%ymm0,%ymm2
  5914. vpaddd %ymm7,%ymm5,%ymm5
  5915. vpxor %ymm1,%ymm3,%ymm7
  5916. vpsrld $19,%ymm0,%ymm1
  5917. vpxor %ymm2,%ymm7,%ymm7
  5918. vpslld $13,%ymm0,%ymm2
  5919. vpxor %ymm1,%ymm7,%ymm7
  5920. vpxor %ymm2,%ymm7,%ymm7
  5921. vpaddd %ymm7,%ymm5,%ymm5
  5922. vpsrld $6,%ymm10,%ymm7
  5923. vpslld $26,%ymm10,%ymm2
  5924. vmovdqu %ymm5,320-256-128(%rbx)
  5925. vpaddd %ymm13,%ymm5,%ymm5
  5926. vpsrld $11,%ymm10,%ymm1
  5927. vpxor %ymm2,%ymm7,%ymm7
  5928. vpslld $21,%ymm10,%ymm2
  5929. vpaddd -64(%rbp),%ymm5,%ymm5
  5930. vpxor %ymm1,%ymm7,%ymm7
  5931. vpsrld $25,%ymm10,%ymm1
  5932. vpxor %ymm2,%ymm7,%ymm7
  5933. vpslld $7,%ymm10,%ymm2
  5934. vpandn %ymm12,%ymm10,%ymm0
  5935. vpand %ymm11,%ymm10,%ymm3
  5936. vpxor %ymm1,%ymm7,%ymm7
  5937. vpsrld $2,%ymm14,%ymm13
  5938. vpxor %ymm2,%ymm7,%ymm7
  5939. vpslld $30,%ymm14,%ymm1
  5940. vpxor %ymm3,%ymm0,%ymm0
  5941. vpxor %ymm14,%ymm15,%ymm3
  5942. vpxor %ymm1,%ymm13,%ymm13
  5943. vpaddd %ymm7,%ymm5,%ymm5
  5944. vpsrld $13,%ymm14,%ymm1
  5945. vpslld $19,%ymm14,%ymm2
  5946. vpaddd %ymm0,%ymm5,%ymm5
  5947. vpand %ymm3,%ymm4,%ymm4
  5948. vpxor %ymm1,%ymm13,%ymm7
  5949. vpsrld $22,%ymm14,%ymm1
  5950. vpxor %ymm2,%ymm7,%ymm7
  5951. vpslld $10,%ymm14,%ymm2
  5952. vpxor %ymm4,%ymm15,%ymm13
  5953. vpaddd %ymm5,%ymm9,%ymm9
  5954. vpxor %ymm1,%ymm7,%ymm7
  5955. vpxor %ymm2,%ymm7,%ymm7
  5956. vpaddd %ymm5,%ymm13,%ymm13
  5957. vpaddd %ymm7,%ymm13,%ymm13
  5958. vmovdqu 384-256-128(%rbx),%ymm5
  5959. vpaddd 128-128(%rax),%ymm6,%ymm6
  5960. vpsrld $3,%ymm5,%ymm7
  5961. vpsrld $7,%ymm5,%ymm1
  5962. vpslld $25,%ymm5,%ymm2
  5963. vpxor %ymm1,%ymm7,%ymm7
  5964. vpsrld $18,%ymm5,%ymm1
  5965. vpxor %ymm2,%ymm7,%ymm7
  5966. vpslld $14,%ymm5,%ymm2
  5967. vmovdqu 288-256-128(%rbx),%ymm0
  5968. vpsrld $10,%ymm0,%ymm4
  5969. vpxor %ymm1,%ymm7,%ymm7
  5970. vpsrld $17,%ymm0,%ymm1
  5971. vpxor %ymm2,%ymm7,%ymm7
  5972. vpslld $15,%ymm0,%ymm2
  5973. vpaddd %ymm7,%ymm6,%ymm6
  5974. vpxor %ymm1,%ymm4,%ymm7
  5975. vpsrld $19,%ymm0,%ymm1
  5976. vpxor %ymm2,%ymm7,%ymm7
  5977. vpslld $13,%ymm0,%ymm2
  5978. vpxor %ymm1,%ymm7,%ymm7
  5979. vpxor %ymm2,%ymm7,%ymm7
  5980. vpaddd %ymm7,%ymm6,%ymm6
  5981. vpsrld $6,%ymm9,%ymm7
  5982. vpslld $26,%ymm9,%ymm2
  5983. vmovdqu %ymm6,352-256-128(%rbx)
  5984. vpaddd %ymm12,%ymm6,%ymm6
  5985. vpsrld $11,%ymm9,%ymm1
  5986. vpxor %ymm2,%ymm7,%ymm7
  5987. vpslld $21,%ymm9,%ymm2
  5988. vpaddd -32(%rbp),%ymm6,%ymm6
  5989. vpxor %ymm1,%ymm7,%ymm7
  5990. vpsrld $25,%ymm9,%ymm1
  5991. vpxor %ymm2,%ymm7,%ymm7
  5992. vpslld $7,%ymm9,%ymm2
  5993. vpandn %ymm11,%ymm9,%ymm0
  5994. vpand %ymm10,%ymm9,%ymm4
  5995. vpxor %ymm1,%ymm7,%ymm7
  5996. vpsrld $2,%ymm13,%ymm12
  5997. vpxor %ymm2,%ymm7,%ymm7
  5998. vpslld $30,%ymm13,%ymm1
  5999. vpxor %ymm4,%ymm0,%ymm0
  6000. vpxor %ymm13,%ymm14,%ymm4
  6001. vpxor %ymm1,%ymm12,%ymm12
  6002. vpaddd %ymm7,%ymm6,%ymm6
  6003. vpsrld $13,%ymm13,%ymm1
  6004. vpslld $19,%ymm13,%ymm2
  6005. vpaddd %ymm0,%ymm6,%ymm6
  6006. vpand %ymm4,%ymm3,%ymm3
  6007. vpxor %ymm1,%ymm12,%ymm7
  6008. vpsrld $22,%ymm13,%ymm1
  6009. vpxor %ymm2,%ymm7,%ymm7
  6010. vpslld $10,%ymm13,%ymm2
  6011. vpxor %ymm3,%ymm14,%ymm12
  6012. vpaddd %ymm6,%ymm8,%ymm8
  6013. vpxor %ymm1,%ymm7,%ymm7
  6014. vpxor %ymm2,%ymm7,%ymm7
  6015. vpaddd %ymm6,%ymm12,%ymm12
  6016. vpaddd %ymm7,%ymm12,%ymm12
  6017. vmovdqu 416-256-128(%rbx),%ymm6
  6018. vpaddd 160-128(%rax),%ymm5,%ymm5
  6019. vpsrld $3,%ymm6,%ymm7
  6020. vpsrld $7,%ymm6,%ymm1
  6021. vpslld $25,%ymm6,%ymm2
  6022. vpxor %ymm1,%ymm7,%ymm7
  6023. vpsrld $18,%ymm6,%ymm1
  6024. vpxor %ymm2,%ymm7,%ymm7
  6025. vpslld $14,%ymm6,%ymm2
  6026. vmovdqu 320-256-128(%rbx),%ymm0
  6027. vpsrld $10,%ymm0,%ymm3
  6028. vpxor %ymm1,%ymm7,%ymm7
  6029. vpsrld $17,%ymm0,%ymm1
  6030. vpxor %ymm2,%ymm7,%ymm7
  6031. vpslld $15,%ymm0,%ymm2
  6032. vpaddd %ymm7,%ymm5,%ymm5
  6033. vpxor %ymm1,%ymm3,%ymm7
  6034. vpsrld $19,%ymm0,%ymm1
  6035. vpxor %ymm2,%ymm7,%ymm7
  6036. vpslld $13,%ymm0,%ymm2
  6037. vpxor %ymm1,%ymm7,%ymm7
  6038. vpxor %ymm2,%ymm7,%ymm7
  6039. vpaddd %ymm7,%ymm5,%ymm5
  6040. vpsrld $6,%ymm8,%ymm7
  6041. vpslld $26,%ymm8,%ymm2
  6042. vmovdqu %ymm5,384-256-128(%rbx)
  6043. vpaddd %ymm11,%ymm5,%ymm5
  6044. vpsrld $11,%ymm8,%ymm1
  6045. vpxor %ymm2,%ymm7,%ymm7
  6046. vpslld $21,%ymm8,%ymm2
  6047. vpaddd 0(%rbp),%ymm5,%ymm5
  6048. vpxor %ymm1,%ymm7,%ymm7
  6049. vpsrld $25,%ymm8,%ymm1
  6050. vpxor %ymm2,%ymm7,%ymm7
  6051. vpslld $7,%ymm8,%ymm2
  6052. vpandn %ymm10,%ymm8,%ymm0
  6053. vpand %ymm9,%ymm8,%ymm3
  6054. vpxor %ymm1,%ymm7,%ymm7
  6055. vpsrld $2,%ymm12,%ymm11
  6056. vpxor %ymm2,%ymm7,%ymm7
  6057. vpslld $30,%ymm12,%ymm1
  6058. vpxor %ymm3,%ymm0,%ymm0
  6059. vpxor %ymm12,%ymm13,%ymm3
  6060. vpxor %ymm1,%ymm11,%ymm11
  6061. vpaddd %ymm7,%ymm5,%ymm5
  6062. vpsrld $13,%ymm12,%ymm1
  6063. vpslld $19,%ymm12,%ymm2
  6064. vpaddd %ymm0,%ymm5,%ymm5
  6065. vpand %ymm3,%ymm4,%ymm4
  6066. vpxor %ymm1,%ymm11,%ymm7
  6067. vpsrld $22,%ymm12,%ymm1
  6068. vpxor %ymm2,%ymm7,%ymm7
  6069. vpslld $10,%ymm12,%ymm2
  6070. vpxor %ymm4,%ymm13,%ymm11
  6071. vpaddd %ymm5,%ymm15,%ymm15
  6072. vpxor %ymm1,%ymm7,%ymm7
  6073. vpxor %ymm2,%ymm7,%ymm7
  6074. vpaddd %ymm5,%ymm11,%ymm11
  6075. vpaddd %ymm7,%ymm11,%ymm11
  6076. vmovdqu 448-256-128(%rbx),%ymm5
  6077. vpaddd 192-128(%rax),%ymm6,%ymm6
  6078. vpsrld $3,%ymm5,%ymm7
  6079. vpsrld $7,%ymm5,%ymm1
  6080. vpslld $25,%ymm5,%ymm2
  6081. vpxor %ymm1,%ymm7,%ymm7
  6082. vpsrld $18,%ymm5,%ymm1
  6083. vpxor %ymm2,%ymm7,%ymm7
  6084. vpslld $14,%ymm5,%ymm2
  6085. vmovdqu 352-256-128(%rbx),%ymm0
  6086. vpsrld $10,%ymm0,%ymm4
  6087. vpxor %ymm1,%ymm7,%ymm7
  6088. vpsrld $17,%ymm0,%ymm1
  6089. vpxor %ymm2,%ymm7,%ymm7
  6090. vpslld $15,%ymm0,%ymm2
  6091. vpaddd %ymm7,%ymm6,%ymm6
  6092. vpxor %ymm1,%ymm4,%ymm7
  6093. vpsrld $19,%ymm0,%ymm1
  6094. vpxor %ymm2,%ymm7,%ymm7
  6095. vpslld $13,%ymm0,%ymm2
  6096. vpxor %ymm1,%ymm7,%ymm7
  6097. vpxor %ymm2,%ymm7,%ymm7
  6098. vpaddd %ymm7,%ymm6,%ymm6
  6099. vpsrld $6,%ymm15,%ymm7
  6100. vpslld $26,%ymm15,%ymm2
  6101. vmovdqu %ymm6,416-256-128(%rbx)
  6102. vpaddd %ymm10,%ymm6,%ymm6
  6103. vpsrld $11,%ymm15,%ymm1
  6104. vpxor %ymm2,%ymm7,%ymm7
  6105. vpslld $21,%ymm15,%ymm2
  6106. vpaddd 32(%rbp),%ymm6,%ymm6
  6107. vpxor %ymm1,%ymm7,%ymm7
  6108. vpsrld $25,%ymm15,%ymm1
  6109. vpxor %ymm2,%ymm7,%ymm7
  6110. vpslld $7,%ymm15,%ymm2
  6111. vpandn %ymm9,%ymm15,%ymm0
  6112. vpand %ymm8,%ymm15,%ymm4
  6113. vpxor %ymm1,%ymm7,%ymm7
  6114. vpsrld $2,%ymm11,%ymm10
  6115. vpxor %ymm2,%ymm7,%ymm7
  6116. vpslld $30,%ymm11,%ymm1
  6117. vpxor %ymm4,%ymm0,%ymm0
  6118. vpxor %ymm11,%ymm12,%ymm4
  6119. vpxor %ymm1,%ymm10,%ymm10
  6120. vpaddd %ymm7,%ymm6,%ymm6
  6121. vpsrld $13,%ymm11,%ymm1
  6122. vpslld $19,%ymm11,%ymm2
  6123. vpaddd %ymm0,%ymm6,%ymm6
  6124. vpand %ymm4,%ymm3,%ymm3
  6125. vpxor %ymm1,%ymm10,%ymm7
  6126. vpsrld $22,%ymm11,%ymm1
  6127. vpxor %ymm2,%ymm7,%ymm7
  6128. vpslld $10,%ymm11,%ymm2
  6129. vpxor %ymm3,%ymm12,%ymm10
  6130. vpaddd %ymm6,%ymm14,%ymm14
  6131. vpxor %ymm1,%ymm7,%ymm7
  6132. vpxor %ymm2,%ymm7,%ymm7
  6133. vpaddd %ymm6,%ymm10,%ymm10
  6134. vpaddd %ymm7,%ymm10,%ymm10
  6135. vmovdqu 480-256-128(%rbx),%ymm6
  6136. vpaddd 224-128(%rax),%ymm5,%ymm5
  6137. vpsrld $3,%ymm6,%ymm7
  6138. vpsrld $7,%ymm6,%ymm1
  6139. vpslld $25,%ymm6,%ymm2
  6140. vpxor %ymm1,%ymm7,%ymm7
  6141. vpsrld $18,%ymm6,%ymm1
  6142. vpxor %ymm2,%ymm7,%ymm7
  6143. vpslld $14,%ymm6,%ymm2
  6144. vmovdqu 384-256-128(%rbx),%ymm0
  6145. vpsrld $10,%ymm0,%ymm3
  6146. vpxor %ymm1,%ymm7,%ymm7
  6147. vpsrld $17,%ymm0,%ymm1
  6148. vpxor %ymm2,%ymm7,%ymm7
  6149. vpslld $15,%ymm0,%ymm2
  6150. vpaddd %ymm7,%ymm5,%ymm5
  6151. vpxor %ymm1,%ymm3,%ymm7
  6152. vpsrld $19,%ymm0,%ymm1
  6153. vpxor %ymm2,%ymm7,%ymm7
  6154. vpslld $13,%ymm0,%ymm2
  6155. vpxor %ymm1,%ymm7,%ymm7
  6156. vpxor %ymm2,%ymm7,%ymm7
  6157. vpaddd %ymm7,%ymm5,%ymm5
  6158. vpsrld $6,%ymm14,%ymm7
  6159. vpslld $26,%ymm14,%ymm2
  6160. vmovdqu %ymm5,448-256-128(%rbx)
  6161. vpaddd %ymm9,%ymm5,%ymm5
  6162. vpsrld $11,%ymm14,%ymm1
  6163. vpxor %ymm2,%ymm7,%ymm7
  6164. vpslld $21,%ymm14,%ymm2
  6165. vpaddd 64(%rbp),%ymm5,%ymm5
  6166. vpxor %ymm1,%ymm7,%ymm7
  6167. vpsrld $25,%ymm14,%ymm1
  6168. vpxor %ymm2,%ymm7,%ymm7
  6169. vpslld $7,%ymm14,%ymm2
  6170. vpandn %ymm8,%ymm14,%ymm0
  6171. vpand %ymm15,%ymm14,%ymm3
  6172. vpxor %ymm1,%ymm7,%ymm7
  6173. vpsrld $2,%ymm10,%ymm9
  6174. vpxor %ymm2,%ymm7,%ymm7
  6175. vpslld $30,%ymm10,%ymm1
  6176. vpxor %ymm3,%ymm0,%ymm0
  6177. vpxor %ymm10,%ymm11,%ymm3
  6178. vpxor %ymm1,%ymm9,%ymm9
  6179. vpaddd %ymm7,%ymm5,%ymm5
  6180. vpsrld $13,%ymm10,%ymm1
  6181. vpslld $19,%ymm10,%ymm2
  6182. vpaddd %ymm0,%ymm5,%ymm5
  6183. vpand %ymm3,%ymm4,%ymm4
  6184. vpxor %ymm1,%ymm9,%ymm7
  6185. vpsrld $22,%ymm10,%ymm1
  6186. vpxor %ymm2,%ymm7,%ymm7
  6187. vpslld $10,%ymm10,%ymm2
  6188. vpxor %ymm4,%ymm11,%ymm9
  6189. vpaddd %ymm5,%ymm13,%ymm13
  6190. vpxor %ymm1,%ymm7,%ymm7
  6191. vpxor %ymm2,%ymm7,%ymm7
  6192. vpaddd %ymm5,%ymm9,%ymm9
  6193. vpaddd %ymm7,%ymm9,%ymm9
  6194. vmovdqu 0-128(%rax),%ymm5
  6195. vpaddd 256-256-128(%rbx),%ymm6,%ymm6
  6196. vpsrld $3,%ymm5,%ymm7
  6197. vpsrld $7,%ymm5,%ymm1
  6198. vpslld $25,%ymm5,%ymm2
  6199. vpxor %ymm1,%ymm7,%ymm7
  6200. vpsrld $18,%ymm5,%ymm1
  6201. vpxor %ymm2,%ymm7,%ymm7
  6202. vpslld $14,%ymm5,%ymm2
  6203. vmovdqu 416-256-128(%rbx),%ymm0
  6204. vpsrld $10,%ymm0,%ymm4
  6205. vpxor %ymm1,%ymm7,%ymm7
  6206. vpsrld $17,%ymm0,%ymm1
  6207. vpxor %ymm2,%ymm7,%ymm7
  6208. vpslld $15,%ymm0,%ymm2
  6209. vpaddd %ymm7,%ymm6,%ymm6
  6210. vpxor %ymm1,%ymm4,%ymm7
  6211. vpsrld $19,%ymm0,%ymm1
  6212. vpxor %ymm2,%ymm7,%ymm7
  6213. vpslld $13,%ymm0,%ymm2
  6214. vpxor %ymm1,%ymm7,%ymm7
  6215. vpxor %ymm2,%ymm7,%ymm7
  6216. vpaddd %ymm7,%ymm6,%ymm6
  6217. vpsrld $6,%ymm13,%ymm7
  6218. vpslld $26,%ymm13,%ymm2
  6219. vmovdqu %ymm6,480-256-128(%rbx)
  6220. vpaddd %ymm8,%ymm6,%ymm6
  6221. vpsrld $11,%ymm13,%ymm1
  6222. vpxor %ymm2,%ymm7,%ymm7
  6223. vpslld $21,%ymm13,%ymm2
  6224. vpaddd 96(%rbp),%ymm6,%ymm6
  6225. vpxor %ymm1,%ymm7,%ymm7
  6226. vpsrld $25,%ymm13,%ymm1
  6227. vpxor %ymm2,%ymm7,%ymm7
  6228. vpslld $7,%ymm13,%ymm2
  6229. vpandn %ymm15,%ymm13,%ymm0
  6230. vpand %ymm14,%ymm13,%ymm4
  6231. vpxor %ymm1,%ymm7,%ymm7
  6232. vpsrld $2,%ymm9,%ymm8
  6233. vpxor %ymm2,%ymm7,%ymm7
  6234. vpslld $30,%ymm9,%ymm1
  6235. vpxor %ymm4,%ymm0,%ymm0
  6236. vpxor %ymm9,%ymm10,%ymm4
  6237. vpxor %ymm1,%ymm8,%ymm8
  6238. vpaddd %ymm7,%ymm6,%ymm6
  6239. vpsrld $13,%ymm9,%ymm1
  6240. vpslld $19,%ymm9,%ymm2
  6241. vpaddd %ymm0,%ymm6,%ymm6
  6242. vpand %ymm4,%ymm3,%ymm3
  6243. vpxor %ymm1,%ymm8,%ymm7
  6244. vpsrld $22,%ymm9,%ymm1
  6245. vpxor %ymm2,%ymm7,%ymm7
  6246. vpslld $10,%ymm9,%ymm2
  6247. vpxor %ymm3,%ymm10,%ymm8
  6248. vpaddd %ymm6,%ymm12,%ymm12
  6249. vpxor %ymm1,%ymm7,%ymm7
  6250. vpxor %ymm2,%ymm7,%ymm7
  6251. vpaddd %ymm6,%ymm8,%ymm8
  6252. vpaddd %ymm7,%ymm8,%ymm8
  6253. addq $256,%rbp
  6254. decl %ecx
  6255. jnz L$oop_16_xx_avx2
  6256. movl $1,%ecx
  6257. leaq 512(%rsp),%rbx
  6258. leaq K256+128(%rip),%rbp
  6259. cmpl 0(%rbx),%ecx
  6260. cmovgeq %rbp,%r12
  6261. cmpl 4(%rbx),%ecx
  6262. cmovgeq %rbp,%r13
  6263. cmpl 8(%rbx),%ecx
  6264. cmovgeq %rbp,%r14
  6265. cmpl 12(%rbx),%ecx
  6266. cmovgeq %rbp,%r15
  6267. cmpl 16(%rbx),%ecx
  6268. cmovgeq %rbp,%r8
  6269. cmpl 20(%rbx),%ecx
  6270. cmovgeq %rbp,%r9
  6271. cmpl 24(%rbx),%ecx
  6272. cmovgeq %rbp,%r10
  6273. cmpl 28(%rbx),%ecx
  6274. cmovgeq %rbp,%r11
  6275. vmovdqa (%rbx),%ymm7
  6276. vpxor %ymm0,%ymm0,%ymm0
  6277. vmovdqa %ymm7,%ymm6
  6278. vpcmpgtd %ymm0,%ymm6,%ymm6
  6279. vpaddd %ymm6,%ymm7,%ymm7
  6280. vmovdqu 0-128(%rdi),%ymm0
  6281. vpand %ymm6,%ymm8,%ymm8
  6282. vmovdqu 32-128(%rdi),%ymm1
  6283. vpand %ymm6,%ymm9,%ymm9
  6284. vmovdqu 64-128(%rdi),%ymm2
  6285. vpand %ymm6,%ymm10,%ymm10
  6286. vmovdqu 96-128(%rdi),%ymm5
  6287. vpand %ymm6,%ymm11,%ymm11
  6288. vpaddd %ymm0,%ymm8,%ymm8
  6289. vmovdqu 128-128(%rdi),%ymm0
  6290. vpand %ymm6,%ymm12,%ymm12
  6291. vpaddd %ymm1,%ymm9,%ymm9
  6292. vmovdqu 160-128(%rdi),%ymm1
  6293. vpand %ymm6,%ymm13,%ymm13
  6294. vpaddd %ymm2,%ymm10,%ymm10
  6295. vmovdqu 192-128(%rdi),%ymm2
  6296. vpand %ymm6,%ymm14,%ymm14
  6297. vpaddd %ymm5,%ymm11,%ymm11
  6298. vmovdqu 224-128(%rdi),%ymm5
  6299. vpand %ymm6,%ymm15,%ymm15
  6300. vpaddd %ymm0,%ymm12,%ymm12
  6301. vpaddd %ymm1,%ymm13,%ymm13
  6302. vmovdqu %ymm8,0-128(%rdi)
  6303. vpaddd %ymm2,%ymm14,%ymm14
  6304. vmovdqu %ymm9,32-128(%rdi)
  6305. vpaddd %ymm5,%ymm15,%ymm15
  6306. vmovdqu %ymm10,64-128(%rdi)
  6307. vmovdqu %ymm11,96-128(%rdi)
  6308. vmovdqu %ymm12,128-128(%rdi)
  6309. vmovdqu %ymm13,160-128(%rdi)
  6310. vmovdqu %ymm14,192-128(%rdi)
  6311. vmovdqu %ymm15,224-128(%rdi)
  6312. vmovdqu %ymm7,(%rbx)
  6313. leaq 256+128(%rsp),%rbx
  6314. vmovdqu L$pbswap(%rip),%ymm6
  6315. decl %edx
  6316. jnz L$oop_avx2
  6317. L$done_avx2:
  6318. movq 544(%rsp),%rax
  6319. vzeroupper
  6320. movq -48(%rax),%r15
  6321. movq -40(%rax),%r14
  6322. movq -32(%rax),%r13
  6323. movq -24(%rax),%r12
  6324. movq -16(%rax),%rbp
  6325. movq -8(%rax),%rbx
  6326. leaq (%rax),%rsp
  6327. L$epilogue_avx2:
  6328. .byte 0xf3,0xc3
  6329. .p2align 8
  6330. K256:
  6331. .long 1116352408,1116352408,1116352408,1116352408
  6332. .long 1116352408,1116352408,1116352408,1116352408
  6333. .long 1899447441,1899447441,1899447441,1899447441
  6334. .long 1899447441,1899447441,1899447441,1899447441
  6335. .long 3049323471,3049323471,3049323471,3049323471
  6336. .long 3049323471,3049323471,3049323471,3049323471
  6337. .long 3921009573,3921009573,3921009573,3921009573
  6338. .long 3921009573,3921009573,3921009573,3921009573
  6339. .long 961987163,961987163,961987163,961987163
  6340. .long 961987163,961987163,961987163,961987163
  6341. .long 1508970993,1508970993,1508970993,1508970993
  6342. .long 1508970993,1508970993,1508970993,1508970993
  6343. .long 2453635748,2453635748,2453635748,2453635748
  6344. .long 2453635748,2453635748,2453635748,2453635748
  6345. .long 2870763221,2870763221,2870763221,2870763221
  6346. .long 2870763221,2870763221,2870763221,2870763221
  6347. .long 3624381080,3624381080,3624381080,3624381080
  6348. .long 3624381080,3624381080,3624381080,3624381080
  6349. .long 310598401,310598401,310598401,310598401
  6350. .long 310598401,310598401,310598401,310598401
  6351. .long 607225278,607225278,607225278,607225278
  6352. .long 607225278,607225278,607225278,607225278
  6353. .long 1426881987,1426881987,1426881987,1426881987
  6354. .long 1426881987,1426881987,1426881987,1426881987
  6355. .long 1925078388,1925078388,1925078388,1925078388
  6356. .long 1925078388,1925078388,1925078388,1925078388
  6357. .long 2162078206,2162078206,2162078206,2162078206
  6358. .long 2162078206,2162078206,2162078206,2162078206
  6359. .long 2614888103,2614888103,2614888103,2614888103
  6360. .long 2614888103,2614888103,2614888103,2614888103
  6361. .long 3248222580,3248222580,3248222580,3248222580
  6362. .long 3248222580,3248222580,3248222580,3248222580
  6363. .long 3835390401,3835390401,3835390401,3835390401
  6364. .long 3835390401,3835390401,3835390401,3835390401
  6365. .long 4022224774,4022224774,4022224774,4022224774
  6366. .long 4022224774,4022224774,4022224774,4022224774
  6367. .long 264347078,264347078,264347078,264347078
  6368. .long 264347078,264347078,264347078,264347078
  6369. .long 604807628,604807628,604807628,604807628
  6370. .long 604807628,604807628,604807628,604807628
  6371. .long 770255983,770255983,770255983,770255983
  6372. .long 770255983,770255983,770255983,770255983
  6373. .long 1249150122,1249150122,1249150122,1249150122
  6374. .long 1249150122,1249150122,1249150122,1249150122
  6375. .long 1555081692,1555081692,1555081692,1555081692
  6376. .long 1555081692,1555081692,1555081692,1555081692
  6377. .long 1996064986,1996064986,1996064986,1996064986
  6378. .long 1996064986,1996064986,1996064986,1996064986
  6379. .long 2554220882,2554220882,2554220882,2554220882
  6380. .long 2554220882,2554220882,2554220882,2554220882
  6381. .long 2821834349,2821834349,2821834349,2821834349
  6382. .long 2821834349,2821834349,2821834349,2821834349
  6383. .long 2952996808,2952996808,2952996808,2952996808
  6384. .long 2952996808,2952996808,2952996808,2952996808
  6385. .long 3210313671,3210313671,3210313671,3210313671
  6386. .long 3210313671,3210313671,3210313671,3210313671
  6387. .long 3336571891,3336571891,3336571891,3336571891
  6388. .long 3336571891,3336571891,3336571891,3336571891
  6389. .long 3584528711,3584528711,3584528711,3584528711
  6390. .long 3584528711,3584528711,3584528711,3584528711
  6391. .long 113926993,113926993,113926993,113926993
  6392. .long 113926993,113926993,113926993,113926993
  6393. .long 338241895,338241895,338241895,338241895
  6394. .long 338241895,338241895,338241895,338241895
  6395. .long 666307205,666307205,666307205,666307205
  6396. .long 666307205,666307205,666307205,666307205
  6397. .long 773529912,773529912,773529912,773529912
  6398. .long 773529912,773529912,773529912,773529912
  6399. .long 1294757372,1294757372,1294757372,1294757372
  6400. .long 1294757372,1294757372,1294757372,1294757372
  6401. .long 1396182291,1396182291,1396182291,1396182291
  6402. .long 1396182291,1396182291,1396182291,1396182291
  6403. .long 1695183700,1695183700,1695183700,1695183700
  6404. .long 1695183700,1695183700,1695183700,1695183700
  6405. .long 1986661051,1986661051,1986661051,1986661051
  6406. .long 1986661051,1986661051,1986661051,1986661051
  6407. .long 2177026350,2177026350,2177026350,2177026350
  6408. .long 2177026350,2177026350,2177026350,2177026350
  6409. .long 2456956037,2456956037,2456956037,2456956037
  6410. .long 2456956037,2456956037,2456956037,2456956037
  6411. .long 2730485921,2730485921,2730485921,2730485921
  6412. .long 2730485921,2730485921,2730485921,2730485921
  6413. .long 2820302411,2820302411,2820302411,2820302411
  6414. .long 2820302411,2820302411,2820302411,2820302411
  6415. .long 3259730800,3259730800,3259730800,3259730800
  6416. .long 3259730800,3259730800,3259730800,3259730800
  6417. .long 3345764771,3345764771,3345764771,3345764771
  6418. .long 3345764771,3345764771,3345764771,3345764771
  6419. .long 3516065817,3516065817,3516065817,3516065817
  6420. .long 3516065817,3516065817,3516065817,3516065817
  6421. .long 3600352804,3600352804,3600352804,3600352804
  6422. .long 3600352804,3600352804,3600352804,3600352804
  6423. .long 4094571909,4094571909,4094571909,4094571909
  6424. .long 4094571909,4094571909,4094571909,4094571909
  6425. .long 275423344,275423344,275423344,275423344
  6426. .long 275423344,275423344,275423344,275423344
  6427. .long 430227734,430227734,430227734,430227734
  6428. .long 430227734,430227734,430227734,430227734
  6429. .long 506948616,506948616,506948616,506948616
  6430. .long 506948616,506948616,506948616,506948616
  6431. .long 659060556,659060556,659060556,659060556
  6432. .long 659060556,659060556,659060556,659060556
  6433. .long 883997877,883997877,883997877,883997877
  6434. .long 883997877,883997877,883997877,883997877
  6435. .long 958139571,958139571,958139571,958139571
  6436. .long 958139571,958139571,958139571,958139571
  6437. .long 1322822218,1322822218,1322822218,1322822218
  6438. .long 1322822218,1322822218,1322822218,1322822218
  6439. .long 1537002063,1537002063,1537002063,1537002063
  6440. .long 1537002063,1537002063,1537002063,1537002063
  6441. .long 1747873779,1747873779,1747873779,1747873779
  6442. .long 1747873779,1747873779,1747873779,1747873779
  6443. .long 1955562222,1955562222,1955562222,1955562222
  6444. .long 1955562222,1955562222,1955562222,1955562222
  6445. .long 2024104815,2024104815,2024104815,2024104815
  6446. .long 2024104815,2024104815,2024104815,2024104815
  6447. .long 2227730452,2227730452,2227730452,2227730452
  6448. .long 2227730452,2227730452,2227730452,2227730452
  6449. .long 2361852424,2361852424,2361852424,2361852424
  6450. .long 2361852424,2361852424,2361852424,2361852424
  6451. .long 2428436474,2428436474,2428436474,2428436474
  6452. .long 2428436474,2428436474,2428436474,2428436474
  6453. .long 2756734187,2756734187,2756734187,2756734187
  6454. .long 2756734187,2756734187,2756734187,2756734187
  6455. .long 3204031479,3204031479,3204031479,3204031479
  6456. .long 3204031479,3204031479,3204031479,3204031479
  6457. .long 3329325298,3329325298,3329325298,3329325298
  6458. .long 3329325298,3329325298,3329325298,3329325298
  6459. L$pbswap:
  6460. .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
  6461. .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
  6462. K256_shaext:
  6463. .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
  6464. .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
  6465. .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
  6466. .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
  6467. .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
  6468. .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
  6469. .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
  6470. .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
  6471. .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
  6472. .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
  6473. .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
  6474. .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
  6475. .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
  6476. .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
  6477. .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
  6478. .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
  6479. .byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0