/* 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 Hidayat Khan * 2020 Christopher Moore */ #define SIMDE_TEST_X86_AVX512_INSN slli #include #include #include static int test_simde_mm512_slli_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int16_t a[32]; const int16_t r0[32]; const int16_t r3[32]; const int16_t r7[32]; const int16_t r13[32]; const int16_t r24[32]; } test_vec[] = { { { -INT16_C( 4513), -INT16_C( 32064), -INT16_C( 20539), INT16_C( 16953), -INT16_C( 19443), INT16_C( 8904), INT16_C( 17111), -INT16_C( 18058), INT16_C( 9034), -INT16_C( 18739), -INT16_C( 25271), INT16_C( 4847), -INT16_C( 27918), -INT16_C( 9400), -INT16_C( 4204), -INT16_C( 3107), -INT16_C( 24867), -INT16_C( 23691), -INT16_C( 20915), INT16_C( 23269), -INT16_C( 21149), INT16_C( 14973), -INT16_C( 3088), INT16_C( 15091), -INT16_C( 16362), INT16_C( 24561), -INT16_C( 8099), INT16_C( 20594), -INT16_C( 17806), INT16_C( 1579), INT16_C( 2218), -INT16_C( 30727) }, { -INT16_C( 4513), -INT16_C( 32064), -INT16_C( 20539), INT16_C( 16953), -INT16_C( 19443), INT16_C( 8904), INT16_C( 17111), -INT16_C( 18058), INT16_C( 9034), -INT16_C( 18739), -INT16_C( 25271), INT16_C( 4847), -INT16_C( 27918), -INT16_C( 9400), -INT16_C( 4204), -INT16_C( 3107), -INT16_C( 24867), -INT16_C( 23691), -INT16_C( 20915), INT16_C( 23269), -INT16_C( 21149), INT16_C( 14973), -INT16_C( 3088), INT16_C( 15091), -INT16_C( 16362), INT16_C( 24561), -INT16_C( 8099), INT16_C( 20594), -INT16_C( 17806), INT16_C( 1579), INT16_C( 2218), -INT16_C( 30727) }, { INT16_C( 29432), INT16_C( 5632), INT16_C( 32296), INT16_C( 4552), -INT16_C( 24472), INT16_C( 5696), INT16_C( 5816), -INT16_C( 13392), INT16_C( 6736), -INT16_C( 18840), -INT16_C( 5560), -INT16_C( 26760), -INT16_C( 26736), -INT16_C( 9664), INT16_C( 31904), -INT16_C( 24856), -INT16_C( 2328), INT16_C( 7080), INT16_C( 29288), -INT16_C( 10456), INT16_C( 27416), -INT16_C( 11288), -INT16_C( 24704), -INT16_C( 10344), INT16_C( 176), -INT16_C( 120), INT16_C( 744), -INT16_C( 31856), -INT16_C( 11376), INT16_C( 12632), INT16_C( 17744), INT16_C( 16328) }, { INT16_C( 12160), INT16_C( 24576), -INT16_C( 7552), INT16_C( 7296), INT16_C( 1664), INT16_C( 25600), INT16_C( 27520), -INT16_C( 17664), -INT16_C( 23296), INT16_C( 26240), -INT16_C( 23424), INT16_C( 30592), INT16_C( 30976), -INT16_C( 23552), -INT16_C( 13824), -INT16_C( 4480), INT16_C( 28288), -INT16_C( 17792), INT16_C( 9856), INT16_C( 29312), -INT16_C( 20096), INT16_C( 16000), -INT16_C( 2048), INT16_C( 31104), INT16_C( 2816), -INT16_C( 1920), INT16_C( 11904), INT16_C( 14592), INT16_C( 14592), INT16_C( 5504), INT16_C( 21760), -INT16_C( 896) }, { -INT16_C( 8192), INT16_C( 0), -INT16_C( 24576), INT16_C( 8192), -INT16_C( 24576), INT16_C( 0), -INT16_C( 8192), -INT16_C( 16384), INT16_C( 16384), -INT16_C( 24576), INT16_C( 8192), -INT16_C( 8192), INT16_C( 16384), INT16_C( 0), INT16_MIN, -INT16_C( 24576), -INT16_C( 24576), -INT16_C( 24576), -INT16_C( 24576), -INT16_C( 24576), INT16_C( 24576), -INT16_C( 24576), INT16_C( 0), INT16_C( 24576), -INT16_C( 16384), INT16_C( 8192), -INT16_C( 24576), INT16_C( 16384), INT16_C( 16384), INT16_C( 24576), INT16_C( 16384), INT16_C( 8192) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { INT16_C( 28582), -INT16_C( 3030), INT16_C( 3869), -INT16_C( 32690), -INT16_C( 13379), -INT16_C( 21062), -INT16_C( 20801), -INT16_C( 10777), -INT16_C( 10130), -INT16_C( 13259), -INT16_C( 22600), INT16_C( 11036), INT16_C( 18273), INT16_C( 2865), INT16_C( 11087), -INT16_C( 2413), -INT16_C( 16998), -INT16_C( 18454), INT16_C( 14541), -INT16_C( 30152), -INT16_C( 3580), -INT16_C( 15561), INT16_C( 7840), INT16_C( 3992), -INT16_C( 12809), -INT16_C( 20517), -INT16_C( 2188), -INT16_C( 10534), INT16_C( 3134), -INT16_C( 29215), INT16_C( 29751), -INT16_C( 11901) }, { INT16_C( 28582), -INT16_C( 3030), INT16_C( 3869), -INT16_C( 32690), -INT16_C( 13379), -INT16_C( 21062), -INT16_C( 20801), -INT16_C( 10777), -INT16_C( 10130), -INT16_C( 13259), -INT16_C( 22600), INT16_C( 11036), INT16_C( 18273), INT16_C( 2865), INT16_C( 11087), -INT16_C( 2413), -INT16_C( 16998), -INT16_C( 18454), INT16_C( 14541), -INT16_C( 30152), -INT16_C( 3580), -INT16_C( 15561), INT16_C( 7840), INT16_C( 3992), -INT16_C( 12809), -INT16_C( 20517), -INT16_C( 2188), -INT16_C( 10534), INT16_C( 3134), -INT16_C( 29215), INT16_C( 29751), -INT16_C( 11901) }, { INT16_C( 32048), -INT16_C( 24240), INT16_C( 30952), INT16_C( 624), INT16_C( 24040), INT16_C( 28112), INT16_C( 30200), -INT16_C( 20680), -INT16_C( 15504), INT16_C( 25000), INT16_C( 15808), INT16_C( 22752), INT16_C( 15112), INT16_C( 22920), INT16_C( 23160), -INT16_C( 19304), -INT16_C( 4912), -INT16_C( 16560), -INT16_C( 14744), INT16_C( 20928), -INT16_C( 28640), INT16_C( 6584), -INT16_C( 2816), INT16_C( 31936), INT16_C( 28600), INT16_C( 32472), -INT16_C( 17504), -INT16_C( 18736), INT16_C( 25072), INT16_C( 28424), -INT16_C( 24136), -INT16_C( 29672) }, { -INT16_C( 11520), INT16_C( 5376), -INT16_C( 29056), INT16_C( 9984), -INT16_C( 8576), -INT16_C( 8960), INT16_C( 24448), -INT16_C( 3200), INT16_C( 14080), INT16_C( 6784), -INT16_C( 9216), -INT16_C( 29184), -INT16_C( 20352), -INT16_C( 26496), -INT16_C( 22656), INT16_C( 18816), -INT16_C( 13056), -INT16_C( 2816), INT16_C( 26240), INT16_C( 7168), INT16_C( 512), -INT16_C( 25728), INT16_C( 20480), -INT16_C( 13312), -INT16_C( 1152), -INT16_C( 4736), -INT16_C( 17920), INT16_C( 27904), INT16_C( 7936), -INT16_C( 3968), INT16_C( 7040), -INT16_C( 16000) }, { -INT16_C( 16384), INT16_C( 16384), -INT16_C( 24576), -INT16_C( 16384), -INT16_C( 24576), INT16_C( 16384), -INT16_C( 8192), -INT16_C( 8192), -INT16_C( 16384), -INT16_C( 24576), INT16_C( 0), INT16_MIN, INT16_C( 8192), INT16_C( 8192), -INT16_C( 8192), INT16_C( 24576), INT16_C( 16384), INT16_C( 16384), -INT16_C( 24576), INT16_C( 0), INT16_MIN, -INT16_C( 8192), INT16_C( 0), INT16_C( 0), -INT16_C( 8192), INT16_C( 24576), INT16_MIN, INT16_C( 16384), -INT16_C( 16384), INT16_C( 8192), -INT16_C( 8192), INT16_C( 24576) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { INT16_C( 27954), -INT16_C( 120), -INT16_C( 16218), -INT16_C( 21879), -INT16_C( 16205), INT16_C( 21357), INT16_C( 1502), -INT16_C( 10910), INT16_C( 15827), INT16_C( 18309), INT16_C( 24372), INT16_C( 29213), -INT16_C( 149), -INT16_C( 24064), -INT16_C( 31885), -INT16_C( 23181), -INT16_C( 783), -INT16_C( 26716), INT16_C( 11708), INT16_C( 28481), -INT16_C( 20755), -INT16_C( 13117), INT16_C( 9651), -INT16_C( 31071), INT16_C( 9827), -INT16_C( 26674), -INT16_C( 5242), -INT16_C( 3830), INT16_C( 2794), INT16_C( 24212), INT16_C( 1933), INT16_C( 32259) }, { INT16_C( 27954), -INT16_C( 120), -INT16_C( 16218), -INT16_C( 21879), -INT16_C( 16205), INT16_C( 21357), INT16_C( 1502), -INT16_C( 10910), INT16_C( 15827), INT16_C( 18309), INT16_C( 24372), INT16_C( 29213), -INT16_C( 149), -INT16_C( 24064), -INT16_C( 31885), -INT16_C( 23181), -INT16_C( 783), -INT16_C( 26716), INT16_C( 11708), INT16_C( 28481), -INT16_C( 20755), -INT16_C( 13117), INT16_C( 9651), -INT16_C( 31071), INT16_C( 9827), -INT16_C( 26674), -INT16_C( 5242), -INT16_C( 3830), INT16_C( 2794), INT16_C( 24212), INT16_C( 1933), INT16_C( 32259) }, { INT16_C( 27024), -INT16_C( 960), INT16_C( 1328), INT16_C( 21576), INT16_C( 1432), -INT16_C( 25752), INT16_C( 12016), -INT16_C( 21744), -INT16_C( 4456), INT16_C( 15400), -INT16_C( 1632), -INT16_C( 28440), -INT16_C( 1192), INT16_C( 4096), INT16_C( 7064), INT16_C( 11160), -INT16_C( 6264), -INT16_C( 17120), INT16_C( 28128), INT16_C( 31240), INT16_C( 30568), INT16_C( 26136), INT16_C( 11672), INT16_C( 13576), INT16_C( 13080), -INT16_C( 16784), INT16_C( 23600), -INT16_C( 30640), INT16_C( 22352), -INT16_C( 2912), INT16_C( 15464), -INT16_C( 4072) }, { -INT16_C( 26368), -INT16_C( 15360), INT16_C( 21248), INT16_C( 17536), INT16_C( 22912), -INT16_C( 18816), -INT16_C( 4352), -INT16_C( 20224), -INT16_C( 5760), -INT16_C( 15744), -INT16_C( 26112), INT16_C( 3712), -INT16_C( 19072), INT16_C( 0), -INT16_C( 18048), -INT16_C( 18048), INT16_C( 30848), -INT16_C( 11776), -INT16_C( 8704), -INT16_C( 24448), INT16_C( 30336), INT16_C( 24960), -INT16_C( 9856), INT16_C( 20608), INT16_C( 12672), -INT16_C( 6400), -INT16_C( 15616), -INT16_C( 31488), INT16_C( 29952), INT16_C( 18944), -INT16_C( 14720), INT16_C( 384) }, { INT16_C( 16384), INT16_C( 0), -INT16_C( 16384), INT16_C( 8192), INT16_C( 24576), -INT16_C( 24576), -INT16_C( 16384), INT16_C( 16384), INT16_C( 24576), -INT16_C( 24576), INT16_MIN, -INT16_C( 24576), INT16_C( 24576), INT16_C( 0), INT16_C( 24576), INT16_C( 24576), INT16_C( 8192), INT16_MIN, INT16_MIN, INT16_C( 8192), -INT16_C( 24576), INT16_C( 24576), INT16_C( 24576), INT16_C( 8192), INT16_C( 24576), -INT16_C( 16384), -INT16_C( 16384), INT16_C( 16384), INT16_C( 16384), INT16_MIN, -INT16_C( 24576), INT16_C( 24576) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { -INT16_C( 22525), -INT16_C( 16363), INT16_C( 22229), -INT16_C( 15569), -INT16_C( 3580), -INT16_C( 18289), INT16_C( 12312), INT16_C( 31550), INT16_C( 3159), -INT16_C( 8942), INT16_C( 7416), -INT16_C( 7474), INT16_C( 25126), -INT16_C( 19392), INT16_C( 17514), INT16_C( 27954), INT16_C( 18668), -INT16_C( 16083), INT16_C( 23966), -INT16_C( 23676), INT16_C( 4943), INT16_C( 26459), -INT16_C( 26300), -INT16_C( 25630), -INT16_C( 2650), -INT16_C( 24968), INT16_C( 17937), INT16_C( 14464), -INT16_C( 15959), INT16_C( 5100), INT16_C( 7685), -INT16_C( 3712) }, { -INT16_C( 22525), -INT16_C( 16363), INT16_C( 22229), -INT16_C( 15569), -INT16_C( 3580), -INT16_C( 18289), INT16_C( 12312), INT16_C( 31550), INT16_C( 3159), -INT16_C( 8942), INT16_C( 7416), -INT16_C( 7474), INT16_C( 25126), -INT16_C( 19392), INT16_C( 17514), INT16_C( 27954), INT16_C( 18668), -INT16_C( 16083), INT16_C( 23966), -INT16_C( 23676), INT16_C( 4943), INT16_C( 26459), -INT16_C( 26300), -INT16_C( 25630), -INT16_C( 2650), -INT16_C( 24968), INT16_C( 17937), INT16_C( 14464), -INT16_C( 15959), INT16_C( 5100), INT16_C( 7685), -INT16_C( 3712) }, { INT16_C( 16408), INT16_C( 168), -INT16_C( 18776), INT16_C( 6520), -INT16_C( 28640), -INT16_C( 15240), -INT16_C( 32576), -INT16_C( 9744), INT16_C( 25272), -INT16_C( 6000), -INT16_C( 6208), INT16_C( 5744), INT16_C( 4400), -INT16_C( 24064), INT16_C( 9040), INT16_C( 27024), INT16_C( 18272), INT16_C( 2408), -INT16_C( 4880), INT16_C( 7200), -INT16_C( 25992), INT16_C( 15064), -INT16_C( 13792), -INT16_C( 8432), -INT16_C( 21200), -INT16_C( 3136), INT16_C( 12424), -INT16_C( 15360), INT16_C( 3400), -INT16_C( 24736), -INT16_C( 4056), -INT16_C( 29696) }, { INT16_C( 384), INT16_C( 2688), INT16_C( 27264), -INT16_C( 26752), INT16_C( 512), INT16_C( 18304), INT16_C( 3072), -INT16_C( 24832), INT16_C( 11136), -INT16_C( 30464), INT16_C( 31744), INT16_C( 26368), INT16_C( 4864), INT16_C( 8192), INT16_C( 13568), -INT16_C( 26368), INT16_C( 30208), -INT16_C( 27008), -INT16_C( 12544), -INT16_C( 15872), -INT16_C( 22656), -INT16_C( 21120), -INT16_C( 24064), -INT16_C( 3840), -INT16_C( 11520), INT16_C( 15360), INT16_C( 2176), INT16_C( 16384), -INT16_C( 11136), -INT16_C( 2560), INT16_C( 640), -INT16_C( 16384) }, { INT16_C( 24576), -INT16_C( 24576), -INT16_C( 24576), -INT16_C( 8192), INT16_MIN, -INT16_C( 8192), INT16_C( 0), -INT16_C( 16384), -INT16_C( 8192), INT16_C( 16384), INT16_C( 0), -INT16_C( 16384), -INT16_C( 16384), INT16_C( 0), INT16_C( 16384), INT16_C( 16384), INT16_MIN, -INT16_C( 24576), -INT16_C( 16384), INT16_MIN, -INT16_C( 8192), INT16_C( 24576), INT16_MIN, INT16_C( 16384), -INT16_C( 16384), INT16_C( 0), INT16_C( 8192), INT16_C( 0), INT16_C( 8192), INT16_MIN, -INT16_C( 24576), INT16_C( 0) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { -INT16_C( 20890), INT16_C( 1458), INT16_C( 14091), INT16_C( 23208), INT16_C( 842), -INT16_C( 28990), -INT16_C( 23396), INT16_C( 16937), -INT16_C( 24167), -INT16_C( 21536), INT16_C( 25064), -INT16_C( 28189), -INT16_C( 12510), INT16_C( 10148), INT16_C( 9453), INT16_C( 21528), -INT16_C( 13614), -INT16_C( 8871), INT16_C( 257), INT16_C( 19512), -INT16_C( 1532), -INT16_C( 24358), INT16_C( 1182), INT16_C( 14563), -INT16_C( 15451), -INT16_C( 29213), -INT16_C( 14812), INT16_C( 17950), -INT16_C( 15723), -INT16_C( 32147), -INT16_C( 31257), -INT16_C( 17962) }, { -INT16_C( 20890), INT16_C( 1458), INT16_C( 14091), INT16_C( 23208), INT16_C( 842), -INT16_C( 28990), -INT16_C( 23396), INT16_C( 16937), -INT16_C( 24167), -INT16_C( 21536), INT16_C( 25064), -INT16_C( 28189), -INT16_C( 12510), INT16_C( 10148), INT16_C( 9453), INT16_C( 21528), -INT16_C( 13614), -INT16_C( 8871), INT16_C( 257), INT16_C( 19512), -INT16_C( 1532), -INT16_C( 24358), INT16_C( 1182), INT16_C( 14563), -INT16_C( 15451), -INT16_C( 29213), -INT16_C( 14812), INT16_C( 17950), -INT16_C( 15723), -INT16_C( 32147), -INT16_C( 31257), -INT16_C( 17962) }, { INT16_C( 29488), INT16_C( 11664), -INT16_C( 18344), -INT16_C( 10944), INT16_C( 6736), INT16_C( 30224), INT16_C( 9440), INT16_C( 4424), INT16_C( 3272), INT16_C( 24320), INT16_C( 3904), -INT16_C( 28904), INT16_C( 30992), INT16_C( 15648), INT16_C( 10088), -INT16_C( 24384), INT16_C( 22160), -INT16_C( 5432), INT16_C( 2056), INT16_C( 25024), -INT16_C( 12256), INT16_C( 1744), INT16_C( 9456), -INT16_C( 14568), INT16_C( 7464), INT16_C( 28440), INT16_C( 12576), INT16_C( 12528), INT16_C( 5288), INT16_C( 4968), INT16_C( 12088), -INT16_C( 12624) }, { INT16_C( 13056), -INT16_C( 9984), -INT16_C( 31360), INT16_C( 21504), -INT16_C( 23296), INT16_C( 24832), INT16_C( 19968), INT16_C( 5248), -INT16_C( 13184), -INT16_C( 4096), -INT16_C( 3072), -INT16_C( 3712), -INT16_C( 28416), -INT16_C( 11776), INT16_C( 30336), INT16_C( 3072), INT16_C( 26880), -INT16_C( 21376), -INT16_C( 32640), INT16_C( 7168), INT16_C( 512), INT16_C( 27904), INT16_C( 20224), INT16_C( 29056), -INT16_C( 11648), -INT16_C( 3712), INT16_C( 4608), INT16_C( 3840), INT16_C( 19072), INT16_C( 13952), -INT16_C( 3200), -INT16_C( 5376) }, { -INT16_C( 16384), INT16_C( 16384), INT16_C( 24576), INT16_C( 0), INT16_C( 16384), INT16_C( 16384), INT16_MIN, INT16_C( 8192), INT16_C( 8192), INT16_C( 0), INT16_C( 0), INT16_C( 24576), INT16_C( 16384), INT16_MIN, -INT16_C( 24576), INT16_C( 0), INT16_C( 16384), INT16_C( 8192), INT16_C( 8192), INT16_C( 0), INT16_MIN, INT16_C( 16384), -INT16_C( 16384), INT16_C( 24576), -INT16_C( 24576), INT16_C( 24576), INT16_MIN, -INT16_C( 16384), -INT16_C( 24576), -INT16_C( 24576), -INT16_C( 8192), -INT16_C( 16384) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { INT16_C( 12112), INT16_C( 20887), -INT16_C( 12496), INT16_C( 13469), INT16_C( 30921), INT16_C( 26581), -INT16_C( 18308), INT16_C( 8607), -INT16_C( 32133), -INT16_C( 24401), -INT16_C( 12984), -INT16_C( 8730), INT16_C( 21648), INT16_C( 30560), INT16_C( 14041), INT16_C( 10544), -INT16_C( 14490), -INT16_C( 27013), INT16_C( 6294), INT16_C( 24523), -INT16_C( 24432), INT16_C( 3271), INT16_C( 26200), -INT16_C( 11474), -INT16_C( 8727), INT16_C( 12659), INT16_C( 23210), INT16_C( 14863), INT16_C( 28590), -INT16_C( 30799), -INT16_C( 7515), INT16_C( 2993) }, { INT16_C( 12112), INT16_C( 20887), -INT16_C( 12496), INT16_C( 13469), INT16_C( 30921), INT16_C( 26581), -INT16_C( 18308), INT16_C( 8607), -INT16_C( 32133), -INT16_C( 24401), -INT16_C( 12984), -INT16_C( 8730), INT16_C( 21648), INT16_C( 30560), INT16_C( 14041), INT16_C( 10544), -INT16_C( 14490), -INT16_C( 27013), INT16_C( 6294), INT16_C( 24523), -INT16_C( 24432), INT16_C( 3271), INT16_C( 26200), -INT16_C( 11474), -INT16_C( 8727), INT16_C( 12659), INT16_C( 23210), INT16_C( 14863), INT16_C( 28590), -INT16_C( 30799), -INT16_C( 7515), INT16_C( 2993) }, { INT16_C( 31360), -INT16_C( 29512), INT16_C( 31104), -INT16_C( 23320), -INT16_C( 14776), INT16_C( 16040), -INT16_C( 15392), INT16_C( 3320), INT16_C( 5080), INT16_C( 1400), INT16_C( 27200), -INT16_C( 4304), -INT16_C( 23424), -INT16_C( 17664), -INT16_C( 18744), INT16_C( 18816), INT16_C( 15152), -INT16_C( 19496), -INT16_C( 15184), -INT16_C( 424), INT16_C( 1152), INT16_C( 26168), INT16_C( 12992), -INT16_C( 26256), -INT16_C( 4280), -INT16_C( 29800), -INT16_C( 10928), -INT16_C( 12168), INT16_C( 32112), INT16_C( 15752), INT16_C( 5416), INT16_C( 23944) }, { -INT16_C( 22528), -INT16_C( 13440), -INT16_C( 26624), INT16_C( 20096), INT16_C( 25728), -INT16_C( 5504), INT16_C( 15872), -INT16_C( 12416), INT16_C( 15744), INT16_C( 22400), -INT16_C( 23552), -INT16_C( 3328), INT16_C( 18432), -INT16_C( 20480), INT16_C( 27776), -INT16_C( 26624), -INT16_C( 19712), INT16_C( 15744), INT16_C( 19200), -INT16_C( 6784), INT16_C( 18432), INT16_C( 25472), INT16_C( 11264), -INT16_C( 26880), -INT16_C( 2944), -INT16_C( 18048), INT16_C( 21760), INT16_C( 1920), -INT16_C( 10496), -INT16_C( 10112), INT16_C( 21120), -INT16_C( 10112) }, { INT16_C( 0), -INT16_C( 8192), INT16_C( 0), -INT16_C( 24576), INT16_C( 8192), -INT16_C( 24576), INT16_MIN, -INT16_C( 8192), INT16_C( 24576), -INT16_C( 8192), INT16_C( 0), -INT16_C( 16384), INT16_C( 0), INT16_C( 0), INT16_C( 8192), INT16_C( 0), -INT16_C( 16384), INT16_C( 24576), -INT16_C( 16384), INT16_C( 24576), INT16_C( 0), -INT16_C( 8192), INT16_C( 0), -INT16_C( 16384), INT16_C( 8192), INT16_C( 24576), INT16_C( 16384), -INT16_C( 8192), -INT16_C( 16384), INT16_C( 8192), -INT16_C( 24576), INT16_C( 8192) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { INT16_C( 11433), INT16_C( 16546), INT16_C( 27972), -INT16_C( 10849), INT16_C( 26125), INT16_C( 26081), INT16_C( 4045), -INT16_C( 18888), -INT16_C( 21268), -INT16_C( 26649), -INT16_C( 2554), -INT16_C( 19247), -INT16_C( 31899), INT16_C( 2875), -INT16_C( 5019), INT16_C( 3606), -INT16_C( 18408), INT16_C( 23886), -INT16_C( 4571), INT16_C( 12850), INT16_C( 4948), INT16_C( 8599), -INT16_C( 12253), INT16_C( 4055), -INT16_C( 16516), -INT16_C( 32090), INT16_C( 30901), INT16_C( 6966), INT16_C( 29179), INT16_C( 24614), INT16_C( 15454), INT16_C( 30318) }, { INT16_C( 11433), INT16_C( 16546), INT16_C( 27972), -INT16_C( 10849), INT16_C( 26125), INT16_C( 26081), INT16_C( 4045), -INT16_C( 18888), -INT16_C( 21268), -INT16_C( 26649), -INT16_C( 2554), -INT16_C( 19247), -INT16_C( 31899), INT16_C( 2875), -INT16_C( 5019), INT16_C( 3606), -INT16_C( 18408), INT16_C( 23886), -INT16_C( 4571), INT16_C( 12850), INT16_C( 4948), INT16_C( 8599), -INT16_C( 12253), INT16_C( 4055), -INT16_C( 16516), -INT16_C( 32090), INT16_C( 30901), INT16_C( 6966), INT16_C( 29179), INT16_C( 24614), INT16_C( 15454), INT16_C( 30318) }, { INT16_C( 25928), INT16_C( 1296), INT16_C( 27168), -INT16_C( 21256), INT16_C( 12392), INT16_C( 12040), INT16_C( 32360), -INT16_C( 20032), INT16_C( 26464), -INT16_C( 16584), -INT16_C( 20432), -INT16_C( 22904), INT16_C( 6952), INT16_C( 23000), INT16_C( 25384), INT16_C( 28848), -INT16_C( 16192), -INT16_C( 5520), INT16_C( 28968), -INT16_C( 28272), -INT16_C( 25952), INT16_C( 3256), -INT16_C( 32488), INT16_C( 32440), -INT16_C( 1056), INT16_C( 5424), -INT16_C( 14936), -INT16_C( 9808), -INT16_C( 28712), INT16_C( 304), -INT16_C( 7440), -INT16_C( 19600) }, { INT16_C( 21632), INT16_C( 20736), -INT16_C( 24064), -INT16_C( 12416), INT16_C( 1664), -INT16_C( 3968), -INT16_C( 6528), INT16_C( 7168), INT16_C( 30208), -INT16_C( 3200), INT16_C( 768), INT16_C( 26752), -INT16_C( 19840), -INT16_C( 25216), INT16_C( 12928), INT16_C( 2816), INT16_C( 3072), -INT16_C( 22784), INT16_C( 4736), INT16_C( 6400), -INT16_C( 22016), -INT16_C( 13440), INT16_C( 4480), -INT16_C( 5248), -INT16_C( 16896), INT16_C( 21248), INT16_C( 23168), -INT16_C( 25856), -INT16_C( 640), INT16_C( 4864), INT16_C( 12032), INT16_C( 14080) }, { INT16_C( 8192), INT16_C( 16384), INT16_MIN, -INT16_C( 8192), -INT16_C( 24576), INT16_C( 8192), -INT16_C( 24576), INT16_C( 0), INT16_MIN, -INT16_C( 8192), -INT16_C( 16384), INT16_C( 8192), -INT16_C( 24576), INT16_C( 24576), -INT16_C( 24576), -INT16_C( 16384), INT16_C( 0), -INT16_C( 16384), -INT16_C( 24576), INT16_C( 16384), INT16_MIN, -INT16_C( 8192), INT16_C( 24576), -INT16_C( 8192), INT16_MIN, -INT16_C( 16384), -INT16_C( 24576), -INT16_C( 16384), INT16_C( 24576), -INT16_C( 16384), -INT16_C( 16384), -INT16_C( 16384) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { { -INT16_C( 16907), INT16_C( 6867), INT16_C( 1451), -INT16_C( 179), -INT16_C( 7143), INT16_C( 15393), -INT16_C( 1868), INT16_C( 12363), -INT16_C( 3401), INT16_C( 28082), -INT16_C( 6038), INT16_C( 25992), -INT16_C( 20902), -INT16_C( 18235), INT16_C( 13290), -INT16_C( 8402), INT16_C( 752), -INT16_C( 25606), INT16_C( 18183), INT16_C( 8347), -INT16_C( 17365), -INT16_C( 8100), -INT16_C( 22348), INT16_C( 27664), -INT16_C( 15462), INT16_C( 1241), INT16_C( 25003), INT16_C( 1385), INT16_C( 11791), -INT16_C( 1603), -INT16_C( 5023), INT16_C( 21209) }, { -INT16_C( 16907), INT16_C( 6867), INT16_C( 1451), -INT16_C( 179), -INT16_C( 7143), INT16_C( 15393), -INT16_C( 1868), INT16_C( 12363), -INT16_C( 3401), INT16_C( 28082), -INT16_C( 6038), INT16_C( 25992), -INT16_C( 20902), -INT16_C( 18235), INT16_C( 13290), -INT16_C( 8402), INT16_C( 752), -INT16_C( 25606), INT16_C( 18183), INT16_C( 8347), -INT16_C( 17365), -INT16_C( 8100), -INT16_C( 22348), INT16_C( 27664), -INT16_C( 15462), INT16_C( 1241), INT16_C( 25003), INT16_C( 1385), INT16_C( 11791), -INT16_C( 1603), -INT16_C( 5023), INT16_C( 21209) }, { -INT16_C( 4184), -INT16_C( 10600), INT16_C( 11608), -INT16_C( 1432), INT16_C( 8392), -INT16_C( 7928), -INT16_C( 14944), -INT16_C( 32168), -INT16_C( 27208), INT16_C( 28048), INT16_C( 17232), INT16_C( 11328), INT16_C( 29392), -INT16_C( 14808), -INT16_C( 24752), -INT16_C( 1680), INT16_C( 6016), -INT16_C( 8240), INT16_C( 14392), INT16_C( 1240), -INT16_C( 7848), INT16_C( 736), INT16_C( 17824), INT16_C( 24704), INT16_C( 7376), INT16_C( 9928), INT16_C( 3416), INT16_C( 11080), INT16_C( 28792), -INT16_C( 12824), INT16_C( 25352), -INT16_C( 26936) }, { -INT16_C( 1408), INT16_C( 27008), -INT16_C( 10880), -INT16_C( 22912), INT16_C( 3200), INT16_C( 4224), INT16_C( 23040), INT16_C( 9600), INT16_C( 23424), -INT16_C( 9984), INT16_C( 13568), -INT16_C( 15360), INT16_C( 11520), INT16_C( 25216), -INT16_C( 2816), -INT16_C( 26880), INT16_C( 30720), -INT16_C( 768), -INT16_C( 31872), INT16_C( 19840), INT16_C( 5504), INT16_C( 11776), INT16_C( 23040), INT16_C( 2048), -INT16_C( 13056), INT16_C( 27776), -INT16_C( 10880), -INT16_C( 19328), INT16_C( 1920), -INT16_C( 8576), INT16_C( 12416), INT16_C( 27776) }, { -INT16_C( 24576), INT16_C( 24576), INT16_C( 24576), -INT16_C( 24576), INT16_C( 8192), INT16_C( 8192), INT16_MIN, INT16_C( 24576), -INT16_C( 8192), INT16_C( 16384), INT16_C( 16384), INT16_C( 0), INT16_C( 16384), -INT16_C( 24576), INT16_C( 16384), -INT16_C( 16384), INT16_C( 0), INT16_C( 16384), -INT16_C( 8192), INT16_C( 24576), INT16_C( 24576), INT16_MIN, INT16_MIN, INT16_C( 0), INT16_C( 16384), INT16_C( 8192), INT16_C( 24576), INT16_C( 8192), -INT16_C( 8192), -INT16_C( 24576), INT16_C( 8192), INT16_C( 8192) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a); simde__m512i r0 = simde_mm512_slli_epi16(a, 0); simde_test_x86_assert_equal_i16x32(r0, simde_mm512_loadu_epi16(test_vec[i].r0)); simde__m512i r3 = simde_mm512_slli_epi16(a, 3); simde_test_x86_assert_equal_i16x32(r3, simde_mm512_loadu_epi16(test_vec[i].r3)); simde__m512i r7 = simde_mm512_slli_epi16(a, 7); simde_test_x86_assert_equal_i16x32(r7, simde_mm512_loadu_epi16(test_vec[i].r7)); simde__m512i r13 = simde_mm512_slli_epi16(a, 13); simde_test_x86_assert_equal_i16x32(r13, simde_mm512_loadu_epi16(test_vec[i].r13)); simde__m512i r24 = simde_mm512_slli_epi16(a, 24); simde_test_x86_assert_equal_i16x32(r24, simde_mm512_loadu_epi16(test_vec[i].r24)); } return 0; } static int test_simde_mm512_slli_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; unsigned int b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi32(INT32_C( -687706949), INT32_C( 1593775683), INT32_C( 332932989), INT32_C( 583872054), INT32_C( 1838832857), INT32_C( 847835558), INT32_C(-1396128258), INT32_C( -183977070), INT32_C( -902383138), INT32_C( -512492201), INT32_C(-1812249336), INT32_C( -562835271), INT32_C(-1029714159), INT32_C( 1476158556), INT32_C( 877549641), INT32_C( 1218378177)), 0xac, simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0)) }, { simde_mm512_set_epi32(INT32_C( 241549121), INT32_C( 1732816264), INT32_C( 875489890), INT32_C( 72071518), INT32_C(-1641761300), INT32_C( 313288882), INT32_C(-1735158939), INT32_C( 1219761116), INT32_C( 877921588), INT32_C( 2045964482), INT32_C( -360092415), INT32_C(-1302958505), INT32_C(-1122092800), INT32_C( -177019481), INT32_C( 875636041), INT32_C( -150268654)), 0x8017, simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0)) }, { simde_mm512_set_epi32(INT32_C( -52534216), INT32_C( -794188551), INT32_C( -186449823), INT32_C( 1580979103), INT32_C( -972993456), INT32_C( -666426563), INT32_C( -645023430), INT32_C(-1043227266), INT32_C( 1237525980), INT32_C( 349749966), INT32_C( -978999744), INT32_C( -487689408), INT32_C( 898649460), INT32_C(-1217796896), INT32_C( 1277301360), INT32_C( 1454357892)), 0x10, simde_mm512_set_epi32(INT32_C( 1681391616), INT32_C(-1527185408), INT32_C( 6356992), INT32_C( -744554496), INT32_C( 1280311296), INT32_C( 591200256), INT32_C(-1187381248), INT32_C(-1652686848), INT32_C( 635174912), INT32_C(-1026686976), INT32_C(-1505755136), INT32_C( 1933574144), INT32_C( 1299447808), INT32_C( -455081984), INT32_C( 309329920), INT32_C(-1115422720)) }, { simde_mm512_set_epi32(INT32_C(-1898779532), INT32_C( 1141724513), INT32_C( -782352739), INT32_C( 973072470), INT32_C( 1112939167), INT32_C( 368903984), INT32_C( 1631675339), INT32_C( -86505288), INT32_C( 2011287771), INT32_C( 1938765310), INT32_C( 2078191935), INT32_C( -616151900), INT32_C( -454977425), INT32_C( 544105809), INT32_C(-1307935124), INT32_C(-1400984309)), 0xa, simde_mm512_set_epi32(INT32_C( 1269944320), INT32_C( 894796800), INT32_C( 2029679616), INT32_C( -6203392), INT32_C( 1483373568), INT32_C( -199442432), INT32_C( 93268992), INT32_C( 1612898304), INT32_C(-2025624576), INT32_C( 1020786688), INT32_C( 2059729920), INT32_C( 420646912), INT32_C(-2040415232), INT32_C(-1181400064), INT32_C( 704229376), INT32_C( -88855552)) }, { simde_mm512_set_epi32(INT32_C( -955538666), INT32_C( 1399393330), INT32_C( 1832782688), INT32_C(-1931362608), INT32_C(-1247233529), INT32_C( -537843102), INT32_C( -120831887), INT32_C( 1329473476), INT32_C( 1569899726), INT32_C( 920247722), INT32_C( 275348332), INT32_C( 1640312018), INT32_C( -873496512), INT32_C( 957396290), INT32_C( 390504842), INT32_C( 1781792417)), 0xf, simde_mm512_set_epi32(INT32_C( -779419648), INT32_C(-2045181952), INT32_C( 95420416), INT32_C( -546832384), INT32_C( 1560510464), INT32_C(-1791950848), INT32_C( 540573696), INT32_C( 333578240), INT32_C( 1650917376), INT32_C( -288030720), INT32_C(-1112145920), INT32_C(-1771503616), INT32_C(-1071644672), INT32_C( 1520500736), INT32_C( 1355087872), INT32_C( -11501568)) }, { simde_mm512_set_epi32(INT32_C( 188085108), INT32_C( 489074602), INT32_C( 1720231560), INT32_C( 106164094), INT32_C( 1250223633), INT32_C( -962071158), INT32_C( 38255424), INT32_C( 801121683), INT32_C(-1580720854), INT32_C( 609844423), INT32_C( 44983522), INT32_C( 481953328), INT32_C( -181212371), INT32_C( 912186226), INT32_C( -42587351), INT32_C( 680089879)), 0x18, simde_mm512_set_epi32(INT32_C( 1946157056), INT32_C(-1442840576), INT32_C(-2013265920), INT32_C( 2113929216), INT32_C( 285212672), INT32_C(-1979711488), INT32_C( 1073741824), INT32_C(-1828716544), INT32_C( 704643072), INT32_C( -956301312), INT32_C( -503316480), INT32_C( 805306368), INT32_C( 754974720), INT32_C( 1912602624), INT32_C( 687865856), INT32_C( 385875968)) }, { simde_mm512_set_epi32(INT32_C(-1878529143), INT32_C( 968369206), INT32_C(-2025408372), INT32_C( -521427427), INT32_C( 750337953), INT32_C( 1599422728), INT32_C( 1832999614), INT32_C( -922516627), INT32_C( 1054703043), INT32_C( -229764941), INT32_C(-1888970968), INT32_C( -770679003), INT32_C( 957667650), INT32_C(-1367078699), INT32_C( 400185050), INT32_C( 619858989)), 0, simde_mm512_set_epi32(INT32_C(-1878529143), INT32_C( 968369206), INT32_C(-2025408372), INT32_C( -521427427), INT32_C( 750337953), INT32_C( 1599422728), INT32_C( 1832999614), INT32_C( -922516627), INT32_C( 1054703043), INT32_C( -229764941), INT32_C(-1888970968), INT32_C( -770679003), INT32_C( 957667650), INT32_C(-1367078699), INT32_C( 400185050), INT32_C( 619858989)) }, { simde_mm512_set_epi32(INT32_C( -939632719), INT32_C( 1727963384), INT32_C( 1880331239), INT32_C( 699090974), INT32_C( 1068401563), INT32_C(-1558361689), INT32_C(-1814494206), INT32_C( 1865180366), INT32_C(-1767733366), INT32_C(-1147256695), INT32_C(-1631901793), INT32_C( -198157319), INT32_C( 285018015), INT32_C( 583696937), INT32_C( 1785762602), INT32_C(-1724046997)), 0x16, simde_mm512_set_epi32(INT32_C( -331350016), INT32_C( 1040187392), INT32_C( -104857600), INT32_C( 125829120), INT32_C( -423624704), INT32_C( 1774190592), INT32_C( 8388608), INT32_C( 864026624), INT32_C( -494927872), INT32_C( 574619648), INT32_C( -406847488), INT32_C( -29360128), INT32_C( -406847488), INT32_C(-1975517184), INT32_C( -897581056), INT32_C( 1522532352)) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_slli_epi32(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i32(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_slli_epi64(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; unsigned int b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi64(INT64_C(-2953678853593164221), INT64_C( 1429936300098399798), INT64_C( 7897726984473080230), INT64_C(-5996325205020460142), INT64_C(-3875706062389379753), INT64_C(-7783551626585583431), INT64_C(-4422588635656985508), INT64_C( 3769047009929918913)), 0xac, simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0)) }, { simde_mm512_set_epi64(INT64_C( 1037445576805363080), INT64_C( 3760200445600708958), INT64_C(-7051311091025155918), INT64_C(-7452450895147297828), INT64_C( 3770644510958350530), INT64_C(-1546585142970651049), INT64_C(-4819351874959120985), INT64_C( 3760828163438613778)), 0x8017, simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0)) }, { simde_mm512_set_epi64(INT64_C( -225632736140221191), INT64_C( -800795890549009505), INT64_C(-4178975069113474243), INT64_C(-2770354533752005250), INT64_C( 5315133612400100046), INT64_C(-4204771879465094336), INT64_C( 3859670044345230560), INT64_C( 5485967569790680452)), 0x10, simde_mm512_set_epi64(INT64_C( 7221751429524422656), INT64_C( 27406683787427840), INT64_C( 5499132945064853504), INT64_C(-5099550522009059328), INT64_C( 2728078395493449728), INT64_C(-6466919551140364288), INT64_C( 5581287503658221568), INT64_C( 1328657202873106432)) }, { simde_mm512_set_epi64(INT64_C( 854012069371251830), INT64_C(-7338075353641633319), INT64_C(-3664756911608965568), INT64_C( 6190577389993756354), INT64_C(-5695521678932466387), INT64_C( 8986269833406294113), INT64_C(-6594347992267195055), INT64_C( 897886006004895547)), 0x2a, simde_mm512_set_epi64(INT64_C( 1455181649128980480), INT64_C(-8005319861464989696), INT64_C(-8117456853358608384), INT64_C(-7918726723707863040), INT64_C(-4137484245553643520), INT64_C( -675113333593997312), INT64_C( 7635083510067232768), INT64_C(-2504867807980683264)) }, { simde_mm512_set_epi64(INT64_C( 6876450537877586373), INT64_C(-2498836913726354503), INT64_C(-5925650014767999746), INT64_C(-5091981247482556140), INT64_C( 2276397305581596841), INT64_C( 4333846664358463853), INT64_C( -724672155607878887), INT64_C( 3417746373838389455)), 0x2a, simde_mm512_set_epi64(INT64_C( -934756407423533056), INT64_C(-3157335600089006080), INT64_C(-2570438283414732800), INT64_C( 7513218039291052032), INT64_C( 7188488275143688192), INT64_C( 7216371890024087552), INT64_C(-9165841190443024384), INT64_C( 1225889494272573440)) }, { simde_mm512_set_epi64(INT64_C(-8036497785869311574), INT64_C( 3581702479948115598), INT64_C( 748249211564829520), INT64_C( -816680525172154454), INT64_C(-4839891842343135042), INT64_C(-6001583230129728210), INT64_C(-4279294013059977744), INT64_C(-1555144075545091790)), 0x26, simde_mm512_set_epi64(INT64_C(-4397647938138931200), INT64_C( 2043406626093793280), INT64_C(-5590422890961960960), INT64_C(-8604150727591329792), INT64_C( 8423472379845410816), INT64_C(-8411233715916636160), INT64_C(-8742757912167841792), INT64_C(-6541394346116120576)) }, { simde_mm512_set_epi64(INT64_C(-6276545081940248579), INT64_C(-9016855820360504888), INT64_C( 2589347389053699338), INT64_C(-6212989007002338187), INT64_C( 5925964847698460032), INT64_C( 8758478916256841908), INT64_C( 5134329058456078862), INT64_C(-4414137185393506410)), 0x18, simde_mm512_set_epi64(INT64_C(-9176583453456465920), INT64_C( 7465982649455083520), INT64_C(-4954907897243893760), INT64_C( 7673069422566703104), INT64_C(-6790719338690117632), INT64_C( 3134572139001151488), INT64_C( 1398716822424911872), INT64_C(-7065366029995606016)) }, { simde_mm512_set_epi64(INT64_C(-4035691796628594440), INT64_C( 8075961177851250718), INT64_C( 4588749774816889255), INT64_C(-7793193271686306610), INT64_C(-7592356991870287735), INT64_C(-7008964827121951751), INT64_C( 1224143053779534377), INT64_C( 7669791976580784491)), 0x16, simde_mm512_set_epi64(INT64_C(-1415889878515712000), INT64_C( -447427762668437504), INT64_C(-1807976093613817856), INT64_C( 43851930488799232), INT64_C(-2112496568954257408), INT64_C(-1730213388945981440), INT64_C(-1744948453022105600), INT64_C(-3844298059735367680)) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_slli_epi64(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i64(r, ==, test_vec[i].r); } return 0; } SIMDE_TEST_FUNC_LIST_BEGIN SIMDE_TEST_FUNC_LIST_ENTRY(mm512_slli_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_slli_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_slli_epi64) SIMDE_TEST_FUNC_LIST_END #include