/* SPDX-License-Identifier: MIT * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Copyright: * 2020 Evan Nemerson * 2020 Himanshi Mathur * 2020 Hidayat Khan */ #define SIMDE_TEST_X86_AVX512_INSN mul #include #include #include static int test_simde_mm512_mul_epi32 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int32_t a[16]; const int32_t b[16]; const int64_t r[8]; } test_vec[] = { { { INT32_C( 1303646110), -INT32_C( 1991094019), -INT32_C( 60179606), -INT32_C( 1143961245), INT32_C( 53151249), INT32_C( 1139066569), -INT32_C( 1576434937), -INT32_C( 2053958169), INT32_C( 584206116), INT32_C( 44770456), INT32_C( 1123947743), -INT32_C( 1342320995), -INT32_C( 1632491307), -INT32_C( 169699602), INT32_C( 9956121), INT32_C( 612706816) }, { INT32_C( 172382066), INT32_C( 1527574908), -INT32_C( 1549923834), -INT32_C( 1387095080), -INT32_C( 1303640636), -INT32_C( 1247269221), INT32_C( 431308569), -INT32_C( 599966870), INT32_C( 249988242), INT32_C( 2070606453), -INT32_C( 736163588), INT32_C( 1736602019), INT32_C( 303746678), INT32_C( 365413116), INT32_C( 1798208513), INT32_C( 1246194615) }, { INT64_C( 224725209774663260), INT64_C( 93273805660129404), -INT64_C( 69290128050554364), -INT64_C( 679929896799075153), INT64_C( 146044659904488072), -INT64_C( 827409403211381884), -INT64_C( 495863811365128146), INT64_C( 17903181538658073) } }, { { INT32_C( 1700277743), INT32_C( 467714591), INT32_C( 1861287882), -INT32_C( 405441935), INT32_C( 1023012672), -INT32_C( 1286487887), -INT32_C( 199327939), -INT32_C( 633444630), -INT32_C( 1287678061), INT32_C( 617488217), -INT32_C( 1869431265), INT32_C( 1886873392), INT32_C( 145518935), INT32_C( 1857813809), INT32_C( 1734597244), -INT32_C( 750673600) }, { -INT32_C( 1836679112), -INT32_C( 1095346785), INT32_C( 1145980947), INT32_C( 112510639), INT32_C( 1745838391), -INT32_C( 606614946), -INT32_C( 465421660), INT32_C( 347636699), -INT32_C( 1566163453), -INT32_C( 1486791533), INT32_C( 1407954852), -INT32_C( 1403347083), INT32_C( 1595238656), -INT32_C( 667227085), INT32_C( 29129766), INT32_C( 34960639) }, { -INT64_C( 3122864615166604216), INT64_C( 2133000449653984254), INT64_C( 1786014797257090752), INT64_C( 92771540253758740), INT64_C( 2016714318368104633), -INT64_C( 2632074820037247780), INT64_C( 232137430291951360), INT64_C( 50528411821964904) } }, { { INT32_C( 1185201075), -INT32_C( 1142094569), INT32_C( 705681589), INT32_C( 2027383160), INT32_C( 98036946), -INT32_C( 19066408), -INT32_C( 1929405811), -INT32_C( 1047653106), -INT32_C( 402115632), -INT32_C( 308021960), INT32_C( 1176023758), -INT32_C( 306254053), -INT32_C( 1275881765), INT32_C( 900845735), INT32_C( 2042736746), -INT32_C( 1774563131) }, { -INT32_C( 1149353341), INT32_C( 111747384), -INT32_C( 280182316), -INT32_C( 1948448080), INT32_C( 1212076192), INT32_C( 192802720), INT32_C( 1703165599), INT32_C( 301710990), INT32_C( 969767169), INT32_C( 1849652890), -INT32_C( 413234377), INT32_C( 913456021), -INT32_C( 1417760757), INT32_C( 1052179359), -INT32_C( 928826823), -INT32_C( 86401287) }, { -INT64_C( 1362214815308041575), -INT64_C( 197719501964580124), INT64_C( 118828248182989632), -INT64_C( 3286097603805895789), -INT64_C( 389958538055285808), -INT64_C( 485973444974328766), INT64_C( 1808895096988896105), -INT64_C( 1897348682012537958) } }, { { -INT32_C( 1305237993), INT32_C( 1394635292), -INT32_C( 1841660163), -INT32_C( 993481543), -INT32_C( 76528036), INT32_C( 2067408449), INT32_C( 1514397025), -INT32_C( 1823204228), -INT32_C( 549091389), -INT32_C( 164403463), -INT32_C( 1635226140), INT32_C( 1986154778), -INT32_C( 646786409), INT32_C( 1515498745), INT32_C( 95721353), INT32_C( 1989740723) }, { -INT32_C( 2007572849), INT32_C( 696158532), INT32_C( 281478902), -INT32_C( 276354729), -INT32_C( 171378180), INT32_C( 776936613), INT32_C( 1714684851), -INT32_C( 1696740085), -INT32_C( 266194005), -INT32_C( 1306943300), -INT32_C( 20717402), INT32_C( 99437065), -INT32_C( 386222781), -INT32_C( 2078914095), INT32_C( 1474972236), -INT32_C( 1007565033) }, { INT64_C( 2620360356230052057), -INT64_C( 518388480538381026), INT64_C( 13115235528654480), INT64_C( 2596713637166968275), INT64_C( 146164835948922945), INT64_C( 33877637303288280), INT64_C( 249803645596983429), INT64_C( 141186338067355308) } }, { { -INT32_C( 1229777926), INT32_C( 1516883123), -INT32_C( 1252512596), -INT32_C( 1178909322), -INT32_C( 878594566), INT32_C( 1263515647), INT32_C( 430127362), -INT32_C( 69430271), INT32_C( 1538428840), INT32_C( 129309531), -INT32_C( 1111683769), INT32_C( 1282832466), INT32_C( 739710765), -INT32_C( 797415730), -INT32_C( 1578493024), INT32_C( 1469892271) }, { -INT32_C( 1313649066), -INT32_C( 1330026391), -INT32_C( 932350346), INT32_C( 454419438), -INT32_C( 918016774), INT32_C( 865714323), -INT32_C( 1965784101), -INT32_C( 1595772854), INT32_C( 676435391), INT32_C( 1943603965), INT32_C( 1849443968), INT32_C( 613044522), INT32_C( 284021373), INT32_C( 1833142162), INT32_C( 1425479434), INT32_C( 1207228808) }, { INT64_C( 1615496623877317116), INT64_C( 1167780552249958216), INT64_C( 806564549133250084), -INT64_C( 845537529624671562), INT64_C( 1040647713911076440), -INT64_C( 2055996840900555392), INT64_C( 210093667098180345), -INT64_C( 2250109342424468416) } }, { { INT32_C( 1819231854), -INT32_C( 773896112), -INT32_C( 1187046513), -INT32_C( 354563732), INT32_C( 771410843), INT32_C( 1553612370), -INT32_C( 575565227), -INT32_C( 635132565), INT32_C( 1011258603), INT32_C( 1796023772), -INT32_C( 1390130111), -INT32_C( 1315503594), INT32_C( 534745805), INT32_C( 628849104), INT32_C( 1996696587), -INT32_C( 1118754862) }, { -INT32_C( 1728473157), -INT32_C( 50133316), INT32_C( 1772824659), -INT32_C( 149274070), -INT32_C( 1541998124), INT32_C( 2127204723), -INT32_C( 1862939202), -INT32_C( 1337112844), -INT32_C( 1706539043), -INT32_C( 1600697523), -INT32_C( 1660337549), INT32_C( 1502880901), -INT32_C( 1862358499), -INT32_C( 99628996), -INT32_C( 1987443563), INT32_C( 674879307) }, { -INT64_C( 3144493425998343078), -INT64_C( 2104425329626364067), -INT64_C( 1189514072739258532), INT64_C( 1072243024686328854), -INT64_C( 1725752288589136929), INT64_C( 2308085221288837939), -INT64_C( 995888394746346695), -INT64_C( 3968321779097219481) } }, { { INT32_C( 1824686366), INT32_C( 1074551501), INT32_C( 568202908), INT32_C( 1467707962), INT32_C( 1508407581), -INT32_C( 699140287), INT32_C( 1180687867), -INT32_C( 747660876), -INT32_C( 415289062), INT32_C( 673729419), -INT32_C( 1689713055), -INT32_C( 1779186568), INT32_C( 2129582909), -INT32_C( 850116142), -INT32_C( 753617890), INT32_C( 1738965837) }, { INT32_C( 1078977972), -INT32_C( 1838647504), -INT32_C( 181554819), -INT32_C( 1282727818), -INT32_C( 852329989), -INT32_C( 644118853), -INT32_C( 2018726086), -INT32_C( 420523470), INT32_C( 1747336759), INT32_C( 855281333), -INT32_C( 1238948032), INT32_C( 1131000392), -INT32_C( 418276564), INT32_C( 1556130850), -INT32_C( 1914409637), -INT32_C( 143404097) }, { INT64_C( 1968796394722729752), -INT64_C( 103159976117213652), -INT64_C( 1285661016921246609), -INT64_C( 2383485396536598562), -INT64_C( 725649843643230058), INT64_C( 2093466664136957760), -INT64_C( 890754621929644676), INT64_C( 1442733351231605930) } }, { { -INT32_C( 966813167), INT32_C( 1761106216), -INT32_C( 937549952), -INT32_C( 32732974), INT32_C( 1172643107), INT32_C( 614639049), -INT32_C( 760117742), INT32_C( 1791566937), -INT32_C( 416274242), INT32_C( 21964929), INT32_C( 432696903), INT32_C( 420992758), -INT32_C( 1134560013), -INT32_C( 1260387934), -INT32_C( 528051833), INT32_C( 1951027125) }, { -INT32_C( 128222601), -INT32_C( 369448286), INT32_C( 235127832), -INT32_C( 1926751590), -INT32_C( 1186363625), INT32_C( 258812296), INT32_C( 1877996730), -INT32_C( 1142736573), INT32_C( 1437810355), INT32_C( 20884969), INT32_C( 185614705), INT32_C( 1939355740), INT32_C( 1194123711), -INT32_C( 1000957686), -INT32_C( 785103475), INT32_C( 831264638) }, { INT64_C( 123967298953787367), -INT64_C( 220444087605464064), -INT64_C( 1391181127251782875), -INT64_C( 1427498633890983660), -INT64_C( 598523415667375910), INT64_C( 80314908004758615), -INT64_C( 1354805013075768243), INT64_C( 414575329068419675) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i a = simde_mm512_loadu_epi32(test_vec[i].a); simde__m512i b = simde_mm512_loadu_epi32(test_vec[i].b); simde__m512i r = simde_mm512_mul_epi32(a, b); simde_test_x86_assert_equal_i64x8(r, simde_mm512_loadu_epi64(test_vec[i].r)); } return 0; } static int test_simde_mm512_mask_mul_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i src; simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi64(INT64_C( 8259215308803572895), INT64_C( 5002417564910761422), INT64_C( 4825945910792190995), INT64_C(-3854692997504557014), INT64_C(-5029859126276555558), INT64_C(-6821356987634887986), INT64_C( 4779218217009886481), INT64_C( 4803075487209946977)), UINT8_C(116), simde_mm512_set_epi32(INT32_C(-1946312318), INT32_C( 344802157), INT32_C( 1813783552), INT32_C( 136328242), INT32_C( -821129857), INT32_C( -162465728), INT32_C(-2000203088), INT32_C( 1070574927), INT32_C( 1169396458), INT32_C(-1183467128), INT32_C(-1936534523), INT32_C( 1077760263), INT32_C( 1655422492), INT32_C( 623663138), INT32_C( 29163868), INT32_C(-2106787203)), simde_mm512_set_epi32(INT32_C( 1815416844), INT32_C( 1421058674), INT32_C( -653559880), INT32_C(-1986451398), INT32_C( 72292265), INT32_C( -878074326), INT32_C( 9737947), INT32_C( 1206062441), INT32_C(-1794166530), INT32_C( 629576453), INT32_C(-1534533514), INT32_C( 511428134), INT32_C( 206078130), INT32_C( 438975617), INT32_C( 828494683), INT32_C( -995405524)), simde_mm512_set_epi64(INT64_C( 8259215308803572895), INT64_C( -270809426907782316), INT64_C( 142656984611699328), INT64_C( 1291180209731016807), INT64_C(-5029859126276555558), INT64_C( 551196920205439242), INT64_C( 4779218217009886481), INT64_C( 4803075487209946977)) }, { simde_mm512_set_epi64(INT64_C(-2096589957716905410), INT64_C( 5843054744461330548), INT64_C( 6974024204978419548), INT64_C( 3764508487718737373), INT64_C( 3631623951055726390), INT64_C( 3085354128371369606), INT64_C(-8195484891056484583), INT64_C( -289672705472788318)), UINT8_C(192), simde_mm512_set_epi32(INT32_C( 750022106), INT32_C( -164409985), INT32_C( 1508401218), INT32_C( 326736787), INT32_C( 1376534770), INT32_C( 433267140), INT32_C(-1811276142), INT32_C( -423374585), INT32_C( 316128811), INT32_C( 1066215241), INT32_C( -742321807), INT32_C( 771493183), INT32_C( 1158801588), INT32_C( 1819952183), INT32_C( 1670004358), INT32_C(-1282166628)), simde_mm512_set_epi32(INT32_C(-1440467958), INT32_C( 673155116), INT32_C( 1160373089), INT32_C(-1560331288), INT32_C( 1954920850), INT32_C( 443628207), INT32_C(-1358199964), INT32_C( 1999231031), INT32_C( -922196474), INT32_C(-1304354759), INT32_C( 1973769080), INT32_C(-1007908450), INT32_C(-1145320026), INT32_C( 1345168267), INT32_C(-1647348591), INT32_C(-2009668702)), simde_mm512_set_epi64(INT64_C( -110673422524233260), INT64_C( -509817631696691656), INT64_C( 6974024204978419548), INT64_C( 3764508487718737373), INT64_C( 3631623951055726390), INT64_C( 3085354128371369606), INT64_C(-8195484891056484583), INT64_C( -289672705472788318)) }, { simde_mm512_set_epi64(INT64_C(-5821818953001636176), INT64_C( 1997894375206593641), INT64_C(-1188496888106000468), INT64_C( 4574447963200493304), INT64_C( 3346200385521264609), INT64_C(-5642979348732921527), INT64_C( -695384029725146025), INT64_C(-7115212454065332556)), UINT8_C(247), simde_mm512_set_epi32(INT32_C( 133614784), INT32_C( 1104524722), INT32_C( -405494742), INT32_C( 33506731), INT32_C( 1866794314), INT32_C(-1942831246), INT32_C(-2066004046), INT32_C(-1057119888), INT32_C(-1508387315), INT32_C( 2140894614), INT32_C(-1227481958), INT32_C( -545548506), INT32_C( 2041568161), INT32_C(-1734631316), INT32_C( -578665178), INT32_C( 976865378)), simde_mm512_set_epi32(INT32_C( 1938874012), INT32_C( -315470352), INT32_C( 25227789), INT32_C( 348972975), INT32_C( -119098852), INT32_C( -117531009), INT32_C(-1256068989), INT32_C( -330670492), INT32_C(-1342579595), INT32_C( 1663139463), INT32_C( 1519977261), INT32_C(-2010660089), INT32_C( 811843811), INT32_C( 1950445467), INT32_C( -632407557), INT32_C( 132507618)), simde_mm512_set_epi64(INT64_C( -348444802842042144), INT64_C( 11692943599594725), INT64_C( 228342916659107214), INT64_C( 349558353467944896), INT64_C( 3346200385521264609), INT64_C( 1096912607627777034), INT64_C(-3383303787208444572), INT64_C( 129442104345449604)) }, { simde_mm512_set_epi64(INT64_C(-6399381415989804252), INT64_C(-4072646889620133673), INT64_C(-3499367054553152785), INT64_C(-2596410489019354993), INT64_C( 3709612225265967420), INT64_C( 1617021521015256349), INT64_C( 8518903223542129770), INT64_C(-7495998104551122449)), UINT8_C(125), simde_mm512_set_epi32(INT32_C( 1369528234), INT32_C(-2013461915), INT32_C( 979595496), INT32_C(-1220154251), INT32_C( 305231144), INT32_C( 243633364), INT32_C( 911946112), INT32_C( 158189864), INT32_C( 126572094), INT32_C( -5395242), INT32_C(-1561205257), INT32_C( 515958610), INT32_C( 1545815628), INT32_C( 1042892620), INT32_C( -956025439), INT32_C( -181963588)), simde_mm512_set_epi32(INT32_C( 1859688708), INT32_C( 1308950804), INT32_C(-1932687023), INT32_C( 2111441590), INT32_C( 1137586884), INT32_C( 1521953186), INT32_C( 1589240826), INT32_C( 1097366673), INT32_C( -573799426), INT32_C( 1360758617), INT32_C(-1894824063), INT32_C( -305567235), INT32_C(-1488593619), INT32_C( 1052029738), INT32_C(-1777311621), INT32_C( -525756513)), simde_mm512_set_epi64(INT64_C(-6399381415989804252), INT64_C(-2576284431776699090), INT64_C( 370798574555697704), INT64_C( 173592284760002472), INT64_C( -7341622042300314), INT64_C( -157660045832143350), INT64_C( 8518903223542129770), INT64_C( 95668541519848644)) }, { simde_mm512_set_epi64(INT64_C( 6860124546956220466), INT64_C(-1265261131078623514), INT64_C( 5737379338676836508), INT64_C(-3711065605003334500), INT64_C(-8479853253989282483), INT64_C( 7964407686671565496), INT64_C( 7785652122788440203), INT64_C(-3096894189429138445)), UINT8_C(214), simde_mm512_set_epi32(INT32_C( -814208176), INT32_C( 1449013393), INT32_C( 623550410), INT32_C( -805020885), INT32_C(-1088320756), INT32_C( 2022589200), INT32_C( 839176386), INT32_C( 1343270967), INT32_C( 111940457), INT32_C( 1537061703), INT32_C(-1460061235), INT32_C( 1515709350), INT32_C( 1650058892), INT32_C( 69963651), INT32_C( 758490839), INT32_C( 180779892)), simde_mm512_set_epi32(INT32_C(-1893053059), INT32_C( -525508532), INT32_C( 1089028030), INT32_C( 641037603), INT32_C( 776284580), INT32_C( 143220066), INT32_C( 609964739), INT32_C( 739061585), INT32_C( 1296320934), INT32_C( 1641387359), INT32_C( 450216201), INT32_C( -102009462), INT32_C( 184231048), INT32_C( 68801332), INT32_C( 1909515723), INT32_C(-1558553543)), simde_mm512_set_epi64(INT64_C( -761468901003769076), INT64_C( -516048658485338655), INT64_C( 5737379338676836508), INT64_C( 992759969955502695), INT64_C(-8479853253989282483), INT64_C( -154616695341869700), INT64_C( 4813592380383132), INT64_C(-3096894189429138445)) }, { simde_mm512_set_epi64(INT64_C(-2621488480535608616), INT64_C(-6848868720227948061), INT64_C( 6279616399573024356), INT64_C( 745095038278958047), INT64_C(-1323215695156753279), INT64_C( -383012613214998281), INT64_C( 1460565887768366290), INT64_C(-5348367197220594908)), UINT8_C( 92), simde_mm512_set_epi32(INT32_C(-1537831012), INT32_C(-1136146129), INT32_C( 928255499), INT32_C( 1369020603), INT32_C( 1021713905), INT32_C(-1374572733), INT32_C( 981266194), INT32_C( -209600569), INT32_C( -856684622), INT32_C( 1444842251), INT32_C(-1223337348), INT32_C(-1314813402), INT32_C( 630708065), INT32_C( 1782361994), INT32_C( 982404882), INT32_C( 968278192)), simde_mm512_set_epi32(INT32_C( -560531037), INT32_C( 2016874130), INT32_C( 1909033660), INT32_C( -288062633), INT32_C( 1926487797), INT32_C(-1384808965), INT32_C( 650303852), INT32_C( 1591608188), INT32_C( 1071082983), INT32_C( 1207794171), INT32_C(-2085192565), INT32_C( 656256578), INT32_C(-1465520335), INT32_C( 2093271192), INT32_C( 315880197), INT32_C( 1596114493)), simde_mm512_set_epi64(INT64_C(-2621488480535608616), INT64_C( -394363679531427699), INT64_C( 6279616399573024356), INT64_C( -333601981829858972), INT64_C( 1745072048772318921), INT64_C( -862854943905058356), INT64_C( 1460565887768366290), INT64_C(-5348367197220594908)) }, { simde_mm512_set_epi64(INT64_C( 1319224608096301911), INT64_C(-6587132379427165760), INT64_C(-1318415648940904266), INT64_C( 5083686936283500523), INT64_C( 2916706726526170303), INT64_C( 1232072806289907439), INT64_C(-4244069429267903156), INT64_C( 1868613955189624367)), UINT8_C( 45), simde_mm512_set_epi32(INT32_C( 1044553244), INT32_C( 448636134), INT32_C( 422274875), INT32_C(-1037497281), INT32_C( 533714637), INT32_C(-1738371545), INT32_C( -17938559), INT32_C(-1389744139), INT32_C( 827695522), INT32_C(-1482919408), INT32_C( 1233158285), INT32_C( 343037625), INT32_C(-1483824200), INT32_C( -901390751), INT32_C( -727066099), INT32_C( -648215186)), simde_mm512_set_epi32(INT32_C( 1981159106), INT32_C( 410835312), INT32_C( 2072880481), INT32_C( 105988514), INT32_C( 751462668), INT32_C( 1834849576), INT32_C( -217803098), INT32_C(-1411746849), INT32_C(-1237635210), INT32_C( -311304150), INT32_C( -986441771), INT32_C( 1680967167), INT32_C( 746636010), INT32_C(-2078030023), INT32_C( 843084787), INT32_C( 759454903)), simde_mm512_set_epi64(INT64_C( 1319224608096301911), INT64_C(-6587132379427165760), INT64_C(-3189650292273714920), INT64_C( 5083686936283500523), INT64_C( 461638965825943200), INT64_C( 576634984670658375), INT64_C(-4244069429267903156), INT64_C( -492290201206756958)) }, { simde_mm512_set_epi64(INT64_C(-1017619325410469279), INT64_C( 7670597165848860921), INT64_C(-5135734722746288063), INT64_C( 8555281953176040262), INT64_C( 2622398452638226743), INT64_C( 2072647407054444460), INT64_C( 5884644356355100584), INT64_C(-3677310731734481669)), UINT8_C(226), simde_mm512_set_epi32(INT32_C( 390006051), INT32_C( 789765807), INT32_C( -514015364), INT32_C( -970761836), INT32_C( -378978470), INT32_C( -73123202), INT32_C(-1325609418), INT32_C( 1232280698), INT32_C( 1916265121), INT32_C( 1820507576), INT32_C( -792248141), INT32_C( -262685644), INT32_C( 1624847858), INT32_C( -403255584), INT32_C( 1568995237), INT32_C( 1227106212)), simde_mm512_set_epi32(INT32_C( -769652371), INT32_C( -261880602), INT32_C( 85687930), INT32_C( 432371064), INT32_C( 1626214727), INT32_C( 1845517289), INT32_C(-2002810442), INT32_C(-2069468881), INT32_C(-1294326872), INT32_C(-1409401131), INT32_C(-1446683671), INT32_C( 2011451607), INT32_C( 1570003547), INT32_C(-1564123603), INT32_C( -200447069), INT32_C( -676297563)), simde_mm512_set_epi64(INT64_C( -206824344976175814), INT64_C( -419729327921913504), INT64_C( -134950133518039378), INT64_C( 8555281953176040262), INT64_C( 2622398452638226743), INT64_C( 2072647407054444460), INT64_C( 630741576975949152), INT64_C(-3677310731734481669)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_mul_epi32(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_maskz_mul_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT8_C(138), simde_mm512_set_epi32(INT32_C( 1098716707), INT32_C(-1080185167), INT32_C( 796032668), INT32_C( 1756455873), INT32_C(-1031023150), INT32_C( 313996055), INT32_C(-1552434635), INT32_C( 82580470), INT32_C( -868810524), INT32_C(-1501290792), INT32_C( -628539172), INT32_C( 286404385), INT32_C(-2116183242), INT32_C( 925268541), INT32_C( 1423169798), INT32_C( 472979926)), simde_mm512_set_epi32(INT32_C(-1589762727), INT32_C( 1342398972), INT32_C( -162164967), INT32_C( 1184007139), INT32_C( 1973410894), INT32_C( 837116435), INT32_C(-1912965227), INT32_C( -221173809), INT32_C(-1524627531), INT32_C( 505638542), INT32_C( 1789154769), INT32_C( 1707140994), INT32_C( 111719139), INT32_C( 1287257616), INT32_C(-1103747425), INT32_C( 1951299418)), simde_mm512_set_epi64(INT64_C(-1450039457750448324), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( -759110487184905264), INT64_C( 0), INT64_C( 1191058976247458256), INT64_C( 0)) }, { UINT8_C(226), simde_mm512_set_epi32(INT32_C( 1851172912), INT32_C( 432012768), INT32_C(-1336678725), INT32_C( 141506650), INT32_C( 576471669), INT32_C(-2021849973), INT32_C( 610549751), INT32_C( 470887358), INT32_C( 1210740282), INT32_C( -720782218), INT32_C( 967227355), INT32_C(-1907082749), INT32_C( -376079371), INT32_C( 615957162), INT32_C( 189423181), INT32_C( 750118943)), simde_mm512_set_epi32(INT32_C(-1194827437), INT32_C( 1644918495), INT32_C(-1387747393), INT32_C(-1434123267), INT32_C( 1354817839), INT32_C( 1324343890), INT32_C( -595811004), INT32_C(-1790143018), INT32_C( -914188665), INT32_C( -647124032), INT32_C( 792952903), INT32_C( 2106780254), INT32_C( -65103351), INT32_C( -572558150), INT32_C( -801231269), INT32_C( -650481868)), simde_mm512_set_epi64(INT64_C( 710625792159344160), INT64_C( -202937979200225550), INT64_C(-2677624658239214970), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( -352671293153970300), INT64_C( 0)) }, { UINT8_C(205), simde_mm512_set_epi32(INT32_C( 1389849027), INT32_C( -968733779), INT32_C( -903985535), INT32_C( -505052458), INT32_C( 849997016), INT32_C( -665823569), INT32_C( 843681453), INT32_C( 1241052856), INT32_C( 1218361488), INT32_C( -511802096), INT32_C( 2056154947), INT32_C( -475453332), INT32_C( 1793883682), INT32_C( 1281268084), INT32_C(-1443305318), INT32_C(-2002775301)), simde_mm512_set_epi32(INT32_C( -480306273), INT32_C(-1942698584), INT32_C( 1404753532), INT32_C( 237623409), INT32_C( 1343658265), INT32_C(-1947335016), INT32_C( 1618135889), INT32_C( 726476998), INT32_C( 1324737144), INT32_C( 1048817456), INT32_C( 319312471), INT32_C( 1894816689), INT32_C( 1848939745), INT32_C(-1295730322), INT32_C( 1089929027), INT32_C( -785534579)), simde_mm512_set_epi64(INT64_C( 1881957740736268936), INT64_C( -120012286793789322), INT64_C( 0), INT64_C( 0), INT64_C( -536786972302187776), INT64_C( -900896908314257748), INT64_C( 0), INT64_C( 1573249252902633279)) }, { UINT8_C(206), simde_mm512_set_epi32(INT32_C( 163723168), INT32_C( 94537413), INT32_C( 1298848275), INT32_C( -99870655), INT32_C( 1537532032), INT32_C(-1949556986), INT32_C( -894015664), INT32_C(-1324496729), INT32_C( 850348293), INT32_C( 906352618), INT32_C(-1965873722), INT32_C(-2107953605), INT32_C( 559881293), INT32_C( -5815681), INT32_C(-1173896203), INT32_C( 1760080316)), simde_mm512_set_epi32(INT32_C( 1202706763), INT32_C(-1110213669), INT32_C( 1229627598), INT32_C( -147072860), INT32_C( 1883759514), INT32_C(-1191387298), INT32_C( 1673499534), INT32_C( 640453183), INT32_C(-1171836364), INT32_C( -982522972), INT32_C(-1480196612), INT32_C(-2077854762), INT32_C( -872251595), INT32_C( 1154127488), INT32_C( 896971913), INT32_C(-1585180342)), simde_mm512_set_epi64(INT64_C( -104956728144498297), INT64_C( 14688262860923300), INT64_C( 0), INT64_C( 0), INT64_C( -890512267917340696), INT64_C( 4380021436224317010), INT64_C( -6712037303539328), INT64_C( 0)) }, { UINT8_C(197), simde_mm512_set_epi32(INT32_C( -650041052), INT32_C( -647184441), INT32_C(-1880618021), INT32_C(-1812158288), INT32_C( 264100196), INT32_C( -263091932), INT32_C(-1182134909), INT32_C(-1890025577), INT32_C( 1421768266), INT32_C( 936126513), INT32_C( -213174057), INT32_C( -588951079), INT32_C( 217188364), INT32_C( 1950574682), INT32_C( -530860484), INT32_C( 713083418)), simde_mm512_set_epi32(INT32_C(-1419088193), INT32_C( 155768054), INT32_C( 575537364), INT32_C(-1651547513), INT32_C(-1310582959), INT32_C( 1366625247), INT32_C( 375333442), INT32_C( 516971366), INT32_C( 1204467496), INT32_C(-1684524880), INT32_C( 2029390656), INT32_C( 1244178650), INT32_C(-1765716319), INT32_C( -62663523), INT32_C( 233795696), INT32_C( 614711137)), simde_mm512_set_epi64(INT64_C( -100810660953647814), INT64_C( 2992865513708737744), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( -732760358386263350), INT64_C( 0), INT64_C( 438340318654626266)) }, { UINT8_C(221), simde_mm512_set_epi32(INT32_C(-1439155961), INT32_C( 680420491), INT32_C( 1277792130), INT32_C(-1440597466), INT32_C( -965757835), INT32_C( 2017786190), INT32_C(-1072056911), INT32_C( -897882665), INT32_C( 1375688), INT32_C( 1420052414), INT32_C( -331914389), INT32_C(-1649119241), INT32_C( -706010264), INT32_C( 713383150), INT32_C( 896627462), INT32_C( 1020243588)), simde_mm512_set_epi32(INT32_C( -359263092), INT32_C(-1196237833), INT32_C( 1322331949), INT32_C( 43567177), INT32_C( 414081468), INT32_C( 1462500900), INT32_C( 1902422273), INT32_C( -902219192), INT32_C(-1637598569), INT32_C( -626716515), INT32_C( 1485910176), INT32_C(-1246912099), INT32_C(-1032397276), INT32_C(-1436895618), INT32_C(-1408100359), INT32_C( -678052935)), simde_mm512_set_epi64(INT64_C( -813944733682636003), INT64_C( -62762764786973482), INT64_C( 0), INT64_C( 810086972527106680), INT64_C( -889970300019417210), INT64_C( 2056306734296596859), INT64_C( 0), INT64_C( -691779159258330780)) }, { UINT8_C(176), simde_mm512_set_epi32(INT32_C( 806025559), INT32_C( 277323133), INT32_C(-2040845209), INT32_C( 1514048177), INT32_C( 1299301232), INT32_C( 1804349866), INT32_C( 505045603), INT32_C(-1270991510), INT32_C(-1365476185), INT32_C( -470279784), INT32_C( 1957249393), INT32_C( 966280187), INT32_C( 550173580), INT32_C( 1419279519), INT32_C( 120074737), INT32_C( -623354205)), simde_mm512_set_epi32(INT32_C( 182628708), INT32_C( -711074484), INT32_C( 700640568), INT32_C( -182451726), INT32_C( 1928956599), INT32_C( 1423054326), INT32_C( 1016030809), INT32_C(-1086945734), INT32_C( 1392670038), INT32_C( 3796661), INT32_C( -232044152), INT32_C( 1236628648), INT32_C( 19789106), INT32_C(-2055501126), INT32_C( 1118019036), INT32_C( -365745616)), simde_mm512_set_epi64(INT64_C( -197197403699238372), INT64_C( 0), INT64_C( 2567687882428820316), INT64_C( 1381498799744718340), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0)) }, { UINT8_C(158), simde_mm512_set_epi32(INT32_C( 1841667236), INT32_C( 1484771017), INT32_C( -884031658), INT32_C(-1839125718), INT32_C(-1569039961), INT32_C( 1041098150), INT32_C( 1388925681), INT32_C( 863701002), INT32_C( 128435058), INT32_C( -263295419), INT32_C(-1184146866), INT32_C( 1159115917), INT32_C( 866281726), INT32_C(-1295662984), INT32_C( -351675537), INT32_C( -710944336)), simde_mm512_set_epi32(INT32_C(-1968953227), INT32_C( 227585281), INT32_C( -737334168), INT32_C( 1230090038), INT32_C(-1805794302), INT32_C( 1379277168), INT32_C( 744356262), INT32_C(-1333512317), INT32_C( -486348180), INT32_C( 1206532716), INT32_C( 1803086042), INT32_C(-1291499422), INT32_C( 1358104641), INT32_C(-2056773451), INT32_C(-1326911147), INT32_C( 1579123656)), simde_mm512_set_epi64(INT64_C( 337912029124600777), INT64_C( 0), INT64_C( 0), INT64_C(-1151755924372241634), INT64_C( -317674536996428004), INT64_C(-1496997536836499974), INT64_C( 2664885226934637784), INT64_C( 0)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_mul_epi32(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_maskz_mul_epu32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT8_C(166), simde_x_mm512_set_epu32(UINT32_C(4120514587), UINT32_C(1586964835), UINT32_C(1689003642), UINT32_C(2702971618), UINT32_C(2798377561), UINT32_C( 356472812), UINT32_C(2899999566), UINT32_C(3229978818), UINT32_C(1853356574), UINT32_C( 66069374), UINT32_C(1309687627), UINT32_C(1439779852), UINT32_C( 51916795), UINT32_C(2259276195), UINT32_C( 994758469), UINT32_C(3337558808)), simde_x_mm512_set_epu32(UINT32_C(2258908256), UINT32_C(3395137062), UINT32_C(4215249296), UINT32_C(2133148800), UINT32_C(2933274444), UINT32_C(1851927716), UINT32_C(4190919751), UINT32_C(1746820983), UINT32_C( 828520274), UINT32_C( 635229603), UINT32_C(1544367040), UINT32_C(1918376547), UINT32_C( 892222123), UINT32_C(3243361756), UINT32_C( 803359976), UINT32_C( 163739728)), simde_x_mm512_set_epu64(UINT64_C( 5387963127399214770), UINT64_C( 0), UINT64_C( 660161880543257392), UINT64_C( 0), UINT64_C( 0), UINT64_C( 2762039900919931044), UINT64_C( 7327650007104198420), UINT64_C( 0)) }, { UINT8_C(219), simde_x_mm512_set_epu32(UINT32_C(1410010955), UINT32_C( 503921354), UINT32_C(1418189156), UINT32_C( 444221777), UINT32_C( 148285537), UINT32_C(2288722231), UINT32_C( 344338098), UINT32_C(3454728003), UINT32_C(1478480780), UINT32_C(1743148264), UINT32_C(3822764711), UINT32_C(1636469832), UINT32_C(3280064546), UINT32_C( 933016241), UINT32_C(1726799481), UINT32_C(3824577952)), simde_x_mm512_set_epu32(UINT32_C(1037963842), UINT32_C(2512709916), UINT32_C( 937723538), UINT32_C(2708935661), UINT32_C(3914488889), UINT32_C(2550814880), UINT32_C(2900652427), UINT32_C(2176349091), UINT32_C(3028439158), UINT32_C(2773320535), UINT32_C( 444719300), UINT32_C(3233757255), UINT32_C(1004532908), UINT32_C( 43390785), UINT32_C( 738451500), UINT32_C(3536836475)), simde_x_mm512_set_epu64(UINT64_C( 1266208183079946264), UINT64_C( 1203368213108089597), UINT64_C( 0), UINT64_C( 7518694148981295273), UINT64_C( 4834308876100801240), UINT64_C( 0), UINT64_C( 40484307114739185), UINT64_C(13526906802114399200)) }, { UINT8_C(194), simde_x_mm512_set_epu32(UINT32_C(1176316177), UINT32_C(1751826934), UINT32_C(3378345958), UINT32_C( 543404964), UINT32_C(2579785136), UINT32_C(2416322328), UINT32_C( 75139728), UINT32_C(2416880998), UINT32_C(4234686409), UINT32_C(2660004756), UINT32_C(2106185379), UINT32_C( 797059438), UINT32_C(2372191392), UINT32_C( 269555244), UINT32_C(1767269404), UINT32_C(1625455101)), simde_x_mm512_set_epu32(UINT32_C(1851434759), UINT32_C(3604871411), UINT32_C(1327258228), UINT32_C(1673018657), UINT32_C( 305970996), UINT32_C(2819644549), UINT32_C(3721065063), UINT32_C(1020891301), UINT32_C(4202682046), UINT32_C(4200645833), UINT32_C( 117038385), UINT32_C(3020070100), UINT32_C(1353160823), UINT32_C( 440057333), UINT32_C(3056423613), UINT32_C(1896622192)), simde_x_mm512_set_epu64(UINT64_C( 6315110831396383874), UINT64_C( 909126643078413348), UINT64_C( 0), UINT64_C( 0), UINT64_C( 0), UINT64_C( 0), UINT64_C( 118619761770804252), UINT64_C( 0)) }, { UINT8_C( 67), simde_x_mm512_set_epu32(UINT32_C(2693954212), UINT32_C( 277998850), UINT32_C(4169077113), UINT32_C(3680111513), UINT32_C(4156583103), UINT32_C(4105987148), UINT32_C( 11818996), UINT32_C( 514873926), UINT32_C(1191268288), UINT32_C(3638344486), UINT32_C(2361786195), UINT32_C( 500533201), UINT32_C(3058957194), UINT32_C( 190737734), UINT32_C(3837187385), UINT32_C(4003123598)), simde_x_mm512_set_epu32(UINT32_C(4122956852), UINT32_C(3007076678), UINT32_C(1011742851), UINT32_C( 831857768), UINT32_C(2217989187), UINT32_C(3681606305), UINT32_C(3147415754), UINT32_C( 236426985), UINT32_C( 216160186), UINT32_C(3279967715), UINT32_C(3874145825), UINT32_C(2203854710), UINT32_C(3676418261), UINT32_C( 401038296), UINT32_C(3825112812), UINT32_C(2929607534)), simde_x_mm512_set_epu64(UINT64_C( 0), UINT64_C( 3061329349195282984), UINT64_C( 0), UINT64_C( 0), UINT64_C( 0), UINT64_C( 0), UINT64_C( 76493135826261264), UINT64_C(11727581052233987332)) }, { UINT8_C(169), simde_x_mm512_set_epu32(UINT32_C( 428651380), UINT32_C(1050238262), UINT32_C(4167120113), UINT32_C( 669121916), UINT32_C(1457539263), UINT32_C(3520615042), UINT32_C(1174118849), UINT32_C(1102257957), UINT32_C(1414101989), UINT32_C(3097425534), UINT32_C(1024087984), UINT32_C(1792583521), UINT32_C(3354797839), UINT32_C( 580554502), UINT32_C(1472515666), UINT32_C(3870057603)), simde_x_mm512_set_epu32(UINT32_C(2083050486), UINT32_C(1796942025), UINT32_C( 755961532), UINT32_C(2214717680), UINT32_C(3706324798), UINT32_C(1039769945), UINT32_C(3555811997), UINT32_C( 761202637), UINT32_C(1863011574), UINT32_C(1454498620), UINT32_C( 958628441), UINT32_C(2380256526), UINT32_C(4218133731), UINT32_C(3449338768), UINT32_C(3115502206), UINT32_C(2279816507)), simde_x_mm512_set_epu64(UINT64_C( 1887217269250760550), UINT64_C( 0), UINT64_C( 3660629708586512690), UINT64_C( 0), UINT64_C( 4505201164755763080), UINT64_C( 0), UINT64_C( 0), UINT64_C( 8823021206360252721)) }, { UINT8_C(203), simde_x_mm512_set_epu32(UINT32_C( 968785729), UINT32_C(3446816529), UINT32_C(1989948608), UINT32_C(3935090572), UINT32_C(2260595137), UINT32_C(3809743538), UINT32_C(1768049062), UINT32_C(1253090843), UINT32_C(4000901225), UINT32_C(2487234584), UINT32_C( 840765913), UINT32_C(1202598978), UINT32_C(2886819484), UINT32_C(2063363126), UINT32_C(2370412425), UINT32_C(1978444200)), simde_x_mm512_set_epu32(UINT32_C(1758358159), UINT32_C( 259726788), UINT32_C(1062244813), UINT32_C(1397736159), UINT32_C(1484315275), UINT32_C(2101001099), UINT32_C(2659688367), UINT32_C(1816554597), UINT32_C(1863116741), UINT32_C(3211066307), UINT32_C( 496281550), UINT32_C(3010953410), UINT32_C(1914417911), UINT32_C(1058492483), UINT32_C(1785378717), UINT32_C(1261746977)), simde_x_mm512_set_epu64(UINT64_C( 895230585902478852), UINT64_C( 5500218381424392948), UINT64_C( 0), UINT64_C( 0), UINT64_C( 7986675170287561288), UINT64_C( 0), UINT64_C( 2184054358570381858), UINT64_C( 2496295988513183400)) }, { UINT8_C( 89), simde_x_mm512_set_epu32(UINT32_C( 244202415), UINT32_C(1696418382), UINT32_C(4253734840), UINT32_C(1521382913), UINT32_C(2523120367), UINT32_C( 719365215), UINT32_C( 746887847), UINT32_C( 329869757), UINT32_C(2935442647), UINT32_C(3965449572), UINT32_C( 2046702), UINT32_C(3055578856), UINT32_C(2614828885), UINT32_C(2261447742), UINT32_C( 379053160), UINT32_C(1474182998)), simde_x_mm512_set_epu32(UINT32_C( 180314942), UINT32_C(3784268734), UINT32_C(2189933725), UINT32_C(1759707651), UINT32_C(4017470040), UINT32_C( 528482752), UINT32_C(2637497058), UINT32_C(3574995683), UINT32_C(2110412704), UINT32_C( 661885013), UINT32_C(3935066909), UINT32_C( 163101530), UINT32_C(3963037657), UINT32_C( 399559486), UINT32_C( 875430591), UINT32_C(1854318955)), simde_x_mm512_set_epu64(UINT64_C( 0), UINT64_C( 2677189152106767363), UINT64_C( 0), UINT64_C( 1179282957227259031), UINT64_C( 2624671641514064436), UINT64_C( 0), UINT64_C( 0), UINT64_C( 2733605476330127090)) }, { UINT8_C( 27), simde_x_mm512_set_epu32(UINT32_C(3300721541), UINT32_C(3440866090), UINT32_C(3838602911), UINT32_C(1016597887), UINT32_C( 287068752), UINT32_C(1521867279), UINT32_C(2420112012), UINT32_C(2417142414), UINT32_C( 344709524), UINT32_C(1803316517), UINT32_C( 467213234), UINT32_C( 327864893), UINT32_C(2661940215), UINT32_C(4228328219), UINT32_C(1396080639), UINT32_C(4001917131)), simde_x_mm512_set_epu32(UINT32_C(4155157678), UINT32_C(1774567103), UINT32_C(1949309963), UINT32_C( 729844445), UINT32_C(2587732272), UINT32_C( 138621029), UINT32_C(2703994882), UINT32_C(1904478113), UINT32_C(2402800240), UINT32_C( 959065024), UINT32_C(2558227042), UINT32_C(3067418732), UINT32_C(1398342314), UINT32_C(3263383247), UINT32_C(3963437622), UINT32_C(1585677583)), simde_x_mm512_set_epu64(UINT64_C( 0), UINT64_C( 0), UINT64_C( 0), UINT64_C( 4603394823466984782), UINT64_C( 1729497798656201408), UINT64_C( 0), UINT64_C(13798655472701947093), UINT64_C( 6345750283650374373)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_mul_epu32(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_u64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mul_epu32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_x_mm512_set_epu32(UINT32_C( 768255153), UINT32_C(3116504916), UINT32_C(2849349603), UINT32_C(3380602699), UINT32_C(3667150171), UINT32_C(2606748140), UINT32_C( 256440763), UINT32_C(4236376754), UINT32_C( 137611130), UINT32_C(3608004165), UINT32_C( 23379469), UINT32_C( 634104346), UINT32_C( 752813209), UINT32_C( 304980816), UINT32_C( 873141861), UINT32_C( 42552677)), simde_x_mm512_set_epu32(UINT32_C(3537218346), UINT32_C( 554508152), UINT32_C(2540529856), UINT32_C(1492162297), UINT32_C(4027600118), UINT32_C( 897760677), UINT32_C( 832131936), UINT32_C(1226979254), UINT32_C(2823494192), UINT32_C(1370605687), UINT32_C(3043623483), UINT32_C( 310819447), UINT32_C(3262156609), UINT32_C(4133822383), UINT32_C( 153673388), UINT32_C( 507486240)), simde_x_mm512_set_epu64(UINT64_C( 1728127381670075232), UINT64_C( 5044407888584239603), UINT64_C( 2340235974934890780), UINT64_C( 5197946389285861516), UINT64_C( 4945151027268686355), UINT64_C( 197091962164016662), UINT64_C( 1260736523566404528), UINT64_C( 21594898052664480)) }, { simde_x_mm512_set_epu32(UINT32_C(3038228522), UINT32_C(2177263565), UINT32_C(1580156717), UINT32_C(3293644153), UINT32_C(3877520946), UINT32_C(1914222601), UINT32_C(2300352870), UINT32_C(3239916612), UINT32_C(2045429998), UINT32_C(2834457902), UINT32_C(2502406118), UINT32_C(3874567768), UINT32_C(1624909929), UINT32_C( 552025498), UINT32_C(3781080866), UINT32_C( 445279347)), simde_x_mm512_set_epu32(UINT32_C(3686614578), UINT32_C(2012284249), UINT32_C(4065027833), UINT32_C(2391570441), UINT32_C(2365238876), UINT32_C(1345195249), UINT32_C(3876854758), UINT32_C(2935715346), UINT32_C( 298066676), UINT32_C( 616522972), UINT32_C(2787002250), UINT32_C(2890879290), UINT32_C(2445030057), UINT32_C(1418356119), UINT32_C( 876914337), UINT32_C(2884175418)), simde_x_mm512_set_epu64(UINT64_C( 4381273177771087685), UINT64_C( 7876981999487281473), UINT64_C( 2575003148393622649), UINT64_C( 9511472917608727752), UINT64_C( 1747508409749924744), UINT64_C(11200907718212724720), UINT64_C( 782968742932322262), UINT64_C( 1284263746760492046)) }, { simde_x_mm512_set_epu32(UINT32_C(1327609198), UINT32_C(1911763444), UINT32_C(3596479631), UINT32_C(3933061513), UINT32_C(3463498323), UINT32_C( 687111330), UINT32_C( 635542403), UINT32_C(1153148129), UINT32_C(3815988413), UINT32_C(2677217701), UINT32_C( 271158343), UINT32_C(1601359912), UINT32_C(4276983578), UINT32_C(2555948345), UINT32_C(1846034446), UINT32_C(1127199678)), simde_x_mm512_set_epu32(UINT32_C( 657487984), UINT32_C(2570668084), UINT32_C( 753507331), UINT32_C(1705841966), UINT32_C(3937986766), UINT32_C(3019564702), UINT32_C(2409588030), UINT32_C( 467930148), UINT32_C(4115653696), UINT32_C(3587871831), UINT32_C(1753201197), UINT32_C( 778129766), UINT32_C(1742436576), UINT32_C(2505253535), UINT32_C(2950628411), UINT32_C(2064165361)), simde_x_mm512_set_epu64(UINT64_C( 4914509269648721296), UINT64_C( 6709181383734854558), UINT64_C( 2074777118412273660), UINT64_C( 539592774668893092), UINT64_C( 9605513974872480531), UINT64_C( 1246065813606340592), UINT64_C( 6403298626588649575), UINT64_C( 2326726530257953758)) }, { simde_x_mm512_set_epu32(UINT32_C(2919345837), UINT32_C(4236345846), UINT32_C(3784567990), UINT32_C(4027374119), UINT32_C(3288320277), UINT32_C( 390224653), UINT32_C(3910835486), UINT32_C( 865013699), UINT32_C(2748043226), UINT32_C( 449666617), UINT32_C( 232557914), UINT32_C( 838031623), UINT32_C(3874792609), UINT32_C( 112848728), UINT32_C( 173110782), UINT32_C(1917463852)), simde_x_mm512_set_epu32(UINT32_C(1885981625), UINT32_C( 167105269), UINT32_C(1642818873), UINT32_C( 795737603), UINT32_C( 583404702), UINT32_C(1590901338), UINT32_C(2535047020), UINT32_C(1665933152), UINT32_C( 271178891), UINT32_C( 492170774), UINT32_C(4067923128), UINT32_C(2457242362), UINT32_C(4206213856), UINT32_C(1232486026), UINT32_C(2718472187), UINT32_C(4168006676)), simde_x_mm512_set_epu64(UINT64_C( 707915712172862574), UINT64_C( 3204733027837296757), UINT64_C( 620808922578285714), UINT64_C( 1441054998098249248), UINT64_C( 221312766930851558), UINT64_C( 2059246804731213526), UINT64_C( 139084480311874928), UINT64_C( 7992002136124675952)) }, { simde_x_mm512_set_epu32(UINT32_C( 27104904), UINT32_C(4150065749), UINT32_C(3990632930), UINT32_C( 634032004), UINT32_C(2048919564), UINT32_C(1865014244), UINT32_C( 549754386), UINT32_C(2522098959), UINT32_C(2696620961), UINT32_C( 891563523), UINT32_C(2188909902), UINT32_C(2179241133), UINT32_C(1743310130), UINT32_C( 377093787), UINT32_C(2755680804), UINT32_C(3712100521)), simde_x_mm512_set_epu32(UINT32_C( 672807047), UINT32_C(2773804867), UINT32_C(4088841569), UINT32_C( 619049193), UINT32_C( 593052350), UINT32_C( 730103388), UINT32_C(1414198306), UINT32_C(4002179273), UINT32_C(1269785901), UINT32_C( 747703241), UINT32_C( 347333415), UINT32_C( 968811996), UINT32_C(4236163540), UINT32_C(2123412997), UINT32_C( 33837735), UINT32_C(1851248845)), simde_x_mm512_set_epu64(UINT64_C(11511472572946200383), UINT64_C( 392497000412372772), UINT64_C( 1361653218212658672), UINT64_C(10093892178164676807), UINT64_C( 666624935704478043), UINT64_C( 2111274951827031468), UINT64_C( 800725848403749639), UINT64_C( 6872021802025148245)) }, { simde_x_mm512_set_epu32(UINT32_C(3744995587), UINT32_C(2704878999), UINT32_C(2216207729), UINT32_C(3174220609), UINT32_C(2276590134), UINT32_C( 284809778), UINT32_C(2003404586), UINT32_C(1707085270), UINT32_C(2713648433), UINT32_C(2786430472), UINT32_C( 397019195), UINT32_C( 630796576), UINT32_C(1959866953), UINT32_C( 629006272), UINT32_C(2429347726), UINT32_C(3247824799)), simde_x_mm512_set_epu32(UINT32_C(3020299794), UINT32_C(2488516068), UINT32_C(3326847413), UINT32_C(1426347053), UINT32_C(3015511399), UINT32_C( 258677619), UINT32_C(3923020384), UINT32_C( 835454201), UINT32_C(3228303109), UINT32_C( 994730831), UINT32_C(2437482082), UINT32_C(1004732602), UINT32_C(3078918689), UINT32_C(1633253517), UINT32_C(1920589043), UINT32_C(3888518352)), simde_x_mm512_set_epu64(UINT64_C( 6731134851007255932), UINT64_C( 4527540211219015277), UINT64_C( 73673915240958582), UINT64_C( 1426191560286719270), UINT64_C( 2771748298936282232), UINT64_C( 633781885137170752), UINT64_C( 1027326705959058624), UINT64_C(12629226334992211248)) }, { simde_x_mm512_set_epu32(UINT32_C( 237961802), UINT32_C(1124052031), UINT32_C(3408632402), UINT32_C(1936321731), UINT32_C(3188356992), UINT32_C( 413227284), UINT32_C(1767960975), UINT32_C(2214647351), UINT32_C(4011124733), UINT32_C(3189426671), UINT32_C(3040561164), UINT32_C(3376223700), UINT32_C(2268266209), UINT32_C( 155837480), UINT32_C(1377610501), UINT32_C(1504228568)), simde_x_mm512_set_epu32(UINT32_C(1573768507), UINT32_C( 476780671), UINT32_C(2153500842), UINT32_C(1201914669), UINT32_C(1130822801), UINT32_C(3370243267), UINT32_C(1286308912), UINT32_C(2062398363), UINT32_C(1095401713), UINT32_C(4089334856), UINT32_C(2597794703), UINT32_C(2139321595), UINT32_C(2505322640), UINT32_C(2764790171), UINT32_C(3415336749), UINT32_C( 59419438)), simde_x_mm512_set_epu64(UINT64_C( 535926281579092801), UINT64_C( 2327293492392372039), UINT64_C( 1392676471641696828), UINT64_C( 4567485071324686413), UINT64_C(13042633656376344376), UINT64_C( 7222828270960801500), UINT64_C( 430857932977409080), UINT64_C( 89380416134104784)) }, { simde_x_mm512_set_epu32(UINT32_C( 493235400), UINT32_C( 189383962), UINT32_C(2622533649), UINT32_C( 943550019), UINT32_C( 227224723), UINT32_C(1724057992), UINT32_C(4133039778), UINT32_C(3416450213), UINT32_C(1064097074), UINT32_C(1615527431), UINT32_C( 106890087), UINT32_C(3131878508), UINT32_C(4228916541), UINT32_C(2298347901), UINT32_C(2681451816), UINT32_C( 956711717)), simde_x_mm512_set_epu32(UINT32_C(1959431707), UINT32_C(3425635109), UINT32_C(3493232750), UINT32_C(2950665544), UINT32_C(1223627161), UINT32_C(3625235337), UINT32_C( 456501342), UINT32_C(2245318318), UINT32_C(3915087897), UINT32_C(4086538960), UINT32_C(2510683850), UINT32_C(3689243003), UINT32_C(2734380582), UINT32_C(3715382302), UINT32_C(3353219492), UINT32_C(1828163673)), simde_x_mm512_set_epu64(UINT64_C( 648760349308721858), UINT64_C( 2784100530103845336), UINT64_C( 6250115955635663304), UINT64_C( 7671018245783901734), UINT64_C( 6601915787730211760), UINT64_C(11554260871885079524), UINT64_C( 8539241115214248102), UINT64_C( 1749025606552856541)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mul_epu32(test_vec[i].a, test_vec[i].b); simde_assert_m512i_u64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_mul_epu32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i src; simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_x_mm512_set_epu64(UINT64_C(11617731129322750966), UINT64_C( 2428231924375211538), UINT64_C(14175135673172244792), UINT64_C( 5480651963328574733), UINT64_C(12032129819668007160), UINT64_C( 4424822542185790875), UINT64_C(14867552050688999361), UINT64_C(18178319731812771647)), UINT8_C(193), simde_x_mm512_set_epu32(UINT32_C(3263550415), UINT32_C(3722438839), UINT32_C(2250736680), UINT32_C(1691034658), UINT32_C(2554266733), UINT32_C(3217520562), UINT32_C(1461265118), UINT32_C( 788514619), UINT32_C(2189225773), UINT32_C(1631863219), UINT32_C(1750226365), UINT32_C( 568487836), UINT32_C(2400146531), UINT32_C(3640095823), UINT32_C( 206125598), UINT32_C( 929630688)), simde_x_mm512_set_epu32(UINT32_C(2599352978), UINT32_C(2499798093), UINT32_C(1296552276), UINT32_C( 187401912), UINT32_C(2689124664), UINT32_C(3631388300), UINT32_C( 697343737), UINT32_C(2062287739), UINT32_C(2446945975), UINT32_C( 568195668), UINT32_C( 631862630), UINT32_C( 893101483), UINT32_C( 859175541), UINT32_C( 104178488), UINT32_C(4045255037), UINT32_C(4203900757)), simde_x_mm512_set_epu64(UINT64_C( 9305345511041334027), UINT64_C( 316903128167466096), UINT64_C(14175135673172244792), UINT64_C( 5480651963328574733), UINT64_C(12032129819668007160), UINT64_C( 4424822542185790875), UINT64_C(14867552050688999361), UINT64_C( 3908075153013630816)) }, { simde_x_mm512_set_epu64(UINT64_C(13472523368263323530), UINT64_C( 9759174632444686247), UINT64_C(13193200280295594145), UINT64_C( 61830035715779390), UINT64_C( 3749566472430999385), UINT64_C( 4387274564618060685), UINT64_C( 6292382073951294857), UINT64_C( 2998314933539498774)), UINT8_C( 51), simde_x_mm512_set_epu32(UINT32_C(2328158325), UINT32_C(4044751844), UINT32_C(3983880162), UINT32_C(1865776280), UINT32_C( 663966634), UINT32_C(3835216878), UINT32_C(1416309334), UINT32_C(3569688362), UINT32_C( 671765842), UINT32_C(4201434406), UINT32_C(2145277385), UINT32_C( 232005336), UINT32_C(3364267605), UINT32_C(1204199577), UINT32_C(1905702483), UINT32_C(1405245895)), simde_x_mm512_set_epu32(UINT32_C(1978530737), UINT32_C(3532128238), UINT32_C(2586558058), UINT32_C(2555375701), UINT32_C(1328514887), UINT32_C(2070014178), UINT32_C(2738790052), UINT32_C(1824660691), UINT32_C(3424488035), UINT32_C(3798301173), UINT32_C( 335648721), UINT32_C( 829536855), UINT32_C( 101359129), UINT32_C( 500535839), UINT32_C(3768468917), UINT32_C(3000753624)), simde_x_mm512_set_epu64(UINT64_C(13472523368263323530), UINT64_C( 9759174632444686247), UINT64_C( 7938953313164896284), UINT64_C( 6513470033261578142), UINT64_C( 3749566472430999385), UINT64_C( 4387274564618060685), UINT64_C( 602745045597140103), UINT64_C( 4216796712032373480)) }, { simde_x_mm512_set_epu64(UINT64_C( 9490244949648135949), UINT64_C( 3952247228721925392), UINT64_C( 4800241040971682796), UINT64_C( 9619996883527725324), UINT64_C(15935750477416943804), UINT64_C( 545362928884482916), UINT64_C(13559318363578452842), UINT64_C( 7722701545450284407)), UINT8_C(134), simde_x_mm512_set_epu32(UINT32_C( 500898194), UINT32_C(4078085990), UINT32_C(2494049110), UINT32_C(1592224201), UINT32_C( 111635698), UINT32_C( 186713), UINT32_C(1765622469), UINT32_C(4017148467), UINT32_C(2543052619), UINT32_C(1161807732), UINT32_C(1925351794), UINT32_C(2298119068), UINT32_C( 457010151), UINT32_C(2589010019), UINT32_C( 502276479), UINT32_C(1967748710)), simde_x_mm512_set_epu32(UINT32_C(1919012105), UINT32_C(2908857333), UINT32_C(1122604656), UINT32_C(3433647442), UINT32_C(2386428500), UINT32_C( 463161035), UINT32_C( 504317420), UINT32_C(3353921428), UINT32_C(1582348389), UINT32_C(1180932658), UINT32_C(1476554796), UINT32_C(2783736621), UINT32_C( 330646602), UINT32_C(1769150036), UINT32_C(2020624655), UINT32_C(3683994282)), simde_x_mm512_set_epu64(UINT64_C(11862570336616064670), UINT64_C( 3952247228721925392), UINT64_C( 4800241040971682796), UINT64_C( 9619996883527725324), UINT64_C(15935750477416943804), UINT64_C( 6397358209009989228), UINT64_C( 4580347168318210684), UINT64_C( 7722701545450284407)) }, { simde_x_mm512_set_epu64(UINT64_C( 8956593975554634232), UINT64_C( 9593792923362730078), UINT64_C( 751700862087837721), UINT64_C( 7205298436209283097), UINT64_C( 7151721520472513082), UINT64_C( 8910303953543094872), UINT64_C( 533657364826431938), UINT64_C(13265804505255182490)), UINT8_C(251), simde_x_mm512_set_epu32(UINT32_C(1468179080), UINT32_C(3172744829), UINT32_C(1457928522), UINT32_C(1192418034), UINT32_C( 105193191), UINT32_C( 430546192), UINT32_C(1509518002), UINT32_C( 354607881), UINT32_C(3139371107), UINT32_C(2393204313), UINT32_C(1496510794), UINT32_C(3916080313), UINT32_C(3933358732), UINT32_C(2965437178), UINT32_C(2440098689), UINT32_C( 675981365)), simde_x_mm512_set_epu32(UINT32_C(3471092536), UINT32_C(4213288110), UINT32_C(3288478343), UINT32_C( 269318758), UINT32_C(2757016548), UINT32_C( 404238758), UINT32_C(3038240298), UINT32_C(3153052129), UINT32_C(1906833283), UINT32_C(1593207408), UINT32_C( 59630942), UINT32_C(3403525194), UINT32_C(2850644791), UINT32_C(1343686045), UINT32_C(1484433553), UINT32_C(2500647723)), simde_x_mm512_set_epu64(UINT64_C(13367688064089683190), UINT64_C( 321140543933681772), UINT64_C( 174043457915709536), UINT64_C( 1118097134147228649), UINT64_C( 3812870840329150704), UINT64_C( 8910303953543094872), UINT64_C( 3984616553402781010), UINT64_C( 1690391261177681895)) }, { simde_x_mm512_set_epu64(UINT64_C( 9350173910558210368), UINT64_C( 8451791018593404629), UINT64_C( 5111327021160397113), UINT64_C( 8067526547900849939), UINT64_C( 4397190784689926414), UINT64_C(15730677711069966608), UINT64_C(15155555711952095903), UINT64_C( 4601095961680188139)), UINT8_C( 77), simde_x_mm512_set_epu32(UINT32_C( 289816884), UINT32_C(3139170300), UINT32_C(2611086568), UINT32_C( 981312265), UINT32_C(2310975133), UINT32_C(1423285786), UINT32_C(4145860146), UINT32_C( 849682935), UINT32_C(3098522529), UINT32_C(1778767618), UINT32_C(2469498326), UINT32_C(3407697658), UINT32_C(4257688348), UINT32_C(1327333484), UINT32_C(4206795397), UINT32_C(1498113253)), simde_x_mm512_set_epu32(UINT32_C(3119696014), UINT32_C( 934565143), UINT32_C( 659452226), UINT32_C(3987623713), UINT32_C(3941044651), UINT32_C(3075534691), UINT32_C( 348385654), UINT32_C(3299605274), UINT32_C( 734145932), UINT32_C(2544261168), UINT32_C(1332327027), UINT32_C(3348556299), UINT32_C(3524888946), UINT32_C(2026143937), UINT32_C(3684996090), UINT32_C(3613250397)), simde_x_mm512_set_epu64(UINT64_C( 9350173910558210368), UINT64_C( 3913104057771739945), UINT64_C( 5111327021160397113), UINT64_C( 8067526547900849939), UINT64_C( 4525649377373257824), UINT64_C(11410867457783447742), UINT64_C(15155555711952095903), UINT64_C( 5413058306153211441)) }, { simde_x_mm512_set_epu64(UINT64_C(16773967285187515106), UINT64_C( 3477992427783883408), UINT64_C( 1002604261497217766), UINT64_C( 1352136840172993944), UINT64_C(10899831745595212891), UINT64_C( 2236619794744991665), UINT64_C( 4130838651210953091), UINT64_C(12223797258734177268)), UINT8_C(188), simde_x_mm512_set_epu32(UINT32_C(3198361131), UINT32_C(1105007823), UINT32_C(3912476736), UINT32_C(2446995251), UINT32_C(2582844574), UINT32_C(2764726563), UINT32_C(1724064135), UINT32_C( 994964469), UINT32_C( 257756540), UINT32_C( 980676724), UINT32_C(2274290616), UINT32_C(4142129112), UINT32_C(1407509141), UINT32_C(1593753754), UINT32_C(3346961920), UINT32_C(3859603033)), simde_x_mm512_set_epu32(UINT32_C(1883521655), UINT32_C( 997816392), UINT32_C( 186891147), UINT32_C(2813182686), UINT32_C(3818488413), UINT32_C(1262292349), UINT32_C(2615667202), UINT32_C(3433123518), UINT32_C(2317895719), UINT32_C(1795398992), UINT32_C(1050555729), UINT32_C(1774700454), UINT32_C( 350094657), UINT32_C(2222937199), UINT32_C( 539823167), UINT32_C( 663093254)), simde_x_mm512_set_epu64(UINT64_C( 1102594919077634616), UINT64_C( 3477992427783883408), UINT64_C( 3489893187551966487), UINT64_C( 3415835918098281942), UINT64_C( 1760706001747462208), UINT64_C( 7351038415593016848), UINT64_C( 4130838651210953091), UINT64_C(12223797258734177268)) }, { simde_x_mm512_set_epu64(UINT64_C( 9161315007163903385), UINT64_C( 901926328951971839), UINT64_C(11374042021460658344), UINT64_C(14235844241233139061), UINT64_C(16689996302050367513), UINT64_C(17811135944692719319), UINT64_C( 7952138000462838282), UINT64_C(15106420877923679668)), UINT8_C(197), simde_x_mm512_set_epu32(UINT32_C(1215894565), UINT32_C( 325247992), UINT32_C(3808486726), UINT32_C(3829410744), UINT32_C(1276796092), UINT32_C( 483034698), UINT32_C(3265794508), UINT32_C( 145210622), UINT32_C(4212031611), UINT32_C(3325547336), UINT32_C(1445017193), UINT32_C(2689093900), UINT32_C(4273435877), UINT32_C( 524026689), UINT32_C(3618756570), UINT32_C(3961201514)), simde_x_mm512_set_epu32(UINT32_C(3460615822), UINT32_C(2842020471), UINT32_C(1351189519), UINT32_C(2329879373), UINT32_C(3974357402), UINT32_C(2816300347), UINT32_C( 773721318), UINT32_C(3997442937), UINT32_C(2436503902), UINT32_C(3242344117), UINT32_C(1149812233), UINT32_C( 907108945), UINT32_C(1385675283), UINT32_C(3399903430), UINT32_C(2550192792), UINT32_C(3214774192)), simde_x_mm512_set_epu64(UINT64_C( 924361451415644232), UINT64_C( 8922065103190183512), UINT64_C(11374042021460658344), UINT64_C(14235844241233139061), UINT64_C(16689996302050367513), UINT64_C( 2439301130634935500), UINT64_C( 7952138000462838282), UINT64_C(12734368396518526688)) }, { simde_x_mm512_set_epu64(UINT64_C(10381435592908454864), UINT64_C( 7683972863259161915), UINT64_C( 312335983814548083), UINT64_C( 3934167861393427795), UINT64_C(15803008790257017530), UINT64_C(12384685209313245301), UINT64_C(17881738201070197485), UINT64_C(14224003016858721277)), UINT8_C( 76), simde_x_mm512_set_epu32(UINT32_C(3028673683), UINT32_C(2581675996), UINT32_C(3969199228), UINT32_C(1709618805), UINT32_C(3286547215), UINT32_C(2496179327), UINT32_C(2647114121), UINT32_C(2818621113), UINT32_C( 879830851), UINT32_C(3024057012), UINT32_C( 247658746), UINT32_C(1778653183), UINT32_C( 608002580), UINT32_C(2912110970), UINT32_C(2119947745), UINT32_C( 102275654)), simde_x_mm512_set_epu32(UINT32_C(3762799031), UINT32_C(1035026982), UINT32_C( 282468805), UINT32_C( 635023104), UINT32_C(1863059331), UINT32_C(4265385561), UINT32_C( 804673998), UINT32_C(2920963576), UINT32_C(1218801842), UINT32_C(1010987093), UINT32_C(3172703974), UINT32_C(1792395250), UINT32_C(3430253324), UINT32_C( 714780216), UINT32_C(4029344470), UINT32_C(2590869425)), simde_x_mm512_set_epu64(UINT64_C(10381435592908454864), UINT64_C( 1085647440207870720), UINT64_C( 312335983814548083), UINT64_C( 3934167861393427795), UINT64_C( 3057282607628146116), UINT64_C( 3188049516606580750), UINT64_C(17881738201070197485), UINT64_C(14224003016858721277)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_mul_epu32(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_u64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mul_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { simde_mm512_set_ps(SIMDE_FLOAT32_C( -775.40), SIMDE_FLOAT32_C( -210.92), SIMDE_FLOAT32_C( 987.42), SIMDE_FLOAT32_C( 542.45), SIMDE_FLOAT32_C( -745.60), SIMDE_FLOAT32_C( -50.38), SIMDE_FLOAT32_C( 163.82), SIMDE_FLOAT32_C( -164.62), SIMDE_FLOAT32_C( -736.65), SIMDE_FLOAT32_C( -764.30), SIMDE_FLOAT32_C( 675.25), SIMDE_FLOAT32_C( -182.15), SIMDE_FLOAT32_C( -748.44), SIMDE_FLOAT32_C( 82.10), SIMDE_FLOAT32_C( 684.52), SIMDE_FLOAT32_C( -343.09)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 263.91), SIMDE_FLOAT32_C( -350.89), SIMDE_FLOAT32_C( -318.01), SIMDE_FLOAT32_C( -980.00), SIMDE_FLOAT32_C( 872.18), SIMDE_FLOAT32_C( 80.96), SIMDE_FLOAT32_C( 145.89), SIMDE_FLOAT32_C( 832.89), SIMDE_FLOAT32_C( -267.96), SIMDE_FLOAT32_C( -536.57), SIMDE_FLOAT32_C( -934.00), SIMDE_FLOAT32_C( 653.62), SIMDE_FLOAT32_C( 984.11), SIMDE_FLOAT32_C( 140.30), SIMDE_FLOAT32_C( -580.05), SIMDE_FLOAT32_C( -915.75)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-204635.83), SIMDE_FLOAT32_C( 74009.72), SIMDE_FLOAT32_C(-314009.44), SIMDE_FLOAT32_C(-531601.00), SIMDE_FLOAT32_C(-650297.38), SIMDE_FLOAT32_C( -4078.76), SIMDE_FLOAT32_C( 23899.70), SIMDE_FLOAT32_C(-137110.34), SIMDE_FLOAT32_C(197392.73), SIMDE_FLOAT32_C(410100.44), SIMDE_FLOAT32_C(-630683.50), SIMDE_FLOAT32_C(-119056.88), SIMDE_FLOAT32_C(-736547.25), SIMDE_FLOAT32_C( 11518.63), SIMDE_FLOAT32_C(-397055.84), SIMDE_FLOAT32_C(314184.66)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -910.74), SIMDE_FLOAT32_C( -302.10), SIMDE_FLOAT32_C( 937.08), SIMDE_FLOAT32_C( 618.13), SIMDE_FLOAT32_C( 85.12), SIMDE_FLOAT32_C( 3.50), SIMDE_FLOAT32_C( -122.84), SIMDE_FLOAT32_C( 290.22), SIMDE_FLOAT32_C( 606.76), SIMDE_FLOAT32_C( -664.92), SIMDE_FLOAT32_C( 454.81), SIMDE_FLOAT32_C( 299.40), SIMDE_FLOAT32_C( -524.63), SIMDE_FLOAT32_C( 40.68), SIMDE_FLOAT32_C( 218.77), SIMDE_FLOAT32_C( 35.82)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 392.21), SIMDE_FLOAT32_C( 139.00), SIMDE_FLOAT32_C( -878.97), SIMDE_FLOAT32_C( 778.57), SIMDE_FLOAT32_C( -810.83), SIMDE_FLOAT32_C( 413.49), SIMDE_FLOAT32_C( 505.44), SIMDE_FLOAT32_C( 291.58), SIMDE_FLOAT32_C( -757.25), SIMDE_FLOAT32_C( 594.07), SIMDE_FLOAT32_C( 304.96), SIMDE_FLOAT32_C( -155.47), SIMDE_FLOAT32_C( 635.03), SIMDE_FLOAT32_C( 654.85), SIMDE_FLOAT32_C( 777.61), SIMDE_FLOAT32_C( -598.19)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-357201.31), SIMDE_FLOAT32_C(-41991.90), SIMDE_FLOAT32_C(-823665.19), SIMDE_FLOAT32_C(481257.47), SIMDE_FLOAT32_C(-69017.85), SIMDE_FLOAT32_C( 1447.21), SIMDE_FLOAT32_C(-62088.25), SIMDE_FLOAT32_C( 84622.34), SIMDE_FLOAT32_C(-459469.03), SIMDE_FLOAT32_C(-395009.03), SIMDE_FLOAT32_C(138698.86), SIMDE_FLOAT32_C(-46547.72), SIMDE_FLOAT32_C(-333155.81), SIMDE_FLOAT32_C( 26639.30), SIMDE_FLOAT32_C(170117.73), SIMDE_FLOAT32_C(-21427.17)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 202.90), SIMDE_FLOAT32_C( -396.66), SIMDE_FLOAT32_C( -364.01), SIMDE_FLOAT32_C( 56.81), SIMDE_FLOAT32_C( -881.59), SIMDE_FLOAT32_C( 212.81), SIMDE_FLOAT32_C( -968.64), SIMDE_FLOAT32_C( -657.19), SIMDE_FLOAT32_C( 232.02), SIMDE_FLOAT32_C( 984.70), SIMDE_FLOAT32_C( -800.83), SIMDE_FLOAT32_C( -826.63), SIMDE_FLOAT32_C( 822.26), SIMDE_FLOAT32_C( -892.21), SIMDE_FLOAT32_C( -651.70), SIMDE_FLOAT32_C( -380.50)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -221.35), SIMDE_FLOAT32_C( -305.38), SIMDE_FLOAT32_C( 546.45), SIMDE_FLOAT32_C( -697.03), SIMDE_FLOAT32_C( 93.97), SIMDE_FLOAT32_C( 975.92), SIMDE_FLOAT32_C( 876.47), SIMDE_FLOAT32_C( 762.37), SIMDE_FLOAT32_C( 880.83), SIMDE_FLOAT32_C( -763.06), SIMDE_FLOAT32_C( -540.57), SIMDE_FLOAT32_C( -512.55), SIMDE_FLOAT32_C( -32.98), SIMDE_FLOAT32_C( 700.87), SIMDE_FLOAT32_C( -425.19), SIMDE_FLOAT32_C( -849.48)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-44911.91), SIMDE_FLOAT32_C(121132.03), SIMDE_FLOAT32_C(-198913.28), SIMDE_FLOAT32_C(-39598.28), SIMDE_FLOAT32_C(-82843.02), SIMDE_FLOAT32_C(207685.53), SIMDE_FLOAT32_C(-848983.88), SIMDE_FLOAT32_C(-501021.94), SIMDE_FLOAT32_C(204370.19), SIMDE_FLOAT32_C(-751385.19), SIMDE_FLOAT32_C(432904.69), SIMDE_FLOAT32_C(423689.19), SIMDE_FLOAT32_C(-27118.13), SIMDE_FLOAT32_C(-625323.25), SIMDE_FLOAT32_C(277096.34), SIMDE_FLOAT32_C(323227.12)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -25.40), SIMDE_FLOAT32_C( -267.80), SIMDE_FLOAT32_C( 353.79), SIMDE_FLOAT32_C( -35.72), SIMDE_FLOAT32_C( 125.21), SIMDE_FLOAT32_C( 137.22), SIMDE_FLOAT32_C( 310.88), SIMDE_FLOAT32_C( -724.55), SIMDE_FLOAT32_C( -538.86), SIMDE_FLOAT32_C( 39.65), SIMDE_FLOAT32_C( -229.28), SIMDE_FLOAT32_C( -842.78), SIMDE_FLOAT32_C( -14.75), SIMDE_FLOAT32_C( -859.98), SIMDE_FLOAT32_C( 215.44), SIMDE_FLOAT32_C( 762.83)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -551.49), SIMDE_FLOAT32_C( -42.33), SIMDE_FLOAT32_C( -926.18), SIMDE_FLOAT32_C( 36.96), SIMDE_FLOAT32_C( 954.39), SIMDE_FLOAT32_C( 874.71), SIMDE_FLOAT32_C( -375.00), SIMDE_FLOAT32_C( 949.07), SIMDE_FLOAT32_C( -16.18), SIMDE_FLOAT32_C( -931.82), SIMDE_FLOAT32_C( -687.15), SIMDE_FLOAT32_C( -416.23), SIMDE_FLOAT32_C( -313.36), SIMDE_FLOAT32_C( 905.90), SIMDE_FLOAT32_C( 1.93), SIMDE_FLOAT32_C( -464.98)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 14007.85), SIMDE_FLOAT32_C( 11335.97), SIMDE_FLOAT32_C(-327673.22), SIMDE_FLOAT32_C( -1320.21), SIMDE_FLOAT32_C(119499.17), SIMDE_FLOAT32_C(120027.71), SIMDE_FLOAT32_C(-116580.00), SIMDE_FLOAT32_C(-687648.69), SIMDE_FLOAT32_C( 8718.75), SIMDE_FLOAT32_C(-36946.66), SIMDE_FLOAT32_C(157549.75), SIMDE_FLOAT32_C(350790.34), SIMDE_FLOAT32_C( 4622.06), SIMDE_FLOAT32_C(-779055.88), SIMDE_FLOAT32_C( 415.80), SIMDE_FLOAT32_C(-354700.72)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -861.86), SIMDE_FLOAT32_C( 437.62), SIMDE_FLOAT32_C( -236.27), SIMDE_FLOAT32_C( 439.08), SIMDE_FLOAT32_C( 476.60), SIMDE_FLOAT32_C( -725.80), SIMDE_FLOAT32_C( 626.57), SIMDE_FLOAT32_C( -848.67), SIMDE_FLOAT32_C( -961.54), SIMDE_FLOAT32_C( -999.94), SIMDE_FLOAT32_C( 788.38), SIMDE_FLOAT32_C( -928.14), SIMDE_FLOAT32_C( 779.51), SIMDE_FLOAT32_C( 846.68), SIMDE_FLOAT32_C( -858.45), SIMDE_FLOAT32_C( 292.21)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -182.57), SIMDE_FLOAT32_C( -580.78), SIMDE_FLOAT32_C( 704.32), SIMDE_FLOAT32_C( -124.94), SIMDE_FLOAT32_C( -725.23), SIMDE_FLOAT32_C( -635.58), SIMDE_FLOAT32_C( 196.48), SIMDE_FLOAT32_C( -485.66), SIMDE_FLOAT32_C( -906.19), SIMDE_FLOAT32_C( -43.74), SIMDE_FLOAT32_C( 899.84), SIMDE_FLOAT32_C( -720.16), SIMDE_FLOAT32_C( 576.76), SIMDE_FLOAT32_C( 994.06), SIMDE_FLOAT32_C( -108.56), SIMDE_FLOAT32_C( 212.62)), simde_mm512_set_ps(SIMDE_FLOAT32_C(157349.78), SIMDE_FLOAT32_C(-254160.95), SIMDE_FLOAT32_C(-166409.69), SIMDE_FLOAT32_C(-54858.66), SIMDE_FLOAT32_C(-345644.62), SIMDE_FLOAT32_C(461303.97), SIMDE_FLOAT32_C(123108.47), SIMDE_FLOAT32_C(412165.06), SIMDE_FLOAT32_C(871337.94), SIMDE_FLOAT32_C( 43737.38), SIMDE_FLOAT32_C(709415.88), SIMDE_FLOAT32_C(668409.31), SIMDE_FLOAT32_C(449590.19), SIMDE_FLOAT32_C(841650.69), SIMDE_FLOAT32_C( 93193.33), SIMDE_FLOAT32_C( 62129.69)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 593.71), SIMDE_FLOAT32_C( -601.77), SIMDE_FLOAT32_C( -110.10), SIMDE_FLOAT32_C( 145.40), SIMDE_FLOAT32_C( 740.85), SIMDE_FLOAT32_C( 970.19), SIMDE_FLOAT32_C( -854.26), SIMDE_FLOAT32_C( -208.21), SIMDE_FLOAT32_C( 769.57), SIMDE_FLOAT32_C( -297.46), SIMDE_FLOAT32_C( -845.75), SIMDE_FLOAT32_C( -517.72), SIMDE_FLOAT32_C( -240.19), SIMDE_FLOAT32_C( -763.89), SIMDE_FLOAT32_C( -197.03), SIMDE_FLOAT32_C( -33.35)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -533.43), SIMDE_FLOAT32_C( 541.52), SIMDE_FLOAT32_C( -293.53), SIMDE_FLOAT32_C( 215.59), SIMDE_FLOAT32_C( -844.97), SIMDE_FLOAT32_C( -755.33), SIMDE_FLOAT32_C( 468.59), SIMDE_FLOAT32_C( -772.73), SIMDE_FLOAT32_C( 919.17), SIMDE_FLOAT32_C( 772.56), SIMDE_FLOAT32_C( -506.06), SIMDE_FLOAT32_C( 848.47), SIMDE_FLOAT32_C( 289.91), SIMDE_FLOAT32_C( 20.43), SIMDE_FLOAT32_C( -64.43), SIMDE_FLOAT32_C( -706.80)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-316702.72), SIMDE_FLOAT32_C(-325870.50), SIMDE_FLOAT32_C( 32317.65), SIMDE_FLOAT32_C( 31346.78), SIMDE_FLOAT32_C(-625996.00), SIMDE_FLOAT32_C(-732813.62), SIMDE_FLOAT32_C(-400297.69), SIMDE_FLOAT32_C(160890.11), SIMDE_FLOAT32_C(707365.62), SIMDE_FLOAT32_C(-229805.69), SIMDE_FLOAT32_C(428000.25), SIMDE_FLOAT32_C(-439269.84), SIMDE_FLOAT32_C(-69633.48), SIMDE_FLOAT32_C(-15606.27), SIMDE_FLOAT32_C( 12694.64), SIMDE_FLOAT32_C( 23571.78)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -180.32), SIMDE_FLOAT32_C( -914.18), SIMDE_FLOAT32_C( -674.78), SIMDE_FLOAT32_C( 230.92), SIMDE_FLOAT32_C( 619.73), SIMDE_FLOAT32_C( -630.60), SIMDE_FLOAT32_C( -418.47), SIMDE_FLOAT32_C( -865.96), SIMDE_FLOAT32_C( -670.71), SIMDE_FLOAT32_C( 17.47), SIMDE_FLOAT32_C( 61.90), SIMDE_FLOAT32_C( 647.63), SIMDE_FLOAT32_C( -455.42), SIMDE_FLOAT32_C( -850.08), SIMDE_FLOAT32_C( 132.45), SIMDE_FLOAT32_C( -354.79)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -729.37), SIMDE_FLOAT32_C( -945.53), SIMDE_FLOAT32_C( 198.36), SIMDE_FLOAT32_C( 643.43), SIMDE_FLOAT32_C( -994.87), SIMDE_FLOAT32_C( -154.38), SIMDE_FLOAT32_C( -536.68), SIMDE_FLOAT32_C( -548.49), SIMDE_FLOAT32_C( -292.06), SIMDE_FLOAT32_C( -771.61), SIMDE_FLOAT32_C( -487.89), SIMDE_FLOAT32_C( -482.82), SIMDE_FLOAT32_C( 131.08), SIMDE_FLOAT32_C( 366.17), SIMDE_FLOAT32_C( 127.55), SIMDE_FLOAT32_C( -936.85)), simde_mm512_set_ps(SIMDE_FLOAT32_C(131520.00), SIMDE_FLOAT32_C(864384.62), SIMDE_FLOAT32_C(-133849.36), SIMDE_FLOAT32_C(148580.86), SIMDE_FLOAT32_C(-616550.75), SIMDE_FLOAT32_C( 97352.02), SIMDE_FLOAT32_C(224584.48), SIMDE_FLOAT32_C(474970.41), SIMDE_FLOAT32_C(195887.56), SIMDE_FLOAT32_C(-13480.03), SIMDE_FLOAT32_C(-30200.39), SIMDE_FLOAT32_C(-312688.72), SIMDE_FLOAT32_C(-59696.46), SIMDE_FLOAT32_C(-311273.81), SIMDE_FLOAT32_C( 16894.00), SIMDE_FLOAT32_C(332385.00)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 405.10), SIMDE_FLOAT32_C( 457.94), SIMDE_FLOAT32_C( 120.94), SIMDE_FLOAT32_C( 944.02), SIMDE_FLOAT32_C( -205.34), SIMDE_FLOAT32_C( 155.90), SIMDE_FLOAT32_C( -913.86), SIMDE_FLOAT32_C( 170.83), SIMDE_FLOAT32_C( -194.64), SIMDE_FLOAT32_C( 505.24), SIMDE_FLOAT32_C( 874.71), SIMDE_FLOAT32_C( -847.65), SIMDE_FLOAT32_C( -72.00), SIMDE_FLOAT32_C( 772.81), SIMDE_FLOAT32_C( -151.00), SIMDE_FLOAT32_C( -489.53)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 923.98), SIMDE_FLOAT32_C( 597.38), SIMDE_FLOAT32_C( -237.17), SIMDE_FLOAT32_C( -159.78), SIMDE_FLOAT32_C( -45.00), SIMDE_FLOAT32_C( -167.53), SIMDE_FLOAT32_C( 681.28), SIMDE_FLOAT32_C( -654.80), SIMDE_FLOAT32_C( 504.91), SIMDE_FLOAT32_C( -353.27), SIMDE_FLOAT32_C( -789.06), SIMDE_FLOAT32_C( -566.71), SIMDE_FLOAT32_C( -516.77), SIMDE_FLOAT32_C( 957.42), SIMDE_FLOAT32_C( -465.35), SIMDE_FLOAT32_C( 491.11)), simde_mm512_set_ps(SIMDE_FLOAT32_C(374304.28), SIMDE_FLOAT32_C(273564.19), SIMDE_FLOAT32_C(-28683.34), SIMDE_FLOAT32_C(-150835.52), SIMDE_FLOAT32_C( 9240.30), SIMDE_FLOAT32_C(-26117.93), SIMDE_FLOAT32_C(-622594.56), SIMDE_FLOAT32_C(-111859.48), SIMDE_FLOAT32_C(-98275.68), SIMDE_FLOAT32_C(-178486.12), SIMDE_FLOAT32_C(-690198.69), SIMDE_FLOAT32_C(480371.75), SIMDE_FLOAT32_C( 37207.44), SIMDE_FLOAT32_C(739903.75), SIMDE_FLOAT32_C( 70267.85), SIMDE_FLOAT32_C(-240413.08)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_mul_ps(test_vec[i].a, test_vec[i].b); simde_assert_m512_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_mask_mul_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512 src; simde__mmask16 k; simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { simde_mm512_set_ps(SIMDE_FLOAT32_C( 229.27), SIMDE_FLOAT32_C( -114.91), SIMDE_FLOAT32_C( 520.43), SIMDE_FLOAT32_C( -755.19), SIMDE_FLOAT32_C( -68.64), SIMDE_FLOAT32_C( 632.30), SIMDE_FLOAT32_C( 98.14), SIMDE_FLOAT32_C( 455.87), SIMDE_FLOAT32_C( -873.22), SIMDE_FLOAT32_C( -223.86), SIMDE_FLOAT32_C( 181.32), SIMDE_FLOAT32_C( 364.92), SIMDE_FLOAT32_C( 946.51), SIMDE_FLOAT32_C( 22.05), SIMDE_FLOAT32_C( 444.47), SIMDE_FLOAT32_C( -746.17)), UINT16_C( 6152), simde_mm512_set_ps(SIMDE_FLOAT32_C( 702.34), SIMDE_FLOAT32_C( 368.95), SIMDE_FLOAT32_C( 161.91), SIMDE_FLOAT32_C( 459.04), SIMDE_FLOAT32_C( -828.47), SIMDE_FLOAT32_C( 943.39), SIMDE_FLOAT32_C( 202.26), SIMDE_FLOAT32_C( 112.87), SIMDE_FLOAT32_C( 382.91), SIMDE_FLOAT32_C( 124.14), SIMDE_FLOAT32_C( 954.24), SIMDE_FLOAT32_C( -214.34), SIMDE_FLOAT32_C( -998.93), SIMDE_FLOAT32_C( -255.92), SIMDE_FLOAT32_C( 57.01), SIMDE_FLOAT32_C( -391.73)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -206.12), SIMDE_FLOAT32_C( -322.43), SIMDE_FLOAT32_C( -456.42), SIMDE_FLOAT32_C( 258.98), SIMDE_FLOAT32_C( 291.55), SIMDE_FLOAT32_C( -459.80), SIMDE_FLOAT32_C( 286.61), SIMDE_FLOAT32_C( 15.13), SIMDE_FLOAT32_C( -772.68), SIMDE_FLOAT32_C( -503.52), SIMDE_FLOAT32_C( -599.88), SIMDE_FLOAT32_C( 107.93), SIMDE_FLOAT32_C( -3.35), SIMDE_FLOAT32_C( -993.69), SIMDE_FLOAT32_C( -325.33), SIMDE_FLOAT32_C( 755.40)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 229.27), SIMDE_FLOAT32_C( -114.91), SIMDE_FLOAT32_C( 520.43), SIMDE_FLOAT32_C(118882.19), SIMDE_FLOAT32_C(-241540.41), SIMDE_FLOAT32_C( 632.30), SIMDE_FLOAT32_C( 98.14), SIMDE_FLOAT32_C( 455.87), SIMDE_FLOAT32_C( -873.22), SIMDE_FLOAT32_C( -223.86), SIMDE_FLOAT32_C( 181.32), SIMDE_FLOAT32_C( 364.92), SIMDE_FLOAT32_C( 3346.42), SIMDE_FLOAT32_C( 22.05), SIMDE_FLOAT32_C( 444.47), SIMDE_FLOAT32_C( -746.17)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 974.52), SIMDE_FLOAT32_C( 42.80), SIMDE_FLOAT32_C( -282.69), SIMDE_FLOAT32_C( -590.27), SIMDE_FLOAT32_C( 398.09), SIMDE_FLOAT32_C( 498.04), SIMDE_FLOAT32_C( 449.97), SIMDE_FLOAT32_C( -357.92), SIMDE_FLOAT32_C( -441.74), SIMDE_FLOAT32_C( -180.77), SIMDE_FLOAT32_C( -289.47), SIMDE_FLOAT32_C( -620.49), SIMDE_FLOAT32_C( 763.75), SIMDE_FLOAT32_C( -763.91), SIMDE_FLOAT32_C( -576.44), SIMDE_FLOAT32_C( 698.61)), UINT16_C(15973), simde_mm512_set_ps(SIMDE_FLOAT32_C( -512.47), SIMDE_FLOAT32_C( -526.12), SIMDE_FLOAT32_C( 488.92), SIMDE_FLOAT32_C( -99.48), SIMDE_FLOAT32_C( 579.58), SIMDE_FLOAT32_C( 601.36), SIMDE_FLOAT32_C( 900.16), SIMDE_FLOAT32_C( 871.84), SIMDE_FLOAT32_C( 797.21), SIMDE_FLOAT32_C( 523.84), SIMDE_FLOAT32_C( -923.94), SIMDE_FLOAT32_C( -14.85), SIMDE_FLOAT32_C( -320.00), SIMDE_FLOAT32_C( -463.51), SIMDE_FLOAT32_C( -980.83), SIMDE_FLOAT32_C( -194.63)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 558.10), SIMDE_FLOAT32_C( -796.63), SIMDE_FLOAT32_C( -676.04), SIMDE_FLOAT32_C( 908.46), SIMDE_FLOAT32_C( -870.82), SIMDE_FLOAT32_C( 691.21), SIMDE_FLOAT32_C( -550.67), SIMDE_FLOAT32_C( 268.52), SIMDE_FLOAT32_C( 837.19), SIMDE_FLOAT32_C( -677.60), SIMDE_FLOAT32_C( -171.06), SIMDE_FLOAT32_C( -56.18), SIMDE_FLOAT32_C( 490.37), SIMDE_FLOAT32_C( -61.61), SIMDE_FLOAT32_C( -109.46), SIMDE_FLOAT32_C( -710.13)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 974.52), SIMDE_FLOAT32_C( 42.80), SIMDE_FLOAT32_C(-330529.47), SIMDE_FLOAT32_C(-90373.61), SIMDE_FLOAT32_C(-504709.88), SIMDE_FLOAT32_C(415666.06), SIMDE_FLOAT32_C(-495691.06), SIMDE_FLOAT32_C( -357.92), SIMDE_FLOAT32_C( -441.74), SIMDE_FLOAT32_C(-354954.00), SIMDE_FLOAT32_C(158049.17), SIMDE_FLOAT32_C( -620.49), SIMDE_FLOAT32_C( 763.75), SIMDE_FLOAT32_C( 28556.85), SIMDE_FLOAT32_C( -576.44), SIMDE_FLOAT32_C(138212.61)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -360.39), SIMDE_FLOAT32_C( 643.16), SIMDE_FLOAT32_C( -441.22), SIMDE_FLOAT32_C( 409.21), SIMDE_FLOAT32_C( 666.49), SIMDE_FLOAT32_C( 893.19), SIMDE_FLOAT32_C( -859.97), SIMDE_FLOAT32_C( -253.09), SIMDE_FLOAT32_C( -516.49), SIMDE_FLOAT32_C( -209.00), SIMDE_FLOAT32_C( -119.77), SIMDE_FLOAT32_C( -6.76), SIMDE_FLOAT32_C( 978.44), SIMDE_FLOAT32_C( 847.98), SIMDE_FLOAT32_C( 812.41), SIMDE_FLOAT32_C( -887.11)), UINT16_C(51212), simde_mm512_set_ps(SIMDE_FLOAT32_C( 923.25), SIMDE_FLOAT32_C( 251.46), SIMDE_FLOAT32_C( -49.04), SIMDE_FLOAT32_C( -876.73), SIMDE_FLOAT32_C( -239.21), SIMDE_FLOAT32_C( 952.17), SIMDE_FLOAT32_C( -247.44), SIMDE_FLOAT32_C( -278.60), SIMDE_FLOAT32_C( 877.29), SIMDE_FLOAT32_C( -266.07), SIMDE_FLOAT32_C( -839.50), SIMDE_FLOAT32_C( -281.99), SIMDE_FLOAT32_C( -652.15), SIMDE_FLOAT32_C( -877.11), SIMDE_FLOAT32_C( 527.90), SIMDE_FLOAT32_C( -842.26)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -453.51), SIMDE_FLOAT32_C( 863.74), SIMDE_FLOAT32_C( 571.67), SIMDE_FLOAT32_C( 552.19), SIMDE_FLOAT32_C( -903.81), SIMDE_FLOAT32_C( -274.48), SIMDE_FLOAT32_C( 891.44), SIMDE_FLOAT32_C( 28.40), SIMDE_FLOAT32_C( 753.09), SIMDE_FLOAT32_C( 415.38), SIMDE_FLOAT32_C( -974.66), SIMDE_FLOAT32_C( -864.92), SIMDE_FLOAT32_C( -696.24), SIMDE_FLOAT32_C( -279.21), SIMDE_FLOAT32_C( -548.00), SIMDE_FLOAT32_C( 3.33)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-418703.12), SIMDE_FLOAT32_C(217196.06), SIMDE_FLOAT32_C( -441.22), SIMDE_FLOAT32_C( 409.21), SIMDE_FLOAT32_C(216200.39), SIMDE_FLOAT32_C( 893.19), SIMDE_FLOAT32_C( -859.97), SIMDE_FLOAT32_C( -253.09), SIMDE_FLOAT32_C( -516.49), SIMDE_FLOAT32_C( -209.00), SIMDE_FLOAT32_C( -119.77), SIMDE_FLOAT32_C( -6.76), SIMDE_FLOAT32_C(454052.94), SIMDE_FLOAT32_C(244897.88), SIMDE_FLOAT32_C( 812.41), SIMDE_FLOAT32_C( -887.11)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 325.22), SIMDE_FLOAT32_C( 570.14), SIMDE_FLOAT32_C( 680.58), SIMDE_FLOAT32_C( -511.81), SIMDE_FLOAT32_C( -117.17), SIMDE_FLOAT32_C( -613.97), SIMDE_FLOAT32_C( 182.50), SIMDE_FLOAT32_C( 480.12), SIMDE_FLOAT32_C( -750.83), SIMDE_FLOAT32_C( 220.35), SIMDE_FLOAT32_C( 724.25), SIMDE_FLOAT32_C( 984.66), SIMDE_FLOAT32_C( 871.75), SIMDE_FLOAT32_C( -772.37), SIMDE_FLOAT32_C( 130.52), SIMDE_FLOAT32_C( 736.76)), UINT16_C(42108), simde_mm512_set_ps(SIMDE_FLOAT32_C( 960.66), SIMDE_FLOAT32_C( -509.07), SIMDE_FLOAT32_C( 477.59), SIMDE_FLOAT32_C( -132.21), SIMDE_FLOAT32_C( 254.98), SIMDE_FLOAT32_C( 600.06), SIMDE_FLOAT32_C( 43.49), SIMDE_FLOAT32_C( 466.19), SIMDE_FLOAT32_C( 22.31), SIMDE_FLOAT32_C( -551.17), SIMDE_FLOAT32_C( -167.87), SIMDE_FLOAT32_C( 278.33), SIMDE_FLOAT32_C( -232.38), SIMDE_FLOAT32_C( 650.45), SIMDE_FLOAT32_C( -297.78), SIMDE_FLOAT32_C( -280.35)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 562.20), SIMDE_FLOAT32_C( -287.04), SIMDE_FLOAT32_C( 876.78), SIMDE_FLOAT32_C( 669.33), SIMDE_FLOAT32_C( 940.57), SIMDE_FLOAT32_C( -280.66), SIMDE_FLOAT32_C( 24.42), SIMDE_FLOAT32_C( -147.12), SIMDE_FLOAT32_C( -57.84), SIMDE_FLOAT32_C( 841.25), SIMDE_FLOAT32_C( -446.10), SIMDE_FLOAT32_C( -973.24), SIMDE_FLOAT32_C( 869.66), SIMDE_FLOAT32_C( 982.80), SIMDE_FLOAT32_C( -763.04), SIMDE_FLOAT32_C( -245.47)), simde_mm512_set_ps(SIMDE_FLOAT32_C(540083.06), SIMDE_FLOAT32_C( 570.14), SIMDE_FLOAT32_C(418741.38), SIMDE_FLOAT32_C( -511.81), SIMDE_FLOAT32_C( -117.17), SIMDE_FLOAT32_C(-168412.84), SIMDE_FLOAT32_C( 182.50), SIMDE_FLOAT32_C( 480.12), SIMDE_FLOAT32_C( -750.83), SIMDE_FLOAT32_C(-463671.75), SIMDE_FLOAT32_C( 74886.80), SIMDE_FLOAT32_C(-270881.88), SIMDE_FLOAT32_C(-202091.59), SIMDE_FLOAT32_C(639262.25), SIMDE_FLOAT32_C( 130.52), SIMDE_FLOAT32_C( 736.76)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -770.00), SIMDE_FLOAT32_C( 327.27), SIMDE_FLOAT32_C( -642.48), SIMDE_FLOAT32_C( 864.18), SIMDE_FLOAT32_C( -775.21), SIMDE_FLOAT32_C( -92.35), SIMDE_FLOAT32_C( -864.16), SIMDE_FLOAT32_C( 80.78), SIMDE_FLOAT32_C( -974.40), SIMDE_FLOAT32_C( -299.06), SIMDE_FLOAT32_C( -754.35), SIMDE_FLOAT32_C( -147.65), SIMDE_FLOAT32_C( -797.65), SIMDE_FLOAT32_C( 829.71), SIMDE_FLOAT32_C( 269.35), SIMDE_FLOAT32_C( 372.83)), UINT16_C(61342), simde_mm512_set_ps(SIMDE_FLOAT32_C( -220.25), SIMDE_FLOAT32_C( 802.77), SIMDE_FLOAT32_C( -755.69), SIMDE_FLOAT32_C( -58.33), SIMDE_FLOAT32_C( 587.03), SIMDE_FLOAT32_C( 375.88), SIMDE_FLOAT32_C( 775.50), SIMDE_FLOAT32_C( -179.11), SIMDE_FLOAT32_C( 184.41), SIMDE_FLOAT32_C( -603.91), SIMDE_FLOAT32_C( -170.90), SIMDE_FLOAT32_C( -781.45), SIMDE_FLOAT32_C( -860.97), SIMDE_FLOAT32_C( -616.84), SIMDE_FLOAT32_C( 704.72), SIMDE_FLOAT32_C( -251.07)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -62.78), SIMDE_FLOAT32_C( -149.86), SIMDE_FLOAT32_C( 102.32), SIMDE_FLOAT32_C( -271.05), SIMDE_FLOAT32_C( -465.52), SIMDE_FLOAT32_C( 979.82), SIMDE_FLOAT32_C( 499.92), SIMDE_FLOAT32_C( 32.84), SIMDE_FLOAT32_C( 792.53), SIMDE_FLOAT32_C( 466.38), SIMDE_FLOAT32_C( -301.08), SIMDE_FLOAT32_C( -381.33), SIMDE_FLOAT32_C( -752.23), SIMDE_FLOAT32_C( 18.86), SIMDE_FLOAT32_C( -462.80), SIMDE_FLOAT32_C( -168.70)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 13827.29), SIMDE_FLOAT32_C(-120303.12), SIMDE_FLOAT32_C(-77322.20), SIMDE_FLOAT32_C( 864.18), SIMDE_FLOAT32_C(-273274.22), SIMDE_FLOAT32_C(368294.75), SIMDE_FLOAT32_C(387687.97), SIMDE_FLOAT32_C( -5881.97), SIMDE_FLOAT32_C(146150.47), SIMDE_FLOAT32_C( -299.06), SIMDE_FLOAT32_C( -754.35), SIMDE_FLOAT32_C(297990.31), SIMDE_FLOAT32_C(647647.44), SIMDE_FLOAT32_C(-11633.60), SIMDE_FLOAT32_C(-326144.41), SIMDE_FLOAT32_C( 372.83)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -62.71), SIMDE_FLOAT32_C( 768.74), SIMDE_FLOAT32_C( 172.84), SIMDE_FLOAT32_C( -481.12), SIMDE_FLOAT32_C( 290.59), SIMDE_FLOAT32_C( -598.30), SIMDE_FLOAT32_C( -212.50), SIMDE_FLOAT32_C( 657.51), SIMDE_FLOAT32_C( -400.85), SIMDE_FLOAT32_C( 353.00), SIMDE_FLOAT32_C( -898.98), SIMDE_FLOAT32_C( -461.75), SIMDE_FLOAT32_C( -690.46), SIMDE_FLOAT32_C( -171.93), SIMDE_FLOAT32_C( 135.84), SIMDE_FLOAT32_C( -604.52)), UINT16_C(61129), simde_mm512_set_ps(SIMDE_FLOAT32_C( -267.02), SIMDE_FLOAT32_C( -31.24), SIMDE_FLOAT32_C( -859.84), SIMDE_FLOAT32_C( -104.89), SIMDE_FLOAT32_C( -39.96), SIMDE_FLOAT32_C( 179.68), SIMDE_FLOAT32_C( -71.01), SIMDE_FLOAT32_C( 557.26), SIMDE_FLOAT32_C( 127.39), SIMDE_FLOAT32_C( 271.58), SIMDE_FLOAT32_C( -162.76), SIMDE_FLOAT32_C( 248.01), SIMDE_FLOAT32_C( 856.68), SIMDE_FLOAT32_C( 762.32), SIMDE_FLOAT32_C( 432.07), SIMDE_FLOAT32_C( 743.06)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -846.50), SIMDE_FLOAT32_C( 988.92), SIMDE_FLOAT32_C( 696.05), SIMDE_FLOAT32_C( 647.58), SIMDE_FLOAT32_C( 780.95), SIMDE_FLOAT32_C( 46.01), SIMDE_FLOAT32_C( -77.15), SIMDE_FLOAT32_C( -747.70), SIMDE_FLOAT32_C( -416.84), SIMDE_FLOAT32_C( 679.81), SIMDE_FLOAT32_C( -124.78), SIMDE_FLOAT32_C( -976.50), SIMDE_FLOAT32_C( -745.93), SIMDE_FLOAT32_C( 116.64), SIMDE_FLOAT32_C( -479.84), SIMDE_FLOAT32_C( 919.24)), simde_mm512_set_ps(SIMDE_FLOAT32_C(226032.42), SIMDE_FLOAT32_C(-30893.86), SIMDE_FLOAT32_C(-598491.62), SIMDE_FLOAT32_C( -481.12), SIMDE_FLOAT32_C(-31206.76), SIMDE_FLOAT32_C( 8267.08), SIMDE_FLOAT32_C( 5478.42), SIMDE_FLOAT32_C( 657.51), SIMDE_FLOAT32_C(-53101.25), SIMDE_FLOAT32_C(184622.80), SIMDE_FLOAT32_C( -898.98), SIMDE_FLOAT32_C( -461.75), SIMDE_FLOAT32_C(-639023.31), SIMDE_FLOAT32_C( -171.93), SIMDE_FLOAT32_C( 135.84), SIMDE_FLOAT32_C(683050.44)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 722.50), SIMDE_FLOAT32_C( 1.66), SIMDE_FLOAT32_C( -227.96), SIMDE_FLOAT32_C( -417.42), SIMDE_FLOAT32_C( 237.94), SIMDE_FLOAT32_C( 860.12), SIMDE_FLOAT32_C( -692.46), SIMDE_FLOAT32_C( 6.00), SIMDE_FLOAT32_C( -979.01), SIMDE_FLOAT32_C( 20.38), SIMDE_FLOAT32_C( 85.42), SIMDE_FLOAT32_C( -156.50), SIMDE_FLOAT32_C( 23.29), SIMDE_FLOAT32_C( -569.89), SIMDE_FLOAT32_C( 24.40), SIMDE_FLOAT32_C( 257.32)), UINT16_C(53230), simde_mm512_set_ps(SIMDE_FLOAT32_C( -804.04), SIMDE_FLOAT32_C( -689.70), SIMDE_FLOAT32_C( 435.74), SIMDE_FLOAT32_C( 49.95), SIMDE_FLOAT32_C( 554.19), SIMDE_FLOAT32_C( 936.14), SIMDE_FLOAT32_C( 554.63), SIMDE_FLOAT32_C( -242.02), SIMDE_FLOAT32_C( -909.08), SIMDE_FLOAT32_C( -184.42), SIMDE_FLOAT32_C( -668.15), SIMDE_FLOAT32_C( 202.23), SIMDE_FLOAT32_C( 620.00), SIMDE_FLOAT32_C( -11.65), SIMDE_FLOAT32_C( -295.73), SIMDE_FLOAT32_C( -637.18)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -700.26), SIMDE_FLOAT32_C( -48.09), SIMDE_FLOAT32_C( -661.22), SIMDE_FLOAT32_C( -536.85), SIMDE_FLOAT32_C( -172.68), SIMDE_FLOAT32_C( 263.32), SIMDE_FLOAT32_C( -189.80), SIMDE_FLOAT32_C( -595.66), SIMDE_FLOAT32_C( 244.26), SIMDE_FLOAT32_C( -637.08), SIMDE_FLOAT32_C( -871.35), SIMDE_FLOAT32_C( -417.36), SIMDE_FLOAT32_C( -313.14), SIMDE_FLOAT32_C( -902.95), SIMDE_FLOAT32_C( -801.13), SIMDE_FLOAT32_C( -357.00)), simde_mm512_set_ps(SIMDE_FLOAT32_C(563037.06), SIMDE_FLOAT32_C( 33167.67), SIMDE_FLOAT32_C( -227.96), SIMDE_FLOAT32_C( -417.42), SIMDE_FLOAT32_C(-95697.52), SIMDE_FLOAT32_C(246504.39), SIMDE_FLOAT32_C(-105268.77), SIMDE_FLOAT32_C(144161.62), SIMDE_FLOAT32_C(-222051.88), SIMDE_FLOAT32_C(117490.30), SIMDE_FLOAT32_C(582192.50), SIMDE_FLOAT32_C( -156.50), SIMDE_FLOAT32_C(-194146.81), SIMDE_FLOAT32_C( 10519.37), SIMDE_FLOAT32_C(236918.19), SIMDE_FLOAT32_C( 257.32)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 113.45), SIMDE_FLOAT32_C( -47.38), SIMDE_FLOAT32_C( 434.74), SIMDE_FLOAT32_C( 133.40), SIMDE_FLOAT32_C( 37.09), SIMDE_FLOAT32_C( -195.77), SIMDE_FLOAT32_C( -878.67), SIMDE_FLOAT32_C( 758.19), SIMDE_FLOAT32_C( -87.72), SIMDE_FLOAT32_C( -903.51), SIMDE_FLOAT32_C( -821.22), SIMDE_FLOAT32_C( -102.72), SIMDE_FLOAT32_C( 329.70), SIMDE_FLOAT32_C( 752.97), SIMDE_FLOAT32_C( -341.79), SIMDE_FLOAT32_C( -130.85)), UINT16_C(62361), simde_mm512_set_ps(SIMDE_FLOAT32_C( -994.03), SIMDE_FLOAT32_C( -716.03), SIMDE_FLOAT32_C( -435.51), SIMDE_FLOAT32_C( -960.04), SIMDE_FLOAT32_C( 32.26), SIMDE_FLOAT32_C( -474.76), SIMDE_FLOAT32_C( -182.77), SIMDE_FLOAT32_C( -229.72), SIMDE_FLOAT32_C( -949.63), SIMDE_FLOAT32_C( -938.60), SIMDE_FLOAT32_C( -855.41), SIMDE_FLOAT32_C( -231.99), SIMDE_FLOAT32_C( 115.21), SIMDE_FLOAT32_C( 716.21), SIMDE_FLOAT32_C( -407.80), SIMDE_FLOAT32_C( 373.68)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 186.12), SIMDE_FLOAT32_C( -224.01), SIMDE_FLOAT32_C( 199.06), SIMDE_FLOAT32_C( -162.12), SIMDE_FLOAT32_C( -212.56), SIMDE_FLOAT32_C( -205.93), SIMDE_FLOAT32_C( -577.22), SIMDE_FLOAT32_C( -567.47), SIMDE_FLOAT32_C( -916.44), SIMDE_FLOAT32_C( 780.43), SIMDE_FLOAT32_C( -604.79), SIMDE_FLOAT32_C( 540.03), SIMDE_FLOAT32_C( -974.56), SIMDE_FLOAT32_C( -517.05), SIMDE_FLOAT32_C( -241.22), SIMDE_FLOAT32_C( 102.85)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-185008.86), SIMDE_FLOAT32_C(160397.89), SIMDE_FLOAT32_C(-86692.62), SIMDE_FLOAT32_C(155641.67), SIMDE_FLOAT32_C( 37.09), SIMDE_FLOAT32_C( -195.77), SIMDE_FLOAT32_C(105498.50), SIMDE_FLOAT32_C(130359.20), SIMDE_FLOAT32_C(870278.94), SIMDE_FLOAT32_C( -903.51), SIMDE_FLOAT32_C( -821.22), SIMDE_FLOAT32_C(-125281.57), SIMDE_FLOAT32_C(-112279.05), SIMDE_FLOAT32_C( 752.97), SIMDE_FLOAT32_C( -341.79), SIMDE_FLOAT32_C( 38432.99)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_mask_mul_ps(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_maskz_mul_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask16 k; simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { UINT16_C(47289), simde_mm512_set_ps(SIMDE_FLOAT32_C( -658.59), SIMDE_FLOAT32_C( -110.05), SIMDE_FLOAT32_C( -529.45), SIMDE_FLOAT32_C( 46.72), SIMDE_FLOAT32_C( -62.14), SIMDE_FLOAT32_C( 483.09), SIMDE_FLOAT32_C( 301.22), SIMDE_FLOAT32_C( -113.80), SIMDE_FLOAT32_C( -597.24), SIMDE_FLOAT32_C( 55.35), SIMDE_FLOAT32_C( 938.56), SIMDE_FLOAT32_C( -50.24), SIMDE_FLOAT32_C( 49.65), SIMDE_FLOAT32_C( -991.96), SIMDE_FLOAT32_C( 606.92), SIMDE_FLOAT32_C( 149.59)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 375.27), SIMDE_FLOAT32_C( -498.85), SIMDE_FLOAT32_C( -342.99), SIMDE_FLOAT32_C( 861.28), SIMDE_FLOAT32_C( 526.60), SIMDE_FLOAT32_C( -759.33), SIMDE_FLOAT32_C( 328.64), SIMDE_FLOAT32_C( 698.74), SIMDE_FLOAT32_C( 615.23), SIMDE_FLOAT32_C( 873.23), SIMDE_FLOAT32_C( 127.27), SIMDE_FLOAT32_C( 719.43), SIMDE_FLOAT32_C( -625.99), SIMDE_FLOAT32_C( -942.07), SIMDE_FLOAT32_C( 458.53), SIMDE_FLOAT32_C( 322.40)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-247149.08), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(181596.05), SIMDE_FLOAT32_C( 40239.00), SIMDE_FLOAT32_C(-32722.92), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-367439.94), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(119450.53), SIMDE_FLOAT32_C(-36144.16), SIMDE_FLOAT32_C(-31080.40), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 48227.81)) }, { UINT16_C(37892), simde_mm512_set_ps(SIMDE_FLOAT32_C( -265.18), SIMDE_FLOAT32_C( 394.19), SIMDE_FLOAT32_C( 565.39), SIMDE_FLOAT32_C( -167.00), SIMDE_FLOAT32_C( 350.77), SIMDE_FLOAT32_C( 863.35), SIMDE_FLOAT32_C( -537.11), SIMDE_FLOAT32_C( -601.68), SIMDE_FLOAT32_C( -980.35), SIMDE_FLOAT32_C( -851.86), SIMDE_FLOAT32_C( -959.52), SIMDE_FLOAT32_C( -856.72), SIMDE_FLOAT32_C( 393.09), SIMDE_FLOAT32_C( -263.92), SIMDE_FLOAT32_C( 261.53), SIMDE_FLOAT32_C( 409.88)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -261.28), SIMDE_FLOAT32_C( -762.17), SIMDE_FLOAT32_C( 850.55), SIMDE_FLOAT32_C( -684.91), SIMDE_FLOAT32_C( 69.61), SIMDE_FLOAT32_C( 771.73), SIMDE_FLOAT32_C( -506.14), SIMDE_FLOAT32_C( -578.92), SIMDE_FLOAT32_C( 322.24), SIMDE_FLOAT32_C( 192.10), SIMDE_FLOAT32_C( -768.24), SIMDE_FLOAT32_C( -528.40), SIMDE_FLOAT32_C( -871.80), SIMDE_FLOAT32_C( -55.77), SIMDE_FLOAT32_C( 401.18), SIMDE_FLOAT32_C( -914.96)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 69286.23), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(114379.97), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(666273.06), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 14718.82), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(21270), simde_mm512_set_ps(SIMDE_FLOAT32_C( 124.49), SIMDE_FLOAT32_C( 701.35), SIMDE_FLOAT32_C( 498.79), SIMDE_FLOAT32_C( 832.83), SIMDE_FLOAT32_C( -974.32), SIMDE_FLOAT32_C( -582.20), SIMDE_FLOAT32_C( -288.73), SIMDE_FLOAT32_C( 146.91), SIMDE_FLOAT32_C( 866.64), SIMDE_FLOAT32_C( 902.02), SIMDE_FLOAT32_C( -35.40), SIMDE_FLOAT32_C( -390.90), SIMDE_FLOAT32_C( -670.61), SIMDE_FLOAT32_C( -294.26), SIMDE_FLOAT32_C( 904.08), SIMDE_FLOAT32_C( -920.18)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 282.01), SIMDE_FLOAT32_C( 688.91), SIMDE_FLOAT32_C( 333.36), SIMDE_FLOAT32_C( 260.07), SIMDE_FLOAT32_C( 576.07), SIMDE_FLOAT32_C( 133.85), SIMDE_FLOAT32_C( 534.76), SIMDE_FLOAT32_C( -643.54), SIMDE_FLOAT32_C( -999.40), SIMDE_FLOAT32_C( 257.62), SIMDE_FLOAT32_C( 420.35), SIMDE_FLOAT32_C( -394.28), SIMDE_FLOAT32_C( 211.89), SIMDE_FLOAT32_C( 496.82), SIMDE_FLOAT32_C( -993.25), SIMDE_FLOAT32_C( -590.67)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(483167.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(216594.11), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-154401.27), SIMDE_FLOAT32_C(-94542.46), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(154124.05), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-146194.27), SIMDE_FLOAT32_C(-897977.50), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(31632), simde_mm512_set_ps(SIMDE_FLOAT32_C( 50.34), SIMDE_FLOAT32_C( -97.56), SIMDE_FLOAT32_C( 263.08), SIMDE_FLOAT32_C( -308.40), SIMDE_FLOAT32_C( 354.47), SIMDE_FLOAT32_C( -70.93), SIMDE_FLOAT32_C( 486.01), SIMDE_FLOAT32_C( -938.29), SIMDE_FLOAT32_C( -47.71), SIMDE_FLOAT32_C( -345.27), SIMDE_FLOAT32_C( 12.62), SIMDE_FLOAT32_C( 733.96), SIMDE_FLOAT32_C( 753.32), SIMDE_FLOAT32_C( -397.23), SIMDE_FLOAT32_C( 708.66), SIMDE_FLOAT32_C( 404.50)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 875.93), SIMDE_FLOAT32_C( -911.86), SIMDE_FLOAT32_C( 784.71), SIMDE_FLOAT32_C( 64.13), SIMDE_FLOAT32_C( -731.87), SIMDE_FLOAT32_C( -647.62), SIMDE_FLOAT32_C( 107.77), SIMDE_FLOAT32_C( 557.50), SIMDE_FLOAT32_C( -491.55), SIMDE_FLOAT32_C( 414.15), SIMDE_FLOAT32_C( -504.43), SIMDE_FLOAT32_C( -27.13), SIMDE_FLOAT32_C( -947.21), SIMDE_FLOAT32_C( -164.39), SIMDE_FLOAT32_C( 287.82), SIMDE_FLOAT32_C( 414.18)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 88961.05), SIMDE_FLOAT32_C(206441.50), SIMDE_FLOAT32_C(-19777.69), SIMDE_FLOAT32_C(-259425.95), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 52377.30), SIMDE_FLOAT32_C(-523096.66), SIMDE_FLOAT32_C( 23451.85), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-19912.33), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(47299), simde_mm512_set_ps(SIMDE_FLOAT32_C( -544.18), SIMDE_FLOAT32_C( -903.28), SIMDE_FLOAT32_C( 559.95), SIMDE_FLOAT32_C( -483.39), SIMDE_FLOAT32_C( -994.67), SIMDE_FLOAT32_C( -750.48), SIMDE_FLOAT32_C( 312.50), SIMDE_FLOAT32_C( 110.85), SIMDE_FLOAT32_C( -430.65), SIMDE_FLOAT32_C( 39.80), SIMDE_FLOAT32_C( -26.24), SIMDE_FLOAT32_C( 378.89), SIMDE_FLOAT32_C( -139.95), SIMDE_FLOAT32_C( -775.11), SIMDE_FLOAT32_C( -758.69), SIMDE_FLOAT32_C( 318.51)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 548.46), SIMDE_FLOAT32_C( 682.86), SIMDE_FLOAT32_C( -635.50), SIMDE_FLOAT32_C( 737.24), SIMDE_FLOAT32_C( 707.78), SIMDE_FLOAT32_C( -907.72), SIMDE_FLOAT32_C( -791.08), SIMDE_FLOAT32_C( 176.45), SIMDE_FLOAT32_C( 64.55), SIMDE_FLOAT32_C( 55.56), SIMDE_FLOAT32_C( -108.86), SIMDE_FLOAT32_C( 505.77), SIMDE_FLOAT32_C( 224.25), SIMDE_FLOAT32_C( 639.22), SIMDE_FLOAT32_C( 369.92), SIMDE_FLOAT32_C( -708.31)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-298460.97), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-355848.22), SIMDE_FLOAT32_C(-356374.44), SIMDE_FLOAT32_C(-704007.56), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-27798.46), SIMDE_FLOAT32_C( 2211.29), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-280654.62), SIMDE_FLOAT32_C(-225603.83)) }, { UINT16_C(40773), simde_mm512_set_ps(SIMDE_FLOAT32_C( -86.71), SIMDE_FLOAT32_C( -432.63), SIMDE_FLOAT32_C( -433.37), SIMDE_FLOAT32_C( -539.66), SIMDE_FLOAT32_C( 559.54), SIMDE_FLOAT32_C( -287.88), SIMDE_FLOAT32_C( -991.42), SIMDE_FLOAT32_C( -690.07), SIMDE_FLOAT32_C( 345.70), SIMDE_FLOAT32_C( 616.00), SIMDE_FLOAT32_C( 341.79), SIMDE_FLOAT32_C( -307.10), SIMDE_FLOAT32_C( 709.24), SIMDE_FLOAT32_C( -920.15), SIMDE_FLOAT32_C( 404.20), SIMDE_FLOAT32_C( 52.51)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 815.79), SIMDE_FLOAT32_C( -788.62), SIMDE_FLOAT32_C( -370.04), SIMDE_FLOAT32_C( -939.88), SIMDE_FLOAT32_C( -591.16), SIMDE_FLOAT32_C( -819.13), SIMDE_FLOAT32_C( 932.20), SIMDE_FLOAT32_C( -243.11), SIMDE_FLOAT32_C( -87.62), SIMDE_FLOAT32_C( 725.93), SIMDE_FLOAT32_C( -374.67), SIMDE_FLOAT32_C( 301.09), SIMDE_FLOAT32_C( -174.47), SIMDE_FLOAT32_C( -898.14), SIMDE_FLOAT32_C( -924.02), SIMDE_FLOAT32_C( -333.66)), simde_mm512_set_ps(SIMDE_FLOAT32_C(-70737.15), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(507215.62), SIMDE_FLOAT32_C(-330777.62), SIMDE_FLOAT32_C(235811.16), SIMDE_FLOAT32_C(-924201.75), SIMDE_FLOAT32_C(167762.92), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(447172.88), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(826423.56), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-17520.49)) }, { UINT16_C(61172), simde_mm512_set_ps(SIMDE_FLOAT32_C( -690.89), SIMDE_FLOAT32_C( -270.55), SIMDE_FLOAT32_C( 476.48), SIMDE_FLOAT32_C( 219.51), SIMDE_FLOAT32_C( 642.18), SIMDE_FLOAT32_C( -588.29), SIMDE_FLOAT32_C( -762.74), SIMDE_FLOAT32_C( -33.80), SIMDE_FLOAT32_C( -786.44), SIMDE_FLOAT32_C( -855.21), SIMDE_FLOAT32_C( 145.12), SIMDE_FLOAT32_C( 50.96), SIMDE_FLOAT32_C( 710.85), SIMDE_FLOAT32_C( 234.05), SIMDE_FLOAT32_C( 345.96), SIMDE_FLOAT32_C( 118.24)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -143.72), SIMDE_FLOAT32_C( -461.06), SIMDE_FLOAT32_C( 866.17), SIMDE_FLOAT32_C( -706.49), SIMDE_FLOAT32_C( 594.76), SIMDE_FLOAT32_C( 424.92), SIMDE_FLOAT32_C( 166.20), SIMDE_FLOAT32_C( 776.85), SIMDE_FLOAT32_C( -191.32), SIMDE_FLOAT32_C( -329.15), SIMDE_FLOAT32_C( -651.62), SIMDE_FLOAT32_C( -22.33), SIMDE_FLOAT32_C( -429.53), SIMDE_FLOAT32_C( 758.36), SIMDE_FLOAT32_C( 926.10), SIMDE_FLOAT32_C( 17.27)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 99294.71), SIMDE_FLOAT32_C(124739.77), SIMDE_FLOAT32_C(412712.69), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(381942.97), SIMDE_FLOAT32_C(-249976.19), SIMDE_FLOAT32_C(-126767.38), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(150461.70), SIMDE_FLOAT32_C(281492.38), SIMDE_FLOAT32_C(-94563.09), SIMDE_FLOAT32_C( -1137.94), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(177494.16), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(31704), simde_mm512_set_ps(SIMDE_FLOAT32_C( 761.96), SIMDE_FLOAT32_C( 858.35), SIMDE_FLOAT32_C( 360.42), SIMDE_FLOAT32_C( 321.87), SIMDE_FLOAT32_C( -444.03), SIMDE_FLOAT32_C( -177.67), SIMDE_FLOAT32_C( -802.25), SIMDE_FLOAT32_C( 408.95), SIMDE_FLOAT32_C( -337.63), SIMDE_FLOAT32_C( 948.17), SIMDE_FLOAT32_C( 248.80), SIMDE_FLOAT32_C( 170.02), SIMDE_FLOAT32_C( 939.41), SIMDE_FLOAT32_C( -580.14), SIMDE_FLOAT32_C( 237.93), SIMDE_FLOAT32_C( -698.11)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 786.48), SIMDE_FLOAT32_C( -475.23), SIMDE_FLOAT32_C( 258.84), SIMDE_FLOAT32_C( 824.39), SIMDE_FLOAT32_C( -282.56), SIMDE_FLOAT32_C( 765.76), SIMDE_FLOAT32_C( -709.23), SIMDE_FLOAT32_C( 701.93), SIMDE_FLOAT32_C( -367.75), SIMDE_FLOAT32_C( 404.32), SIMDE_FLOAT32_C( -447.00), SIMDE_FLOAT32_C( 864.94), SIMDE_FLOAT32_C( 954.31), SIMDE_FLOAT32_C( 410.35), SIMDE_FLOAT32_C( -565.19), SIMDE_FLOAT32_C( -545.67)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(-407913.66), SIMDE_FLOAT32_C( 93291.12), SIMDE_FLOAT32_C(265346.41), SIMDE_FLOAT32_C(125465.12), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(568979.75), SIMDE_FLOAT32_C(287054.28), SIMDE_FLOAT32_C(124163.44), SIMDE_FLOAT32_C(383364.09), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C(147057.11), SIMDE_FLOAT32_C(896488.31), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_maskz_mul_ps(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_mul_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { simde_mm512_set_pd(SIMDE_FLOAT64_C( -736.65), SIMDE_FLOAT64_C( -764.30), SIMDE_FLOAT64_C( 675.25), SIMDE_FLOAT64_C( -182.15), SIMDE_FLOAT64_C( -748.44), SIMDE_FLOAT64_C( 82.10), SIMDE_FLOAT64_C( 684.52), SIMDE_FLOAT64_C( -343.09)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -267.96), SIMDE_FLOAT64_C( -536.57), SIMDE_FLOAT64_C( -934.00), SIMDE_FLOAT64_C( 653.62), SIMDE_FLOAT64_C( 984.11), SIMDE_FLOAT64_C( 140.30), SIMDE_FLOAT64_C( -580.05), SIMDE_FLOAT64_C( -915.75)), simde_mm512_set_pd(SIMDE_FLOAT64_C(197392.73), SIMDE_FLOAT64_C(410100.45), SIMDE_FLOAT64_C(-630683.50), SIMDE_FLOAT64_C(-119056.88), SIMDE_FLOAT64_C(-736547.29), SIMDE_FLOAT64_C(11518.63), SIMDE_FLOAT64_C(-397055.83), SIMDE_FLOAT64_C(314184.67)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -775.40), SIMDE_FLOAT64_C( -210.92), SIMDE_FLOAT64_C( 987.42), SIMDE_FLOAT64_C( 542.45), SIMDE_FLOAT64_C( -745.60), SIMDE_FLOAT64_C( -50.38), SIMDE_FLOAT64_C( 163.82), SIMDE_FLOAT64_C( -164.62)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 263.91), SIMDE_FLOAT64_C( -350.89), SIMDE_FLOAT64_C( -318.01), SIMDE_FLOAT64_C( -980.00), SIMDE_FLOAT64_C( 872.18), SIMDE_FLOAT64_C( 80.96), SIMDE_FLOAT64_C( 145.89), SIMDE_FLOAT64_C( 832.89)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-204635.81), SIMDE_FLOAT64_C(74009.72), SIMDE_FLOAT64_C(-314009.43), SIMDE_FLOAT64_C(-531601.00), SIMDE_FLOAT64_C(-650297.41), SIMDE_FLOAT64_C(-4078.76), SIMDE_FLOAT64_C(23899.70), SIMDE_FLOAT64_C(-137110.35)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 606.76), SIMDE_FLOAT64_C( -664.92), SIMDE_FLOAT64_C( 454.81), SIMDE_FLOAT64_C( 299.40), SIMDE_FLOAT64_C( -524.63), SIMDE_FLOAT64_C( 40.68), SIMDE_FLOAT64_C( 218.77), SIMDE_FLOAT64_C( 35.82)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -757.25), SIMDE_FLOAT64_C( 594.07), SIMDE_FLOAT64_C( 304.96), SIMDE_FLOAT64_C( -155.47), SIMDE_FLOAT64_C( 635.03), SIMDE_FLOAT64_C( 654.85), SIMDE_FLOAT64_C( 777.61), SIMDE_FLOAT64_C( -598.19)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-459469.01), SIMDE_FLOAT64_C(-395009.02), SIMDE_FLOAT64_C(138698.86), SIMDE_FLOAT64_C(-46547.72), SIMDE_FLOAT64_C(-333155.79), SIMDE_FLOAT64_C(26639.30), SIMDE_FLOAT64_C(170117.74), SIMDE_FLOAT64_C(-21427.17)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -910.74), SIMDE_FLOAT64_C( -302.10), SIMDE_FLOAT64_C( 937.08), SIMDE_FLOAT64_C( 618.13), SIMDE_FLOAT64_C( 85.12), SIMDE_FLOAT64_C( 3.50), SIMDE_FLOAT64_C( -122.84), SIMDE_FLOAT64_C( 290.22)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 392.21), SIMDE_FLOAT64_C( 139.00), SIMDE_FLOAT64_C( -878.97), SIMDE_FLOAT64_C( 778.57), SIMDE_FLOAT64_C( -810.83), SIMDE_FLOAT64_C( 413.49), SIMDE_FLOAT64_C( 505.44), SIMDE_FLOAT64_C( 291.58)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-357201.34), SIMDE_FLOAT64_C(-41991.90), SIMDE_FLOAT64_C(-823665.21), SIMDE_FLOAT64_C(481257.47), SIMDE_FLOAT64_C(-69017.85), SIMDE_FLOAT64_C( 1447.22), SIMDE_FLOAT64_C(-62088.25), SIMDE_FLOAT64_C(84622.35)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 232.02), SIMDE_FLOAT64_C( 984.70), SIMDE_FLOAT64_C( -800.83), SIMDE_FLOAT64_C( -826.63), SIMDE_FLOAT64_C( 822.26), SIMDE_FLOAT64_C( -892.21), SIMDE_FLOAT64_C( -651.70), SIMDE_FLOAT64_C( -380.50)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 880.83), SIMDE_FLOAT64_C( -763.06), SIMDE_FLOAT64_C( -540.57), SIMDE_FLOAT64_C( -512.55), SIMDE_FLOAT64_C( -32.98), SIMDE_FLOAT64_C( 700.87), SIMDE_FLOAT64_C( -425.19), SIMDE_FLOAT64_C( -849.48)), simde_mm512_set_pd(SIMDE_FLOAT64_C(204370.18), SIMDE_FLOAT64_C(-751385.18), SIMDE_FLOAT64_C(432904.67), SIMDE_FLOAT64_C(423689.21), SIMDE_FLOAT64_C(-27118.13), SIMDE_FLOAT64_C(-625323.22), SIMDE_FLOAT64_C(277096.32), SIMDE_FLOAT64_C(323227.14)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 202.90), SIMDE_FLOAT64_C( -396.66), SIMDE_FLOAT64_C( -364.01), SIMDE_FLOAT64_C( 56.81), SIMDE_FLOAT64_C( -881.59), SIMDE_FLOAT64_C( 212.81), SIMDE_FLOAT64_C( -968.64), SIMDE_FLOAT64_C( -657.19)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -221.35), SIMDE_FLOAT64_C( -305.38), SIMDE_FLOAT64_C( 546.45), SIMDE_FLOAT64_C( -697.03), SIMDE_FLOAT64_C( 93.97), SIMDE_FLOAT64_C( 975.92), SIMDE_FLOAT64_C( 876.47), SIMDE_FLOAT64_C( 762.37)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-44911.92), SIMDE_FLOAT64_C(121132.03), SIMDE_FLOAT64_C(-198913.26), SIMDE_FLOAT64_C(-39598.27), SIMDE_FLOAT64_C(-82843.01), SIMDE_FLOAT64_C(207685.54), SIMDE_FLOAT64_C(-848983.90), SIMDE_FLOAT64_C(-501021.94)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -538.86), SIMDE_FLOAT64_C( 39.65), SIMDE_FLOAT64_C( -229.28), SIMDE_FLOAT64_C( -842.78), SIMDE_FLOAT64_C( -14.75), SIMDE_FLOAT64_C( -859.98), SIMDE_FLOAT64_C( 215.44), SIMDE_FLOAT64_C( 762.83)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -16.18), SIMDE_FLOAT64_C( -931.82), SIMDE_FLOAT64_C( -687.15), SIMDE_FLOAT64_C( -416.23), SIMDE_FLOAT64_C( -313.36), SIMDE_FLOAT64_C( 905.90), SIMDE_FLOAT64_C( 1.93), SIMDE_FLOAT64_C( -464.98)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 8718.75), SIMDE_FLOAT64_C(-36946.66), SIMDE_FLOAT64_C(157549.75), SIMDE_FLOAT64_C(350790.32), SIMDE_FLOAT64_C( 4622.06), SIMDE_FLOAT64_C(-779055.88), SIMDE_FLOAT64_C( 415.80), SIMDE_FLOAT64_C(-354700.69)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -25.40), SIMDE_FLOAT64_C( -267.80), SIMDE_FLOAT64_C( 353.79), SIMDE_FLOAT64_C( -35.72), SIMDE_FLOAT64_C( 125.21), SIMDE_FLOAT64_C( 137.22), SIMDE_FLOAT64_C( 310.88), SIMDE_FLOAT64_C( -724.55)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -551.49), SIMDE_FLOAT64_C( -42.33), SIMDE_FLOAT64_C( -926.18), SIMDE_FLOAT64_C( 36.96), SIMDE_FLOAT64_C( 954.39), SIMDE_FLOAT64_C( 874.71), SIMDE_FLOAT64_C( -375.00), SIMDE_FLOAT64_C( 949.07)), simde_mm512_set_pd(SIMDE_FLOAT64_C(14007.85), SIMDE_FLOAT64_C(11335.97), SIMDE_FLOAT64_C(-327673.22), SIMDE_FLOAT64_C(-1320.21), SIMDE_FLOAT64_C(119499.17), SIMDE_FLOAT64_C(120027.71), SIMDE_FLOAT64_C(-116580.00), SIMDE_FLOAT64_C(-687648.67)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_mul_pd(test_vec[i].a, test_vec[i].b); simde_assert_m512d_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_mask_mul_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512d src; simde__mmask8 k; simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { simde_mm512_set_pd(SIMDE_FLOAT64_C( -821.30), SIMDE_FLOAT64_C( -768.64), SIMDE_FLOAT64_C( -18.18), SIMDE_FLOAT64_C( -679.16), SIMDE_FLOAT64_C( -992.98), SIMDE_FLOAT64_C( -764.30), SIMDE_FLOAT64_C( 419.74), SIMDE_FLOAT64_C( 970.61)), UINT8_C( 76), simde_mm512_set_pd(SIMDE_FLOAT64_C( -167.78), SIMDE_FLOAT64_C( -432.98), SIMDE_FLOAT64_C( -407.63), SIMDE_FLOAT64_C( -78.73), SIMDE_FLOAT64_C( -377.24), SIMDE_FLOAT64_C( -338.63), SIMDE_FLOAT64_C( -681.32), SIMDE_FLOAT64_C( -483.94)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -931.82), SIMDE_FLOAT64_C( -180.10), SIMDE_FLOAT64_C( -213.80), SIMDE_FLOAT64_C( -618.07), SIMDE_FLOAT64_C( 922.09), SIMDE_FLOAT64_C( -681.84), SIMDE_FLOAT64_C( -317.54), SIMDE_FLOAT64_C( 448.08)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -821.30), SIMDE_FLOAT64_C(77979.70), SIMDE_FLOAT64_C( -18.18), SIMDE_FLOAT64_C( -679.16), SIMDE_FLOAT64_C(-347849.23), SIMDE_FLOAT64_C(230891.48), SIMDE_FLOAT64_C( 419.74), SIMDE_FLOAT64_C( 970.61)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -706.27), SIMDE_FLOAT64_C( -736.90), SIMDE_FLOAT64_C( 388.85), SIMDE_FLOAT64_C( -452.26), SIMDE_FLOAT64_C( -983.38), SIMDE_FLOAT64_C( -800.62), SIMDE_FLOAT64_C( 310.59), SIMDE_FLOAT64_C( 810.60)), UINT8_C( 87), simde_mm512_set_pd(SIMDE_FLOAT64_C( -613.25), SIMDE_FLOAT64_C( 846.16), SIMDE_FLOAT64_C( 824.90), SIMDE_FLOAT64_C( -554.53), SIMDE_FLOAT64_C( -163.66), SIMDE_FLOAT64_C( 923.31), SIMDE_FLOAT64_C( -996.35), SIMDE_FLOAT64_C( -303.21)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -11.46), SIMDE_FLOAT64_C( -598.19), SIMDE_FLOAT64_C( 495.52), SIMDE_FLOAT64_C( 117.93), SIMDE_FLOAT64_C( 291.55), SIMDE_FLOAT64_C( 189.90), SIMDE_FLOAT64_C( -859.41), SIMDE_FLOAT64_C( 9.76)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -706.27), SIMDE_FLOAT64_C(-506164.45), SIMDE_FLOAT64_C( 388.85), SIMDE_FLOAT64_C(-65395.72), SIMDE_FLOAT64_C( -983.38), SIMDE_FLOAT64_C(175336.57), SIMDE_FLOAT64_C(856273.15), SIMDE_FLOAT64_C(-2959.33)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -563.02), SIMDE_FLOAT64_C( -883.18), SIMDE_FLOAT64_C( 852.82), SIMDE_FLOAT64_C( -331.20), SIMDE_FLOAT64_C( -286.53), SIMDE_FLOAT64_C( -422.71), SIMDE_FLOAT64_C( -717.56), SIMDE_FLOAT64_C( -209.20)), UINT8_C( 30), simde_mm512_set_pd(SIMDE_FLOAT64_C( -241.93), SIMDE_FLOAT64_C( -343.53), SIMDE_FLOAT64_C( 736.91), SIMDE_FLOAT64_C( -835.83), SIMDE_FLOAT64_C( -444.99), SIMDE_FLOAT64_C( 943.16), SIMDE_FLOAT64_C( 17.49), SIMDE_FLOAT64_C( -26.72)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -614.80), SIMDE_FLOAT64_C( -251.11), SIMDE_FLOAT64_C( 421.22), SIMDE_FLOAT64_C( -961.92), SIMDE_FLOAT64_C( 971.24), SIMDE_FLOAT64_C( -348.19), SIMDE_FLOAT64_C( -171.56), SIMDE_FLOAT64_C( -420.89)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -563.02), SIMDE_FLOAT64_C( -883.18), SIMDE_FLOAT64_C( 852.82), SIMDE_FLOAT64_C(804001.59), SIMDE_FLOAT64_C(-432192.09), SIMDE_FLOAT64_C(-328398.88), SIMDE_FLOAT64_C(-3000.58), SIMDE_FLOAT64_C( -209.20)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 442.66), SIMDE_FLOAT64_C( -69.80), SIMDE_FLOAT64_C( 151.84), SIMDE_FLOAT64_C( 278.19), SIMDE_FLOAT64_C( -105.37), SIMDE_FLOAT64_C( -898.05), SIMDE_FLOAT64_C( 104.61), SIMDE_FLOAT64_C( 131.40)), UINT8_C( 92), simde_mm512_set_pd(SIMDE_FLOAT64_C( -598.49), SIMDE_FLOAT64_C( 226.31), SIMDE_FLOAT64_C( -6.29), SIMDE_FLOAT64_C( 443.90), SIMDE_FLOAT64_C( -544.30), SIMDE_FLOAT64_C( -925.04), SIMDE_FLOAT64_C( 484.35), SIMDE_FLOAT64_C( -740.68)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 72.46), SIMDE_FLOAT64_C( -87.05), SIMDE_FLOAT64_C( -714.68), SIMDE_FLOAT64_C( 393.49), SIMDE_FLOAT64_C( 651.31), SIMDE_FLOAT64_C( 480.47), SIMDE_FLOAT64_C( 373.84), SIMDE_FLOAT64_C( 843.89)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 442.66), SIMDE_FLOAT64_C(-19700.29), SIMDE_FLOAT64_C( 151.84), SIMDE_FLOAT64_C(174670.21), SIMDE_FLOAT64_C(-354508.03), SIMDE_FLOAT64_C(-444453.97), SIMDE_FLOAT64_C( 104.61), SIMDE_FLOAT64_C( 131.40)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 988.68), SIMDE_FLOAT64_C( 353.35), SIMDE_FLOAT64_C( -309.14), SIMDE_FLOAT64_C( -266.17), SIMDE_FLOAT64_C( 819.45), SIMDE_FLOAT64_C( 592.47), SIMDE_FLOAT64_C( 382.11), SIMDE_FLOAT64_C( 516.02)), UINT8_C( 87), simde_mm512_set_pd(SIMDE_FLOAT64_C( 51.49), SIMDE_FLOAT64_C( -696.81), SIMDE_FLOAT64_C( 178.38), SIMDE_FLOAT64_C( 907.89), SIMDE_FLOAT64_C( 646.15), SIMDE_FLOAT64_C( 281.27), SIMDE_FLOAT64_C( 226.71), SIMDE_FLOAT64_C( -906.47)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -823.13), SIMDE_FLOAT64_C( -506.07), SIMDE_FLOAT64_C( -848.31), SIMDE_FLOAT64_C( -467.13), SIMDE_FLOAT64_C( 559.51), SIMDE_FLOAT64_C( -498.81), SIMDE_FLOAT64_C( 598.24), SIMDE_FLOAT64_C( 523.97)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 988.68), SIMDE_FLOAT64_C(352634.64), SIMDE_FLOAT64_C( -309.14), SIMDE_FLOAT64_C(-424102.66), SIMDE_FLOAT64_C( 819.45), SIMDE_FLOAT64_C(-140300.29), SIMDE_FLOAT64_C(135626.99), SIMDE_FLOAT64_C(-474963.09)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -811.79), SIMDE_FLOAT64_C( 522.04), SIMDE_FLOAT64_C( 594.85), SIMDE_FLOAT64_C( 0.75), SIMDE_FLOAT64_C( -855.43), SIMDE_FLOAT64_C( 660.82), SIMDE_FLOAT64_C( -308.44), SIMDE_FLOAT64_C( 882.56)), UINT8_C( 62), simde_mm512_set_pd(SIMDE_FLOAT64_C( -252.73), SIMDE_FLOAT64_C( -915.63), SIMDE_FLOAT64_C( -935.95), SIMDE_FLOAT64_C( -722.20), SIMDE_FLOAT64_C( -497.29), SIMDE_FLOAT64_C( -166.63), SIMDE_FLOAT64_C( 516.64), SIMDE_FLOAT64_C( -317.86)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -925.15), SIMDE_FLOAT64_C( 466.19), SIMDE_FLOAT64_C( 263.72), SIMDE_FLOAT64_C( 424.85), SIMDE_FLOAT64_C( 205.96), SIMDE_FLOAT64_C( 401.84), SIMDE_FLOAT64_C( 361.23), SIMDE_FLOAT64_C( 807.53)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -811.79), SIMDE_FLOAT64_C( 522.04), SIMDE_FLOAT64_C(-246828.73), SIMDE_FLOAT64_C(-306826.67), SIMDE_FLOAT64_C(-102421.85), SIMDE_FLOAT64_C(-66958.60), SIMDE_FLOAT64_C(186625.87), SIMDE_FLOAT64_C( 882.56)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 915.95), SIMDE_FLOAT64_C( -721.40), SIMDE_FLOAT64_C( -153.01), SIMDE_FLOAT64_C( 377.63), SIMDE_FLOAT64_C( 983.59), SIMDE_FLOAT64_C( -647.06), SIMDE_FLOAT64_C( 224.30), SIMDE_FLOAT64_C( -39.06)), UINT8_C( 70), simde_mm512_set_pd(SIMDE_FLOAT64_C( 724.37), SIMDE_FLOAT64_C( -108.80), SIMDE_FLOAT64_C( -716.02), SIMDE_FLOAT64_C( -552.47), SIMDE_FLOAT64_C( 411.46), SIMDE_FLOAT64_C( -439.29), SIMDE_FLOAT64_C( 397.99), SIMDE_FLOAT64_C( -31.94)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -763.99), SIMDE_FLOAT64_C( 279.59), SIMDE_FLOAT64_C( 318.18), SIMDE_FLOAT64_C( 57.40), SIMDE_FLOAT64_C( 13.78), SIMDE_FLOAT64_C( -535.45), SIMDE_FLOAT64_C( 52.16), SIMDE_FLOAT64_C( -903.47)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 915.95), SIMDE_FLOAT64_C(-30419.39), SIMDE_FLOAT64_C( -153.01), SIMDE_FLOAT64_C( 377.63), SIMDE_FLOAT64_C( 983.59), SIMDE_FLOAT64_C(235217.83), SIMDE_FLOAT64_C(20759.16), SIMDE_FLOAT64_C( -39.06)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -219.27), SIMDE_FLOAT64_C( 499.44), SIMDE_FLOAT64_C( -493.92), SIMDE_FLOAT64_C( 481.91), SIMDE_FLOAT64_C( 270.70), SIMDE_FLOAT64_C( 857.18), SIMDE_FLOAT64_C( -745.19), SIMDE_FLOAT64_C( -960.45)), UINT8_C(113), simde_mm512_set_pd(SIMDE_FLOAT64_C( -135.86), SIMDE_FLOAT64_C( -159.92), SIMDE_FLOAT64_C( 756.29), SIMDE_FLOAT64_C( -526.68), SIMDE_FLOAT64_C( 5.30), SIMDE_FLOAT64_C( 278.11), SIMDE_FLOAT64_C( 884.85), SIMDE_FLOAT64_C( 638.85)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 726.26), SIMDE_FLOAT64_C( 110.13), SIMDE_FLOAT64_C( -961.42), SIMDE_FLOAT64_C( 96.39), SIMDE_FLOAT64_C( 930.93), SIMDE_FLOAT64_C( -241.35), SIMDE_FLOAT64_C( -108.47), SIMDE_FLOAT64_C( -69.81)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -219.27), SIMDE_FLOAT64_C(-17611.99), SIMDE_FLOAT64_C(-727112.33), SIMDE_FLOAT64_C(-50766.69), SIMDE_FLOAT64_C( 270.70), SIMDE_FLOAT64_C( 857.18), SIMDE_FLOAT64_C( -745.19), SIMDE_FLOAT64_C(-44598.12)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_mask_mul_pd(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512d_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_maskz_mul_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { UINT8_C( 4), simde_mm512_set_pd(SIMDE_FLOAT64_C( 232.34), SIMDE_FLOAT64_C( 716.29), SIMDE_FLOAT64_C( 520.56), SIMDE_FLOAT64_C( -458.82), SIMDE_FLOAT64_C( 550.79), SIMDE_FLOAT64_C( 687.92), SIMDE_FLOAT64_C( -593.10), SIMDE_FLOAT64_C( -620.76)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -156.55), SIMDE_FLOAT64_C( -441.38), SIMDE_FLOAT64_C( 554.99), SIMDE_FLOAT64_C( 294.84), SIMDE_FLOAT64_C( -270.30), SIMDE_FLOAT64_C( -228.66), SIMDE_FLOAT64_C( 910.49), SIMDE_FLOAT64_C( -483.54)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-157299.79), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(165), simde_mm512_set_pd(SIMDE_FLOAT64_C( -526.05), SIMDE_FLOAT64_C( 453.25), SIMDE_FLOAT64_C( 821.16), SIMDE_FLOAT64_C( -906.31), SIMDE_FLOAT64_C( -873.91), SIMDE_FLOAT64_C( -472.79), SIMDE_FLOAT64_C( -675.37), SIMDE_FLOAT64_C( -955.90)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 305.84), SIMDE_FLOAT64_C( -400.58), SIMDE_FLOAT64_C( -475.09), SIMDE_FLOAT64_C( -582.28), SIMDE_FLOAT64_C( -849.06), SIMDE_FLOAT64_C( -392.73), SIMDE_FLOAT64_C( -370.73), SIMDE_FLOAT64_C( -928.94)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-160887.13), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-390124.90), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(185678.82), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(887973.75)) }, { UINT8_C(175), simde_mm512_set_pd(SIMDE_FLOAT64_C( 871.20), SIMDE_FLOAT64_C( -761.38), SIMDE_FLOAT64_C( -106.42), SIMDE_FLOAT64_C( -228.29), SIMDE_FLOAT64_C( -864.78), SIMDE_FLOAT64_C( -773.10), SIMDE_FLOAT64_C( 984.91), SIMDE_FLOAT64_C( -982.29)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -488.22), SIMDE_FLOAT64_C( 361.25), SIMDE_FLOAT64_C( -346.47), SIMDE_FLOAT64_C( 411.25), SIMDE_FLOAT64_C( 117.68), SIMDE_FLOAT64_C( 448.38), SIMDE_FLOAT64_C( -319.67), SIMDE_FLOAT64_C( -97.98)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-425337.26), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(36871.34), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-101767.31), SIMDE_FLOAT64_C(-346642.58), SIMDE_FLOAT64_C(-314846.18), SIMDE_FLOAT64_C(96244.77)) }, { UINT8_C(195), simde_mm512_set_pd(SIMDE_FLOAT64_C( -43.54), SIMDE_FLOAT64_C( 387.84), SIMDE_FLOAT64_C( -190.98), SIMDE_FLOAT64_C( 468.25), SIMDE_FLOAT64_C( -832.05), SIMDE_FLOAT64_C( -600.33), SIMDE_FLOAT64_C( -246.00), SIMDE_FLOAT64_C( 160.40)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -279.42), SIMDE_FLOAT64_C( 980.35), SIMDE_FLOAT64_C( 897.98), SIMDE_FLOAT64_C( -354.38), SIMDE_FLOAT64_C( 689.03), SIMDE_FLOAT64_C( 555.84), SIMDE_FLOAT64_C( 823.79), SIMDE_FLOAT64_C( -979.93)), simde_mm512_set_pd(SIMDE_FLOAT64_C(12165.95), SIMDE_FLOAT64_C(380218.94), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-202652.34), SIMDE_FLOAT64_C(-157180.77)) }, { UINT8_C(236), simde_mm512_set_pd(SIMDE_FLOAT64_C( 821.55), SIMDE_FLOAT64_C( 740.38), SIMDE_FLOAT64_C( -934.60), SIMDE_FLOAT64_C( 694.91), SIMDE_FLOAT64_C( 432.52), SIMDE_FLOAT64_C( 380.89), SIMDE_FLOAT64_C( -22.14), SIMDE_FLOAT64_C( 683.08)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 735.17), SIMDE_FLOAT64_C( 313.88), SIMDE_FLOAT64_C( -529.80), SIMDE_FLOAT64_C( -869.79), SIMDE_FLOAT64_C( 294.43), SIMDE_FLOAT64_C( 958.02), SIMDE_FLOAT64_C( 383.81), SIMDE_FLOAT64_C( 520.19)), simde_mm512_set_pd(SIMDE_FLOAT64_C(603978.91), SIMDE_FLOAT64_C(232390.47), SIMDE_FLOAT64_C(495151.08), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(127346.86), SIMDE_FLOAT64_C(364900.24), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(144), simde_mm512_set_pd(SIMDE_FLOAT64_C( -704.15), SIMDE_FLOAT64_C( 418.80), SIMDE_FLOAT64_C( -562.82), SIMDE_FLOAT64_C( 910.01), SIMDE_FLOAT64_C( 513.17), SIMDE_FLOAT64_C( 314.44), SIMDE_FLOAT64_C( 866.48), SIMDE_FLOAT64_C( 466.83)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 663.36), SIMDE_FLOAT64_C( 883.11), SIMDE_FLOAT64_C( 475.36), SIMDE_FLOAT64_C( 451.49), SIMDE_FLOAT64_C( 246.05), SIMDE_FLOAT64_C( -122.55), SIMDE_FLOAT64_C( 401.83), SIMDE_FLOAT64_C( 557.78)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-467104.94), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(410860.41), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(181), simde_mm512_set_pd(SIMDE_FLOAT64_C( -758.51), SIMDE_FLOAT64_C( -164.55), SIMDE_FLOAT64_C( 334.89), SIMDE_FLOAT64_C( -549.60), SIMDE_FLOAT64_C( 344.01), SIMDE_FLOAT64_C( -985.45), SIMDE_FLOAT64_C( -235.88), SIMDE_FLOAT64_C( 450.77)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -408.01), SIMDE_FLOAT64_C( 723.62), SIMDE_FLOAT64_C( -159.29), SIMDE_FLOAT64_C( 720.82), SIMDE_FLOAT64_C( -893.97), SIMDE_FLOAT64_C( 826.45), SIMDE_FLOAT64_C( -3.06), SIMDE_FLOAT64_C( 902.05)), simde_mm512_set_pd(SIMDE_FLOAT64_C(309479.67), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-53344.63), SIMDE_FLOAT64_C(-396162.67), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-814425.15), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(406617.08)) }, { UINT8_C(211), simde_mm512_set_pd(SIMDE_FLOAT64_C( 311.61), SIMDE_FLOAT64_C( -930.67), SIMDE_FLOAT64_C( 465.44), SIMDE_FLOAT64_C( -366.35), SIMDE_FLOAT64_C( 205.36), SIMDE_FLOAT64_C( 276.19), SIMDE_FLOAT64_C( 975.10), SIMDE_FLOAT64_C( -338.46)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 817.02), SIMDE_FLOAT64_C( -834.50), SIMDE_FLOAT64_C( -648.42), SIMDE_FLOAT64_C( 761.90), SIMDE_FLOAT64_C( 24.27), SIMDE_FLOAT64_C( 838.31), SIMDE_FLOAT64_C( -854.11), SIMDE_FLOAT64_C( 403.52)), simde_mm512_set_pd(SIMDE_FLOAT64_C(254591.60), SIMDE_FLOAT64_C(776644.11), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-279122.07), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-832842.66), SIMDE_FLOAT64_C(-136575.38)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_maskz_mul_pd(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512d_close(r, test_vec[i].r, 1); } return 0; } SIMDE_TEST_FUNC_LIST_BEGIN SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mul_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mul_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mul_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mul_epu32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mul_epu32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mul_epu32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mul_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mul_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mul_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mul_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mul_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mul_pd) SIMDE_TEST_FUNC_LIST_END #include