libdpf/thirdparty/simde/test/x86/avx512/mov.c

3876 lines
285 KiB
C
Raw Normal View History

/* 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 <evan@nemerson.com>
* 2020 Christopher Moore <moore@free.fr>
*/
#define SIMDE_TEST_X86_AVX512_INSN mov
#include <test/x86/avx512/test-avx512.h>
#include <simde/x86/avx512/mov.h>
static int
test_simde_mm_mask_mov_epi8(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m128i src;
simde__mmask16 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ simde_mm_set_epi8(INT8_C( -98), INT8_C( -63), INT8_C( -58), INT8_C( 25),
INT8_C( 9), INT8_C( 49), INT8_C( -12), INT8_C( -31),
INT8_C( -48), INT8_C( 0), INT8_C( -99), INT8_C( -81),
INT8_C( -77), INT8_C( 27), INT8_C( -33), INT8_C(-124)),
UINT16_C(64699),
simde_mm_set_epi8(INT8_C( 79), INT8_C( 100), INT8_C(-123), INT8_C( 95),
INT8_C( -79), INT8_C( 48), INT8_C( 112), INT8_C( 8),
INT8_C( 69), INT8_C( -78), INT8_C( 54), INT8_C( -48),
INT8_C(-119), INT8_C( -5), INT8_C( -97), INT8_C( -44)),
simde_mm_set_epi8(INT8_C( 79), INT8_C( 100), INT8_C(-123), INT8_C( 95),
INT8_C( -79), INT8_C( 48), INT8_C( -12), INT8_C( -31),
INT8_C( 69), INT8_C( 0), INT8_C( 54), INT8_C( -48),
INT8_C(-119), INT8_C( 27), INT8_C( -97), INT8_C( -44)) },
{ simde_mm_set_epi8(INT8_C( 47), INT8_C( 36), INT8_C( 45), INT8_C( -44),
INT8_C( 27), INT8_C( -15), INT8_C( 105), INT8_C( -69),
INT8_C( -10), INT8_C( 1), INT8_C( 12), INT8_C( -44),
INT8_C( -32), INT8_C( 113), INT8_C( 105), INT8_C( -92)),
UINT16_C(33046),
simde_mm_set_epi8(INT8_C(-118), INT8_C( -61), INT8_C( 108), INT8_C( 4),
INT8_C( 56), INT8_C( 96), INT8_C( -73), INT8_C( -39),
INT8_C(-112), INT8_C(-115), INT8_C(-113), INT8_C( -74),
INT8_C( -79), INT8_C(-116), INT8_C( 117), INT8_C( -3)),
simde_mm_set_epi8(INT8_C(-118), INT8_C( 36), INT8_C( 45), INT8_C( -44),
INT8_C( 27), INT8_C( -15), INT8_C( 105), INT8_C( -39),
INT8_C( -10), INT8_C( 1), INT8_C( 12), INT8_C( -74),
INT8_C( -32), INT8_C(-116), INT8_C( 117), INT8_C( -92)) },
{ simde_mm_set_epi8(INT8_C( 41), INT8_C(-106), INT8_C( -67), INT8_C(-116),
INT8_C( -34), INT8_C( 21), INT8_C( 64), INT8_C( 44),
INT8_C( 97), INT8_C( -46), INT8_C( 122), INT8_C( 42),
INT8_C( -54), INT8_C( -79), INT8_C( 21), INT8_C( 59)),
UINT16_C(27487),
simde_mm_set_epi8(INT8_C( 6), INT8_C(-124), INT8_C(-111), INT8_C( -39),
INT8_C( 55), INT8_C( -55), INT8_C( -72), INT8_C( 77),
INT8_C( 51), INT8_C(-103), INT8_C( -80), INT8_C( 75),
INT8_C( -87), INT8_C(-120), INT8_C( -14), INT8_C( 99)),
simde_mm_set_epi8(INT8_C( 41), INT8_C(-124), INT8_C(-111), INT8_C(-116),
INT8_C( 55), INT8_C( 21), INT8_C( -72), INT8_C( 77),
INT8_C( 97), INT8_C(-103), INT8_C( 122), INT8_C( 75),
INT8_C( -87), INT8_C(-120), INT8_C( -14), INT8_C( 99)) },
{ simde_mm_set_epi8(INT8_C( 31), INT8_C( -90), INT8_C(-127), INT8_C( 105),
INT8_C( -89), INT8_C(-121), INT8_C(-110), INT8_C( -58),
INT8_C( -95), INT8_C(-101), INT8_C( -56), INT8_C( 22),
INT8_C( 18), INT8_C( 2), INT8_C( 46), INT8_C(-125)),
UINT16_C(48165),
simde_mm_set_epi8(INT8_C( 103), INT8_C( 26), INT8_C( 108), INT8_C( 4),
INT8_C( -49), INT8_C( -62), INT8_C(-103), INT8_C( -42),
INT8_C( 103), INT8_C( 115), INT8_C( 126), INT8_C(-112),
INT8_C( -81), INT8_C( -35), INT8_C(-106), INT8_C( 45)),
simde_mm_set_epi8(INT8_C( 103), INT8_C( -90), INT8_C( 108), INT8_C( 4),
INT8_C( -49), INT8_C( -62), INT8_C(-110), INT8_C( -58),
INT8_C( -95), INT8_C(-101), INT8_C( 126), INT8_C( 22),
INT8_C( 18), INT8_C( -35), INT8_C( 46), INT8_C( 45)) },
{ simde_mm_set_epi8(INT8_C( 106), INT8_C( 23), INT8_C( -78), INT8_C( -57),
INT8_C( 24), INT8_C( 56), INT8_C( -46), INT8_C( -15),
INT8_C( -33), INT8_C( 28), INT8_C( -40), INT8_C(-116),
INT8_C( -34), INT8_C( 92), INT8_C( 109), INT8_C( 33)),
UINT16_C(14870),
simde_mm_set_epi8(INT8_C( -75), INT8_C( 55), INT8_C(-127), INT8_C( 70),
INT8_C( 78), INT8_C( 126), INT8_C( -96), INT8_C( 119),
INT8_C( 108), INT8_C( 50), INT8_C( 17), INT8_C( -71),
INT8_C( 127), INT8_C( 91), INT8_C( 110), INT8_C( -90)),
simde_mm_set_epi8(INT8_C( 106), INT8_C( 23), INT8_C(-127), INT8_C( 70),
INT8_C( 78), INT8_C( 56), INT8_C( -96), INT8_C( -15),
INT8_C( -33), INT8_C( 28), INT8_C( -40), INT8_C( -71),
INT8_C( -34), INT8_C( 91), INT8_C( 110), INT8_C( 33)) },
{ simde_mm_set_epi8(INT8_C( -21), INT8_C(-122), INT8_C(-127), INT8_C( 95),
INT8_C( -34), INT8_C( -51), INT8_C( 107), INT8_C( 75),
INT8_C( 63), INT8_C(-117), INT8_C(-118), INT8_C( 52),
INT8_C( 15), INT8_C( 123), INT8_C( -76), INT8_C(-117)),
UINT16_C(54314),
simde_mm_set_epi8(INT8_C( 124), INT8_C( -12), INT8_C( 0), INT8_C( -14),
INT8_C( -54), INT8_C( 92), INT8_C( 73), INT8_C( 69),
INT8_C( -47), INT8_C( -62), INT8_C( 113), INT8_C( 100),
INT8_C( 31), INT8_C( -98), INT8_C( -86), INT8_C( 19)),
simde_mm_set_epi8(INT8_C( 124), INT8_C( -12), INT8_C(-127), INT8_C( -14),
INT8_C( -34), INT8_C( 92), INT8_C( 107), INT8_C( 75),
INT8_C( 63), INT8_C(-117), INT8_C( 113), INT8_C( 52),
INT8_C( 31), INT8_C( 123), INT8_C( -86), INT8_C(-117)) },
{ simde_mm_set_epi8(INT8_C( -9), INT8_C( -43), INT8_C( 83), INT8_C( 21),
INT8_C( 88), INT8_C( -52), INT8_C(-115), INT8_C( 63),
INT8_C( 92), INT8_C( -15), INT8_C( -24), INT8_C( -84),
INT8_C(-120), INT8_C( -96), INT8_C( 46), INT8_C( -78)),
UINT16_C(44998),
simde_mm_set_epi8(INT8_C( -10), INT8_C( 79), INT8_C(-113), INT8_C( -93),
INT8_C( 24), INT8_C( 78), INT8_C( 40), INT8_C( 22),
INT8_C( 31), INT8_C( -15), INT8_C( -8), INT8_C( 60),
INT8_C( 114), INT8_C( -85), INT8_C(-105), INT8_C( -47)),
simde_mm_set_epi8(INT8_C( -10), INT8_C( -43), INT8_C(-113), INT8_C( 21),
INT8_C( 24), INT8_C( 78), INT8_C( 40), INT8_C( 22),
INT8_C( 31), INT8_C( -15), INT8_C( -24), INT8_C( -84),
INT8_C(-120), INT8_C( -85), INT8_C(-105), INT8_C( -78)) },
{ simde_mm_set_epi8(INT8_C( -62), INT8_C( 117), INT8_C(-114), INT8_C( 7),
INT8_C( 17), INT8_C( 123), INT8_C( -2), INT8_C( -15),
INT8_C(-120), INT8_C( 77), INT8_C( 81), INT8_C( -39),
INT8_C(-114), INT8_C( -52), INT8_C(-119), INT8_C( 82)),
UINT16_C(48425),
simde_mm_set_epi8(INT8_C( 68), INT8_C( -65), INT8_C( 13), INT8_C( -27),
INT8_C( 55), INT8_C( 2), INT8_C( -43), INT8_C( 9),
INT8_C( -57), INT8_C( 65), INT8_C(-111), INT8_C( -60),
INT8_C( 75), INT8_C( 74), INT8_C( 16), INT8_C( 19)),
simde_mm_set_epi8(INT8_C( 68), INT8_C( 117), INT8_C( 13), INT8_C( -27),
INT8_C( 55), INT8_C( 2), INT8_C( -2), INT8_C( 9),
INT8_C(-120), INT8_C( 77), INT8_C(-111), INT8_C( -39),
INT8_C( 75), INT8_C( -52), INT8_C(-119), INT8_C( 19)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_mask_mov_epi8(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i8(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_mask_mov_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m128i src;
simde__mmask8 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ simde_mm_set_epi16(INT16_C(-14576), INT16_C( 14205), INT16_C( -2433), INT16_C(-27972),
INT16_C( 6192), INT16_C(-29093), INT16_C( 24144), INT16_C(-19045)),
UINT8_C(231),
simde_mm_set_epi16(INT16_C(-16025), INT16_C( -5226), INT16_C( -6596), INT16_C(-11796),
INT16_C(-24692), INT16_C( 20335), INT16_C( 26237), INT16_C( 23499)),
simde_mm_set_epi16(INT16_C(-16025), INT16_C( -5226), INT16_C( -6596), INT16_C(-27972),
INT16_C( 6192), INT16_C( 20335), INT16_C( 26237), INT16_C( 23499)) },
{ simde_mm_set_epi16(INT16_C( -839), INT16_C(-10951), INT16_C( 1310), INT16_C( -6285),
INT16_C(-21252), INT16_C( -7582), INT16_C(-12381), INT16_C( 24902)),
UINT8_C( 7),
simde_mm_set_epi16(INT16_C( -3233), INT16_C( 25022), INT16_C(-12043), INT16_C( 17022),
INT16_C(-25543), INT16_C(-17145), INT16_C( 8881), INT16_C( 28844)),
simde_mm_set_epi16(INT16_C( -839), INT16_C(-10951), INT16_C( 1310), INT16_C( -6285),
INT16_C(-21252), INT16_C(-17145), INT16_C( 8881), INT16_C( 28844)) },
{ simde_mm_set_epi16(INT16_C( 30807), INT16_C( 12936), INT16_C(-14387), INT16_C(-15179),
INT16_C( 23907), INT16_C(-17160), INT16_C( 23916), INT16_C( 14132)),
UINT8_C(139),
simde_mm_set_epi16(INT16_C( -1315), INT16_C(-31661), INT16_C(-10075), INT16_C(-22609),
INT16_C( 9167), INT16_C( 6456), INT16_C( -7329), INT16_C( -8326)),
simde_mm_set_epi16(INT16_C( -1315), INT16_C( 12936), INT16_C(-14387), INT16_C(-15179),
INT16_C( 9167), INT16_C(-17160), INT16_C( -7329), INT16_C( -8326)) },
{ simde_mm_set_epi16(INT16_C( 26421), INT16_C(-12708), INT16_C( 22525), INT16_C(-31426),
INT16_C( 15010), INT16_C(-27490), INT16_C(-12766), INT16_C(-25791)),
UINT8_C( 65),
simde_mm_set_epi16(INT16_C( -1553), INT16_C(-19304), INT16_C( 20094), INT16_C( -2808),
INT16_C(-12327), INT16_C( 15252), INT16_C( 25789), INT16_C(-23968)),
simde_mm_set_epi16(INT16_C( 26421), INT16_C(-19304), INT16_C( 22525), INT16_C(-31426),
INT16_C( 15010), INT16_C(-27490), INT16_C(-12766), INT16_C(-23968)) },
{ simde_mm_set_epi16(INT16_C( 7823), INT16_C( 19443), INT16_C( 13219), INT16_C( 17015),
INT16_C(-11739), INT16_C(-13030), INT16_C(-14482), INT16_C(-27926)),
UINT8_C(249),
simde_mm_set_epi16(INT16_C(-25131), INT16_C( 30189), INT16_C(-22900), INT16_C( 28700),
INT16_C( 1116), INT16_C( 30184), INT16_C(-12164), INT16_C( -7443)),
simde_mm_set_epi16(INT16_C(-25131), INT16_C( 30189), INT16_C(-22900), INT16_C( 28700),
INT16_C( 1116), INT16_C(-13030), INT16_C(-14482), INT16_C( -7443)) },
{ simde_mm_set_epi16(INT16_C(-26628), INT16_C( 25963), INT16_C(-26322), INT16_C( -8077),
INT16_C(-22868), INT16_C( 28633), INT16_C( -4168), INT16_C( 28595)),
UINT8_C(112),
simde_mm_set_epi16(INT16_C( 14185), INT16_C( -5351), INT16_C( -8435), INT16_C(-11233),
INT16_C( -8273), INT16_C(-29718), INT16_C( -8221), INT16_C( 18236)),
simde_mm_set_epi16(INT16_C(-26628), INT16_C( -5351), INT16_C( -8435), INT16_C(-11233),
INT16_C(-22868), INT16_C( 28633), INT16_C( -4168), INT16_C( 28595)) },
{ simde_mm_set_epi16(INT16_C(-14557), INT16_C(-28064), INT16_C( 11696), INT16_C(-19213),
INT16_C( 15613), INT16_C( 26380), INT16_C( 30063), INT16_C( 26293)),
UINT8_C( 24),
simde_mm_set_epi16(INT16_C( 23790), INT16_C( 10772), INT16_C( -8418), INT16_C(-27527),
INT16_C( -163), INT16_C( 10898), INT16_C(-12995), INT16_C( 287)),
simde_mm_set_epi16(INT16_C(-14557), INT16_C(-28064), INT16_C( 11696), INT16_C(-27527),
INT16_C( -163), INT16_C( 26380), INT16_C( 30063), INT16_C( 26293)) },
{ simde_mm_set_epi16(INT16_C(-14768), INT16_C(-23816), INT16_C(-22775), INT16_C( -4812),
INT16_C(-19595), INT16_C(-14349), INT16_C( 11039), INT16_C( 15081)),
UINT8_C( 22),
simde_mm_set_epi16(INT16_C( 27063), INT16_C( 8226), INT16_C(-13582), INT16_C( 14344),
INT16_C(-27643), INT16_C( -1125), INT16_C(-27147), INT16_C( -4132)),
simde_mm_set_epi16(INT16_C(-14768), INT16_C(-23816), INT16_C(-22775), INT16_C( 14344),
INT16_C(-19595), INT16_C( -1125), INT16_C(-27147), INT16_C( 15081)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_mask_mov_epi16(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i16(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_mask_mov_epi32(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m128i src;
simde__mmask8 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ simde_mm_set_epi32(INT32_C(-1311777535), INT32_C( 871351059), INT32_C(-1795529748), INT32_C(-1018886524)),
UINT8_C(193),
simde_mm_set_epi32(INT32_C(-1402384713), INT32_C( 349677639), INT32_C(-2062419968), INT32_C(-2110667873)),
simde_mm_set_epi32(INT32_C(-1311777535), INT32_C( 871351059), INT32_C(-1795529748), INT32_C(-2110667873)) },
{ simde_mm_set_epi32(INT32_C( 738895957), INT32_C(-2052149671), INT32_C( 1275190943), INT32_C(-1073987906)),
UINT8_C(211),
simde_mm_set_epi32(INT32_C( 899624021), INT32_C(-1740875066), INT32_C( 196568235), INT32_C( 146964985)),
simde_mm_set_epi32(INT32_C( 738895957), INT32_C(-2052149671), INT32_C( 196568235), INT32_C( 146964985)) },
{ simde_mm_set_epi32(INT32_C( 692992965), INT32_C( 836600954), INT32_C(-1461227321), INT32_C( -625910795)),
UINT8_C(122),
simde_mm_set_epi32(INT32_C(-1617549669), INT32_C( 1989374100), INT32_C(-1502577107), INT32_C(-1017994073)),
simde_mm_set_epi32(INT32_C(-1617549669), INT32_C( 836600954), INT32_C(-1502577107), INT32_C( -625910795)) },
{ simde_mm_set_epi32(INT32_C( 1143677167), INT32_C( 846204550), INT32_C( -804913221), INT32_C( 1445583278)),
UINT8_C(231),
simde_mm_set_epi32(INT32_C(-1730413187), INT32_C(-1695584840), INT32_C( -227526716), INT32_C( -3425875)),
simde_mm_set_epi32(INT32_C( 1143677167), INT32_C(-1695584840), INT32_C( -227526716), INT32_C( -3425875)) },
{ simde_mm_set_epi32(INT32_C( 645689114), INT32_C(-2084714818), INT32_C( 1764055823), INT32_C( 52635923)),
UINT8_C( 92),
simde_mm_set_epi32(INT32_C(-1571852402), INT32_C( 630152776), INT32_C( -128726906), INT32_C( 1269444726)),
simde_mm_set_epi32(INT32_C(-1571852402), INT32_C( 630152776), INT32_C( 1764055823), INT32_C( 52635923)) },
{ simde_mm_set_epi32(INT32_C( 1563221), INT32_C( -134802286), INT32_C( 714712077), INT32_C(-1827172967)),
UINT8_C( 81),
simde_mm_set_epi32(INT32_C( 1929131576), INT32_C(-1816110300), INT32_C( 1278219947), INT32_C( 1799312980)),
simde_mm_set_epi32(INT32_C( 1563221), INT32_C( -134802286), INT32_C( 714712077), INT32_C( 1799312980)) },
{ simde_mm_set_epi32(INT32_C( 398082434), INT32_C(-1574168894), INT32_C( -78364073), INT32_C(-1210427726)),
UINT8_C( 81),
simde_mm_set_epi32(INT32_C( -743499294), INT32_C(-2007549651), INT32_C( 404949426), INT32_C(-1228263526)),
simde_mm_set_epi32(INT32_C( 398082434), INT32_C(-1574168894), INT32_C( -78364073), INT32_C(-1228263526)) },
{ simde_mm_set_epi32(INT32_C( -588057094), INT32_C(-1885829296), INT32_C( 1969228625), INT32_C( 1326338893)),
UINT8_C(219),
simde_mm_set_epi32(INT32_C( 1932026039), INT32_C(-1013786585), INT32_C( 1485053584), INT32_C( 1979373999)),
simde_mm_set_epi32(INT32_C( 1932026039), INT32_C(-1885829296), INT32_C( 1485053584), INT32_C( 1979373999)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_mask_mov_epi32(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i32(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_mask_mov_epi64(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m128i src;
simde__mmask8 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ simde_mm_set_epi64x(INT64_C( 2277107027088284737), INT64_C( -794576880036979785)),
UINT8_C(133),
simde_mm_set_epi64x(INT64_C( 8097713530582561529), INT64_C( 1585963766693842069)),
simde_mm_set_epi64x(INT64_C( 2277107027088284737), INT64_C( 1585963766693842069)) },
{ simde_mm_set_epi64x(INT64_C( 386114209698075166), INT64_C( 5207265957388900927)),
UINT8_C(158),
simde_mm_set_epi64x(INT64_C( 8803705323655107871), INT64_C(-8422781366242531322)),
simde_mm_set_epi64x(INT64_C( 8803705323655107871), INT64_C( 5207265957388900927)) },
{ simde_mm_set_epi64x(INT64_C(-2685854854617637911), INT64_C( 5000183764696508529)),
UINT8_C(188),
simde_mm_set_epi64x(INT64_C( 3366037084418714211), INT64_C(-4379786006937181803)),
simde_mm_set_epi64x(INT64_C(-2685854854617637911), INT64_C( 5000183764696508529)) },
{ simde_mm_set_epi64x(INT64_C( 5087362917606608352), INT64_C( 7748994405920281726)),
UINT8_C( 72),
simde_mm_set_epi64x(INT64_C(-3993157906773187111), INT64_C( 5848124444216740966)),
simde_mm_set_epi64x(INT64_C( 5087362917606608352), INT64_C( 7748994405920281726)) },
{ simde_mm_set_epi64x(INT64_C(-6262495515547444433), INT64_C( 3943684472219148405)),
UINT8_C( 56),
simde_mm_set_epi64x(INT64_C( 6021985363878171356), INT64_C(-9003751561505293092)),
simde_mm_set_epi64x(INT64_C(-6262495515547444433), INT64_C( 3943684472219148405)) },
{ simde_mm_set_epi64x(INT64_C( 7378184861631570903), INT64_C( 5065745925883054243)),
UINT8_C(107),
simde_mm_set_epi64x(INT64_C( 3940656342452910480), INT64_C( 3350136105944417294)),
simde_mm_set_epi64x(INT64_C( 3940656342452910480), INT64_C( 3350136105944417294)) },
{ simde_mm_set_epi64x(INT64_C( 4422823463426654219), INT64_C( 1827699444722609855)),
UINT8_C( 23),
simde_mm_set_epi64x(INT64_C(-2966751886069965026), INT64_C(-8494473672325004777)),
simde_mm_set_epi64x(INT64_C(-2966751886069965026), INT64_C(-8494473672325004777)) },
{ simde_mm_set_epi64x(INT64_C(-8917676865649705108), INT64_C( 6229148348133862992)),
UINT8_C( 48),
simde_mm_set_epi64x(INT64_C(-7968457113297908477), INT64_C(-6793891334661924961)),
simde_mm_set_epi64x(INT64_C(-8917676865649705108), INT64_C( 6229148348133862992)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_mask_mov_epi64(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i64(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_mask_mov_pd(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m128d src;
simde__mmask8 k;
simde__m128d a;
simde__m128d r;
} test_vec[8] = {
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C(210),
simde_mm_set_pd(SIMDE_FLOAT64_C( 55.56), SIMDE_FLOAT64_C( 306.20)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 55.56), SIMDE_FLOAT64_C( 0.00)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C( 7),
simde_mm_set_pd(SIMDE_FLOAT64_C( 202.21), SIMDE_FLOAT64_C( -678.71)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 202.21), SIMDE_FLOAT64_C( -678.71)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C( 50),
simde_mm_set_pd(SIMDE_FLOAT64_C( 680.40), SIMDE_FLOAT64_C( 906.67)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 680.40), SIMDE_FLOAT64_C( 0.00)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C(229),
simde_mm_set_pd(SIMDE_FLOAT64_C( -422.72), SIMDE_FLOAT64_C( 572.83)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 572.83)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C(117),
simde_mm_set_pd(SIMDE_FLOAT64_C( -76.19), SIMDE_FLOAT64_C( -654.60)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -654.60)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C(130),
simde_mm_set_pd(SIMDE_FLOAT64_C( -711.42), SIMDE_FLOAT64_C( -22.70)),
simde_mm_set_pd(SIMDE_FLOAT64_C( -711.42), SIMDE_FLOAT64_C( 0.00)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C( 62),
simde_mm_set_pd(SIMDE_FLOAT64_C( -413.23), SIMDE_FLOAT64_C( 547.52)),
simde_mm_set_pd(SIMDE_FLOAT64_C( -413.23), SIMDE_FLOAT64_C( 0.00)) },
{ simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)),
UINT8_C(165),
simde_mm_set_pd(SIMDE_FLOAT64_C( 575.41), SIMDE_FLOAT64_C( -702.01)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -702.01)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128d r = simde_mm_mask_mov_pd(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m128d_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm_mask_mov_ps(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m128 src;
simde__mmask8 k;
simde__m128 a;
simde__m128 r;
} test_vec[8] = {
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 126),
simde_mm_set_ps(SIMDE_FLOAT32_C( -678.71), SIMDE_FLOAT32_C( 675.53), SIMDE_FLOAT32_C( 55.56), SIMDE_FLOAT32_C( 306.20)),
simde_mm_set_ps(SIMDE_FLOAT32_C( -678.71), SIMDE_FLOAT32_C( 675.53), SIMDE_FLOAT32_C( 55.56), SIMDE_FLOAT32_C( 0.00)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 44),
simde_mm_set_ps(SIMDE_FLOAT32_C( 941.87), SIMDE_FLOAT32_C( 680.40), SIMDE_FLOAT32_C( 906.67), SIMDE_FLOAT32_C( -364.25)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 941.87), SIMDE_FLOAT32_C( 680.40), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 117),
simde_mm_set_ps(SIMDE_FLOAT32_C( -76.19), SIMDE_FLOAT32_C( -654.60), SIMDE_FLOAT32_C( -721.91), SIMDE_FLOAT32_C( -422.72)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -654.60), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -422.72)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 76),
simde_mm_set_ps(SIMDE_FLOAT32_C( 547.52), SIMDE_FLOAT32_C( -627.17), SIMDE_FLOAT32_C( -711.42), SIMDE_FLOAT32_C( -22.70)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 547.52), SIMDE_FLOAT32_C( -627.17), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 101),
simde_mm_set_ps(SIMDE_FLOAT32_C( -822.97), SIMDE_FLOAT32_C( 575.41), SIMDE_FLOAT32_C( -702.01), SIMDE_FLOAT32_C( -488.76)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 575.41), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -488.76)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 149),
simde_mm_set_ps(SIMDE_FLOAT32_C( 804.55), SIMDE_FLOAT32_C( -888.85), SIMDE_FLOAT32_C( 750.71), SIMDE_FLOAT32_C( 346.51)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -888.85), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 346.51)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 115),
simde_mm_set_ps(SIMDE_FLOAT32_C( -17.38), SIMDE_FLOAT32_C( 623.33), SIMDE_FLOAT32_C( 459.80), SIMDE_FLOAT32_C( 837.15)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 459.80), SIMDE_FLOAT32_C( 837.15)) },
{ simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)),
UINT16_C( 50),
simde_mm_set_ps(SIMDE_FLOAT32_C( 197.69), SIMDE_FLOAT32_C( 233.42), SIMDE_FLOAT32_C( 153.73), SIMDE_FLOAT32_C( 616.58)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 153.73), SIMDE_FLOAT32_C( 0.00)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128 r = simde_mm_mask_mov_ps(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m128_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm256_mask_mov_epi8(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m256i src;
simde__mmask32 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ simde_mm256_set_epi8(INT8_C( -82), INT8_C( -32), INT8_C( -73), INT8_C( -78),
INT8_C( -21), INT8_C( 76), INT8_C( 33), INT8_C( 90),
INT8_C( -57), INT8_C( -12), INT8_C(-121), INT8_C( 101),
INT8_C( 6), INT8_C( -36), INT8_C( -50), INT8_C( -33),
INT8_C( -83), INT8_C( -92), INT8_C( 2), INT8_C( 69),
INT8_C( 62), INT8_C( 89), INT8_C( 105), INT8_C( 58),
INT8_C( 125), INT8_C( -76), INT8_C( 27), INT8_C( 51),
INT8_C( 79), INT8_C( 101), INT8_C( -42), INT8_C( -69)),
UINT32_C( 391141390),
simde_mm256_set_epi8(INT8_C( -9), INT8_C( -52), INT8_C( 27), INT8_C( -40),
INT8_C( 57), INT8_C( -80), INT8_C( -28), INT8_C( 64),
INT8_C( 70), INT8_C( -40), INT8_C( 14), INT8_C( -38),
INT8_C( -38), INT8_C( -99), INT8_C( -37), INT8_C( -35),
INT8_C( -82), INT8_C( -60), INT8_C( -40), INT8_C( -40),
INT8_C( -5), INT8_C( 8), INT8_C( 109), INT8_C( 95),
INT8_C( 124), INT8_C( 34), INT8_C( 19), INT8_C( -65),
INT8_C( -2), INT8_C( -92), INT8_C( 18), INT8_C( -33)),
simde_mm256_set_epi8(INT8_C( -82), INT8_C( -32), INT8_C( -73), INT8_C( -40),
INT8_C( -21), INT8_C( -80), INT8_C( -28), INT8_C( 64),
INT8_C( -57), INT8_C( -40), INT8_C(-121), INT8_C( -38),
INT8_C( 6), INT8_C( -36), INT8_C( -50), INT8_C( -33),
INT8_C( -83), INT8_C( -60), INT8_C( 2), INT8_C( -40),
INT8_C( -5), INT8_C( 89), INT8_C( 105), INT8_C( 58),
INT8_C( 125), INT8_C( -76), INT8_C( 27), INT8_C( 51),
INT8_C( -2), INT8_C( -92), INT8_C( 18), INT8_C( -69)) },
{ simde_mm256_set_epi8(INT8_C( -54), INT8_C( -68), INT8_C( 19), INT8_C( 39),
INT8_C( 17), INT8_C( -32), INT8_C( -47), INT8_C( -26),
INT8_C( -23), INT8_C( 30), INT8_C( 98), INT8_C( 3),
INT8_C( -92), INT8_C( -30), INT8_C( -8), INT8_C( -30),
INT8_C( 26), INT8_C(-116), INT8_C( 76), INT8_C( -76),
INT8_C( -29), INT8_C( -31), INT8_C( -31), INT8_C( 78),
INT8_C( 23), INT8_C( 6), INT8_C( 61), INT8_C( 68),
INT8_C( -53), INT8_C(-110), INT8_C( 53), INT8_C( -67)),
UINT32_C( 757878650),
simde_mm256_set_epi8(INT8_C( 36), INT8_C(-115), INT8_C( -95), INT8_C( 4),
INT8_C( 50), INT8_C( -54), INT8_C( 94), INT8_C( 54),
INT8_C( 109), INT8_C(-103), INT8_C(-124), INT8_C( 34),
INT8_C( -16), INT8_C( 97), INT8_C( -7), INT8_C( 98),
INT8_C(-125), INT8_C( -49), INT8_C( 3), INT8_C( -91),
INT8_C( -99), INT8_C( 85), INT8_C( -25), INT8_C( 6),
INT8_C( -42), INT8_C( 44), INT8_C( 70), INT8_C( -24),
INT8_C( -86), INT8_C( 112), INT8_C( 116), INT8_C( -61)),
simde_mm256_set_epi8(INT8_C( -54), INT8_C( -68), INT8_C( -95), INT8_C( 39),
INT8_C( 50), INT8_C( -54), INT8_C( -47), INT8_C( 54),
INT8_C( -23), INT8_C( 30), INT8_C(-124), INT8_C( 3),
INT8_C( -16), INT8_C( 97), INT8_C( -8), INT8_C( -30),
INT8_C( 26), INT8_C( -49), INT8_C( 76), INT8_C( -76),
INT8_C( -99), INT8_C( 85), INT8_C( -25), INT8_C( 6),
INT8_C( 23), INT8_C( 44), INT8_C( 70), INT8_C( -24),
INT8_C( -86), INT8_C(-110), INT8_C( 116), INT8_C( -67)) },
{ simde_mm256_set_epi8(INT8_C( 48), INT8_C( -19), INT8_C( -87), INT8_C( 100),
INT8_C( -44), INT8_C( -79), INT8_C( -72), INT8_C( 73),
INT8_C( -36), INT8_C( 58), INT8_C(-113), INT8_C( -42),
INT8_C( -85), INT8_C( 123), INT8_C(-106), INT8_C( -57),
INT8_C( -53), INT8_C( 96), INT8_C( 40), INT8_C( -52),
INT8_C( -17), INT8_C( -6), INT8_C(-108), INT8_C( 33),
INT8_C( -15), INT8_C( 113), INT8_C( 31), INT8_C( -14),
INT8_C( 124), INT8_C( 15), INT8_C( 90), INT8_C( 1)),
UINT32_C(2771863762),
simde_mm256_set_epi8(INT8_C( 72), INT8_C( -95), INT8_C( 104), INT8_C( -28),
INT8_C( 25), INT8_C( 84), INT8_C( 66), INT8_C( 19),
INT8_C( 79), INT8_C( -84), INT8_C( 46), INT8_C( 23),
INT8_C( -85), INT8_C( 12), INT8_C( 6), INT8_C( -9),
INT8_C(-108), INT8_C( 14), INT8_C( 103), INT8_C( 32),
INT8_C( 25), INT8_C(-108), INT8_C( -56), INT8_C(-111),
INT8_C( 23), INT8_C( -20), INT8_C( 4), INT8_C( 81),
INT8_C( 39), INT8_C( 39), INT8_C( 82), INT8_C( -15)),
simde_mm256_set_epi8(INT8_C( 72), INT8_C( -19), INT8_C( 104), INT8_C( 100),
INT8_C( -44), INT8_C( 84), INT8_C( -72), INT8_C( 19),
INT8_C( -36), INT8_C( 58), INT8_C( 46), INT8_C( 23),
INT8_C( -85), INT8_C( 12), INT8_C( 6), INT8_C( -9),
INT8_C( -53), INT8_C( 14), INT8_C( 40), INT8_C( -52),
INT8_C( 25), INT8_C( -6), INT8_C(-108), INT8_C( 33),
INT8_C( 23), INT8_C( -20), INT8_C( 31), INT8_C( 81),
INT8_C( 124), INT8_C( 15), INT8_C( 82), INT8_C( 1)) },
{ simde_mm256_set_epi8(INT8_C( 57), INT8_C( -52), INT8_C( 127), INT8_C( -70),
INT8_C( 97), INT8_C( 95), INT8_C( -96), INT8_C( -99),
INT8_C( 22), INT8_C(-112), INT8_C( 66), INT8_C( -76),
INT8_C( 79), INT8_C(-100), INT8_C( -47), INT8_C(-114),
INT8_C( -72), INT8_C( 67), INT8_C( 3), INT8_C( -9),
INT8_C( 88), INT8_C( -5), INT8_C(-111), INT8_C(-100),
INT8_C( -94), INT8_C( -72), INT8_C( -45), INT8_C( -95),
INT8_C( 119), INT8_C( -81), INT8_C( 38), INT8_C(-111)),
UINT32_C(4224621908),
simde_mm256_set_epi8(INT8_C(-112), INT8_C( 63), INT8_C( 75), INT8_C( 90),
INT8_C( -7), INT8_C( 116), INT8_C(-123), INT8_C( -34),
INT8_C( 81), INT8_C( 114), INT8_C( -76), INT8_C( -63),
INT8_C( 30), INT8_C( 66), INT8_C( 18), INT8_C(-119),
INT8_C( 26), INT8_C( 28), INT8_C( 56), INT8_C( 127),
INT8_C( -81), INT8_C( -7), INT8_C( -20), INT8_C( -35),
INT8_C( -7), INT8_C( 37), INT8_C( -47), INT8_C( 78),
INT8_C( 114), INT8_C( -18), INT8_C( 72), INT8_C( -8)),
simde_mm256_set_epi8(INT8_C(-112), INT8_C( 63), INT8_C( 75), INT8_C( 90),
INT8_C( -7), INT8_C( 95), INT8_C(-123), INT8_C( -34),
INT8_C( 81), INT8_C( 114), INT8_C( 66), INT8_C( -76),
INT8_C( 30), INT8_C( 66), INT8_C( 18), INT8_C(-114),
INT8_C( 26), INT8_C( 67), INT8_C( 3), INT8_C( 127),
INT8_C( -81), INT8_C( -7), INT8_C(-111), INT8_C( -35),
INT8_C( -94), INT8_C( 37), INT8_C( -45), INT8_C( 78),
INT8_C( 119), INT8_C( -18), INT8_C( 38), INT8_C(-111)) },
{ simde_mm256_set_epi8(INT8_C( -29), INT8_C(-121), INT8_C( -23), INT8_C( 64),
INT8_C( 12), INT8_C( 5), INT8_C( 73), INT8_C( 52),
INT8_C( -53), INT8_C( 62), INT8_C( 8), INT8_C(-112),
INT8_C( -8), INT8_C( 99), INT8_C( -12), INT8_C(-118),
INT8_C( -33), INT8_C( -37), INT8_C( -98), INT8_C( -94),
INT8_C(-119), INT8_C( 79), INT8_C( -25), INT8_C( 47),
INT8_C( 80), INT8_C( 89), INT8_C( 5), INT8_C( 9),
INT8_C( -36), INT8_C( 79), INT8_C( 8), INT8_C( 89)),
UINT32_C(1663316267),
simde_mm256_set_epi8(INT8_C( 103), INT8_C( -43), INT8_C( 6), INT8_C( 112),
INT8_C( -45), INT8_C( 82), INT8_C( 16), INT8_C( 3),
INT8_C( 34), INT8_C( -45), INT8_C( 75), INT8_C(-106),
INT8_C(-107), INT8_C( -45), INT8_C( -85), INT8_C( -53),
INT8_C( 11), INT8_C( 28), INT8_C( 126), INT8_C( 24),
INT8_C( -69), INT8_C( 35), INT8_C( -37), INT8_C( 95),
INT8_C( 85), INT8_C( 3), INT8_C( -77), INT8_C( -35),
INT8_C( -83), INT8_C( -1), INT8_C( -73), INT8_C( -18)),
simde_mm256_set_epi8(INT8_C( -29), INT8_C( -43), INT8_C( 6), INT8_C( 64),
INT8_C( 12), INT8_C( 5), INT8_C( 16), INT8_C( 3),
INT8_C( -53), INT8_C( 62), INT8_C( 75), INT8_C(-112),
INT8_C( -8), INT8_C( -45), INT8_C( -12), INT8_C(-118),
INT8_C( -33), INT8_C( -37), INT8_C( 126), INT8_C( 24),
INT8_C(-119), INT8_C( 79), INT8_C( -25), INT8_C( 95),
INT8_C( 80), INT8_C( 89), INT8_C( -77), INT8_C( 9),
INT8_C( -83), INT8_C( 79), INT8_C( -73), INT8_C( -18)) },
{ simde_mm256_set_epi8(INT8_C( -15), INT8_C( 22), INT8_C( -61), INT8_C( -49),
INT8_C( -4), INT8_C( -4), INT8_C( 91), INT8_C( -15),
INT8_C( 47), INT8_C( -16), INT8_C(-118), INT8_C( 86),
INT8_C( -37), INT8_C( -51), INT8_C( 66), INT8_C( -18),
INT8_C( -38), INT8_C( -22), INT8_C( 6), INT8_C( 33),
INT8_C( 109), INT8_C(-110), INT8_C( -53), INT8_C(-118),
INT8_C( 48), INT8_C( -55), INT8_C( 70), INT8_C( -1),
INT8_C(-125), INT8_C( -38), INT8_C( 109), INT8_C( -62)),
UINT32_C(1252303865),
simde_mm256_set_epi8(INT8_C(-103), INT8_C(-118), INT8_C(-127), INT8_C( -69),
INT8_C( 28), INT8_C( 82), INT8_C( -48), INT8_C(-119),
INT8_C( -31), INT8_C( -65), INT8_C(-127), INT8_C( -41),
INT8_C( 86), INT8_C( -70), INT8_C( -6), INT8_C( 33),
INT8_C( -51), INT8_C(-122), INT8_C( -14), INT8_C( 119),
INT8_C( 75), INT8_C( 63), INT8_C( -36), INT8_C( 31),
INT8_C( -76), INT8_C( 48), INT8_C( 50), INT8_C(-113),
INT8_C( 15), INT8_C( -75), INT8_C( -26), INT8_C( 94)),
simde_mm256_set_epi8(INT8_C( -15), INT8_C(-118), INT8_C( -61), INT8_C( -49),
INT8_C( 28), INT8_C( -4), INT8_C( -48), INT8_C( -15),
INT8_C( -31), INT8_C( -16), INT8_C(-127), INT8_C( 86),
INT8_C( -37), INT8_C( -70), INT8_C( 66), INT8_C( -18),
INT8_C( -51), INT8_C( -22), INT8_C( -14), INT8_C( 33),
INT8_C( 109), INT8_C(-110), INT8_C( -36), INT8_C( 31),
INT8_C( -76), INT8_C( 48), INT8_C( 50), INT8_C(-113),
INT8_C( 15), INT8_C( -38), INT8_C( 109), INT8_C( 94)) },
{ simde_mm256_set_epi8(INT8_C(-106), INT8_C( 63), INT8_C( -91), INT8_C( -65),
INT8_C(-114), INT8_C( -79), INT8_C( 118), INT8_C( 65),
INT8_C(-123), INT8_C( 42), INT8_C( -51), INT8_C( 112),
INT8_C( -55), INT8_C( 120), INT8_C( 62), INT8_C( -91),
INT8_C( -74), INT8_C( 98), INT8_C( -26), INT8_C( -13),
INT8_C( -94), INT8_C( 105), INT8_C( -49), INT8_C( -31),
INT8_C( 18), INT8_C( 49), INT8_C( -11), INT8_C( 72),
INT8_C( -9), INT8_C( -16), INT8_C( 100), INT8_C( -64)),
UINT32_C( 648334209),
simde_mm256_set_epi8(INT8_C( 1), INT8_C( -60), INT8_C( -73), INT8_C( -13),
INT8_C( 63), INT8_C(-117), INT8_C(-106), INT8_C( -9),
INT8_C( -71), INT8_C(-116), INT8_C( -20), INT8_C( 61),
INT8_C( 48), INT8_C(-114), INT8_C(-114), INT8_C( -45),
INT8_C( -77), INT8_C( 123), INT8_C(-120), INT8_C(-126),
INT8_C( 112), INT8_C( -73), INT8_C( -89), INT8_C( 6),
INT8_C(-118), INT8_C( 2), INT8_C( 106), INT8_C( -46),
INT8_C( -87), INT8_C( 71), INT8_C( -71), INT8_C( -5)),
simde_mm256_set_epi8(INT8_C(-106), INT8_C( 63), INT8_C( -73), INT8_C( -65),
INT8_C(-114), INT8_C(-117), INT8_C(-106), INT8_C( 65),
INT8_C( -71), INT8_C( 42), INT8_C( -20), INT8_C( 112),
INT8_C( -55), INT8_C(-114), INT8_C( 62), INT8_C( -91),
INT8_C( -77), INT8_C( 123), INT8_C( -26), INT8_C( -13),
INT8_C( 112), INT8_C( 105), INT8_C( -89), INT8_C( 6),
INT8_C(-118), INT8_C( 49), INT8_C( -11), INT8_C( 72),
INT8_C( -9), INT8_C( -16), INT8_C( 100), INT8_C( -5)) },
{ simde_mm256_set_epi8(INT8_C( -48), INT8_C(-113), INT8_C( 21), INT8_C( 68),
INT8_C( 115), INT8_C( 93), INT8_C( 99), INT8_C( -68),
INT8_C( -9), INT8_C( 34), INT8_C( 15), INT8_C( 118),
INT8_C( 54), INT8_C( -58), INT8_C( 11), INT8_C( 91),
INT8_C( 122), INT8_C( 59), INT8_C( 108), INT8_C( -59),
INT8_C( -39), INT8_C( 74), INT8_C( -25), INT8_C( 1),
INT8_C( -26), INT8_C( -59), INT8_C( 91), INT8_C( -81),
INT8_C( -8), INT8_C( -5), INT8_C( -55), INT8_C( -59)),
UINT32_C(2027822108),
simde_mm256_set_epi8(INT8_C( -93), INT8_C( -25), INT8_C( 14), INT8_C( -22),
INT8_C( 85), INT8_C( -47), INT8_C( -59), INT8_C( -81),
INT8_C( 94), INT8_C( -67), INT8_C( -69), INT8_C( -79),
INT8_C( 61), INT8_C( 49), INT8_C( -27), INT8_C( 124),
INT8_C( 89), INT8_C( 80), INT8_C( 55), INT8_C( -47),
INT8_C( 45), INT8_C(-120), INT8_C( 28), INT8_C( -89),
INT8_C( -69), INT8_C(-127), INT8_C( 65), INT8_C( 53),
INT8_C( -35), INT8_C( -30), INT8_C( -74), INT8_C( -10)),
simde_mm256_set_epi8(INT8_C( -48), INT8_C( -25), INT8_C( 14), INT8_C( -22),
INT8_C( 85), INT8_C( 93), INT8_C( 99), INT8_C( -68),
INT8_C( 94), INT8_C( -67), INT8_C( 15), INT8_C( -79),
INT8_C( 61), INT8_C( 49), INT8_C( -27), INT8_C( 91),
INT8_C( 122), INT8_C( 59), INT8_C( 108), INT8_C( -47),
INT8_C( 45), INT8_C(-120), INT8_C( -25), INT8_C( 1),
INT8_C( -26), INT8_C( -59), INT8_C( 91), INT8_C( 53),
INT8_C( -35), INT8_C( -30), INT8_C( -55), INT8_C( -59)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_mask_mov_epi8(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i8(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_mask_mov_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m256i src;
simde__mmask16 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ simde_mm256_set_epi16(INT16_C(-23030), INT16_C( 6803), INT16_C(-21055), INT16_C( -910),
INT16_C( -6009), INT16_C( 10471), INT16_C(-29834), INT16_C(-14111),
INT16_C( -2981), INT16_C( 28733), INT16_C( 11699), INT16_C( 7781),
INT16_C( 29036), INT16_C( -8103), INT16_C(-21310), INT16_C( 9176)),
UINT16_C(32768),
simde_mm256_set_epi16(INT16_C( 30563), INT16_C( -5523), INT16_C(-18306), INT16_C( 14754),
INT16_C(-23068), INT16_C(-17313), INT16_C( 21598), INT16_C( 12635),
INT16_C( 17053), INT16_C( 3377), INT16_C( 28887), INT16_C( 29062),
INT16_C( 26146), INT16_C( -4849), INT16_C( 17375), INT16_C(-24515)),
simde_mm256_set_epi16(INT16_C( 30563), INT16_C( 6803), INT16_C(-21055), INT16_C( -910),
INT16_C( -6009), INT16_C( 10471), INT16_C(-29834), INT16_C(-14111),
INT16_C( -2981), INT16_C( 28733), INT16_C( 11699), INT16_C( 7781),
INT16_C( 29036), INT16_C( -8103), INT16_C(-21310), INT16_C( 9176)) },
{ simde_mm256_set_epi16(INT16_C( 9971), INT16_C( -9002), INT16_C(-22233), INT16_C(-13917),
INT16_C(-13732), INT16_C( -199), INT16_C( 9707), INT16_C( 31342),
INT16_C(-13386), INT16_C(-15675), INT16_C( 10143), INT16_C( 19953),
INT16_C(-25473), INT16_C( 27175), INT16_C(-12968), INT16_C(-11899)),
UINT16_C(15492),
simde_mm256_set_epi16(INT16_C(-30515), INT16_C(-13927), INT16_C( 24112), INT16_C( 9227),
INT16_C(-20054), INT16_C(-11664), INT16_C( -7103), INT16_C(-13246),
INT16_C( 4285), INT16_C(-23471), INT16_C( 24470), INT16_C(-13226),
INT16_C( 4085), INT16_C( 10000), INT16_C(-17688), INT16_C( 28540)),
simde_mm256_set_epi16(INT16_C( 9971), INT16_C( -9002), INT16_C( 24112), INT16_C( 9227),
INT16_C(-20054), INT16_C(-11664), INT16_C( 9707), INT16_C( 31342),
INT16_C( 4285), INT16_C(-15675), INT16_C( 10143), INT16_C( 19953),
INT16_C(-25473), INT16_C( 10000), INT16_C(-12968), INT16_C(-11899)) },
{ simde_mm256_set_epi16(INT16_C(-17362), INT16_C( -1830), INT16_C(-16587), INT16_C(-17056),
INT16_C(-14539), INT16_C( 7972), INT16_C(-26491), INT16_C( 20406),
INT16_C( 26939), INT16_C( 20968), INT16_C(-31196), INT16_C( 11313),
INT16_C(-25947), INT16_C( 19467), INT16_C( 22325), INT16_C( 14960)),
UINT16_C(53867),
simde_mm256_set_epi16(INT16_C( 15597), INT16_C(-30582), INT16_C(-21551), INT16_C(-25534),
INT16_C( 13374), INT16_C( 17137), INT16_C(-27681), INT16_C(-10912),
INT16_C(-10124), INT16_C( 1110), INT16_C( 1704), INT16_C(-17853),
INT16_C( -7561), INT16_C(-19432), INT16_C( 22127), INT16_C(-30033)),
simde_mm256_set_epi16(INT16_C( 15597), INT16_C(-30582), INT16_C(-16587), INT16_C(-25534),
INT16_C(-14539), INT16_C( 7972), INT16_C(-27681), INT16_C( 20406),
INT16_C( 26939), INT16_C( 1110), INT16_C( 1704), INT16_C( 11313),
INT16_C( -7561), INT16_C( 19467), INT16_C( 22127), INT16_C(-30033)) },
{ simde_mm256_set_epi16(INT16_C( 14671), INT16_C( 16470), INT16_C( 30174), INT16_C( -7130),
INT16_C( 31852), INT16_C( 11282), INT16_C( 29705), INT16_C(-21158),
INT16_C( 16917), INT16_C( 10042), INT16_C( 5958), INT16_C( -4695),
INT16_C(-20590), INT16_C( 17528), INT16_C( -6738), INT16_C(-26754)),
UINT16_C(25018),
simde_mm256_set_epi16(INT16_C(-21192), INT16_C( 6104), INT16_C(-12947), INT16_C( 12440),
INT16_C( 12048), INT16_C( -8528), INT16_C(-31627), INT16_C( 26711),
INT16_C( -4678), INT16_C( 32013), INT16_C( 814), INT16_C( 19873),
INT16_C( 32199), INT16_C( -7421), INT16_C( 21197), INT16_C( 25563)),
simde_mm256_set_epi16(INT16_C( 14671), INT16_C( 6104), INT16_C(-12947), INT16_C( -7130),
INT16_C( 31852), INT16_C( 11282), INT16_C( 29705), INT16_C( 26711),
INT16_C( -4678), INT16_C( 10042), INT16_C( 814), INT16_C( 19873),
INT16_C( 32199), INT16_C( 17528), INT16_C( 21197), INT16_C(-26754)) },
{ simde_mm256_set_epi16(INT16_C( 30594), INT16_C(-11819), INT16_C( 16854), INT16_C( 8281),
INT16_C( 32229), INT16_C( -2511), INT16_C(-10942), INT16_C(-28733),
INT16_C( -8714), INT16_C( -6616), INT16_C( 4922), INT16_C( 1537),
INT16_C( -8589), INT16_C( 6229), INT16_C(-12142), INT16_C( 12862)),
UINT16_C(62562),
simde_mm256_set_epi16(INT16_C( 28902), INT16_C( 31472), INT16_C( -9808), INT16_C(-22935),
INT16_C( 4498), INT16_C(-13447), INT16_C(-31030), INT16_C(-31086),
INT16_C( 6386), INT16_C(-11676), INT16_C( 9598), INT16_C(-30958),
INT16_C(-24145), INT16_C(-18452), INT16_C( -8547), INT16_C(-20619)),
simde_mm256_set_epi16(INT16_C( 28902), INT16_C( 31472), INT16_C( -9808), INT16_C(-22935),
INT16_C( 32229), INT16_C(-13447), INT16_C(-10942), INT16_C(-28733),
INT16_C( -8714), INT16_C(-11676), INT16_C( 9598), INT16_C( 1537),
INT16_C( -8589), INT16_C( 6229), INT16_C( -8547), INT16_C( 12862)) },
{ simde_mm256_set_epi16(INT16_C( -1185), INT16_C( 28882), INT16_C(-25549), INT16_C(-18169),
INT16_C( -7221), INT16_C( 4400), INT16_C(-25724), INT16_C(-28761),
INT16_C(-20506), INT16_C(-24341), INT16_C( 5349), INT16_C( -9608),
INT16_C(-30698), INT16_C( 7741), INT16_C( 6648), INT16_C( 2085)),
UINT16_C(40999),
simde_mm256_set_epi16(INT16_C( 17256), INT16_C(-15790), INT16_C( 23704), INT16_C(-17336),
INT16_C( -4418), INT16_C( 28004), INT16_C(-27022), INT16_C( 29950),
INT16_C(-28093), INT16_C( 901), INT16_C(-13716), INT16_C(-16668),
INT16_C(-12954), INT16_C( 4373), INT16_C( 25556), INT16_C(-31530)),
simde_mm256_set_epi16(INT16_C( 17256), INT16_C( 28882), INT16_C( 23704), INT16_C(-18169),
INT16_C( -7221), INT16_C( 4400), INT16_C(-25724), INT16_C(-28761),
INT16_C(-20506), INT16_C(-24341), INT16_C(-13716), INT16_C( -9608),
INT16_C(-30698), INT16_C( 4373), INT16_C( 25556), INT16_C(-31530)) },
{ simde_mm256_set_epi16(INT16_C( -2894), INT16_C(-32472), INT16_C( 11220), INT16_C( 6669),
INT16_C( 23064), INT16_C(-27024), INT16_C(-15827), INT16_C(-11722),
INT16_C(-26431), INT16_C( 6527), INT16_C(-14361), INT16_C(-27595),
INT16_C(-18051), INT16_C( -3890), INT16_C(-26121), INT16_C(-29481)),
UINT16_C( 8894),
simde_mm256_set_epi16(INT16_C( 18291), INT16_C( 26196), INT16_C(-27505), INT16_C( -8229),
INT16_C(-25273), INT16_C( -2374), INT16_C( 25602), INT16_C( 26391),
INT16_C( 16833), INT16_C(-18212), INT16_C( 6765), INT16_C( 22695),
INT16_C( 31217), INT16_C( 10116), INT16_C( 12733), INT16_C( 11434)),
simde_mm256_set_epi16(INT16_C( -2894), INT16_C(-32472), INT16_C(-27505), INT16_C( 6669),
INT16_C( 23064), INT16_C(-27024), INT16_C( 25602), INT16_C(-11722),
INT16_C( 16833), INT16_C( 6527), INT16_C( 6765), INT16_C( 22695),
INT16_C( 31217), INT16_C( 10116), INT16_C( 12733), INT16_C(-29481)) },
{ simde_mm256_set_epi16(INT16_C( 31730), INT16_C(-24704), INT16_C( -9707), INT16_C(-27923),
INT16_C( 12026), INT16_C( -8313), INT16_C(-30875), INT16_C( -3866),
INT16_C( 13477), INT16_C( -8690), INT16_C( 7980), INT16_C( 29046),
INT16_C(-16244), INT16_C(-14526), INT16_C( -1470), INT16_C( 9637)),
UINT16_C(47578),
simde_mm256_set_epi16(INT16_C(-27085), INT16_C(-21439), INT16_C( -6499), INT16_C(-12213),
INT16_C( 32648), INT16_C(-16468), INT16_C(-15892), INT16_C( 21695),
INT16_C(-24474), INT16_C( -770), INT16_C(-22665), INT16_C(-20908),
INT16_C( -267), INT16_C( -8958), INT16_C( -8601), INT16_C( 15369)),
simde_mm256_set_epi16(INT16_C(-27085), INT16_C(-24704), INT16_C( -6499), INT16_C(-12213),
INT16_C( 32648), INT16_C( -8313), INT16_C(-30875), INT16_C( 21695),
INT16_C(-24474), INT16_C( -770), INT16_C( 7980), INT16_C(-20908),
INT16_C( -267), INT16_C(-14526), INT16_C( -8601), INT16_C( 9637)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_mask_mov_epi16(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i16(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_mask_mov_epi32(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m256i src;
simde__mmask8 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ simde_mm256_set_epi32(INT32_C(-2051902106), INT32_C(-1489562810), INT32_C( -627115156), INT32_C( 913274595),
INT32_C(-1198634499), INT32_C( 139959001), INT32_C(-1600412710), INT32_C( 934654383)),
UINT8_C(164),
simde_mm256_set_epi32(INT32_C(-2030579644), INT32_C( 386335945), INT32_C( -809785463), INT32_C( 2050465670),
INT32_C( 458083110), INT32_C( 911315275), INT32_C( 438060664), INT32_C( 1293777364)),
simde_mm256_set_epi32(INT32_C(-2030579644), INT32_C(-1489562810), INT32_C( -809785463), INT32_C( 913274595),
INT32_C(-1198634499), INT32_C( 911315275), INT32_C(-1600412710), INT32_C( 934654383)) },
{ simde_mm256_set_epi32(INT32_C( 1771679392), INT32_C( 747779042), INT32_C( 1568509396), INT32_C( -126295667),
INT32_C( 1160475018), INT32_C( 343988166), INT32_C( 1516295700), INT32_C(-1359069473)),
UINT8_C(178),
simde_mm256_set_epi32(INT32_C( 1326620113), INT32_C(-1696986714), INT32_C( -201743610), INT32_C( 1745319425),
INT32_C(-1761511775), INT32_C( 1270104738), INT32_C( 1013012890), INT32_C( 875163254)),
simde_mm256_set_epi32(INT32_C( 1326620113), INT32_C( 747779042), INT32_C( -201743610), INT32_C( 1745319425),
INT32_C( 1160475018), INT32_C( 343988166), INT32_C( 1013012890), INT32_C(-1359069473)) },
{ simde_mm256_set_epi32(INT32_C( 518286759), INT32_C(-1532979566), INT32_C(-1858515332), INT32_C( 132974279),
INT32_C( 761595911), INT32_C(-1701198420), INT32_C( 1222823321), INT32_C( -238072978)),
UINT8_C(112),
simde_mm256_set_epi32(INT32_C( -801582728), INT32_C( 1471437069), INT32_C( 1970067030), INT32_C( 1007722212),
INT32_C( -224938211), INT32_C( -282706876), INT32_C( 1478523622), INT32_C( 630801793)),
simde_mm256_set_epi32(INT32_C( 518286759), INT32_C( 1471437069), INT32_C( 1970067030), INT32_C( 1007722212),
INT32_C( 761595911), INT32_C(-1701198420), INT32_C( 1222823321), INT32_C( -238072978)) },
{ simde_mm256_set_epi32(INT32_C(-1331251138), INT32_C(-1232220609), INT32_C( -83499690), INT32_C(-1933771795),
INT32_C( 1431588209), INT32_C( 9145992), INT32_C( 1554181542), INT32_C(-1595697445)),
UINT8_C(209),
simde_mm256_set_epi32(INT32_C(-1567962509), INT32_C(-1474212928), INT32_C(-1912431565), INT32_C( -269915367),
INT32_C( -487478944), INT32_C(-1785315433), INT32_C(-1130207739), INT32_C( -388075219)),
simde_mm256_set_epi32(INT32_C(-1567962509), INT32_C(-1474212928), INT32_C( -83499690), INT32_C( -269915367),
INT32_C( 1431588209), INT32_C( 9145992), INT32_C( 1554181542), INT32_C( -388075219)) },
{ simde_mm256_set_epi32(INT32_C( 1834864917), INT32_C( -675288826), INT32_C( 1896194121), INT32_C( 1512557303),
INT32_C( -545693873), INT32_C( 513757285), INT32_C( 1710853511), INT32_C( 367108805)),
UINT8_C(141),
simde_mm256_set_epi32(INT32_C(-1942300637), INT32_C( 1717002604), INT32_C( -236253831), INT32_C( 993211905),
INT32_C( 884769165), INT32_C( 1081163766), INT32_C( 1932456000), INT32_C( -153656708)),
simde_mm256_set_epi32(INT32_C(-1942300637), INT32_C( -675288826), INT32_C( 1896194121), INT32_C( 1512557303),
INT32_C( 884769165), INT32_C( 1081163766), INT32_C( 1710853511), INT32_C( -153656708)) },
{ simde_mm256_set_epi32(INT32_C( 1057245798), INT32_C(-1988238659), INT32_C( 464652738), INT32_C(-1394070870),
INT32_C( 410687111), INT32_C(-1023380740), INT32_C(-1345956426), INT32_C( 1062641002)),
UINT8_C( 23),
simde_mm256_set_epi32(INT32_C( 804151705), INT32_C(-1030405330), INT32_C(-1199759874), INT32_C( 1385588241),
INT32_C(-1001762620), INT32_C( 1644327590), INT32_C( -999008446), INT32_C( 2086723218)),
simde_mm256_set_epi32(INT32_C( 1057245798), INT32_C(-1988238659), INT32_C( 464652738), INT32_C( 1385588241),
INT32_C( 410687111), INT32_C( 1644327590), INT32_C( -999008446), INT32_C( 2086723218)) },
{ simde_mm256_set_epi32(INT32_C( 1481764690), INT32_C( 749562747), INT32_C( 1739109341), INT32_C( 1504825630),
INT32_C(-1715949382), INT32_C( -901153926), INT32_C( -433640108), INT32_C( -201965406)),
UINT8_C( 20),
simde_mm256_set_epi32(INT32_C( 657000670), INT32_C( 71096321), INT32_C( 324839890), INT32_C( 1620447032),
INT32_C( 1126601222), INT32_C(-1962686585), INT32_C( 174027827), INT32_C( 1092631470)),
simde_mm256_set_epi32(INT32_C( 1481764690), INT32_C( 749562747), INT32_C( 1739109341), INT32_C( 1620447032),
INT32_C(-1715949382), INT32_C(-1962686585), INT32_C( -433640108), INT32_C( -201965406)) },
{ simde_mm256_set_epi32(INT32_C( 1112858374), INT32_C( 1689862137), INT32_C(-1548199384), INT32_C( 560346027),
INT32_C(-1831151558), INT32_C( 1961484348), INT32_C( 1845841537), INT32_C(-1490051864)),
UINT8_C( 81),
simde_mm256_set_epi32(INT32_C( 1782794803), INT32_C(-1212843470), INT32_C( 702145811), INT32_C( 712189474),
INT32_C( 1538408527), INT32_C( 1714734347), INT32_C( 509188796), INT32_C( 1218928521)),
simde_mm256_set_epi32(INT32_C( 1112858374), INT32_C(-1212843470), INT32_C(-1548199384), INT32_C( 712189474),
INT32_C(-1831151558), INT32_C( 1961484348), INT32_C( 1845841537), INT32_C( 1218928521)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_mask_mov_epi32(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i32(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_mask_mov_epi64(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m256i src;
simde__mmask8 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ simde_mm256_set_epi64x(INT64_C( -211287979567135941), INT64_C(-9075367401252635211),
INT64_C( 960243121462097108), INT64_C( 2005878706758239899)),
UINT8_C( 32),
simde_mm256_set_epi64x(INT64_C(-6608524325915548957), INT64_C(-1314544444369440805),
INT64_C( 1510534294895689397), INT64_C( 1845655456785432498)),
simde_mm256_set_epi64x(INT64_C( -211287979567135941), INT64_C(-9075367401252635211),
INT64_C( 960243121462097108), INT64_C( 2005878706758239899)) },
{ simde_mm256_set_epi64x(INT64_C(-1723084715644559301), INT64_C(-2080563230649448126),
INT64_C( 5959215642275768669), INT64_C( 2475827768754845699)),
UINT8_C(214),
simde_mm256_set_epi64x(INT64_C( 5190090124690883989), INT64_C(-4089440710650942034),
INT64_C(-9158432549634317510), INT64_C( 8190130421956302558)),
simde_mm256_set_epi64x(INT64_C(-1723084715644559301), INT64_C(-4089440710650942034),
INT64_C(-9158432549634317510), INT64_C( 2475827768754845699)) },
{ simde_mm256_set_epi64x(INT64_C(-3369675545100032670), INT64_C(-5453194687323465101),
INT64_C(-7873359915838041141), INT64_C(-2715603020778233064)),
UINT8_C(169),
simde_mm256_set_epi64x(INT64_C( 6972842025751468465), INT64_C( -70349858703264913),
INT64_C( -274794754558770720), INT64_C(-4632650321932570335)),
simde_mm256_set_epi64x(INT64_C( 6972842025751468465), INT64_C(-5453194687323465101),
INT64_C(-7873359915838041141), INT64_C(-4632650321932570335)) },
{ simde_mm256_set_epi64x(INT64_C( 6027108319237370493), INT64_C(-1242194223738253269),
INT64_C(-4627845169201021686), INT64_C( 6845596120956145572)),
UINT8_C(143),
simde_mm256_set_epi64x(INT64_C(-3877996964438243656), INT64_C(-4576357011277680458),
INT64_C( 6353148636895875717), INT64_C( 4412973294027016788)),
simde_mm256_set_epi64x(INT64_C(-3877996964438243656), INT64_C(-4576357011277680458),
INT64_C( 6353148636895875717), INT64_C( 4412973294027016788)) },
{ simde_mm256_set_epi64x(INT64_C( 9142894596557299884), INT64_C( 8214900458994780454),
INT64_C( 8865669120860669544), INT64_C( 8653034493845742246)),
UINT8_C(226),
simde_mm256_set_epi64x(INT64_C( 1244643455152445841), INT64_C( 2297609102993095657),
INT64_C(-5233775572318758587), INT64_C(-7732116011616278804)),
simde_mm256_set_epi64x(INT64_C( 9142894596557299884), INT64_C( 8214900458994780454),
INT64_C(-5233775572318758587), INT64_C( 8653034493845742246)) },
{ simde_mm256_set_epi64x(INT64_C( 4960786529412164795), INT64_C( 8678743560946050948),
INT64_C( 2843182024025655803), INT64_C( -83887347445242653)),
UINT8_C( 74),
simde_mm256_set_epi64x(INT64_C( 3754067458265850846), INT64_C(-6092043402181917138),
INT64_C( 1306971064806148347), INT64_C(-5729735109094765451)),
simde_mm256_set_epi64x(INT64_C( 3754067458265850846), INT64_C( 8678743560946050948),
INT64_C( 1306971064806148347), INT64_C( -83887347445242653)) },
{ simde_mm256_set_epi64x(INT64_C( 2112902535792085455), INT64_C(-6619508989181003755),
INT64_C(-7221956771732279605), INT64_C( 6287623589682049686)),
UINT8_C(191),
simde_mm256_set_epi64x(INT64_C( 3797901248692596665), INT64_C( 7828643831964461331),
INT64_C( 1067056404383166060), INT64_C(-2361551563160303879)),
simde_mm256_set_epi64x(INT64_C( 3797901248692596665), INT64_C( 7828643831964461331),
INT64_C( 1067056404383166060), INT64_C(-2361551563160303879)) },
{ simde_mm256_set_epi64x(INT64_C( 6637695700610981441), INT64_C( 8064523188707259542),
INT64_C(-3039387732265680328), INT64_C( 5125314073625570095)),
UINT8_C(100),
simde_mm256_set_epi64x(INT64_C( 4453523714429879071), INT64_C(-2274204535440821687),
INT64_C(-3167205970195665497), INT64_C( 3325113155733044170)),
simde_mm256_set_epi64x(INT64_C( 6637695700610981441), INT64_C(-2274204535440821687),
INT64_C(-3039387732265680328), INT64_C( 5125314073625570095)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_mask_mov_epi64(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i64(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_mask_mov_pd(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m256d src;
simde__mmask8 k;
simde__m256d a;
simde__m256d r;
} test_vec[8] = {
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( 774.53), SIMDE_FLOAT64_C( 377.61),
SIMDE_FLOAT64_C( 717.45), SIMDE_FLOAT64_C( 713.04)),
UINT8_C( 22),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 723.04), SIMDE_FLOAT64_C( 343.93),
SIMDE_FLOAT64_C( 199.28), SIMDE_FLOAT64_C( -711.48)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 774.53), SIMDE_FLOAT64_C( 343.93),
SIMDE_FLOAT64_C( 199.28), SIMDE_FLOAT64_C( 713.04)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( -510.02), SIMDE_FLOAT64_C( 340.82),
SIMDE_FLOAT64_C( 576.36), SIMDE_FLOAT64_C( -95.74)),
UINT8_C(255),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 918.58), SIMDE_FLOAT64_C( 109.09),
SIMDE_FLOAT64_C( -879.13), SIMDE_FLOAT64_C( 336.44)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 918.58), SIMDE_FLOAT64_C( 109.09),
SIMDE_FLOAT64_C( -879.13), SIMDE_FLOAT64_C( 336.44)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( 409.63), SIMDE_FLOAT64_C( -297.52),
SIMDE_FLOAT64_C( 108.73), SIMDE_FLOAT64_C( 228.30)),
UINT8_C(234),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -549.30), SIMDE_FLOAT64_C( -400.24),
SIMDE_FLOAT64_C( -459.77), SIMDE_FLOAT64_C( -392.32)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -549.30), SIMDE_FLOAT64_C( -297.52),
SIMDE_FLOAT64_C( -459.77), SIMDE_FLOAT64_C( 228.30)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( -1.67), SIMDE_FLOAT64_C( -827.28),
SIMDE_FLOAT64_C( 295.95), SIMDE_FLOAT64_C( 558.58)),
UINT8_C(192),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 320.94), SIMDE_FLOAT64_C( -669.22),
SIMDE_FLOAT64_C( 941.71), SIMDE_FLOAT64_C( -772.39)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -1.67), SIMDE_FLOAT64_C( -827.28),
SIMDE_FLOAT64_C( 295.95), SIMDE_FLOAT64_C( 558.58)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( -393.08), SIMDE_FLOAT64_C( 83.20),
SIMDE_FLOAT64_C( 408.44), SIMDE_FLOAT64_C( 326.57)),
UINT8_C( 97),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -490.95), SIMDE_FLOAT64_C( 526.06),
SIMDE_FLOAT64_C( -564.61), SIMDE_FLOAT64_C( -582.24)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -393.08), SIMDE_FLOAT64_C( 83.20),
SIMDE_FLOAT64_C( 408.44), SIMDE_FLOAT64_C( -582.24)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( -808.43), SIMDE_FLOAT64_C( 58.34),
SIMDE_FLOAT64_C( -379.04), SIMDE_FLOAT64_C( 54.10)),
UINT8_C( 14),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 450.27), SIMDE_FLOAT64_C( -128.64),
SIMDE_FLOAT64_C( -995.13), SIMDE_FLOAT64_C( 479.76)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 450.27), SIMDE_FLOAT64_C( -128.64),
SIMDE_FLOAT64_C( -995.13), SIMDE_FLOAT64_C( 54.10)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( 322.73), SIMDE_FLOAT64_C( 175.90),
SIMDE_FLOAT64_C( -940.90), SIMDE_FLOAT64_C( -692.98)),
UINT8_C(117),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -758.62), SIMDE_FLOAT64_C( 71.29),
SIMDE_FLOAT64_C( 788.39), SIMDE_FLOAT64_C( -310.18)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 322.73), SIMDE_FLOAT64_C( 71.29),
SIMDE_FLOAT64_C( -940.90), SIMDE_FLOAT64_C( -310.18)) },
{ simde_mm256_set_pd(SIMDE_FLOAT64_C( -378.45), SIMDE_FLOAT64_C( 288.81),
SIMDE_FLOAT64_C( 695.49), SIMDE_FLOAT64_C( -580.49)),
UINT8_C( 27),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 130.47), SIMDE_FLOAT64_C( 632.45),
SIMDE_FLOAT64_C( 808.39), SIMDE_FLOAT64_C( 627.49)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 130.47), SIMDE_FLOAT64_C( 288.81),
SIMDE_FLOAT64_C( 808.39), SIMDE_FLOAT64_C( 627.49)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256d r = simde_mm256_mask_mov_pd(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m256d_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm256_mask_mov_ps(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m256 src;
simde__mmask8 k;
simde__m256 a;
simde__m256 r;
} test_vec[8] = {
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( -555.53), SIMDE_FLOAT32_C( 800.80),
SIMDE_FLOAT32_C( 174.96), SIMDE_FLOAT32_C( 12.40),
SIMDE_FLOAT32_C( -124.14), SIMDE_FLOAT32_C( 378.54),
SIMDE_FLOAT32_C( -864.83), SIMDE_FLOAT32_C( 821.24)),
UINT8_C(222),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 486.82), SIMDE_FLOAT32_C( 716.60),
SIMDE_FLOAT32_C( 497.18), SIMDE_FLOAT32_C( -260.12),
SIMDE_FLOAT32_C( 283.83), SIMDE_FLOAT32_C( 297.46),
SIMDE_FLOAT32_C( 984.87), SIMDE_FLOAT32_C( 59.43)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 486.82), SIMDE_FLOAT32_C( 716.60),
SIMDE_FLOAT32_C( 174.96), SIMDE_FLOAT32_C( -260.12),
SIMDE_FLOAT32_C( 283.83), SIMDE_FLOAT32_C( 297.46),
SIMDE_FLOAT32_C( 984.87), SIMDE_FLOAT32_C( 821.24)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( -111.85), SIMDE_FLOAT32_C( -140.93),
SIMDE_FLOAT32_C( 91.77), SIMDE_FLOAT32_C( 175.59),
SIMDE_FLOAT32_C( -358.15), SIMDE_FLOAT32_C( -375.20),
SIMDE_FLOAT32_C( 580.39), SIMDE_FLOAT32_C( 459.07)),
UINT8_C(207),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 315.52), SIMDE_FLOAT32_C( -581.86),
SIMDE_FLOAT32_C( 639.05), SIMDE_FLOAT32_C( 298.85),
SIMDE_FLOAT32_C( -373.24), SIMDE_FLOAT32_C( -178.13),
SIMDE_FLOAT32_C( 98.66), SIMDE_FLOAT32_C( -334.34)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 315.52), SIMDE_FLOAT32_C( -581.86),
SIMDE_FLOAT32_C( 91.77), SIMDE_FLOAT32_C( 175.59),
SIMDE_FLOAT32_C( -373.24), SIMDE_FLOAT32_C( -178.13),
SIMDE_FLOAT32_C( 98.66), SIMDE_FLOAT32_C( -334.34)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( 869.24), SIMDE_FLOAT32_C( 558.63),
SIMDE_FLOAT32_C( 500.11), SIMDE_FLOAT32_C( 448.62),
SIMDE_FLOAT32_C( -66.45), SIMDE_FLOAT32_C( -429.13),
SIMDE_FLOAT32_C( -688.99), SIMDE_FLOAT32_C( -828.86)),
UINT8_C(106),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -209.77), SIMDE_FLOAT32_C( 87.73),
SIMDE_FLOAT32_C( 807.71), SIMDE_FLOAT32_C( -161.53),
SIMDE_FLOAT32_C( -720.29), SIMDE_FLOAT32_C( -841.34),
SIMDE_FLOAT32_C( -679.61), SIMDE_FLOAT32_C( -751.55)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 869.24), SIMDE_FLOAT32_C( 87.73),
SIMDE_FLOAT32_C( 807.71), SIMDE_FLOAT32_C( 448.62),
SIMDE_FLOAT32_C( -720.29), SIMDE_FLOAT32_C( -429.13),
SIMDE_FLOAT32_C( -679.61), SIMDE_FLOAT32_C( -828.86)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( 648.52), SIMDE_FLOAT32_C( -621.11),
SIMDE_FLOAT32_C( 44.58), SIMDE_FLOAT32_C( 173.55),
SIMDE_FLOAT32_C( 227.71), SIMDE_FLOAT32_C( -831.29),
SIMDE_FLOAT32_C( 210.07), SIMDE_FLOAT32_C( 469.94)),
UINT8_C(209),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -457.88), SIMDE_FLOAT32_C( -345.53),
SIMDE_FLOAT32_C( -52.29), SIMDE_FLOAT32_C( 652.21),
SIMDE_FLOAT32_C( 802.89), SIMDE_FLOAT32_C( 706.42),
SIMDE_FLOAT32_C( 63.40), SIMDE_FLOAT32_C( 904.43)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -457.88), SIMDE_FLOAT32_C( -345.53),
SIMDE_FLOAT32_C( 44.58), SIMDE_FLOAT32_C( 652.21),
SIMDE_FLOAT32_C( 227.71), SIMDE_FLOAT32_C( -831.29),
SIMDE_FLOAT32_C( 210.07), SIMDE_FLOAT32_C( 904.43)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( 592.24), SIMDE_FLOAT32_C( -735.22),
SIMDE_FLOAT32_C( 596.55), SIMDE_FLOAT32_C( -541.18),
SIMDE_FLOAT32_C( -342.66), SIMDE_FLOAT32_C( 98.60),
SIMDE_FLOAT32_C( 188.58), SIMDE_FLOAT32_C( -720.97)),
UINT8_C( 39),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -832.08), SIMDE_FLOAT32_C( 690.51),
SIMDE_FLOAT32_C( 197.88), SIMDE_FLOAT32_C( -345.06),
SIMDE_FLOAT32_C( -603.10), SIMDE_FLOAT32_C( 528.02),
SIMDE_FLOAT32_C( -679.70), SIMDE_FLOAT32_C( -757.75)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 592.24), SIMDE_FLOAT32_C( -735.22),
SIMDE_FLOAT32_C( 197.88), SIMDE_FLOAT32_C( -541.18),
SIMDE_FLOAT32_C( -342.66), SIMDE_FLOAT32_C( 528.02),
SIMDE_FLOAT32_C( -679.70), SIMDE_FLOAT32_C( -757.75)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( 630.75), SIMDE_FLOAT32_C( -765.52),
SIMDE_FLOAT32_C( 644.64), SIMDE_FLOAT32_C( -522.11),
SIMDE_FLOAT32_C( -647.87), SIMDE_FLOAT32_C( 408.91),
SIMDE_FLOAT32_C( -874.53), SIMDE_FLOAT32_C( 777.74)),
UINT8_C( 55),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -382.40), SIMDE_FLOAT32_C( 204.65),
SIMDE_FLOAT32_C( 263.52), SIMDE_FLOAT32_C( 553.68),
SIMDE_FLOAT32_C( 482.50), SIMDE_FLOAT32_C( -416.62),
SIMDE_FLOAT32_C( 194.15), SIMDE_FLOAT32_C( -653.83)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 630.75), SIMDE_FLOAT32_C( -765.52),
SIMDE_FLOAT32_C( 263.52), SIMDE_FLOAT32_C( 553.68),
SIMDE_FLOAT32_C( -647.87), SIMDE_FLOAT32_C( -416.62),
SIMDE_FLOAT32_C( 194.15), SIMDE_FLOAT32_C( -653.83)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( -84.63), SIMDE_FLOAT32_C( 440.56),
SIMDE_FLOAT32_C( 471.24), SIMDE_FLOAT32_C( 544.90),
SIMDE_FLOAT32_C( -133.99), SIMDE_FLOAT32_C( -169.40),
SIMDE_FLOAT32_C( 397.71), SIMDE_FLOAT32_C( 495.33)),
UINT8_C(147),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -417.11), SIMDE_FLOAT32_C( -321.70),
SIMDE_FLOAT32_C( 929.20), SIMDE_FLOAT32_C( -973.32),
SIMDE_FLOAT32_C( 120.89), SIMDE_FLOAT32_C( 122.15),
SIMDE_FLOAT32_C( 252.56), SIMDE_FLOAT32_C( 335.57)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -417.11), SIMDE_FLOAT32_C( 440.56),
SIMDE_FLOAT32_C( 471.24), SIMDE_FLOAT32_C( -973.32),
SIMDE_FLOAT32_C( -133.99), SIMDE_FLOAT32_C( -169.40),
SIMDE_FLOAT32_C( 252.56), SIMDE_FLOAT32_C( 335.57)) },
{ simde_mm256_set_ps(SIMDE_FLOAT32_C( 637.95), SIMDE_FLOAT32_C( 655.37),
SIMDE_FLOAT32_C( 156.29), SIMDE_FLOAT32_C( -73.51),
SIMDE_FLOAT32_C( -940.14), SIMDE_FLOAT32_C( 79.12),
SIMDE_FLOAT32_C( -920.60), SIMDE_FLOAT32_C( 773.77)),
UINT8_C(111),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -286.54), SIMDE_FLOAT32_C( -686.34),
SIMDE_FLOAT32_C( 368.35), SIMDE_FLOAT32_C( -817.20),
SIMDE_FLOAT32_C( -376.39), SIMDE_FLOAT32_C( 454.17),
SIMDE_FLOAT32_C( 819.05), SIMDE_FLOAT32_C( 500.81)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 637.95), SIMDE_FLOAT32_C( -686.34),
SIMDE_FLOAT32_C( 368.35), SIMDE_FLOAT32_C( -73.51),
SIMDE_FLOAT32_C( -376.39), SIMDE_FLOAT32_C( 454.17),
SIMDE_FLOAT32_C( 819.05), SIMDE_FLOAT32_C( 500.81)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256 r = simde_mm256_mask_mov_ps(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m256_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm512_mask_mov_epi8(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m512i src;
simde__mmask64 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ simde_mm512_set_epi8(INT8_C( -56), INT8_C( 10), INT8_C( 103), INT8_C( 84),
INT8_C( 93), INT8_C( 24), INT8_C( -78), INT8_C( 35),
INT8_C( 125), INT8_C( -63), INT8_C( 19), INT8_C( 4),
INT8_C( 3), INT8_C( -87), INT8_C( 98), INT8_C(-113),
INT8_C( 23), INT8_C(-124), INT8_C( -87), INT8_C( 63),
INT8_C( 108), INT8_C( -18), INT8_C( -27), INT8_C(-127),
INT8_C( -60), INT8_C( 60), INT8_C( -56), INT8_C( 3),
INT8_C(-128), INT8_C( -62), INT8_C( 52), INT8_C( -74),
INT8_C( -87), INT8_C( 32), INT8_C( 46), INT8_C(-128),
INT8_C( 54), INT8_C( -19), INT8_C( 12), INT8_C( 22),
INT8_C( -94), INT8_C( -84), INT8_C( -58), INT8_C( 92),
INT8_C( -70), INT8_C( -25), INT8_C( 91), INT8_C( -45),
INT8_C( 5), INT8_C( 109), INT8_C( -46), INT8_C( 37),
INT8_C( 7), INT8_C( 44), INT8_C( 41), INT8_C(-106),
INT8_C( 82), INT8_C( 48), INT8_C( -21), INT8_C( -90),
INT8_C( 105), INT8_C( 117), INT8_C( -21), INT8_C( 39)),
UINT64_C(11516165625622400866),
simde_mm512_set_epi8(INT8_C( 43), INT8_C( -65), INT8_C( 47), INT8_C( 36),
INT8_C(-101), INT8_C( 5), INT8_C( -76), INT8_C( -57),
INT8_C( 77), INT8_C( 48), INT8_C( -46), INT8_C( -15),
INT8_C( 78), INT8_C( 108), INT8_C( 114), INT8_C( 83),
INT8_C( -72), INT8_C( 21), INT8_C( 100), INT8_C( 121),
INT8_C( 29), INT8_C( -74), INT8_C( 81), INT8_C( -13),
INT8_C( -57), INT8_C( -17), INT8_C( 20), INT8_C(-109),
INT8_C( -87), INT8_C( 127), INT8_C( 92), INT8_C(-119),
INT8_C( 26), INT8_C( 123), INT8_C( -51), INT8_C( 109),
INT8_C( 30), INT8_C( -58), INT8_C(-117), INT8_C( 82),
INT8_C( 111), INT8_C( -10), INT8_C( -10), INT8_C( -68),
INT8_C( -4), INT8_C( -7), INT8_C( 117), INT8_C( 92),
INT8_C( 94), INT8_C( -65), INT8_C( 109), INT8_C( 81),
INT8_C( -71), INT8_C( -46), INT8_C( 113), INT8_C( 9),
INT8_C( 123), INT8_C( -39), INT8_C( 76), INT8_C( 68),
INT8_C( -3), INT8_C( 36), INT8_C( 0), INT8_C( 6)),
simde_mm512_set_epi8(INT8_C( 43), INT8_C( 10), INT8_C( 103), INT8_C( 36),
INT8_C(-101), INT8_C( 5), INT8_C( -76), INT8_C( -57),
INT8_C( 77), INT8_C( 48), INT8_C( 19), INT8_C( -15),
INT8_C( 3), INT8_C( -87), INT8_C( 98), INT8_C( 83),
INT8_C( -72), INT8_C(-124), INT8_C( 100), INT8_C( 63),
INT8_C( 108), INT8_C( -18), INT8_C( 81), INT8_C( -13),
INT8_C( -57), INT8_C( 60), INT8_C( -56), INT8_C(-109),
INT8_C( -87), INT8_C( 127), INT8_C( 92), INT8_C(-119),
INT8_C( -87), INT8_C( 32), INT8_C( 46), INT8_C(-128),
INT8_C( 30), INT8_C( -19), INT8_C( 12), INT8_C( 82),
INT8_C( 111), INT8_C( -10), INT8_C( -58), INT8_C( 92),
INT8_C( -4), INT8_C( -25), INT8_C( 91), INT8_C( 92),
INT8_C( 94), INT8_C( 109), INT8_C( -46), INT8_C( 37),
INT8_C( -71), INT8_C( -46), INT8_C( 113), INT8_C( 9),
INT8_C( 82), INT8_C( -39), INT8_C( 76), INT8_C( -90),
INT8_C( 105), INT8_C( 117), INT8_C( 0), INT8_C( 39)) },
{ simde_mm512_set_epi8(INT8_C( -25), INT8_C(-127), INT8_C( 40), INT8_C( -10),
INT8_C( 75), INT8_C(-123), INT8_C( 78), INT8_C( -2),
INT8_C( -83), INT8_C( -74), INT8_C( -51), INT8_C( 46),
INT8_C( 60), INT8_C( -39), INT8_C( 124), INT8_C(-117),
INT8_C( 70), INT8_C( 66), INT8_C( -35), INT8_C( -51),
INT8_C( -64), INT8_C( -61), INT8_C(-113), INT8_C( 2),
INT8_C( -4), INT8_C( -72), INT8_C( 113), INT8_C( -63),
INT8_C( -49), INT8_C( 70), INT8_C( -50), INT8_C( 52),
INT8_C( 0), INT8_C( 13), INT8_C( 74), INT8_C( -60),
INT8_C( 103), INT8_C( -7), INT8_C( -61), INT8_C( -37),
INT8_C( -79), INT8_C( -77), INT8_C( -81), INT8_C( -83),
INT8_C( 94), INT8_C( 52), INT8_C( -73), INT8_C( 76),
INT8_C(-120), INT8_C( 80), INT8_C( -52), INT8_C(-126),
INT8_C( -40), INT8_C( 119), INT8_C( -83), INT8_C( 62),
INT8_C( 20), INT8_C( 23), INT8_C( 120), INT8_C( -13),
INT8_C( 82), INT8_C( 32), INT8_C( -44), INT8_C( -44)),
UINT64_C( 5249838983459854712),
simde_mm512_set_epi8(INT8_C( -68), INT8_C( 121), INT8_C(-102), INT8_C( -30),
INT8_C(-103), INT8_C( -31), INT8_C( 24), INT8_C( -55),
INT8_C( -5), INT8_C( 8), INT8_C( -38), INT8_C( 37),
INT8_C( 15), INT8_C(-120), INT8_C( 17), INT8_C( -63),
INT8_C( 107), INT8_C( -41), INT8_C( -53), INT8_C(-107),
INT8_C( 91), INT8_C( -9), INT8_C(-127), INT8_C( -39),
INT8_C( 105), INT8_C( -27), INT8_C( 96), INT8_C( -96),
INT8_C( 2), INT8_C( 44), INT8_C( 11), INT8_C( -43),
INT8_C( -52), INT8_C( 126), INT8_C( 125), INT8_C( 121),
INT8_C( 87), INT8_C( -95), INT8_C( 120), INT8_C( -46),
INT8_C( 25), INT8_C( 71), INT8_C( 117), INT8_C( 47),
INT8_C(-110), INT8_C( -87), INT8_C( -36), INT8_C( 25),
INT8_C( 24), INT8_C( -92), INT8_C( 99), INT8_C( 15),
INT8_C( 39), INT8_C( 38), INT8_C( 111), INT8_C( -29),
INT8_C( 62), INT8_C( 34), INT8_C(-113), INT8_C( 121),
INT8_C( -31), INT8_C(-111), INT8_C( 76), INT8_C(-113)),
simde_mm512_set_epi8(INT8_C( -25), INT8_C( 121), INT8_C( 40), INT8_C( -10),
INT8_C(-103), INT8_C(-123), INT8_C( 78), INT8_C( -2),
INT8_C( -5), INT8_C( 8), INT8_C( -51), INT8_C( 37),
INT8_C( 15), INT8_C( -39), INT8_C( 17), INT8_C( -63),
INT8_C( 70), INT8_C( 66), INT8_C( -53), INT8_C( -51),
INT8_C( 91), INT8_C( -9), INT8_C(-113), INT8_C( 2),
INT8_C( 105), INT8_C( -72), INT8_C( 96), INT8_C( -96),
INT8_C( 2), INT8_C( 44), INT8_C( -50), INT8_C( -43),
INT8_C( -52), INT8_C( 13), INT8_C( 74), INT8_C( 121),
INT8_C( 87), INT8_C( -7), INT8_C( -61), INT8_C( -46),
INT8_C( -79), INT8_C( -77), INT8_C( -81), INT8_C( 47),
INT8_C(-110), INT8_C( -87), INT8_C( -36), INT8_C( 25),
INT8_C(-120), INT8_C( -92), INT8_C( -52), INT8_C( 15),
INT8_C( 39), INT8_C( 119), INT8_C( -83), INT8_C( -29),
INT8_C( 20), INT8_C( 34), INT8_C(-113), INT8_C( 121),
INT8_C( -31), INT8_C( 32), INT8_C( -44), INT8_C( -44)) },
{ simde_mm512_set_epi8(INT8_C( 117), INT8_C( 0), INT8_C( -58), INT8_C( -82),
INT8_C( -40), INT8_C( -36), INT8_C( -30), INT8_C( -56),
INT8_C( -68), INT8_C( -93), INT8_C( 25), INT8_C( -68),
INT8_C( 8), INT8_C( 64), INT8_C( -70), INT8_C( -19),
INT8_C( -64), INT8_C( -54), INT8_C( 120), INT8_C( 61),
INT8_C( -73), INT8_C( 47), INT8_C(-113), INT8_C( 68),
INT8_C( -44), INT8_C( -96), INT8_C(-106), INT8_C( -68),
INT8_C( 75), INT8_C( -42), INT8_C( 94), INT8_C( -68),
INT8_C( -10), INT8_C( 41), INT8_C( -90), INT8_C(-110),
INT8_C(-116), INT8_C( -51), INT8_C( -75), INT8_C( 102),
INT8_C( 14), INT8_C( 110), INT8_C( 89), INT8_C( 5),
INT8_C( -49), INT8_C( 29), INT8_C( 63), INT8_C( -67),
INT8_C( -85), INT8_C( 90), INT8_C( 97), INT8_C( -38),
INT8_C( -35), INT8_C( 6), INT8_C( 37), INT8_C( 106),
INT8_C( 102), INT8_C( 109), INT8_C( 47), INT8_C( 29),
INT8_C( -81), INT8_C(-113), INT8_C( -49), INT8_C( 18)),
UINT64_C(16853471664498189804),
simde_mm512_set_epi8(INT8_C( -53), INT8_C( -59), INT8_C( -6), INT8_C( -57),
INT8_C( 97), INT8_C( 68), INT8_C( -67), INT8_C( 117),
INT8_C( -92), INT8_C( -3), INT8_C( 2), INT8_C( 59),
INT8_C( 53), INT8_C( -13), INT8_C( -31), INT8_C( 47),
INT8_C( -33), INT8_C( 67), INT8_C( -43), INT8_C( -53),
INT8_C( -52), INT8_C( -3), INT8_C( 85), INT8_C( 48),
INT8_C( -45), INT8_C( -72), INT8_C( 96), INT8_C( 85),
INT8_C( 81), INT8_C( 28), INT8_C( -50), INT8_C(-107),
INT8_C( -56), INT8_C( -85), INT8_C( -83), INT8_C( -25),
INT8_C( 78), INT8_C( 13), INT8_C( 41), INT8_C( 86),
INT8_C( -28), INT8_C( 90), INT8_C( 29), INT8_C(-115),
INT8_C( -97), INT8_C(-121), INT8_C( -51), INT8_C( 53),
INT8_C( -73), INT8_C( -64), INT8_C( -86), INT8_C( -65),
INT8_C( 124), INT8_C(-109), INT8_C( 79), INT8_C(-111),
INT8_C( 64), INT8_C( -98), INT8_C( -1), INT8_C( -43),
INT8_C( -4), INT8_C( 72), INT8_C( 108), INT8_C( -95)),
simde_mm512_set_epi8(INT8_C( -53), INT8_C( -59), INT8_C( -6), INT8_C( -82),
INT8_C( 97), INT8_C( -36), INT8_C( -30), INT8_C( 117),
INT8_C( -92), INT8_C( -3), INT8_C( 2), INT8_C( -68),
INT8_C( 8), INT8_C( 64), INT8_C( -31), INT8_C( 47),
INT8_C( -33), INT8_C( -54), INT8_C( 120), INT8_C( 61),
INT8_C( -52), INT8_C( -3), INT8_C( 85), INT8_C( 48),
INT8_C( -44), INT8_C( -96), INT8_C( 96), INT8_C( -68),
INT8_C( 81), INT8_C( 28), INT8_C( -50), INT8_C(-107),
INT8_C( -10), INT8_C( -85), INT8_C( -83), INT8_C( -25),
INT8_C(-116), INT8_C( -51), INT8_C( 41), INT8_C( 102),
INT8_C( -28), INT8_C( 110), INT8_C( 89), INT8_C( 5),
INT8_C( -49), INT8_C(-121), INT8_C( -51), INT8_C( -67),
INT8_C( -73), INT8_C( 90), INT8_C( -86), INT8_C( -38),
INT8_C( -35), INT8_C(-109), INT8_C( 37), INT8_C(-111),
INT8_C( 64), INT8_C( -98), INT8_C( -1), INT8_C( 29),
INT8_C( -4), INT8_C( 72), INT8_C( -49), INT8_C( 18)) },
{ simde_mm512_set_epi8(INT8_C( 37), INT8_C( 104), INT8_C( -81), INT8_C( 113),
INT8_C( 31), INT8_C( -10), INT8_C( -32), INT8_C( -91),
INT8_C( 51), INT8_C( -51), INT8_C( 60), INT8_C( 38),
INT8_C( -1), INT8_C( -38), INT8_C( 2), INT8_C( 110),
INT8_C( -61), INT8_C( 91), INT8_C( -50), INT8_C( 89),
INT8_C( 27), INT8_C( -13), INT8_C( 111), INT8_C( -20),
INT8_C( 51), INT8_C( -66), INT8_C( -26), INT8_C( 66),
INT8_C( 45), INT8_C( -59), INT8_C( -45), INT8_C(-102),
INT8_C( 84), INT8_C(-102), INT8_C( 103), INT8_C( 111),
INT8_C( -47), INT8_C( 74), INT8_C( 111), INT8_C( 62),
INT8_C( 41), INT8_C( -4), INT8_C( -19), INT8_C( 26),
INT8_C(-127), INT8_C( -41), INT8_C( 14), INT8_C( 10),
INT8_C( 63), INT8_C( 99), INT8_C( 51), INT8_C(-115),
INT8_C( 118), INT8_C( -85), INT8_C(-111), INT8_C( 19),
INT8_C( 43), INT8_C( -97), INT8_C( 107), INT8_C( 127),
INT8_C(-100), INT8_C( 45), INT8_C( -77), INT8_C( 77)),
UINT64_C( 3141946940694640625),
simde_mm512_set_epi8(INT8_C( -47), INT8_C( -86), INT8_C( 35), INT8_C(-110),
INT8_C( 95), INT8_C( -9), INT8_C( 86), INT8_C( 9),
INT8_C( 31), INT8_C( 48), INT8_C( 63), INT8_C( -6),
INT8_C( -36), INT8_C( -47), INT8_C( 95), INT8_C( -20),
INT8_C( 21), INT8_C( -9), INT8_C( -2), INT8_C( 26),
INT8_C( 63), INT8_C( 36), INT8_C( -33), INT8_C( 58),
INT8_C( -40), INT8_C( 106), INT8_C( 2), INT8_C( -51),
INT8_C( -13), INT8_C( -76), INT8_C( -77), INT8_C( -77),
INT8_C( 65), INT8_C( 44), INT8_C( -48), INT8_C( 121),
INT8_C(-106), INT8_C( 35), INT8_C( 49), INT8_C( -67),
INT8_C( -35), INT8_C( -29), INT8_C( 89), INT8_C( 91),
INT8_C( -53), INT8_C( -62), INT8_C( 107), INT8_C( -42),
INT8_C(-115), INT8_C( 52), INT8_C( -17), INT8_C( 64),
INT8_C(-105), INT8_C(-106), INT8_C( 65), INT8_C( 97),
INT8_C( 85), INT8_C( 52), INT8_C( -17), INT8_C( 6),
INT8_C( -73), INT8_C( 109), INT8_C( 99), INT8_C( 9)),
simde_mm512_set_epi8(INT8_C( 37), INT8_C( 104), INT8_C( 35), INT8_C( 113),
INT8_C( 95), INT8_C( -10), INT8_C( 86), INT8_C( 9),
INT8_C( 31), INT8_C( -51), INT8_C( 60), INT8_C( -6),
INT8_C( -36), INT8_C( -38), INT8_C( 95), INT8_C( 110),
INT8_C( -61), INT8_C( -9), INT8_C( -2), INT8_C( 26),
INT8_C( 27), INT8_C( -13), INT8_C( 111), INT8_C( -20),
INT8_C( 51), INT8_C( -66), INT8_C( -26), INT8_C( -51),
INT8_C( -13), INT8_C( -59), INT8_C( -45), INT8_C(-102),
INT8_C( 65), INT8_C(-102), INT8_C( 103), INT8_C( 111),
INT8_C( -47), INT8_C( 35), INT8_C( 49), INT8_C( -67),
INT8_C( 41), INT8_C( -4), INT8_C( 89), INT8_C( 91),
INT8_C( -53), INT8_C( -41), INT8_C( 107), INT8_C( 10),
INT8_C(-115), INT8_C( 99), INT8_C( -17), INT8_C( 64),
INT8_C( 118), INT8_C(-106), INT8_C( 65), INT8_C( 97),
INT8_C( 85), INT8_C( 52), INT8_C( -17), INT8_C( 6),
INT8_C(-100), INT8_C( 45), INT8_C( -77), INT8_C( 9)) },
{ simde_mm512_set_epi8(INT8_C( -3), INT8_C( -87), INT8_C( 8), INT8_C( -39),
INT8_C(-122), INT8_C( 94), INT8_C( -13), INT8_C( 31),
INT8_C( 125), INT8_C( -74), INT8_C( 5), INT8_C( 127),
INT8_C( 68), INT8_C( 61), INT8_C( 93), INT8_C( 69),
INT8_C( 92), INT8_C( -67), INT8_C( 4), INT8_C( -4),
INT8_C( 29), INT8_C( -70), INT8_C( 28), INT8_C( -34),
INT8_C( -99), INT8_C( 28), INT8_C( -2), INT8_C( 39),
INT8_C( -60), INT8_C( 91), INT8_C( 66), INT8_C(-121),
INT8_C( 40), INT8_C( -99), INT8_C( 6), INT8_C( 105),
INT8_C( 36), INT8_C( -85), INT8_C( 62), INT8_C( 102),
INT8_C( 23), INT8_C(-110), INT8_C( -92), INT8_C( 59),
INT8_C( 17), INT8_C( -54), INT8_C( 5), INT8_C( 81),
INT8_C( -71), INT8_C( 68), INT8_C( 114), INT8_C( -60),
INT8_C( 39), INT8_C( -49), INT8_C( -84), INT8_C( 114),
INT8_C( -81), INT8_C( 122), INT8_C( 97), INT8_C( -16),
INT8_C( 21), INT8_C( -76), INT8_C( -80), INT8_C( -61)),
UINT64_C( 7453836348998775155),
simde_mm512_set_epi8(INT8_C(-107), INT8_C( 74), INT8_C( -78), INT8_C( -91),
INT8_C( 7), INT8_C( 9), INT8_C( 96), INT8_C( -14),
INT8_C( 10), INT8_C( 85), INT8_C( 75), INT8_C( -98),
INT8_C( -93), INT8_C( 66), INT8_C(-107), INT8_C( -73),
INT8_C(-106), INT8_C( -46), INT8_C( 35), INT8_C( 89),
INT8_C( -81), INT8_C( -42), INT8_C( -88), INT8_C( 17),
INT8_C( 34), INT8_C( 81), INT8_C(-103), INT8_C( 99),
INT8_C( -3), INT8_C( 116), INT8_C( -98), INT8_C(-111),
INT8_C( -10), INT8_C( 120), INT8_C( 115), INT8_C( 38),
INT8_C( -96), INT8_C( -48), INT8_C( -20), INT8_C( 25),
INT8_C( 44), INT8_C( -60), INT8_C( -69), INT8_C( 1),
INT8_C( 63), INT8_C( 5), INT8_C( -90), INT8_C( -83),
INT8_C( -81), INT8_C( 119), INT8_C( -80), INT8_C( 7),
INT8_C(-116), INT8_C( 46), INT8_C( -50), INT8_C( -16),
INT8_C( -90), INT8_C( 31), INT8_C( 57), INT8_C( -10),
INT8_C( 87), INT8_C(-123), INT8_C(-112), INT8_C(-115)),
simde_mm512_set_epi8(INT8_C( -3), INT8_C( 74), INT8_C( -78), INT8_C( -39),
INT8_C(-122), INT8_C( 9), INT8_C( 96), INT8_C( -14),
INT8_C( 125), INT8_C( 85), INT8_C( 75), INT8_C( -98),
INT8_C( 68), INT8_C( 61), INT8_C( 93), INT8_C( -73),
INT8_C( 92), INT8_C( -46), INT8_C( 4), INT8_C( 89),
INT8_C( -81), INT8_C( -70), INT8_C( 28), INT8_C( -34),
INT8_C( 34), INT8_C( 28), INT8_C(-103), INT8_C( 39),
INT8_C( -3), INT8_C( 91), INT8_C( -98), INT8_C(-121),
INT8_C( -10), INT8_C( 120), INT8_C( 6), INT8_C( 38),
INT8_C( 36), INT8_C( -85), INT8_C( -20), INT8_C( 25),
INT8_C( 44), INT8_C( -60), INT8_C( -69), INT8_C( 1),
INT8_C( 17), INT8_C( 5), INT8_C( -90), INT8_C( -83),
INT8_C( -71), INT8_C( 119), INT8_C( -80), INT8_C( 7),
INT8_C( 39), INT8_C( -49), INT8_C( -84), INT8_C( -16),
INT8_C( -81), INT8_C( 31), INT8_C( 57), INT8_C( -10),
INT8_C( 21), INT8_C( -76), INT8_C(-112), INT8_C(-115)) },
{ simde_mm512_set_epi8(INT8_C( 44), INT8_C( 93), INT8_C( 98), INT8_C( 56),
INT8_C(-118), INT8_C( -35), INT8_C( -11), INT8_C( 90),
INT8_C(-105), INT8_C( 2), INT8_C( 120), INT8_C( -6),
INT8_C( 31), INT8_C( 70), INT8_C( 48), INT8_C( 80),
INT8_C( -45), INT8_C( 63), INT8_C(-108), INT8_C( -43),
INT8_C( -1), INT8_C( 90), INT8_C( -88), INT8_C( -74),
INT8_C( 36), INT8_C( 30), INT8_C(-102), INT8_C( 22),
INT8_C( 127), INT8_C(-117), INT8_C( 6), INT8_C( -94),
INT8_C(-110), INT8_C( -41), INT8_C( 20), INT8_C(-121),
INT8_C(-106), INT8_C( 73), INT8_C( 119), INT8_C( -14),
INT8_C( 107), INT8_C( 48), INT8_C( 4), INT8_C( 95),
INT8_C( 84), INT8_C( -53), INT8_C( -11), INT8_C( -26),
INT8_C( 53), INT8_C( 115), INT8_C( -51), INT8_C( -54),
INT8_C( -28), INT8_C( 93), INT8_C(-128), INT8_C(-104),
INT8_C( 35), INT8_C( 58), INT8_C(-101), INT8_C( 110),
INT8_C(-115), INT8_C( -77), INT8_C( -98), INT8_C( 114)),
UINT64_C(12105239831388369272),
simde_mm512_set_epi8(INT8_C( 23), INT8_C( 124), INT8_C( 68), INT8_C( 41),
INT8_C( 105), INT8_C( 81), INT8_C( -85), INT8_C( 1),
INT8_C( 93), INT8_C( 15), INT8_C( -8), INT8_C( 44),
INT8_C(-105), INT8_C( 88), INT8_C( 99), INT8_C( -39),
INT8_C( 119), INT8_C( 69), INT8_C( 127), INT8_C( 121),
INT8_C( 78), INT8_C( 25), INT8_C(-125), INT8_C( 52),
INT8_C( -5), INT8_C( -83), INT8_C(-101), INT8_C( 76),
INT8_C( -86), INT8_C( -10), INT8_C( -96), INT8_C( -15),
INT8_C( 51), INT8_C( 115), INT8_C( 24), INT8_C( 5),
INT8_C( -93), INT8_C( 76), INT8_C( -76), INT8_C(-120),
INT8_C( 26), INT8_C( 95), INT8_C( -66), INT8_C(-119),
INT8_C( -88), INT8_C( 113), INT8_C( -39), INT8_C( -13),
INT8_C( -1), INT8_C( -15), INT8_C( -7), INT8_C(-103),
INT8_C( 99), INT8_C( 122), INT8_C(-107), INT8_C( -48),
INT8_C(-117), INT8_C( 1), INT8_C( -98), INT8_C( 41),
INT8_C(-124), INT8_C( 15), INT8_C( 39), INT8_C(-108)),
simde_mm512_set_epi8(INT8_C( 23), INT8_C( 93), INT8_C( 68), INT8_C( 56),
INT8_C(-118), INT8_C( 81), INT8_C( -85), INT8_C( 1),
INT8_C( 93), INT8_C( 15), INT8_C( -8), INT8_C( 44),
INT8_C(-105), INT8_C( 88), INT8_C( 99), INT8_C( 80),
INT8_C( -45), INT8_C( 69), INT8_C( 127), INT8_C( 121),
INT8_C( -1), INT8_C( 90), INT8_C(-125), INT8_C( 52),
INT8_C( 36), INT8_C( -83), INT8_C(-101), INT8_C( 76),
INT8_C( -86), INT8_C( -10), INT8_C( 6), INT8_C( -15),
INT8_C( 51), INT8_C( -41), INT8_C( 20), INT8_C(-121),
INT8_C(-106), INT8_C( 76), INT8_C( -76), INT8_C( -14),
INT8_C( 26), INT8_C( 95), INT8_C( 4), INT8_C(-119),
INT8_C( 84), INT8_C( -53), INT8_C( -11), INT8_C( -26),
INT8_C( 53), INT8_C( 115), INT8_C( -7), INT8_C(-103),
INT8_C( -28), INT8_C( 93), INT8_C(-128), INT8_C( -48),
INT8_C( 35), INT8_C( 1), INT8_C( -98), INT8_C( 41),
INT8_C(-124), INT8_C( -77), INT8_C( -98), INT8_C( 114)) },
{ simde_mm512_set_epi8(INT8_C( -95), INT8_C( 85), INT8_C( -91), INT8_C( 56),
INT8_C( 91), INT8_C( -49), INT8_C( 106), INT8_C( 16),
INT8_C( 15), INT8_C( 10), INT8_C( 30), INT8_C( 12),
INT8_C( 22), INT8_C( -73), INT8_C( 68), INT8_C( 83),
INT8_C( 121), INT8_C( 56), INT8_C( 108), INT8_C( -49),
INT8_C(-107), INT8_C( 73), INT8_C( -10), INT8_C( 107),
INT8_C( -99), INT8_C( 105), INT8_C( -46), INT8_C( 26),
INT8_C( 20), INT8_C( -18), INT8_C( 82), INT8_C( 37),
INT8_C( -80), INT8_C( -81), INT8_C( 99), INT8_C( 24),
INT8_C( 88), INT8_C( 86), INT8_C( -71), INT8_C( 54),
INT8_C(-121), INT8_C( 30), INT8_C( 98), INT8_C( -68),
INT8_C( 1), INT8_C( 93), INT8_C( 79), INT8_C( -44),
INT8_C( -93), INT8_C( -75), INT8_C( 53), INT8_C( 21),
INT8_C( 44), INT8_C(-111), INT8_C( 104), INT8_C(-101),
INT8_C( -63), INT8_C(-108), INT8_C( 57), INT8_C( -13),
INT8_C( 20), INT8_C( -6), INT8_C( -84), INT8_C( 38)),
UINT64_C(14977178912506627906),
simde_mm512_set_epi8(INT8_C( 94), INT8_C(-107), INT8_C( 99), INT8_C( 86),
INT8_C(-126), INT8_C( 79), INT8_C( 11), INT8_C(-123),
INT8_C( 112), INT8_C( 11), INT8_C( 44), INT8_C( -11),
INT8_C( -10), INT8_C( 70), INT8_C( -45), INT8_C( 124),
INT8_C(-122), INT8_C( 27), INT8_C( 30), INT8_C( 57),
INT8_C( -81), INT8_C( -89), INT8_C( 107), INT8_C( -36),
INT8_C( 100), INT8_C( -65), INT8_C( -83), INT8_C( -7),
INT8_C( 33), INT8_C( -77), INT8_C( -24), INT8_C( 93),
INT8_C( -88), INT8_C( 0), INT8_C( 125), INT8_C( -84),
INT8_C( 102), INT8_C( 110), INT8_C( 49), INT8_C( -75),
INT8_C(-106), INT8_C( 92), INT8_C( 31), INT8_C( 93),
INT8_C(-123), INT8_C( -68), INT8_C( 119), INT8_C( -49),
INT8_C( -54), INT8_C( 105), INT8_C( 12), INT8_C(-117),
INT8_C(-105), INT8_C( 27), INT8_C( 72), INT8_C( -27),
INT8_C( 59), INT8_C(-110), INT8_C( 8), INT8_C(-113),
INT8_C( -36), INT8_C( -7), INT8_C( -64), INT8_C( 96)),
simde_mm512_set_epi8(INT8_C( 94), INT8_C(-107), INT8_C( -91), INT8_C( 56),
INT8_C(-126), INT8_C( 79), INT8_C( 11), INT8_C(-123),
INT8_C( 112), INT8_C( 11), INT8_C( 30), INT8_C( -11),
INT8_C( -10), INT8_C( -73), INT8_C( 68), INT8_C( 124),
INT8_C(-122), INT8_C( 56), INT8_C( 30), INT8_C( -49),
INT8_C(-107), INT8_C( 73), INT8_C( -10), INT8_C( 107),
INT8_C( 100), INT8_C( -65), INT8_C( -46), INT8_C( -7),
INT8_C( 33), INT8_C( -77), INT8_C( -24), INT8_C( 37),
INT8_C( -80), INT8_C( 0), INT8_C( 99), INT8_C( -84),
INT8_C( 88), INT8_C( 86), INT8_C( -71), INT8_C( -75),
INT8_C(-121), INT8_C( 92), INT8_C( 31), INT8_C( -68),
INT8_C(-123), INT8_C( -68), INT8_C( 79), INT8_C( -49),
INT8_C( -54), INT8_C( 105), INT8_C( 53), INT8_C( 21),
INT8_C( 44), INT8_C( 27), INT8_C( 72), INT8_C( -27),
INT8_C( -63), INT8_C(-110), INT8_C( 57), INT8_C( -13),
INT8_C( 20), INT8_C( -6), INT8_C( -64), INT8_C( 38)) },
{ simde_mm512_set_epi8(INT8_C( 60), INT8_C( -31), INT8_C( 26), INT8_C( 5),
INT8_C( 69), INT8_C( -80), INT8_C( 85), INT8_C( 4),
INT8_C( -32), INT8_C( 20), INT8_C( 122), INT8_C( -81),
INT8_C( -84), INT8_C(-101), INT8_C(-122), INT8_C( 51),
INT8_C( 95), INT8_C( 44), INT8_C(-103), INT8_C( 108),
INT8_C( 104), INT8_C( 108), INT8_C( 116), INT8_C(-113),
INT8_C( -40), INT8_C( 118), INT8_C( 107), INT8_C( 127),
INT8_C( 64), INT8_C( -95), INT8_C( 118), INT8_C( 32),
INT8_C( -48), INT8_C( 49), INT8_C( 12), INT8_C(-100),
INT8_C( -76), INT8_C( 61), INT8_C( 79), INT8_C( 120),
INT8_C( 50), INT8_C( -11), INT8_C( -35), INT8_C(-127),
INT8_C( 54), INT8_C( -2), INT8_C( 71), INT8_C( 96),
INT8_C( 27), INT8_C( -13), INT8_C( -56), INT8_C(-110),
INT8_C( 65), INT8_C( -57), INT8_C( 119), INT8_C( 70),
INT8_C( 114), INT8_C( -31), INT8_C( 120), INT8_C( 113),
INT8_C( 92), INT8_C( 94), INT8_C( -85), INT8_C( 19)),
UINT64_C(12789799828226766427),
simde_mm512_set_epi8(INT8_C( -16), INT8_C( -99), INT8_C(-121), INT8_C( -68),
INT8_C( -23), INT8_C( 79), INT8_C( 48), INT8_C( -98),
INT8_C( -95), INT8_C(-117), INT8_C( 13), INT8_C( -11),
INT8_C( 79), INT8_C( 21), INT8_C( 127), INT8_C( 88),
INT8_C( 9), INT8_C(-119), INT8_C( 68), INT8_C( 72),
INT8_C( 35), INT8_C( -56), INT8_C( -74), INT8_C( 10),
INT8_C( 101), INT8_C( 124), INT8_C( 29), INT8_C( -55),
INT8_C( -78), INT8_C( -56), INT8_C( 124), INT8_C( 35),
INT8_C( 11), INT8_C( 106), INT8_C( 41), INT8_C( 59),
INT8_C(-108), INT8_C( 82), INT8_C( -41), INT8_C( 100),
INT8_C( 43), INT8_C( -34), INT8_C( 124), INT8_C( 15),
INT8_C( 113), INT8_C( -20), INT8_C( -83), INT8_C( -87),
INT8_C( -60), INT8_C( 22), INT8_C( -71), INT8_C( 86),
INT8_C( 73), INT8_C( -38), INT8_C(-106), INT8_C( 112),
INT8_C( 98), INT8_C( 51), INT8_C(-116), INT8_C(-126),
INT8_C( -96), INT8_C( 1), INT8_C( 23), INT8_C(-109)),
simde_mm512_set_epi8(INT8_C( -16), INT8_C( -31), INT8_C(-121), INT8_C( -68),
INT8_C( 69), INT8_C( -80), INT8_C( 85), INT8_C( -98),
INT8_C( -32), INT8_C(-117), INT8_C( 13), INT8_C( -11),
INT8_C( 79), INT8_C( 21), INT8_C( 127), INT8_C( 51),
INT8_C( 95), INT8_C(-119), INT8_C( 68), INT8_C( 72),
INT8_C( 35), INT8_C( -56), INT8_C( -74), INT8_C( 10),
INT8_C( -40), INT8_C( 118), INT8_C( 29), INT8_C( 127),
INT8_C( -78), INT8_C( -56), INT8_C( 124), INT8_C( 32),
INT8_C( -48), INT8_C( 49), INT8_C( 41), INT8_C( 59),
INT8_C( -76), INT8_C( 82), INT8_C( 79), INT8_C( 100),
INT8_C( 43), INT8_C( -34), INT8_C( -35), INT8_C(-127),
INT8_C( 113), INT8_C( -20), INT8_C( -83), INT8_C( 96),
INT8_C( -60), INT8_C( 22), INT8_C( -71), INT8_C( 86),
INT8_C( 65), INT8_C( -38), INT8_C(-106), INT8_C( 70),
INT8_C( 114), INT8_C( 51), INT8_C( 120), INT8_C(-126),
INT8_C( -96), INT8_C( 94), INT8_C( 23), INT8_C(-109)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_mask_mov_epi8(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i8(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_mask_mov_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m512i src;
simde__mmask32 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ simde_mm512_set_epi16(INT16_C( -1573), INT16_C( -6208), INT16_C(-22615), INT16_C( -3799),
INT16_C( -8282), INT16_C(-15214), INT16_C(-19149), INT16_C(-11524),
INT16_C(-31971), INT16_C( -228), INT16_C(-27669), INT16_C( 30774),
INT16_C( 14115), INT16_C(-29587), INT16_C( 15716), INT16_C( -9534),
INT16_C( 31897), INT16_C(-25045), INT16_C(-20462), INT16_C( 20289),
INT16_C( 31765), INT16_C( 26200), INT16_C( 22392), INT16_C( 19963),
INT16_C( -9240), INT16_C( -2240), INT16_C( -8342), INT16_C( 31950),
INT16_C(-15053), INT16_C( -6789), INT16_C( -5359), INT16_C( 9700)),
UINT32_C( 175873983),
simde_mm512_set_epi16(INT16_C( 11048), INT16_C(-23497), INT16_C(-22229), INT16_C( 22523),
INT16_C( 32192), INT16_C( 17944), INT16_C( 1999), INT16_C( -512),
INT16_C( 22838), INT16_C( 10573), INT16_C( 22536), INT16_C(-21942),
INT16_C( -9055), INT16_C( -9938), INT16_C( 8369), INT16_C(-32672),
INT16_C( 24766), INT16_C(-31364), INT16_C(-26690), INT16_C( 14381),
INT16_C( 18820), INT16_C( -175), INT16_C(-17138), INT16_C( 8826),
INT16_C( 16551), INT16_C( 18053), INT16_C( -1223), INT16_C(-28643),
INT16_C( -5550), INT16_C( 5011), INT16_C( 22761), INT16_C( 728)),
simde_mm512_set_epi16(INT16_C( -1573), INT16_C( -6208), INT16_C(-22615), INT16_C( -3799),
INT16_C( 32192), INT16_C(-15214), INT16_C( 1999), INT16_C(-11524),
INT16_C(-31971), INT16_C( 10573), INT16_C( 22536), INT16_C(-21942),
INT16_C( -9055), INT16_C(-29587), INT16_C( 8369), INT16_C(-32672),
INT16_C( 24766), INT16_C(-25045), INT16_C(-20462), INT16_C( 14381),
INT16_C( 18820), INT16_C( -175), INT16_C(-17138), INT16_C( 8826),
INT16_C( 16551), INT16_C( -2240), INT16_C( -1223), INT16_C(-28643),
INT16_C( -5550), INT16_C( 5011), INT16_C( 22761), INT16_C( 728)) },
{ simde_mm512_set_epi16(INT16_C(-26134), INT16_C(-18760), INT16_C( 11789), INT16_C( 30499),
INT16_C(-14297), INT16_C(-24132), INT16_C( 2429), INT16_C( -7785),
INT16_C(-19953), INT16_C(-20176), INT16_C( -1917), INT16_C( 18470),
INT16_C( 24222), INT16_C( 23067), INT16_C(-11100), INT16_C( 10676),
INT16_C(-21685), INT16_C( 31093), INT16_C( -8360), INT16_C( 1808),
INT16_C(-12418), INT16_C( 11067), INT16_C(-31728), INT16_C( -5932),
INT16_C(-22846), INT16_C( -963), INT16_C(-15933), INT16_C(-24302),
INT16_C(-30670), INT16_C( 23129), INT16_C(-13017), INT16_C( 1590)),
UINT32_C( 305590317),
simde_mm512_set_epi16(INT16_C( -1674), INT16_C( -3241), INT16_C( 14220), INT16_C(-24128),
INT16_C( 866), INT16_C(-16676), INT16_C(-25544), INT16_C( 108),
INT16_C( 5014), INT16_C(-21407), INT16_C(-24139), INT16_C(-16531),
INT16_C( -2292), INT16_C(-22143), INT16_C( -5932), INT16_C(-26498),
INT16_C( 23176), INT16_C(-18719), INT16_C( 8259), INT16_C( -216),
INT16_C(-21324), INT16_C( 14052), INT16_C( 27040), INT16_C(-18518),
INT16_C(-27268), INT16_C( -5574), INT16_C( 30453), INT16_C( 27189),
INT16_C( 26223), INT16_C(-14168), INT16_C(-11169), INT16_C( 22360)),
simde_mm512_set_epi16(INT16_C(-26134), INT16_C(-18760), INT16_C( 11789), INT16_C(-24128),
INT16_C(-14297), INT16_C(-24132), INT16_C(-25544), INT16_C( -7785),
INT16_C(-19953), INT16_C(-20176), INT16_C(-24139), INT16_C(-16531),
INT16_C( 24222), INT16_C(-22143), INT16_C( -5932), INT16_C( 10676),
INT16_C( 23176), INT16_C(-18719), INT16_C( 8259), INT16_C( -216),
INT16_C(-12418), INT16_C( 11067), INT16_C(-31728), INT16_C( -5932),
INT16_C(-22846), INT16_C( -963), INT16_C( 30453), INT16_C(-24302),
INT16_C( 26223), INT16_C(-14168), INT16_C(-13017), INT16_C( 22360)) },
{ simde_mm512_set_epi16(INT16_C( -2488), INT16_C( 1592), INT16_C( -6444), INT16_C( 30598),
INT16_C(-17786), INT16_C( -8406), INT16_C( 4184), INT16_C( 17081),
INT16_C(-10288), INT16_C(-12158), INT16_C( -9059), INT16_C(-20947),
INT16_C(-17395), INT16_C( 27392), INT16_C( 13857), INT16_C( 24137),
INT16_C( 15083), INT16_C( -2381), INT16_C( 6197), INT16_C( 26607),
INT16_C( -281), INT16_C( 20513), INT16_C( 11284), INT16_C( -8182),
INT16_C( 154), INT16_C( 25062), INT16_C( -9545), INT16_C( -8470),
INT16_C( 13769), INT16_C( 3698), INT16_C( 23943), INT16_C( 22626)),
UINT32_C(3243316268),
simde_mm512_set_epi16(INT16_C( -7817), INT16_C( 19901), INT16_C(-23323), INT16_C( 16418),
INT16_C( 24031), INT16_C(-12678), INT16_C( 26071), INT16_C( 6078),
INT16_C( -6446), INT16_C( 28656), INT16_C(-20287), INT16_C(-10682),
INT16_C( 17023), INT16_C( 12770), INT16_C( 15020), INT16_C( 12339),
INT16_C( 22254), INT16_C( -6532), INT16_C( 21585), INT16_C(-29214),
INT16_C( -5140), INT16_C(-13775), INT16_C(-14838), INT16_C( 1876),
INT16_C(-10206), INT16_C( -7669), INT16_C( 13226), INT16_C( 8231),
INT16_C( -5215), INT16_C(-29950), INT16_C(-17119), INT16_C( 7959)),
simde_mm512_set_epi16(INT16_C( -7817), INT16_C( 19901), INT16_C( -6444), INT16_C( 30598),
INT16_C(-17786), INT16_C( -8406), INT16_C( 4184), INT16_C( 6078),
INT16_C(-10288), INT16_C( 28656), INT16_C( -9059), INT16_C(-10682),
INT16_C(-17395), INT16_C( 27392), INT16_C( 13857), INT16_C( 12339),
INT16_C( 15083), INT16_C( -2381), INT16_C( 6197), INT16_C(-29214),
INT16_C( -281), INT16_C(-13775), INT16_C( 11284), INT16_C( -8182),
INT16_C( 154), INT16_C( 25062), INT16_C( 13226), INT16_C( -8470),
INT16_C( -5215), INT16_C(-29950), INT16_C( 23943), INT16_C( 22626)) },
{ simde_mm512_set_epi16(INT16_C(-17496), INT16_C(-16278), INT16_C( 28161), INT16_C( -9022),
INT16_C( 14893), INT16_C( 20773), INT16_C( 13716), INT16_C(-18494),
INT16_C( 22637), INT16_C(-20939), INT16_C(-10174), INT16_C( 12840),
INT16_C(-22747), INT16_C(-14668), INT16_C( 4699), INT16_C( 31693),
INT16_C( -8682), INT16_C(-21674), INT16_C( -4586), INT16_C( -243),
INT16_C(-24920), INT16_C( 12309), INT16_C( 15037), INT16_C( 13960),
INT16_C(-29756), INT16_C( -4367), INT16_C( 8434), INT16_C( 16542),
INT16_C( 8529), INT16_C(-28527), INT16_C( -2939), INT16_C(-28531)),
UINT32_C(3541815971),
simde_mm512_set_epi16(INT16_C( 6266), INT16_C( 18547), INT16_C(-26004), INT16_C(-14807),
INT16_C( 23049), INT16_C(-28984), INT16_C( 18071), INT16_C(-18277),
INT16_C( 31923), INT16_C(-14090), INT16_C( -6209), INT16_C( 12842),
INT16_C( 1554), INT16_C(-27194), INT16_C(-25297), INT16_C( 17174),
INT16_C( 4338), INT16_C(-25809), INT16_C( 2041), INT16_C(-19046),
INT16_C(-17853), INT16_C(-18639), INT16_C( 25727), INT16_C(-30630),
INT16_C(-22895), INT16_C( 8885), INT16_C( 29491), INT16_C(-13154),
INT16_C( 9738), INT16_C(-20851), INT16_C( 1418), INT16_C( 24102)),
simde_mm512_set_epi16(INT16_C( 6266), INT16_C( 18547), INT16_C( 28161), INT16_C(-14807),
INT16_C( 14893), INT16_C( 20773), INT16_C( 18071), INT16_C(-18277),
INT16_C( 22637), INT16_C(-20939), INT16_C(-10174), INT16_C( 12842),
INT16_C( 1554), INT16_C(-14668), INT16_C(-25297), INT16_C( 17174),
INT16_C( 4338), INT16_C(-25809), INT16_C( -4586), INT16_C(-19046),
INT16_C(-24920), INT16_C( 12309), INT16_C( 25727), INT16_C( 13960),
INT16_C(-22895), INT16_C( -4367), INT16_C( 29491), INT16_C( 16542),
INT16_C( 8529), INT16_C(-28527), INT16_C( 1418), INT16_C( 24102)) },
{ simde_mm512_set_epi16(INT16_C( 3849), INT16_C( 25678), INT16_C( 20058), INT16_C(-14631),
INT16_C( 9156), INT16_C( -9469), INT16_C( 26797), INT16_C( 4095),
INT16_C( 10328), INT16_C( -2602), INT16_C( 29484), INT16_C( 23696),
INT16_C( 10492), INT16_C( 15123), INT16_C( 12075), INT16_C( -22),
INT16_C( -3095), INT16_C(-21257), INT16_C( 4948), INT16_C( 32515),
INT16_C(-22489), INT16_C( 12880), INT16_C(-31816), INT16_C( 14894),
INT16_C( 17736), INT16_C( 7904), INT16_C(-21771), INT16_C(-28666),
INT16_C(-14552), INT16_C(-24798), INT16_C(-10273), INT16_C(-18470)),
UINT32_C(3424030392),
simde_mm512_set_epi16(INT16_C( -3100), INT16_C(-21068), INT16_C( 28535), INT16_C(-17256),
INT16_C(-16628), INT16_C( 1662), INT16_C(-21371), INT16_C( 7545),
INT16_C( -2558), INT16_C( 5671), INT16_C(-14288), INT16_C(-27939),
INT16_C( 10529), INT16_C(-22955), INT16_C( 1055), INT16_C( 27502),
INT16_C( 28704), INT16_C(-22359), INT16_C( 974), INT16_C(-13833),
INT16_C(-10322), INT16_C( -9220), INT16_C(-23650), INT16_C( 7138),
INT16_C(-26251), INT16_C(-26301), INT16_C(-11538), INT16_C( 7661),
INT16_C( 25835), INT16_C( -1591), INT16_C(-31336), INT16_C(-13623)),
simde_mm512_set_epi16(INT16_C( -3100), INT16_C(-21068), INT16_C( 20058), INT16_C(-14631),
INT16_C(-16628), INT16_C( 1662), INT16_C( 26797), INT16_C( 4095),
INT16_C( 10328), INT16_C( -2602), INT16_C( 29484), INT16_C(-27939),
INT16_C( 10492), INT16_C(-22955), INT16_C( 1055), INT16_C( -22),
INT16_C( 28704), INT16_C(-21257), INT16_C( 4948), INT16_C( 32515),
INT16_C(-10322), INT16_C( -9220), INT16_C(-23650), INT16_C( 14894),
INT16_C(-26251), INT16_C( 7904), INT16_C(-11538), INT16_C( 7661),
INT16_C( 25835), INT16_C(-24798), INT16_C(-10273), INT16_C(-18470)) },
{ simde_mm512_set_epi16(INT16_C( -8164), INT16_C(-26845), INT16_C( 11124), INT16_C( 8752),
INT16_C( 22766), INT16_C( 8670), INT16_C( 20153), INT16_C( 18240),
INT16_C( 9917), INT16_C( -9695), INT16_C( 13965), INT16_C( 22461),
INT16_C(-14283), INT16_C(-28547), INT16_C( -3283), INT16_C( 28423),
INT16_C( -7094), INT16_C(-23805), INT16_C(-29561), INT16_C( -8833),
INT16_C( 19973), INT16_C( 4641), INT16_C( 26375), INT16_C(-24343),
INT16_C(-25797), INT16_C( 10099), INT16_C( 15606), INT16_C( -3388),
INT16_C( 27200), INT16_C( 17184), INT16_C( -8305), INT16_C( -2842)),
UINT32_C(3498958446),
simde_mm512_set_epi16(INT16_C( -8480), INT16_C( 28422), INT16_C(-27516), INT16_C( 21347),
INT16_C(-25796), INT16_C(-16858), INT16_C( 12539), INT16_C(-24081),
INT16_C( 21534), INT16_C(-24785), INT16_C( 27018), INT16_C( 5065),
INT16_C(-18143), INT16_C( 8109), INT16_C(-17219), INT16_C( 31482),
INT16_C( 9138), INT16_C( 22982), INT16_C(-21234), INT16_C( 25459),
INT16_C( 6589), INT16_C(-13007), INT16_C( 15857), INT16_C(-20120),
INT16_C( -7568), INT16_C(-12198), INT16_C(-11606), INT16_C( 12227),
INT16_C(-14277), INT16_C( -5440), INT16_C( 23811), INT16_C( 16734)),
simde_mm512_set_epi16(INT16_C( -8480), INT16_C( 28422), INT16_C( 11124), INT16_C( 21347),
INT16_C( 22766), INT16_C( 8670), INT16_C( 20153), INT16_C( 18240),
INT16_C( 21534), INT16_C( -9695), INT16_C( 13965), INT16_C( 22461),
INT16_C(-18143), INT16_C( 8109), INT16_C( -3283), INT16_C( 31482),
INT16_C( 9138), INT16_C( 22982), INT16_C(-29561), INT16_C( 25459),
INT16_C( 6589), INT16_C(-13007), INT16_C( 15857), INT16_C(-24343),
INT16_C(-25797), INT16_C(-12198), INT16_C(-11606), INT16_C( -3388),
INT16_C(-14277), INT16_C( -5440), INT16_C( 23811), INT16_C( -2842)) },
{ simde_mm512_set_epi16(INT16_C(-10740), INT16_C(-19800), INT16_C( 23089), INT16_C( 21852),
INT16_C( 15397), INT16_C(-10864), INT16_C( 6811), INT16_C( 1049),
INT16_C(-27986), INT16_C(-13885), INT16_C(-16896), INT16_C( 2159),
INT16_C( 21619), INT16_C(-26860), INT16_C(-26036), INT16_C( 8638),
INT16_C( -6244), INT16_C( 12305), INT16_C( 12521), INT16_C(-23200),
INT16_C( 16405), INT16_C( 1911), INT16_C(-19978), INT16_C(-24716),
INT16_C( 18780), INT16_C(-19576), INT16_C( 23239), INT16_C( 3968),
INT16_C( 10340), INT16_C(-18924), INT16_C(-27656), INT16_C( 29459)),
UINT32_C(1078376780),
simde_mm512_set_epi16(INT16_C( 273), INT16_C( -1720), INT16_C( 22076), INT16_C( -2052),
INT16_C(-17942), INT16_C( -7577), INT16_C(-30883), INT16_C(-19493),
INT16_C(-19679), INT16_C( -1198), INT16_C( -2289), INT16_C( 6912),
INT16_C(-20982), INT16_C(-18030), INT16_C( 27608), INT16_C( 2367),
INT16_C( 1167), INT16_C(-16688), INT16_C(-14772), INT16_C(-28473),
INT16_C(-30638), INT16_C(-20143), INT16_C( 18762), INT16_C( 11938),
INT16_C( 3849), INT16_C( 10905), INT16_C( 14089), INT16_C(-29438),
INT16_C( -8204), INT16_C(-31577), INT16_C( -4765), INT16_C( 1792)),
simde_mm512_set_epi16(INT16_C(-10740), INT16_C( -1720), INT16_C( 23089), INT16_C( 21852),
INT16_C( 15397), INT16_C(-10864), INT16_C( 6811), INT16_C( 1049),
INT16_C(-27986), INT16_C( -1198), INT16_C(-16896), INT16_C( 2159),
INT16_C( 21619), INT16_C(-18030), INT16_C( 27608), INT16_C( 8638),
INT16_C( 1167), INT16_C( 12305), INT16_C(-14772), INT16_C(-28473),
INT16_C(-30638), INT16_C( 1911), INT16_C(-19978), INT16_C( 11938),
INT16_C( 18780), INT16_C( 10905), INT16_C( 23239), INT16_C( 3968),
INT16_C( -8204), INT16_C(-31577), INT16_C(-27656), INT16_C( 29459)) },
{ simde_mm512_set_epi16(INT16_C( 22307), INT16_C(-11389), INT16_C( 9226), INT16_C( 7897),
INT16_C( 32155), INT16_C( 2611), INT16_C( 11978), INT16_C( 5179),
INT16_C(-24755), INT16_C(-19543), INT16_C(-15643), INT16_C( -2365),
INT16_C(-27002), INT16_C( 7884), INT16_C(-20138), INT16_C( -3743),
INT16_C(-12844), INT16_C(-25331), INT16_C( -7592), INT16_C( 24295),
INT16_C(-17679), INT16_C( -9896), INT16_C( -1721), INT16_C( 1797),
INT16_C(-21616), INT16_C( 9515), INT16_C( 22554), INT16_C( 6233),
INT16_C( 21958), INT16_C( -6794), INT16_C(-15370), INT16_C( 18181)),
UINT32_C(2433004361),
simde_mm512_set_epi16(INT16_C(-21831), INT16_C( -7695), INT16_C( 23301), INT16_C( 6159),
INT16_C( 1766), INT16_C( 18873), INT16_C( 26864), INT16_C(-27621),
INT16_C( -8001), INT16_C( -8493), INT16_C(-29763), INT16_C( 9106),
INT16_C( 1393), INT16_C(-12504), INT16_C( 9424), INT16_C( 15142),
INT16_C( 3894), INT16_C( -9649), INT16_C( -4354), INT16_C(-12373),
INT16_C(-13406), INT16_C( 12423), INT16_C( 26727), INT16_C(-11193),
INT16_C( 15482), INT16_C(-21938), INT16_C(-28148), INT16_C( -1462),
INT16_C( -2537), INT16_C( 7119), INT16_C( -3240), INT16_C(-31830)),
simde_mm512_set_epi16(INT16_C(-21831), INT16_C(-11389), INT16_C( 9226), INT16_C( 6159),
INT16_C( 32155), INT16_C( 2611), INT16_C( 11978), INT16_C(-27621),
INT16_C(-24755), INT16_C(-19543), INT16_C(-15643), INT16_C( -2365),
INT16_C(-27002), INT16_C(-12504), INT16_C(-20138), INT16_C( -3743),
INT16_C( 3894), INT16_C(-25331), INT16_C( -4354), INT16_C(-12373),
INT16_C(-17679), INT16_C( -9896), INT16_C( 26727), INT16_C(-11193),
INT16_C(-21616), INT16_C(-21938), INT16_C( 22554), INT16_C( 6233),
INT16_C( -2537), INT16_C( -6794), INT16_C(-15370), INT16_C(-31830)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_mask_mov_epi16(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i16(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_mask_mov_epi32(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m512i src;
simde__mmask16 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ simde_mm512_set_epi32(INT32_C(-1748841636), INT32_C( 600342911), INT32_C( 1346502861), INT32_C(-1119296012),
INT32_C( 542725165), INT32_C( 811581991), INT32_C(-1753809264), INT32_C(-2095888677),
INT32_C( 21844621), INT32_C( -668859652), INT32_C( 304402382), INT32_C( 1173008100),
INT32_C( -727866068), INT32_C( 599757), INT32_C( 1586862788), INT32_C(-1998308703)),
UINT16_C(60467),
simde_mm512_set_epi32(INT32_C( 646279344), INT32_C(-1381858570), INT32_C( 1528846110), INT32_C( -686931066),
INT32_C( 1116827472), INT32_C(-1909789352), INT32_C( 1965198777), INT32_C( 743332806),
INT32_C( -485827488), INT32_C(-1346955971), INT32_C( 625279893), INT32_C( 390045432),
INT32_C( 1242706406), INT32_C( -451702195), INT32_C( -797642518), INT32_C( 1682577743)),
simde_mm512_set_epi32(INT32_C( 646279344), INT32_C(-1381858570), INT32_C( 1528846110), INT32_C(-1119296012),
INT32_C( 1116827472), INT32_C(-1909789352), INT32_C(-1753809264), INT32_C(-2095888677),
INT32_C( 21844621), INT32_C( -668859652), INT32_C( 625279893), INT32_C( 390045432),
INT32_C( -727866068), INT32_C( 599757), INT32_C( -797642518), INT32_C( 1682577743)) },
{ simde_mm512_set_epi32(INT32_C( 478337815), INT32_C( -537978403), INT32_C(-1351889488), INT32_C( 1090048308),
INT32_C( 1261235095), INT32_C(-1289893124), INT32_C( -387446550), INT32_C(-1938729505),
INT32_C(-1389958008), INT32_C( 1730413171), INT32_C( 1087827160), INT32_C( 1023459790),
INT32_C(-1481706049), INT32_C( 911835427), INT32_C(-1124770978), INT32_C( 1212776438)),
UINT16_C(65510),
simde_mm512_set_epi32(INT32_C( -876793269), INT32_C( 354193822), INT32_C(-1942817736), INT32_C( 48337666),
INT32_C(-1069034730), INT32_C( -258187388), INT32_C(-1735480646), INT32_C( 1239662333),
INT32_C(-1087348321), INT32_C( 777072035), INT32_C( -223191004), INT32_C( -671373205),
INT32_C( -333775053), INT32_C( 1946636837), INT32_C( 875386084), INT32_C( 41135181)),
simde_mm512_set_epi32(INT32_C( -876793269), INT32_C( 354193822), INT32_C(-1942817736), INT32_C( 48337666),
INT32_C(-1069034730), INT32_C( -258187388), INT32_C(-1735480646), INT32_C( 1239662333),
INT32_C(-1087348321), INT32_C( 777072035), INT32_C( -223191004), INT32_C( 1023459790),
INT32_C(-1481706049), INT32_C( 1946636837), INT32_C( 875386084), INT32_C( 1212776438)) },
{ simde_mm512_set_epi32(INT32_C( 739047763), INT32_C( 1498945773), INT32_C( 1776295699), INT32_C( 1298376143),
INT32_C(-1413206606), INT32_C(-1101195004), INT32_C( 1096357047), INT32_C( 1201409099),
INT32_C(-1184934080), INT32_C(-1142871559), INT32_C(-1331799428), INT32_C( 2127606263),
INT32_C( 1810587941), INT32_C(-1568035201), INT32_C(-1514801640), INT32_C( 1754146272)),
UINT16_C(17782),
simde_mm512_set_epi32(INT32_C(-1637684250), INT32_C( 1624419961), INT32_C(-1721698305), INT32_C( 1216991175),
INT32_C( 1086797293), INT32_C( -544515074), INT32_C(-1866991972), INT32_C( 1497966040),
INT32_C( 183681068), INT32_C( 1846911046), INT32_C( 396433769), INT32_C( 1567943719),
INT32_C( 1544652060), INT32_C( 1999507462), INT32_C( -389522003), INT32_C( 660842170)),
simde_mm512_set_epi32(INT32_C( 739047763), INT32_C( 1624419961), INT32_C( 1776295699), INT32_C( 1298376143),
INT32_C(-1413206606), INT32_C( -544515074), INT32_C( 1096357047), INT32_C( 1497966040),
INT32_C(-1184934080), INT32_C( 1846911046), INT32_C( 396433769), INT32_C( 1567943719),
INT32_C( 1810587941), INT32_C( 1999507462), INT32_C( -389522003), INT32_C( 1754146272)) },
{ simde_mm512_set_epi32(INT32_C(-1787060903), INT32_C( 1591528199), INT32_C( 1360730903), INT32_C( -392663993),
INT32_C( 1833403381), INT32_C( 667948495), INT32_C(-1351186880), INT32_C(-1869951013),
INT32_C(-1764668962), INT32_C( 1727501907), INT32_C(-1699520398), INT32_C(-2078068732),
INT32_C(-1191187391), INT32_C( 809086335), INT32_C( -915516374), INT32_C( 2044786719)),
UINT16_C(19153),
simde_mm512_set_epi32(INT32_C(-1124863619), INT32_C( -733840886), INT32_C( 225375619), INT32_C( 2033345748),
INT32_C( 62836182), INT32_C(-1797131359), INT32_C( -791707937), INT32_C(-1161020437),
INT32_C( 1933148289), INT32_C(-1354039663), INT32_C( 533923030), INT32_C( 457770626),
INT32_C(-2130199261), INT32_C( -201626469), INT32_C( 1603256738), INT32_C( 385840376)),
simde_mm512_set_epi32(INT32_C(-1787060903), INT32_C( -733840886), INT32_C( 1360730903), INT32_C( -392663993),
INT32_C( 62836182), INT32_C( 667948495), INT32_C( -791707937), INT32_C(-1869951013),
INT32_C( 1933148289), INT32_C(-1354039663), INT32_C(-1699520398), INT32_C( 457770626),
INT32_C(-1191187391), INT32_C( 809086335), INT32_C( -915516374), INT32_C( 385840376)) },
{ simde_mm512_set_epi32(INT32_C(-1844996035), INT32_C( -483918772), INT32_C(-1530619556), INT32_C( -447486042),
INT32_C( -153016391), INT32_C( 1772993408), INT32_C(-1557466731), INT32_C( 1884729185),
INT32_C(-1170473640), INT32_C( -231873321), INT32_C( 1063107119), INT32_C( 1409583343),
INT32_C( 131479252), INT32_C(-1464445699), INT32_C(-1859507666), INT32_C( 1142318206)),
UINT16_C(39686),
simde_mm512_set_epi32(INT32_C(-1710909147), INT32_C( 1655743921), INT32_C(-1520991125), INT32_C(-1200934587),
INT32_C( -721899112), INT32_C( 1216881740), INT32_C( -481496777), INT32_C( -893026644),
INT32_C(-2035526652), INT32_C( -294630589), INT32_C(-1446210787), INT32_C( -547573265),
INT32_C( 1911285838), INT32_C(-1067024301), INT32_C(-1545394687), INT32_C( 1507767747)),
simde_mm512_set_epi32(INT32_C(-1710909147), INT32_C( -483918772), INT32_C(-1530619556), INT32_C(-1200934587),
INT32_C( -721899112), INT32_C( 1772993408), INT32_C( -481496777), INT32_C( -893026644),
INT32_C(-1170473640), INT32_C( -231873321), INT32_C( 1063107119), INT32_C( 1409583343),
INT32_C( 131479252), INT32_C(-1067024301), INT32_C(-1545394687), INT32_C( 1142318206)) },
{ simde_mm512_set_epi32(INT32_C( 2003854537), INT32_C( 316518418), INT32_C(-2128378506), INT32_C( -814023178),
INT32_C( 2134095257), INT32_C( -273917753), INT32_C( 269941696), INT32_C(-1761573676),
INT32_C( -504711162), INT32_C( 1086943646), INT32_C( -304633534), INT32_C( -905159738),
INT32_C(-1025692186), INT32_C(-2082862175), INT32_C(-1626855678), INT32_C(-1231176910)),
UINT16_C(13329),
simde_mm512_set_epi32(INT32_C( 838273890), INT32_C( 1209103370), INT32_C( 947433971), INT32_C( 91213725),
INT32_C( 749577280), INT32_C( 157602752), INT32_C( 2125537515), INT32_C( -782796801),
INT32_C( -120430288), INT32_C( -810448185), INT32_C( -659512402), INT32_C( 419195007),
INT32_C( -830103963), INT32_C( -756234442), INT32_C( 376291679), INT32_C( -610488282)),
simde_mm512_set_epi32(INT32_C( 2003854537), INT32_C( 316518418), INT32_C( 947433971), INT32_C( 91213725),
INT32_C( 2134095257), INT32_C( 157602752), INT32_C( 269941696), INT32_C(-1761573676),
INT32_C( -504711162), INT32_C( 1086943646), INT32_C( -304633534), INT32_C( 419195007),
INT32_C(-1025692186), INT32_C(-2082862175), INT32_C(-1626855678), INT32_C( -610488282)) },
{ simde_mm512_set_epi32(INT32_C( -974755823), INT32_C( -98121742), INT32_C( 1561555936), INT32_C(-1281058782),
INT32_C(-2008886211), INT32_C( 1568326299), INT32_C( 1232828554), INT32_C( 127919997),
INT32_C( 1015818460), INT32_C( -681833659), INT32_C( 340145717), INT32_C( 1048452961),
INT32_C( 749206991), INT32_C( 1290937767), INT32_C(-1150545818), INT32_C( -48881570)),
UINT16_C(55435),
simde_mm512_set_epi32(INT32_C( 1177945769), INT32_C(-1878447950), INT32_C( -271391312), INT32_C(-2014500164),
INT32_C(-2080120479), INT32_C( 1195569010), INT32_C(-1583493780), INT32_C( 1466155853),
INT32_C( -735473338), INT32_C( 1922464741), INT32_C( -224185100), INT32_C( -929578437),
INT32_C( 831459587), INT32_C(-1105963780), INT32_C(-1360707796), INT32_C( -211781248)),
simde_mm512_set_epi32(INT32_C( 1177945769), INT32_C(-1878447950), INT32_C( 1561555936), INT32_C(-2014500164),
INT32_C(-2080120479), INT32_C( 1568326299), INT32_C( 1232828554), INT32_C( 127919997),
INT32_C( -735473338), INT32_C( -681833659), INT32_C( 340145717), INT32_C( 1048452961),
INT32_C( 831459587), INT32_C( 1290937767), INT32_C(-1360707796), INT32_C( -211781248)) },
{ simde_mm512_set_epi32(INT32_C( 1583932216), INT32_C(-1528139164), INT32_C( 665399981), INT32_C( 718332631),
INT32_C( -984331868), INT32_C(-1317077859), INT32_C(-1440392153), INT32_C(-1978382578),
INT32_C( 828185710), INT32_C( 1905160582), INT32_C( 120938992), INT32_C( 1613459128),
INT32_C( -812252493), INT32_C(-1503952372), INT32_C( 231875300), INT32_C( -885498028)),
UINT16_C(45743),
simde_mm512_set_epi32(INT32_C(-1033540577), INT32_C( -995705628), INT32_C(-2098565905), INT32_C(-1609941379),
INT32_C( 451122481), INT32_C( 898911803), INT32_C( -918933314), INT32_C( 1301755496),
INT32_C( 654535343), INT32_C( 1915381036), INT32_C( -595265918), INT32_C( -204141630),
INT32_C(-1824782722), INT32_C(-1457642917), INT32_C(-1358921472), INT32_C( 1013008616)),
simde_mm512_set_epi32(INT32_C(-1033540577), INT32_C(-1528139164), INT32_C(-2098565905), INT32_C(-1609941379),
INT32_C( -984331868), INT32_C(-1317077859), INT32_C( -918933314), INT32_C(-1978382578),
INT32_C( 654535343), INT32_C( 1905160582), INT32_C( -595265918), INT32_C( 1613459128),
INT32_C(-1824782722), INT32_C(-1457642917), INT32_C(-1358921472), INT32_C( 1013008616)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_mask_mov_epi32(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i32(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_mask_mov_epi64(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m512i src;
simde__mmask8 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ simde_mm512_set_epi64(INT64_C( 8729250599109288206), INT64_C( 925123000700261284),
INT64_C( -996462675499144949), INT64_C(-5486361937319788764),
INT64_C(-1619246833501834651), INT64_C(-1914665916415518359),
INT64_C( 4596079613709719053), INT64_C(-1669293344454375632)),
UINT8_C(136),
simde_mm512_set_epi64(INT64_C(-2718786087636304341), INT64_C( 6271007050593066413),
INT64_C( 7325428114350079264), INT64_C( 8373606416957659495),
INT64_C( 8585702140748752091), INT64_C(-6106352141912550191),
INT64_C(-7415158757307660945), INT64_C(-4168322686232168747)),
simde_mm512_set_epi64(INT64_C(-2718786087636304341), INT64_C( 925123000700261284),
INT64_C( -996462675499144949), INT64_C(-5486361937319788764),
INT64_C( 8585702140748752091), INT64_C(-1914665916415518359),
INT64_C( 4596079613709719053), INT64_C(-1669293344454375632)) },
{ simde_mm512_set_epi64(INT64_C( 8240025841211248490), INT64_C( 2437990159450284908),
INT64_C( 2201815834941113848), INT64_C( 7879550161691977002),
INT64_C( 3825487759520775297), INT64_C( 6674403996216424931),
INT64_C(-5802137669857725171), INT64_C( 5686996017309487110)),
UINT8_C(227),
simde_mm512_set_epi64(INT64_C( 120730317606372397), INT64_C(-1410770079656234556),
INT64_C( 4532617684378198659), INT64_C( 9004023903916376139),
INT64_C( 7206885247739448460), INT64_C(-6411218032719574536),
INT64_C( -962636034832057562), INT64_C(-6211267245753502041)),
simde_mm512_set_epi64(INT64_C( 120730317606372397), INT64_C(-1410770079656234556),
INT64_C( 4532617684378198659), INT64_C( 7879550161691977002),
INT64_C( 3825487759520775297), INT64_C( 6674403996216424931),
INT64_C( -962636034832057562), INT64_C(-6211267245753502041)) },
{ simde_mm512_set_epi64(INT64_C( 4674722797399239366), INT64_C( 2000178744548395677),
INT64_C(-3230169679464817239), INT64_C( 6675942378016655726),
INT64_C(-4074632284771109640), INT64_C(-1969073951075376054),
INT64_C(-7309602967246577272), INT64_C( 6746883208360816464)),
UINT8_C(189),
simde_mm512_set_epi64(INT64_C( 7111791735729821232), INT64_C(-6377956101145598745),
INT64_C(-4955467359912007508), INT64_C( -340840922408165844),
INT64_C( 3280430708356940081), INT64_C( 400669322893233577),
INT64_C( 6742772793155919855), INT64_C(-1365845768056837484)),
simde_mm512_set_epi64(INT64_C( 7111791735729821232), INT64_C( 2000178744548395677),
INT64_C(-4955467359912007508), INT64_C( -340840922408165844),
INT64_C( 3280430708356940081), INT64_C( 400669322893233577),
INT64_C(-7309602967246577272), INT64_C(-1365845768056837484)) },
{ simde_mm512_set_epi64(INT64_C(-5185665192936807952), INT64_C( 2873887117219468065),
INT64_C( 944218707053685182), INT64_C(-6471325153303919649),
INT64_C(-1551809186210791512), INT64_C( 8676397618641344048),
INT64_C(-1480083839359048471), INT64_C(-2573286236881012052)),
UINT8_C(135),
simde_mm512_set_epi64(INT64_C( 4851071406626175825), INT64_C( 2006733877612279017),
INT64_C( 9148059701805005067), INT64_C( 3484083856858518164),
INT64_C( -542612751996632572), INT64_C( 6154040976669554118),
INT64_C( 4310055852136225460), INT64_C( 6666177398356729891)),
simde_mm512_set_epi64(INT64_C( 4851071406626175825), INT64_C( 2873887117219468065),
INT64_C( 944218707053685182), INT64_C(-6471325153303919649),
INT64_C(-1551809186210791512), INT64_C( 6154040976669554118),
INT64_C( 4310055852136225460), INT64_C( 6666177398356729891)) },
{ simde_mm512_set_epi64(INT64_C(-6362423492218583699), INT64_C( 4052676248150053459),
INT64_C(-1785632160509127109), INT64_C( 4504790352522402260),
INT64_C( 214305831990150369), INT64_C( 4122674741194642780),
INT64_C(-9061446978520477770), INT64_C( -925260945734331795)),
UINT8_C( 88),
simde_mm512_set_epi64(INT64_C( 7816755513219693536), INT64_C(-8078701368125426812),
INT64_C( 5999276564615449517), INT64_C(-3747208296317683129),
INT64_C(-3767121149493822975), INT64_C( 3269862772677933078),
INT64_C(-1274534447611012205), INT64_C( 367478185734650139)),
simde_mm512_set_epi64(INT64_C(-6362423492218583699), INT64_C(-8078701368125426812),
INT64_C(-1785632160509127109), INT64_C(-3747208296317683129),
INT64_C(-3767121149493822975), INT64_C( 4122674741194642780),
INT64_C(-9061446978520477770), INT64_C( -925260945734331795)) },
{ simde_mm512_set_epi64(INT64_C(-6749425177074609965), INT64_C( 8453995530571484051),
INT64_C(-7619559937003101591), INT64_C( 3005943923235484348),
INT64_C( 4327678115781969631), INT64_C( 5990841649027118513),
INT64_C(-1241607161778990291), INT64_C( -91855491071654622)),
UINT8_C( 22),
simde_mm512_set_epi64(INT64_C( 4461859928182214174), INT64_C(-5186049742858346871),
INT64_C( -636993447067685727), INT64_C( 8339698509359201789),
INT64_C( 4598711567911914631), INT64_C( 7428996315725576873),
INT64_C( 6513452752711502515), INT64_C(-6603414145042292282)),
simde_mm512_set_epi64(INT64_C(-6749425177074609965), INT64_C( 8453995530571484051),
INT64_C(-7619559937003101591), INT64_C( 8339698509359201789),
INT64_C( 4327678115781969631), INT64_C( 7428996315725576873),
INT64_C( 6513452752711502515), INT64_C( -91855491071654622)) },
{ simde_mm512_set_epi64(INT64_C(-7023609179598013523), INT64_C(-2166290313032224989),
INT64_C(-1367963225958164233), INT64_C(-9082538196892642083),
INT64_C(-7482977792619995502), INT64_C( 4800709110944492165),
INT64_C( 3082355013095664677), INT64_C(-4286500001112695437)),
UINT8_C( 42),
simde_mm512_set_epi64(INT64_C( 522664068472938939), INT64_C(-5622535385140832229),
INT64_C( 4829749372798053845), INT64_C( -330958976268778895),
INT64_C(-2657198631452288613), INT64_C(-3805394135151266272),
INT64_C( 4429043998616724751), INT64_C( 4131511442627175760)),
simde_mm512_set_epi64(INT64_C(-7023609179598013523), INT64_C(-2166290313032224989),
INT64_C( 4829749372798053845), INT64_C(-9082538196892642083),
INT64_C(-2657198631452288613), INT64_C( 4800709110944492165),
INT64_C( 4429043998616724751), INT64_C(-4286500001112695437)) },
{ simde_mm512_set_epi64(INT64_C(-5567656428388000347), INT64_C( -971128712423557311),
INT64_C( 3761317547504069574), INT64_C( 6096071933426825544),
INT64_C( 3108166743366703612), INT64_C(-3435283790563075237),
INT64_C( 3598996591046999900), INT64_C( 2520744130071328064)),
UINT8_C( 13),
simde_mm512_set_epi64(INT64_C( -976144998301952820), INT64_C( 5304141922221069696),
INT64_C( 1153833608356774417), INT64_C(-5431879705444140176),
INT64_C(-4200442870371425874), INT64_C( 9118970466689378415),
INT64_C( 7182201605874776129), INT64_C( 6344954152679193639)),
simde_mm512_set_epi64(INT64_C(-5567656428388000347), INT64_C( -971128712423557311),
INT64_C( 3761317547504069574), INT64_C( 6096071933426825544),
INT64_C(-4200442870371425874), INT64_C( 9118970466689378415),
INT64_C( 3598996591046999900), INT64_C( 6344954152679193639)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_mask_mov_epi64(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i64(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_mask_mov_pd(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m512d src;
simde__mmask8 k;
simde__m512d a;
simde__m512d r;
} test_vec[8] = {
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( -997.43), SIMDE_FLOAT64_C( -24.75),
SIMDE_FLOAT64_C( 811.92), SIMDE_FLOAT64_C( 716.01),
SIMDE_FLOAT64_C( -286.81), SIMDE_FLOAT64_C( 360.81),
SIMDE_FLOAT64_C( -618.94), SIMDE_FLOAT64_C( 103.41)),
UINT8_C( 17),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 779.73), SIMDE_FLOAT64_C( -71.34),
SIMDE_FLOAT64_C( 74.67), SIMDE_FLOAT64_C( 569.44),
SIMDE_FLOAT64_C( 765.94), SIMDE_FLOAT64_C( 114.94),
SIMDE_FLOAT64_C( 85.69), SIMDE_FLOAT64_C( 982.40)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -997.43), SIMDE_FLOAT64_C( -24.75),
SIMDE_FLOAT64_C( 811.92), SIMDE_FLOAT64_C( 569.44),
SIMDE_FLOAT64_C( -286.81), SIMDE_FLOAT64_C( 360.81),
SIMDE_FLOAT64_C( -618.94), SIMDE_FLOAT64_C( 982.40)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( -989.28), SIMDE_FLOAT64_C( -906.64),
SIMDE_FLOAT64_C( -211.36), SIMDE_FLOAT64_C( -108.84),
SIMDE_FLOAT64_C( 211.05), SIMDE_FLOAT64_C( -602.13),
SIMDE_FLOAT64_C( 19.95), SIMDE_FLOAT64_C( -745.56)),
UINT8_C(115),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -995.20), SIMDE_FLOAT64_C( 66.82),
SIMDE_FLOAT64_C( 747.55), SIMDE_FLOAT64_C( 590.56),
SIMDE_FLOAT64_C( 522.53), SIMDE_FLOAT64_C( 340.37),
SIMDE_FLOAT64_C( -323.43), SIMDE_FLOAT64_C( -598.33)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -989.28), SIMDE_FLOAT64_C( 66.82),
SIMDE_FLOAT64_C( 747.55), SIMDE_FLOAT64_C( 590.56),
SIMDE_FLOAT64_C( 211.05), SIMDE_FLOAT64_C( -602.13),
SIMDE_FLOAT64_C( -323.43), SIMDE_FLOAT64_C( -598.33)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( 435.94), SIMDE_FLOAT64_C( -117.09),
SIMDE_FLOAT64_C( -343.63), SIMDE_FLOAT64_C( -686.94),
SIMDE_FLOAT64_C( -632.13), SIMDE_FLOAT64_C( 520.11),
SIMDE_FLOAT64_C( 584.62), SIMDE_FLOAT64_C( 269.90)),
UINT8_C(142),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -307.53), SIMDE_FLOAT64_C( 533.35),
SIMDE_FLOAT64_C( -283.32), SIMDE_FLOAT64_C( 860.26),
SIMDE_FLOAT64_C( -955.05), SIMDE_FLOAT64_C( -767.10),
SIMDE_FLOAT64_C( -553.49), SIMDE_FLOAT64_C( 540.17)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -307.53), SIMDE_FLOAT64_C( -117.09),
SIMDE_FLOAT64_C( -343.63), SIMDE_FLOAT64_C( -686.94),
SIMDE_FLOAT64_C( -955.05), SIMDE_FLOAT64_C( -767.10),
SIMDE_FLOAT64_C( -553.49), SIMDE_FLOAT64_C( 269.90)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( 591.80), SIMDE_FLOAT64_C( -733.65),
SIMDE_FLOAT64_C( 371.96), SIMDE_FLOAT64_C( -998.26),
SIMDE_FLOAT64_C( 61.01), SIMDE_FLOAT64_C( -918.19),
SIMDE_FLOAT64_C( -797.48), SIMDE_FLOAT64_C( 81.07)),
UINT8_C(155),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 378.17), SIMDE_FLOAT64_C( 574.36),
SIMDE_FLOAT64_C( 687.12), SIMDE_FLOAT64_C( -618.22),
SIMDE_FLOAT64_C( 388.77), SIMDE_FLOAT64_C( -731.92),
SIMDE_FLOAT64_C( 958.30), SIMDE_FLOAT64_C( 51.30)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 378.17), SIMDE_FLOAT64_C( -733.65),
SIMDE_FLOAT64_C( 371.96), SIMDE_FLOAT64_C( -618.22),
SIMDE_FLOAT64_C( 388.77), SIMDE_FLOAT64_C( -918.19),
SIMDE_FLOAT64_C( 958.30), SIMDE_FLOAT64_C( 51.30)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( 721.16), SIMDE_FLOAT64_C( 21.28),
SIMDE_FLOAT64_C( -269.14), SIMDE_FLOAT64_C( -241.41),
SIMDE_FLOAT64_C( -307.10), SIMDE_FLOAT64_C( 78.73),
SIMDE_FLOAT64_C( 336.91), SIMDE_FLOAT64_C( -793.36)),
UINT8_C(174),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 944.42), SIMDE_FLOAT64_C( 986.58),
SIMDE_FLOAT64_C( -765.43), SIMDE_FLOAT64_C( 392.41),
SIMDE_FLOAT64_C( 229.44), SIMDE_FLOAT64_C( 52.87),
SIMDE_FLOAT64_C( -238.79), SIMDE_FLOAT64_C( 440.21)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 944.42), SIMDE_FLOAT64_C( 21.28),
SIMDE_FLOAT64_C( -765.43), SIMDE_FLOAT64_C( -241.41),
SIMDE_FLOAT64_C( 229.44), SIMDE_FLOAT64_C( 52.87),
SIMDE_FLOAT64_C( -238.79), SIMDE_FLOAT64_C( -793.36)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( 456.66), SIMDE_FLOAT64_C( -366.58),
SIMDE_FLOAT64_C( 715.22), SIMDE_FLOAT64_C( -16.79),
SIMDE_FLOAT64_C( -320.68), SIMDE_FLOAT64_C( 273.81),
SIMDE_FLOAT64_C( -581.56), SIMDE_FLOAT64_C( 277.97)),
UINT8_C(205),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.81), SIMDE_FLOAT64_C( 801.66),
SIMDE_FLOAT64_C( 310.16), SIMDE_FLOAT64_C( 634.68),
SIMDE_FLOAT64_C( -889.89), SIMDE_FLOAT64_C( -998.37),
SIMDE_FLOAT64_C( -493.27), SIMDE_FLOAT64_C( 120.40)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.81), SIMDE_FLOAT64_C( 801.66),
SIMDE_FLOAT64_C( 715.22), SIMDE_FLOAT64_C( -16.79),
SIMDE_FLOAT64_C( -889.89), SIMDE_FLOAT64_C( -998.37),
SIMDE_FLOAT64_C( -581.56), SIMDE_FLOAT64_C( 120.40)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( 44.26), SIMDE_FLOAT64_C( 891.25),
SIMDE_FLOAT64_C( 290.62), SIMDE_FLOAT64_C( -70.18),
SIMDE_FLOAT64_C( -3.54), SIMDE_FLOAT64_C( 783.54),
SIMDE_FLOAT64_C( -718.82), SIMDE_FLOAT64_C( 922.75)),
UINT8_C( 72),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -286.94), SIMDE_FLOAT64_C( -573.68),
SIMDE_FLOAT64_C( -931.52), SIMDE_FLOAT64_C( 249.22),
SIMDE_FLOAT64_C( 735.88), SIMDE_FLOAT64_C( 653.72),
SIMDE_FLOAT64_C( 732.59), SIMDE_FLOAT64_C( 161.45)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 44.26), SIMDE_FLOAT64_C( -573.68),
SIMDE_FLOAT64_C( 290.62), SIMDE_FLOAT64_C( -70.18),
SIMDE_FLOAT64_C( 735.88), SIMDE_FLOAT64_C( 783.54),
SIMDE_FLOAT64_C( -718.82), SIMDE_FLOAT64_C( 922.75)) },
{ simde_mm512_set_pd(SIMDE_FLOAT64_C( 729.70), SIMDE_FLOAT64_C( -950.99),
SIMDE_FLOAT64_C( 115.61), SIMDE_FLOAT64_C( -132.19),
SIMDE_FLOAT64_C( 834.99), SIMDE_FLOAT64_C( 471.53),
SIMDE_FLOAT64_C( 54.12), SIMDE_FLOAT64_C( 238.73)),
UINT8_C(209),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -345.93), SIMDE_FLOAT64_C( 598.65),
SIMDE_FLOAT64_C( 954.89), SIMDE_FLOAT64_C( -441.90),
SIMDE_FLOAT64_C( 845.52), SIMDE_FLOAT64_C( -659.44),
SIMDE_FLOAT64_C( -844.59), SIMDE_FLOAT64_C( 331.33)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -345.93), SIMDE_FLOAT64_C( 598.65),
SIMDE_FLOAT64_C( 115.61), SIMDE_FLOAT64_C( -441.90),
SIMDE_FLOAT64_C( 834.99), SIMDE_FLOAT64_C( 471.53),
SIMDE_FLOAT64_C( 54.12), SIMDE_FLOAT64_C( 331.33)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512d r = simde_mm512_mask_mov_pd(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m512d_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm512_mask_mov_ps(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__m512 src;
simde__mmask16 k;
simde__m512 a;
simde__m512 r;
} test_vec[8] = {
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( -278.44), SIMDE_FLOAT32_C( 958.04), SIMDE_FLOAT32_C( -686.18), SIMDE_FLOAT32_C( -120.52),
SIMDE_FLOAT32_C( 759.91), SIMDE_FLOAT32_C( 470.87), SIMDE_FLOAT32_C( -723.57), SIMDE_FLOAT32_C( 170.04),
SIMDE_FLOAT32_C( 559.73), SIMDE_FLOAT32_C( 984.13), SIMDE_FLOAT32_C( -84.72), SIMDE_FLOAT32_C( -543.95),
SIMDE_FLOAT32_C( 998.02), SIMDE_FLOAT32_C( -559.31), SIMDE_FLOAT32_C( 134.12), SIMDE_FLOAT32_C( -230.64)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -161.72), SIMDE_FLOAT32_C( 540.27), SIMDE_FLOAT32_C( -745.55), SIMDE_FLOAT32_C( 623.14),
SIMDE_FLOAT32_C( -272.95), SIMDE_FLOAT32_C( 176.76), SIMDE_FLOAT32_C( -957.12), SIMDE_FLOAT32_C( -720.97),
SIMDE_FLOAT32_C( -491.62), SIMDE_FLOAT32_C( 442.72), SIMDE_FLOAT32_C( 94.42), SIMDE_FLOAT32_C( -425.44),
SIMDE_FLOAT32_C( 378.60), SIMDE_FLOAT32_C( -248.93), SIMDE_FLOAT32_C( 638.30), SIMDE_FLOAT32_C( -857.32)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -278.44), SIMDE_FLOAT32_C( 958.04), SIMDE_FLOAT32_C( -686.18), SIMDE_FLOAT32_C( -120.52),
SIMDE_FLOAT32_C( 759.91), SIMDE_FLOAT32_C( 470.87), SIMDE_FLOAT32_C( -723.57), SIMDE_FLOAT32_C( 170.04),
SIMDE_FLOAT32_C( 559.73), SIMDE_FLOAT32_C( 984.13), SIMDE_FLOAT32_C( -84.72), SIMDE_FLOAT32_C( -543.95),
SIMDE_FLOAT32_C( 998.02), SIMDE_FLOAT32_C( -559.31), SIMDE_FLOAT32_C( 134.12), SIMDE_FLOAT32_C( -230.64)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( -455.21), SIMDE_FLOAT32_C( -180.02), SIMDE_FLOAT32_C( -110.74), SIMDE_FLOAT32_C( -586.50),
SIMDE_FLOAT32_C( -9.89), SIMDE_FLOAT32_C( -597.54), SIMDE_FLOAT32_C( 553.79), SIMDE_FLOAT32_C( 611.64),
SIMDE_FLOAT32_C( 717.03), SIMDE_FLOAT32_C( -381.85), SIMDE_FLOAT32_C( 862.32), SIMDE_FLOAT32_C( 302.29),
SIMDE_FLOAT32_C( 146.86), SIMDE_FLOAT32_C( -693.40), SIMDE_FLOAT32_C( -247.57), SIMDE_FLOAT32_C( -469.49)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 842.67), SIMDE_FLOAT32_C( -856.89), SIMDE_FLOAT32_C( -490.76), SIMDE_FLOAT32_C( 922.81),
SIMDE_FLOAT32_C( -69.36), SIMDE_FLOAT32_C( 380.23), SIMDE_FLOAT32_C( -846.01), SIMDE_FLOAT32_C( -485.23),
SIMDE_FLOAT32_C( -171.14), SIMDE_FLOAT32_C( 602.88), SIMDE_FLOAT32_C( -717.33), SIMDE_FLOAT32_C( 336.05),
SIMDE_FLOAT32_C( -432.71), SIMDE_FLOAT32_C( -881.01), SIMDE_FLOAT32_C( -255.82), SIMDE_FLOAT32_C( 168.04)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -455.21), SIMDE_FLOAT32_C( -180.02), SIMDE_FLOAT32_C( -110.74), SIMDE_FLOAT32_C( -586.50),
SIMDE_FLOAT32_C( -9.89), SIMDE_FLOAT32_C( -597.54), SIMDE_FLOAT32_C( 553.79), SIMDE_FLOAT32_C( 611.64),
SIMDE_FLOAT32_C( 717.03), SIMDE_FLOAT32_C( -381.85), SIMDE_FLOAT32_C( 862.32), SIMDE_FLOAT32_C( 302.29),
SIMDE_FLOAT32_C( 146.86), SIMDE_FLOAT32_C( -693.40), SIMDE_FLOAT32_C( -247.57), SIMDE_FLOAT32_C( -469.49)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( -694.40), SIMDE_FLOAT32_C( -404.01), SIMDE_FLOAT32_C( 766.51), SIMDE_FLOAT32_C( -392.19),
SIMDE_FLOAT32_C( -908.15), SIMDE_FLOAT32_C( -690.12), SIMDE_FLOAT32_C( -262.73), SIMDE_FLOAT32_C( -353.25),
SIMDE_FLOAT32_C( -451.03), SIMDE_FLOAT32_C( -88.58), SIMDE_FLOAT32_C( 658.99), SIMDE_FLOAT32_C( -961.05),
SIMDE_FLOAT32_C( -743.39), SIMDE_FLOAT32_C( 747.85), SIMDE_FLOAT32_C( -989.89), SIMDE_FLOAT32_C( -48.62)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -585.79), SIMDE_FLOAT32_C( -884.44), SIMDE_FLOAT32_C( -722.53), SIMDE_FLOAT32_C( 296.99),
SIMDE_FLOAT32_C( 791.87), SIMDE_FLOAT32_C( 514.23), SIMDE_FLOAT32_C( 110.66), SIMDE_FLOAT32_C( -891.24),
SIMDE_FLOAT32_C( -893.87), SIMDE_FLOAT32_C( 597.88), SIMDE_FLOAT32_C( -561.25), SIMDE_FLOAT32_C( -182.63),
SIMDE_FLOAT32_C( -91.96), SIMDE_FLOAT32_C( 272.32), SIMDE_FLOAT32_C( -87.60), SIMDE_FLOAT32_C( 34.84)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -694.40), SIMDE_FLOAT32_C( -404.01), SIMDE_FLOAT32_C( 766.51), SIMDE_FLOAT32_C( -392.19),
SIMDE_FLOAT32_C( -908.15), SIMDE_FLOAT32_C( -690.12), SIMDE_FLOAT32_C( -262.73), SIMDE_FLOAT32_C( -353.25),
SIMDE_FLOAT32_C( -451.03), SIMDE_FLOAT32_C( -88.58), SIMDE_FLOAT32_C( 658.99), SIMDE_FLOAT32_C( -961.05),
SIMDE_FLOAT32_C( -743.39), SIMDE_FLOAT32_C( 747.85), SIMDE_FLOAT32_C( -989.89), SIMDE_FLOAT32_C( -48.62)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( 706.89), SIMDE_FLOAT32_C( 473.35), SIMDE_FLOAT32_C( 525.10), SIMDE_FLOAT32_C( 58.51),
SIMDE_FLOAT32_C( -849.29), SIMDE_FLOAT32_C( 830.92), SIMDE_FLOAT32_C( 666.67), SIMDE_FLOAT32_C( 510.60),
SIMDE_FLOAT32_C( 494.95), SIMDE_FLOAT32_C( -644.02), SIMDE_FLOAT32_C( 666.48), SIMDE_FLOAT32_C( 728.99),
SIMDE_FLOAT32_C( 57.50), SIMDE_FLOAT32_C( -509.99), SIMDE_FLOAT32_C( -86.32), SIMDE_FLOAT32_C( 945.97)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 396.65), SIMDE_FLOAT32_C( -337.05), SIMDE_FLOAT32_C( 13.39), SIMDE_FLOAT32_C( 374.11),
SIMDE_FLOAT32_C( 941.83), SIMDE_FLOAT32_C( -80.39), SIMDE_FLOAT32_C( -533.82), SIMDE_FLOAT32_C( -81.97),
SIMDE_FLOAT32_C( -76.37), SIMDE_FLOAT32_C( -466.22), SIMDE_FLOAT32_C( -527.13), SIMDE_FLOAT32_C( 285.31),
SIMDE_FLOAT32_C( -159.19), SIMDE_FLOAT32_C( -769.18), SIMDE_FLOAT32_C( 908.64), SIMDE_FLOAT32_C( -647.66)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 706.89), SIMDE_FLOAT32_C( 473.35), SIMDE_FLOAT32_C( 525.10), SIMDE_FLOAT32_C( 58.51),
SIMDE_FLOAT32_C( -849.29), SIMDE_FLOAT32_C( 830.92), SIMDE_FLOAT32_C( 666.67), SIMDE_FLOAT32_C( 510.60),
SIMDE_FLOAT32_C( 494.95), SIMDE_FLOAT32_C( -644.02), SIMDE_FLOAT32_C( 666.48), SIMDE_FLOAT32_C( 728.99),
SIMDE_FLOAT32_C( 57.50), SIMDE_FLOAT32_C( -509.99), SIMDE_FLOAT32_C( -86.32), SIMDE_FLOAT32_C( 945.97)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( 305.38), SIMDE_FLOAT32_C( 354.29), SIMDE_FLOAT32_C( 625.78), SIMDE_FLOAT32_C( 840.33),
SIMDE_FLOAT32_C( 398.08), SIMDE_FLOAT32_C( -775.15), SIMDE_FLOAT32_C( -749.75), SIMDE_FLOAT32_C( -579.50),
SIMDE_FLOAT32_C( 326.67), SIMDE_FLOAT32_C( -369.97), SIMDE_FLOAT32_C( -888.36), SIMDE_FLOAT32_C( -369.43),
SIMDE_FLOAT32_C( 587.01), SIMDE_FLOAT32_C( -977.20), SIMDE_FLOAT32_C( -154.58), SIMDE_FLOAT32_C( -264.71)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 472.46), SIMDE_FLOAT32_C( -814.28), SIMDE_FLOAT32_C( 331.94), SIMDE_FLOAT32_C( -36.35),
SIMDE_FLOAT32_C( -98.00), SIMDE_FLOAT32_C( 862.68), SIMDE_FLOAT32_C( -130.24), SIMDE_FLOAT32_C( 65.39),
SIMDE_FLOAT32_C( -826.35), SIMDE_FLOAT32_C( 92.38), SIMDE_FLOAT32_C( -698.83), SIMDE_FLOAT32_C( 457.07),
SIMDE_FLOAT32_C( -472.97), SIMDE_FLOAT32_C( -117.57), SIMDE_FLOAT32_C( -498.77), SIMDE_FLOAT32_C( 798.69)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 305.38), SIMDE_FLOAT32_C( 354.29), SIMDE_FLOAT32_C( 625.78), SIMDE_FLOAT32_C( 840.33),
SIMDE_FLOAT32_C( 398.08), SIMDE_FLOAT32_C( -775.15), SIMDE_FLOAT32_C( -749.75), SIMDE_FLOAT32_C( -579.50),
SIMDE_FLOAT32_C( 326.67), SIMDE_FLOAT32_C( -369.97), SIMDE_FLOAT32_C( -888.36), SIMDE_FLOAT32_C( -369.43),
SIMDE_FLOAT32_C( 587.01), SIMDE_FLOAT32_C( -977.20), SIMDE_FLOAT32_C( -154.58), SIMDE_FLOAT32_C( -264.71)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( 845.06), SIMDE_FLOAT32_C( -527.19), SIMDE_FLOAT32_C( -753.05), SIMDE_FLOAT32_C( -867.95),
SIMDE_FLOAT32_C( -98.38), SIMDE_FLOAT32_C( -90.28), SIMDE_FLOAT32_C( 321.06), SIMDE_FLOAT32_C( -308.74),
SIMDE_FLOAT32_C( 969.13), SIMDE_FLOAT32_C( -263.02), SIMDE_FLOAT32_C( -517.54), SIMDE_FLOAT32_C( 566.67),
SIMDE_FLOAT32_C( -321.03), SIMDE_FLOAT32_C( -19.45), SIMDE_FLOAT32_C( -773.18), SIMDE_FLOAT32_C( -562.24)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -313.43), SIMDE_FLOAT32_C( -900.90), SIMDE_FLOAT32_C( -480.72), SIMDE_FLOAT32_C( 288.15),
SIMDE_FLOAT32_C( 603.38), SIMDE_FLOAT32_C( 964.29), SIMDE_FLOAT32_C( 140.98), SIMDE_FLOAT32_C( 269.46),
SIMDE_FLOAT32_C( 960.77), SIMDE_FLOAT32_C( -220.33), SIMDE_FLOAT32_C( 524.23), SIMDE_FLOAT32_C( -633.14),
SIMDE_FLOAT32_C( -680.30), SIMDE_FLOAT32_C( 880.56), SIMDE_FLOAT32_C( 661.76), SIMDE_FLOAT32_C( -794.03)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 845.06), SIMDE_FLOAT32_C( -527.19), SIMDE_FLOAT32_C( -753.05), SIMDE_FLOAT32_C( -867.95),
SIMDE_FLOAT32_C( -98.38), SIMDE_FLOAT32_C( -90.28), SIMDE_FLOAT32_C( 321.06), SIMDE_FLOAT32_C( -308.74),
SIMDE_FLOAT32_C( 969.13), SIMDE_FLOAT32_C( -263.02), SIMDE_FLOAT32_C( -517.54), SIMDE_FLOAT32_C( 566.67),
SIMDE_FLOAT32_C( -321.03), SIMDE_FLOAT32_C( -19.45), SIMDE_FLOAT32_C( -773.18), SIMDE_FLOAT32_C( -562.24)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( -595.71), SIMDE_FLOAT32_C( 923.49), SIMDE_FLOAT32_C( -968.66), SIMDE_FLOAT32_C( 136.30),
SIMDE_FLOAT32_C( 658.04), SIMDE_FLOAT32_C( 31.08), SIMDE_FLOAT32_C( 664.79), SIMDE_FLOAT32_C( 525.95),
SIMDE_FLOAT32_C( 643.61), SIMDE_FLOAT32_C( -559.86), SIMDE_FLOAT32_C( -291.18), SIMDE_FLOAT32_C( 35.13),
SIMDE_FLOAT32_C( -188.19), SIMDE_FLOAT32_C( 767.03), SIMDE_FLOAT32_C( -828.01), SIMDE_FLOAT32_C( 801.09)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -750.17), SIMDE_FLOAT32_C( 128.67), SIMDE_FLOAT32_C( 441.75), SIMDE_FLOAT32_C( 625.42),
SIMDE_FLOAT32_C( 865.73), SIMDE_FLOAT32_C( -522.43), SIMDE_FLOAT32_C( 871.78), SIMDE_FLOAT32_C( 736.62),
SIMDE_FLOAT32_C( -52.49), SIMDE_FLOAT32_C( -188.89), SIMDE_FLOAT32_C( 163.52), SIMDE_FLOAT32_C( 743.65),
SIMDE_FLOAT32_C( -912.98), SIMDE_FLOAT32_C( -904.70), SIMDE_FLOAT32_C( 973.06), SIMDE_FLOAT32_C( -214.13)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -595.71), SIMDE_FLOAT32_C( 923.49), SIMDE_FLOAT32_C( -968.66), SIMDE_FLOAT32_C( 136.30),
SIMDE_FLOAT32_C( 658.04), SIMDE_FLOAT32_C( 31.08), SIMDE_FLOAT32_C( 664.79), SIMDE_FLOAT32_C( 525.95),
SIMDE_FLOAT32_C( 643.61), SIMDE_FLOAT32_C( -559.86), SIMDE_FLOAT32_C( -291.18), SIMDE_FLOAT32_C( 35.13),
SIMDE_FLOAT32_C( -188.19), SIMDE_FLOAT32_C( 767.03), SIMDE_FLOAT32_C( -828.01), SIMDE_FLOAT32_C( 801.09)) },
{ simde_mm512_set_ps(SIMDE_FLOAT32_C( -351.95), SIMDE_FLOAT32_C( 902.78), SIMDE_FLOAT32_C( -172.20), SIMDE_FLOAT32_C( 540.77),
SIMDE_FLOAT32_C( -431.24), SIMDE_FLOAT32_C( 243.87), SIMDE_FLOAT32_C( 216.07), SIMDE_FLOAT32_C( 747.45),
SIMDE_FLOAT32_C( -864.81), SIMDE_FLOAT32_C( -982.67), SIMDE_FLOAT32_C( -710.14), SIMDE_FLOAT32_C( -539.39),
SIMDE_FLOAT32_C( -100.27), SIMDE_FLOAT32_C( -988.79), SIMDE_FLOAT32_C( -220.83), SIMDE_FLOAT32_C( 489.72)),
UINT16_C( 0),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 688.70), SIMDE_FLOAT32_C( -942.30), SIMDE_FLOAT32_C( -353.35), SIMDE_FLOAT32_C( -645.42),
SIMDE_FLOAT32_C( 206.41), SIMDE_FLOAT32_C( 546.87), SIMDE_FLOAT32_C( -878.90), SIMDE_FLOAT32_C( 614.84),
SIMDE_FLOAT32_C( 757.82), SIMDE_FLOAT32_C( 388.29), SIMDE_FLOAT32_C( -767.39), SIMDE_FLOAT32_C( 567.68),
SIMDE_FLOAT32_C( 464.76), SIMDE_FLOAT32_C( -828.44), SIMDE_FLOAT32_C( 843.54), SIMDE_FLOAT32_C( 504.38)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -351.95), SIMDE_FLOAT32_C( 902.78), SIMDE_FLOAT32_C( -172.20), SIMDE_FLOAT32_C( 540.77),
SIMDE_FLOAT32_C( -431.24), SIMDE_FLOAT32_C( 243.87), SIMDE_FLOAT32_C( 216.07), SIMDE_FLOAT32_C( 747.45),
SIMDE_FLOAT32_C( -864.81), SIMDE_FLOAT32_C( -982.67), SIMDE_FLOAT32_C( -710.14), SIMDE_FLOAT32_C( -539.39),
SIMDE_FLOAT32_C( -100.27), SIMDE_FLOAT32_C( -988.79), SIMDE_FLOAT32_C( -220.83), SIMDE_FLOAT32_C( 489.72)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512 r = simde_mm512_mask_mov_ps(test_vec[i].src, test_vec[i].k, test_vec[i].a);
simde_assert_m512_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm_maskz_mov_epi8(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask16 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ UINT16_C(54402),
simde_mm_set_epi8(INT8_C( 36), INT8_C( 97), INT8_C(-122), INT8_C( 62),
INT8_C( -43), INT8_C( -34), INT8_C( -14), INT8_C(-126),
INT8_C( 82), INT8_C( -27), INT8_C(-110), INT8_C( -49),
INT8_C( 86), INT8_C( 99), INT8_C( 100), INT8_C( -41)),
simde_mm_set_epi8(INT8_C( 36), INT8_C( 97), INT8_C( 0), INT8_C( 62),
INT8_C( 0), INT8_C( -34), INT8_C( 0), INT8_C( 0),
INT8_C( 82), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 100), INT8_C( 0)) },
{ UINT16_C( 9320),
simde_mm_set_epi8(INT8_C( 42), INT8_C( -13), INT8_C( 59), INT8_C( -76),
INT8_C( 44), INT8_C(-127), INT8_C( -33), INT8_C(-116),
INT8_C( 13), INT8_C( 9), INT8_C( -47), INT8_C( 53),
INT8_C( -56), INT8_C( 87), INT8_C( -89), INT8_C( 72)),
simde_mm_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C( 59), INT8_C( 0),
INT8_C( 0), INT8_C(-127), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 9), INT8_C( -47), INT8_C( 0),
INT8_C( -56), INT8_C( 0), INT8_C( 0), INT8_C( 0)) },
{ UINT16_C( 7828),
simde_mm_set_epi8(INT8_C( -41), INT8_C( -58), INT8_C( 78), INT8_C( -99),
INT8_C( -79), INT8_C( 93), INT8_C( 74), INT8_C( 5),
INT8_C( 40), INT8_C( -62), INT8_C( 109), INT8_C( -74),
INT8_C( 1), INT8_C( -60), INT8_C( 94), INT8_C( 12)),
simde_mm_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -99),
INT8_C( -79), INT8_C( 93), INT8_C( 74), INT8_C( 0),
INT8_C( 40), INT8_C( 0), INT8_C( 0), INT8_C( -74),
INT8_C( 0), INT8_C( -60), INT8_C( 0), INT8_C( 0)) },
{ UINT16_C(55181),
simde_mm_set_epi8(INT8_C( 37), INT8_C( 84), INT8_C( -36), INT8_C(-122),
INT8_C( 25), INT8_C( 108), INT8_C( 27), INT8_C( 95),
INT8_C( -44), INT8_C(-128), INT8_C( 110), INT8_C( -66),
INT8_C( 74), INT8_C( -16), INT8_C( 122), INT8_C( -30)),
simde_mm_set_epi8(INT8_C( 37), INT8_C( 84), INT8_C( 0), INT8_C(-122),
INT8_C( 0), INT8_C( 108), INT8_C( 27), INT8_C( 95),
INT8_C( -44), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 74), INT8_C( -16), INT8_C( 0), INT8_C( -30)) },
{ UINT16_C(57564),
simde_mm_set_epi8(INT8_C( -26), INT8_C( -5), INT8_C( 7), INT8_C( -63),
INT8_C( 47), INT8_C( 32), INT8_C( 62), INT8_C(-108),
INT8_C( 26), INT8_C( 67), INT8_C( -45), INT8_C( 32),
INT8_C( -38), INT8_C( 61), INT8_C(-123), INT8_C(-123)),
simde_mm_set_epi8(INT8_C( -26), INT8_C( -5), INT8_C( 7), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 26), INT8_C( 67), INT8_C( 0), INT8_C( 32),
INT8_C( -38), INT8_C( 61), INT8_C( 0), INT8_C( 0)) },
{ UINT16_C(58988),
simde_mm_set_epi8(INT8_C( 108), INT8_C( 5), INT8_C(-115), INT8_C( -87),
INT8_C( 112), INT8_C( 24), INT8_C( 18), INT8_C( -62),
INT8_C( 120), INT8_C( 62), INT8_C( -22), INT8_C( -32),
INT8_C( 32), INT8_C( -91), INT8_C( 65), INT8_C( 79)),
simde_mm_set_epi8(INT8_C( 108), INT8_C( 5), INT8_C(-115), INT8_C( 0),
INT8_C( 0), INT8_C( 24), INT8_C( 18), INT8_C( 0),
INT8_C( 0), INT8_C( 62), INT8_C( -22), INT8_C( 0),
INT8_C( 32), INT8_C( -91), INT8_C( 0), INT8_C( 0)) },
{ UINT16_C(50535),
simde_mm_set_epi8(INT8_C(-119), INT8_C( -52), INT8_C(-117), INT8_C( 112),
INT8_C( -70), INT8_C(-108), INT8_C( -6), INT8_C( 88),
INT8_C( 5), INT8_C( -84), INT8_C( 11), INT8_C( -55),
INT8_C(-116), INT8_C( 8), INT8_C( 68), INT8_C(-111)),
simde_mm_set_epi8(INT8_C(-119), INT8_C( -52), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C(-108), INT8_C( 0), INT8_C( 88),
INT8_C( 0), INT8_C( -84), INT8_C( 11), INT8_C( 0),
INT8_C( 0), INT8_C( 8), INT8_C( 68), INT8_C(-111)) },
{ UINT16_C(21029),
simde_mm_set_epi8(INT8_C(-123), INT8_C(-110), INT8_C( 43), INT8_C( -78),
INT8_C(-113), INT8_C( -6), INT8_C( -22), INT8_C(-111),
INT8_C(-114), INT8_C( 91), INT8_C( 78), INT8_C( 20),
INT8_C( 94), INT8_C( 5), INT8_C( 125), INT8_C( 13)),
simde_mm_set_epi8(INT8_C( 0), INT8_C(-110), INT8_C( 0), INT8_C( -78),
INT8_C( 0), INT8_C( 0), INT8_C( -22), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 78), INT8_C( 0),
INT8_C( 0), INT8_C( 5), INT8_C( 0), INT8_C( 13)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_maskz_mov_epi8(test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i8(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_maskz_mov_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ UINT8_C(172),
simde_mm_set_epi16(INT16_C( 31369), INT16_C( 24471), INT16_C( -2198), INT16_C( 13931),
INT16_C( 8708), INT16_C(-30158), INT16_C( 19991), INT16_C(-25642)),
simde_mm_set_epi16(INT16_C( 31369), INT16_C( 0), INT16_C( -2198), INT16_C( 0),
INT16_C( 8708), INT16_C(-30158), INT16_C( 0), INT16_C( 0)) },
{ UINT8_C(174),
simde_mm_set_epi16(INT16_C( 15685), INT16_C( 28576), INT16_C( 31286), INT16_C( 30917),
INT16_C( 32368), INT16_C( -7767), INT16_C( 5413), INT16_C( -7264)),
simde_mm_set_epi16(INT16_C( 15685), INT16_C( 0), INT16_C( 31286), INT16_C( 0),
INT16_C( 32368), INT16_C( -7767), INT16_C( 5413), INT16_C( 0)) },
{ UINT8_C(204),
simde_mm_set_epi16(INT16_C(-32746), INT16_C( 32574), INT16_C( 12624), INT16_C( 27372),
INT16_C(-30923), INT16_C( 29148), INT16_C(-21083), INT16_C( 14295)),
simde_mm_set_epi16(INT16_C(-32746), INT16_C( 32574), INT16_C( 0), INT16_C( 0),
INT16_C(-30923), INT16_C( 29148), INT16_C( 0), INT16_C( 0)) },
{ UINT8_C( 95),
simde_mm_set_epi16(INT16_C(-30267), INT16_C(-15896), INT16_C( 22574), INT16_C( 2859),
INT16_C( 2365), INT16_C( -901), INT16_C( 18813), INT16_C( 18335)),
simde_mm_set_epi16(INT16_C( 0), INT16_C(-15896), INT16_C( 0), INT16_C( 2859),
INT16_C( 2365), INT16_C( -901), INT16_C( 18813), INT16_C( 18335)) },
{ UINT8_C( 67),
simde_mm_set_epi16(INT16_C( 16076), INT16_C( 28949), INT16_C( 18472), INT16_C( 18435),
INT16_C(-29130), INT16_C(-15163), INT16_C(-12433), INT16_C( -3463)),
simde_mm_set_epi16(INT16_C( 0), INT16_C( 28949), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C(-12433), INT16_C( -3463)) },
{ UINT8_C( 73),
simde_mm_set_epi16(INT16_C(-30899), INT16_C(-31361), INT16_C(-22956), INT16_C(-14855),
INT16_C( -601), INT16_C( 2058), INT16_C( 17396), INT16_C(-31263)),
simde_mm_set_epi16(INT16_C( 0), INT16_C(-31361), INT16_C( 0), INT16_C( 0),
INT16_C( -601), INT16_C( 0), INT16_C( 0), INT16_C(-31263)) },
{ UINT8_C( 1),
simde_mm_set_epi16(INT16_C( 5707), INT16_C(-20763), INT16_C( 8635), INT16_C( -4245),
INT16_C( 27666), INT16_C(-18424), INT16_C(-22687), INT16_C( 15686)),
simde_mm_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 15686)) },
{ UINT8_C(172),
simde_mm_set_epi16(INT16_C( 8809), INT16_C( 29917), INT16_C( 520), INT16_C(-12425),
INT16_C( 13592), INT16_C(-10913), INT16_C(-21871), INT16_C( 6317)),
simde_mm_set_epi16(INT16_C( 8809), INT16_C( 0), INT16_C( 520), INT16_C( 0),
INT16_C( 13592), INT16_C(-10913), INT16_C( 0), INT16_C( 0)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_maskz_mov_epi16(test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i16(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_maskz_mov_epi32(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ UINT8_C(192),
simde_mm_set_epi32(INT32_C( 656441296), INT32_C(-1852032257), INT32_C( 299494207), INT32_C(-1616873206)),
simde_mm_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0)) },
{ UINT8_C(138),
simde_mm_set_epi32(INT32_C( 707152322), INT32_C(-1311270924), INT32_C(-1503159730), INT32_C(-2099401846)),
simde_mm_set_epi32(INT32_C( 707152322), INT32_C( 0), INT32_C(-1503159730), INT32_C( 0)) },
{ UINT8_C(202),
simde_mm_set_epi32(INT32_C(-1455100666), INT32_C(-2025285461), INT32_C( -179772388), INT32_C( 1367812127)),
simde_mm_set_epi32(INT32_C(-1455100666), INT32_C( 0), INT32_C( -179772388), INT32_C( 0)) },
{ UINT8_C(144),
simde_mm_set_epi32(INT32_C(-1107178304), INT32_C(-1037282057), INT32_C( 779093870), INT32_C( 1250766721)),
simde_mm_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0)) },
{ UINT8_C(121),
simde_mm_set_epi32(INT32_C( -756555400), INT32_C( 1672370881), INT32_C( -263709411), INT32_C( 606108964)),
simde_mm_set_epi32(INT32_C( -756555400), INT32_C( 0), INT32_C( 0), INT32_C( 606108964)) },
{ UINT8_C( 11),
simde_mm_set_epi32(INT32_C( 291215521), INT32_C( 371049029), INT32_C( 324114641), INT32_C( -986925670)),
simde_mm_set_epi32(INT32_C( 291215521), INT32_C( 0), INT32_C( 324114641), INT32_C( -986925670)) },
{ UINT8_C(200),
simde_mm_set_epi32(INT32_C(-1248714533), INT32_C( 110176831), INT32_C(-1962006925), INT32_C( -973547490)),
simde_mm_set_epi32(INT32_C(-1248714533), INT32_C( 0), INT32_C( 0), INT32_C( 0)) },
{ UINT8_C(138),
simde_mm_set_epi32(INT32_C( -971622476), INT32_C( -95064376), INT32_C( -736538751), INT32_C( 7991884)),
simde_mm_set_epi32(INT32_C( -971622476), INT32_C( 0), INT32_C( -736538751), INT32_C( 0)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_maskz_mov_epi32(test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i32(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_maskz_mov_epi64(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m128i a;
simde__m128i r;
} test_vec[8] = {
{ UINT8_C(140),
simde_mm_set_epi64x(INT64_C( 3798083087260184318), INT64_C( 5657333801282264243)),
simde_mm_set_epi64x(INT64_C( 0), INT64_C( 0)) },
{ UINT8_C( 59),
simde_mm_set_epi64x(INT64_C( 6150838870455976373), INT64_C(-1888156961938500809)),
simde_mm_set_epi64x(INT64_C( 6150838870455976373), INT64_C(-1888156961938500809)) },
{ UINT8_C( 85),
simde_mm_set_epi64x(INT64_C(-2963288110518582462), INT64_C( 4379558933354650160)),
simde_mm_set_epi64x(INT64_C( 0), INT64_C( 4379558933354650160)) },
{ UINT8_C(190),
simde_mm_set_epi64x(INT64_C( 1293362407707663546), INT64_C( 3921888525347819158)),
simde_mm_set_epi64x(INT64_C( 1293362407707663546), INT64_C( 0)) },
{ UINT8_C(114),
simde_mm_set_epi64x(INT64_C(-7166753234573077348), INT64_C( 1514796214136072870)),
simde_mm_set_epi64x(INT64_C(-7166753234573077348), INT64_C( 0)) },
{ UINT8_C( 57),
simde_mm_set_epi64x(INT64_C(-5321356301108453394), INT64_C(-2450051547146928613)),
simde_mm_set_epi64x(INT64_C( 0), INT64_C(-2450051547146928613)) },
{ UINT8_C( 72),
simde_mm_set_epi64x(INT64_C(-3635596340953309068), INT64_C(-4947516809045744754)),
simde_mm_set_epi64x(INT64_C( 0), INT64_C( 0)) },
{ UINT8_C( 27),
simde_mm_set_epi64x(INT64_C(-4723518328184072824), INT64_C(-6365694246941149609)),
simde_mm_set_epi64x(INT64_C(-4723518328184072824), INT64_C(-6365694246941149609)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128i r = simde_mm_maskz_mov_epi64(test_vec[i].k, test_vec[i].a);
simde_assert_m128i_i64(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm_maskz_mov_pd(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m128d a;
simde__m128d r;
} test_vec[8] = {
{ UINT8_C(210),
simde_mm_set_pd(SIMDE_FLOAT64_C( 55.56), SIMDE_FLOAT64_C( 306.20)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 55.56), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C( 7),
simde_mm_set_pd(SIMDE_FLOAT64_C( 202.21), SIMDE_FLOAT64_C( -678.71)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 202.21), SIMDE_FLOAT64_C( -678.71)) },
{ UINT8_C( 50),
simde_mm_set_pd(SIMDE_FLOAT64_C( 680.40), SIMDE_FLOAT64_C( 906.67)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 680.40), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C(229),
simde_mm_set_pd(SIMDE_FLOAT64_C( -422.72), SIMDE_FLOAT64_C( 572.83)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 572.83)) },
{ UINT8_C(117),
simde_mm_set_pd(SIMDE_FLOAT64_C( -76.19), SIMDE_FLOAT64_C( -654.60)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -654.60)) },
{ UINT8_C(130),
simde_mm_set_pd(SIMDE_FLOAT64_C( -711.42), SIMDE_FLOAT64_C( -22.70)),
simde_mm_set_pd(SIMDE_FLOAT64_C( -711.42), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C( 62),
simde_mm_set_pd(SIMDE_FLOAT64_C( -413.23), SIMDE_FLOAT64_C( 547.52)),
simde_mm_set_pd(SIMDE_FLOAT64_C( -413.23), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C(165),
simde_mm_set_pd(SIMDE_FLOAT64_C( 575.41), SIMDE_FLOAT64_C( -702.01)),
simde_mm_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -702.01)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128d r = simde_mm_maskz_mov_pd(test_vec[i].k, test_vec[i].a);
simde_assert_m128d_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm_maskz_mov_ps(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m128 a;
simde__m128 r;
} test_vec[8] = {
{ UINT16_C( 126),
simde_mm_set_ps(SIMDE_FLOAT32_C( -678.71), SIMDE_FLOAT32_C( 675.53), SIMDE_FLOAT32_C( 55.56), SIMDE_FLOAT32_C( 306.20)),
simde_mm_set_ps(SIMDE_FLOAT32_C( -678.71), SIMDE_FLOAT32_C( 675.53), SIMDE_FLOAT32_C( 55.56), SIMDE_FLOAT32_C( 0.00)) },
{ UINT16_C( 44),
simde_mm_set_ps(SIMDE_FLOAT32_C( 941.87), SIMDE_FLOAT32_C( 680.40), SIMDE_FLOAT32_C( 906.67), SIMDE_FLOAT32_C( -364.25)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 941.87), SIMDE_FLOAT32_C( 680.40), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ UINT16_C( 117),
simde_mm_set_ps(SIMDE_FLOAT32_C( -76.19), SIMDE_FLOAT32_C( -654.60), SIMDE_FLOAT32_C( -721.91), SIMDE_FLOAT32_C( -422.72)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -654.60), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -422.72)) },
{ UINT16_C( 76),
simde_mm_set_ps(SIMDE_FLOAT32_C( 547.52), SIMDE_FLOAT32_C( -627.17), SIMDE_FLOAT32_C( -711.42), SIMDE_FLOAT32_C( -22.70)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 547.52), SIMDE_FLOAT32_C( -627.17), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ UINT16_C( 101),
simde_mm_set_ps(SIMDE_FLOAT32_C( -822.97), SIMDE_FLOAT32_C( 575.41), SIMDE_FLOAT32_C( -702.01), SIMDE_FLOAT32_C( -488.76)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 575.41), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -488.76)) },
{ UINT16_C( 149),
simde_mm_set_ps(SIMDE_FLOAT32_C( 804.55), SIMDE_FLOAT32_C( -888.85), SIMDE_FLOAT32_C( 750.71), SIMDE_FLOAT32_C( 346.51)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -888.85), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 346.51)) },
{ UINT16_C( 115),
simde_mm_set_ps(SIMDE_FLOAT32_C( -17.38), SIMDE_FLOAT32_C( 623.33), SIMDE_FLOAT32_C( 459.80), SIMDE_FLOAT32_C( 837.15)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 459.80), SIMDE_FLOAT32_C( 837.15)) },
{ UINT16_C( 50),
simde_mm_set_ps(SIMDE_FLOAT32_C( 197.69), SIMDE_FLOAT32_C( 233.42), SIMDE_FLOAT32_C( 153.73), SIMDE_FLOAT32_C( 616.58)),
simde_mm_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 153.73), SIMDE_FLOAT32_C( 0.00)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m128 r = simde_mm_maskz_mov_ps(test_vec[i].k, test_vec[i].a);
simde_assert_m128_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm256_maskz_mov_epi8(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask32 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ UINT32_C(1332074171),
simde_mm256_set_epi8(INT8_C( 121), INT8_C( 75), INT8_C( 39), INT8_C(-100),
INT8_C( 23), INT8_C( 80), INT8_C( 88), INT8_C( 14),
INT8_C( -82), INT8_C( -32), INT8_C( -73), INT8_C( -78),
INT8_C( -21), INT8_C( 76), INT8_C( 33), INT8_C( 90),
INT8_C( -57), INT8_C( -12), INT8_C(-121), INT8_C( 101),
INT8_C( 6), INT8_C( -36), INT8_C( -50), INT8_C( -33),
INT8_C( -83), INT8_C( -92), INT8_C( 2), INT8_C( 69),
INT8_C( 62), INT8_C( 89), INT8_C( 105), INT8_C( 58)),
simde_mm256_set_epi8(INT8_C( 0), INT8_C( 75), INT8_C( 0), INT8_C( 0),
INT8_C( 23), INT8_C( 80), INT8_C( 88), INT8_C( 14),
INT8_C( 0), INT8_C( -32), INT8_C( -73), INT8_C( 0),
INT8_C( 0), INT8_C( 76), INT8_C( 0), INT8_C( 90),
INT8_C( -57), INT8_C( -12), INT8_C( 0), INT8_C( 101),
INT8_C( 0), INT8_C( -36), INT8_C( -50), INT8_C( 0),
INT8_C( -83), INT8_C( 0), INT8_C( 2), INT8_C( 69),
INT8_C( 62), INT8_C( 0), INT8_C( 105), INT8_C( 58)) },
{ UINT32_C(4272165599),
simde_mm256_set_epi8(INT8_C( 23), INT8_C( 6), INT8_C( 61), INT8_C( 68),
INT8_C( -53), INT8_C(-110), INT8_C( 53), INT8_C( -67),
INT8_C( -9), INT8_C( -52), INT8_C( 27), INT8_C( -40),
INT8_C( 57), INT8_C( -80), INT8_C( -28), INT8_C( 64),
INT8_C( 70), INT8_C( -40), INT8_C( 14), INT8_C( -38),
INT8_C( -38), INT8_C( -99), INT8_C( -37), INT8_C( -35),
INT8_C( -82), INT8_C( -60), INT8_C( -40), INT8_C( -40),
INT8_C( -5), INT8_C( 8), INT8_C( 109), INT8_C( 95)),
simde_mm256_set_epi8(INT8_C( 23), INT8_C( 6), INT8_C( 61), INT8_C( 68),
INT8_C( -53), INT8_C(-110), INT8_C( 53), INT8_C( 0),
INT8_C( -9), INT8_C( 0), INT8_C( 27), INT8_C( 0),
INT8_C( 0), INT8_C( -80), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -38),
INT8_C( 0), INT8_C( 0), INT8_C( -37), INT8_C( 0),
INT8_C( -82), INT8_C( -60), INT8_C( 0), INT8_C( -40),
INT8_C( -5), INT8_C( 8), INT8_C( 109), INT8_C( 95)) },
{ UINT32_C(3823231310),
simde_mm256_set_epi8(INT8_C( -42), INT8_C( 44), INT8_C( 70), INT8_C( -24),
INT8_C( -86), INT8_C( 112), INT8_C( 116), INT8_C( -61),
INT8_C( 94), INT8_C( -56), INT8_C( -83), INT8_C( 37),
INT8_C( 45), INT8_C( 44), INT8_C( 79), INT8_C( 122),
INT8_C( -54), INT8_C( -68), INT8_C( 19), INT8_C( 39),
INT8_C( 17), INT8_C( -32), INT8_C( -47), INT8_C( -26),
INT8_C( -23), INT8_C( 30), INT8_C( 98), INT8_C( 3),
INT8_C( -92), INT8_C( -30), INT8_C( -8), INT8_C( -30)),
simde_mm256_set_epi8(INT8_C( -42), INT8_C( 44), INT8_C( 70), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 116), INT8_C( -61),
INT8_C( 94), INT8_C( -56), INT8_C( -83), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 122),
INT8_C( -54), INT8_C( -68), INT8_C( 19), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -26),
INT8_C( 0), INT8_C( 30), INT8_C( 0), INT8_C( 0),
INT8_C( -92), INT8_C( -30), INT8_C( -8), INT8_C( 0)) },
{ UINT32_C(2639652614),
simde_mm256_set_epi8(INT8_C( -53), INT8_C( 96), INT8_C( 40), INT8_C( -52),
INT8_C( -17), INT8_C( -6), INT8_C(-108), INT8_C( 33),
INT8_C( -15), INT8_C( 113), INT8_C( 31), INT8_C( -14),
INT8_C( 124), INT8_C( 15), INT8_C( 90), INT8_C( 1),
INT8_C( 36), INT8_C(-115), INT8_C( -95), INT8_C( 4),
INT8_C( 50), INT8_C( -54), INT8_C( 94), INT8_C( 54),
INT8_C( 109), INT8_C(-103), INT8_C(-124), INT8_C( 34),
INT8_C( -16), INT8_C( 97), INT8_C( -7), INT8_C( 98)),
simde_mm256_set_epi8(INT8_C( -53), INT8_C( 0), INT8_C( 0), INT8_C( -52),
INT8_C( -17), INT8_C( -6), INT8_C( 0), INT8_C( 33),
INT8_C( 0), INT8_C( 113), INT8_C( 0), INT8_C( -14),
INT8_C( 0), INT8_C( 15), INT8_C( 0), INT8_C( 1),
INT8_C( 36), INT8_C(-115), INT8_C( -95), INT8_C( 0),
INT8_C( 0), INT8_C( -54), INT8_C( 94), INT8_C( 54),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 97), INT8_C( -7), INT8_C( 0)) },
{ UINT32_C(2877003463),
simde_mm256_set_epi8(INT8_C(-108), INT8_C( 14), INT8_C( 103), INT8_C( 32),
INT8_C( 25), INT8_C(-108), INT8_C( -56), INT8_C(-111),
INT8_C( 23), INT8_C( -20), INT8_C( 4), INT8_C( 81),
INT8_C( 39), INT8_C( 39), INT8_C( 82), INT8_C( -15),
INT8_C( -87), INT8_C( 90), INT8_C( -91), INT8_C( 3),
INT8_C( -91), INT8_C( 55), INT8_C( 72), INT8_C( -46),
INT8_C( 48), INT8_C( -19), INT8_C( -87), INT8_C( 100),
INT8_C( -44), INT8_C( -79), INT8_C( -72), INT8_C( 73)),
simde_mm256_set_epi8(INT8_C(-108), INT8_C( 0), INT8_C( 103), INT8_C( 0),
INT8_C( 25), INT8_C( 0), INT8_C( -56), INT8_C(-111),
INT8_C( 0), INT8_C( -20), INT8_C( 4), INT8_C( 81),
INT8_C( 39), INT8_C( 0), INT8_C( 82), INT8_C( -15),
INT8_C( -87), INT8_C( 0), INT8_C( 0), INT8_C( 3),
INT8_C( 0), INT8_C( 55), INT8_C( 72), INT8_C( 0),
INT8_C( 48), INT8_C( -19), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -79), INT8_C( -72), INT8_C( 73)) },
{ UINT32_C(2869692151),
simde_mm256_set_epi8(INT8_C( 22), INT8_C(-112), INT8_C( 66), INT8_C( -76),
INT8_C( 79), INT8_C(-100), INT8_C( -47), INT8_C(-114),
INT8_C( -72), INT8_C( 67), INT8_C( 3), INT8_C( -9),
INT8_C( 88), INT8_C( -5), INT8_C(-111), INT8_C(-100),
INT8_C( -94), INT8_C( -72), INT8_C( -45), INT8_C( -95),
INT8_C( 119), INT8_C( -81), INT8_C( 38), INT8_C(-111),
INT8_C( 72), INT8_C( -95), INT8_C( 104), INT8_C( -28),
INT8_C( 25), INT8_C( 84), INT8_C( 66), INT8_C( 19)),
simde_mm256_set_epi8(INT8_C( 22), INT8_C( 0), INT8_C( 66), INT8_C( 0),
INT8_C( 79), INT8_C( 0), INT8_C( -47), INT8_C(-114),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 88), INT8_C( -5), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -81), INT8_C( 38), INT8_C( 0),
INT8_C( 72), INT8_C( -95), INT8_C( 104), INT8_C( -28),
INT8_C( 0), INT8_C( 84), INT8_C( 66), INT8_C( 19)) },
{ UINT32_C(1633656989),
simde_mm256_set_epi8(INT8_C( 81), INT8_C( 114), INT8_C( -76), INT8_C( -63),
INT8_C( 30), INT8_C( 66), INT8_C( 18), INT8_C(-119),
INT8_C( 26), INT8_C( 28), INT8_C( 56), INT8_C( 127),
INT8_C( -81), INT8_C( -7), INT8_C( -20), INT8_C( -35),
INT8_C( -7), INT8_C( 37), INT8_C( -47), INT8_C( 78),
INT8_C( 114), INT8_C( -18), INT8_C( 72), INT8_C( -8),
INT8_C(-101), INT8_C( -13), INT8_C( 76), INT8_C( -5),
INT8_C( -5), INT8_C( -50), INT8_C( -99), INT8_C( 84)),
simde_mm256_set_epi8(INT8_C( 0), INT8_C( 114), INT8_C( -76), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C(-119),
INT8_C( 0), INT8_C( 28), INT8_C( 0), INT8_C( 127),
INT8_C( -81), INT8_C( -7), INT8_C( -20), INT8_C( -35),
INT8_C( -7), INT8_C( 0), INT8_C( -47), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C(-101), INT8_C( 0), INT8_C( 0), INT8_C( -5),
INT8_C( -5), INT8_C( -50), INT8_C( 0), INT8_C( 84)) },
{ UINT32_C(4185163230),
simde_mm256_set_epi8(INT8_C( -29), INT8_C(-121), INT8_C( -23), INT8_C( 64),
INT8_C( 12), INT8_C( 5), INT8_C( 73), INT8_C( 52),
INT8_C( -53), INT8_C( 62), INT8_C( 8), INT8_C(-112),
INT8_C( -8), INT8_C( 99), INT8_C( -12), INT8_C(-118),
INT8_C( -33), INT8_C( -37), INT8_C( -98), INT8_C( -94),
INT8_C(-119), INT8_C( 79), INT8_C( -25), INT8_C( 47),
INT8_C( 80), INT8_C( 89), INT8_C( 5), INT8_C( 9),
INT8_C( -36), INT8_C( 79), INT8_C( 8), INT8_C( 89)),
simde_mm256_set_epi8(INT8_C( -29), INT8_C(-121), INT8_C( -23), INT8_C( 64),
INT8_C( 12), INT8_C( 0), INT8_C( 0), INT8_C( 52),
INT8_C( 0), INT8_C( 62), INT8_C( 8), INT8_C(-112),
INT8_C( 0), INT8_C( 99), INT8_C( 0), INT8_C( 0),
INT8_C( -33), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 79), INT8_C( 0), INT8_C( 47),
INT8_C( 80), INT8_C( 89), INT8_C( 0), INT8_C( 9),
INT8_C( -36), INT8_C( 79), INT8_C( 8), INT8_C( 0)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_maskz_mov_epi8(test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i8(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_maskz_mov_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask16 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ UINT16_C(41021),
simde_mm256_set_epi16(INT16_C(-23030), INT16_C( 6803), INT16_C(-21055), INT16_C( -910),
INT16_C( -6009), INT16_C( 10471), INT16_C(-29834), INT16_C(-14111),
INT16_C( -2981), INT16_C( 28733), INT16_C( 11699), INT16_C( 7781),
INT16_C( 29036), INT16_C( -8103), INT16_C(-21310), INT16_C( 9176)),
simde_mm256_set_epi16(INT16_C(-23030), INT16_C( 0), INT16_C(-21055), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 11699), INT16_C( 7781),
INT16_C( 29036), INT16_C( -8103), INT16_C( 0), INT16_C( 9176)) },
{ UINT16_C(53637),
simde_mm256_set_epi16(INT16_C(-17353), INT16_C(-24912), INT16_C(-16017), INT16_C(-32768),
INT16_C( 30563), INT16_C( -5523), INT16_C(-18306), INT16_C( 14754),
INT16_C(-23068), INT16_C(-17313), INT16_C( 21598), INT16_C( 12635),
INT16_C( 17053), INT16_C( 3377), INT16_C( 28887), INT16_C( 29062)),
simde_mm256_set_epi16(INT16_C(-17353), INT16_C(-24912), INT16_C( 0), INT16_C(-32768),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 14754),
INT16_C(-23068), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 3377), INT16_C( 0), INT16_C( 29062)) },
{ UINT16_C(52310),
simde_mm256_set_epi16(INT16_C( 4085), INT16_C( 10000), INT16_C(-17688), INT16_C( 28540),
INT16_C( 9971), INT16_C( -9002), INT16_C(-22233), INT16_C(-13917),
INT16_C(-13732), INT16_C( -199), INT16_C( 9707), INT16_C( 31342),
INT16_C(-13386), INT16_C(-15675), INT16_C( 10143), INT16_C( 19953)),
simde_mm256_set_epi16(INT16_C( 4085), INT16_C( 10000), INT16_C( 0), INT16_C( 0),
INT16_C( 9971), INT16_C( -9002), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( -199), INT16_C( 0), INT16_C( 31342),
INT16_C( 0), INT16_C(-15675), INT16_C( 10143), INT16_C( 0)) },
{ UINT16_C(11313),
simde_mm256_set_epi16(INT16_C(-25947), INT16_C( 19467), INT16_C( 22325), INT16_C( 14960),
INT16_C( 16296), INT16_C(-12892), INT16_C( 9434), INT16_C( 15492),
INT16_C(-30515), INT16_C(-13927), INT16_C( 24112), INT16_C( 9227),
INT16_C(-20054), INT16_C(-11664), INT16_C( -7103), INT16_C(-13246)),
simde_mm256_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C( 22325), INT16_C( 0),
INT16_C( 16296), INT16_C(-12892), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 24112), INT16_C( 9227),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C(-13246)) },
{ UINT16_C(54624),
simde_mm256_set_epi16(INT16_C(-10124), INT16_C( 1110), INT16_C( 1704), INT16_C(-17853),
INT16_C( -7561), INT16_C(-19432), INT16_C( 22127), INT16_C(-30033),
INT16_C(-17362), INT16_C( -1830), INT16_C(-16587), INT16_C(-17056),
INT16_C(-14539), INT16_C( 7972), INT16_C(-26491), INT16_C( 20406)),
simde_mm256_set_epi16(INT16_C(-10124), INT16_C( 1110), INT16_C( 0), INT16_C(-17853),
INT16_C( 0), INT16_C(-19432), INT16_C( 0), INT16_C(-30033),
INT16_C( 0), INT16_C( -1830), INT16_C(-16587), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0)) },
{ UINT16_C(44378),
simde_mm256_set_epi16(INT16_C( 16917), INT16_C( 10042), INT16_C( 5958), INT16_C( -4695),
INT16_C(-20590), INT16_C( 17528), INT16_C( -6738), INT16_C(-26754),
INT16_C( 30496), INT16_C( 8574), INT16_C( 3335), INT16_C(-11669),
INT16_C( 15597), INT16_C(-30582), INT16_C(-21551), INT16_C(-25534)),
simde_mm256_set_epi16(INT16_C( 16917), INT16_C( 0), INT16_C( 5958), INT16_C( 0),
INT16_C(-20590), INT16_C( 17528), INT16_C( 0), INT16_C(-26754),
INT16_C( 0), INT16_C( 8574), INT16_C( 0), INT16_C(-11669),
INT16_C( 15597), INT16_C( 0), INT16_C(-21551), INT16_C( 0)) },
{ UINT16_C(12440),
simde_mm256_set_epi16(INT16_C( 12048), INT16_C( -8528), INT16_C(-31627), INT16_C( 26711),
INT16_C( -4678), INT16_C( 32013), INT16_C( 814), INT16_C( 19873),
INT16_C( 32199), INT16_C( -7421), INT16_C( 21197), INT16_C( 25563),
INT16_C( 14671), INT16_C( 16470), INT16_C( 30174), INT16_C( -7130)),
simde_mm256_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C(-31627), INT16_C( 26711),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 32199), INT16_C( 0), INT16_C( 0), INT16_C( 25563),
INT16_C( 14671), INT16_C( 0), INT16_C( 0), INT16_C( 0)) },
{ UINT16_C( 8281),
simde_mm256_set_epi16(INT16_C( 32229), INT16_C( -2511), INT16_C(-10942), INT16_C(-28733),
INT16_C( -8714), INT16_C( -6616), INT16_C( 4922), INT16_C( 1537),
INT16_C( -8589), INT16_C( 6229), INT16_C(-12142), INT16_C( 12862),
INT16_C(-16969), INT16_C( 25143), INT16_C(-29570), INT16_C( 25018)),
simde_mm256_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C(-10942), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 6229), INT16_C( 0), INT16_C( 12862),
INT16_C(-16969), INT16_C( 0), INT16_C( 0), INT16_C( 25018)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_maskz_mov_epi16(test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i16(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_maskz_mov_epi32(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ UINT8_C(205),
simde_mm256_set_epi32(INT32_C( -433311806), INT32_C( 408583050), INT32_C( -306453652), INT32_C( -661693879),
INT32_C( 1329919822), INT32_C( -49396337), INT32_C( -975523137), INT32_C( 228489302)),
simde_mm256_set_epi32(INT32_C( -433311806), INT32_C( 408583050), INT32_C( 0), INT32_C( 0),
INT32_C( 1329919822), INT32_C( -49396337), INT32_C( 0), INT32_C( 228489302)) },
{ UINT8_C( 99),
simde_mm256_set_epi32(INT32_C( 1010695071), INT32_C( 737167817), INT32_C( 1850343310), INT32_C( 1216609214),
INT32_C(-1976576002), INT32_C( 1498708626), INT32_C( -621595293), INT32_C(-2111598997)),
simde_mm256_set_epi32(INT32_C( 0), INT32_C( 737167817), INT32_C( 1850343310), INT32_C( 0),
INT32_C( 0), INT32_C( 0), INT32_C( -621595293), INT32_C(-2111598997)) },
{ UINT8_C(174),
simde_mm256_set_epi32(INT32_C( 2023987434), INT32_C( 1558325646), INT32_C( 2137381681), INT32_C(-1489350015),
INT32_C(-2044242394), INT32_C( 856733879), INT32_C( 1335704151), INT32_C(-1346912573)),
simde_mm256_set_epi32(INT32_C( 2023987434), INT32_C( 0), INT32_C( 2137381681), INT32_C( 0),
INT32_C(-2044242394), INT32_C( 856733879), INT32_C( 1335704151), INT32_C( 0)) },
{ UINT8_C(179),
simde_mm256_set_epi32(INT32_C( 1148504404), INT32_C( -491209584), INT32_C( -163352510), INT32_C( 998745259),
INT32_C(-1986870978), INT32_C( -69159531), INT32_C(-1702010863), INT32_C( -273027352)),
simde_mm256_set_epi32(INT32_C( 1148504404), INT32_C( 0), INT32_C( -163352510), INT32_C( 998745259),
INT32_C( 0), INT32_C( 0), INT32_C(-1702010863), INT32_C( -273027352)) },
{ UINT8_C(187),
simde_mm256_set_epi32(INT32_C( -272101695), INT32_C(-1695498890), INT32_C( 700753329), INT32_C(-1444122689),
INT32_C( 460626918), INT32_C( 1352716216), INT32_C( -651553055), INT32_C(-1336685992)),
simde_mm256_set_epi32(INT32_C( -272101695), INT32_C( 0), INT32_C( 700753329), INT32_C(-1444122689),
INT32_C( 460626918), INT32_C( 0), INT32_C( -651553055), INT32_C(-1336685992)) },
{ UINT8_C(119),
simde_mm256_set_epi32(INT32_C(-1143505851), INT32_C( 669916850), INT32_C( -262251672), INT32_C( 470970928),
INT32_C( 1041120150), INT32_C(-1070284133), INT32_C( 347280872), INT32_C( -305201154)),
simde_mm256_set_epi32(INT32_C( 0), INT32_C( 669916850), INT32_C( -262251672), INT32_C( 470970928),
INT32_C( 0), INT32_C(-1070284133), INT32_C( 347280872), INT32_C( -305201154)) },
{ UINT8_C( 36),
simde_mm256_set_epi32(INT32_C( 1927265424), INT32_C(-1184012473), INT32_C( 1473357439), INT32_C( 1217146407),
INT32_C( 1884345776), INT32_C( -662443681), INT32_C( -457310112), INT32_C(-2074706314)),
simde_mm256_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 1473357439), INT32_C( 0),
INT32_C( 0), INT32_C( -662443681), INT32_C( 0), INT32_C( 0)) },
{ UINT8_C(161),
simde_mm256_set_epi32(INT32_C( 454256305), INT32_C( -89518858), INT32_C( 575434377), INT32_C( -363661293),
INT32_C( -271203820), INT32_C( -624953581), INT32_C( 1626853978), INT32_C(-1012779406)),
simde_mm256_set_epi32(INT32_C( 454256305), INT32_C( 0), INT32_C( 575434377), INT32_C( 0),
INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C(-1012779406)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_maskz_mov_epi32(test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i32(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_maskz_mov_epi64(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m256i a;
simde__m256i r;
} test_vec[8] = {
{ UINT8_C(109),
simde_mm256_set_epi64x(INT64_C( 7572002691338055356), INT64_C(-6931202421771137023),
INT64_C(-6376895216110561530), INT64_C( 101010879856088318)),
simde_mm256_set_epi64x(INT64_C( 7572002691338055356), INT64_C(-6931202421771137023),
INT64_C( 0), INT64_C( 101010879856088318)) },
{ UINT8_C( 84),
simde_mm256_set_epi64x(INT64_C( 4863930517396634884), INT64_C( 1339559436234782312),
INT64_C(-4687477333083103994), INT64_C( 2317514132307922590)),
simde_mm256_set_epi64x(INT64_C( 0), INT64_C( 1339559436234782312),
INT64_C( 0), INT64_C( 0)) },
{ UINT8_C( 4),
simde_mm256_set_epi64x(INT64_C(-4280812707612271736), INT64_C( 1352195411881071619),
INT64_C( 4401292390121558915), INT64_C( 1447000045443016421)),
simde_mm256_set_epi64x(INT64_C( 0), INT64_C( 1352195411881071619),
INT64_C( 0), INT64_C( 0)) },
{ UINT8_C(243),
simde_mm256_set_epi64x(INT64_C(-1554191220639548558), INT64_C(-1009828379214636119),
INT64_C( 87598411827204486), INT64_C( 8494576712865778531)),
simde_mm256_set_epi64x(INT64_C( 0), INT64_C( 0),
INT64_C( 87598411827204486), INT64_C( 8494576712865778531)) },
{ UINT8_C(102),
simde_mm256_set_epi64x(INT64_C(-3199853677394167840), INT64_C(-8026951806327199947),
INT64_C( 4533073424512347513), INT64_C( -348644671563309757)),
simde_mm256_set_epi64x(INT64_C( 0), INT64_C(-8026951806327199947),
INT64_C( 4533073424512347513), INT64_C( 0)) },
{ UINT8_C( 38),
simde_mm256_set_epi64x(INT64_C(-8077475266882793195), INT64_C(-1380937485015239307),
INT64_C(-3426685195142795196), INT64_C( 4855530362388048180)),
simde_mm256_set_epi64x(INT64_C( 0), INT64_C(-1380937485015239307),
INT64_C(-3426685195142795196), INT64_C( 0)) },
{ UINT8_C(232),
simde_mm256_set_epi64x(INT64_C(-4833519388014243665), INT64_C( 2573974298093740422),
INT64_C( 3628954985408843732), INT64_C(-4157981558961121913)),
simde_mm256_set_epi64x(INT64_C(-4833519388014243665), INT64_C( 0),
INT64_C( 0), INT64_C( 0)) },
{ UINT8_C(158),
simde_mm256_set_epi64x(INT64_C( 8860262502878217231), INT64_C(-7256652440967705311),
INT64_C( 8973660985157671450), INT64_C(-1395962117275720873)),
simde_mm256_set_epi64x(INT64_C( 8860262502878217231), INT64_C(-7256652440967705311),
INT64_C( 8973660985157671450), INT64_C( 0)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i r = simde_mm256_maskz_mov_epi64(test_vec[i].k, test_vec[i].a);
simde_assert_m256i_i64(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm256_maskz_mov_pd(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m256d a;
simde__m256d r;
} test_vec[8] = {
{ UINT8_C(156),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -797.63), SIMDE_FLOAT64_C( 550.96),
SIMDE_FLOAT64_C( 215.70), SIMDE_FLOAT64_C( -51.73)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -797.63), SIMDE_FLOAT64_C( 550.96),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C(232),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 603.95), SIMDE_FLOAT64_C( 89.69),
SIMDE_FLOAT64_C( 726.92), SIMDE_FLOAT64_C( 286.27)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 603.95), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C( 7),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -753.25), SIMDE_FLOAT64_C( 973.27),
SIMDE_FLOAT64_C( 154.94), SIMDE_FLOAT64_C( 621.42)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 973.27),
SIMDE_FLOAT64_C( 154.94), SIMDE_FLOAT64_C( 621.42)) },
{ UINT8_C( 98),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -339.86), SIMDE_FLOAT64_C( -506.40),
SIMDE_FLOAT64_C( 409.52), SIMDE_FLOAT64_C( 202.83)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 409.52), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C( 85),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 205.42), SIMDE_FLOAT64_C( -996.69),
SIMDE_FLOAT64_C( -560.92), SIMDE_FLOAT64_C( 347.34)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -996.69),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 347.34)) },
{ UINT8_C(149),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 226.47), SIMDE_FLOAT64_C( 459.36),
SIMDE_FLOAT64_C( 864.34), SIMDE_FLOAT64_C( -365.19)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 459.36),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -365.19)) },
{ UINT8_C( 67),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -158.13), SIMDE_FLOAT64_C( -903.74),
SIMDE_FLOAT64_C( 370.86), SIMDE_FLOAT64_C( -800.55)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 370.86), SIMDE_FLOAT64_C( -800.55)) },
{ UINT8_C(168),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -868.95), SIMDE_FLOAT64_C( 674.80),
SIMDE_FLOAT64_C( -866.19), SIMDE_FLOAT64_C( -917.43)),
simde_mm256_set_pd(SIMDE_FLOAT64_C( -868.95), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256d r = simde_mm256_maskz_mov_pd(test_vec[i].k, test_vec[i].a);
simde_assert_m256d_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm256_maskz_mov_ps(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m256 a;
simde__m256 r;
} test_vec[8] = {
{ UINT8_C(230),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -916.16), SIMDE_FLOAT32_C( -17.54),
SIMDE_FLOAT32_C( 72.07), SIMDE_FLOAT32_C( 358.38),
SIMDE_FLOAT32_C( -323.81), SIMDE_FLOAT32_C( -500.50),
SIMDE_FLOAT32_C( -957.58), SIMDE_FLOAT32_C( 95.32)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -916.16), SIMDE_FLOAT32_C( -17.54),
SIMDE_FLOAT32_C( 72.07), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -500.50),
SIMDE_FLOAT32_C( -957.58), SIMDE_FLOAT32_C( 0.00)) },
{ UINT8_C(248),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 820.20), SIMDE_FLOAT32_C( -882.62),
SIMDE_FLOAT32_C( 245.98), SIMDE_FLOAT32_C( 520.70),
SIMDE_FLOAT32_C( 947.17), SIMDE_FLOAT32_C( -801.95),
SIMDE_FLOAT32_C( 523.33), SIMDE_FLOAT32_C( 88.74)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 820.20), SIMDE_FLOAT32_C( -882.62),
SIMDE_FLOAT32_C( 245.98), SIMDE_FLOAT32_C( 520.70),
SIMDE_FLOAT32_C( 947.17), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ UINT8_C( 91),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 382.59), SIMDE_FLOAT32_C( -104.90),
SIMDE_FLOAT32_C( 437.21), SIMDE_FLOAT32_C( 669.80),
SIMDE_FLOAT32_C( 475.78), SIMDE_FLOAT32_C( 291.58),
SIMDE_FLOAT32_C( 932.63), SIMDE_FLOAT32_C( 75.72)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -104.90),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 669.80),
SIMDE_FLOAT32_C( 475.78), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 932.63), SIMDE_FLOAT32_C( 75.72)) },
{ UINT8_C( 28),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 325.29), SIMDE_FLOAT32_C( 66.25),
SIMDE_FLOAT32_C( 309.27), SIMDE_FLOAT32_C( 48.25),
SIMDE_FLOAT32_C( -685.79), SIMDE_FLOAT32_C( 793.84),
SIMDE_FLOAT32_C( -42.51), SIMDE_FLOAT32_C( -431.02)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 48.25),
SIMDE_FLOAT32_C( -685.79), SIMDE_FLOAT32_C( 793.84),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ UINT8_C( 95),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -193.68), SIMDE_FLOAT32_C( -614.23),
SIMDE_FLOAT32_C( 420.74), SIMDE_FLOAT32_C( 824.23),
SIMDE_FLOAT32_C( 818.32), SIMDE_FLOAT32_C( -457.30),
SIMDE_FLOAT32_C( -144.19), SIMDE_FLOAT32_C( 78.38)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -614.23),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 824.23),
SIMDE_FLOAT32_C( 818.32), SIMDE_FLOAT32_C( -457.30),
SIMDE_FLOAT32_C( -144.19), SIMDE_FLOAT32_C( 78.38)) },
{ UINT8_C(213),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -960.32), SIMDE_FLOAT32_C( -433.91),
SIMDE_FLOAT32_C( 640.12), SIMDE_FLOAT32_C( 816.31),
SIMDE_FLOAT32_C( -667.16), SIMDE_FLOAT32_C( -891.50),
SIMDE_FLOAT32_C( 639.25), SIMDE_FLOAT32_C( 310.94)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( -960.32), SIMDE_FLOAT32_C( -433.91),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 816.31),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -891.50),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 310.94)) },
{ UINT8_C(210),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 20.36), SIMDE_FLOAT32_C( -24.88),
SIMDE_FLOAT32_C( 118.89), SIMDE_FLOAT32_C( 166.69),
SIMDE_FLOAT32_C( 470.98), SIMDE_FLOAT32_C( -195.06),
SIMDE_FLOAT32_C( -643.26), SIMDE_FLOAT32_C( -611.78)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 20.36), SIMDE_FLOAT32_C( -24.88),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 166.69),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -643.26), SIMDE_FLOAT32_C( 0.00)) },
{ UINT8_C(247),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 3.65), SIMDE_FLOAT32_C( -38.51),
SIMDE_FLOAT32_C( -896.47), SIMDE_FLOAT32_C( 773.97),
SIMDE_FLOAT32_C( -241.05), SIMDE_FLOAT32_C( -597.57),
SIMDE_FLOAT32_C( 632.97), SIMDE_FLOAT32_C( -804.93)),
simde_mm256_set_ps(SIMDE_FLOAT32_C( 3.65), SIMDE_FLOAT32_C( -38.51),
SIMDE_FLOAT32_C( -896.47), SIMDE_FLOAT32_C( 773.97),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -597.57),
SIMDE_FLOAT32_C( 632.97), SIMDE_FLOAT32_C( -804.93)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256 r = simde_mm256_maskz_mov_ps(test_vec[i].k, test_vec[i].a);
simde_assert_m256_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm512_maskz_mov_epi8(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask64 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ UINT64_C( 5922492609958636327),
simde_mm512_set_epi8(INT8_C( -97), INT8_C( -47), INT8_C( -93), INT8_C( -97),
INT8_C( 9), INT8_C( -55), INT8_C(-113), INT8_C( 98),
INT8_C( -56), INT8_C( 10), INT8_C( 103), INT8_C( 84),
INT8_C( 93), INT8_C( 24), INT8_C( -78), INT8_C( 35),
INT8_C( 125), INT8_C( -63), INT8_C( 19), INT8_C( 4),
INT8_C( 3), INT8_C( -87), INT8_C( 98), INT8_C(-113),
INT8_C( 23), INT8_C(-124), INT8_C( -87), INT8_C( 63),
INT8_C( 108), INT8_C( -18), INT8_C( -27), INT8_C(-127),
INT8_C( -60), INT8_C( 60), INT8_C( -56), INT8_C( 3),
INT8_C(-128), INT8_C( -62), INT8_C( 52), INT8_C( -74),
INT8_C( -87), INT8_C( 32), INT8_C( 46), INT8_C(-128),
INT8_C( 54), INT8_C( -19), INT8_C( 12), INT8_C( 22),
INT8_C( -94), INT8_C( -84), INT8_C( -58), INT8_C( 92),
INT8_C( -70), INT8_C( -25), INT8_C( 91), INT8_C( -45),
INT8_C( 5), INT8_C( 109), INT8_C( -46), INT8_C( 37),
INT8_C( 7), INT8_C( 44), INT8_C( 41), INT8_C(-106)),
simde_mm512_set_epi8(INT8_C( 0), INT8_C( -47), INT8_C( 0), INT8_C( -97),
INT8_C( 0), INT8_C( 0), INT8_C(-113), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 103), INT8_C( 84),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 125), INT8_C( -63), INT8_C( 19), INT8_C( 0),
INT8_C( 3), INT8_C( 0), INT8_C( 98), INT8_C(-113),
INT8_C( 23), INT8_C( 0), INT8_C( -87), INT8_C( 0),
INT8_C( 0), INT8_C( -18), INT8_C( -27), INT8_C( 0),
INT8_C( 0), INT8_C( 60), INT8_C( -56), INT8_C( 0),
INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( -74),
INT8_C( 0), INT8_C( 32), INT8_C( 46), INT8_C(-128),
INT8_C( 0), INT8_C( -19), INT8_C( 0), INT8_C( 22),
INT8_C( -94), INT8_C( -84), INT8_C( -58), INT8_C( 0),
INT8_C( -70), INT8_C( 0), INT8_C( 91), INT8_C( -45),
INT8_C( 0), INT8_C( 0), INT8_C( -46), INT8_C( 0),
INT8_C( 0), INT8_C( 44), INT8_C( 41), INT8_C(-106)) },
{ UINT64_C( 8924247995799830534),
simde_mm512_set_epi8(INT8_C( 20), INT8_C( 23), INT8_C( 120), INT8_C( -13),
INT8_C( 82), INT8_C( 32), INT8_C( -44), INT8_C( -44),
INT8_C( 43), INT8_C( -65), INT8_C( 47), INT8_C( 36),
INT8_C(-101), INT8_C( 5), INT8_C( -76), INT8_C( -57),
INT8_C( 77), INT8_C( 48), INT8_C( -46), INT8_C( -15),
INT8_C( 78), INT8_C( 108), INT8_C( 114), INT8_C( 83),
INT8_C( -72), INT8_C( 21), INT8_C( 100), INT8_C( 121),
INT8_C( 29), INT8_C( -74), INT8_C( 81), INT8_C( -13),
INT8_C( -57), INT8_C( -17), INT8_C( 20), INT8_C(-109),
INT8_C( -87), INT8_C( 127), INT8_C( 92), INT8_C(-119),
INT8_C( 26), INT8_C( 123), INT8_C( -51), INT8_C( 109),
INT8_C( 30), INT8_C( -58), INT8_C(-117), INT8_C( 82),
INT8_C( 111), INT8_C( -10), INT8_C( -10), INT8_C( -68),
INT8_C( -4), INT8_C( -7), INT8_C( 117), INT8_C( 92),
INT8_C( 94), INT8_C( -65), INT8_C( 109), INT8_C( 81),
INT8_C( -71), INT8_C( -46), INT8_C( 113), INT8_C( 9)),
simde_mm512_set_epi8(INT8_C( 0), INT8_C( 23), INT8_C( 120), INT8_C( -13),
INT8_C( 82), INT8_C( 0), INT8_C( -44), INT8_C( -44),
INT8_C( 43), INT8_C( -65), INT8_C( 0), INT8_C( 36),
INT8_C(-101), INT8_C( 0), INT8_C( 0), INT8_C( -57),
INT8_C( 0), INT8_C( 48), INT8_C( 0), INT8_C( 0),
INT8_C( 78), INT8_C( 108), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 21), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -74), INT8_C( 0), INT8_C( 0),
INT8_C( -57), INT8_C( -17), INT8_C( 20), INT8_C(-109),
INT8_C( -87), INT8_C( 127), INT8_C( 0), INT8_C(-119),
INT8_C( 0), INT8_C( 0), INT8_C( -51), INT8_C( 0),
INT8_C( 0), INT8_C( -58), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -46), INT8_C( 113), INT8_C( 0)) },
{ UINT64_C( 9822575649644588350),
simde_mm512_set_epi8(INT8_C( 62), INT8_C( 34), INT8_C(-113), INT8_C( 121),
INT8_C( -31), INT8_C(-111), INT8_C( 76), INT8_C(-113),
INT8_C( 72), INT8_C( -37), INT8_C( 44), INT8_C( -67),
INT8_C(-103), INT8_C( 31), INT8_C( 89), INT8_C( 120),
INT8_C( -25), INT8_C(-127), INT8_C( 40), INT8_C( -10),
INT8_C( 75), INT8_C(-123), INT8_C( 78), INT8_C( -2),
INT8_C( -83), INT8_C( -74), INT8_C( -51), INT8_C( 46),
INT8_C( 60), INT8_C( -39), INT8_C( 124), INT8_C(-117),
INT8_C( 70), INT8_C( 66), INT8_C( -35), INT8_C( -51),
INT8_C( -64), INT8_C( -61), INT8_C(-113), INT8_C( 2),
INT8_C( -4), INT8_C( -72), INT8_C( 113), INT8_C( -63),
INT8_C( -49), INT8_C( 70), INT8_C( -50), INT8_C( 52),
INT8_C( 0), INT8_C( 13), INT8_C( 74), INT8_C( -60),
INT8_C( 103), INT8_C( -7), INT8_C( -61), INT8_C( -37),
INT8_C( -79), INT8_C( -77), INT8_C( -81), INT8_C( -83),
INT8_C( 94), INT8_C( 52), INT8_C( -73), INT8_C( 76)),
simde_mm512_set_epi8(INT8_C( 62), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( -31), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -37), INT8_C( 0), INT8_C( -67),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( -25), INT8_C(-127), INT8_C( 0), INT8_C( 0),
INT8_C( 75), INT8_C(-123), INT8_C( 0), INT8_C( 0),
INT8_C( -83), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 124), INT8_C( 0),
INT8_C( 70), INT8_C( 66), INT8_C( 0), INT8_C( -51),
INT8_C( -64), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -72), INT8_C( 113), INT8_C( -63),
INT8_C( 0), INT8_C( 70), INT8_C( -50), INT8_C( 52),
INT8_C( 0), INT8_C( 0), INT8_C( 74), INT8_C( 0),
INT8_C( 103), INT8_C( -7), INT8_C( 0), INT8_C( -37),
INT8_C( 0), INT8_C( 0), INT8_C( -81), INT8_C( -83),
INT8_C( 94), INT8_C( 52), INT8_C( -73), INT8_C( 0)) },
{ UINT64_C( 1775653069823307747),
simde_mm512_set_epi8(INT8_C( -85), INT8_C( 90), INT8_C( 97), INT8_C( -38),
INT8_C( -35), INT8_C( 6), INT8_C( 37), INT8_C( 106),
INT8_C( 102), INT8_C( 109), INT8_C( 47), INT8_C( 29),
INT8_C( -81), INT8_C(-113), INT8_C( -49), INT8_C( 18),
INT8_C( -68), INT8_C( 121), INT8_C(-102), INT8_C( -30),
INT8_C(-103), INT8_C( -31), INT8_C( 24), INT8_C( -55),
INT8_C( -5), INT8_C( 8), INT8_C( -38), INT8_C( 37),
INT8_C( 15), INT8_C(-120), INT8_C( 17), INT8_C( -63),
INT8_C( 107), INT8_C( -41), INT8_C( -53), INT8_C(-107),
INT8_C( 91), INT8_C( -9), INT8_C(-127), INT8_C( -39),
INT8_C( 105), INT8_C( -27), INT8_C( 96), INT8_C( -96),
INT8_C( 2), INT8_C( 44), INT8_C( 11), INT8_C( -43),
INT8_C( -52), INT8_C( 126), INT8_C( 125), INT8_C( 121),
INT8_C( 87), INT8_C( -95), INT8_C( 120), INT8_C( -46),
INT8_C( 25), INT8_C( 71), INT8_C( 117), INT8_C( 47),
INT8_C(-110), INT8_C( -87), INT8_C( -36), INT8_C( 25)),
simde_mm512_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -38),
INT8_C( -35), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 102), INT8_C( 0), INT8_C( 47), INT8_C( 0),
INT8_C( 0), INT8_C(-113), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 121), INT8_C(-102), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 24), INT8_C( -55),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 15), INT8_C(-120), INT8_C( 17), INT8_C( -63),
INT8_C( 0), INT8_C( 0), INT8_C( -53), INT8_C( 0),
INT8_C( 0), INT8_C( -9), INT8_C(-127), INT8_C( -39),
INT8_C( 0), INT8_C( 0), INT8_C( 96), INT8_C( 0),
INT8_C( 0), INT8_C( 44), INT8_C( 11), INT8_C( 0),
INT8_C( 0), INT8_C( 126), INT8_C( 125), INT8_C( 0),
INT8_C( 87), INT8_C( -95), INT8_C( 120), INT8_C( -46),
INT8_C( 25), INT8_C( 71), INT8_C( 117), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( -36), INT8_C( 25)) },
{ UINT64_C( 1039866445453672381),
simde_mm512_set_epi8(INT8_C( -73), INT8_C( -64), INT8_C( -86), INT8_C( -65),
INT8_C( 124), INT8_C(-109), INT8_C( 79), INT8_C(-111),
INT8_C( 64), INT8_C( -98), INT8_C( -1), INT8_C( -43),
INT8_C( -4), INT8_C( 72), INT8_C( 108), INT8_C( -95),
INT8_C( -23), INT8_C( -29), INT8_C(-113), INT8_C( 47),
INT8_C( 114), INT8_C(-122), INT8_C( -91), INT8_C( -20),
INT8_C( 117), INT8_C( 0), INT8_C( -58), INT8_C( -82),
INT8_C( -40), INT8_C( -36), INT8_C( -30), INT8_C( -56),
INT8_C( -68), INT8_C( -93), INT8_C( 25), INT8_C( -68),
INT8_C( 8), INT8_C( 64), INT8_C( -70), INT8_C( -19),
INT8_C( -64), INT8_C( -54), INT8_C( 120), INT8_C( 61),
INT8_C( -73), INT8_C( 47), INT8_C(-113), INT8_C( 68),
INT8_C( -44), INT8_C( -96), INT8_C(-106), INT8_C( -68),
INT8_C( 75), INT8_C( -42), INT8_C( 94), INT8_C( -68),
INT8_C( -10), INT8_C( 41), INT8_C( -90), INT8_C(-110),
INT8_C(-116), INT8_C( -51), INT8_C( -75), INT8_C( 102)),
simde_mm512_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 124), INT8_C(-109), INT8_C( 79), INT8_C( 0),
INT8_C( 0), INT8_C( -98), INT8_C( -1), INT8_C( 0),
INT8_C( -4), INT8_C( 72), INT8_C( 108), INT8_C( 0),
INT8_C( 0), INT8_C( -29), INT8_C( 0), INT8_C( 47),
INT8_C( 114), INT8_C( 0), INT8_C( 0), INT8_C( -20),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -36), INT8_C( 0), INT8_C( -56),
INT8_C( -68), INT8_C( -93), INT8_C( 0), INT8_C( 0),
INT8_C( 8), INT8_C( 64), INT8_C( -70), INT8_C( -19),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 61),
INT8_C( -73), INT8_C( 47), INT8_C( 0), INT8_C( 68),
INT8_C( 0), INT8_C( 0), INT8_C(-106), INT8_C( -68),
INT8_C( 75), INT8_C( -42), INT8_C( 94), INT8_C( -68),
INT8_C( -10), INT8_C( 0), INT8_C( -90), INT8_C(-110),
INT8_C(-116), INT8_C( -51), INT8_C( 0), INT8_C( 102)) },
{ UINT64_C(16454496682655599925),
simde_mm512_set_epi8(INT8_C( 41), INT8_C( -4), INT8_C( -19), INT8_C( 26),
INT8_C(-127), INT8_C( -41), INT8_C( 14), INT8_C( 10),
INT8_C( 63), INT8_C( 99), INT8_C( 51), INT8_C(-115),
INT8_C( 118), INT8_C( -85), INT8_C(-111), INT8_C( 19),
INT8_C( 43), INT8_C( -97), INT8_C( 107), INT8_C( 127),
INT8_C(-100), INT8_C( 45), INT8_C( -77), INT8_C( 77),
INT8_C( -53), INT8_C( -59), INT8_C( -6), INT8_C( -57),
INT8_C( 97), INT8_C( 68), INT8_C( -67), INT8_C( 117),
INT8_C( -92), INT8_C( -3), INT8_C( 2), INT8_C( 59),
INT8_C( 53), INT8_C( -13), INT8_C( -31), INT8_C( 47),
INT8_C( -33), INT8_C( 67), INT8_C( -43), INT8_C( -53),
INT8_C( -52), INT8_C( -3), INT8_C( 85), INT8_C( 48),
INT8_C( -45), INT8_C( -72), INT8_C( 96), INT8_C( 85),
INT8_C( 81), INT8_C( 28), INT8_C( -50), INT8_C(-107),
INT8_C( -56), INT8_C( -85), INT8_C( -83), INT8_C( -25),
INT8_C( 78), INT8_C( 13), INT8_C( 41), INT8_C( 86)),
simde_mm512_set_epi8(INT8_C( 41), INT8_C( -4), INT8_C( -19), INT8_C( 0),
INT8_C( 0), INT8_C( -41), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 99), INT8_C( 0), INT8_C(-115),
INT8_C( 118), INT8_C( 0), INT8_C(-111), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 127),
INT8_C(-100), INT8_C( 45), INT8_C( 0), INT8_C( 77),
INT8_C( -53), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 97), INT8_C( 68), INT8_C( 0), INT8_C( 117),
INT8_C( -92), INT8_C( 0), INT8_C( 0), INT8_C( 59),
INT8_C( 53), INT8_C( -13), INT8_C( -31), INT8_C( 47),
INT8_C( -33), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( -3), INT8_C( 85), INT8_C( 48),
INT8_C( -45), INT8_C( -72), INT8_C( 0), INT8_C( 0),
INT8_C( 81), INT8_C( 28), INT8_C( 0), INT8_C(-107),
INT8_C( 0), INT8_C( 0), INT8_C( -83), INT8_C( -25),
INT8_C( 0), INT8_C( 13), INT8_C( 0), INT8_C( 86)) },
{ UINT64_C( 6096298775549734718),
simde_mm512_set_epi8(INT8_C( -35), INT8_C( -29), INT8_C( 89), INT8_C( 91),
INT8_C( -53), INT8_C( -62), INT8_C( 107), INT8_C( -42),
INT8_C(-115), INT8_C( 52), INT8_C( -17), INT8_C( 64),
INT8_C(-105), INT8_C(-106), INT8_C( 65), INT8_C( 97),
INT8_C( 85), INT8_C( 52), INT8_C( -17), INT8_C( 6),
INT8_C( -73), INT8_C( 109), INT8_C( 99), INT8_C( 9),
INT8_C( 43), INT8_C(-102), INT8_C( 112), INT8_C( 24),
INT8_C(-121), INT8_C( 58), INT8_C( -73), INT8_C( -15),
INT8_C( 37), INT8_C( 104), INT8_C( -81), INT8_C( 113),
INT8_C( 31), INT8_C( -10), INT8_C( -32), INT8_C( -91),
INT8_C( 51), INT8_C( -51), INT8_C( 60), INT8_C( 38),
INT8_C( -1), INT8_C( -38), INT8_C( 2), INT8_C( 110),
INT8_C( -61), INT8_C( 91), INT8_C( -50), INT8_C( 89),
INT8_C( 27), INT8_C( -13), INT8_C( 111), INT8_C( -20),
INT8_C( 51), INT8_C( -66), INT8_C( -26), INT8_C( 66),
INT8_C( 45), INT8_C( -59), INT8_C( -45), INT8_C(-102)),
simde_mm512_set_epi8(INT8_C( 0), INT8_C( -29), INT8_C( 0), INT8_C( 91),
INT8_C( 0), INT8_C( -62), INT8_C( 0), INT8_C( 0),
INT8_C(-115), INT8_C( 0), INT8_C( 0), INT8_C( 64),
INT8_C(-105), INT8_C( 0), INT8_C( 65), INT8_C( 0),
INT8_C( 0), INT8_C( 52), INT8_C( -17), INT8_C( 0),
INT8_C( 0), INT8_C( 109), INT8_C( 99), INT8_C( 9),
INT8_C( 0), INT8_C(-102), INT8_C( 112), INT8_C( 0),
INT8_C(-121), INT8_C( 58), INT8_C( -73), INT8_C( -15),
INT8_C( 37), INT8_C( 104), INT8_C( 0), INT8_C( 113),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -91),
INT8_C( 0), INT8_C( -51), INT8_C( 0), INT8_C( 0),
INT8_C( -1), INT8_C( 0), INT8_C( 2), INT8_C( 0),
INT8_C( 0), INT8_C( 91), INT8_C( -50), INT8_C( 0),
INT8_C( 27), INT8_C( -13), INT8_C( 111), INT8_C( -20),
INT8_C( 0), INT8_C( 0), INT8_C( -26), INT8_C( 66),
INT8_C( 45), INT8_C( -59), INT8_C( -45), INT8_C( 0)) },
{ UINT64_C( 4696357732069093821),
simde_mm512_set_epi8(INT8_C( 40), INT8_C( -99), INT8_C( 6), INT8_C( 105),
INT8_C( 36), INT8_C( -85), INT8_C( 62), INT8_C( 102),
INT8_C( 23), INT8_C(-110), INT8_C( -92), INT8_C( 59),
INT8_C( 17), INT8_C( -54), INT8_C( 5), INT8_C( 81),
INT8_C( -71), INT8_C( 68), INT8_C( 114), INT8_C( -60),
INT8_C( 39), INT8_C( -49), INT8_C( -84), INT8_C( 114),
INT8_C( -81), INT8_C( 122), INT8_C( 97), INT8_C( -16),
INT8_C( 21), INT8_C( -76), INT8_C( -80), INT8_C( -61),
INT8_C( -47), INT8_C( -86), INT8_C( 35), INT8_C(-110),
INT8_C( 95), INT8_C( -9), INT8_C( 86), INT8_C( 9),
INT8_C( 31), INT8_C( 48), INT8_C( 63), INT8_C( -6),
INT8_C( -36), INT8_C( -47), INT8_C( 95), INT8_C( -20),
INT8_C( 21), INT8_C( -9), INT8_C( -2), INT8_C( 26),
INT8_C( 63), INT8_C( 36), INT8_C( -33), INT8_C( 58),
INT8_C( -40), INT8_C( 106), INT8_C( 2), INT8_C( -51),
INT8_C( -13), INT8_C( -76), INT8_C( -77), INT8_C( -77)),
simde_mm512_set_epi8(INT8_C( 0), INT8_C( -99), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 102),
INT8_C( 0), INT8_C( 0), INT8_C( -92), INT8_C( 0),
INT8_C( 17), INT8_C( -54), INT8_C( 0), INT8_C( 0),
INT8_C( -71), INT8_C( 68), INT8_C( 0), INT8_C( -60),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
INT8_C( 0), INT8_C( 122), INT8_C( 97), INT8_C( -16),
INT8_C( 21), INT8_C( 0), INT8_C( 0), INT8_C( -61),
INT8_C( -47), INT8_C( 0), INT8_C( 0), INT8_C(-110),
INT8_C( 0), INT8_C( -9), INT8_C( 86), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 63), INT8_C( 0),
INT8_C( 0), INT8_C( 0), INT8_C( 95), INT8_C( -20),
INT8_C( 0), INT8_C( 0), INT8_C( -2), INT8_C( 26),
INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 58),
INT8_C( -40), INT8_C( 0), INT8_C( 2), INT8_C( -51),
INT8_C( -13), INT8_C( -76), INT8_C( 0), INT8_C( -77)) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_maskz_mov_epi8(test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i8(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_maskz_mov_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask32 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ UINT32_C(4000530422),
simde_mm512_set_epi16(INT16_C( -5942), INT16_C( 25831), INT16_C(-28539), INT16_C( -1873),
INT16_C(-13655), INT16_C( 26989), INT16_C( 16263), INT16_C( 13938),
INT16_C( 10041), INT16_C( 23778), INT16_C(-21283), INT16_C( 18765),
INT16_C(-14856), INT16_C( 31462), INT16_C(-19403), INT16_C( 32735),
INT16_C( 7009), INT16_C( 10124), INT16_C(-25355), INT16_C(-21077),
INT16_C( 1261), INT16_C( -9315), INT16_C(-20637), INT16_C( 25513),
INT16_C( 5169), INT16_C( 28434), INT16_C(-28809), INT16_C( -8631),
INT16_C(-18627), INT16_C( 25166), INT16_C( -8628), INT16_C( 28868)),
simde_mm512_set_epi16(INT16_C( -5942), INT16_C( 25831), INT16_C(-28539), INT16_C( 0),
INT16_C(-13655), INT16_C( 26989), INT16_C( 16263), INT16_C( 0),
INT16_C( 0), INT16_C( 23778), INT16_C(-21283), INT16_C( 18765),
INT16_C( 0), INT16_C( 0), INT16_C(-19403), INT16_C( 32735),
INT16_C( 0), INT16_C( 0), INT16_C(-25355), INT16_C(-21077),
INT16_C( 1261), INT16_C( -9315), INT16_C(-20637), INT16_C( 25513),
INT16_C( 5169), INT16_C( 28434), INT16_C(-28809), INT16_C( -8631),
INT16_C( 0), INT16_C( 25166), INT16_C( -8628), INT16_C( 0)) },
{ UINT32_C(4070875154),
simde_mm512_set_epi16(INT16_C(-12225), INT16_C( 21369), INT16_C( -119), INT16_C(-28694),
INT16_C(-23457), INT16_C(-22727), INT16_C(-11767), INT16_C(-23853),
INT16_C(-22479), INT16_C( 23784), INT16_C( -5275), INT16_C(-13228),
INT16_C(-17789), INT16_C(-22944), INT16_C(-14595), INT16_C(-10966),
INT16_C( -2247), INT16_C(-10276), INT16_C( 27089), INT16_C(-12303),
INT16_C( 28587), INT16_C(-26891), INT16_C( 24467), INT16_C( 22569),
INT16_C( 14745), INT16_C(-19983), INT16_C( 19001), INT16_C( 25844),
INT16_C(-17171), INT16_C( -2706), INT16_C( -6907), INT16_C( 24391)),
simde_mm512_set_epi16(INT16_C(-12225), INT16_C( 21369), INT16_C( -119), INT16_C(-28694),
INT16_C( 0), INT16_C( 0), INT16_C(-11767), INT16_C( 0),
INT16_C(-22479), INT16_C( 0), INT16_C( -5275), INT16_C( 0),
INT16_C( 0), INT16_C(-22944), INT16_C( 0), INT16_C( 0),
INT16_C( -2247), INT16_C( 0), INT16_C( 27089), 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( 25844),
INT16_C( 0), INT16_C( 0), INT16_C( -6907), INT16_C( 0)) },
{ UINT32_C(3446806878),
simde_mm512_set_epi16(INT16_C( -8234), INT16_C( 29915), INT16_C(-15715), INT16_C( 6824),
INT16_C( 15576), INT16_C( 19574), INT16_C( 28649), INT16_C( 3361),
INT16_C(-14218), INT16_C( 3388), INT16_C( -7950), INT16_C( 14208),
INT16_C(-11822), INT16_C(-15586), INT16_C( 22828), INT16_C(-12231),
INT16_C( 1557), INT16_C( 15030), INT16_C(-21739), INT16_C( 9138),
INT16_C(-18261), INT16_C( 26404), INT16_C(-17358), INT16_C( 811),
INT16_C( -9806), INT16_C(-30299), INT16_C( 28809), INT16_C( 31831),
INT16_C(-23257), INT16_C( 4576), INT16_C( -7556), INT16_C( 7253)),
simde_mm512_set_epi16(INT16_C( -8234), INT16_C( 29915), INT16_C( 0), INT16_C( 0),
INT16_C( 15576), INT16_C( 19574), INT16_C( 0), INT16_C( 3361),
INT16_C( 0), INT16_C( 3388), INT16_C( -7950), INT16_C( 14208),
INT16_C( 0), INT16_C( 0), INT16_C( 22828), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 9138),
INT16_C(-18261), INT16_C( 0), INT16_C( 0), INT16_C( 811),
INT16_C( 0), INT16_C(-30299), INT16_C( 0), INT16_C( 31831),
INT16_C(-23257), INT16_C( 4576), INT16_C( -7556), INT16_C( 0)) },
{ UINT32_C( 343900451),
simde_mm512_set_epi16(INT16_C(-31095), INT16_C(-23377), INT16_C( -4662), INT16_C(-21413),
INT16_C( 30429), INT16_C( 8769), INT16_C(-28068), INT16_C( 27084),
INT16_C( 27030), INT16_C(-23477), INT16_C(-21313), INT16_C(-17124),
INT16_C(-18222), INT16_C( 32522), INT16_C( 29282), INT16_C( 28924),
INT16_C( 27441), INT16_C(-21554), INT16_C( -5444), INT16_C( 30253),
INT16_C(-29783), INT16_C(-26663), INT16_C(-11174), INT16_C(-25779),
INT16_C(-27773), INT16_C( 24626), INT16_C( -6955), INT16_C(-12302),
INT16_C( 26319), INT16_C(-26837), INT16_C(-16192), INT16_C( 18933)),
simde_mm512_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C(-21413),
INT16_C( 0), INT16_C( 8769), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C(-23477), INT16_C(-21313), INT16_C(-17124),
INT16_C(-18222), INT16_C( 32522), INT16_C( 29282), INT16_C( 28924),
INT16_C( 27441), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C(-25779),
INT16_C( 0), INT16_C( 0), INT16_C( -6955), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C(-16192), INT16_C( 18933)) },
{ UINT32_C( 610198307),
simde_mm512_set_epi16(INT16_C( 28784), INT16_C(-14670), INT16_C(-17599), INT16_C(-27901),
INT16_C( 10638), INT16_C(-12065), INT16_C( 21050), INT16_C( 10287),
INT16_C( 11470), INT16_C( -4598), INT16_C( -40), INT16_C( 28251),
INT16_C(-10212), INT16_C(-29606), INT16_C( -6193), INT16_C( 2935),
INT16_C(-16438), INT16_C( 971), INT16_C( 3225), INT16_C( 17346),
INT16_C( 28916), INT16_C( 25171), INT16_C( 10807), INT16_C( 1473),
INT16_C( 15813), INT16_C( 32427), INT16_C(-23468), INT16_C(-21533),
INT16_C( 13263), INT16_C(-22199), INT16_C( 13682), INT16_C( 226)),
simde_mm512_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C(-17599), INT16_C( 0),
INT16_C( 0), INT16_C(-12065), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( -4598), INT16_C( 0), INT16_C( 28251),
INT16_C(-10212), INT16_C(-29606), INT16_C( -6193), INT16_C( 0),
INT16_C(-16438), INT16_C( 971), INT16_C( 3225), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 10807), INT16_C( 1473),
INT16_C( 0), INT16_C( 0), INT16_C(-23468), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 13682), INT16_C( 226)) },
{ UINT32_C(1063632252),
simde_mm512_set_epi16(INT16_C( -3533), INT16_C(-15311), INT16_C( -9164), INT16_C(-27075),
INT16_C( 30377), INT16_C( 29218), INT16_C( -8851), INT16_C(-29072),
INT16_C( 28941), INT16_C( -5458), INT16_C( 29621), INT16_C( 18538),
INT16_C(-22601), INT16_C( 13017), INT16_C( 26323), INT16_C( 2952),
INT16_C(-17536), INT16_C( 11831), INT16_C( 27487), INT16_C( 29413),
INT16_C( 5506), INT16_C( -8406), INT16_C( 23534), INT16_C( 31484),
INT16_C( 17532), INT16_C( 11364), INT16_C( 26550), INT16_C(-26724),
INT16_C( 23828), INT16_C(-27226), INT16_C(-30955), INT16_C( 28791)),
simde_mm512_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C( -9164), INT16_C(-27075),
INT16_C( 30377), INT16_C( 29218), INT16_C( -8851), INT16_C(-29072),
INT16_C( 0), INT16_C( -5458), INT16_C( 29621), INT16_C( 0),
INT16_C( 0), INT16_C( 13017), INT16_C( 0), INT16_C( 2952),
INT16_C(-17536), INT16_C( 0), INT16_C( 27487), INT16_C( 29413),
INT16_C( 5506), INT16_C( -8406), INT16_C( 0), INT16_C( 31484),
INT16_C( 0), INT16_C( 11364), INT16_C( 26550), INT16_C(-26724),
INT16_C( 23828), INT16_C(-27226), INT16_C( 0), INT16_C( 0)) },
{ UINT32_C(2981066031),
simde_mm512_set_epi16(INT16_C(-15776), INT16_C( 14598), INT16_C( -3252), INT16_C( 10125),
INT16_C( 14481), INT16_C( 12166), INT16_C( 2171), INT16_C( 29452),
INT16_C(-31285), INT16_C( 18516), INT16_C( 27776), INT16_C( 10973),
INT16_C(-32618), INT16_C( -356), INT16_C( 12910), INT16_C( 2992),
INT16_C( -3498), INT16_C( -2944), INT16_C(-21668), INT16_C( 2835),
INT16_C(-13850), INT16_C(-21988), INT16_C( 9656), INT16_C( 32264),
INT16_C( 12816), INT16_C( 21193), INT16_C(-25247), INT16_C( -7370),
INT16_C( 5319), INT16_C( 5949), INT16_C( 9112), INT16_C( -1168)),
simde_mm512_set_epi16(INT16_C(-15776), INT16_C( 0), INT16_C( -3252), INT16_C( 10125),
INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 29452),
INT16_C(-31285), INT16_C( 0), INT16_C( 27776), INT16_C( 0),
INT16_C(-32618), INT16_C( -356), INT16_C( 12910), INT16_C( 2992),
INT16_C( 0), INT16_C( -2944), INT16_C(-21668), INT16_C( 2835),
INT16_C( 0), INT16_C(-21988), INT16_C( 0), INT16_C( 32264),
INT16_C( 0), INT16_C( 0), INT16_C(-25247), INT16_C( 0),
INT16_C( 5319), INT16_C( 5949), INT16_C( 9112), INT16_C( -1168)) },
{ UINT32_C( 623103106),
simde_mm512_set_epi16(INT16_C( 26221), INT16_C( 1202), INT16_C(-22573), INT16_C( 25677),
INT16_C( -9440), INT16_C( -3817), INT16_C(-15802), INT16_C( 26698),
INT16_C( 26873), INT16_C( 4596), INT16_C(-15991), INT16_C( 14118),
INT16_C( -7802), INT16_C( 10352), INT16_C( 27984), INT16_C( 1876),
INT16_C( 14808), INT16_C(-10243), INT16_C( 2806), INT16_C( 5765),
INT16_C(-26054), INT16_C( 23235), INT16_C(-10396), INT16_C(-11996),
INT16_C(-32195), INT16_C(-16209), INT16_C(-27816), INT16_C(-28484),
INT16_C(-29121), INT16_C( 7946), INT16_C( -1915), INT16_C( 9449)),
simde_mm512_set_epi16(INT16_C( 0), INT16_C( 0), INT16_C(-22573), INT16_C( 0),
INT16_C( 0), INT16_C( -3817), INT16_C( 0), INT16_C( 26698),
INT16_C( 0), INT16_C( 0), INT16_C(-15991), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( 27984), INT16_C( 1876),
INT16_C( 14808), INT16_C(-10243), INT16_C( 0), INT16_C( 0),
INT16_C(-26054), INT16_C( 23235), INT16_C( 0), INT16_C( 0),
INT16_C(-32195), INT16_C( 0), INT16_C( 0), INT16_C( 0),
INT16_C( 0), INT16_C( 0), INT16_C( -1915), INT16_C( 0)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_maskz_mov_epi16(test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i16(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_maskz_mov_epi32(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask16 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ UINT16_C(23562),
simde_mm512_set_epi32(INT32_C( 413218138), INT32_C(-2056039012), INT32_C( 359898417), INT32_C( 503742711),
INT32_C( -964140572), INT32_C( 1845540628), INT32_C( 1555270769), INT32_C( 276306907),
INT32_C( 923961977), INT32_C( 2070870327), INT32_C( -106769082), INT32_C( 21505510),
INT32_C(-1894191102), INT32_C( -61868066), INT32_C(-1022555483), INT32_C( 842262872)),
simde_mm512_set_epi32(INT32_C( 0), INT32_C(-2056039012), INT32_C( 0), INT32_C( 503742711),
INT32_C( -964140572), INT32_C( 1845540628), INT32_C( 0), INT32_C( 0),
INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0),
INT32_C(-1894191102), INT32_C( 0), INT32_C(-1022555483), INT32_C( 0)) },
{ UINT16_C(36203),
simde_mm512_set_epi32(INT32_C(-1836353351), INT32_C(-1955161161), INT32_C( 1387065895), INT32_C( 829477081),
INT32_C( 1194773762), INT32_C( 1305535140), INT32_C( 692999175), INT32_C(-1162293370),
INT32_C( 1281198604), INT32_C( -270591140), INT32_C( 23870431), INT32_C(-1469107120),
INT32_C( 1859513610), INT32_C(-1425966851), INT32_C( 381161214), INT32_C( 706499700)),
simde_mm512_set_epi32(INT32_C(-1836353351), INT32_C( 0), INT32_C( 0), INT32_C( 0),
INT32_C( 1194773762), INT32_C( 1305535140), INT32_C( 0), INT32_C(-1162293370),
INT32_C( 0), INT32_C( -270591140), INT32_C( 23870431), INT32_C( 0),
INT32_C( 1859513610), INT32_C( 0), INT32_C( 381161214), INT32_C( 706499700)) },
{ UINT16_C(61846),
simde_mm512_set_epi32(INT32_C(-1731705333), INT32_C( 1975072423), INT32_C( -536413935), INT32_C( 1477835290),
INT32_C( 1453154713), INT32_C( -133697355), INT32_C( 1038848393), INT32_C( 897042603),
INT32_C( 1474696001), INT32_C( 1692444627), INT32_C(-1157569404), INT32_C(-1969459150),
INT32_C( 120064093), INT32_C(-1121934893), INT32_C( 1895180026), INT32_C( 1628067999)),
simde_mm512_set_epi32(INT32_C(-1731705333), INT32_C( 1975072423), INT32_C( -536413935), INT32_C( 1477835290),
INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 897042603),
INT32_C( 1474696001), INT32_C( 0), INT32_C( 0), INT32_C(-1969459150),
INT32_C( 0), INT32_C(-1121934893), INT32_C( 1895180026), INT32_C( 0)) },
{ UINT16_C( 9005),
simde_mm512_set_epi32(INT32_C( 317112464), INT32_C( 741023218), INT32_C(-1717304973), INT32_C( 1768422162),
INT32_C(-1938535542), INT32_C( -593182598), INT32_C( -560734377), INT32_C(-1833964883),
INT32_C(-2069017846), INT32_C( 1509337971), INT32_C(-1663080670), INT32_C( -363349477),
INT32_C( -761414190), INT32_C( 1575734613), INT32_C( 758160476), INT32_C( 434110055)),
simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C(-1717304973), INT32_C( 0),
INT32_C( 0), INT32_C( 0), INT32_C( -560734377), INT32_C(-1833964883),
INT32_C( 0), INT32_C( 0), INT32_C(-1663080670), INT32_C( 0),
INT32_C( -761414190), INT32_C( 1575734613), INT32_C( 0), INT32_C( 434110055)) },
{ UINT16_C(16381),
simde_mm512_set_epi32(INT32_C(-1241873035), INT32_C(-1720080742), INT32_C( 1575508697), INT32_C( 644418481),
INT32_C( -191348066), INT32_C( 1363259829), INT32_C( -969945370), INT32_C(-1662256156),
INT32_C( -483657475), INT32_C( 1693775573), INT32_C( -588936550), INT32_C( -831491481),
INT32_C(-1533494499), INT32_C( 690127328), INT32_C( 1408818770), INT32_C( 1154640340)),
simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 1575508697), INT32_C( 644418481),
INT32_C( -191348066), INT32_C( 1363259829), INT32_C( -969945370), INT32_C(-1662256156),
INT32_C( -483657475), INT32_C( 1693775573), INT32_C( -588936550), INT32_C( -831491481),
INT32_C(-1533494499), INT32_C( 690127328), INT32_C( 0), INT32_C( 1154640340)) },
{ UINT16_C(37447),
simde_mm512_set_epi32(INT32_C(-2077483324), INT32_C( -857673646), INT32_C( 754202712), INT32_C( 120435698),
INT32_C(-1765652094), INT32_C( -229167588), INT32_C(-1388415734), INT32_C( -902383521),
INT32_C(-1071136130), INT32_C( 575343777), INT32_C( 2007077268), INT32_C( -686416210),
INT32_C( -979195146), INT32_C( -793664277), INT32_C( 1970531286), INT32_C( -266532300)),
simde_mm512_set_epi32(INT32_C(-2077483324), INT32_C( 0), INT32_C( 0), INT32_C( 120435698),
INT32_C( 0), INT32_C( 0), INT32_C(-1388415734), INT32_C( 0),
INT32_C( 0), INT32_C( 575343777), INT32_C( 0), INT32_C( 0),
INT32_C( 0), INT32_C( -793664277), INT32_C( 1970531286), INT32_C( -266532300)) },
{ UINT16_C(31625),
simde_mm512_set_epi32(INT32_C(-1558092593), INT32_C( 725220263), INT32_C( 2072028486), INT32_C(-1343089166),
INT32_C( 151067474), INT32_C( 1411237194), INT32_C(-1069461255), INT32_C( 79796340),
INT32_C( -81868792), INT32_C( -238630197), INT32_C(-1945013502), INT32_C( -908401887),
INT32_C( 1836974186), INT32_C(-1548825981), INT32_C( 1873806111), INT32_C(-2038561806)),
simde_mm512_set_epi32(INT32_C( 0), INT32_C( 725220263), INT32_C( 2072028486), INT32_C(-1343089166),
INT32_C( 151067474), INT32_C( 0), INT32_C(-1069461255), INT32_C( 79796340),
INT32_C( -81868792), INT32_C( 0), INT32_C( 0), INT32_C( 0),
INT32_C( 1836974186), INT32_C( 0), INT32_C( 0), INT32_C(-2038561806)) },
{ UINT16_C(29945),
simde_mm512_set_epi32(INT32_C( 1874437031), INT32_C( 1791346696), INT32_C( 1351362877), INT32_C( 1434624201),
INT32_C( 1114612735), INT32_C(-2006574951), INT32_C( 1470768291), INT32_C( 1700301025),
INT32_C( 677818674), INT32_C( -624147248), INT32_C( 795562156), INT32_C(-1625864242),
INT32_C( -323693444), INT32_C( 242932397), INT32_C( 1315868789), INT32_C(-1134215759)),
simde_mm512_set_epi32(INT32_C( 0), INT32_C( 1791346696), INT32_C( 1351362877), INT32_C( 1434624201),
INT32_C( 0), INT32_C(-2006574951), INT32_C( 0), INT32_C( 0),
INT32_C( 677818674), INT32_C( -624147248), INT32_C( 795562156), INT32_C(-1625864242),
INT32_C( -323693444), INT32_C( 0), INT32_C( 0), INT32_C(-1134215759)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_maskz_mov_epi32(test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i32(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_maskz_mov_epi64(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m512i a;
simde__m512i r;
} test_vec[8] = {
{ UINT8_C(248),
simde_mm512_set_epi64(INT64_C( 2197185227781835820), INT64_C( 15935016481556146),
INT64_C(-7676897351944758395), INT64_C( -396609189869225788),
INT64_C( 2033032872247713203), INT64_C( 196856286260699291),
INT64_C(-5445071775966286746), INT64_C( 4145146436042188996)),
simde_mm512_set_epi64(INT64_C( 2197185227781835820), INT64_C( 15935016481556146),
INT64_C(-7676897351944758395), INT64_C( -396609189869225788),
INT64_C( 2033032872247713203), INT64_C( 0),
INT64_C( 0), INT64_C( 0)) },
{ UINT8_C( 50),
simde_mm512_set_epi64(INT64_C(-5159763787063667600), INT64_C( -806315631695634460),
INT64_C( 8295852346035342936), INT64_C(-3045923053405968902),
INT64_C( 8238548627246121972), INT64_C( 6711306137119169451),
INT64_C( 8909631005256860390), INT64_C(-3863575863957815519)),
simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0),
INT64_C( 8295852346035342936), INT64_C(-3045923053405968902),
INT64_C( 0), INT64_C( 0),
INT64_C( 8909631005256860390), INT64_C( 0)) },
{ UINT8_C(205),
simde_mm512_set_epi64(INT64_C( -364876834429138531), INT64_C(-8701118401174655403),
INT64_C(-4225146583063624142), INT64_C( 1748175868453859972),
INT64_C(-2146322958238101234), INT64_C( 5260281165058225920),
INT64_C( 6150323032540537551), INT64_C( 7787131310828538951)),
simde_mm512_set_epi64(INT64_C( -364876834429138531), INT64_C(-8701118401174655403),
INT64_C( 0), INT64_C( 0),
INT64_C(-2146322958238101234), INT64_C( 5260281165058225920),
INT64_C( 0), INT64_C( 7787131310828538951)) },
{ UINT8_C( 37),
simde_mm512_set_epi64(INT64_C( 5789616018161199708), INT64_C( -189925922123546982),
INT64_C(-5486743783379366456), INT64_C( 576479268129213490),
INT64_C( 6799755442903924910), INT64_C( 8415809909668152758),
INT64_C(-5111257061290341882), INT64_C( -197393302827860380)),
simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0),
INT64_C(-5486743783379366456), INT64_C( 0),
INT64_C( 0), INT64_C( 8415809909668152758),
INT64_C( 0), INT64_C( -197393302827860380)) },
{ UINT8_C( 88),
simde_mm512_set_epi64(INT64_C(-1554832219963971622), INT64_C(-7375448098764531208),
INT64_C( 8161779997769921522), INT64_C( -561105360908971667),
INT64_C(-3236710360814756666), INT64_C( 5084844885557932166),
INT64_C(-5492461044876086653), INT64_C(-7792360489043648145)),
simde_mm512_set_epi64(INT64_C( 0), INT64_C(-7375448098764531208),
INT64_C( 0), INT64_C( -561105360908971667),
INT64_C(-3236710360814756666), INT64_C( 0),
INT64_C( 0), INT64_C( 0)) },
{ UINT8_C( 37),
simde_mm512_set_epi64(INT64_C( 6519579675176262812), INT64_C(-7940748567058253670),
INT64_C( 6289445638826848684), INT64_C( 1300334437315413424),
INT64_C(-2416059830887765317), INT64_C(-5031784341515283026),
INT64_C( 8433369475758597766), INT64_C( 5881534320792150012)),
simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0),
INT64_C( 6289445638826848684), INT64_C( 0),
INT64_C( 0), INT64_C(-5031784341515283026),
INT64_C( 0), INT64_C( 5881534320792150012)) },
{ UINT8_C( 16),
simde_mm512_set_epi64(INT64_C(-5091799924273173479), INT64_C( 326582266571623592),
INT64_C(-3763964521506166714), INT64_C( 4584033432636860229),
INT64_C(-1921935435734596553), INT64_C( 3382451871995350760),
INT64_C( 531323325001255908), INT64_C(-5053470530677804405)),
simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0),
INT64_C( 0), INT64_C( 4584033432636860229),
INT64_C( 0), INT64_C( 0),
INT64_C( 0), INT64_C( 0)) },
{ UINT8_C( 33),
simde_mm512_set_epi64(INT64_C(-6532064902097701697), INT64_C(-2430912179372724686),
INT64_C( 3177343060104491288), INT64_C(-7094318047719451166),
INT64_C(-3484792886859817284), INT64_C( -117759466073012358),
INT64_C( 8855057132598654557), INT64_C( -457984409854209760)),
simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0),
INT64_C( 3177343060104491288), INT64_C( 0),
INT64_C( 0), INT64_C( 0),
INT64_C( 0), INT64_C( -457984409854209760)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512i r = simde_mm512_maskz_mov_epi64(test_vec[i].k, test_vec[i].a);
simde_assert_m512i_i64(r, ==, test_vec[i].r);
}
return 0;
}
static int
test_simde_mm512_maskz_mov_pd(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask8 k;
simde__m512d a;
simde__m512d r;
} test_vec[8] = {
{ UINT8_C(198),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -717.73), SIMDE_FLOAT64_C( -238.83),
SIMDE_FLOAT64_C( -181.88), SIMDE_FLOAT64_C( -183.39),
SIMDE_FLOAT64_C( 840.23), SIMDE_FLOAT64_C( 345.87),
SIMDE_FLOAT64_C( 630.37), SIMDE_FLOAT64_C( 306.75)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -717.73), SIMDE_FLOAT64_C( -238.83),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 345.87),
SIMDE_FLOAT64_C( 630.37), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C(246),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -518.56), SIMDE_FLOAT64_C( -830.99),
SIMDE_FLOAT64_C( 129.34), SIMDE_FLOAT64_C( 771.89),
SIMDE_FLOAT64_C( -815.64), SIMDE_FLOAT64_C( -128.60),
SIMDE_FLOAT64_C( -244.79), SIMDE_FLOAT64_C( -568.94)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -518.56), SIMDE_FLOAT64_C( -830.99),
SIMDE_FLOAT64_C( 129.34), SIMDE_FLOAT64_C( 771.89),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -128.60),
SIMDE_FLOAT64_C( -244.79), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C(141),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 637.67), SIMDE_FLOAT64_C( 322.55),
SIMDE_FLOAT64_C( 578.22), SIMDE_FLOAT64_C( -961.29),
SIMDE_FLOAT64_C( 737.15), SIMDE_FLOAT64_C( 475.09),
SIMDE_FLOAT64_C( 178.14), SIMDE_FLOAT64_C( -60.04)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 637.67), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 737.15), SIMDE_FLOAT64_C( 475.09),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -60.04)) },
{ UINT8_C(231),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 304.19), SIMDE_FLOAT64_C( 154.72),
SIMDE_FLOAT64_C( 74.11), SIMDE_FLOAT64_C( -64.46),
SIMDE_FLOAT64_C( 202.28), SIMDE_FLOAT64_C( -444.38),
SIMDE_FLOAT64_C( 774.34), SIMDE_FLOAT64_C( 215.79)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 304.19), SIMDE_FLOAT64_C( 154.72),
SIMDE_FLOAT64_C( 74.11), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -444.38),
SIMDE_FLOAT64_C( 774.34), SIMDE_FLOAT64_C( 215.79)) },
{ UINT8_C( 62),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -983.34), SIMDE_FLOAT64_C( 259.69),
SIMDE_FLOAT64_C( 303.29), SIMDE_FLOAT64_C( -160.70),
SIMDE_FLOAT64_C( -787.06), SIMDE_FLOAT64_C( 198.77),
SIMDE_FLOAT64_C( -144.49), SIMDE_FLOAT64_C( 944.24)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 303.29), SIMDE_FLOAT64_C( -160.70),
SIMDE_FLOAT64_C( -787.06), SIMDE_FLOAT64_C( 198.77),
SIMDE_FLOAT64_C( -144.49), SIMDE_FLOAT64_C( 0.00)) },
{ UINT8_C(229),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -172.38), SIMDE_FLOAT64_C( 210.60),
SIMDE_FLOAT64_C( 840.69), SIMDE_FLOAT64_C( 875.33),
SIMDE_FLOAT64_C( 702.20), SIMDE_FLOAT64_C( -408.83),
SIMDE_FLOAT64_C( 172.51), SIMDE_FLOAT64_C( 896.66)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -172.38), SIMDE_FLOAT64_C( 210.60),
SIMDE_FLOAT64_C( 840.69), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -408.83),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 896.66)) },
{ UINT8_C( 93),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -853.39), SIMDE_FLOAT64_C( 281.51),
SIMDE_FLOAT64_C( -719.72), SIMDE_FLOAT64_C( 342.79),
SIMDE_FLOAT64_C( -679.92), SIMDE_FLOAT64_C( -623.46),
SIMDE_FLOAT64_C( 756.10), SIMDE_FLOAT64_C( -762.35)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 281.51),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 342.79),
SIMDE_FLOAT64_C( -679.92), SIMDE_FLOAT64_C( -623.46),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -762.35)) },
{ UINT8_C(156),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -853.45), SIMDE_FLOAT64_C( 527.42),
SIMDE_FLOAT64_C( -111.28), SIMDE_FLOAT64_C( 996.35),
SIMDE_FLOAT64_C( 374.30), SIMDE_FLOAT64_C( 314.59),
SIMDE_FLOAT64_C( -739.54), SIMDE_FLOAT64_C( 477.55)),
simde_mm512_set_pd(SIMDE_FLOAT64_C( -853.45), SIMDE_FLOAT64_C( 0.00),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 996.35),
SIMDE_FLOAT64_C( 374.30), SIMDE_FLOAT64_C( 314.59),
SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m512d r = simde_mm512_maskz_mov_pd(test_vec[i].k, test_vec[i].a);
simde_assert_m512d_close(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_mm512_maskz_mov_ps(SIMDE_MUNIT_TEST_ARGS) {
const struct {
simde__mmask16 k;
simde__m512 a;
simde__m512 r;
} test_vec[8] = {
{ UINT16_C(42363),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 27.87), SIMDE_FLOAT32_C( -816.11), SIMDE_FLOAT32_C( 100.70), SIMDE_FLOAT32_C( -687.21),
SIMDE_FLOAT32_C( 641.77), SIMDE_FLOAT32_C( 431.46), SIMDE_FLOAT32_C( -432.41), SIMDE_FLOAT32_C( 128.97),
SIMDE_FLOAT32_C( 877.42), SIMDE_FLOAT32_C( 723.11), SIMDE_FLOAT32_C( 773.77), SIMDE_FLOAT32_C( 562.67),
SIMDE_FLOAT32_C( -364.27), SIMDE_FLOAT32_C( 912.16), SIMDE_FLOAT32_C( -872.01), SIMDE_FLOAT32_C( -172.46)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 27.87), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 100.70), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 431.46), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 128.97),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 723.11), SIMDE_FLOAT32_C( 773.77), SIMDE_FLOAT32_C( 562.67),
SIMDE_FLOAT32_C( -364.27), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -872.01), SIMDE_FLOAT32_C( -172.46)) },
{ UINT16_C(38549),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 618.21), SIMDE_FLOAT32_C( 498.90), SIMDE_FLOAT32_C( -849.91), SIMDE_FLOAT32_C( -52.66),
SIMDE_FLOAT32_C( 545.34), SIMDE_FLOAT32_C( 794.02), SIMDE_FLOAT32_C( -461.31), SIMDE_FLOAT32_C( 114.20),
SIMDE_FLOAT32_C( 86.28), SIMDE_FLOAT32_C( -885.12), SIMDE_FLOAT32_C( 172.95), SIMDE_FLOAT32_C( 554.47),
SIMDE_FLOAT32_C( -747.12), SIMDE_FLOAT32_C( -745.25), SIMDE_FLOAT32_C( -281.94), SIMDE_FLOAT32_C( 206.58)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 618.21), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -52.66),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 794.02), SIMDE_FLOAT32_C( -461.31), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 86.28), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 554.47),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -745.25), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 206.58)) },
{ UINT16_C(52704),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 502.41), SIMDE_FLOAT32_C( 880.11), SIMDE_FLOAT32_C( -557.95), SIMDE_FLOAT32_C( -268.94),
SIMDE_FLOAT32_C( 733.29), SIMDE_FLOAT32_C( 706.04), SIMDE_FLOAT32_C( -93.63), SIMDE_FLOAT32_C( -582.14),
SIMDE_FLOAT32_C( -836.38), SIMDE_FLOAT32_C( 744.38), SIMDE_FLOAT32_C( -45.29), SIMDE_FLOAT32_C( -703.39),
SIMDE_FLOAT32_C( -540.13), SIMDE_FLOAT32_C( 467.24), SIMDE_FLOAT32_C( -527.36), SIMDE_FLOAT32_C( 198.48)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 502.41), SIMDE_FLOAT32_C( 880.11), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 733.29), SIMDE_FLOAT32_C( 706.04), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -582.14),
SIMDE_FLOAT32_C( -836.38), SIMDE_FLOAT32_C( 744.38), SIMDE_FLOAT32_C( -45.29), 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)) },
{ UINT16_C(22254),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -71.03), SIMDE_FLOAT32_C( 476.98), SIMDE_FLOAT32_C( 846.87), SIMDE_FLOAT32_C( 538.39),
SIMDE_FLOAT32_C( 819.31), SIMDE_FLOAT32_C( -703.74), SIMDE_FLOAT32_C( 35.79), SIMDE_FLOAT32_C( -913.43),
SIMDE_FLOAT32_C( 774.49), SIMDE_FLOAT32_C( -248.35), SIMDE_FLOAT32_C( -966.82), SIMDE_FLOAT32_C( -517.72),
SIMDE_FLOAT32_C( -427.16), SIMDE_FLOAT32_C( -808.81), SIMDE_FLOAT32_C( 888.05), SIMDE_FLOAT32_C( -556.04)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 476.98), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 538.39),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -703.74), SIMDE_FLOAT32_C( 35.79), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 774.49), SIMDE_FLOAT32_C( -248.35), SIMDE_FLOAT32_C( -966.82), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -427.16), SIMDE_FLOAT32_C( -808.81), SIMDE_FLOAT32_C( 888.05), SIMDE_FLOAT32_C( 0.00)) },
{ UINT16_C(52364),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 995.54), SIMDE_FLOAT32_C( 221.44), SIMDE_FLOAT32_C( 899.46), SIMDE_FLOAT32_C( 449.06),
SIMDE_FLOAT32_C( -950.30), SIMDE_FLOAT32_C( -151.76), SIMDE_FLOAT32_C( -841.60), SIMDE_FLOAT32_C( 17.37),
SIMDE_FLOAT32_C( -167.30), SIMDE_FLOAT32_C( -256.21), SIMDE_FLOAT32_C( -735.57), SIMDE_FLOAT32_C( -164.68),
SIMDE_FLOAT32_C( 752.38), SIMDE_FLOAT32_C( 507.77), SIMDE_FLOAT32_C( -277.52), SIMDE_FLOAT32_C( 4.35)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 995.54), SIMDE_FLOAT32_C( 221.44), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -950.30), SIMDE_FLOAT32_C( -151.76), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -167.30), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 752.38), SIMDE_FLOAT32_C( 507.77), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) },
{ UINT16_C( 1779),
simde_mm512_set_ps(SIMDE_FLOAT32_C( -523.28), SIMDE_FLOAT32_C( -985.42), SIMDE_FLOAT32_C( 56.90), SIMDE_FLOAT32_C( 872.34),
SIMDE_FLOAT32_C( -127.19), SIMDE_FLOAT32_C( 894.80), SIMDE_FLOAT32_C( 377.19), SIMDE_FLOAT32_C( -135.98),
SIMDE_FLOAT32_C( 185.79), SIMDE_FLOAT32_C( 425.67), SIMDE_FLOAT32_C( -947.39), SIMDE_FLOAT32_C( -417.93),
SIMDE_FLOAT32_C( 872.23), SIMDE_FLOAT32_C( 491.12), SIMDE_FLOAT32_C( 994.51), SIMDE_FLOAT32_C( 86.62)),
simde_mm512_set_ps(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( 894.80), SIMDE_FLOAT32_C( 377.19), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 185.79), SIMDE_FLOAT32_C( 425.67), SIMDE_FLOAT32_C( -947.39), SIMDE_FLOAT32_C( -417.93),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 994.51), SIMDE_FLOAT32_C( 86.62)) },
{ UINT16_C(13470),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 900.57), SIMDE_FLOAT32_C( 485.77), SIMDE_FLOAT32_C( 272.94), SIMDE_FLOAT32_C( -275.02),
SIMDE_FLOAT32_C( -912.01), SIMDE_FLOAT32_C( -611.34), SIMDE_FLOAT32_C( 325.35), SIMDE_FLOAT32_C( -148.93),
SIMDE_FLOAT32_C( -884.16), SIMDE_FLOAT32_C( 545.87), SIMDE_FLOAT32_C( -690.64), SIMDE_FLOAT32_C( 883.50),
SIMDE_FLOAT32_C( -329.16), SIMDE_FLOAT32_C( -369.50), SIMDE_FLOAT32_C( 429.82), SIMDE_FLOAT32_C( 530.37)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 272.94), SIMDE_FLOAT32_C( -275.02),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -611.34), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -884.16), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 883.50),
SIMDE_FLOAT32_C( -329.16), SIMDE_FLOAT32_C( -369.50), SIMDE_FLOAT32_C( 429.82), SIMDE_FLOAT32_C( 0.00)) },
{ UINT16_C(25684),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 446.23), SIMDE_FLOAT32_C( -618.66), SIMDE_FLOAT32_C( -992.21), SIMDE_FLOAT32_C( -692.36),
SIMDE_FLOAT32_C( -952.61), SIMDE_FLOAT32_C( 923.35), SIMDE_FLOAT32_C( -322.87), SIMDE_FLOAT32_C( 288.88),
SIMDE_FLOAT32_C( 653.23), SIMDE_FLOAT32_C( -162.04), SIMDE_FLOAT32_C( 847.98), SIMDE_FLOAT32_C( -826.91),
SIMDE_FLOAT32_C( -738.77), SIMDE_FLOAT32_C( 279.48), SIMDE_FLOAT32_C( 397.18), SIMDE_FLOAT32_C( 127.10)),
simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -618.66), SIMDE_FLOAT32_C( -992.21), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 923.35), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -162.04), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -826.91),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 279.48), 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_mov_ps(test_vec[i].k, test_vec[i].a);
simde_assert_m512_close(r, test_vec[i].r, 1);
}
return 0;
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_mov_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_mov_epi16)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_mov_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_mov_epi64)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_mov_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_mov_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_mov_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_mov_epi16)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_mov_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_mov_epi64)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_mov_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_mov_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mov_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mov_epi16)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mov_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mov_epi64)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mov_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_mov_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_mov_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_mov_epi16)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_mov_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_mov_epi64)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_mov_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_mov_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_mov_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_mov_epi16)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_mov_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_mov_epi64)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_mov_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_mov_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mov_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mov_epi16)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mov_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mov_epi64)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mov_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_mov_ps)
SIMDE_TEST_FUNC_LIST_END
#include <test/x86/avx512/test-avx512-footer.h>