/* SPDX-License-Identifier: MIT * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Copyright: * 2020 Evan Nemerson * 2020 Himanshi Mathur */ #define SIMDE_TEST_X86_AVX512_INSN adds #include #include #include static int test_simde_mm_mask_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int8_t src[16]; const simde__mmask16 k; const int8_t a[16]; const int8_t b[16]; const int8_t r[16]; } test_vec[] = { { { -INT8_C( 31), -INT8_C( 5), INT8_C( 46), INT8_C( 1), INT8_C( 19), -INT8_C( 53), INT8_C( 28), INT8_C( 66), -INT8_C( 30), INT8_C( 100), INT8_C( 35), -INT8_C( 33), INT8_C( 39), -INT8_C( 73), INT8_C( 19), INT8_C( 92) }, UINT16_C( 2426), { -INT8_C( 95), INT8_C( 26), -INT8_C( 72), INT8_C( 19), INT8_C( 14), INT8_C( 102), INT8_C( 82), -INT8_C( 2), -INT8_C( 59), -INT8_C( 10), INT8_C( 113), INT8_C( 15), INT8_C( 27), INT8_C( 69), -INT8_C( 110), INT8_C( 115) }, { INT8_C( 15), INT8_C( 75), INT8_C( 123), -INT8_C( 127), -INT8_C( 110), INT8_C( 47), INT8_C( 62), -INT8_C( 126), INT8_C( 41), INT8_C( 26), INT8_C( 55), INT8_C( 3), -INT8_C( 110), -INT8_C( 34), -INT8_C( 49), -INT8_C( 55) }, { -INT8_C( 31), INT8_C( 101), INT8_C( 46), -INT8_C( 108), -INT8_C( 96), INT8_MAX, INT8_MAX, INT8_C( 66), -INT8_C( 18), INT8_C( 100), INT8_C( 35), INT8_C( 18), INT8_C( 39), -INT8_C( 73), INT8_C( 19), INT8_C( 92) } }, { { INT8_C( 118), INT8_C( 85), INT8_C( 76), -INT8_C( 47), -INT8_C( 19), INT8_C( 81), INT8_C( 94), INT8_C( 77), INT8_C( 47), -INT8_C( 123), -INT8_C( 116), -INT8_C( 110), -INT8_C( 57), INT8_C( 55), -INT8_C( 111), -INT8_C( 4) }, UINT16_C(32116), { -INT8_C( 69), INT8_C( 126), INT8_C( 82), -INT8_C( 14), -INT8_C( 58), INT8_C( 10), INT8_C( 64), INT8_MAX, INT8_C( 23), -INT8_C( 109), INT8_C( 72), -INT8_C( 20), INT8_C( 64), INT8_C( 73), INT8_C( 75), -INT8_C( 38) }, { -INT8_C( 24), INT8_C( 58), -INT8_C( 98), INT8_C( 121), INT8_C( 74), INT8_C( 61), -INT8_C( 26), -INT8_C( 116), INT8_C( 100), INT8_C( 59), -INT8_C( 113), -INT8_C( 115), -INT8_C( 23), INT8_C( 33), INT8_C( 58), -INT8_C( 8) }, { INT8_C( 118), INT8_C( 85), -INT8_C( 16), -INT8_C( 47), INT8_C( 16), INT8_C( 71), INT8_C( 38), INT8_C( 77), INT8_C( 123), -INT8_C( 123), -INT8_C( 41), INT8_MIN, INT8_C( 41), INT8_C( 106), INT8_MAX, -INT8_C( 4) } }, { { -INT8_C( 47), -INT8_C( 23), INT8_C( 39), INT8_C( 51), -INT8_C( 61), -INT8_C( 44), -INT8_C( 113), INT8_C( 35), -INT8_C( 52), -INT8_C( 41), INT8_C( 98), INT8_C( 85), -INT8_C( 104), INT8_C( 102), -INT8_C( 36), -INT8_C( 31) }, UINT16_C(20717), { -INT8_C( 104), -INT8_C( 53), -INT8_C( 112), -INT8_C( 37), INT8_C( 87), INT8_C( 78), -INT8_C( 51), -INT8_C( 79), INT8_C( 5), INT8_C( 119), INT8_C( 69), -INT8_C( 74), -INT8_C( 10), INT8_C( 26), INT8_C( 95), -INT8_C( 100) }, { -INT8_C( 17), -INT8_C( 107), -INT8_C( 7), -INT8_C( 58), INT8_C( 10), INT8_C( 88), INT8_C( 60), -INT8_C( 46), INT8_C( 2), INT8_C( 90), INT8_C( 57), INT8_C( 85), -INT8_C( 77), INT8_C( 49), -INT8_C( 36), -INT8_C( 31) }, { -INT8_C( 121), -INT8_C( 23), -INT8_C( 119), -INT8_C( 95), -INT8_C( 61), INT8_MAX, INT8_C( 9), -INT8_C( 125), -INT8_C( 52), -INT8_C( 41), INT8_C( 98), INT8_C( 85), -INT8_C( 87), INT8_C( 102), INT8_C( 59), -INT8_C( 31) } }, { { INT8_C( 85), INT8_C( 118), -INT8_C( 103), INT8_MIN, INT8_C( 39), -INT8_C( 43), -INT8_C( 67), -INT8_C( 57), -INT8_C( 62), INT8_C( 83), -INT8_C( 118), -INT8_C( 116), -INT8_C( 79), INT8_C( 25), INT8_C( 118), INT8_C( 95) }, UINT16_C(62809), { INT8_C( 82), -INT8_C( 124), INT8_C( 65), INT8_C( 56), -INT8_C( 94), -INT8_C( 9), INT8_C( 63), -INT8_C( 116), -INT8_C( 68), INT8_C( 40), INT8_C( 6), -INT8_C( 104), INT8_C( 1), -INT8_C( 120), -INT8_C( 34), -INT8_C( 27) }, { INT8_C( 86), -INT8_C( 105), INT8_C( 63), -INT8_C( 53), -INT8_C( 76), -INT8_C( 100), INT8_C( 3), INT8_C( 113), -INT8_C( 76), INT8_C( 30), -INT8_C( 104), -INT8_C( 53), INT8_C( 4), -INT8_C( 45), -INT8_C( 26), -INT8_C( 6) }, { INT8_MAX, INT8_C( 118), -INT8_C( 103), INT8_C( 3), INT8_MIN, -INT8_C( 43), INT8_C( 66), -INT8_C( 57), INT8_MIN, INT8_C( 83), -INT8_C( 98), -INT8_C( 116), INT8_C( 5), INT8_MIN, -INT8_C( 60), -INT8_C( 33) } }, { { -INT8_C( 90), -INT8_C( 117), -INT8_C( 26), -INT8_C( 9), -INT8_C( 54), INT8_C( 123), INT8_C( 17), -INT8_C( 40), -INT8_C( 24), INT8_C( 12), -INT8_C( 5), INT8_C( 120), INT8_C( 71), INT8_C( 4), INT8_C( 10), INT8_C( 1) }, UINT16_C(44733), { -INT8_C( 54), INT8_C( 98), -INT8_C( 59), INT8_C( 107), -INT8_C( 95), INT8_C( 79), -INT8_C( 23), INT8_C( 35), -INT8_C( 87), INT8_C( 3), INT8_C( 87), -INT8_C( 117), -INT8_C( 101), INT8_C( 66), -INT8_C( 100), -INT8_C( 98) }, { INT8_C( 3), -INT8_C( 14), -INT8_C( 39), INT8_C( 50), INT8_C( 93), -INT8_C( 35), -INT8_C( 58), INT8_C( 81), INT8_C( 108), INT8_C( 97), INT8_C( 119), -INT8_C( 4), -INT8_C( 32), -INT8_C( 56), INT8_C( 12), INT8_C( 20) }, { -INT8_C( 51), -INT8_C( 117), -INT8_C( 98), INT8_MAX, -INT8_C( 2), INT8_C( 44), INT8_C( 17), INT8_C( 116), -INT8_C( 24), INT8_C( 100), INT8_MAX, -INT8_C( 121), INT8_C( 71), INT8_C( 10), INT8_C( 10), -INT8_C( 78) } }, { { INT8_C( 19), -INT8_C( 64), -INT8_C( 43), -INT8_C( 1), -INT8_C( 111), INT8_C( 62), -INT8_C( 109), INT8_C( 118), -INT8_C( 60), -INT8_C( 20), INT8_C( 126), -INT8_C( 114), -INT8_C( 121), -INT8_C( 42), -INT8_C( 28), -INT8_C( 20) }, UINT16_C(55639), { -INT8_C( 71), INT8_C( 65), INT8_C( 2), -INT8_C( 81), -INT8_C( 74), INT8_C( 31), INT8_C( 108), -INT8_C( 43), INT8_C( 116), INT8_C( 15), INT8_C( 97), -INT8_C( 97), -INT8_C( 27), INT8_C( 102), -INT8_C( 108), INT8_C( 86) }, { -INT8_C( 89), -INT8_C( 92), INT8_C( 119), -INT8_C( 97), -INT8_C( 64), -INT8_C( 44), INT8_C( 57), INT8_C( 45), -INT8_C( 53), INT8_C( 21), INT8_C( 88), -INT8_C( 119), -INT8_C( 42), INT8_C( 100), -INT8_C( 41), INT8_C( 82) }, { INT8_MIN, -INT8_C( 27), INT8_C( 121), -INT8_C( 1), INT8_MIN, INT8_C( 62), INT8_MAX, INT8_C( 118), INT8_C( 63), -INT8_C( 20), INT8_C( 126), INT8_MIN, -INT8_C( 69), -INT8_C( 42), INT8_MIN, INT8_MAX } }, { { INT8_C( 0), -INT8_C( 56), -INT8_C( 74), -INT8_C( 70), INT8_C( 8), INT8_C( 43), INT8_C( 101), -INT8_C( 121), INT8_C( 0), INT8_C( 92), -INT8_C( 58), INT8_C( 42), INT8_C( 93), INT8_C( 109), INT8_C( 64), INT8_C( 125) }, UINT16_C(21225), { INT8_C( 113), INT8_C( 49), -INT8_C( 88), INT8_C( 112), -INT8_C( 39), -INT8_C( 82), INT8_C( 13), -INT8_C( 74), INT8_C( 91), -INT8_C( 122), -INT8_C( 99), INT8_C( 112), -INT8_C( 37), INT8_C( 19), -INT8_C( 46), -INT8_C( 30) }, { -INT8_C( 88), INT8_C( 60), INT8_C( 21), -INT8_C( 52), INT8_C( 33), -INT8_C( 37), -INT8_C( 92), INT8_C( 25), INT8_C( 63), INT8_C( 50), -INT8_C( 57), INT8_C( 91), INT8_C( 73), INT8_C( 120), INT8_C( 62), INT8_C( 79) }, { INT8_C( 25), -INT8_C( 56), -INT8_C( 74), INT8_C( 60), INT8_C( 8), -INT8_C( 119), -INT8_C( 79), -INT8_C( 49), INT8_C( 0), -INT8_C( 72), -INT8_C( 58), INT8_C( 42), INT8_C( 36), INT8_C( 109), INT8_C( 16), INT8_C( 125) } }, { { -INT8_C( 10), -INT8_C( 50), -INT8_C( 47), INT8_C( 74), INT8_C( 57), -INT8_C( 26), -INT8_C( 66), INT8_C( 94), INT8_C( 84), -INT8_C( 107), -INT8_C( 57), -INT8_C( 48), -INT8_C( 69), -INT8_C( 65), INT8_C( 38), INT8_C( 80) }, UINT16_C(52423), { INT8_C( 55), -INT8_C( 9), INT8_C( 51), INT8_C( 94), INT8_C( 84), -INT8_C( 116), INT8_C( 78), -INT8_C( 33), -INT8_C( 36), -INT8_C( 21), -INT8_C( 69), -INT8_C( 98), INT8_C( 52), INT8_C( 73), INT8_C( 52), -INT8_C( 72) }, { -INT8_C( 69), -INT8_C( 10), INT8_C( 2), INT8_C( 68), -INT8_C( 124), -INT8_C( 68), -INT8_C( 24), -INT8_C( 4), INT8_C( 40), -INT8_C( 98), INT8_C( 58), INT8_C( 89), -INT8_C( 59), -INT8_C( 66), INT8_C( 90), -INT8_C( 84) }, { -INT8_C( 14), -INT8_C( 19), INT8_C( 53), INT8_C( 74), INT8_C( 57), -INT8_C( 26), INT8_C( 54), -INT8_C( 37), INT8_C( 84), -INT8_C( 107), -INT8_C( 11), -INT8_C( 9), -INT8_C( 69), -INT8_C( 65), INT8_MAX, INT8_MIN } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m128i src = simde_x_mm_loadu_epi8(test_vec[i].src); simde__m128i a = simde_x_mm_loadu_epi8(test_vec[i].a); simde__m128i b = simde_x_mm_loadu_epi8(test_vec[i].b); simde__m128i r = simde_mm_mask_adds_epi8(src, test_vec[i].k, a, b); simde_test_x86_assert_equal_i8x16(r, simde_x_mm_loadu_epi8(test_vec[i].r)); } return 0; } static int test_simde_mm_maskz_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const simde__mmask16 k; const int8_t a[16]; const int8_t b[16]; const int8_t r[16]; } test_vec[] = { { UINT16_C(12102), { INT8_C( 1), INT8_C( 83), -INT8_C( 45), INT8_C( 8), -INT8_C( 110), -INT8_C( 61), INT8_MIN, -INT8_C( 118), -INT8_C( 32), -INT8_C( 8), -INT8_C( 28), INT8_C( 82), -INT8_C( 13), -INT8_C( 72), -INT8_C( 60), INT8_C( 13) }, { -INT8_C( 121), -INT8_C( 88), -INT8_C( 66), -INT8_C( 50), INT8_C( 67), INT8_C( 126), INT8_MIN, INT8_C( 29), -INT8_C( 107), INT8_C( 42), -INT8_C( 47), -INT8_C( 51), INT8_C( 119), INT8_C( 13), INT8_C( 63), -INT8_C( 24) }, { INT8_C( 0), -INT8_C( 5), -INT8_C( 111), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_MIN, INT8_C( 0), INT8_MIN, INT8_C( 34), -INT8_C( 75), INT8_C( 31), INT8_C( 0), -INT8_C( 59), INT8_C( 0), INT8_C( 0) } }, { UINT16_C(65315), { INT8_C( 98), -INT8_C( 110), INT8_C( 37), INT8_C( 119), -INT8_C( 45), -INT8_C( 116), INT8_C( 33), INT8_C( 110), INT8_C( 102), INT8_C( 43), -INT8_C( 95), -INT8_C( 73), -INT8_C( 10), INT8_C( 70), INT8_C( 39), INT8_C( 96) }, { INT8_C( 77), -INT8_C( 80), INT8_C( 43), -INT8_C( 64), INT8_C( 51), -INT8_C( 18), INT8_C( 91), INT8_C( 16), -INT8_C( 40), INT8_C( 55), -INT8_C( 39), -INT8_C( 38), -INT8_C( 69), -INT8_C( 67), INT8_C( 53), -INT8_C( 103) }, { INT8_MAX, INT8_MIN, INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_MIN, INT8_C( 0), INT8_C( 0), INT8_C( 62), INT8_C( 98), INT8_MIN, -INT8_C( 111), -INT8_C( 79), INT8_C( 3), INT8_C( 92), -INT8_C( 7) } }, { UINT16_C(29490), { -INT8_C( 35), -INT8_C( 98), INT8_C( 6), -INT8_C( 75), INT8_C( 113), -INT8_C( 22), INT8_C( 62), INT8_C( 7), -INT8_C( 56), -INT8_C( 16), INT8_C( 122), -INT8_C( 115), -INT8_C( 47), INT8_C( 54), -INT8_C( 125), -INT8_C( 94) }, { -INT8_C( 82), INT8_C( 75), -INT8_C( 88), INT8_C( 26), INT8_C( 97), -INT8_C( 72), INT8_C( 34), -INT8_C( 46), -INT8_C( 23), INT8_C( 62), INT8_C( 30), INT8_C( 110), -INT8_C( 34), -INT8_C( 121), -INT8_C( 34), INT8_C( 14) }, { INT8_C( 0), -INT8_C( 23), INT8_C( 0), INT8_C( 0), INT8_MAX, -INT8_C( 94), INT8_C( 0), INT8_C( 0), -INT8_C( 79), INT8_C( 46), INT8_C( 0), INT8_C( 0), -INT8_C( 81), -INT8_C( 67), INT8_MIN, INT8_C( 0) } }, { UINT16_C(14341), { -INT8_C( 19), -INT8_C( 46), -INT8_C( 73), INT8_C( 51), -INT8_C( 101), INT8_C( 37), -INT8_C( 80), INT8_C( 41), INT8_C( 38), INT8_C( 20), -INT8_C( 33), -INT8_C( 54), INT8_C( 67), INT8_C( 20), INT8_C( 21), INT8_C( 117) }, { INT8_C( 33), -INT8_C( 99), INT8_C( 79), -INT8_C( 113), -INT8_C( 63), INT8_C( 7), -INT8_C( 124), -INT8_C( 105), INT8_C( 64), -INT8_C( 85), -INT8_C( 62), -INT8_C( 17), -INT8_C( 96), -INT8_C( 25), -INT8_C( 93), INT8_C( 124) }, { INT8_C( 14), INT8_C( 0), INT8_C( 6), 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( 71), -INT8_C( 29), -INT8_C( 5), INT8_C( 0), INT8_C( 0) } }, { UINT16_C( 3703), { INT8_MIN, -INT8_C( 125), INT8_C( 45), -INT8_C( 105), INT8_C( 125), -INT8_C( 41), INT8_C( 59), -INT8_C( 89), INT8_C( 14), -INT8_C( 92), -INT8_C( 90), -INT8_C( 114), INT8_C( 96), -INT8_C( 78), -INT8_C( 109), INT8_C( 39) }, { -INT8_C( 91), INT8_C( 23), -INT8_C( 57), INT8_C( 59), INT8_C( 66), INT8_C( 66), INT8_C( 12), -INT8_C( 94), -INT8_C( 108), -INT8_C( 63), INT8_C( 99), INT8_C( 23), INT8_C( 86), INT8_C( 80), INT8_C( 24), INT8_C( 42) }, { INT8_MIN, -INT8_C( 102), -INT8_C( 12), INT8_C( 0), INT8_MAX, INT8_C( 25), INT8_C( 71), INT8_C( 0), INT8_C( 0), INT8_MIN, INT8_C( 9), -INT8_C( 91), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) } }, { UINT16_C(23183), { -INT8_C( 119), -INT8_C( 26), -INT8_C( 57), INT8_C( 13), -INT8_C( 45), INT8_C( 56), INT8_C( 92), INT8_C( 18), INT8_C( 77), -INT8_C( 82), INT8_C( 104), INT8_C( 71), -INT8_C( 99), -INT8_C( 127), -INT8_C( 39), -INT8_C( 14) }, { INT8_C( 71), INT8_C( 93), INT8_C( 46), -INT8_C( 20), INT8_C( 5), -INT8_C( 14), -INT8_C( 92), -INT8_C( 125), -INT8_C( 73), -INT8_C( 53), -INT8_C( 18), INT8_C( 0), INT8_C( 48), -INT8_C( 84), -INT8_C( 86), -INT8_C( 53) }, { -INT8_C( 48), INT8_C( 67), -INT8_C( 11), -INT8_C( 7), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 107), INT8_C( 0), INT8_MIN, INT8_C( 0), INT8_C( 71), -INT8_C( 51), INT8_C( 0), -INT8_C( 125), INT8_C( 0) } }, { UINT16_C( 4280), { INT8_C( 10), INT8_C( 78), INT8_MAX, -INT8_C( 8), INT8_C( 108), -INT8_C( 11), -INT8_C( 97), -INT8_C( 111), -INT8_C( 46), INT8_C( 13), -INT8_C( 47), -INT8_C( 45), -INT8_C( 105), -INT8_C( 25), INT8_C( 0), -INT8_C( 7) }, { -INT8_C( 16), -INT8_C( 22), INT8_C( 88), -INT8_C( 71), INT8_C( 8), -INT8_C( 70), -INT8_C( 80), INT8_C( 103), INT8_C( 123), INT8_C( 93), -INT8_C( 35), INT8_C( 85), INT8_C( 10), INT8_C( 77), INT8_C( 0), INT8_C( 47) }, { INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 79), INT8_C( 116), -INT8_C( 81), INT8_C( 0), -INT8_C( 8), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 95), INT8_C( 0), INT8_C( 0), INT8_C( 0) } }, { UINT16_C( 4325), { INT8_C( 65), INT8_C( 62), INT8_C( 42), -INT8_C( 68), INT8_C( 90), INT8_C( 73), INT8_C( 19), -INT8_C( 56), -INT8_C( 4), INT8_C( 31), INT8_C( 4), INT8_C( 3), INT8_C( 44), INT8_C( 90), INT8_C( 99), -INT8_C( 25) }, { INT8_C( 89), INT8_C( 52), INT8_C( 104), -INT8_C( 86), INT8_C( 121), -INT8_C( 27), INT8_C( 75), -INT8_C( 9), -INT8_C( 48), INT8_C( 121), INT8_C( 40), -INT8_C( 3), -INT8_C( 53), -INT8_C( 114), -INT8_C( 100), INT8_C( 81) }, { INT8_MAX, INT8_C( 0), INT8_MAX, INT8_C( 0), INT8_C( 0), INT8_C( 46), INT8_C( 94), -INT8_C( 65), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 9), INT8_C( 0), INT8_C( 0), INT8_C( 0) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m128i a = simde_x_mm_loadu_epi8(test_vec[i].a); simde__m128i b = simde_x_mm_loadu_epi8(test_vec[i].b); simde__m128i r = simde_mm_maskz_adds_epi8(test_vec[i].k, a, b); simde_test_x86_assert_equal_i8x16(r, simde_x_mm_loadu_epi8(test_vec[i].r)); } return 0; } static int test_simde_mm_mask_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int16_t src[8]; const simde__mmask8 k; const int16_t a[8]; const int16_t b[8]; const int16_t r[8]; } test_vec[] = { { { INT16_C( 19830), -INT16_C( 20263), INT16_C( 6365), INT16_C( 9514), INT16_C( 8029), -INT16_C( 31012), -INT16_C( 27351), INT16_C( 19606) }, UINT8_C(166), { -INT16_C( 21201), -INT16_C( 16983), -INT16_C( 28913), INT16_C( 479), -INT16_C( 27699), -INT16_C( 698), -INT16_C( 21664), INT16_C( 12978) }, { -INT16_C( 31630), -INT16_C( 27895), -INT16_C( 31919), -INT16_C( 25946), INT16_C( 5384), INT16_C( 31469), INT16_C( 29499), -INT16_C( 8608) }, { INT16_C( 19830), INT16_MIN, INT16_MIN, INT16_C( 9514), INT16_C( 8029), INT16_C( 30771), -INT16_C( 27351), INT16_C( 4370) } }, { { INT16_C( 14956), -INT16_C( 24206), INT16_C( 10279), INT16_C( 662), -INT16_C( 16911), -INT16_C( 17106), -INT16_C( 4862), -INT16_C( 4374) }, UINT8_C(253), { INT16_C( 25492), -INT16_C( 2767), -INT16_C( 5158), -INT16_C( 5013), INT16_C( 23080), INT16_C( 24538), INT16_C( 24678), -INT16_C( 27578) }, { -INT16_C( 5284), INT16_C( 1255), INT16_C( 12121), INT16_C( 12017), INT16_C( 13281), INT16_C( 1685), INT16_C( 18360), -INT16_C( 24670) }, { INT16_C( 20208), -INT16_C( 24206), INT16_C( 6963), INT16_C( 7004), INT16_MAX, INT16_C( 26223), INT16_MAX, INT16_MIN } }, { { -INT16_C( 14832), -INT16_C( 19736), INT16_C( 5222), -INT16_C( 1427), INT16_C( 24020), INT16_C( 13226), -INT16_C( 22015), INT16_C( 8143) }, UINT8_C(219), { -INT16_C( 20552), -INT16_C( 5853), INT16_C( 22872), -INT16_C( 6013), -INT16_C( 16137), -INT16_C( 27569), INT16_C( 19276), -INT16_C( 26420) }, { INT16_C( 1430), INT16_C( 15804), INT16_C( 13643), INT16_C( 13486), INT16_C( 28580), INT16_C( 26652), INT16_C( 15895), -INT16_C( 25828) }, { -INT16_C( 19122), INT16_C( 9951), INT16_C( 5222), INT16_C( 7473), INT16_C( 12443), INT16_C( 13226), INT16_MAX, INT16_MIN } }, { { INT16_C( 18056), -INT16_C( 6311), -INT16_C( 10823), INT16_C( 8297), INT16_C( 24132), INT16_C( 31019), -INT16_C( 20821), INT16_C( 1073) }, UINT8_C(155), { INT16_C( 25312), -INT16_C( 18725), -INT16_C( 31168), -INT16_C( 13304), -INT16_C( 19949), INT16_C( 28347), INT16_C( 3674), INT16_C( 11284) }, { -INT16_C( 32624), INT16_C( 14806), INT16_C( 29854), -INT16_C( 13394), INT16_C( 19939), INT16_C( 14150), -INT16_C( 32469), -INT16_C( 16490) }, { -INT16_C( 7312), -INT16_C( 3919), -INT16_C( 10823), -INT16_C( 26698), -INT16_C( 10), INT16_C( 31019), -INT16_C( 20821), -INT16_C( 5206) } }, { { INT16_C( 16411), INT16_C( 26770), -INT16_C( 15770), INT16_C( 11567), -INT16_C( 25386), -INT16_C( 21370), -INT16_C( 18951), INT16_C( 5013) }, UINT8_C(175), { INT16_C( 22074), -INT16_C( 6096), INT16_C( 12562), -INT16_C( 2681), -INT16_C( 8474), INT16_C( 7981), INT16_C( 29859), -INT16_C( 5915) }, { -INT16_C( 26649), -INT16_C( 14667), -INT16_C( 21700), INT16_C( 23924), INT16_C( 23041), -INT16_C( 12329), -INT16_C( 26844), INT16_C( 12057) }, { -INT16_C( 4575), -INT16_C( 20763), -INT16_C( 9138), INT16_C( 21243), -INT16_C( 25386), -INT16_C( 4348), -INT16_C( 18951), INT16_C( 6142) } }, { { INT16_C( 31823), -INT16_C( 16416), INT16_C( 10547), -INT16_C( 20936), -INT16_C( 21717), INT16_C( 2429), -INT16_C( 14089), INT16_C( 20415) }, UINT8_C(116), { -INT16_C( 20670), -INT16_C( 18929), -INT16_C( 9110), -INT16_C( 27658), INT16_C( 5659), -INT16_C( 22755), INT16_C( 30401), INT16_C( 12241) }, { -INT16_C( 2428), -INT16_C( 3085), INT16_C( 20629), -INT16_C( 29739), -INT16_C( 19289), INT16_C( 29198), INT16_C( 13379), -INT16_C( 26784) }, { INT16_C( 31823), -INT16_C( 16416), INT16_C( 11519), -INT16_C( 20936), -INT16_C( 13630), INT16_C( 6443), INT16_MAX, INT16_C( 20415) } }, { { INT16_C( 10682), INT16_C( 30723), -INT16_C( 25631), INT16_C( 12870), -INT16_C( 7733), -INT16_C( 3023), INT16_C( 8882), INT16_C( 24910) }, UINT8_C( 45), { -INT16_C( 15846), -INT16_C( 19943), -INT16_C( 32694), -INT16_C( 6090), INT16_C( 14036), -INT16_C( 30104), -INT16_C( 22309), INT16_C( 32750) }, { -INT16_C( 16035), INT16_C( 6633), INT16_C( 31017), -INT16_C( 29512), INT16_C( 20156), INT16_C( 28149), INT16_C( 9311), -INT16_C( 22877) }, { -INT16_C( 31881), INT16_C( 30723), -INT16_C( 1677), INT16_MIN, -INT16_C( 7733), -INT16_C( 1955), INT16_C( 8882), INT16_C( 24910) } }, { { INT16_C( 11801), INT16_C( 30522), -INT16_C( 28771), INT16_C( 18595), -INT16_C( 26062), INT16_C( 7549), INT16_C( 19180), -INT16_C( 19581) }, UINT8_C( 42), { INT16_C( 21562), -INT16_C( 15180), INT16_C( 17197), INT16_C( 26341), INT16_C( 15144), -INT16_C( 11790), INT16_C( 26114), -INT16_C( 26150) }, { -INT16_C( 16280), -INT16_C( 27280), INT16_C( 27387), -INT16_C( 12348), INT16_C( 28781), INT16_C( 23348), INT16_C( 22336), INT16_C( 2436) }, { INT16_C( 11801), INT16_MIN, -INT16_C( 28771), INT16_C( 13993), -INT16_C( 26062), INT16_C( 11558), INT16_C( 19180), -INT16_C( 19581) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m128i src = simde_x_mm_loadu_epi16(test_vec[i].src); simde__m128i a = simde_x_mm_loadu_epi16(test_vec[i].a); simde__m128i b = simde_x_mm_loadu_epi16(test_vec[i].b); simde__m128i r = simde_mm_mask_adds_epi16(src, test_vec[i].k, a, b); simde_test_x86_assert_equal_i16x8(r, simde_x_mm_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm_maskz_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const simde__mmask8 k; const int16_t a[8]; const int16_t b[8]; const int16_t r[8]; } test_vec[] = { { UINT8_C(126), { INT16_C( 18530), -INT16_C( 15866), -INT16_C( 15400), -INT16_C( 26342), -INT16_C( 14737), -INT16_C( 15030), INT16_C( 21680), INT16_C( 29882) }, { INT16_C( 27962), INT16_C( 13123), -INT16_C( 10479), INT16_C( 3537), -INT16_C( 7715), INT16_C( 27275), -INT16_C( 4308), INT16_C( 2341) }, { INT16_C( 0), -INT16_C( 2743), -INT16_C( 25879), -INT16_C( 22805), -INT16_C( 22452), INT16_C( 12245), INT16_C( 17372), INT16_C( 0) } }, { UINT8_C(175), { -INT16_C( 18089), -INT16_C( 11763), -INT16_C( 7340), -INT16_C( 26300), INT16_C( 14485), INT16_C( 27175), INT16_C( 8158), -INT16_C( 20335) }, { -INT16_C( 8103), INT16_C( 16065), -INT16_C( 4453), INT16_C( 5089), INT16_C( 29515), -INT16_C( 2790), -INT16_C( 21763), INT16_C( 22019) }, { -INT16_C( 26192), INT16_C( 4302), -INT16_C( 11793), -INT16_C( 21211), INT16_C( 0), INT16_C( 24385), INT16_C( 0), INT16_C( 1684) } }, { UINT8_C( 14), { -INT16_C( 20827), -INT16_C( 18732), -INT16_C( 10152), -INT16_C( 2933), INT16_C( 31842), -INT16_C( 8748), -INT16_C( 11815), INT16_C( 21410) }, { -INT16_C( 1528), -INT16_C( 13596), -INT16_C( 25943), -INT16_C( 28335), INT16_C( 25848), INT16_C( 9269), -INT16_C( 15402), INT16_C( 26007) }, { INT16_C( 0), -INT16_C( 32328), INT16_MIN, -INT16_C( 31268), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { UINT8_C( 15), { -INT16_C( 27507), -INT16_C( 9398), INT16_C( 28915), -INT16_C( 2956), -INT16_C( 14608), -INT16_C( 10466), INT16_C( 28978), -INT16_C( 7517) }, { INT16_C( 20451), -INT16_C( 22940), INT16_C( 26080), INT16_C( 12379), -INT16_C( 5954), -INT16_C( 27171), -INT16_C( 18512), -INT16_C( 15809) }, { -INT16_C( 7056), -INT16_C( 32338), INT16_MAX, INT16_C( 9423), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { UINT8_C( 30), { INT16_C( 17121), -INT16_C( 27683), INT16_C( 32718), INT16_C( 24958), -INT16_C( 20150), -INT16_C( 1717), -INT16_C( 8726), -INT16_C( 15593) }, { INT16_C( 21952), -INT16_C( 7015), -INT16_C( 16049), -INT16_C( 27828), INT16_C( 16846), INT16_C( 20356), INT16_C( 31961), -INT16_C( 30752) }, { INT16_C( 0), INT16_MIN, INT16_C( 16669), -INT16_C( 2870), -INT16_C( 3304), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { UINT8_C(176), { -INT16_C( 2095), INT16_C( 22806), INT16_C( 10643), INT16_C( 17957), -INT16_C( 4712), -INT16_C( 17466), -INT16_C( 31523), INT16_C( 23464) }, { -INT16_C( 9670), INT16_C( 4356), -INT16_C( 25926), INT16_C( 21354), -INT16_C( 3587), INT16_C( 16434), -INT16_C( 8316), -INT16_C( 28686) }, { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 8299), -INT16_C( 1032), INT16_C( 0), -INT16_C( 5222) } }, { UINT8_C(196), { INT16_C( 23417), -INT16_C( 1452), -INT16_C( 25974), -INT16_C( 1716), INT16_C( 22247), -INT16_C( 10292), INT16_C( 7502), -INT16_C( 839) }, { -INT16_C( 1858), -INT16_C( 2942), -INT16_C( 11236), INT16_C( 15194), -INT16_C( 6079), INT16_C( 6575), -INT16_C( 15784), -INT16_C( 25633) }, { INT16_C( 0), INT16_C( 0), INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 8282), -INT16_C( 26472) } }, { UINT8_C( 6), { -INT16_C( 1086), INT16_C( 31230), -INT16_C( 15014), -INT16_C( 7078), -INT16_C( 11452), INT16_C( 13045), INT16_C( 23661), INT16_C( 14428) }, { -INT16_C( 29896), -INT16_C( 10249), -INT16_C( 5921), -INT16_C( 11132), -INT16_C( 3726), -INT16_C( 12393), INT16_C( 5350), INT16_C( 20495) }, { INT16_C( 0), INT16_C( 20981), -INT16_C( 20935), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m128i a = simde_x_mm_loadu_epi16(test_vec[i].a); simde__m128i b = simde_x_mm_loadu_epi16(test_vec[i].b); simde__m128i r = simde_mm_maskz_adds_epi16(test_vec[i].k, a, b); simde_test_x86_assert_equal_i16x8(r, simde_x_mm_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm256_mask_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int8_t src[32]; const simde__mmask32 k; const int8_t a[32]; const int8_t b[32]; const int8_t r[32]; } test_vec[] = { { { INT8_C( 63), INT8_C( 79), INT8_C( 62), -INT8_C( 24), INT8_C( 99), INT8_C( 34), INT8_C( 33), INT8_C( 55), INT8_C( 34), INT8_C( 107), INT8_C( 116), INT8_C( 40), -INT8_C( 20), INT8_C( 26), INT8_C( 82), -INT8_C( 107), -INT8_C( 52), INT8_MIN, -INT8_C( 36), INT8_C( 51), -INT8_C( 21), -INT8_C( 124), INT8_C( 112), INT8_C( 122), -INT8_C( 57), -INT8_C( 30), -INT8_C( 11), -INT8_C( 90), -INT8_C( 59), INT8_C( 91), INT8_C( 106), -INT8_C( 116) }, UINT32_C( 17939), { -INT8_C( 123), -INT8_C( 71), INT8_C( 3), -INT8_C( 27), INT8_C( 90), -INT8_C( 35), INT8_C( 53), -INT8_C( 70), INT8_C( 37), -INT8_C( 93), INT8_C( 39), -INT8_C( 99), -INT8_C( 73), INT8_C( 99), -INT8_C( 90), -INT8_C( 99), INT8_C( 34), INT8_C( 74), INT8_C( 66), -INT8_C( 87), -INT8_C( 35), INT8_C( 109), -INT8_C( 31), INT8_C( 57), INT8_C( 29), -INT8_C( 1), -INT8_C( 109), -INT8_C( 29), -INT8_C( 102), -INT8_C( 122), -INT8_C( 40), -INT8_C( 64) }, { INT8_C( 1), -INT8_C( 57), -INT8_C( 42), -INT8_C( 31), INT8_C( 49), -INT8_C( 49), INT8_C( 95), -INT8_C( 124), -INT8_C( 108), INT8_C( 82), -INT8_C( 127), -INT8_C( 41), INT8_C( 123), INT8_C( 60), INT8_C( 18), INT8_C( 4), -INT8_C( 92), -INT8_C( 115), INT8_C( 22), -INT8_C( 82), INT8_C( 16), -INT8_C( 95), INT8_C( 51), -INT8_C( 3), INT8_C( 91), INT8_C( 71), -INT8_C( 33), -INT8_C( 101), -INT8_C( 115), -INT8_C( 4), INT8_C( 91), -INT8_C( 104) }, { -INT8_C( 122), INT8_MIN, INT8_C( 62), -INT8_C( 24), INT8_MAX, INT8_C( 34), INT8_C( 33), INT8_C( 55), INT8_C( 34), -INT8_C( 11), -INT8_C( 88), INT8_C( 40), -INT8_C( 20), INT8_C( 26), -INT8_C( 72), -INT8_C( 107), -INT8_C( 52), INT8_MIN, -INT8_C( 36), INT8_C( 51), -INT8_C( 21), -INT8_C( 124), INT8_C( 112), INT8_C( 122), -INT8_C( 57), -INT8_C( 30), -INT8_C( 11), -INT8_C( 90), -INT8_C( 59), INT8_C( 91), INT8_C( 106), -INT8_C( 116) } }, { { -INT8_C( 123), INT8_C( 123), INT8_C( 97), INT8_C( 38), -INT8_C( 67), -INT8_C( 49), INT8_C( 30), -INT8_C( 76), -INT8_C( 84), INT8_C( 84), INT8_C( 23), INT8_C( 86), INT8_C( 8), -INT8_C( 26), -INT8_C( 64), -INT8_C( 51), INT8_C( 112), INT8_C( 87), INT8_C( 119), INT8_C( 1), INT8_C( 43), -INT8_C( 21), INT8_C( 90), INT8_C( 91), INT8_C( 125), -INT8_C( 98), INT8_C( 20), INT8_C( 24), INT8_C( 126), -INT8_C( 27), -INT8_C( 117), -INT8_C( 87) }, UINT32_C( 56101), { -INT8_C( 29), INT8_C( 83), INT8_C( 102), -INT8_C( 68), -INT8_C( 94), INT8_C( 98), -INT8_C( 113), -INT8_C( 98), -INT8_C( 91), -INT8_C( 30), INT8_C( 20), INT8_C( 105), INT8_C( 46), -INT8_C( 21), -INT8_C( 97), -INT8_C( 66), -INT8_C( 109), -INT8_C( 73), INT8_C( 45), INT8_C( 30), -INT8_C( 72), -INT8_C( 108), -INT8_C( 85), -INT8_C( 45), INT8_C( 78), INT8_C( 69), INT8_C( 14), INT8_C( 75), -INT8_C( 71), -INT8_C( 49), -INT8_C( 55), INT8_C( 42) }, { INT8_C( 52), -INT8_C( 69), -INT8_C( 103), -INT8_C( 82), INT8_C( 90), INT8_C( 51), -INT8_C( 42), INT8_MIN, INT8_C( 102), INT8_C( 100), INT8_C( 6), INT8_C( 50), -INT8_C( 114), INT8_C( 106), INT8_C( 119), -INT8_C( 17), -INT8_C( 46), -INT8_C( 52), INT8_C( 25), -INT8_C( 71), INT8_C( 100), INT8_C( 75), INT8_C( 70), INT8_C( 2), -INT8_C( 20), INT8_C( 69), -INT8_C( 9), -INT8_C( 68), INT8_C( 119), -INT8_C( 98), -INT8_C( 25), -INT8_C( 53) }, { INT8_C( 23), INT8_C( 123), -INT8_C( 1), INT8_C( 38), -INT8_C( 67), INT8_MAX, INT8_C( 30), -INT8_C( 76), INT8_C( 11), INT8_C( 70), INT8_C( 23), INT8_MAX, -INT8_C( 68), -INT8_C( 26), INT8_C( 22), -INT8_C( 83), INT8_C( 112), INT8_C( 87), INT8_C( 119), INT8_C( 1), INT8_C( 43), -INT8_C( 21), INT8_C( 90), INT8_C( 91), INT8_C( 125), -INT8_C( 98), INT8_C( 20), INT8_C( 24), INT8_C( 126), -INT8_C( 27), -INT8_C( 117), -INT8_C( 87) } }, { { -INT8_C( 26), INT8_C( 33), -INT8_C( 40), INT8_C( 31), -INT8_C( 46), INT8_C( 71), INT8_C( 81), -INT8_C( 30), -INT8_C( 45), -INT8_C( 8), -INT8_C( 2), INT8_MAX, -INT8_C( 99), INT8_C( 87), INT8_C( 64), -INT8_C( 20), -INT8_C( 83), -INT8_C( 40), -INT8_C( 19), -INT8_C( 114), INT8_C( 34), INT8_C( 105), INT8_C( 90), INT8_C( 35), INT8_C( 75), INT8_C( 112), -INT8_C( 89), -INT8_C( 127), INT8_C( 95), INT8_C( 79), INT8_C( 40), INT8_C( 8) }, UINT32_C( 23780), { -INT8_C( 46), -INT8_C( 84), -INT8_C( 66), -INT8_C( 62), INT8_C( 68), -INT8_C( 119), -INT8_C( 126), -INT8_C( 81), -INT8_C( 113), INT8_C( 88), -INT8_C( 93), -INT8_C( 126), INT8_C( 25), INT8_C( 108), -INT8_C( 109), INT8_C( 86), -INT8_C( 76), INT8_C( 45), INT8_C( 25), INT8_C( 69), INT8_C( 27), -INT8_C( 54), INT8_C( 66), -INT8_C( 126), INT8_C( 100), -INT8_C( 10), -INT8_C( 44), -INT8_C( 28), INT8_C( 113), -INT8_C( 119), -INT8_C( 10), -INT8_C( 93) }, { INT8_C( 109), -INT8_C( 64), -INT8_C( 31), -INT8_C( 47), INT8_C( 104), -INT8_C( 13), INT8_C( 71), INT8_C( 10), -INT8_C( 90), INT8_C( 62), INT8_C( 102), -INT8_C( 45), INT8_C( 60), -INT8_C( 39), -INT8_C( 121), -INT8_C( 60), INT8_C( 117), -INT8_C( 59), INT8_C( 37), -INT8_C( 71), -INT8_C( 20), INT8_C( 65), -INT8_C( 54), -INT8_C( 58), -INT8_C( 96), -INT8_C( 70), -INT8_C( 87), INT8_C( 79), -INT8_C( 17), INT8_C( 50), -INT8_C( 51), INT8_C( 52) }, { -INT8_C( 26), INT8_C( 33), -INT8_C( 97), INT8_C( 31), -INT8_C( 46), INT8_MIN, -INT8_C( 55), -INT8_C( 71), -INT8_C( 45), -INT8_C( 8), INT8_C( 9), INT8_MIN, INT8_C( 85), INT8_C( 87), INT8_MIN, -INT8_C( 20), -INT8_C( 83), -INT8_C( 40), -INT8_C( 19), -INT8_C( 114), INT8_C( 34), INT8_C( 105), INT8_C( 90), INT8_C( 35), INT8_C( 75), INT8_C( 112), -INT8_C( 89), -INT8_C( 127), INT8_C( 95), INT8_C( 79), INT8_C( 40), INT8_C( 8) } }, { { -INT8_C( 127), -INT8_C( 111), -INT8_C( 31), INT8_C( 126), INT8_C( 108), INT8_C( 93), -INT8_C( 18), INT8_C( 111), -INT8_C( 105), INT8_C( 57), INT8_C( 30), -INT8_C( 40), INT8_C( 11), -INT8_C( 124), -INT8_C( 72), INT8_C( 21), INT8_C( 105), INT8_C( 64), -INT8_C( 9), INT8_C( 116), -INT8_C( 97), -INT8_C( 95), INT8_C( 6), -INT8_C( 94), INT8_C( 64), -INT8_C( 46), INT8_C( 55), INT8_C( 98), INT8_C( 21), -INT8_C( 72), -INT8_C( 125), INT8_C( 46) }, UINT32_C( 49881), { -INT8_C( 114), -INT8_C( 58), INT8_C( 3), INT8_C( 38), -INT8_C( 42), -INT8_C( 116), INT8_C( 75), INT8_C( 22), -INT8_C( 60), INT8_C( 47), INT8_C( 34), INT8_C( 47), -INT8_C( 105), INT8_C( 78), -INT8_C( 59), -INT8_C( 90), -INT8_C( 37), INT8_C( 116), -INT8_C( 87), -INT8_C( 26), INT8_C( 120), INT8_C( 99), -INT8_C( 89), INT8_C( 40), -INT8_C( 5), -INT8_C( 91), -INT8_C( 78), INT8_C( 22), INT8_C( 10), -INT8_C( 39), -INT8_C( 35), INT8_C( 56) }, { INT8_C( 4), INT8_C( 92), INT8_C( 58), -INT8_C( 42), INT8_C( 109), INT8_C( 85), -INT8_C( 76), INT8_C( 113), INT8_C( 58), -INT8_C( 80), INT8_C( 16), INT8_C( 52), INT8_C( 8), INT8_C( 35), -INT8_C( 21), INT8_C( 108), INT8_C( 126), -INT8_C( 36), -INT8_C( 43), -INT8_C( 64), INT8_C( 95), -INT8_C( 115), -INT8_C( 91), INT8_C( 38), INT8_C( 96), INT8_C( 13), INT8_C( 93), INT8_C( 14), INT8_C( 107), -INT8_C( 90), INT8_C( 99), INT8_C( 71) }, { -INT8_C( 110), -INT8_C( 111), -INT8_C( 31), -INT8_C( 4), INT8_C( 67), INT8_C( 93), -INT8_C( 1), INT8_MAX, -INT8_C( 105), -INT8_C( 33), INT8_C( 30), -INT8_C( 40), INT8_C( 11), -INT8_C( 124), -INT8_C( 80), INT8_C( 18), INT8_C( 105), INT8_C( 64), -INT8_C( 9), INT8_C( 116), -INT8_C( 97), -INT8_C( 95), INT8_C( 6), -INT8_C( 94), INT8_C( 64), -INT8_C( 46), INT8_C( 55), INT8_C( 98), INT8_C( 21), -INT8_C( 72), -INT8_C( 125), INT8_C( 46) } }, { { -INT8_C( 92), -INT8_C( 56), -INT8_C( 56), -INT8_C( 3), INT8_C( 106), -INT8_C( 125), -INT8_C( 24), -INT8_C( 120), -INT8_C( 42), -INT8_C( 1), INT8_C( 74), INT8_C( 47), INT8_C( 71), -INT8_C( 15), -INT8_C( 8), INT8_C( 57), INT8_C( 109), INT8_C( 68), -INT8_C( 69), INT8_C( 98), -INT8_C( 52), INT8_C( 55), INT8_C( 55), INT8_C( 101), -INT8_C( 58), INT8_C( 121), -INT8_C( 76), -INT8_C( 112), INT8_C( 50), -INT8_C( 36), -INT8_C( 36), INT8_C( 96) }, UINT32_C( 33993), { -INT8_C( 4), -INT8_C( 8), INT8_C( 72), INT8_C( 121), INT8_C( 22), -INT8_C( 61), -INT8_C( 95), INT8_C( 91), INT8_C( 13), -INT8_C( 124), INT8_C( 34), -INT8_C( 59), INT8_C( 96), INT8_C( 14), INT8_C( 20), INT8_C( 69), INT8_C( 18), INT8_C( 37), INT8_C( 87), -INT8_C( 61), -INT8_C( 47), -INT8_C( 17), INT8_C( 37), -INT8_C( 73), -INT8_C( 66), INT8_C( 43), -INT8_C( 63), INT8_C( 101), -INT8_C( 107), -INT8_C( 56), -INT8_C( 72), -INT8_C( 87) }, { INT8_C( 82), INT8_C( 121), -INT8_C( 76), INT8_C( 57), -INT8_C( 81), INT8_C( 56), -INT8_C( 72), INT8_C( 67), INT8_C( 58), INT8_C( 91), INT8_C( 66), -INT8_C( 59), -INT8_C( 79), -INT8_C( 29), -INT8_C( 96), INT8_MIN, INT8_C( 89), -INT8_C( 52), -INT8_C( 48), -INT8_C( 102), -INT8_C( 77), -INT8_C( 68), INT8_C( 9), INT8_C( 120), INT8_C( 28), -INT8_C( 42), INT8_C( 38), -INT8_C( 89), -INT8_C( 78), INT8_C( 109), INT8_C( 34), INT8_C( 43) }, { INT8_C( 78), -INT8_C( 56), -INT8_C( 56), INT8_MAX, INT8_C( 106), -INT8_C( 125), INT8_MIN, INT8_MAX, -INT8_C( 42), -INT8_C( 1), INT8_C( 100), INT8_C( 47), INT8_C( 71), -INT8_C( 15), -INT8_C( 8), -INT8_C( 59), INT8_C( 109), INT8_C( 68), -INT8_C( 69), INT8_C( 98), -INT8_C( 52), INT8_C( 55), INT8_C( 55), INT8_C( 101), -INT8_C( 58), INT8_C( 121), -INT8_C( 76), -INT8_C( 112), INT8_C( 50), -INT8_C( 36), -INT8_C( 36), INT8_C( 96) } }, { { -INT8_C( 119), INT8_C( 0), INT8_C( 65), -INT8_C( 53), -INT8_C( 18), INT8_C( 41), INT8_C( 12), INT8_C( 72), -INT8_C( 86), INT8_C( 39), INT8_C( 80), -INT8_C( 86), -INT8_C( 98), INT8_C( 71), -INT8_C( 10), INT8_C( 26), INT8_C( 2), INT8_C( 2), INT8_C( 81), -INT8_C( 15), -INT8_C( 127), INT8_C( 89), INT8_C( 120), -INT8_C( 108), INT8_C( 37), INT8_C( 34), INT8_C( 62), INT8_C( 1), INT8_C( 36), INT8_C( 86), INT8_C( 109), INT8_C( 112) }, UINT32_C( 9379), { INT8_C( 104), INT8_C( 79), INT8_C( 45), INT8_C( 74), -INT8_C( 6), -INT8_C( 53), INT8_C( 39), -INT8_C( 66), INT8_C( 44), -INT8_C( 68), INT8_C( 67), INT8_C( 50), -INT8_C( 91), -INT8_C( 88), INT8_C( 82), -INT8_C( 87), INT8_C( 16), INT8_C( 37), INT8_C( 87), -INT8_C( 66), -INT8_C( 77), INT8_C( 46), INT8_C( 25), INT8_C( 15), INT8_C( 45), -INT8_C( 13), -INT8_C( 39), -INT8_C( 113), INT8_C( 16), INT8_C( 13), -INT8_C( 73), -INT8_C( 102) }, { INT8_C( 96), INT8_C( 32), INT8_C( 87), -INT8_C( 68), INT8_C( 115), -INT8_C( 15), -INT8_C( 38), -INT8_C( 33), -INT8_C( 61), -INT8_C( 113), -INT8_C( 118), INT8_C( 12), INT8_C( 78), -INT8_C( 29), -INT8_C( 43), INT8_C( 48), -INT8_C( 55), INT8_C( 71), -INT8_C( 43), INT8_C( 21), -INT8_C( 98), -INT8_C( 50), INT8_C( 121), INT8_C( 116), INT8_C( 65), INT8_C( 79), INT8_MAX, INT8_C( 62), INT8_C( 2), INT8_C( 115), INT8_C( 10), INT8_C( 17) }, { INT8_MAX, INT8_C( 111), INT8_C( 65), -INT8_C( 53), -INT8_C( 18), -INT8_C( 68), INT8_C( 12), -INT8_C( 99), -INT8_C( 86), INT8_C( 39), -INT8_C( 51), -INT8_C( 86), -INT8_C( 98), -INT8_C( 117), -INT8_C( 10), INT8_C( 26), INT8_C( 2), INT8_C( 2), INT8_C( 81), -INT8_C( 15), -INT8_C( 127), INT8_C( 89), INT8_C( 120), -INT8_C( 108), INT8_C( 37), INT8_C( 34), INT8_C( 62), INT8_C( 1), INT8_C( 36), INT8_C( 86), INT8_C( 109), INT8_C( 112) } }, { { INT8_C( 106), -INT8_C( 38), INT8_C( 113), -INT8_C( 114), -INT8_C( 121), INT8_C( 92), -INT8_C( 30), INT8_C( 110), INT8_C( 56), -INT8_C( 93), -INT8_C( 61), INT8_C( 32), INT8_C( 8), INT8_C( 89), INT8_C( 67), -INT8_C( 108), -INT8_C( 52), INT8_C( 104), -INT8_C( 67), -INT8_C( 2), INT8_C( 105), INT8_C( 96), -INT8_C( 60), INT8_C( 83), -INT8_C( 123), -INT8_C( 16), INT8_C( 90), INT8_C( 53), INT8_C( 8), -INT8_C( 83), -INT8_C( 2), -INT8_C( 72) }, UINT32_C( 60777), { INT8_C( 87), INT8_C( 109), -INT8_C( 14), -INT8_C( 56), -INT8_C( 36), INT8_C( 50), INT8_C( 112), -INT8_C( 106), INT8_C( 115), INT8_C( 42), INT8_C( 109), INT8_C( 2), -INT8_C( 46), -INT8_C( 67), INT8_C( 26), INT8_C( 102), -INT8_C( 104), -INT8_C( 104), INT8_C( 5), -INT8_C( 69), -INT8_C( 12), -INT8_C( 38), -INT8_C( 100), -INT8_C( 59), INT8_C( 92), -INT8_C( 63), INT8_C( 99), INT8_C( 33), INT8_C( 56), -INT8_C( 66), -INT8_C( 59), -INT8_C( 33) }, { -INT8_C( 65), INT8_C( 98), INT8_C( 34), INT8_C( 105), INT8_C( 11), INT8_C( 40), -INT8_C( 94), INT8_C( 55), INT8_C( 93), INT8_C( 32), INT8_C( 16), -INT8_C( 123), -INT8_C( 53), INT8_C( 118), INT8_C( 76), -INT8_C( 7), -INT8_C( 126), -INT8_C( 96), INT8_C( 111), INT8_MIN, -INT8_C( 88), -INT8_C( 35), INT8_C( 107), INT8_C( 19), INT8_C( 54), -INT8_C( 31), INT8_C( 97), INT8_C( 15), -INT8_C( 66), INT8_C( 116), INT8_C( 96), -INT8_C( 1) }, { INT8_C( 22), -INT8_C( 38), INT8_C( 113), INT8_C( 49), -INT8_C( 121), INT8_C( 90), INT8_C( 18), INT8_C( 110), INT8_MAX, -INT8_C( 93), INT8_C( 125), -INT8_C( 121), INT8_C( 8), INT8_C( 51), INT8_C( 102), INT8_C( 95), -INT8_C( 52), INT8_C( 104), -INT8_C( 67), -INT8_C( 2), INT8_C( 105), INT8_C( 96), -INT8_C( 60), INT8_C( 83), -INT8_C( 123), -INT8_C( 16), INT8_C( 90), INT8_C( 53), INT8_C( 8), -INT8_C( 83), -INT8_C( 2), -INT8_C( 72) } }, { { INT8_C( 100), -INT8_C( 55), INT8_MIN, INT8_C( 72), INT8_C( 87), INT8_C( 65), INT8_C( 86), -INT8_C( 76), INT8_C( 80), INT8_C( 106), -INT8_C( 121), INT8_MAX, -INT8_C( 112), -INT8_C( 35), -INT8_C( 2), -INT8_C( 44), INT8_C( 49), -INT8_C( 82), -INT8_C( 22), -INT8_C( 13), -INT8_C( 17), -INT8_C( 8), -INT8_C( 14), INT8_C( 108), INT8_C( 126), INT8_C( 95), -INT8_C( 50), -INT8_C( 76), INT8_C( 116), -INT8_C( 6), INT8_C( 17), -INT8_C( 97) }, UINT32_C( 17935), { -INT8_C( 36), INT8_C( 107), INT8_C( 99), -INT8_C( 88), -INT8_C( 108), -INT8_C( 54), -INT8_C( 107), -INT8_C( 60), INT8_C( 33), INT8_C( 111), INT8_C( 96), INT8_C( 117), INT8_C( 43), -INT8_C( 46), -INT8_C( 19), -INT8_C( 103), -INT8_C( 107), -INT8_C( 51), INT8_C( 122), INT8_C( 90), INT8_C( 34), -INT8_C( 40), -INT8_C( 107), INT8_C( 117), INT8_C( 95), INT8_C( 30), -INT8_C( 30), INT8_C( 112), INT8_C( 86), -INT8_C( 46), -INT8_C( 2), INT8_C( 109) }, { INT8_C( 69), INT8_C( 50), INT8_C( 112), INT8_C( 36), -INT8_C( 68), INT8_C( 41), INT8_C( 61), INT8_C( 95), -INT8_C( 71), INT8_C( 65), -INT8_C( 90), -INT8_C( 46), INT8_C( 10), INT8_C( 89), -INT8_C( 35), -INT8_C( 68), -INT8_C( 54), INT8_C( 48), INT8_MIN, -INT8_C( 108), -INT8_C( 48), -INT8_C( 34), -INT8_C( 69), -INT8_C( 69), INT8_C( 0), INT8_C( 32), INT8_C( 8), INT8_C( 21), INT8_C( 10), INT8_C( 48), -INT8_C( 60), INT8_C( 55) }, { INT8_C( 33), INT8_MAX, INT8_MAX, -INT8_C( 52), INT8_C( 87), INT8_C( 65), INT8_C( 86), -INT8_C( 76), INT8_C( 80), INT8_MAX, INT8_C( 6), INT8_MAX, -INT8_C( 112), -INT8_C( 35), -INT8_C( 54), -INT8_C( 44), INT8_C( 49), -INT8_C( 82), -INT8_C( 22), -INT8_C( 13), -INT8_C( 17), -INT8_C( 8), -INT8_C( 14), INT8_C( 108), INT8_C( 126), INT8_C( 95), -INT8_C( 50), -INT8_C( 76), INT8_C( 116), -INT8_C( 6), INT8_C( 17), -INT8_C( 97) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m256i src = simde_x_mm256_loadu_epi8(test_vec[i].src); simde__m256i a = simde_x_mm256_loadu_epi8(test_vec[i].a); simde__m256i b = simde_x_mm256_loadu_epi8(test_vec[i].b); simde__m256i r = simde_mm256_mask_adds_epi8(src, test_vec[i].k, a, b); simde_test_x86_assert_equal_i8x32(r, simde_x_mm256_loadu_epi8(test_vec[i].r)); } return 0; } static int test_simde_mm256_maskz_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const simde__mmask32 k; const int8_t a[32]; const int8_t b[32]; const int8_t r[32]; } test_vec[] = { { UINT32_C( 14766), { INT8_C( 55), INT8_C( 62), INT8_C( 61), -INT8_C( 18), INT8_C( 70), -INT8_C( 29), INT8_C( 26), -INT8_C( 17), INT8_C( 21), INT8_C( 30), -INT8_C( 94), -INT8_C( 9), INT8_C( 2), INT8_C( 115), -INT8_C( 89), -INT8_C( 32), INT8_C( 70), -INT8_C( 105), INT8_C( 70), INT8_C( 70), INT8_C( 61), INT8_C( 10), INT8_C( 9), INT8_C( 43), INT8_C( 68), -INT8_C( 98), -INT8_C( 100), -INT8_C( 127), -INT8_C( 29), INT8_C( 26), -INT8_C( 67), -INT8_C( 57) }, { INT8_C( 66), INT8_C( 16), INT8_C( 100), -INT8_C( 70), INT8_C( 89), -INT8_C( 69), -INT8_C( 68), -INT8_C( 110), INT8_C( 64), -INT8_C( 113), -INT8_C( 40), INT8_C( 48), INT8_C( 79), -INT8_C( 27), INT8_C( 25), INT8_C( 42), -INT8_C( 19), INT8_C( 67), INT8_C( 63), -INT8_C( 22), -INT8_C( 125), INT8_C( 59), -INT8_C( 74), INT8_C( 64), -INT8_C( 96), INT8_C( 66), INT8_C( 71), -INT8_C( 80), INT8_C( 23), -INT8_C( 102), INT8_C( 65), INT8_C( 126) }, { INT8_C( 0), INT8_C( 78), INT8_MAX, -INT8_C( 88), INT8_C( 0), -INT8_C( 98), INT8_C( 0), -INT8_C( 127), INT8_C( 85), INT8_C( 0), INT8_C( 0), INT8_C( 39), INT8_C( 81), INT8_C( 88), 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( 0), INT8_C( 0), INT8_C( 0) } }, { UINT32_C( 48711), { -INT8_C( 23), -INT8_C( 106), INT8_C( 46), -INT8_C( 92), -INT8_C( 53), -INT8_C( 100), -INT8_C( 19), -INT8_C( 86), -INT8_C( 3), INT8_C( 102), INT8_C( 27), INT8_C( 95), INT8_C( 80), INT8_C( 93), INT8_C( 104), -INT8_C( 65), -INT8_C( 117), -INT8_C( 64), INT8_C( 111), -INT8_C( 87), -INT8_C( 92), INT8_C( 32), INT8_C( 69), -INT8_C( 39), INT8_C( 50), -INT8_C( 78), INT8_C( 69), INT8_C( 71), -INT8_C( 10), -INT8_C( 95), INT8_C( 19), INT8_C( 78) }, { -INT8_C( 13), INT8_C( 64), INT8_C( 95), -INT8_C( 107), INT8_C( 32), INT8_C( 21), INT8_C( 116), -INT8_C( 18), -INT8_C( 61), INT8_C( 88), INT8_C( 111), -INT8_C( 60), -INT8_C( 5), INT8_C( 0), -INT8_C( 87), -INT8_C( 89), -INT8_C( 75), -INT8_C( 119), INT8_C( 100), INT8_C( 56), INT8_C( 112), -INT8_C( 120), -INT8_C( 115), -INT8_C( 17), -INT8_C( 19), INT8_C( 30), -INT8_C( 93), INT8_C( 18), INT8_C( 40), -INT8_C( 94), -INT8_C( 36), -INT8_C( 32) }, { -INT8_C( 36), -INT8_C( 42), INT8_MAX, INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 97), INT8_C( 0), INT8_C( 0), INT8_MAX, INT8_MAX, INT8_C( 35), INT8_C( 75), INT8_C( 93), INT8_C( 0), INT8_MIN, 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( 0) } }, { UINT32_C( 22629), { INT8_C( 0), INT8_C( 69), -INT8_C( 39), -INT8_C( 106), -INT8_C( 84), INT8_C( 19), INT8_C( 31), -INT8_C( 16), -INT8_C( 113), -INT8_C( 23), INT8_C( 40), INT8_C( 69), -INT8_C( 7), -INT8_C( 85), -INT8_C( 89), -INT8_C( 117), INT8_C( 70), INT8_C( 44), INT8_C( 115), INT8_C( 20), INT8_C( 16), INT8_C( 45), -INT8_C( 30), INT8_C( 36), INT8_C( 38), -INT8_C( 49), INT8_C( 88), INT8_C( 80), INT8_C( 78), INT8_C( 52), INT8_C( 70), INT8_C( 47) }, { -INT8_C( 37), -INT8_C( 51), -INT8_C( 78), -INT8_C( 33), INT8_C( 76), INT8_C( 24), INT8_C( 2), INT8_C( 44), INT8_C( 68), -INT8_C( 42), INT8_C( 1), -INT8_C( 82), -INT8_C( 7), -INT8_C( 101), -INT8_C( 121), -INT8_C( 5), INT8_C( 42), INT8_C( 31), -INT8_C( 59), -INT8_C( 111), INT8_MIN, -INT8_C( 74), -INT8_C( 80), -INT8_C( 43), -INT8_C( 92), -INT8_C( 5), INT8_C( 56), -INT8_C( 57), -INT8_C( 14), INT8_C( 35), -INT8_C( 94), -INT8_C( 10) }, { -INT8_C( 37), INT8_C( 0), -INT8_C( 117), INT8_C( 0), INT8_C( 0), INT8_C( 43), INT8_C( 33), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 13), -INT8_C( 14), INT8_C( 0), INT8_MIN, 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( 0), INT8_C( 0) } }, { UINT32_C( 34647), { INT8_C( 22), -INT8_C( 101), -INT8_C( 1), INT8_C( 44), INT8_C( 87), INT8_C( 24), -INT8_C( 84), -INT8_C( 58), -INT8_C( 20), INT8_C( 81), -INT8_C( 60), -INT8_C( 24), INT8_C( 6), INT8_C( 70), -INT8_C( 48), INT8_C( 111), -INT8_C( 65), INT8_C( 60), -INT8_C( 59), INT8_C( 20), INT8_C( 6), -INT8_C( 65), -INT8_C( 88), INT8_C( 103), INT8_C( 43), INT8_C( 22), INT8_C( 95), INT8_C( 54), INT8_C( 91), INT8_C( 116), INT8_C( 118), INT8_C( 1) }, { -INT8_C( 64), -INT8_C( 72), -INT8_C( 36), -INT8_C( 45), -INT8_C( 62), -INT8_C( 121), INT8_C( 20), INT8_C( 98), INT8_C( 9), -INT8_C( 3), -INT8_C( 33), -INT8_C( 57), -INT8_C( 77), INT8_C( 54), INT8_C( 14), -INT8_C( 101), INT8_C( 57), -INT8_C( 123), -INT8_C( 71), INT8_C( 16), INT8_C( 102), INT8_C( 5), -INT8_C( 127), INT8_C( 46), INT8_C( 112), -INT8_C( 64), INT8_C( 3), INT8_C( 32), -INT8_C( 70), -INT8_C( 90), -INT8_C( 38), -INT8_C( 60) }, { -INT8_C( 42), INT8_MIN, -INT8_C( 37), INT8_C( 0), INT8_C( 25), INT8_C( 0), -INT8_C( 64), INT8_C( 0), -INT8_C( 11), INT8_C( 78), -INT8_C( 93), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 10), 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( 0) } }, { UINT32_C( 33178), { -INT8_C( 112), -INT8_C( 114), -INT8_C( 27), INT8_C( 55), INT8_C( 41), INT8_C( 10), INT8_C( 103), -INT8_C( 121), INT8_C( 66), -INT8_C( 119), INT8_C( 82), -INT8_C( 125), -INT8_C( 120), INT8_C( 5), INT8_C( 41), -INT8_C( 55), -INT8_C( 114), INT8_C( 124), -INT8_C( 115), INT8_C( 57), INT8_C( 20), -INT8_C( 84), -INT8_C( 7), INT8_C( 102), -INT8_C( 77), -INT8_C( 5), -INT8_C( 59), -INT8_C( 62), INT8_C( 124), INT8_C( 14), INT8_C( 57), INT8_C( 94) }, { -INT8_C( 126), INT8_C( 83), INT8_C( 7), INT8_C( 67), INT8_C( 33), INT8_C( 82), -INT8_C( 24), INT8_C( 96), -INT8_C( 112), -INT8_C( 43), INT8_C( 36), INT8_C( 36), -INT8_C( 99), -INT8_C( 23), INT8_C( 74), INT8_C( 27), -INT8_C( 72), INT8_C( 23), -INT8_C( 17), -INT8_C( 4), -INT8_C( 25), -INT8_C( 84), -INT8_C( 55), -INT8_C( 115), -INT8_C( 36), INT8_C( 16), INT8_C( 33), INT8_C( 13), INT8_C( 3), INT8_C( 29), -INT8_C( 53), INT8_MAX }, { INT8_C( 0), -INT8_C( 31), INT8_C( 0), INT8_C( 122), INT8_C( 74), INT8_C( 0), INT8_C( 0), -INT8_C( 25), -INT8_C( 46), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 28), 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( 0) } }, { UINT32_C( 23935), { INT8_C( 37), INT8_C( 27), INT8_C( 77), -INT8_C( 113), INT8_C( 4), -INT8_C( 36), -INT8_C( 1), INT8_C( 117), -INT8_C( 77), INT8_C( 42), INT8_C( 104), INT8_C( 109), -INT8_C( 9), INT8_C( 94), INT8_C( 23), INT8_C( 25), -INT8_C( 69), -INT8_C( 80), -INT8_C( 76), INT8_C( 22), -INT8_C( 44), -INT8_C( 48), INT8_C( 100), -INT8_C( 87), INT8_C( 73), INT8_C( 64), INT8_C( 74), INT8_C( 77), -INT8_C( 104), INT8_C( 109), INT8_C( 73), -INT8_C( 100) }, { INT8_C( 34), INT8_C( 89), INT8_C( 99), INT8_C( 37), INT8_C( 2), INT8_C( 58), INT8_C( 49), INT8_C( 10), INT8_C( 72), -INT8_C( 35), INT8_C( 120), INT8_C( 43), INT8_C( 84), -INT8_C( 59), -INT8_C( 72), INT8_C( 106), INT8_C( 33), INT8_C( 86), INT8_C( 69), -INT8_C( 42), -INT8_C( 14), INT8_C( 32), INT8_C( 113), -INT8_C( 101), -INT8_C( 108), -INT8_C( 77), INT8_C( 126), -INT8_C( 15), INT8_C( 63), INT8_C( 113), INT8_C( 108), -INT8_C( 117) }, { INT8_C( 71), INT8_C( 116), INT8_MAX, -INT8_C( 76), INT8_C( 6), INT8_C( 22), INT8_C( 48), INT8_C( 0), -INT8_C( 5), INT8_C( 0), INT8_MAX, INT8_MAX, INT8_C( 75), INT8_C( 0), -INT8_C( 49), 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( 0), INT8_C( 0) } }, { UINT32_C( 30325), { -INT8_C( 38), INT8_C( 61), -INT8_C( 91), INT8_C( 83), -INT8_C( 95), -INT8_C( 17), INT8_C( 39), -INT8_C( 69), -INT8_C( 65), -INT8_C( 37), -INT8_C( 112), -INT8_C( 103), INT8_C( 54), -INT8_C( 77), INT8_C( 39), -INT8_C( 98), -INT8_C( 45), -INT8_C( 124), -INT8_C( 82), -INT8_C( 119), -INT8_C( 44), -INT8_C( 17), -INT8_C( 83), -INT8_C( 33), INT8_C( 89), -INT8_C( 29), INT8_C( 105), INT8_C( 39), -INT8_C( 32), -INT8_C( 38), INT8_C( 98), -INT8_C( 47) }, { -INT8_C( 109), INT8_C( 105), -INT8_C( 21), INT8_C( 27), INT8_C( 2), -INT8_C( 112), -INT8_C( 93), INT8_C( 15), -INT8_C( 75), -INT8_C( 2), INT8_C( 65), -INT8_C( 112), -INT8_C( 6), INT8_C( 59), -INT8_C( 94), INT8_C( 123), INT8_C( 35), -INT8_C( 22), -INT8_C( 85), INT8_C( 118), INT8_C( 60), INT8_C( 28), INT8_C( 72), INT8_C( 106), -INT8_C( 104), -INT8_C( 83), -INT8_C( 41), -INT8_C( 31), INT8_C( 80), INT8_C( 85), -INT8_C( 69), INT8_C( 37) }, { INT8_MIN, INT8_C( 0), -INT8_C( 112), INT8_C( 0), -INT8_C( 93), INT8_MIN, -INT8_C( 54), INT8_C( 0), INT8_C( 0), -INT8_C( 39), -INT8_C( 47), INT8_C( 0), INT8_C( 48), -INT8_C( 18), -INT8_C( 55), 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( 0), INT8_C( 0) } }, { UINT32_C( 38151), { INT8_C( 24), INT8_C( 22), INT8_C( 106), INT8_C( 19), -INT8_C( 11), INT8_C( 73), -INT8_C( 76), -INT8_C( 100), -INT8_C( 66), -INT8_C( 18), INT8_C( 0), INT8_C( 116), -INT8_C( 99), INT8_C( 9), -INT8_C( 107), -INT8_C( 41), INT8_C( 2), -INT8_C( 51), -INT8_C( 119), -INT8_C( 50), INT8_C( 52), -INT8_C( 79), -INT8_C( 112), -INT8_C( 105), INT8_C( 121), -INT8_C( 1), -INT8_C( 33), -INT8_C( 59), -INT8_C( 40), INT8_C( 113), -INT8_C( 108), -INT8_C( 42) }, { -INT8_C( 111), -INT8_C( 9), -INT8_C( 21), INT8_MIN, INT8_C( 68), -INT8_C( 45), -INT8_C( 26), INT8_C( 55), INT8_C( 54), -INT8_C( 115), -INT8_C( 52), -INT8_C( 115), INT8_C( 11), -INT8_C( 27), INT8_C( 14), INT8_C( 69), INT8_C( 105), -INT8_C( 79), -INT8_C( 62), -INT8_C( 2), INT8_C( 99), INT8_C( 81), -INT8_C( 127), INT8_C( 0), -INT8_C( 25), INT8_C( 66), INT8_C( 49), -INT8_C( 21), INT8_C( 3), INT8_C( 110), -INT8_C( 88), -INT8_C( 74) }, { -INT8_C( 87), INT8_C( 13), INT8_C( 85), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 12), INT8_C( 0), -INT8_C( 52), INT8_C( 0), -INT8_C( 88), INT8_C( 0), INT8_C( 0), INT8_C( 28), 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( 0) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m256i a = simde_x_mm256_loadu_epi8(test_vec[i].a); simde__m256i b = simde_x_mm256_loadu_epi8(test_vec[i].b); simde__m256i r = simde_mm256_maskz_adds_epi8(test_vec[i].k, a, b); simde_test_x86_assert_equal_i8x32(r, simde_x_mm256_loadu_epi8(test_vec[i].r)); } return 0; } static int test_simde_mm256_mask_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int16_t src[16]; const simde__mmask16 k; const int16_t a[16]; const int16_t b[16]; const int16_t r[16]; } test_vec[] = { { { -INT16_C( 13954), -INT16_C( 13566), INT16_C( 13346), -INT16_C( 19324), INT16_C( 20767), -INT16_C( 25591), -INT16_C( 15670), INT16_C( 22319), -INT16_C( 15735), INT16_C( 15143), INT16_C( 21746), -INT16_C( 32557), INT16_C( 16862), INT16_C( 27014), -INT16_C( 1471), -INT16_C( 16462) }, UINT16_C(46276), { -INT16_C( 6518), INT16_C( 3817), INT16_C( 2202), -INT16_C( 23713), INT16_C( 10660), -INT16_C( 11419), -INT16_C( 4480), -INT16_C( 22379), -INT16_C( 30679), -INT16_C( 516), -INT16_C( 9720), -INT16_C( 28866), INT16_C( 32579), -INT16_C( 2679), INT16_C( 19774), -INT16_C( 13910) }, { -INT16_C( 27853), -INT16_C( 12841), INT16_C( 14235), INT16_C( 16240), -INT16_C( 10912), -INT16_C( 7917), -INT16_C( 22332), -INT16_C( 4727), -INT16_C( 31440), INT16_C( 14826), INT16_C( 10591), -INT16_C( 23864), INT16_C( 20904), -INT16_C( 6249), INT16_C( 16799), -INT16_C( 11600) }, { -INT16_C( 13954), -INT16_C( 13566), INT16_C( 16437), -INT16_C( 19324), INT16_C( 20767), -INT16_C( 25591), -INT16_C( 26812), -INT16_C( 27106), -INT16_C( 15735), INT16_C( 15143), INT16_C( 871), -INT16_C( 32557), INT16_MAX, -INT16_C( 8928), -INT16_C( 1471), -INT16_C( 25510) } }, { { -INT16_C( 30764), INT16_C( 28576), INT16_C( 4286), INT16_C( 8111), -INT16_C( 15642), -INT16_C( 22016), -INT16_C( 30358), -INT16_C( 25705), -INT16_C( 32242), INT16_C( 28116), -INT16_C( 25429), INT16_C( 21263), -INT16_C( 22803), -INT16_C( 29638), -INT16_C( 5400), -INT16_C( 17313) }, UINT16_C(65394), { INT16_C( 12332), -INT16_C( 9457), -INT16_C( 2737), INT16_C( 20381), INT16_C( 1951), INT16_C( 14296), -INT16_C( 6494), INT16_C( 30393), INT16_C( 25683), INT16_C( 25106), INT16_C( 183), -INT16_C( 3575), -INT16_C( 3700), -INT16_C( 5156), INT16_C( 20141), -INT16_C( 9750) }, { -INT16_C( 1409), -INT16_C( 12620), INT16_C( 20975), -INT16_C( 28898), -INT16_C( 2471), -INT16_C( 1082), INT16_C( 32733), INT16_C( 12402), -INT16_C( 31517), -INT16_C( 25965), -INT16_C( 25468), INT16_C( 4492), INT16_C( 27021), INT16_C( 15100), -INT16_C( 6217), INT16_C( 13844) }, { -INT16_C( 30764), -INT16_C( 22077), INT16_C( 4286), INT16_C( 8111), -INT16_C( 520), INT16_C( 13214), INT16_C( 26239), -INT16_C( 25705), -INT16_C( 5834), -INT16_C( 859), -INT16_C( 25285), INT16_C( 917), INT16_C( 23321), INT16_C( 9944), INT16_C( 13924), INT16_C( 4094) } }, { { -INT16_C( 14111), -INT16_C( 12283), INT16_C( 8986), INT16_C( 29535), INT16_C( 9497), -INT16_C( 2450), -INT16_C( 8028), -INT16_C( 30937), -INT16_C( 17819), -INT16_C( 5854), -INT16_C( 20906), -INT16_C( 7174), -INT16_C( 2281), -INT16_C( 12515), INT16_C( 12766), -INT16_C( 16635) }, UINT16_C( 2810), { INT16_C( 5263), -INT16_C( 4307), INT16_C( 18311), -INT16_C( 2796), -INT16_C( 18115), INT16_C( 25814), INT16_C( 15168), INT16_C( 25118), INT16_C( 29732), INT16_C( 7953), INT16_C( 10327), INT16_C( 29974), -INT16_C( 2825), -INT16_C( 602), -INT16_C( 24397), INT16_C( 16903) }, { INT16_C( 13748), INT16_C( 15153), INT16_C( 18044), -INT16_C( 18127), INT16_C( 2047), INT16_C( 16158), INT16_C( 15426), INT16_C( 26274), -INT16_C( 19535), INT16_C( 2181), -INT16_C( 25637), -INT16_C( 11395), INT16_C( 9359), INT16_C( 17104), -INT16_C( 10300), INT16_C( 31109) }, { -INT16_C( 14111), INT16_C( 10846), INT16_C( 8986), -INT16_C( 20923), -INT16_C( 16068), INT16_MAX, INT16_C( 30594), INT16_MAX, -INT16_C( 17819), INT16_C( 10134), -INT16_C( 20906), INT16_C( 18579), -INT16_C( 2281), -INT16_C( 12515), INT16_C( 12766), -INT16_C( 16635) } }, { { -INT16_C( 18932), -INT16_C( 30540), -INT16_C( 6660), -INT16_C( 1214), INT16_C( 24812), INT16_C( 11835), -INT16_C( 8804), INT16_C( 19861), INT16_C( 6800), INT16_C( 27478), -INT16_C( 11338), INT16_C( 17726), INT16_C( 3831), -INT16_C( 17272), INT16_C( 3558), -INT16_C( 3531) }, UINT16_C(59843), { -INT16_C( 16261), -INT16_C( 16945), -INT16_C( 17477), -INT16_C( 2531), -INT16_C( 17942), INT16_C( 32723), INT16_C( 25351), INT16_C( 23961), INT16_C( 20431), INT16_C( 3376), INT16_C( 10389), INT16_C( 7452), INT16_C( 740), INT16_C( 6442), -INT16_C( 4620), INT16_C( 28418) }, { -INT16_C( 11859), INT16_C( 26924), INT16_C( 18829), INT16_C( 30559), INT16_C( 13059), INT16_C( 2806), -INT16_C( 28778), INT16_C( 25959), -INT16_C( 26657), INT16_C( 29811), -INT16_C( 28737), -INT16_C( 23663), -INT16_C( 17519), -INT16_C( 31300), -INT16_C( 16472), INT16_C( 22261) }, { -INT16_C( 28120), INT16_C( 9979), -INT16_C( 6660), -INT16_C( 1214), INT16_C( 24812), INT16_C( 11835), -INT16_C( 3427), INT16_MAX, -INT16_C( 6226), INT16_C( 27478), -INT16_C( 11338), -INT16_C( 16211), INT16_C( 3831), -INT16_C( 24858), -INT16_C( 21092), INT16_MAX } }, { { INT16_C( 8592), INT16_C( 7615), INT16_C( 7787), INT16_C( 28308), -INT16_C( 30127), -INT16_C( 6024), -INT16_C( 8422), -INT16_C( 1715), -INT16_C( 16266), INT16_C( 13933), -INT16_C( 433), -INT16_C( 7975), -INT16_C( 26951), INT16_C( 24934), INT16_C( 23381), -INT16_C( 6729) }, UINT16_C(30332), { -INT16_C( 6397), -INT16_C( 26731), -INT16_C( 6571), -INT16_C( 13022), INT16_C( 15566), INT16_C( 7340), INT16_C( 9013), -INT16_C( 23844), INT16_C( 11353), INT16_C( 12960), INT16_C( 22796), INT16_C( 29384), INT16_C( 7610), INT16_C( 29389), INT16_C( 18947), INT16_C( 1768) }, { INT16_C( 32049), -INT16_C( 30819), -INT16_C( 16540), INT16_C( 12884), INT16_C( 507), INT16_C( 12366), INT16_C( 11044), INT16_C( 32210), INT16_C( 29271), INT16_C( 25519), INT16_C( 30923), -INT16_C( 31018), -INT16_C( 23659), -INT16_C( 26376), -INT16_C( 7955), INT16_C( 8094) }, { INT16_C( 8592), INT16_C( 7615), -INT16_C( 23111), -INT16_C( 138), INT16_C( 16073), INT16_C( 19706), INT16_C( 20057), -INT16_C( 1715), -INT16_C( 16266), INT16_MAX, INT16_MAX, -INT16_C( 7975), -INT16_C( 16049), INT16_C( 3013), INT16_C( 10992), -INT16_C( 6729) } }, { { INT16_C( 15454), -INT16_C( 15706), -INT16_C( 1285), -INT16_C( 2060), INT16_C( 17403), INT16_C( 7975), -INT16_C( 1426), -INT16_C( 14948), INT16_C( 19564), INT16_C( 14376), -INT16_C( 316), INT16_C( 22974), -INT16_C( 18782), -INT16_C( 28686), -INT16_C( 28522), -INT16_C( 2898) }, UINT16_C(21708), { -INT16_C( 14154), -INT16_C( 21681), INT16_C( 19135), -INT16_C( 6418), INT16_C( 23658), INT16_C( 1760), INT16_C( 19745), INT16_C( 18770), INT16_C( 5765), INT16_C( 17224), -INT16_C( 5520), INT16_C( 25337), -INT16_C( 28807), INT16_C( 10482), -INT16_C( 16508), INT16_C( 14972) }, { -INT16_C( 13433), INT16_C( 18149), -INT16_C( 11498), -INT16_C( 32724), INT16_C( 3375), INT16_C( 20614), -INT16_C( 9894), -INT16_C( 8294), -INT16_C( 7441), INT16_C( 24354), INT16_C( 7116), INT16_C( 17857), -INT16_C( 19286), INT16_C( 11885), -INT16_C( 5517), -INT16_C( 1431) }, { INT16_C( 15454), -INT16_C( 15706), INT16_C( 7637), INT16_MIN, INT16_C( 17403), INT16_C( 7975), INT16_C( 9851), INT16_C( 10476), INT16_C( 19564), INT16_C( 14376), INT16_C( 1596), INT16_C( 22974), INT16_MIN, -INT16_C( 28686), -INT16_C( 22025), -INT16_C( 2898) } }, { { INT16_C( 20149), -INT16_C( 13504), INT16_C( 27682), INT16_C( 20811), -INT16_C( 11655), -INT16_C( 11358), INT16_C( 15531), -INT16_C( 25934), -INT16_C( 11234), -INT16_C( 5382), -INT16_C( 17425), -INT16_C( 26065), -INT16_C( 25233), -INT16_C( 7480), INT16_C( 12679), INT16_C( 15580) }, UINT16_C( 7296), { -INT16_C( 24056), INT16_C( 21385), INT16_C( 755), -INT16_C( 27355), -INT16_C( 12074), -INT16_C( 30511), -INT16_C( 4245), INT16_C( 25949), INT16_C( 19673), INT16_C( 2336), -INT16_C( 28442), -INT16_C( 20570), INT16_C( 11634), INT16_C( 20448), INT16_C( 24681), INT16_C( 29035) }, { -INT16_C( 3070), -INT16_C( 2363), -INT16_C( 5385), -INT16_C( 12917), INT16_C( 23995), INT16_C( 9813), -INT16_C( 19892), INT16_C( 9867), -INT16_C( 21505), -INT16_C( 6865), -INT16_C( 10949), -INT16_C( 20844), INT16_C( 29954), INT16_C( 27645), INT16_C( 26837), -INT16_C( 10019) }, { INT16_C( 20149), -INT16_C( 13504), INT16_C( 27682), INT16_C( 20811), -INT16_C( 11655), -INT16_C( 11358), INT16_C( 15531), INT16_MAX, -INT16_C( 11234), -INT16_C( 5382), INT16_MIN, INT16_MIN, INT16_MAX, -INT16_C( 7480), INT16_C( 12679), INT16_C( 15580) } }, { { -INT16_C( 23971), INT16_C( 21710), INT16_C( 22924), INT16_C( 18209), INT16_C( 30390), INT16_C( 877), -INT16_C( 2007), INT16_C( 10281), INT16_C( 22692), -INT16_C( 8435), -INT16_C( 24019), INT16_C( 12173), -INT16_C( 30185), -INT16_C( 4966), INT16_C( 30707), INT16_C( 20676) }, UINT16_C(37401), { -INT16_C( 22876), -INT16_C( 14868), -INT16_C( 23827), INT16_C( 23355), INT16_C( 25765), -INT16_C( 12717), -INT16_C( 2164), -INT16_C( 26074), INT16_C( 21463), INT16_C( 25660), INT16_C( 21378), INT16_C( 7663), -INT16_C( 7617), INT16_C( 1172), -INT16_C( 20942), -INT16_C( 10602) }, { -INT16_C( 32172), INT16_C( 16795), -INT16_C( 10715), -INT16_C( 13668), -INT16_C( 4037), -INT16_C( 14439), -INT16_C( 16409), -INT16_C( 16799), -INT16_C( 25325), -INT16_C( 27357), INT16_C( 4848), INT16_C( 12466), INT16_C( 18420), INT16_C( 9780), -INT16_C( 13579), INT16_C( 18940) }, { INT16_MIN, INT16_C( 21710), INT16_C( 22924), INT16_C( 9687), INT16_C( 21728), INT16_C( 877), -INT16_C( 2007), INT16_C( 10281), INT16_C( 22692), -INT16_C( 1697), -INT16_C( 24019), INT16_C( 12173), INT16_C( 10803), -INT16_C( 4966), INT16_C( 30707), INT16_C( 8338) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m256i src = simde_x_mm256_loadu_epi16(test_vec[i].src); simde__m256i a = simde_x_mm256_loadu_epi16(test_vec[i].a); simde__m256i b = simde_x_mm256_loadu_epi16(test_vec[i].b); simde__m256i r = simde_mm256_mask_adds_epi16(src, test_vec[i].k, a, b); simde_test_x86_assert_equal_i16x16(r, simde_x_mm256_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm256_maskz_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const simde__mmask16 k; const int16_t a[16]; const int16_t b[16]; const int16_t r[16]; } test_vec[] = { { UINT16_C(31891), { -INT16_C( 23134), -INT16_C( 31842), INT16_C( 15981), INT16_C( 19589), -INT16_C( 21450), -INT16_C( 21374), -INT16_C( 7737), -INT16_C( 739), -INT16_C( 31345), INT16_C( 27262), INT16_C( 24141), -INT16_C( 681), INT16_C( 10726), -INT16_C( 29885), -INT16_C( 10531), INT16_C( 32519) }, { -INT16_C( 23173), -INT16_C( 5886), -INT16_C( 30749), INT16_C( 6453), -INT16_C( 18636), -INT16_C( 1082), -INT16_C( 7272), INT16_C( 10232), INT16_C( 30312), -INT16_C( 19055), -INT16_C( 5932), -INT16_C( 17486), -INT16_C( 2799), -INT16_C( 4538), INT16_C( 19915), INT16_C( 18286) }, { INT16_MIN, INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_C( 9493), INT16_C( 0), INT16_C( 0), INT16_C( 18209), -INT16_C( 18167), INT16_C( 7927), INT16_MIN, INT16_C( 9384), INT16_C( 0) } }, { UINT16_C(28914), { -INT16_C( 10960), INT16_C( 26104), INT16_C( 11503), -INT16_C( 19172), -INT16_C( 19417), INT16_C( 8344), INT16_C( 475), INT16_C( 27798), INT16_C( 27574), INT16_C( 26964), INT16_C( 25894), INT16_C( 27742), INT16_C( 10836), -INT16_C( 15687), -INT16_C( 21647), -INT16_C( 24270) }, { INT16_C( 10880), INT16_C( 28422), INT16_C( 8790), INT16_C( 32292), -INT16_C( 16938), -INT16_C( 20066), INT16_C( 13502), INT16_C( 29725), INT16_C( 29087), -INT16_C( 14883), INT16_C( 15574), INT16_C( 10801), -INT16_C( 5530), -INT16_C( 10260), INT16_C( 8085), INT16_C( 5752) }, { INT16_C( 0), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_MIN, -INT16_C( 11722), INT16_C( 13977), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 5306), -INT16_C( 25947), -INT16_C( 13562), INT16_C( 0) } }, { UINT16_C(32329), { -INT16_C( 24443), -INT16_C( 21856), INT16_C( 30238), -INT16_C( 17305), INT16_C( 9511), INT16_C( 17648), -INT16_C( 28519), INT16_C( 30645), -INT16_C( 29867), -INT16_C( 30797), INT16_C( 6582), -INT16_C( 23951), INT16_C( 2032), INT16_C( 26817), INT16_C( 2845), -INT16_C( 23834) }, { -INT16_C( 31061), -INT16_C( 14004), -INT16_C( 19460), INT16_C( 9093), INT16_C( 30168), INT16_C( 29287), INT16_C( 7173), INT16_C( 23529), -INT16_C( 25433), INT16_C( 24034), INT16_C( 21429), -INT16_C( 23296), -INT16_C( 16038), INT16_C( 30477), -INT16_C( 3124), INT16_C( 30490) }, { INT16_MIN, INT16_C( 0), INT16_C( 0), -INT16_C( 8212), INT16_C( 0), INT16_C( 0), -INT16_C( 21346), INT16_C( 0), INT16_C( 0), -INT16_C( 6763), INT16_C( 28011), INT16_MIN, -INT16_C( 14006), INT16_MAX, -INT16_C( 279), INT16_C( 0) } }, { UINT16_C(26233), { INT16_C( 30016), -INT16_C( 15078), -INT16_C( 3432), -INT16_C( 197), INT16_C( 16484), INT16_C( 19739), -INT16_C( 15717), INT16_C( 32233), -INT16_C( 25056), INT16_C( 8401), INT16_C( 11075), INT16_C( 20705), -INT16_C( 20829), -INT16_C( 17085), -INT16_C( 17371), INT16_C( 26147) }, { INT16_C( 15665), -INT16_C( 14037), INT16_C( 26160), -INT16_C( 27448), -INT16_C( 7257), INT16_C( 17122), -INT16_C( 13402), -INT16_C( 14656), -INT16_C( 28310), -INT16_C( 21018), -INT16_C( 14404), INT16_C( 24574), INT16_C( 16757), -INT16_C( 25828), INT16_C( 16638), INT16_C( 12033) }, { INT16_MAX, INT16_C( 0), INT16_C( 0), -INT16_C( 27645), INT16_C( 9227), INT16_MAX, -INT16_C( 29119), INT16_C( 0), INT16_C( 0), -INT16_C( 12617), -INT16_C( 3329), INT16_C( 0), INT16_C( 0), INT16_MIN, -INT16_C( 733), INT16_C( 0) } }, { UINT16_C(11389), { -INT16_C( 20999), -INT16_C( 15981), INT16_C( 14914), INT16_C( 9381), INT16_C( 19324), INT16_C( 15599), INT16_C( 22801), -INT16_C( 2099), -INT16_C( 30201), INT16_C( 1470), INT16_C( 13545), INT16_C( 1606), INT16_C( 17615), -INT16_C( 12218), -INT16_C( 15500), INT16_C( 28156) }, { -INT16_C( 28815), -INT16_C( 19666), -INT16_C( 11319), INT16_C( 18135), -INT16_C( 14818), INT16_C( 12162), INT16_C( 20512), INT16_C( 10022), -INT16_C( 6694), -INT16_C( 15572), INT16_C( 29209), -INT16_C( 5943), INT16_C( 4023), INT16_C( 11192), -INT16_C( 19245), INT16_C( 17560) }, { INT16_MIN, INT16_C( 0), INT16_C( 3595), INT16_C( 27516), INT16_C( 4506), INT16_C( 27761), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_MAX, -INT16_C( 4337), INT16_C( 0), -INT16_C( 1026), INT16_C( 0), INT16_C( 0) } }, { UINT16_C(50756), { INT16_C( 3575), -INT16_C( 12646), -INT16_C( 18349), -INT16_C( 10604), -INT16_C( 19224), INT16_C( 3622), INT16_C( 219), INT16_C( 2035), INT16_C( 3267), -INT16_C( 29318), INT16_C( 12788), -INT16_C( 21348), INT16_C( 28508), -INT16_C( 2975), -INT16_C( 23117), -INT16_C( 21830) }, { INT16_C( 21682), INT16_C( 1656), INT16_C( 3341), -INT16_C( 2596), INT16_C( 705), -INT16_C( 25341), -INT16_C( 2302), -INT16_C( 14940), INT16_C( 7683), -INT16_C( 1966), -INT16_C( 4273), -INT16_C( 21596), INT16_C( 1374), INT16_C( 4767), INT16_C( 23210), INT16_C( 23996) }, { INT16_C( 0), INT16_C( 0), -INT16_C( 15008), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 2083), INT16_C( 0), INT16_C( 0), -INT16_C( 31284), INT16_C( 8515), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 93), INT16_C( 2166) } }, { UINT16_C(13742), { -INT16_C( 17565), INT16_C( 16194), INT16_C( 944), -INT16_C( 19391), INT16_C( 17312), INT16_C( 17835), -INT16_C( 20984), INT16_C( 23395), -INT16_C( 19546), INT16_C( 19274), -INT16_C( 22434), -INT16_C( 432), -INT16_C( 1094), INT16_C( 30552), INT16_C( 1624), -INT16_C( 17492) }, { -INT16_C( 4414), INT16_C( 29434), INT16_C( 15345), -INT16_C( 28122), -INT16_C( 11906), -INT16_C( 31017), INT16_C( 14976), INT16_C( 9953), INT16_C( 11245), INT16_C( 19569), -INT16_C( 15660), -INT16_C( 29110), -INT16_C( 23875), INT16_C( 5381), -INT16_C( 20056), INT16_C( 27344) }, { INT16_C( 0), INT16_MAX, INT16_C( 16289), INT16_MIN, INT16_C( 0), -INT16_C( 13182), INT16_C( 0), INT16_MAX, -INT16_C( 8301), INT16_C( 0), INT16_MIN, INT16_C( 0), -INT16_C( 24969), INT16_MAX, INT16_C( 0), INT16_C( 0) } }, { UINT16_C(51871), { -INT16_C( 28195), INT16_C( 773), -INT16_C( 31965), -INT16_C( 1323), INT16_C( 21769), -INT16_C( 5324), INT16_C( 8827), -INT16_C( 4842), -INT16_C( 5522), -INT16_C( 18257), INT16_C( 27769), INT16_C( 32346), INT16_C( 641), INT16_C( 20784), -INT16_C( 12435), INT16_C( 18971) }, { INT16_C( 8288), -INT16_C( 31923), INT16_C( 8867), -INT16_C( 21379), -INT16_C( 19849), -INT16_C( 3177), -INT16_C( 20780), INT16_C( 17120), -INT16_C( 28776), INT16_C( 4602), INT16_C( 21755), INT16_C( 31888), -INT16_C( 16298), -INT16_C( 15411), -INT16_C( 6001), -INT16_C( 4083) }, { -INT16_C( 19907), -INT16_C( 31150), -INT16_C( 23098), -INT16_C( 22702), INT16_C( 1920), INT16_C( 0), INT16_C( 0), INT16_C( 12278), INT16_C( 0), -INT16_C( 13655), INT16_C( 0), INT16_MAX, INT16_C( 0), INT16_C( 0), -INT16_C( 18436), INT16_C( 14888) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m256i a = simde_x_mm256_loadu_epi16(test_vec[i].a); simde__m256i b = simde_x_mm256_loadu_epi16(test_vec[i].b); simde__m256i r = simde_mm256_maskz_adds_epi16(test_vec[i].k, a, b); simde_test_x86_assert_equal_i16x16(r, simde_x_mm256_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm512_adds_epi8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi8(INT8_C( -30), INT8_C( -16), INT8_C( -64), INT8_C( 113), INT8_C( 51), INT8_C(-115), INT8_C( 19), INT8_C( -80), INT8_C(-110), INT8_C( -62), INT8_C( -91), INT8_C( 8), INT8_C( 11), INT8_C( -49), INT8_C( -43), INT8_C(-101), INT8_C( 16), INT8_C( 61), INT8_C( -2), INT8_C(-100), INT8_C( 1), INT8_C( -80), INT8_C( 127), INT8_C(-105), INT8_C( -74), INT8_C(-126), INT8_C( 122), INT8_C( 30), INT8_C( -73), INT8_C( 48), INT8_C( -33), INT8_C( 2), INT8_C( -82), INT8_C( -10), INT8_C( 33), INT8_C( 20), INT8_C(-120), INT8_C(-120), INT8_C( -46), INT8_C( -54), INT8_C( -43), INT8_C( 63), INT8_C( 81), INT8_C( 103), INT8_C( 118), INT8_C( -84), INT8_C( 76), INT8_C( 47), INT8_C( 101), INT8_C( -83), INT8_C( 15), INT8_C( 23), INT8_C( 36), INT8_C(-116), INT8_C( -88), INT8_C( -45), INT8_C( -6), INT8_C( 86), INT8_C( 20), INT8_C( 39), INT8_C( 117), INT8_C( 80), INT8_C( 97), INT8_C( 41)), simde_mm512_set_epi8(INT8_C( 122), INT8_C( 43), INT8_C( 38), INT8_C( 97), INT8_C( 38), INT8_C( 68), INT8_C( 88), INT8_C( 56), INT8_C( -39), INT8_C( 61), INT8_C( -57), INT8_C( -66), INT8_C(-121), INT8_C( 29), INT8_C( 110), INT8_C( 127), INT8_C(-115), INT8_C( 16), INT8_C( -46), INT8_C( 65), INT8_C( -36), INT8_C( 26), INT8_C( 12), INT8_C( -79), INT8_C( -66), INT8_C( -28), INT8_C( -67), INT8_C( -79), INT8_C( -60), INT8_C( -13), INT8_C( 74), INT8_C( 25), INT8_C( 46), INT8_C( 8), INT8_C( 70), INT8_C( 106), INT8_C(-119), INT8_C( 0), INT8_C( -96), INT8_C( -51), INT8_C( -50), INT8_C( 93), INT8_C( 92), INT8_C( 65), INT8_C( -96), INT8_C(-126), INT8_C( 4), INT8_C( 9), INT8_C( 26), INT8_C(-119), INT8_C( 93), INT8_C( 15), INT8_C(-115), INT8_C( 77), INT8_C( 125), INT8_C( -62), INT8_C( 77), INT8_C( -22), INT8_C( 101), INT8_C( 83), INT8_C( 45), INT8_C( -68), INT8_C( 97), INT8_C( -19)), simde_mm512_set_epi8(INT8_C( 92), INT8_C( 27), INT8_C( -26), INT8_C( 127), INT8_C( 89), INT8_C( -47), INT8_C( 107), INT8_C( -24), INT8_C(-128), INT8_C( -1), INT8_C(-128), INT8_C( -58), INT8_C(-110), INT8_C( -20), INT8_C( 67), INT8_C( 26), INT8_C( -99), INT8_C( 77), INT8_C( -48), INT8_C( -35), INT8_C( -35), INT8_C( -54), INT8_C( 127), INT8_C(-128), INT8_C(-128), INT8_C(-128), INT8_C( 55), INT8_C( -49), INT8_C(-128), INT8_C( 35), INT8_C( 41), INT8_C( 27), INT8_C( -36), INT8_C( -2), INT8_C( 103), INT8_C( 126), INT8_C(-128), INT8_C(-120), INT8_C(-128), INT8_C(-105), INT8_C( -93), INT8_C( 127), INT8_C( 127), INT8_C( 127), INT8_C( 22), INT8_C(-128), INT8_C( 80), INT8_C( 56), INT8_C( 127), INT8_C(-128), INT8_C( 108), INT8_C( 38), INT8_C( -79), INT8_C( -39), INT8_C( 37), INT8_C(-107), INT8_C( 71), INT8_C( 64), INT8_C( 121), INT8_C( 122), INT8_C( 127), INT8_C( 12), INT8_C( 127), INT8_C( 22)) }, { simde_mm512_set_epi8(INT8_C( 60), INT8_C( 96), INT8_C(-106), INT8_C(-115), INT8_C( 31), INT8_C(-108), INT8_C( 15), INT8_C( 63), INT8_C( -77), INT8_C( 125), INT8_C( 41), INT8_C( -80), INT8_C( 36), INT8_C(-118), INT8_C(-116), INT8_C( -63), INT8_C( -44), INT8_C( 70), INT8_C( 99), INT8_C( 48), INT8_C( 67), INT8_C( 43), INT8_C( 83), INT8_C( 53), INT8_C( 60), INT8_C( 57), INT8_C(-118), INT8_C( 55), INT8_C( -62), INT8_C( -42), INT8_C( 19), INT8_C( 52), INT8_C( -37), INT8_C( -32), INT8_C( 33), INT8_C(-114), INT8_C( -96), INT8_C( 53), INT8_C( 18), INT8_C( -37), INT8_C( 6), INT8_C( -87), INT8_C( -11), INT8_C( -10), INT8_C( -4), INT8_C( 84), INT8_C( 104), INT8_C( 55), INT8_C( 92), INT8_C( 117), INT8_C( 16), INT8_C( 115), INT8_C( 83), INT8_C( 80), INT8_C(-125), INT8_C( 64), INT8_C( 74), INT8_C( -9), INT8_C( -62), INT8_C( 67), INT8_C( 102), INT8_C( 66), INT8_C( -86), INT8_C(-112)), simde_mm512_set_epi8(INT8_C( -97), INT8_C( 52), INT8_C( -91), INT8_C( 7), INT8_C( -1), INT8_C( -19), INT8_C( 38), INT8_C( 15), INT8_C( 76), INT8_C( 63), INT8_C( 10), INT8_C( 18), INT8_C( 54), INT8_C( 73), INT8_C( 15), INT8_C( -54), INT8_C(-114), INT8_C( 63), INT8_C( 44), INT8_C( 4), INT8_C( 41), INT8_C( 90), INT8_C( -78), INT8_C( -67), INT8_C( 95), INT8_C( -14), INT8_C( -10), INT8_C( -44), INT8_C( 53), INT8_C( 102), INT8_C( 127), INT8_C( 120), INT8_C( -89), INT8_C( 10), INT8_C( -36), INT8_C( -50), INT8_C( 118), INT8_C(-106), INT8_C( -52), INT8_C( 76), INT8_C( 66), INT8_C( -36), INT8_C( -79), INT8_C( 91), INT8_C( 14), INT8_C( 103), INT8_C( -73), INT8_C(-123), INT8_C( 68), INT8_C( -54), INT8_C(-103), INT8_C( 38), INT8_C( 58), INT8_C( 0), INT8_C( -62), INT8_C( -76), INT8_C( 93), INT8_C( 119), INT8_C( 14), INT8_C( 84), INT8_C( -83), INT8_C( 76), INT8_C( -47), INT8_C( -53)), simde_mm512_set_epi8(INT8_C( -37), INT8_C( 127), INT8_C(-128), INT8_C(-108), INT8_C( 30), INT8_C(-127), INT8_C( 53), INT8_C( 78), INT8_C( -1), INT8_C( 127), INT8_C( 51), INT8_C( -62), INT8_C( 90), INT8_C( -45), INT8_C(-101), INT8_C(-117), INT8_C(-128), INT8_C( 127), INT8_C( 127), INT8_C( 52), INT8_C( 108), INT8_C( 127), INT8_C( 5), INT8_C( -14), INT8_C( 127), INT8_C( 43), INT8_C(-128), INT8_C( 11), INT8_C( -9), INT8_C( 60), INT8_C( 127), INT8_C( 127), INT8_C(-126), INT8_C( -22), INT8_C( -3), INT8_C(-128), INT8_C( 22), INT8_C( -53), INT8_C( -34), INT8_C( 39), INT8_C( 72), INT8_C(-123), INT8_C( -90), INT8_C( 81), INT8_C( 10), INT8_C( 127), INT8_C( 31), INT8_C( -68), INT8_C( 127), INT8_C( 63), INT8_C( -87), INT8_C( 127), INT8_C( 127), INT8_C( 80), INT8_C(-128), INT8_C( -12), INT8_C( 127), INT8_C( 110), INT8_C( -48), INT8_C( 127), INT8_C( 19), INT8_C( 127), INT8_C(-128), INT8_C(-128)) }, { simde_mm512_set_epi8(INT8_C( -80), INT8_C( 122), INT8_C(-100), INT8_C( 123), INT8_C( 82), INT8_C(-107), INT8_C( 95), INT8_C( -80), INT8_C(-115), INT8_C(-109), INT8_C( 60), INT8_C( 72), INT8_C( 57), INT8_C( 99), INT8_C( -30), INT8_C(-115), INT8_C( 69), INT8_C( 18), INT8_C( -5), INT8_C( -6), INT8_C( -90), INT8_C( -20), INT8_C( 17), INT8_C( 121), INT8_C(-100), INT8_C( -55), INT8_C( 90), INT8_C( -42), INT8_C(-113), INT8_C( 119), INT8_C( 44), INT8_C(-123), INT8_C( -39), INT8_C( 114), INT8_C( 37), INT8_C( -84), INT8_C( -88), INT8_C( 15), INT8_C( 23), INT8_C( 114), INT8_C( 63), INT8_C( -61), INT8_C( 22), INT8_C( 8), INT8_C( 54), INT8_C( 19), INT8_C( -34), INT8_C( 18), INT8_C( -36), INT8_C( 104), INT8_C( 1), INT8_C( 5), INT8_C(-116), INT8_C( 79), INT8_C( -20), INT8_C( -4), INT8_C( 95), INT8_C( 103), INT8_C( 3), INT8_C( 64), INT8_C( 34), INT8_C( -49), INT8_C( -27), INT8_C( 41)), simde_mm512_set_epi8(INT8_C( 97), INT8_C(-116), INT8_C( -44), INT8_C( -44), INT8_C( 67), INT8_C( -66), INT8_C( 77), INT8_C( 60), INT8_C( 74), INT8_C( -19), INT8_C(-123), INT8_C( -81), INT8_C( -74), INT8_C( -21), INT8_C( -32), INT8_C(-122), INT8_C(-110), INT8_C( 116), INT8_C( 115), INT8_C( 99), INT8_C( 29), INT8_C( 50), INT8_C(-119), INT8_C(-126), INT8_C( -53), INT8_C( 68), INT8_C( -37), INT8_C( 84), INT8_C( 23), INT8_C( -10), INT8_C( 15), INT8_C( 37), INT8_C( -93), INT8_C( 57), INT8_C( 28), INT8_C(-116), INT8_C( 56), INT8_C(-124), INT8_C( -93), INT8_C( -67), INT8_C( 27), INT8_C( -1), INT8_C( -70), INT8_C( -30), INT8_C( -39), INT8_C( 59), INT8_C( 76), INT8_C( 108), INT8_C( 13), INT8_C( -29), INT8_C( 60), INT8_C( 106), INT8_C( 106), INT8_C( -77), INT8_C(-102), INT8_C( 3), INT8_C( -18), INT8_C( 23), INT8_C( 113), INT8_C( -97), INT8_C( 109), INT8_C( 81), INT8_C( 42), INT8_C( 93)), simde_mm512_set_epi8(INT8_C( 17), INT8_C( 6), INT8_C(-128), INT8_C( 79), INT8_C( 127), INT8_C(-128), INT8_C( 127), INT8_C( -20), INT8_C( -41), INT8_C(-128), INT8_C( -63), INT8_C( -9), INT8_C( -17), INT8_C( 78), INT8_C( -62), INT8_C(-128), INT8_C( -41), INT8_C( 127), INT8_C( 110), INT8_C( 93), INT8_C( -61), INT8_C( 30), INT8_C(-102), INT8_C( -5), INT8_C(-128), INT8_C( 13), INT8_C( 53), INT8_C( 42), INT8_C( -90), INT8_C( 109), INT8_C( 59), INT8_C( -86), INT8_C(-128), INT8_C( 127), INT8_C( 65), INT8_C(-128), INT8_C( -32), INT8_C(-109), INT8_C( -70), INT8_C( 47), INT8_C( 90), INT8_C( -62), INT8_C( -48), INT8_C( -22), INT8_C( 15), INT8_C( 78), INT8_C( 42), INT8_C( 126), INT8_C( -23), INT8_C( 75), INT8_C( 61), INT8_C( 111), INT8_C( -10), INT8_C( 2), INT8_C(-122), INT8_C( -1), INT8_C( 77), INT8_C( 126), INT8_C( 116), INT8_C( -33), INT8_C( 127), INT8_C( 32), INT8_C( 15), INT8_C( 127)) }, { simde_mm512_set_epi8(INT8_C( -94), INT8_C( 96), INT8_C( -77), INT8_C( -55), INT8_C( 18), INT8_C( 12), INT8_C( 78), INT8_C( -17), INT8_C( -94), INT8_C( 83), INT8_C( -20), INT8_C(-101), INT8_C( -62), INT8_C( -62), INT8_C( -77), INT8_C( 21), INT8_C( 21), INT8_C( -49), INT8_C(-127), INT8_C( -47), INT8_C( -26), INT8_C( 62), INT8_C( -51), INT8_C( -34), INT8_C( 9), INT8_C( -56), INT8_C( 63), INT8_C( 4), INT8_C( 64), INT8_C( 46), INT8_C( 68), INT8_C( -18), INT8_C(-110), INT8_C( 103), INT8_C(-101), INT8_C( 45), INT8_C( -81), INT8_C( 125), INT8_C( 8), INT8_C( 72), INT8_C( -48), INT8_C( -28), INT8_C( 102), INT8_C( -90), INT8_C(-101), INT8_C( -40), INT8_C( -94), INT8_C(-127), INT8_C( -36), INT8_C( -32), INT8_C( 34), INT8_C( -39), INT8_C( -64), INT8_C( 111), INT8_C( 36), INT8_C( 91), INT8_C( 90), INT8_C( -10), INT8_C( 88), INT8_C(-117), INT8_C( 117), INT8_C(-111), INT8_C(-128), INT8_C( -35)), simde_mm512_set_epi8(INT8_C( 65), INT8_C( -2), INT8_C( 4), INT8_C( -77), INT8_C( 33), INT8_C(-119), INT8_C( -36), INT8_C( 95), INT8_C( -54), INT8_C( 57), INT8_C( -15), INT8_C( 20), INT8_C( 119), INT8_C( -56), INT8_C( -57), INT8_C( 22), INT8_C( -23), INT8_C( -56), INT8_C( -77), INT8_C( 114), INT8_C( -25), INT8_C( 85), INT8_C( 65), INT8_C( 124), INT8_C( 80), INT8_C( 94), INT8_C( -6), INT8_C(-128), INT8_C( 25), INT8_C( -80), INT8_C( 31), INT8_C( -23), INT8_C( 123), INT8_C(-123), INT8_C( -56), INT8_C( 34), INT8_C( 72), INT8_C( -39), INT8_C( -17), INT8_C( 39), INT8_C( 29), INT8_C( -88), INT8_C( 65), INT8_C( 81), INT8_C(-120), INT8_C( 80), INT8_C( -76), INT8_C( -59), INT8_C( 48), INT8_C( -90), INT8_C( -85), INT8_C( 82), INT8_C( 115), INT8_C(-114), INT8_C( 84), INT8_C( -40), INT8_C( -69), INT8_C( -11), INT8_C(-118), INT8_C( 39), INT8_C( -17), INT8_C( -23), INT8_C( 4), INT8_C( -37)), simde_mm512_set_epi8(INT8_C( -29), INT8_C( 94), INT8_C( -73), INT8_C(-128), INT8_C( 51), INT8_C(-107), INT8_C( 42), INT8_C( 78), INT8_C(-128), INT8_C( 127), INT8_C( -35), INT8_C( -81), INT8_C( 57), INT8_C(-118), INT8_C(-128), INT8_C( 43), INT8_C( -2), INT8_C(-105), INT8_C(-128), INT8_C( 67), INT8_C( -51), INT8_C( 127), INT8_C( 14), INT8_C( 90), INT8_C( 89), INT8_C( 38), INT8_C( 57), INT8_C(-124), INT8_C( 89), INT8_C( -34), INT8_C( 99), INT8_C( -41), INT8_C( 13), INT8_C( -20), INT8_C(-128), INT8_C( 79), INT8_C( -9), INT8_C( 86), INT8_C( -9), INT8_C( 111), INT8_C( -19), INT8_C(-116), INT8_C( 127), INT8_C( -9), INT8_C(-128), INT8_C( 40), INT8_C(-128), INT8_C(-128), INT8_C( 12), INT8_C(-122), INT8_C( -51), INT8_C( 43), INT8_C( 51), INT8_C( -3), INT8_C( 120), INT8_C( 51), INT8_C( 21), INT8_C( -21), INT8_C( -30), INT8_C( -78), INT8_C( 100), INT8_C(-128), INT8_C(-124), INT8_C( -72)) }, { simde_mm512_set_epi8(INT8_C( 31), INT8_C( -81), INT8_C( 115), INT8_C( 18), INT8_C( 20), INT8_C( -33), INT8_C(-125), INT8_C( -45), INT8_C( 54), INT8_C( 82), INT8_C( 61), INT8_C( 81), INT8_C( 123), INT8_C( 18), INT8_C( 89), INT8_C( 34), INT8_C( 10), INT8_C( -54), INT8_C( -24), INT8_C( 54), INT8_C( 49), INT8_C( -70), INT8_C( 7), INT8_C( -12), INT8_C( 110), INT8_C( -16), INT8_C( -10), INT8_C( 4), INT8_C( 3), INT8_C( -17), INT8_C( -46), INT8_C( -29), INT8_C( 26), INT8_C( -38), INT8_C(-107), INT8_C( -25), INT8_C( 61), INT8_C( -4), INT8_C( -21), INT8_C( -11), INT8_C( -29), INT8_C( 62), INT8_C( 120), INT8_C( 84), INT8_C( -48), INT8_C( -42), INT8_C( -15), INT8_C( -64), INT8_C( -90), INT8_C( 111), INT8_C(-123), INT8_C( 61), INT8_C( 22), INT8_C( -48), INT8_C(-107), INT8_C( 122), INT8_C( 27), INT8_C( 119), INT8_C( -63), INT8_C( -61), INT8_C( -69), INT8_C( 46), INT8_C( 34), INT8_C(-101)), simde_mm512_set_epi8(INT8_C( 44), INT8_C( 101), INT8_C( -48), INT8_C( -49), INT8_C( 63), INT8_C( 93), INT8_C( -48), INT8_C(-122), INT8_C( -67), INT8_C( 27), INT8_C( 1), INT8_C( -55), INT8_C( -79), INT8_C( -44), INT8_C(-115), INT8_C(-126), INT8_C( -42), INT8_C( 29), INT8_C( 66), INT8_C( -83), INT8_C( 108), INT8_C( -1), INT8_C( -47), INT8_C(-104), INT8_C( 62), INT8_C( 29), INT8_C( 4), INT8_C( -47), INT8_C( 98), INT8_C(-109), INT8_C( -23), INT8_C( 69), INT8_C(-110), INT8_C( -47), INT8_C( 48), INT8_C(-101), INT8_C( -80), INT8_C(-110), INT8_C( -55), INT8_C( 25), INT8_C( 39), INT8_C( 58), INT8_C( 4), INT8_C(-108), INT8_C( -23), INT8_C( -79), INT8_C( 124), INT8_C( 36), INT8_C( 113), INT8_C( 110), INT8_C( 105), INT8_C( 113), INT8_C( -54), INT8_C( -63), INT8_C( 50), INT8_C( -99), INT8_C( -8), INT8_C( -76), INT8_C( 102), INT8_C( 51), INT8_C( 58), INT8_C( 16), INT8_C( -94), INT8_C( -93)), simde_mm512_set_epi8(INT8_C( 75), INT8_C( 20), INT8_C( 67), INT8_C( -31), INT8_C( 83), INT8_C( 60), INT8_C(-128), INT8_C(-128), INT8_C( -13), INT8_C( 109), INT8_C( 62), INT8_C( 26), INT8_C( 44), INT8_C( -26), INT8_C( -26), INT8_C( -92), INT8_C( -32), INT8_C( -25), INT8_C( 42), INT8_C( -29), INT8_C( 127), INT8_C( -71), INT8_C( -40), INT8_C(-116), INT8_C( 127), INT8_C( 13), INT8_C( -6), INT8_C( -43), INT8_C( 101), INT8_C(-126), INT8_C( -69), INT8_C( 40), INT8_C( -84), INT8_C( -85), INT8_C( -59), INT8_C(-126), INT8_C( -19), INT8_C(-114), INT8_C( -76), INT8_C( 14), INT8_C( 10), INT8_C( 120), INT8_C( 124), INT8_C( -24), INT8_C( -71), INT8_C(-121), INT8_C( 109), INT8_C( -28), INT8_C( 23), INT8_C( 127), INT8_C( -18), INT8_C( 127), INT8_C( -32), INT8_C(-111), INT8_C( -57), INT8_C( 23), INT8_C( 19), INT8_C( 43), INT8_C( 39), INT8_C( -10), INT8_C( -11), INT8_C( 62), INT8_C( -60), INT8_C(-128)) }, { simde_mm512_set_epi8(INT8_C( 64), INT8_C( 55), INT8_C( 97), INT8_C( -61), INT8_C( 89), INT8_C( 120), INT8_C( 49), INT8_C( 124), INT8_C( 16), INT8_C( 113), INT8_C( 48), INT8_C( 70), INT8_C( 60), INT8_C( -11), INT8_C( 98), INT8_C( 70), INT8_C( 111), INT8_C( 55), INT8_C( -50), INT8_C( -21), INT8_C(-102), INT8_C( 3), INT8_C( 75), INT8_C( -9), INT8_C( 34), INT8_C( 96), INT8_C(-104), INT8_C( 37), INT8_C( 74), INT8_C( 22), INT8_C( 13), INT8_C( 82), INT8_C(-108), INT8_C(-112), INT8_C( 49), INT8_C( -58), INT8_C( 116), INT8_C( 58), INT8_C( -29), INT8_C( 60), INT8_C( 125), INT8_C( 105), INT8_C( -20), INT8_C( -4), INT8_C(-106), INT8_C(-111), INT8_C( -29), INT8_C( -32), INT8_C( -43), INT8_C(-103), INT8_C( 84), INT8_C( 40), INT8_C( 63), INT8_C( 88), INT8_C( -74), INT8_C( -49), INT8_C( 10), INT8_C( 50), INT8_C( 38), INT8_C( 108), INT8_C( 42), INT8_C( -40), INT8_C( -81), INT8_C( 31)), simde_mm512_set_epi8(INT8_C(-107), INT8_C( 105), INT8_C( -15), INT8_C( -49), INT8_C( 74), INT8_C( -31), INT8_C( -49), INT8_C( 112), INT8_C(-103), INT8_C( 69), INT8_C( -55), INT8_C(-115), INT8_C( -48), INT8_C( 96), INT8_C( -8), INT8_C( -35), INT8_C( -24), INT8_C( 101), INT8_C( 70), INT8_C( -69), INT8_C(-105), INT8_C( -28), INT8_C( -38), INT8_C( -85), INT8_C( -94), INT8_C(-122), INT8_C( -80), INT8_C( 95), INT8_C( -1), INT8_C( 87), INT8_C( 21), INT8_C( 6), INT8_C(-103), INT8_C( 38), INT8_C( 15), INT8_C( -98), INT8_C( -27), INT8_C( 57), INT8_C( -76), INT8_C(-112), INT8_C( 77), INT8_C( -3), INT8_C( 57), INT8_C( 3), INT8_C( 123), INT8_C( -18), INT8_C( -90), INT8_C(-119), INT8_C( 112), INT8_C( 61), INT8_C( -48), INT8_C( -16), INT8_C( -36), INT8_C(-125), INT8_C( -10), INT8_C( 77), INT8_C( 106), INT8_C( 72), INT8_C( 62), INT8_C( -24), INT8_C( -65), INT8_C( 102), INT8_C(-122), INT8_C( 19)), simde_mm512_set_epi8(INT8_C( -43), INT8_C( 127), INT8_C( 82), INT8_C(-110), INT8_C( 127), INT8_C( 89), INT8_C( 0), INT8_C( 127), INT8_C( -87), INT8_C( 127), INT8_C( -7), INT8_C( -45), INT8_C( 12), INT8_C( 85), INT8_C( 90), INT8_C( 35), INT8_C( 87), INT8_C( 127), INT8_C( 20), INT8_C( -90), INT8_C(-128), INT8_C( -25), INT8_C( 37), INT8_C( -94), INT8_C( -60), INT8_C( -26), INT8_C(-128), INT8_C( 127), INT8_C( 73), INT8_C( 109), INT8_C( 34), INT8_C( 88), INT8_C(-128), INT8_C( -74), INT8_C( 64), INT8_C(-128), INT8_C( 89), INT8_C( 115), INT8_C(-105), INT8_C( -52), INT8_C( 127), INT8_C( 102), INT8_C( 37), INT8_C( -1), INT8_C( 17), INT8_C(-128), INT8_C(-119), INT8_C(-128), INT8_C( 69), INT8_C( -42), INT8_C( 36), INT8_C( 24), INT8_C( 27), INT8_C( -37), INT8_C( -84), INT8_C( 28), INT8_C( 116), INT8_C( 122), INT8_C( 100), INT8_C( 84), INT8_C( -23), INT8_C( 62), INT8_C(-128), INT8_C( 50)) }, { simde_mm512_set_epi8(INT8_C( 90), INT8_C(-125), INT8_C( -5), INT8_C( -69), INT8_C( 103), INT8_C( -40), INT8_C( 35), INT8_C( -38), INT8_C( 107), INT8_C(-117), INT8_C( -80), INT8_C( 123), INT8_C( 57), INT8_C( -70), INT8_C( -34), INT8_C( 38), INT8_C( 114), INT8_C(-126), INT8_C( 20), INT8_C( -93), INT8_C( 17), INT8_C(-128), INT8_C( 2), INT8_C( 15), INT8_C(-122), INT8_C( -10), INT8_C( -2), INT8_C( 84), INT8_C( 93), INT8_C( 89), INT8_C( 57), INT8_C( -50), INT8_C( 4), INT8_C( -63), INT8_C( 118), INT8_C( 19), INT8_C( -68), INT8_C( -29), INT8_C( -16), INT8_C( -30), INT8_C( -76), INT8_C(-110), INT8_C( 121), INT8_C( 87), INT8_C(-117), INT8_C(-113), INT8_C( -94), INT8_C( 61), INT8_C( -29), INT8_C( 43), INT8_C( -69), INT8_C( 123), INT8_C( 79), INT8_C(-101), INT8_C( 40), INT8_C( 64), INT8_C( 34), INT8_C(-102), INT8_C( 77), INT8_C( 114), INT8_C( -49), INT8_C( -31), INT8_C( 103), INT8_C( 81)), simde_mm512_set_epi8(INT8_C( 34), INT8_C(-125), INT8_C( -96), INT8_C(-111), INT8_C( 23), INT8_C( 58), INT8_C( -5), INT8_C( -22), INT8_C( -80), INT8_C( -90), INT8_C( -33), INT8_C( -65), INT8_C( -34), INT8_C( 100), INT8_C( -10), INT8_C( -57), INT8_C( 37), INT8_C( -9), INT8_C( -29), INT8_C(-114), INT8_C(-102), INT8_C( 53), INT8_C( 107), INT8_C( 124), INT8_C( -12), INT8_C( -57), INT8_C( -57), INT8_C( -37), INT8_C( 50), INT8_C( 22), INT8_C( -71), INT8_C( -2), INT8_C( -31), INT8_C( 60), INT8_C( 62), INT8_C( 19), INT8_C( 117), INT8_C( 1), INT8_C( -26), INT8_C(-100), INT8_C( 29), INT8_C( -6), INT8_C( 7), INT8_C(-100), INT8_C(-120), INT8_C( -33), INT8_C( 17), INT8_C(-103), INT8_C( 10), INT8_C( -45), INT8_C( -76), INT8_C( 10), INT8_C( -10), INT8_C( 15), INT8_C( 36), INT8_C( 2), INT8_C( 74), INT8_C( 44), INT8_C( -16), INT8_C( 122), INT8_C( -4), INT8_C( 15), INT8_C( -27), INT8_C( -15)), simde_mm512_set_epi8(INT8_C( 124), INT8_C(-128), INT8_C(-101), INT8_C(-128), INT8_C( 126), INT8_C( 18), INT8_C( 30), INT8_C( -60), INT8_C( 27), INT8_C(-128), INT8_C(-113), INT8_C( 58), INT8_C( 23), INT8_C( 30), INT8_C( -44), INT8_C( -19), INT8_C( 127), INT8_C(-128), INT8_C( -9), INT8_C(-128), INT8_C( -85), INT8_C( -75), INT8_C( 109), INT8_C( 127), INT8_C(-128), INT8_C( -67), INT8_C( -59), INT8_C( 47), INT8_C( 127), INT8_C( 111), INT8_C( -14), INT8_C( -52), INT8_C( -27), INT8_C( -3), INT8_C( 127), INT8_C( 38), INT8_C( 49), INT8_C( -28), INT8_C( -42), INT8_C(-128), INT8_C( -47), INT8_C(-116), INT8_C( 127), INT8_C( -13), INT8_C(-128), INT8_C(-128), INT8_C( -77), INT8_C( -42), INT8_C( -19), INT8_C( -2), INT8_C(-128), INT8_C( 127), INT8_C( 69), INT8_C( -86), INT8_C( 76), INT8_C( 66), INT8_C( 108), INT8_C( -58), INT8_C( 61), INT8_C( 127), INT8_C( -53), INT8_C( -16), INT8_C( 76), INT8_C( 66)) }, { simde_mm512_set_epi8(INT8_C( -52), INT8_C(-111), INT8_C( 67), INT8_C( -14), INT8_C( 11), INT8_C( -63), INT8_C( -35), INT8_C( -86), INT8_C(-114), INT8_C( -97), INT8_C( 124), INT8_C( -30), INT8_C( -1), INT8_C( 55), INT8_C( 84), INT8_C( 12), INT8_C( 86), INT8_C( -43), INT8_C( 81), INT8_C( -30), INT8_C( -25), INT8_C( 74), INT8_C(-105), INT8_C( 11), INT8_C( -97), INT8_C( 0), INT8_C( 98), INT8_C( 106), INT8_C( -83), INT8_C( -89), INT8_C( 16), INT8_C( -42), INT8_C( 81), INT8_C( 35), INT8_C(-127), INT8_C(-127), INT8_C( -38), INT8_C( 51), INT8_C( -75), INT8_C( 24), INT8_C( 86), INT8_C( -37), INT8_C( 97), INT8_C( -82), INT8_C( 109), INT8_C( 21), INT8_C( 127), INT8_C( 16), INT8_C( 101), INT8_C( -69), INT8_C( 95), INT8_C(-121), INT8_C( -66), INT8_C( 39), INT8_C( 104), INT8_C(-109), INT8_C( -1), INT8_C( 35), INT8_C( 68), INT8_C( 93), INT8_C( -25), INT8_C( 120), INT8_C( -19), INT8_C( 84)), simde_mm512_set_epi8(INT8_C(-111), INT8_C(-108), INT8_C( 102), INT8_C( -40), INT8_C(-124), INT8_C( -61), INT8_C( 80), INT8_C( 102), INT8_C( -35), INT8_C( 3), INT8_C( -76), INT8_C( 98), INT8_C( 9), INT8_C( -39), INT8_C( -24), INT8_C( -92), INT8_C( -73), INT8_C( -19), INT8_C(-103), INT8_C( -41), INT8_C( -32), INT8_C( -8), INT8_C( 126), INT8_C( 75), INT8_C( -64), INT8_C( -26), INT8_C( -15), INT8_C( -35), INT8_C( -20), INT8_C( -6), INT8_C( 86), INT8_C( -56), INT8_C( -56), INT8_C( 67), INT8_C( 59), INT8_C( -73), INT8_C( 35), INT8_C( -67), INT8_C( 92), INT8_C( 34), INT8_C( 16), INT8_C( -12), INT8_C( 44), INT8_C( -59), INT8_C( -82), INT8_C(-102), INT8_C( 93), INT8_C( -43), INT8_C( 79), INT8_C( -19), INT8_C( -45), INT8_C( -87), INT8_C( -50), INT8_C( -23), INT8_C( -17), INT8_C( 110), INT8_C( 102), INT8_C( -59), INT8_C(-117), INT8_C( 84), INT8_C( -75), INT8_C( 87), INT8_C( 69), INT8_C( -6)), simde_mm512_set_epi8(INT8_C(-128), INT8_C(-128), INT8_C( 127), INT8_C( -54), INT8_C(-113), INT8_C(-124), INT8_C( 45), INT8_C( 16), INT8_C(-128), INT8_C( -94), INT8_C( 48), INT8_C( 68), INT8_C( 8), INT8_C( 16), INT8_C( 60), INT8_C( -80), INT8_C( 13), INT8_C( -62), INT8_C( -22), INT8_C( -71), INT8_C( -57), INT8_C( 66), INT8_C( 21), INT8_C( 86), INT8_C(-128), INT8_C( -26), INT8_C( 83), INT8_C( 71), INT8_C(-103), INT8_C( -95), INT8_C( 102), INT8_C( -98), INT8_C( 25), INT8_C( 102), INT8_C( -68), INT8_C(-128), INT8_C( -3), INT8_C( -16), INT8_C( 17), INT8_C( 58), INT8_C( 102), INT8_C( -49), INT8_C( 127), INT8_C(-128), INT8_C( 27), INT8_C( -81), INT8_C( 127), INT8_C( -27), INT8_C( 127), INT8_C( -88), INT8_C( 50), INT8_C(-128), INT8_C(-116), INT8_C( 16), INT8_C( 87), INT8_C( 1), INT8_C( 101), INT8_C( -24), INT8_C( -49), INT8_C( 127), INT8_C(-100), INT8_C( 127), INT8_C( 50), INT8_C( 78)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_adds_epi8(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i8(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_adds_epi8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i src; simde__mmask64 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi8(INT8_C( 92), INT8_C( 116), INT8_C( -78), INT8_C( -19), INT8_C( -73), INT8_C( 22), INT8_C( -66), INT8_C( -29), INT8_C( 55), INT8_C( 78), INT8_C( -45), INT8_C(-119), INT8_C( 30), INT8_C( -29), INT8_C( -23), INT8_C( 89), INT8_C( 15), INT8_C( 119), INT8_C( -88), INT8_C( 109), INT8_C( -16), INT8_C( -10), INT8_C( 0), INT8_C( -18), INT8_C( 1), INT8_C( 116), INT8_C( 62), INT8_C( -73), INT8_C(-122), INT8_C( 0), INT8_C( 111), INT8_C( 95), INT8_C( -20), INT8_C( 3), INT8_C( 122), INT8_C(-121), INT8_C( 13), INT8_C( 25), INT8_C( -35), INT8_C(-127), INT8_C( 82), INT8_C( 90), INT8_C( 53), INT8_C( 123), INT8_C( 73), INT8_C( 108), INT8_C( -18), INT8_C( 15), INT8_C( 81), INT8_C( -27), INT8_C( 102), INT8_C( 118), INT8_C( 39), INT8_C( -77), INT8_C( 45), INT8_C( 81), INT8_C( -17), INT8_C( -28), INT8_C( 67), INT8_C(-118), INT8_C( 79), INT8_C(-113), INT8_C(-122), INT8_C( 124)), UINT64_C(10224647434006242820), simde_mm512_set_epi8(INT8_C( 68), INT8_C(-108), INT8_C(-121), INT8_C(-115), INT8_C( -59), INT8_C( -78), INT8_C(-111), INT8_C( 56), INT8_C( 9), INT8_C(-121), INT8_C( 120), INT8_C( -36), INT8_C( 36), INT8_C(-103), INT8_C(-104), INT8_C( 25), INT8_C(-111), INT8_C( -63), INT8_C( -35), INT8_C(-120), INT8_C( 28), INT8_C( -44), INT8_C( -26), INT8_C( -86), INT8_C( -13), INT8_C( 53), INT8_C( -88), INT8_C(-107), INT8_C( 68), INT8_C( 42), INT8_C(-118), INT8_C( 111), INT8_C( 54), INT8_C( -58), INT8_C( -13), INT8_C( 27), INT8_C( 23), INT8_C( 41), INT8_C(-119), INT8_C( 44), INT8_C( 7), INT8_C(-120), INT8_C( 32), INT8_C( -43), INT8_C( 114), INT8_C( -72), INT8_C( 73), INT8_C( -96), INT8_C( 96), INT8_C( 110), INT8_C( -81), INT8_C( -76), INT8_C( 103), INT8_C(-100), INT8_C( -22), INT8_C( 18), INT8_C( 115), INT8_C( 54), INT8_C( -40), INT8_C( 125), INT8_C( 110), INT8_C( 31), INT8_C( 51), INT8_C(-104)), simde_mm512_set_epi8(INT8_C( -14), INT8_C( 85), INT8_C( -80), INT8_C( 80), INT8_C( 48), INT8_C( 93), INT8_C( 79), INT8_C( 127), INT8_C( 16), INT8_C( 41), INT8_C( 54), INT8_C(-116), INT8_C( 17), INT8_C( 42), INT8_C( -86), INT8_C( 38), INT8_C(-118), INT8_C( -56), INT8_C( 60), INT8_C( 19), INT8_C(-100), INT8_C(-107), INT8_C( 105), INT8_C( -76), INT8_C( 10), INT8_C( -9), INT8_C( -12), INT8_C( -56), INT8_C( -71), INT8_C( 96), INT8_C( 6), INT8_C( 24), INT8_C( 69), INT8_C( 73), INT8_C( -27), INT8_C( 3), INT8_C( -95), INT8_C( 50), INT8_C( -67), INT8_C( -39), INT8_C( 97), INT8_C( 62), INT8_C( 101), INT8_C( 56), INT8_C( -79), INT8_C( 83), INT8_C( -99), INT8_C( -56), INT8_C( -17), INT8_C( -56), INT8_C( -8), INT8_C( -16), INT8_C( 84), INT8_C( -95), INT8_C( -73), INT8_C( 54), INT8_C( 125), INT8_C( 85), INT8_C( 78), INT8_C( -65), INT8_C( 4), INT8_C( 113), INT8_C( -16), INT8_C( -53)), simde_mm512_set_epi8(INT8_C( 54), INT8_C( 116), INT8_C( -78), INT8_C( -19), INT8_C( -11), INT8_C( 15), INT8_C( -66), INT8_C( 127), INT8_C( 25), INT8_C( -80), INT8_C( 127), INT8_C(-119), INT8_C( 30), INT8_C( -61), INT8_C( -23), INT8_C( 63), INT8_C( 15), INT8_C( 119), INT8_C( 25), INT8_C(-101), INT8_C( -72), INT8_C(-128), INT8_C( 79), INT8_C( -18), INT8_C( -3), INT8_C( 116), INT8_C(-100), INT8_C( -73), INT8_C( -3), INT8_C( 0), INT8_C(-112), INT8_C( 127), INT8_C( -20), INT8_C( 3), INT8_C( -40), INT8_C( 30), INT8_C( 13), INT8_C( 25), INT8_C( -35), INT8_C( 5), INT8_C( 104), INT8_C( 90), INT8_C( 53), INT8_C( 123), INT8_C( 35), INT8_C( 11), INT8_C( -18), INT8_C(-128), INT8_C( 81), INT8_C( -27), INT8_C( -89), INT8_C( 118), INT8_C( 39), INT8_C(-128), INT8_C( -95), INT8_C( 81), INT8_C( -17), INT8_C( -28), INT8_C( 67), INT8_C(-118), INT8_C( 79), INT8_C( 127), INT8_C(-122), INT8_C( 124)) }, { simde_mm512_set_epi8(INT8_C(-123), INT8_C(-100), INT8_C( -39), INT8_C( -44), INT8_C( 22), INT8_C( 112), INT8_C( 16), INT8_C( 15), INT8_C(-104), INT8_C(-102), INT8_C( 102), INT8_C( -95), INT8_C( 69), INT8_C( 13), INT8_C( -21), INT8_C( 45), INT8_C( 62), INT8_C(-120), INT8_C(-111), INT8_C( 32), INT8_C(-107), INT8_C( -30), INT8_C( 99), INT8_C( -64), INT8_C( 8), INT8_C( -42), INT8_C( 81), INT8_C( -34), INT8_C( -46), INT8_C( 26), INT8_C( 31), INT8_C( -2), INT8_C( 68), INT8_C( -7), INT8_C( -71), INT8_C( 46), INT8_C( -21), INT8_C( -73), INT8_C( 21), INT8_C( 83), INT8_C(-108), INT8_C( -97), INT8_C( -69), INT8_C( 73), INT8_C( 57), INT8_C( -37), INT8_C( 21), INT8_C( 82), INT8_C(-119), INT8_C(-126), INT8_C( 126), INT8_C( 91), INT8_C( 115), INT8_C( 31), INT8_C( -79), INT8_C( 28), INT8_C(-106), INT8_C( -18), INT8_C( 65), INT8_C(-104), INT8_C( 81), INT8_C( 38), INT8_C( -84), INT8_C( -2)), UINT64_C( 4597426592773770833), simde_mm512_set_epi8(INT8_C( 74), INT8_C( 72), INT8_C( -4), INT8_C( 28), INT8_C(-115), INT8_C( 93), INT8_C( 102), INT8_C( 44), INT8_C(-103), INT8_C( -29), INT8_C( -50), INT8_C( 48), INT8_C( -96), INT8_C( -50), INT8_C( 46), INT8_C( -65), INT8_C( 4), INT8_C( 43), INT8_C( -75), INT8_C( 97), INT8_C( -26), INT8_C(-103), INT8_C( 71), INT8_C(-107), INT8_C( 91), INT8_C( 45), INT8_C( -11), INT8_C( 47), INT8_C( 29), INT8_C( 25), INT8_C( 26), INT8_C( -9), INT8_C( 10), INT8_C( 36), INT8_C( -79), INT8_C( -53), INT8_C( 41), INT8_C( 1), INT8_C( -23), INT8_C( -63), INT8_C(-127), INT8_C( 68), INT8_C( 48), INT8_C( 36), INT8_C( 89), INT8_C(-112), INT8_C( -31), INT8_C( 120), INT8_C( 35), INT8_C( 62), INT8_C( -21), INT8_C(-114), INT8_C(-104), INT8_C( 57), INT8_C( 42), INT8_C(-111), INT8_C( 94), INT8_C( -63), INT8_C( -9), INT8_C( 64), INT8_C( -65), INT8_C( -2), INT8_C( 110), INT8_C( -8)), simde_mm512_set_epi8(INT8_C( 44), INT8_C( -92), INT8_C( -31), INT8_C( 26), INT8_C( -99), INT8_C( -53), INT8_C( 117), INT8_C( 18), INT8_C( -63), INT8_C( 45), INT8_C( 12), INT8_C( 24), INT8_C(-108), INT8_C( 18), INT8_C( -60), INT8_C( 28), INT8_C( 50), INT8_C( -11), INT8_C( -68), INT8_C( -31), INT8_C( 105), INT8_C(-106), INT8_C( 98), INT8_C( 51), INT8_C( 58), INT8_C( 103), INT8_C( 111), INT8_C(-127), INT8_C( 68), INT8_C( -56), INT8_C( 124), INT8_C(-119), INT8_C( 74), INT8_C( -62), INT8_C(-116), INT8_C( 37), INT8_C( -12), INT8_C( 114), INT8_C( 0), INT8_C( 61), INT8_C( 103), INT8_C( -4), INT8_C(-105), INT8_C( -68), INT8_C( 39), INT8_C(-100), INT8_C( -93), INT8_C( 11), INT8_C( -80), INT8_C( -19), INT8_C( -22), INT8_C( -39), INT8_C( 127), INT8_C( -38), INT8_C(-125), INT8_C(-111), INT8_C( 84), INT8_C( -96), INT8_C( 87), INT8_C( -22), INT8_C( -5), INT8_C( -3), INT8_C(-127), INT8_C( 41)), simde_mm512_set_epi8(INT8_C(-123), INT8_C(-100), INT8_C( -35), INT8_C( 54), INT8_C(-128), INT8_C( 40), INT8_C( 127), INT8_C( 62), INT8_C(-128), INT8_C( 16), INT8_C( 102), INT8_C( -95), INT8_C(-128), INT8_C( -32), INT8_C( -21), INT8_C( -37), INT8_C( 62), INT8_C( 32), INT8_C(-111), INT8_C( 66), INT8_C(-107), INT8_C(-128), INT8_C( 127), INT8_C( -56), INT8_C( 8), INT8_C( -42), INT8_C( 100), INT8_C( -34), INT8_C( -46), INT8_C( 26), INT8_C( 31), INT8_C( -2), INT8_C( 84), INT8_C( -7), INT8_C(-128), INT8_C( -16), INT8_C( 29), INT8_C( 115), INT8_C( -23), INT8_C( -2), INT8_C(-108), INT8_C( -97), INT8_C( -57), INT8_C( -32), INT8_C( 57), INT8_C(-128), INT8_C(-124), INT8_C( 127), INT8_C(-119), INT8_C(-126), INT8_C( 126), INT8_C( 91), INT8_C( 23), INT8_C( 19), INT8_C( -83), INT8_C( 28), INT8_C(-106), INT8_C(-128), INT8_C( 65), INT8_C( 42), INT8_C( 81), INT8_C( 38), INT8_C( -84), INT8_C( 33)) }, { simde_mm512_set_epi8(INT8_C( -30), INT8_C( -37), INT8_C( 51), INT8_C( -36), INT8_C( 8), INT8_C( 52), INT8_C( 97), INT8_C( 123), INT8_C( -49), INT8_C(-124), INT8_C( 95), INT8_C( -83), INT8_C( 70), INT8_C( -50), INT8_C( -61), INT8_C( 25), INT8_C( -97), INT8_C( 28), INT8_C( -58), INT8_C( 11), INT8_C( -14), INT8_C( 126), INT8_C( 81), INT8_C( 45), INT8_C( -23), INT8_C( 120), INT8_C( -83), INT8_C( -16), INT8_C( 7), INT8_C( 51), INT8_C( -57), INT8_C( -50), INT8_C( -21), INT8_C( 98), INT8_C( 88), INT8_C( 0), INT8_C( -66), INT8_C( 3), INT8_C( 124), INT8_C(-113), INT8_C( 50), INT8_C( 88), INT8_C( -85), INT8_C( -93), INT8_C( -44), INT8_C( -13), INT8_C( -94), INT8_C( 17), INT8_C( -2), INT8_C( 79), INT8_C(-116), INT8_C( 43), INT8_C( -77), INT8_C(-125), INT8_C( -23), INT8_C(-120), INT8_C( 96), INT8_C( -64), INT8_C( -23), INT8_C( -46), INT8_C( -29), INT8_C( -71), INT8_C( 71), INT8_C( 90)), UINT64_C(12627002542648829104), simde_mm512_set_epi8(INT8_C( 56), INT8_C( -45), INT8_C(-108), INT8_C( -19), INT8_C(-124), INT8_C( -27), INT8_C( 22), INT8_C( 126), INT8_C(-106), INT8_C( -68), INT8_C( -60), INT8_C( 8), INT8_C( 60), INT8_C( 93), INT8_C( -33), INT8_C( -27), INT8_C( -7), INT8_C( 27), INT8_C(-122), INT8_C( -38), INT8_C( 23), INT8_C( 6), INT8_C( 45), INT8_C( -21), INT8_C( -23), INT8_C(-101), INT8_C( 116), INT8_C( 127), INT8_C( 96), INT8_C( 40), INT8_C( -97), INT8_C( 40), INT8_C( 86), INT8_C( -44), INT8_C( 70), INT8_C( -71), INT8_C( 62), INT8_C( -21), INT8_C( 66), INT8_C( 68), INT8_C( -87), INT8_C( -61), INT8_C( 48), INT8_C( -70), INT8_C( 18), INT8_C( -78), INT8_C( -98), INT8_C( 117), INT8_C( 74), INT8_C( 32), INT8_C( 93), INT8_C( 125), INT8_C( -47), INT8_C( -60), INT8_C( -86), INT8_C( 117), INT8_C( 122), INT8_C( -54), INT8_C( 50), INT8_C( 123), INT8_C( -31), INT8_C( -74), INT8_C( -64), INT8_C( 54)), simde_mm512_set_epi8(INT8_C( 115), INT8_C( 51), INT8_C( -91), INT8_C( 56), INT8_C( 64), INT8_C( -39), INT8_C(-119), INT8_C( -28), INT8_C( -54), INT8_C( 28), INT8_C( 54), INT8_C( -8), INT8_C( -54), INT8_C(-128), INT8_C( -28), INT8_C( -71), INT8_C( 107), INT8_C( -66), INT8_C(-114), INT8_C( -88), INT8_C( 34), INT8_C( -83), INT8_C( -21), INT8_C( -64), INT8_C( 121), INT8_C( -20), INT8_C( -89), INT8_C( -94), INT8_C( 112), INT8_C( -27), INT8_C( 81), INT8_C( -54), INT8_C( -64), INT8_C(-114), INT8_C( 48), INT8_C( -89), INT8_C( -61), INT8_C( 26), INT8_C( 43), INT8_C( 29), INT8_C( 0), INT8_C( 64), INT8_C( 123), INT8_C( -67), INT8_C( 15), INT8_C( 120), INT8_C( 36), INT8_C( 40), INT8_C( 106), INT8_C(-118), INT8_C(-108), INT8_C( -58), INT8_C( 26), INT8_C(-111), INT8_C( 63), INT8_C( -98), INT8_C( -13), INT8_C( -12), INT8_C(-124), INT8_C( 96), INT8_C( -13), INT8_C( -98), INT8_C( 99), INT8_C( -13)), simde_mm512_set_epi8(INT8_C( 127), INT8_C( -37), INT8_C(-128), INT8_C( -36), INT8_C( -60), INT8_C( -66), INT8_C( -97), INT8_C( 98), INT8_C( -49), INT8_C(-124), INT8_C( -6), INT8_C( 0), INT8_C( 6), INT8_C( -35), INT8_C( -61), INT8_C( 25), INT8_C( -97), INT8_C( 28), INT8_C( -58), INT8_C(-126), INT8_C( 57), INT8_C( -77), INT8_C( 24), INT8_C( -85), INT8_C( 98), INT8_C(-121), INT8_C( 27), INT8_C( -16), INT8_C( 127), INT8_C( 51), INT8_C( -57), INT8_C( -14), INT8_C( -21), INT8_C(-128), INT8_C( 118), INT8_C( 0), INT8_C( 1), INT8_C( 5), INT8_C( 124), INT8_C(-113), INT8_C( -87), INT8_C( 88), INT8_C( -85), INT8_C( -93), INT8_C( 33), INT8_C( -13), INT8_C( -94), INT8_C( 127), INT8_C( 127), INT8_C( 79), INT8_C( -15), INT8_C( 43), INT8_C( -77), INT8_C(-128), INT8_C( -23), INT8_C(-120), INT8_C( 109), INT8_C( -64), INT8_C( -74), INT8_C( 127), INT8_C( -29), INT8_C( -71), INT8_C( 71), INT8_C( 90)) }, { simde_mm512_set_epi8(INT8_C( 72), INT8_C( 45), INT8_C( 120), INT8_C( -5), INT8_C(-109), INT8_C( 62), INT8_C( 17), INT8_C( 31), INT8_C( -30), INT8_C( -58), INT8_C( 56), INT8_C( 21), INT8_C( 72), INT8_C( -74), INT8_C( -40), INT8_C( 120), INT8_C( 95), INT8_C( 108), INT8_C( 32), INT8_C( 64), INT8_C(-128), INT8_C( 102), INT8_C( -21), INT8_C( 28), INT8_C( 105), INT8_C( 52), INT8_C( 85), INT8_C(-104), INT8_C( 57), INT8_C( -31), INT8_C( -38), INT8_C(-124), INT8_C(-107), INT8_C( -2), INT8_C( 55), INT8_C( 46), INT8_C( -71), INT8_C( 77), INT8_C( 18), INT8_C( 70), INT8_C( 89), INT8_C( 125), INT8_C( -42), INT8_C(-125), INT8_C( 121), INT8_C( -11), INT8_C( -69), INT8_C( -59), INT8_C( -53), INT8_C( 34), INT8_C( 9), INT8_C( 64), INT8_C( -61), INT8_C( -25), INT8_C(-115), INT8_C( 100), INT8_C( 65), INT8_C( 8), INT8_C( 69), INT8_C( -8), INT8_C( -15), INT8_C( -51), INT8_C( 1), INT8_C( 90)), UINT64_C(14515151237088493607), simde_mm512_set_epi8(INT8_C( -26), INT8_C( -9), INT8_C( 66), INT8_C( 1), INT8_C( -13), INT8_C( 60), INT8_C(-119), INT8_C( -83), INT8_C(-122), INT8_C( -64), INT8_C( -83), INT8_C( -74), INT8_C( 119), INT8_C( -8), INT8_C( 12), INT8_C( 113), INT8_C( -12), INT8_C( -84), INT8_C( 6), INT8_C( 69), INT8_C( 2), INT8_C( -75), INT8_C( -34), INT8_C(-126), INT8_C( 3), INT8_C(-128), INT8_C( -9), INT8_C( 24), INT8_C( 11), INT8_C( -94), INT8_C( -32), INT8_C( 110), INT8_C( 33), INT8_C( -24), INT8_C( 125), INT8_C( 35), INT8_C(-103), INT8_C( -48), INT8_C( -22), INT8_C( 38), INT8_C( -81), INT8_C( 9), INT8_C( -11), INT8_C(-124), INT8_C( 71), INT8_C( 31), INT8_C( -42), INT8_C( 93), INT8_C( 67), INT8_C( 45), INT8_C( 51), INT8_C( -92), INT8_C( 126), INT8_C( 108), INT8_C(-123), INT8_C( -71), INT8_C( 113), INT8_C( 32), INT8_C( 71), INT8_C( 55), INT8_C( -26), INT8_C( 82), INT8_C( -81), INT8_C( -20)), simde_mm512_set_epi8(INT8_C(-125), INT8_C( 121), INT8_C(-128), INT8_C( 103), INT8_C( 0), INT8_C( 101), INT8_C( -41), INT8_C( 89), INT8_C( -83), INT8_C( -65), INT8_C( 9), INT8_C( -7), INT8_C( -63), INT8_C( 13), INT8_C( 105), INT8_C( 92), INT8_C( -18), INT8_C( -21), INT8_C(-102), INT8_C(-114), INT8_C( 74), INT8_C( 121), INT8_C( -45), INT8_C( 52), INT8_C( -63), INT8_C( -93), INT8_C( 98), INT8_C( 106), INT8_C(-109), INT8_C( -47), INT8_C( 37), INT8_C( 70), INT8_C( 100), INT8_C( 121), INT8_C( 18), INT8_C( 28), INT8_C(-117), INT8_C( 107), INT8_C( 3), INT8_C( -62), INT8_C( 42), INT8_C( 72), INT8_C( 91), INT8_C( 86), INT8_C( -72), INT8_C( 9), INT8_C( -80), INT8_C( 118), INT8_C( 122), INT8_C(-108), INT8_C( -70), INT8_C( -63), INT8_C( 56), INT8_C( 71), INT8_C( -14), INT8_C( 49), INT8_C( -73), INT8_C( 53), INT8_C( -29), INT8_C( 3), INT8_C( -73), INT8_C( 43), INT8_C( -22), INT8_C( 85)), simde_mm512_set_epi8(INT8_C(-128), INT8_C( 112), INT8_C( 120), INT8_C( -5), INT8_C( -13), INT8_C( 62), INT8_C( 17), INT8_C( 6), INT8_C( -30), INT8_C(-128), INT8_C( -74), INT8_C( -81), INT8_C( 72), INT8_C( -74), INT8_C( -40), INT8_C( 120), INT8_C( 95), INT8_C( 108), INT8_C( -96), INT8_C( 64), INT8_C( 76), INT8_C( 46), INT8_C( -21), INT8_C( -74), INT8_C( 105), INT8_C( 52), INT8_C( 89), INT8_C(-104), INT8_C( 57), INT8_C(-128), INT8_C( -38), INT8_C( 127), INT8_C(-107), INT8_C( 97), INT8_C( 55), INT8_C( 46), INT8_C( -71), INT8_C( 77), INT8_C( -19), INT8_C( -24), INT8_C( -39), INT8_C( 125), INT8_C( 80), INT8_C( -38), INT8_C( -1), INT8_C( -11), INT8_C(-122), INT8_C( 127), INT8_C( -53), INT8_C( -63), INT8_C( 9), INT8_C( 64), INT8_C( -61), INT8_C( -25), INT8_C(-115), INT8_C( 100), INT8_C( 65), INT8_C( 8), INT8_C( 42), INT8_C( -8), INT8_C( -15), INT8_C( 125), INT8_C(-103), INT8_C( 65)) }, { simde_mm512_set_epi8(INT8_C( -47), INT8_C( 84), INT8_C(-126), INT8_C( -64), INT8_C( 14), INT8_C( 11), INT8_C( 37), INT8_C( -23), INT8_C( 67), INT8_C( 124), INT8_C( 58), INT8_C( -94), INT8_C( 30), INT8_C( -33), INT8_C( 70), INT8_C( -24), INT8_C( 38), INT8_C( -97), INT8_C( -56), INT8_C( -60), INT8_C( -59), INT8_C( 65), INT8_C( -74), INT8_C( 45), INT8_C( -11), INT8_C( 55), INT8_C( -82), INT8_C( 12), INT8_C( 106), INT8_C( 22), INT8_C(-124), INT8_C( -4), INT8_C( 2), INT8_C( -81), INT8_C( 14), INT8_C( 90), INT8_C(-100), INT8_C(-122), INT8_C( -35), INT8_C( 81), INT8_C( -14), INT8_C( -42), INT8_C( 125), INT8_C(-125), INT8_C( -57), INT8_C( 90), INT8_C( -9), INT8_C( 63), INT8_C( 53), INT8_C( 77), INT8_C( 63), INT8_C( -84), INT8_C( 27), INT8_C( 22), INT8_C( 3), INT8_C( -37), INT8_C( 65), INT8_C( 118), INT8_C(-126), INT8_C( 97), INT8_C( 109), INT8_C( 7), INT8_C(-114), INT8_C( -75)), UINT64_C( 8707623543556880126), simde_mm512_set_epi8(INT8_C( 84), INT8_C( -71), INT8_C( 8), INT8_C( 12), INT8_C( -11), INT8_C( -76), INT8_C( 62), INT8_C( 93), INT8_C( -75), INT8_C( -77), INT8_C( -84), INT8_C(-108), INT8_C( -35), INT8_C( 14), INT8_C( -60), INT8_C( 18), INT8_C( 23), INT8_C( -60), INT8_C( -63), INT8_C(-114), INT8_C( -55), INT8_C( 75), INT8_C( -99), INT8_C( -55), INT8_C( 58), INT8_C( 76), INT8_C(-102), INT8_C(-118), INT8_C( -30), INT8_C( 39), INT8_C( 119), INT8_C( 85), INT8_C( -8), INT8_C( -72), INT8_C( -60), INT8_C( -94), INT8_C(-112), INT8_C( 119), INT8_C( 124), INT8_C( 76), INT8_C( -42), INT8_C(-124), INT8_C( 54), INT8_C( 74), INT8_C( -92), INT8_C( 99), INT8_C( 79), INT8_C( -3), INT8_C( 61), INT8_C( -89), INT8_C( 84), INT8_C( -94), INT8_C( 31), INT8_C(-116), INT8_C( -67), INT8_C(-102), INT8_C( -72), INT8_C( -91), INT8_C(-105), INT8_C(-108), INT8_C( -44), INT8_C( 74), INT8_C( -28), INT8_C( 124)), simde_mm512_set_epi8(INT8_C( 1), INT8_C( 75), INT8_C( 21), INT8_C( -36), INT8_C(-126), INT8_C( 122), INT8_C( 71), INT8_C( 76), INT8_C( 28), INT8_C( -56), INT8_C( 32), INT8_C( 101), INT8_C(-107), INT8_C(-111), INT8_C( -88), INT8_C( -19), INT8_C( -77), INT8_C( 19), INT8_C( -21), INT8_C(-111), INT8_C( -68), INT8_C( 82), INT8_C(-118), INT8_C( -76), INT8_C( 47), INT8_C( 127), INT8_C( 62), INT8_C( -16), INT8_C( 10), INT8_C( -14), INT8_C(-100), INT8_C( 86), INT8_C( 29), INT8_C( 107), INT8_C( 56), INT8_C( 21), INT8_C( 24), INT8_C( 68), INT8_C( -96), INT8_C( 64), INT8_C( 48), INT8_C( 13), INT8_C( -83), INT8_C( 4), INT8_C( -3), INT8_C( -64), INT8_C( 17), INT8_C(-115), INT8_C( 21), INT8_C( 108), INT8_C( 125), INT8_C( -60), INT8_C( -72), INT8_C( 74), INT8_C( -5), INT8_C( -58), INT8_C( -41), INT8_C( 22), INT8_C(-115), INT8_C( 102), INT8_C( 59), INT8_C( -80), INT8_C( -15), INT8_C( -63)), simde_mm512_set_epi8(INT8_C( -47), INT8_C( 4), INT8_C( 29), INT8_C( -24), INT8_C(-128), INT8_C( 11), INT8_C( 37), INT8_C( -23), INT8_C( -47), INT8_C(-128), INT8_C( 58), INT8_C( -7), INT8_C( 30), INT8_C( -97), INT8_C(-128), INT8_C( -1), INT8_C( -54), INT8_C( -97), INT8_C( -84), INT8_C(-128), INT8_C( -59), INT8_C( 65), INT8_C( -74), INT8_C(-128), INT8_C( -11), INT8_C( 127), INT8_C( -40), INT8_C(-128), INT8_C( -20), INT8_C( 22), INT8_C( 19), INT8_C( -4), INT8_C( 2), INT8_C( 35), INT8_C( 14), INT8_C( -73), INT8_C(-100), INT8_C( 127), INT8_C( 28), INT8_C( 127), INT8_C( 6), INT8_C( -42), INT8_C( 125), INT8_C(-125), INT8_C( -95), INT8_C( 90), INT8_C( -9), INT8_C(-118), INT8_C( 53), INT8_C( 77), INT8_C( 127), INT8_C(-128), INT8_C( 27), INT8_C( -42), INT8_C( -72), INT8_C( -37), INT8_C(-113), INT8_C( -69), INT8_C(-128), INT8_C( -6), INT8_C( 15), INT8_C( -6), INT8_C( -43), INT8_C( -75)) }, { simde_mm512_set_epi8(INT8_C( -64), INT8_C( -53), INT8_C( -42), INT8_C( 126), INT8_C( 67), INT8_C( 50), INT8_C( -18), INT8_C( 76), INT8_C( -19), INT8_C( 123), INT8_C( -87), INT8_C( 106), INT8_C( -74), INT8_C( 44), INT8_C( 117), INT8_C( 103), INT8_C( 81), INT8_C( 122), INT8_C( 56), INT8_C( -10), INT8_C( 67), INT8_C( 79), INT8_C( 83), INT8_C( -38), INT8_C( -13), INT8_C( 43), INT8_C( 27), INT8_C( -97), INT8_C( 102), INT8_C( 126), INT8_C( 38), INT8_C( -62), INT8_C( -24), INT8_C( 117), INT8_C( -38), INT8_C( -93), INT8_C( -58), INT8_C(-124), INT8_C( -75), INT8_C( 10), INT8_C( 18), INT8_C( -74), INT8_C( 14), INT8_C( 36), INT8_C( -7), INT8_C( 113), INT8_C( 40), INT8_C( 48), INT8_C(-107), INT8_C( -34), INT8_C( -75), INT8_C( 85), INT8_C( -35), INT8_C(-116), INT8_C( 65), INT8_C( -21), INT8_C( 15), INT8_C( 3), INT8_C( 45), INT8_C( 21), INT8_C( 72), INT8_C( 93), INT8_C( 108), INT8_C( 125)), UINT64_C(12576710173448868104), simde_mm512_set_epi8(INT8_C( 90), INT8_C( -38), INT8_C( -98), INT8_C( -70), INT8_C(-108), INT8_C( 20), INT8_C( 43), INT8_C(-128), INT8_C( 77), INT8_C( 108), INT8_C( 53), INT8_C( 82), INT8_C( -50), INT8_C( 52), INT8_C( 56), INT8_C( 58), INT8_C(-120), INT8_C( -43), INT8_C( 114), INT8_C( 93), INT8_C( -44), INT8_C( -15), INT8_C( 38), INT8_C( -17), INT8_C(-110), INT8_C(-123), INT8_C( -39), INT8_C( 114), INT8_C( 51), INT8_C(-115), INT8_C( -74), INT8_C( 43), INT8_C( 41), INT8_C( -36), INT8_C( 19), INT8_C( 69), INT8_C( 60), INT8_C( -53), INT8_C( 112), INT8_C( 108), INT8_C( 8), INT8_C( 46), INT8_C( -35), INT8_C( 26), INT8_C( 11), INT8_C( 42), INT8_C( 47), INT8_C( 59), INT8_C( -57), INT8_C( 94), INT8_C(-125), INT8_C(-124), INT8_C( 36), INT8_C( 57), INT8_C( 68), INT8_C( -52), INT8_C( 39), INT8_C( 50), INT8_C( -48), INT8_C( 94), INT8_C( 53), INT8_C( 11), INT8_C( 29), INT8_C( 65)), simde_mm512_set_epi8(INT8_C(-107), INT8_C( 120), INT8_C( -58), INT8_C( 107), INT8_C( -32), INT8_C( -32), INT8_C( 88), INT8_C( -43), INT8_C( 31), INT8_C( -32), INT8_C( -64), INT8_C( 27), INT8_C( 82), INT8_C( -90), INT8_C( -54), INT8_C( -84), INT8_C( -30), INT8_C( 63), INT8_C( 24), INT8_C( 81), INT8_C( -8), INT8_C( 9), INT8_C( -35), INT8_C(-101), INT8_C( 83), INT8_C( 107), INT8_C( -47), INT8_C( -56), INT8_C( 57), INT8_C( -88), INT8_C(-115), INT8_C( -20), INT8_C( 58), INT8_C( 75), INT8_C( 56), INT8_C( 93), INT8_C( 49), INT8_C( 43), INT8_C( 108), INT8_C( 118), INT8_C( -79), INT8_C( 112), INT8_C( 44), INT8_C(-112), INT8_C( -52), INT8_C( 10), INT8_C( 28), INT8_C( -86), INT8_C( 65), INT8_C( 62), INT8_C( 86), INT8_C(-107), INT8_C( 24), INT8_C( -55), INT8_C( 54), INT8_C(-110), INT8_C( -33), INT8_C( 110), INT8_C(-116), INT8_C( -39), INT8_C( 39), INT8_C(-112), INT8_C( 64), INT8_C( 43)), simde_mm512_set_epi8(INT8_C( -17), INT8_C( -53), INT8_C(-128), INT8_C( 126), INT8_C(-128), INT8_C( -12), INT8_C( 127), INT8_C( 76), INT8_C( 108), INT8_C( 123), INT8_C( -87), INT8_C( 106), INT8_C( 32), INT8_C( 44), INT8_C( 117), INT8_C( -26), INT8_C( 81), INT8_C( 20), INT8_C( 127), INT8_C( 127), INT8_C( 67), INT8_C( 79), INT8_C( 3), INT8_C(-118), INT8_C( -13), INT8_C( -16), INT8_C( 27), INT8_C( -97), INT8_C( 102), INT8_C(-128), INT8_C( 38), INT8_C( -62), INT8_C( 99), INT8_C( 117), INT8_C( 75), INT8_C( 127), INT8_C( 109), INT8_C(-124), INT8_C( 127), INT8_C( 127), INT8_C( 18), INT8_C( 127), INT8_C( 9), INT8_C( -86), INT8_C( -7), INT8_C( 52), INT8_C( 75), INT8_C( 48), INT8_C(-107), INT8_C( -34), INT8_C( -75), INT8_C(-128), INT8_C( -35), INT8_C(-116), INT8_C( 65), INT8_C(-128), INT8_C( 15), INT8_C( 3), INT8_C( 45), INT8_C( 21), INT8_C( 92), INT8_C( 93), INT8_C( 108), INT8_C( 125)) }, { simde_mm512_set_epi8(INT8_C(-103), INT8_C(-124), INT8_C( 13), INT8_C( -80), INT8_C( -32), INT8_C( 123), INT8_C( 115), INT8_C( -49), INT8_C( 113), INT8_C( -51), INT8_C( 119), INT8_C( -67), INT8_C( -21), INT8_C( 19), INT8_C( -12), INT8_C( 29), INT8_C( 91), INT8_C( -64), INT8_C( 88), INT8_C(-105), INT8_C( 24), INT8_C( 31), INT8_C( 77), INT8_C( 92), INT8_C( -85), INT8_C( 48), INT8_C(-113), INT8_C(-114), INT8_C( 16), INT8_C( 18), INT8_C( -44), INT8_C( -66), INT8_C( 25), INT8_C(-105), INT8_C(-100), INT8_C( -91), INT8_C( 26), INT8_C(-123), INT8_C( -33), INT8_C( -37), INT8_C( 63), INT8_C( 13), INT8_C(-124), INT8_C( 41), INT8_C(-104), INT8_C( -59), INT8_C( -2), INT8_C( -54), INT8_C( 73), INT8_C( 3), INT8_C( -18), INT8_C( 10), INT8_C( 19), INT8_C( 58), INT8_C( -12), INT8_C( -75), INT8_C( -88), INT8_C( 59), INT8_C( 104), INT8_C( -40), INT8_C( -82), INT8_C( 42), INT8_C( -73), INT8_C( -94)), UINT64_C( 2633789449456316803), simde_mm512_set_epi8(INT8_C( 118), INT8_C( 44), INT8_C( -14), INT8_C( 84), INT8_C( -69), INT8_C( -48), INT8_C( 40), INT8_C( 86), INT8_C( -1), INT8_C( 121), INT8_C( -40), INT8_C( 44), INT8_C( -1), INT8_C( 38), INT8_C( -44), INT8_C( 38), INT8_C( 93), INT8_C(-107), INT8_C( -4), INT8_C( -61), INT8_C( -52), INT8_C( 22), INT8_C( -54), INT8_C(-125), INT8_C( -29), INT8_C( 25), INT8_C( -77), INT8_C( -68), INT8_C( 9), INT8_C( -35), INT8_C( -11), INT8_C( 53), INT8_C( 28), INT8_C( 61), INT8_C( -35), INT8_C(-106), INT8_C( -46), INT8_C( 121), INT8_C(-102), INT8_C( 121), INT8_C( -54), INT8_C( -60), INT8_C( 7), INT8_C( 2), INT8_C(-119), INT8_C( 111), INT8_C( -20), INT8_C( -58), INT8_C( -98), INT8_C( 83), INT8_C( 32), INT8_C( -49), INT8_C( -11), INT8_C( 48), INT8_C( 92), INT8_C( 47), INT8_C( -38), INT8_C( 11), INT8_C( 26), INT8_C( 90), INT8_C( -5), INT8_C( 73), INT8_C( 45), INT8_C( -2)), simde_mm512_set_epi8(INT8_C( -31), INT8_C( 126), INT8_C(-118), INT8_C( -57), INT8_C(-126), INT8_C( 29), INT8_C( 101), INT8_C( -15), INT8_C( -61), INT8_C( 118), INT8_C( 102), INT8_C( 12), INT8_C( -59), INT8_C( -41), INT8_C( -60), INT8_C( 46), INT8_C( 63), INT8_C( 78), INT8_C( 87), INT8_C( 18), INT8_C( 18), INT8_C( 32), INT8_C( -26), INT8_C( -6), INT8_C( -20), INT8_C(-123), INT8_C( 99), INT8_C( 65), INT8_C( 13), INT8_C( 25), INT8_C( 108), INT8_C(-121), INT8_C( 42), INT8_C( 0), INT8_C( 104), INT8_C( -17), INT8_C( 111), INT8_C(-110), INT8_C( -39), INT8_C( 125), INT8_C( -50), INT8_C( -47), INT8_C( 30), INT8_C( 92), INT8_C( 19), INT8_C( -8), INT8_C(-120), INT8_C( 127), INT8_C( -49), INT8_C( 23), INT8_C( 16), INT8_C( -64), INT8_C( -79), INT8_C( 116), INT8_C( -5), INT8_C( -50), INT8_C( 32), INT8_C( 22), INT8_C( -42), INT8_C( -3), INT8_C( 30), INT8_C( 64), INT8_C( 96), INT8_C( -66)), simde_mm512_set_epi8(INT8_C(-103), INT8_C(-124), INT8_C(-128), INT8_C( -80), INT8_C( -32), INT8_C( -19), INT8_C( 115), INT8_C( -49), INT8_C( -62), INT8_C( -51), INT8_C( 119), INT8_C( -67), INT8_C( -60), INT8_C( -3), INT8_C( -12), INT8_C( 84), INT8_C( 91), INT8_C( -64), INT8_C( 88), INT8_C( -43), INT8_C( -34), INT8_C( 31), INT8_C( 77), INT8_C(-128), INT8_C( -49), INT8_C( 48), INT8_C(-113), INT8_C(-114), INT8_C( 22), INT8_C( -10), INT8_C( -44), INT8_C( -66), INT8_C( 70), INT8_C( 61), INT8_C(-100), INT8_C( -91), INT8_C( 26), INT8_C( 11), INT8_C( -33), INT8_C( -37), INT8_C( 63), INT8_C( 13), INT8_C(-124), INT8_C( 41), INT8_C(-104), INT8_C( -59), INT8_C(-128), INT8_C( 69), INT8_C(-128), INT8_C( 106), INT8_C( 48), INT8_C(-113), INT8_C( 19), INT8_C( 58), INT8_C( -12), INT8_C( -3), INT8_C( -6), INT8_C( 59), INT8_C( 104), INT8_C( -40), INT8_C( -82), INT8_C( 42), INT8_C( 127), INT8_C( -68)) }, { simde_mm512_set_epi8(INT8_C( 117), INT8_C( 69), INT8_C( 121), INT8_C( -45), INT8_C( 30), INT8_C( -73), INT8_C( 2), INT8_C( -40), INT8_C( 95), INT8_C( -3), INT8_C( 16), INT8_C( -78), INT8_C(-128), INT8_C( -41), INT8_C( -66), INT8_C( 66), INT8_C( 93), INT8_C( -32), INT8_C( -50), INT8_C( -2), INT8_C( -61), INT8_C( 29), INT8_C( -88), INT8_C(-118), INT8_C( -27), INT8_C( 42), INT8_C( 78), INT8_C( -46), INT8_C( -79), INT8_C( 38), INT8_C( -75), INT8_C( 14), INT8_C(-118), INT8_C(-114), INT8_C(-120), INT8_C( 42), INT8_C( 4), INT8_C( 79), INT8_C( -84), INT8_C(-110), INT8_C( 0), INT8_C( 85), INT8_C( -20), INT8_C( 61), INT8_C( 40), INT8_C( -75), INT8_C( 69), INT8_C( -99), INT8_C( 73), INT8_C( -34), INT8_C( -14), INT8_C( 72), INT8_C( 101), INT8_C( 96), INT8_C(-114), INT8_C(-124), INT8_C( -87), INT8_C( 43), INT8_C(-118), INT8_C( 114), INT8_C( -88), INT8_C( 8), INT8_C( -52), INT8_C( 75)), UINT64_C(14890918166471265655), simde_mm512_set_epi8(INT8_C( -56), INT8_C( -70), INT8_C( 66), INT8_C(-111), INT8_C( -69), INT8_C( 15), INT8_C( -82), INT8_C( -12), INT8_C( -89), INT8_C( 37), INT8_C( 80), INT8_C( 120), INT8_C( -83), INT8_C(-120), INT8_C( 95), INT8_C( 21), INT8_C( 91), INT8_C( -97), INT8_C( -72), INT8_C( 42), INT8_C( 22), INT8_C( -70), INT8_C( 71), INT8_C( -78), INT8_C( -5), INT8_C( 52), INT8_C( -22), INT8_C( -34), INT8_C( 16), INT8_C( 92), INT8_C( 91), INT8_C( -72), INT8_C( 3), INT8_C( -31), INT8_C( -95), INT8_C( -56), INT8_C( -50), INT8_C( 68), INT8_C( -24), INT8_C( -50), INT8_C( 94), INT8_C( 67), INT8_C( 108), INT8_C(-118), INT8_C( -65), INT8_C( 31), INT8_C( 70), INT8_C( 108), INT8_C( -66), INT8_C( 107), INT8_C( -85), INT8_C( 38), INT8_C( 2), INT8_C( 32), INT8_C( 56), INT8_C( 66), INT8_C( -2), INT8_C( -74), INT8_C( 112), INT8_C( 10), INT8_C( 64), INT8_C( 100), INT8_C( -55), INT8_C( 83)), simde_mm512_set_epi8(INT8_C( -69), INT8_C( -45), INT8_C( 23), INT8_C( 70), INT8_C( 22), INT8_C( 113), INT8_C( 75), INT8_C(-117), INT8_C( 69), INT8_C( -74), INT8_C( 40), INT8_C( -39), INT8_C( -51), INT8_C( -91), INT8_C( 25), INT8_C( -4), INT8_C( -12), INT8_C( -13), INT8_C( -77), INT8_C( 75), INT8_C(-116), INT8_C( -36), INT8_C( 38), INT8_C( -52), INT8_C( 13), INT8_C( -52), INT8_C(-100), INT8_C( -46), INT8_C( 13), INT8_C( 83), INT8_C( -94), INT8_C( 102), INT8_C( 116), INT8_C( -60), INT8_C( 44), INT8_C( -7), INT8_C( 104), INT8_C( -50), INT8_C( -30), INT8_C( 17), INT8_C( 13), INT8_C(-107), INT8_C( 111), INT8_C( -13), INT8_C( 17), INT8_C( -45), INT8_C( -31), INT8_C( 76), INT8_C(-102), INT8_C( -71), INT8_C( 116), INT8_C( 72), INT8_C( -11), INT8_C( -97), INT8_C( 93), INT8_C( 48), INT8_C( -75), INT8_C( -90), INT8_C( -10), INT8_C( -78), INT8_C( -8), INT8_C( -10), INT8_C( 48), INT8_C( -11)), simde_mm512_set_epi8(INT8_C(-125), INT8_C(-115), INT8_C( 121), INT8_C( -45), INT8_C( -47), INT8_C( 127), INT8_C( -7), INT8_C( -40), INT8_C( -20), INT8_C( -3), INT8_C( 120), INT8_C( -78), INT8_C(-128), INT8_C(-128), INT8_C( 120), INT8_C( 17), INT8_C( 93), INT8_C( -32), INT8_C(-128), INT8_C( -2), INT8_C( -94), INT8_C( 29), INT8_C( 109), INT8_C(-128), INT8_C( -27), INT8_C( 42), INT8_C(-122), INT8_C( -46), INT8_C( 29), INT8_C( 127), INT8_C( -75), INT8_C( 30), INT8_C(-118), INT8_C( -91), INT8_C(-120), INT8_C( 42), INT8_C( 54), INT8_C( 79), INT8_C( -54), INT8_C( -33), INT8_C( 107), INT8_C( -40), INT8_C( 127), INT8_C( 61), INT8_C( -48), INT8_C( -14), INT8_C( 39), INT8_C( -99), INT8_C( 73), INT8_C( 36), INT8_C( -14), INT8_C( 72), INT8_C( -9), INT8_C( -65), INT8_C(-114), INT8_C( 114), INT8_C( -87), INT8_C(-128), INT8_C( 102), INT8_C( -68), INT8_C( -88), INT8_C( 90), INT8_C( -7), INT8_C( 72)) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_adds_epi8(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i8(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_maskz_adds_epi8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask64 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT64_C(17286015531074160252), simde_mm512_set_epi8(INT8_C(-115), INT8_C( -27), INT8_C( 62), INT8_C( -85), INT8_C( 49), INT8_C(-115), INT8_C( 38), INT8_C( 4), INT8_C( 92), INT8_C( 116), INT8_C( -78), INT8_C( -19), INT8_C( -73), INT8_C( 22), INT8_C( -66), INT8_C( -29), INT8_C( 55), INT8_C( 78), INT8_C( -45), INT8_C(-119), INT8_C( 30), INT8_C( -29), INT8_C( -23), INT8_C( 89), INT8_C( 15), INT8_C( 119), INT8_C( -88), INT8_C( 109), INT8_C( -16), INT8_C( -10), INT8_C( 0), INT8_C( -18), INT8_C( 1), INT8_C( 116), INT8_C( 62), INT8_C( -73), INT8_C(-122), INT8_C( 0), INT8_C( 111), INT8_C( 95), INT8_C( -20), INT8_C( 3), INT8_C( 122), INT8_C(-121), INT8_C( 13), INT8_C( 25), INT8_C( -35), INT8_C(-127), INT8_C( 82), INT8_C( 90), INT8_C( 53), INT8_C( 123), INT8_C( 73), INT8_C( 108), INT8_C( -18), INT8_C( 15), INT8_C( 81), INT8_C( -27), INT8_C( 102), INT8_C( 118), INT8_C( 39), INT8_C( -77), INT8_C( 45), INT8_C( 81)), simde_mm512_set_epi8(INT8_C( 68), INT8_C(-108), INT8_C(-121), INT8_C(-115), INT8_C( -59), INT8_C( -78), INT8_C(-111), INT8_C( 56), INT8_C( 9), INT8_C(-121), INT8_C( 120), INT8_C( -36), INT8_C( 36), INT8_C(-103), INT8_C(-104), INT8_C( 25), INT8_C(-111), INT8_C( -63), INT8_C( -35), INT8_C(-120), INT8_C( 28), INT8_C( -44), INT8_C( -26), INT8_C( -86), INT8_C( -13), INT8_C( 53), INT8_C( -88), INT8_C(-107), INT8_C( 68), INT8_C( 42), INT8_C(-118), INT8_C( 111), INT8_C( 54), INT8_C( -58), INT8_C( -13), INT8_C( 27), INT8_C( 23), INT8_C( 41), INT8_C(-119), INT8_C( 44), INT8_C( 7), INT8_C(-120), INT8_C( 32), INT8_C( -43), INT8_C( 114), INT8_C( -72), INT8_C( 73), INT8_C( -96), INT8_C( 96), INT8_C( 110), INT8_C( -81), INT8_C( -76), INT8_C( 103), INT8_C(-100), INT8_C( -22), INT8_C( 18), INT8_C( 115), INT8_C( 54), INT8_C( -40), INT8_C( 125), INT8_C( 110), INT8_C( 31), INT8_C( 51), INT8_C(-104)), simde_mm512_set_epi8(INT8_C( -47), INT8_C(-128), INT8_C( -59), INT8_C( 0), INT8_C( -10), INT8_C(-128), INT8_C( -73), INT8_C( 60), INT8_C( 101), INT8_C( -5), INT8_C( 42), INT8_C( 0), INT8_C( 0), INT8_C( -81), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 15), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -49), INT8_C( 3), INT8_C( 2), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 52), INT8_C( 0), INT8_C(-118), INT8_C( 0), INT8_C( 0), INT8_C( 58), INT8_C( 0), INT8_C( 0), INT8_C( -99), INT8_C( 41), INT8_C( -8), INT8_C( 127), INT8_C( -13), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 127), INT8_C( -47), INT8_C( 38), INT8_C(-128), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 8), INT8_C( -40), INT8_C( 0), INT8_C( 0), INT8_C( 27), INT8_C( 62), INT8_C( 127), INT8_C( 127), INT8_C( -46), INT8_C( 0), INT8_C( 0)) }, { UINT64_C( 9031211210081693899), simde_mm512_set_epi8(INT8_C(-106), INT8_C( -18), INT8_C( 65), INT8_C(-104), INT8_C( 81), INT8_C( 38), INT8_C( -84), INT8_C( -2), INT8_C( -14), INT8_C( 85), INT8_C( -80), INT8_C( 80), INT8_C( 48), INT8_C( 93), INT8_C( 79), INT8_C( 127), INT8_C( 16), INT8_C( 41), INT8_C( 54), INT8_C(-116), INT8_C( 17), INT8_C( 42), INT8_C( -86), INT8_C( 38), INT8_C(-118), INT8_C( -56), INT8_C( 60), INT8_C( 19), INT8_C(-100), INT8_C(-107), INT8_C( 105), INT8_C( -76), INT8_C( 10), INT8_C( -9), INT8_C( -12), INT8_C( -56), INT8_C( -71), INT8_C( 96), INT8_C( 6), INT8_C( 24), INT8_C( 69), INT8_C( 73), INT8_C( -27), INT8_C( 3), INT8_C( -95), INT8_C( 50), INT8_C( -67), INT8_C( -39), INT8_C( 97), INT8_C( 62), INT8_C( 101), INT8_C( 56), INT8_C( -79), INT8_C( 83), INT8_C( -99), INT8_C( -56), INT8_C( -17), INT8_C( -56), INT8_C( -8), INT8_C( -16), INT8_C( 84), INT8_C( -95), INT8_C( -73), INT8_C( 54)), simde_mm512_set_epi8(INT8_C( 63), INT8_C( -51), INT8_C( 87), INT8_C( 32), INT8_C( -65), INT8_C( 55), INT8_C( 14), INT8_C( 81), INT8_C(-123), INT8_C(-100), INT8_C( -39), INT8_C( -44), INT8_C( 22), INT8_C( 112), INT8_C( 16), INT8_C( 15), INT8_C(-104), INT8_C(-102), INT8_C( 102), INT8_C( -95), INT8_C( 69), INT8_C( 13), INT8_C( -21), INT8_C( 45), INT8_C( 62), INT8_C(-120), INT8_C(-111), INT8_C( 32), INT8_C(-107), INT8_C( -30), INT8_C( 99), INT8_C( -64), INT8_C( 8), INT8_C( -42), INT8_C( 81), INT8_C( -34), INT8_C( -46), INT8_C( 26), INT8_C( 31), INT8_C( -2), INT8_C( 68), INT8_C( -7), INT8_C( -71), INT8_C( 46), INT8_C( -21), INT8_C( -73), INT8_C( 21), INT8_C( 83), INT8_C(-108), INT8_C( -97), INT8_C( -69), INT8_C( 73), INT8_C( 57), INT8_C( -37), INT8_C( 21), INT8_C( 82), INT8_C(-119), INT8_C(-126), INT8_C( 126), INT8_C( 91), INT8_C( 115), INT8_C( 31), INT8_C( -79), INT8_C( 28)), simde_mm512_set_epi8(INT8_C( 0), INT8_C( -69), INT8_C( 127), INT8_C( -72), INT8_C( 16), INT8_C( 93), INT8_C( 0), INT8_C( 79), INT8_C( 0), INT8_C( -15), INT8_C( 0), INT8_C( 36), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( -61), INT8_C( 0), INT8_C( 0), INT8_C( 86), INT8_C( 55), INT8_C(-107), INT8_C( 0), INT8_C( -56), INT8_C( 0), INT8_C( -51), INT8_C( 51), INT8_C(-128), INT8_C(-128), INT8_C( 127), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 122), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 66), INT8_C( -98), INT8_C( 49), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 44), INT8_C( -11), INT8_C( -35), INT8_C( 32), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C(-128), INT8_C( 82)) }, { UINT64_C( 6828010367541473016), simde_mm512_set_epi8(INT8_C( 84), INT8_C( -96), INT8_C( 87), INT8_C( -22), INT8_C( -5), INT8_C( -3), INT8_C(-127), INT8_C( 41), INT8_C( 74), INT8_C( 72), INT8_C( -4), INT8_C( 28), INT8_C(-115), INT8_C( 93), INT8_C( 102), INT8_C( 44), INT8_C(-103), INT8_C( -29), INT8_C( -50), INT8_C( 48), INT8_C( -96), INT8_C( -50), INT8_C( 46), INT8_C( -65), INT8_C( 4), INT8_C( 43), INT8_C( -75), INT8_C( 97), INT8_C( -26), INT8_C(-103), INT8_C( 71), INT8_C(-107), INT8_C( 91), INT8_C( 45), INT8_C( -11), INT8_C( 47), INT8_C( 29), INT8_C( 25), INT8_C( 26), INT8_C( -9), INT8_C( 10), INT8_C( 36), INT8_C( -79), INT8_C( -53), INT8_C( 41), INT8_C( 1), INT8_C( -23), INT8_C( -63), INT8_C(-127), INT8_C( 68), INT8_C( 48), INT8_C( 36), INT8_C( 89), INT8_C(-112), INT8_C( -31), INT8_C( 120), INT8_C( 35), INT8_C( 62), INT8_C( -21), INT8_C(-114), INT8_C(-104), INT8_C( 57), INT8_C( 42), INT8_C(-111)), simde_mm512_set_epi8(INT8_C( 96), INT8_C( -64), INT8_C( -23), INT8_C( -46), INT8_C( -29), INT8_C( -71), INT8_C( 71), INT8_C( 90), INT8_C( 44), INT8_C( -92), INT8_C( -31), INT8_C( 26), INT8_C( -99), INT8_C( -53), INT8_C( 117), INT8_C( 18), INT8_C( -63), INT8_C( 45), INT8_C( 12), INT8_C( 24), INT8_C(-108), INT8_C( 18), INT8_C( -60), INT8_C( 28), INT8_C( 50), INT8_C( -11), INT8_C( -68), INT8_C( -31), INT8_C( 105), INT8_C(-106), INT8_C( 98), INT8_C( 51), INT8_C( 58), INT8_C( 103), INT8_C( 111), INT8_C(-127), INT8_C( 68), INT8_C( -56), INT8_C( 124), INT8_C(-119), INT8_C( 74), INT8_C( -62), INT8_C(-116), INT8_C( 37), INT8_C( -12), INT8_C( 114), INT8_C( 0), INT8_C( 61), INT8_C( 103), INT8_C( -4), INT8_C(-105), INT8_C( -68), INT8_C( 39), INT8_C(-100), INT8_C( -93), INT8_C( 11), INT8_C( -80), INT8_C( -19), INT8_C( -22), INT8_C( -39), INT8_C( 127), INT8_C( -38), INT8_C(-125), INT8_C(-111)), simde_mm512_set_epi8(INT8_C( 0), INT8_C(-128), INT8_C( 0), INT8_C( -68), INT8_C( -34), INT8_C( -74), INT8_C( -56), INT8_C( 0), INT8_C( 118), INT8_C( -20), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 62), INT8_C(-128), INT8_C( 16), INT8_C( -38), INT8_C( 72), INT8_C( 0), INT8_C( -32), INT8_C( -14), INT8_C( -37), INT8_C( 0), INT8_C( 32), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 100), INT8_C( -80), INT8_C( 97), INT8_C( -31), INT8_C( 127), INT8_C(-128), INT8_C( 84), INT8_C( -26), INT8_C(-128), INT8_C( -16), INT8_C( 29), INT8_C( 115), INT8_C( -23), INT8_C( 0), INT8_C( 0), INT8_C( 64), INT8_C( -57), INT8_C( 0), INT8_C( 127), INT8_C(-128), INT8_C(-124), INT8_C( 0), INT8_C( -45), INT8_C( 43), INT8_C( -43), INT8_C(-128), INT8_C( 23), INT8_C( 0), INT8_C( 0), INT8_C( 0)) }, { UINT64_C(18325019528117086600), simde_mm512_set_epi8(INT8_C( 122), INT8_C( -54), INT8_C( 50), INT8_C( 123), INT8_C( -31), INT8_C( -74), INT8_C( -64), INT8_C( 54), INT8_C( -81), INT8_C( 60), INT8_C( 31), INT8_C( -23), INT8_C( 108), INT8_C(-119), INT8_C( -92), INT8_C( -80), INT8_C( -30), INT8_C( -37), INT8_C( 51), INT8_C( -36), INT8_C( 8), INT8_C( 52), INT8_C( 97), INT8_C( 123), INT8_C( -49), INT8_C(-124), INT8_C( 95), INT8_C( -83), INT8_C( 70), INT8_C( -50), INT8_C( -61), INT8_C( 25), INT8_C( -97), INT8_C( 28), INT8_C( -58), INT8_C( 11), INT8_C( -14), INT8_C( 126), INT8_C( 81), INT8_C( 45), INT8_C( -23), INT8_C( 120), INT8_C( -83), INT8_C( -16), INT8_C( 7), INT8_C( 51), INT8_C( -57), INT8_C( -50), INT8_C( -21), INT8_C( 98), INT8_C( 88), INT8_C( 0), INT8_C( -66), INT8_C( 3), INT8_C( 124), INT8_C(-113), INT8_C( 50), INT8_C( 88), INT8_C( -85), INT8_C( -93), INT8_C( -44), INT8_C( -13), INT8_C( -94), INT8_C( 17)), simde_mm512_set_epi8(INT8_C( -13), INT8_C( -12), INT8_C(-124), INT8_C( 96), INT8_C( -13), INT8_C( -98), INT8_C( 99), INT8_C( -13), INT8_C( 56), INT8_C( -45), INT8_C(-108), INT8_C( -19), INT8_C(-124), INT8_C( -27), INT8_C( 22), INT8_C( 126), INT8_C(-106), INT8_C( -68), INT8_C( -60), INT8_C( 8), INT8_C( 60), INT8_C( 93), INT8_C( -33), INT8_C( -27), INT8_C( -7), INT8_C( 27), INT8_C(-122), INT8_C( -38), INT8_C( 23), INT8_C( 6), INT8_C( 45), INT8_C( -21), INT8_C( -23), INT8_C(-101), INT8_C( 116), INT8_C( 127), INT8_C( 96), INT8_C( 40), INT8_C( -97), INT8_C( 40), INT8_C( 86), INT8_C( -44), INT8_C( 70), INT8_C( -71), INT8_C( 62), INT8_C( -21), INT8_C( 66), INT8_C( 68), INT8_C( -87), INT8_C( -61), INT8_C( 48), INT8_C( -70), INT8_C( 18), INT8_C( -78), INT8_C( -98), INT8_C( 117), INT8_C( 74), INT8_C( 32), INT8_C( 93), INT8_C( 125), INT8_C( -47), INT8_C( -60), INT8_C( -86), INT8_C( 117)), simde_mm512_set_epi8(INT8_C( 109), INT8_C( -66), INT8_C( -74), INT8_C( 127), INT8_C( -44), INT8_C(-128), INT8_C( 35), INT8_C( 0), INT8_C( 0), INT8_C( 15), INT8_C( 0), INT8_C( 0), INT8_C( -16), INT8_C(-128), INT8_C( -70), INT8_C( 46), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 68), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -27), INT8_C( 0), INT8_C( 93), INT8_C( 0), INT8_C( -16), INT8_C( 4), INT8_C(-120), INT8_C( 0), INT8_C( 58), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( -16), INT8_C( 85), INT8_C( 63), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 9), INT8_C( 18), INT8_C(-108), INT8_C( 37), INT8_C( 127), INT8_C( 0), INT8_C( -48), INT8_C( 0), INT8_C( 0), INT8_C( 4), INT8_C( 124), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -91), INT8_C( 0), INT8_C( 0), INT8_C( 0)) }, { UINT64_C( 7677112093376593822), simde_mm512_set_epi8(INT8_C( -53), INT8_C( 34), INT8_C( 9), INT8_C( 64), INT8_C( -61), INT8_C( -25), INT8_C(-115), INT8_C( 100), INT8_C( 65), INT8_C( 8), INT8_C( 69), INT8_C( -8), INT8_C( -15), INT8_C( -51), INT8_C( 1), INT8_C( 90), INT8_C( 115), INT8_C( 51), INT8_C( -91), INT8_C( 56), INT8_C( 64), INT8_C( -39), INT8_C(-119), INT8_C( -28), INT8_C( -54), INT8_C( 28), INT8_C( 54), INT8_C( -8), INT8_C( -54), INT8_C(-128), INT8_C( -28), INT8_C( -71), INT8_C( 107), INT8_C( -66), INT8_C(-114), INT8_C( -88), INT8_C( 34), INT8_C( -83), INT8_C( -21), INT8_C( -64), INT8_C( 121), INT8_C( -20), INT8_C( -89), INT8_C( -94), INT8_C( 112), INT8_C( -27), INT8_C( 81), INT8_C( -54), INT8_C( -64), INT8_C(-114), INT8_C( 48), INT8_C( -89), INT8_C( -61), INT8_C( 26), INT8_C( 43), INT8_C( 29), INT8_C( 0), INT8_C( 64), INT8_C( 123), INT8_C( -67), INT8_C( 15), INT8_C( 120), INT8_C( 36), INT8_C( 40)), simde_mm512_set_epi8(INT8_C( 113), INT8_C( 32), INT8_C( 71), INT8_C( 55), INT8_C( -26), INT8_C( 82), INT8_C( -81), INT8_C( -20), INT8_C( -55), INT8_C( 112), INT8_C( 45), INT8_C( 37), INT8_C( 67), INT8_C( -69), INT8_C( 64), INT8_C( 39), INT8_C( 72), INT8_C( 45), INT8_C( 120), INT8_C( -5), INT8_C(-109), INT8_C( 62), INT8_C( 17), INT8_C( 31), INT8_C( -30), INT8_C( -58), INT8_C( 56), INT8_C( 21), INT8_C( 72), INT8_C( -74), INT8_C( -40), INT8_C( 120), INT8_C( 95), INT8_C( 108), INT8_C( 32), INT8_C( 64), INT8_C(-128), INT8_C( 102), INT8_C( -21), INT8_C( 28), INT8_C( 105), INT8_C( 52), INT8_C( 85), INT8_C(-104), INT8_C( 57), INT8_C( -31), INT8_C( -38), INT8_C(-124), INT8_C(-107), INT8_C( -2), INT8_C( 55), INT8_C( 46), INT8_C( -71), INT8_C( 77), INT8_C( 18), INT8_C( 70), INT8_C( 89), INT8_C( 125), INT8_C( -42), INT8_C(-125), INT8_C( 121), INT8_C( -11), INT8_C( -69), INT8_C( -59)), simde_mm512_set_epi8(INT8_C( 0), INT8_C( 66), INT8_C( 80), INT8_C( 0), INT8_C( -87), INT8_C( 0), INT8_C(-128), INT8_C( 0), INT8_C( 10), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 52), INT8_C( 0), INT8_C( 65), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 51), INT8_C( 0), INT8_C( 23), INT8_C( 0), INT8_C( 0), INT8_C( -84), INT8_C( -30), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( -68), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -24), INT8_C( -94), INT8_C( 0), INT8_C( -42), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( 103), INT8_C( -43), INT8_C(-128), INT8_C( 103), INT8_C( 61), INT8_C( 99), INT8_C( 89), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( 127), INT8_C( 109), INT8_C( -33), INT8_C( 0)) }, { UINT64_C( 4840581956081845689), simde_mm512_set_epi8(INT8_C( 122), INT8_C(-108), INT8_C( -70), INT8_C( -63), INT8_C( 56), INT8_C( 71), INT8_C( -14), INT8_C( 49), INT8_C( -73), INT8_C( 53), INT8_C( -29), INT8_C( 3), INT8_C( -73), INT8_C( 43), INT8_C( -22), INT8_C( 85), INT8_C( -26), INT8_C( -9), INT8_C( 66), INT8_C( 1), INT8_C( -13), INT8_C( 60), INT8_C(-119), INT8_C( -83), INT8_C(-122), INT8_C( -64), INT8_C( -83), INT8_C( -74), INT8_C( 119), INT8_C( -8), INT8_C( 12), INT8_C( 113), INT8_C( -12), INT8_C( -84), INT8_C( 6), INT8_C( 69), INT8_C( 2), INT8_C( -75), INT8_C( -34), INT8_C(-126), INT8_C( 3), INT8_C(-128), INT8_C( -9), INT8_C( 24), INT8_C( 11), INT8_C( -94), INT8_C( -32), INT8_C( 110), INT8_C( 33), INT8_C( -24), INT8_C( 125), INT8_C( 35), INT8_C(-103), INT8_C( -48), INT8_C( -22), INT8_C( 38), INT8_C( -81), INT8_C( 9), INT8_C( -11), INT8_C(-124), INT8_C( 71), INT8_C( 31), INT8_C( -42), INT8_C( 93)), simde_mm512_set_epi8(INT8_C( 53), INT8_C( 77), INT8_C( 63), INT8_C( -84), INT8_C( 27), INT8_C( 22), INT8_C( 3), INT8_C( -37), INT8_C( 65), INT8_C( 118), INT8_C(-126), INT8_C( 97), INT8_C( 109), INT8_C( 7), INT8_C(-114), INT8_C( -75), INT8_C(-125), INT8_C( 121), INT8_C(-128), INT8_C( 103), INT8_C( 0), INT8_C( 101), INT8_C( -41), INT8_C( 89), INT8_C( -83), INT8_C( -65), INT8_C( 9), INT8_C( -7), INT8_C( -63), INT8_C( 13), INT8_C( 105), INT8_C( 92), INT8_C( -18), INT8_C( -21), INT8_C(-102), INT8_C(-114), INT8_C( 74), INT8_C( 121), INT8_C( -45), INT8_C( 52), INT8_C( -63), INT8_C( -93), INT8_C( 98), INT8_C( 106), INT8_C(-109), INT8_C( -47), INT8_C( 37), INT8_C( 70), INT8_C( 100), INT8_C( 121), INT8_C( 18), INT8_C( 28), INT8_C(-117), INT8_C( 107), INT8_C( 3), INT8_C( -62), INT8_C( 42), INT8_C( 72), INT8_C( 91), INT8_C( 86), INT8_C( -72), INT8_C( 9), INT8_C( -80), INT8_C( 118)), simde_mm512_set_epi8(INT8_C( 0), INT8_C( -31), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -11), INT8_C( 12), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( 0), INT8_C( 36), INT8_C( 50), INT8_C( 0), INT8_C( 10), INT8_C( 0), INT8_C( 0), INT8_C( -62), INT8_C( 104), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( 6), INT8_C(-128), INT8_C( 0), INT8_C( -74), INT8_C( 0), INT8_C( 0), INT8_C( 5), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C(-105), INT8_C( -96), INT8_C( -45), INT8_C( 76), INT8_C( 46), INT8_C( -79), INT8_C( 0), INT8_C( 0), INT8_C(-128), INT8_C( 89), INT8_C( 0), INT8_C( -98), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 59), INT8_C( 0), INT8_C( -24), INT8_C( -39), INT8_C( 0), INT8_C( 80), INT8_C( -38), INT8_C( -1), INT8_C( 0), INT8_C( 0), INT8_C( 127)) }, { UINT64_C(17498311407133456191), simde_mm512_set_epi8(INT8_C( 61), INT8_C( -89), INT8_C( 84), INT8_C( -94), INT8_C( 31), INT8_C(-116), INT8_C( -67), INT8_C(-102), INT8_C( -72), INT8_C( -91), INT8_C(-105), INT8_C(-108), INT8_C( -44), INT8_C( 74), INT8_C( -28), INT8_C( 124), INT8_C( 120), INT8_C( -41), INT8_C( -79), INT8_C( 122), INT8_C( 87), INT8_C(-119), INT8_C( 54), INT8_C( -2), INT8_C( -47), INT8_C( 84), INT8_C(-126), INT8_C( -64), INT8_C( 14), INT8_C( 11), INT8_C( 37), INT8_C( -23), INT8_C( 67), INT8_C( 124), INT8_C( 58), INT8_C( -94), INT8_C( 30), INT8_C( -33), INT8_C( 70), INT8_C( -24), INT8_C( 38), INT8_C( -97), INT8_C( -56), INT8_C( -60), INT8_C( -59), INT8_C( 65), INT8_C( -74), INT8_C( 45), INT8_C( -11), INT8_C( 55), INT8_C( -82), INT8_C( 12), INT8_C( 106), INT8_C( 22), INT8_C(-124), INT8_C( -4), INT8_C( 2), INT8_C( -81), INT8_C( 14), INT8_C( 90), INT8_C(-100), INT8_C(-122), INT8_C( -35), INT8_C( 81)), simde_mm512_set_epi8(INT8_C( 21), INT8_C( 108), INT8_C( 125), INT8_C( -60), INT8_C( -72), INT8_C( 74), INT8_C( -5), INT8_C( -58), INT8_C( -41), INT8_C( 22), INT8_C(-115), INT8_C( 102), INT8_C( 59), INT8_C( -80), INT8_C( -15), INT8_C( -63), INT8_C( 84), INT8_C( -71), INT8_C( 8), INT8_C( 12), INT8_C( -11), INT8_C( -76), INT8_C( 62), INT8_C( 93), INT8_C( -75), INT8_C( -77), INT8_C( -84), INT8_C(-108), INT8_C( -35), INT8_C( 14), INT8_C( -60), INT8_C( 18), INT8_C( 23), INT8_C( -60), INT8_C( -63), INT8_C(-114), INT8_C( -55), INT8_C( 75), INT8_C( -99), INT8_C( -55), INT8_C( 58), INT8_C( 76), INT8_C(-102), INT8_C(-118), INT8_C( -30), INT8_C( 39), INT8_C( 119), INT8_C( 85), INT8_C( -8), INT8_C( -72), INT8_C( -60), INT8_C( -94), INT8_C(-112), INT8_C( 119), INT8_C( 124), INT8_C( 76), INT8_C( -42), INT8_C(-124), INT8_C( 54), INT8_C( 74), INT8_C( -92), INT8_C( 99), INT8_C( 79), INT8_C( -3)), simde_mm512_set_epi8(INT8_C( 82), INT8_C( 19), INT8_C( 127), INT8_C(-128), INT8_C( 0), INT8_C( 0), INT8_C( -72), INT8_C( 0), INT8_C(-113), INT8_C( -69), INT8_C( 0), INT8_C( -6), INT8_C( 0), INT8_C( -6), INT8_C( -43), INT8_C( 0), INT8_C( 0), INT8_C(-112), INT8_C( -71), INT8_C( 127), INT8_C( 76), INT8_C(-128), INT8_C( 0), INT8_C( 91), INT8_C(-122), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -23), INT8_C( -5), INT8_C( 90), INT8_C( 64), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 42), INT8_C( -29), INT8_C( -79), INT8_C( 0), INT8_C( -21), INT8_C( 0), INT8_C(-128), INT8_C( -89), INT8_C( 0), INT8_C( 45), INT8_C( 0), INT8_C( -19), INT8_C( -17), INT8_C(-128), INT8_C( -82), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 72), INT8_C( 0), INT8_C( 0), INT8_C( 68), INT8_C( 127), INT8_C(-128), INT8_C( -23), INT8_C( 44), INT8_C( 78)) }, { UINT64_C( 3462613925466476941), simde_mm512_set_epi8(INT8_C( 18), INT8_C( -74), INT8_C( 14), INT8_C( 36), INT8_C( -7), INT8_C( 113), INT8_C( 40), INT8_C( 48), INT8_C(-107), INT8_C( -34), INT8_C( -75), INT8_C( 85), INT8_C( -35), INT8_C(-116), INT8_C( 65), INT8_C( -21), INT8_C( 15), INT8_C( 3), INT8_C( 45), INT8_C( 21), INT8_C( 72), INT8_C( 93), INT8_C( 108), INT8_C( 125), INT8_C( 1), INT8_C( 75), INT8_C( 21), INT8_C( -36), INT8_C(-126), INT8_C( 122), INT8_C( 71), INT8_C( 76), INT8_C( 28), INT8_C( -56), INT8_C( 32), INT8_C( 101), INT8_C(-107), INT8_C(-111), INT8_C( -88), INT8_C( -19), INT8_C( -77), INT8_C( 19), INT8_C( -21), INT8_C(-111), INT8_C( -68), INT8_C( 82), INT8_C(-118), INT8_C( -76), INT8_C( 47), INT8_C( 127), INT8_C( 62), INT8_C( -16), INT8_C( 10), INT8_C( -14), INT8_C(-100), INT8_C( 86), INT8_C( 29), INT8_C( 107), INT8_C( 56), INT8_C( 21), INT8_C( 24), INT8_C( 68), INT8_C( -96), INT8_C( 64)), simde_mm512_set_epi8(INT8_C( -57), INT8_C( 94), INT8_C(-125), INT8_C(-124), INT8_C( 36), INT8_C( 57), INT8_C( 68), INT8_C( -52), INT8_C( 39), INT8_C( 50), INT8_C( -48), INT8_C( 94), INT8_C( 53), INT8_C( 11), INT8_C( 29), INT8_C( 65), INT8_C( -82), INT8_C(-119), INT8_C( 115), INT8_C( 68), INT8_C( -69), INT8_C( 118), INT8_C( 17), INT8_C( 8), INT8_C( -64), INT8_C( -53), INT8_C( -42), INT8_C( 126), INT8_C( 67), INT8_C( 50), INT8_C( -18), INT8_C( 76), INT8_C( -19), INT8_C( 123), INT8_C( -87), INT8_C( 106), INT8_C( -74), INT8_C( 44), INT8_C( 117), INT8_C( 103), INT8_C( 81), INT8_C( 122), INT8_C( 56), INT8_C( -10), INT8_C( 67), INT8_C( 79), INT8_C( 83), INT8_C( -38), INT8_C( -13), INT8_C( 43), INT8_C( 27), INT8_C( -97), INT8_C( 102), INT8_C( 126), INT8_C( 38), INT8_C( -62), INT8_C( -24), INT8_C( 117), INT8_C( -38), INT8_C( -93), INT8_C( -58), INT8_C(-124), INT8_C( -75), INT8_C( 10)), simde_mm512_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C(-111), INT8_C( -88), 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( 18), INT8_C(-105), INT8_C( 0), INT8_C( 44), INT8_C( -67), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 3), INT8_C( 127), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 127), INT8_C( 0), INT8_C( 0), INT8_C( 9), INT8_C( 67), INT8_C( -55), INT8_C( 127), INT8_C(-128), INT8_C( -67), INT8_C( 0), INT8_C( 84), INT8_C( 4), INT8_C( 127), 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(-113), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 24), INT8_C( 5), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -34), INT8_C( -56), INT8_C( 0), INT8_C( 74)) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_adds_epi8(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i8(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_adds_epi16(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi16(INT16_C( 5952), INT16_C(-21138), INT16_C( 23605), INT16_C( -3799), INT16_C( 1987), INT16_C( 29254), INT16_C( -4184), INT16_C( 13346), INT16_C( 26203), INT16_C(-24373), INT16_C( 15487), INT16_C( 15569), INT16_C( 13821), INT16_C( -3315), INT16_C( 30667), INT16_C( 9811), INT16_C( 22769), INT16_C( 21964), INT16_C( -315), INT16_C(-15723), INT16_C( -9658), INT16_C(-27088), INT16_C( 18289), INT16_C( 13213), INT16_C(-12712), INT16_C( 23293), INT16_C( 12497), INT16_C( 16576), INT16_C(-19358), INT16_C(-11263), INT16_C( -3745), INT16_C( 7925)), simde_mm512_set_epi16(INT16_C(-22600), INT16_C( 9825), INT16_C( 27347), INT16_C( -4649), INT16_C( 4812), INT16_C( 27489), INT16_C( 14729), INT16_C(-20872), INT16_C(-24487), INT16_C( 23053), INT16_C( 28966), INT16_C(-23890), INT16_C( -9737), INT16_C(-24021), INT16_C( 12009), INT16_C(-16892), INT16_C(-11018), INT16_C( -7664), INT16_C( 22598), INT16_C( 9112), INT16_C( -468), INT16_C(-16246), INT16_C( 11633), INT16_C( 3402), INT16_C( 12940), INT16_C(-18453), INT16_C(-10463), INT16_C(-24372), INT16_C( 9722), INT16_C( 4912), INT16_C( 14086), INT16_C( -2976)), simde_mm512_set_epi16(INT16_C(-16648), INT16_C(-11313), INT16_C( 32767), INT16_C( -8448), INT16_C( 6799), INT16_C( 32767), INT16_C( 10545), INT16_C( -7526), INT16_C( 1716), INT16_C( -1320), INT16_C( 32767), INT16_C( -8321), INT16_C( 4084), INT16_C(-27336), INT16_C( 32767), INT16_C( -7081), INT16_C( 11751), INT16_C( 14300), INT16_C( 22283), INT16_C( -6611), INT16_C(-10126), INT16_C(-32768), INT16_C( 29922), INT16_C( 16615), INT16_C( 228), INT16_C( 4840), INT16_C( 2034), INT16_C( -7796), INT16_C( -9636), INT16_C( -6351), INT16_C( 10341), INT16_C( 4949)) }, { simde_mm512_set_epi16(INT16_C(-21870), INT16_C( -1966), INT16_C(-26101), INT16_C( 8905), INT16_C(-13069), INT16_C( 13555), INT16_C(-23554), INT16_C(-12947), INT16_C( 31779), INT16_C( 21013), INT16_C( 32688), INT16_C( 12512), INT16_C(-26721), INT16_C( 7598), INT16_C( 21566), INT16_C(-11203), INT16_C( 27021), INT16_C( -8539), INT16_C( -532), INT16_C(-17200), INT16_C(-18609), INT16_C(-30604), INT16_C( 6829), INT16_C(-13538), INT16_C( 21529), INT16_C( 29340), INT16_C( 23176), INT16_C( 10860), INT16_C( 31408), INT16_C( 3656), INT16_C(-30572), INT16_C( -4393)), simde_mm512_set_epi16(INT16_C( 29137), INT16_C( 29112), INT16_C(-21893), INT16_C( 14830), INT16_C( 28350), INT16_C( 21222), INT16_C( 26922), INT16_C( 26197), INT16_C(-25881), INT16_C( 28163), INT16_C(-19268), INT16_C( 10158), INT16_C(-29245), INT16_C( 16103), INT16_C(-23323), INT16_C( 12478), INT16_C( -6515), INT16_C( 24007), INT16_C(-28366), INT16_C(-32677), INT16_C(-27350), INT16_C(-26916), INT16_C(-11979), INT16_C( 13820), INT16_C(-22393), INT16_C(-20903), INT16_C( -9892), INT16_C(-22447), INT16_C(-14286), INT16_C( 3532), INT16_C( 19664), INT16_C(-26842)), simde_mm512_set_epi16(INT16_C( 7267), INT16_C( 27146), INT16_C(-32768), INT16_C( 23735), INT16_C( 15281), INT16_C( 32767), INT16_C( 3368), INT16_C( 13250), INT16_C( 5898), INT16_C( 32767), INT16_C( 13420), INT16_C( 22670), INT16_C(-32768), INT16_C( 23701), INT16_C( -1757), INT16_C( 1275), INT16_C( 20506), INT16_C( 15468), INT16_C(-28898), INT16_C(-32768), INT16_C(-32768), INT16_C(-32768), INT16_C( -5150), INT16_C( 282), INT16_C( -864), INT16_C( 8437), INT16_C( 13284), INT16_C(-11587), INT16_C( 17122), INT16_C( 7188), INT16_C(-10908), INT16_C(-31235)) }, { simde_mm512_set_epi16(INT16_C(-22689), INT16_C( 25207), INT16_C( -9300), INT16_C( 28977), INT16_C( 2270), INT16_C(-32394), INT16_C( 26182), INT16_C( 23367), INT16_C( 31661), INT16_C( 9636), INT16_C(-18580), INT16_C(-28875), INT16_C(-25943), INT16_C( 14067), INT16_C( 10599), INT16_C( 30831), INT16_C(-23557), INT16_C( 11377), INT16_C( -4608), INT16_C( 14955), INT16_C( 11781), INT16_C(-12602), INT16_C( -3223), INT16_C( 11440), INT16_C( -2896), INT16_C(-24304), INT16_C( 29156), INT16_C( -4347), INT16_C( -2421), INT16_C( 31033), INT16_C( -3132), INT16_C(-19324)), simde_mm512_set_epi16(INT16_C( -2724), INT16_C( 4704), INT16_C( 23772), INT16_C(-20368), INT16_C(-30374), INT16_C( 15838), INT16_C( 19402), INT16_C( 16976), INT16_C(-28476), INT16_C( -2715), INT16_C(-27679), INT16_C( -8608), INT16_C(-20120), INT16_C( 29206), INT16_C( -1643), INT16_C(-29856), INT16_C( 18656), INT16_C( -9660), INT16_C( -4660), INT16_C(-30272), INT16_C( 610), INT16_C( -3787), INT16_C( 22038), INT16_C(-29446), INT16_C(-26504), INT16_C(-28984), INT16_C(-21830), INT16_C(-27507), INT16_C( 24148), INT16_C(-12945), INT16_C( 24529), INT16_C( 7913)), simde_mm512_set_epi16(INT16_C(-25413), INT16_C( 29911), INT16_C( 14472), INT16_C( 8609), INT16_C(-28104), INT16_C(-16556), INT16_C( 32767), INT16_C( 32767), INT16_C( 3185), INT16_C( 6921), INT16_C(-32768), INT16_C(-32768), INT16_C(-32768), INT16_C( 32767), INT16_C( 8956), INT16_C( 975), INT16_C( -4901), INT16_C( 1717), INT16_C( -9268), INT16_C(-15317), INT16_C( 12391), INT16_C(-16389), INT16_C( 18815), INT16_C(-18006), INT16_C(-29400), INT16_C(-32768), INT16_C( 7326), INT16_C(-31854), INT16_C( 21727), INT16_C( 18088), INT16_C( 21397), INT16_C(-11411)) }, { simde_mm512_set_epi16(INT16_C(-18069), INT16_C( 21685), INT16_C( -5808), INT16_C( 24672), INT16_C( -8190), INT16_C( -2830), INT16_C(-23214), INT16_C( 1083), INT16_C( 6699), INT16_C( 871), INT16_C(-14072), INT16_C( -2337), INT16_C( 13356), INT16_C( 7260), INT16_C(-23788), INT16_C(-19723), INT16_C( 13480), INT16_C(-15429), INT16_C(-20153), INT16_C( 18680), INT16_C(-26180), INT16_C( 27923), INT16_C(-14099), INT16_C( 25829), INT16_C(-27481), INT16_C( 21639), INT16_C( 16654), INT16_C( 19972), INT16_C( 15776), INT16_C( 23126), INT16_C( 30799), INT16_C(-14043)), simde_mm512_set_epi16(INT16_C( 16111), INT16_C(-26103), INT16_C( -8800), INT16_C(-24747), INT16_C( 27941), INT16_C( 603), INT16_C( -8112), INT16_C(-28325), INT16_C( -6110), INT16_C(-15530), INT16_C( -938), INT16_C(-26515), INT16_C( -2492), INT16_C( 16124), INT16_C(-27181), INT16_C( -3573), INT16_C( 11652), INT16_C( 11646), INT16_C( 6964), INT16_C( 27675), INT16_C( 13103), INT16_C( -2742), INT16_C( 27906), INT16_C( -1077), INT16_C(-30636), INT16_C(-23050), INT16_C( 8363), INT16_C( 31350), INT16_C( -4750), INT16_C( -220), INT16_C( -8954), INT16_C( 15617)), simde_mm512_set_epi16(INT16_C( -1958), INT16_C( -4418), INT16_C(-14608), INT16_C( -75), INT16_C( 19751), INT16_C( -2227), INT16_C(-31326), INT16_C(-27242), INT16_C( 589), INT16_C(-14659), INT16_C(-15010), INT16_C(-28852), INT16_C( 10864), INT16_C( 23384), INT16_C(-32768), INT16_C(-23296), INT16_C( 25132), INT16_C( -3783), INT16_C(-13189), INT16_C( 32767), INT16_C(-13077), INT16_C( 25181), INT16_C( 13807), INT16_C( 24752), INT16_C(-32768), INT16_C( -1411), INT16_C( 25017), INT16_C( 32767), INT16_C( 11026), INT16_C( 22906), INT16_C( 21845), INT16_C( 1574)) }, { simde_mm512_set_epi16(INT16_C( 25180), INT16_C(-32332), INT16_C(-18604), INT16_C(-25763), INT16_C( 28237), INT16_C(-22027), INT16_C( 18301), INT16_C( 27599), INT16_C( 11815), INT16_C(-14839), INT16_C(-13552), INT16_C( -6300), INT16_C(-30211), INT16_C(-25552), INT16_C( 7375), INT16_C( 5267), INT16_C(-14761), INT16_C(-28375), INT16_C(-32756), INT16_C( 13128), INT16_C( 17683), INT16_C( -4430), INT16_C( -1805), INT16_C(-17763), INT16_C( 206), INT16_C( 15851), INT16_C( 1078), INT16_C( 27402), INT16_C(-15177), INT16_C( 5068), INT16_C(-15079), INT16_C(-13584)), simde_mm512_set_epi16(INT16_C( -3533), INT16_C( -3885), INT16_C( 789), INT16_C( -3755), INT16_C( 3668), INT16_C( 19955), INT16_C(-22356), INT16_C( 8403), INT16_C(-16920), INT16_C( 15195), INT16_C( -1853), INT16_C(-12121), INT16_C( 5095), INT16_C( -9909), INT16_C( 574), INT16_C( 31911), INT16_C( -1319), INT16_C( -2880), INT16_C(-31000), INT16_C(-30829), INT16_C(-12917), INT16_C( 21541), INT16_C( 27413), INT16_C(-28040), INT16_C(-19236), INT16_C(-24178), INT16_C(-29369), INT16_C( -3607), INT16_C( -2666), INT16_C(-13470), INT16_C( 4416), INT16_C( 23850)), simde_mm512_set_epi16(INT16_C( 21647), INT16_C(-32768), INT16_C(-17815), INT16_C(-29518), INT16_C( 31905), INT16_C( -2072), INT16_C( -4055), INT16_C( 32767), INT16_C( -5105), INT16_C( 356), INT16_C(-15405), INT16_C(-18421), INT16_C(-25116), INT16_C(-32768), INT16_C( 7949), INT16_C( 32767), INT16_C(-16080), INT16_C(-31255), INT16_C(-32768), INT16_C(-17701), INT16_C( 4766), INT16_C( 17111), INT16_C( 25608), INT16_C(-32768), INT16_C(-19030), INT16_C( -8327), INT16_C(-28291), INT16_C( 23795), INT16_C(-17843), INT16_C( -8402), INT16_C(-10663), INT16_C( 10266)) }, { simde_mm512_set_epi16(INT16_C( 11424), INT16_C( 29699), INT16_C( 29618), INT16_C(-29898), INT16_C(-23079), INT16_C( -6822), INT16_C( -7340), INT16_C(-12296), INT16_C( 17833), INT16_C( -2043), INT16_C(-29766), INT16_C( 30776), INT16_C(-18161), INT16_C(-32768), INT16_C(-31882), INT16_C( 3163), INT16_C( 20808), INT16_C(-24577), INT16_C( 7685), INT16_C( 6279), INT16_C(-27880), INT16_C( 27718), INT16_C(-18275), INT16_C( 24470), INT16_C( 8834), INT16_C( 20594), INT16_C( 23052), INT16_C(-18860), INT16_C( 7784), INT16_C(-16668), INT16_C(-30440), INT16_C( 6387)), simde_mm512_set_epi16(INT16_C( 15054), INT16_C(-23448), INT16_C( 866), INT16_C(-23509), INT16_C( -2), INT16_C( 6267), INT16_C(-15891), INT16_C(-24685), INT16_C( 17511), INT16_C( 7218), INT16_C(-13659), INT16_C(-27162), INT16_C( 10378), INT16_C(-16488), INT16_C(-11578), INT16_C(-27832), INT16_C(-17566), INT16_C(-29377), INT16_C( -2221), INT16_C( 18656), INT16_C( 7516), INT16_C(-30776), INT16_C(-19010), INT16_C( 26269), INT16_C(-18451), INT16_C( 31467), INT16_C(-22066), INT16_C( 30155), INT16_C( -3394), INT16_C( -6131), INT16_C( 13533), INT16_C( 21770)), simde_mm512_set_epi16(INT16_C( 26478), INT16_C( 6251), INT16_C( 30484), INT16_C(-32768), INT16_C(-23081), INT16_C( -555), INT16_C(-23231), INT16_C(-32768), INT16_C( 32767), INT16_C( 5175), INT16_C(-32768), INT16_C( 3614), INT16_C( -7783), INT16_C(-32768), INT16_C(-32768), INT16_C(-24669), INT16_C( 3242), INT16_C(-32768), INT16_C( 5464), INT16_C( 24935), INT16_C(-20364), INT16_C( -3058), INT16_C(-32768), INT16_C( 32767), INT16_C( -9617), INT16_C( 32767), INT16_C( 986), INT16_C( 11295), INT16_C( 4390), INT16_C(-22799), INT16_C(-16907), INT16_C( 28157)) }, { simde_mm512_set_epi16(INT16_C( 11108), INT16_C( 5360), INT16_C( 8246), INT16_C( 2034), INT16_C( 1485), INT16_C( 28421), INT16_C( 17428), INT16_C(-13900), INT16_C( 4889), INT16_C( 17148), INT16_C( 13806), INT16_C(-26968), INT16_C( -7783), INT16_C( 11345), INT16_C( 17472), INT16_C( 26483), INT16_C(-10340), INT16_C( -7816), INT16_C( 22407), INT16_C( 32028), INT16_C( 18301), INT16_C(-30148), INT16_C( -4736), INT16_C(-10574), INT16_C( 10686), INT16_C( -5463), INT16_C( 19858), INT16_C( -4320), INT16_C(-28154), INT16_C( 8984), INT16_C( 32741), INT16_C( 29052)), simde_mm512_set_epi16(INT16_C(-22772), INT16_C(-14596), INT16_C( -9458), INT16_C( 2054), INT16_C(-24090), INT16_C( 1808), INT16_C( 9897), INT16_C( 20003), INT16_C( 21444), INT16_C( 8548), INT16_C( -1773), INT16_C( 8905), INT16_C( 14811), INT16_C( 5752), INT16_C(-17876), INT16_C( -7032), INT16_C(-19669), INT16_C(-30631), INT16_C(-19220), INT16_C( 18906), INT16_C( 15935), INT16_C( 2767), INT16_C(-30937), INT16_C( 13780), INT16_C( 28270), INT16_C( 29263), INT16_C( 11106), INT16_C( 19546), INT16_C( 16947), INT16_C(-29470), INT16_C( -1882), INT16_C(-19990)), simde_mm512_set_epi16(INT16_C(-11664), INT16_C( -9236), INT16_C( -1212), INT16_C( 4088), INT16_C(-22605), INT16_C( 30229), INT16_C( 27325), INT16_C( 6103), INT16_C( 26333), INT16_C( 25696), INT16_C( 12033), INT16_C(-18063), INT16_C( 7028), INT16_C( 17097), INT16_C( -404), INT16_C( 19451), INT16_C(-30009), INT16_C(-32768), INT16_C( 3187), INT16_C( 32767), INT16_C( 32767), INT16_C(-27381), INT16_C(-32768), INT16_C( 3206), INT16_C( 32767), INT16_C( 23800), INT16_C( 30964), INT16_C( 15226), INT16_C(-11207), INT16_C(-20486), INT16_C( 30859), INT16_C( 9062)) }, { simde_mm512_set_epi16(INT16_C(-30561), INT16_C( -5745), INT16_C( 32288), INT16_C( 11324), INT16_C(-18220), INT16_C(-24874), INT16_C(-10154), INT16_C( 15837), INT16_C( 22748), INT16_C( 6197), INT16_C( 23429), INT16_C(-23495), INT16_C( -9809), INT16_C(-19367), INT16_C(-10631), INT16_C( -3845), INT16_C( -5637), INT16_C(-22436), INT16_C( 6126), INT16_C( 16975), INT16_C( 5830), INT16_C( 26963), INT16_C(-12238), INT16_C( 18631), INT16_C(-23641), INT16_C(-17151), INT16_C(-13103), INT16_C( 5981), INT16_C( 25710), INT16_C( 32081), INT16_C(-26911), INT16_C(-20494)), simde_mm512_set_epi16(INT16_C( 30869), INT16_C(-18069), INT16_C( 6380), INT16_C(-23760), INT16_C( -6614), INT16_C( 32014), INT16_C( -2152), INT16_C( 25253), INT16_C( -8172), INT16_C(-22416), INT16_C( 2949), INT16_C( 5712), INT16_C( 30074), INT16_C( 20521), INT16_C( 28471), INT16_C( -3867), INT16_C( -3892), INT16_C( 21304), INT16_C( 2611), INT16_C( 5827), INT16_C(-30009), INT16_C( 31479), INT16_C(-19390), INT16_C( 1047), INT16_C(-19967), INT16_C( 11404), INT16_C( 25909), INT16_C( 6741), INT16_C( 1933), INT16_C(-26599), INT16_C(-25469), INT16_C(-30351)), simde_mm512_set_epi16(INT16_C( 308), INT16_C(-23814), INT16_C( 32767), INT16_C(-12436), INT16_C(-24834), INT16_C( 7140), INT16_C(-12306), INT16_C( 32767), INT16_C( 14576), INT16_C(-16219), INT16_C( 26378), INT16_C(-17783), INT16_C( 20265), INT16_C( 1154), INT16_C( 17840), INT16_C( -7712), INT16_C( -9529), INT16_C( -1132), INT16_C( 8737), INT16_C( 22802), INT16_C(-24179), INT16_C( 32767), INT16_C(-31628), INT16_C( 19678), INT16_C(-32768), INT16_C( -5747), INT16_C( 12806), INT16_C( 12722), INT16_C( 27643), INT16_C( 5482), INT16_C(-32768), INT16_C(-32768)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_adds_epi16(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i16(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int16_t src[32]; const simde__mmask32 k; const int16_t a[32]; const int16_t b[32]; const int16_t r[32]; } test_vec[] = { { { INT16_C( 72), -INT16_C( 5287), -INT16_C( 4542), INT16_C( 2288), -INT16_C( 8745), INT16_C( 27056), -INT16_C( 11265), -INT16_C( 27298), -INT16_C( 32448), -INT16_C( 11055), -INT16_C( 28733), INT16_C( 7301), INT16_C( 28274), -INT16_C( 27095), -INT16_C( 1294), INT16_C( 15311), INT16_C( 10490), INT16_C( 15398), INT16_C( 5654), -INT16_C( 4795), -INT16_C( 2572), -INT16_C( 3241), -INT16_C( 19000), INT16_C( 2185), INT16_C( 23095), -INT16_C( 1315), INT16_C( 25321), INT16_C( 23574), INT16_C( 16336), -INT16_C( 15374), -INT16_C( 16071), INT16_C( 13566) }, UINT32_C( 7349481), { -INT16_C( 19142), INT16_C( 12013), INT16_C( 17579), INT16_C( 29474), -INT16_C( 21510), INT16_C( 12668), INT16_C( 22789), -INT16_C( 4565), INT16_C( 17083), -INT16_C( 29878), INT16_C( 15489), -INT16_C( 17586), INT16_C( 19709), -INT16_C( 6161), INT16_C( 24432), -INT16_C( 21529), -INT16_C( 11243), -INT16_C( 16167), -INT16_C( 1255), INT16_C( 4915), -INT16_C( 20570), -INT16_C( 21692), INT16_C( 28424), -INT16_C( 15462), -INT16_C( 6991), INT16_C( 13135), -INT16_C( 25311), INT16_C( 7918), -INT16_C( 8726), INT16_C( 23045), -INT16_C( 5060), INT16_C( 20741) }, { -INT16_C( 8255), -INT16_C( 9711), INT16_C( 17882), -INT16_C( 32275), INT16_C( 12788), -INT16_C( 724), -INT16_C( 14688), INT16_C( 21184), INT16_C( 4011), -INT16_C( 13179), INT16_C( 29613), -INT16_C( 26646), -INT16_C( 4016), -INT16_C( 29455), -INT16_C( 2084), -INT16_C( 25122), -INT16_C( 4138), -INT16_C( 20361), INT16_C( 25652), INT16_C( 10545), INT16_C( 24213), INT16_C( 13862), -INT16_C( 6620), -INT16_C( 12408), INT16_C( 3574), -INT16_C( 23653), -INT16_C( 31104), -INT16_C( 12230), INT16_C( 11126), INT16_C( 21084), INT16_C( 14882), -INT16_C( 1808) }, { -INT16_C( 27397), -INT16_C( 5287), -INT16_C( 4542), -INT16_C( 2801), -INT16_C( 8745), INT16_C( 11944), INT16_C( 8101), INT16_C( 16619), -INT16_C( 32448), -INT16_C( 11055), INT16_MAX, INT16_C( 7301), INT16_C( 28274), INT16_MIN, -INT16_C( 1294), INT16_C( 15311), INT16_C( 10490), INT16_C( 15398), INT16_C( 5654), -INT16_C( 4795), INT16_C( 3643), -INT16_C( 7830), INT16_C( 21804), INT16_C( 2185), INT16_C( 23095), -INT16_C( 1315), INT16_C( 25321), INT16_C( 23574), INT16_C( 16336), -INT16_C( 15374), -INT16_C( 16071), INT16_C( 13566) } }, { { INT16_C( 26410), INT16_C( 24233), -INT16_C( 9524), INT16_C( 24967), -INT16_C( 21192), INT16_C( 23959), INT16_C( 8084), -INT16_C( 30164), -INT16_C( 14292), -INT16_C( 21459), INT16_C( 26446), -INT16_C( 15236), -INT16_C( 9838), -INT16_C( 19178), INT16_C( 1555), INT16_C( 15789), INT16_C( 22126), INT16_C( 15004), INT16_C( 9009), INT16_C( 27035), INT16_C( 13265), INT16_C( 26054), -INT16_C( 3246), INT16_C( 32751), INT16_C( 7355), INT16_C( 2347), -INT16_C( 22397), INT16_C( 5581), -INT16_C( 7295), -INT16_C( 27446), INT16_C( 30954), INT16_C( 22738) }, UINT32_C(4287786702), { INT16_C( 11665), INT16_C( 25193), INT16_C( 12128), -INT16_C( 19513), -INT16_C( 18910), -INT16_C( 8910), INT16_C( 24018), INT16_C( 21990), -INT16_C( 19707), -INT16_C( 31125), INT16_C( 13719), -INT16_C( 32485), -INT16_C( 4691), INT16_C( 31961), INT16_C( 27483), -INT16_C( 4997), -INT16_C( 7016), -INT16_C( 1713), INT16_C( 5652), INT16_C( 13996), -INT16_C( 8499), -INT16_C( 24812), -INT16_C( 1477), INT16_C( 16885), INT16_C( 24750), INT16_C( 17863), -INT16_C( 7531), INT16_C( 17350), -INT16_C( 24625), INT16_C( 10943), INT16_C( 14858), -INT16_C( 24041) }, { INT16_C( 26143), INT16_C( 13211), INT16_C( 18300), INT16_C( 18793), INT16_C( 32037), INT16_C( 25065), -INT16_C( 8584), INT16_C( 9890), INT16_C( 26942), -INT16_C( 11413), INT16_C( 12620), INT16_C( 6934), -INT16_C( 10800), -INT16_C( 9658), INT16_C( 23824), INT16_C( 12156), INT16_C( 6339), INT16_C( 16226), -INT16_C( 13473), -INT16_C( 31351), INT16_C( 29257), -INT16_C( 15898), -INT16_C( 30640), -INT16_C( 28953), INT16_C( 21233), INT16_C( 15713), INT16_C( 30851), INT16_C( 21337), -INT16_C( 24755), INT16_C( 23853), -INT16_C( 22020), -INT16_C( 16500) }, { INT16_C( 26410), INT16_MAX, INT16_C( 30428), -INT16_C( 720), -INT16_C( 21192), INT16_C( 23959), INT16_C( 15434), INT16_C( 31880), -INT16_C( 14292), INT16_MIN, INT16_C( 26339), -INT16_C( 25551), -INT16_C( 9838), INT16_C( 22303), INT16_MAX, INT16_C( 15789), INT16_C( 22126), INT16_C( 14513), INT16_C( 9009), INT16_C( 27035), INT16_C( 20758), INT16_C( 26054), -INT16_C( 3246), -INT16_C( 12068), INT16_MAX, INT16_MAX, INT16_C( 23320), INT16_MAX, INT16_MIN, INT16_MAX, -INT16_C( 7162), INT16_MIN } }, { { -INT16_C( 4415), INT16_C( 8702), -INT16_C( 30790), INT16_C( 934), -INT16_C( 29447), INT16_C( 18884), -INT16_C( 21740), INT16_C( 1495), INT16_C( 14845), -INT16_C( 32701), -INT16_C( 25423), -INT16_C( 301), INT16_C( 59), INT16_C( 14172), -INT16_C( 5975), INT16_C( 27638), -INT16_C( 2857), -INT16_C( 28276), INT16_C( 12924), INT16_C( 30100), INT16_C( 22718), -INT16_C( 11585), -INT16_C( 27133), INT16_C( 215), INT16_C( 6863), -INT16_C( 32640), INT16_C( 21430), -INT16_C( 3713), -INT16_C( 9389), -INT16_C( 984), INT16_C( 7875), -INT16_C( 26009) }, UINT32_C(2402022163), { -INT16_C( 16603), -INT16_C( 7420), -INT16_C( 15593), INT16_C( 6837), -INT16_C( 29350), INT16_C( 10522), -INT16_C( 25945), INT16_C( 24234), INT16_C( 10733), INT16_C( 16463), INT16_C( 30724), -INT16_C( 14531), -INT16_C( 23402), -INT16_C( 22174), -INT16_C( 29288), -INT16_C( 17096), INT16_C( 15693), INT16_C( 25761), INT16_C( 22016), INT16_C( 23167), -INT16_C( 26141), -INT16_C( 29820), INT16_C( 11828), INT16_C( 8681), INT16_C( 14423), INT16_C( 23394), -INT16_C( 24656), INT16_C( 18210), -INT16_C( 31677), -INT16_C( 9232), INT16_C( 10514), INT16_C( 24473) }, { INT16_C( 14950), INT16_C( 26307), INT16_C( 17040), INT16_C( 29889), INT16_C( 17884), INT16_C( 4351), -INT16_C( 6029), -INT16_C( 13775), -INT16_C( 27872), -INT16_C( 11995), INT16_C( 18226), INT16_C( 30232), INT16_C( 2252), -INT16_C( 8623), -INT16_C( 5583), -INT16_C( 26819), INT16_C( 36), -INT16_C( 18946), -INT16_C( 16573), INT16_C( 7977), INT16_C( 10244), INT16_C( 30511), INT16_C( 24592), INT16_C( 12353), INT16_C( 26356), INT16_C( 9729), INT16_C( 6573), INT16_C( 31132), -INT16_C( 4574), INT16_C( 21335), -INT16_C( 27432), -INT16_C( 533) }, { -INT16_C( 1653), INT16_C( 18887), -INT16_C( 30790), INT16_C( 934), -INT16_C( 11466), INT16_C( 18884), -INT16_C( 21740), INT16_C( 1495), -INT16_C( 17139), INT16_C( 4468), -INT16_C( 25423), -INT16_C( 301), -INT16_C( 21150), -INT16_C( 30797), INT16_MIN, INT16_MIN, INT16_C( 15729), INT16_C( 6815), INT16_C( 12924), INT16_C( 31144), INT16_C( 22718), INT16_C( 691), -INT16_C( 27133), INT16_C( 215), INT16_MAX, INT16_MAX, -INT16_C( 18083), INT16_MAX, -INT16_C( 9389), -INT16_C( 984), INT16_C( 7875), INT16_C( 23940) } }, { { -INT16_C( 5739), -INT16_C( 10062), -INT16_C( 9304), -INT16_C( 21257), INT16_C( 9731), INT16_C( 4899), INT16_C( 25734), INT16_C( 31299), INT16_C( 17866), INT16_C( 30625), INT16_C( 15710), -INT16_C( 32527), INT16_C( 18475), INT16_C( 1236), -INT16_C( 16419), INT16_C( 29185), -INT16_C( 19544), INT16_C( 20554), INT16_C( 16782), -INT16_C( 28164), INT16_C( 8039), -INT16_C( 4700), -INT16_C( 6269), INT16_C( 19816), INT16_C( 2348), -INT16_C( 29756), -INT16_C( 19130), INT16_C( 29195), -INT16_C( 8194), -INT16_C( 9354), INT16_C( 30622), INT16_C( 17997) }, UINT32_C(3096876842), { -INT16_C( 27944), INT16_C( 16201), -INT16_C( 4687), INT16_C( 13356), -INT16_C( 27436), INT16_C( 385), INT16_C( 18077), -INT16_C( 7028), -INT16_C( 26629), -INT16_C( 1706), -INT16_C( 13193), INT16_C( 5588), INT16_C( 8515), INT16_C( 27996), -INT16_C( 3400), -INT16_C( 28635), INT16_C( 28293), INT16_C( 14031), -INT16_C( 933), INT16_C( 12139), -INT16_C( 4976), INT16_C( 11824), -INT16_C( 17358), INT16_C( 11794), INT16_C( 26708), -INT16_C( 13529), -INT16_C( 972), INT16_C( 30688), INT16_C( 15389), -INT16_C( 10524), INT16_C( 2351), -INT16_C( 19354) }, { INT16_C( 13943), -INT16_C( 11542), INT16_C( 21810), -INT16_C( 15871), INT16_C( 12866), INT16_C( 29936), INT16_C( 750), INT16_C( 17058), -INT16_C( 13718), -INT16_C( 25075), -INT16_C( 4410), -INT16_C( 7403), -INT16_C( 1750), INT16_C( 22969), INT16_C( 8194), INT16_C( 30989), -INT16_C( 1962), -INT16_C( 30645), INT16_C( 19789), -INT16_C( 28854), INT16_C( 15231), INT16_C( 27908), -INT16_C( 22979), -INT16_C( 22352), -INT16_C( 17040), INT16_C( 13894), INT16_C( 23723), -INT16_C( 10726), -INT16_C( 11435), INT16_C( 22575), INT16_C( 15859), INT16_C( 18897) }, { -INT16_C( 5739), INT16_C( 4659), -INT16_C( 9304), -INT16_C( 2515), INT16_C( 9731), INT16_C( 30321), INT16_C( 25734), INT16_C( 31299), INT16_MIN, -INT16_C( 26781), -INT16_C( 17603), -INT16_C( 32527), INT16_C( 6765), INT16_C( 1236), -INT16_C( 16419), INT16_C( 2354), -INT16_C( 19544), -INT16_C( 16614), INT16_C( 18856), -INT16_C( 28164), INT16_C( 10255), -INT16_C( 4700), -INT16_C( 6269), -INT16_C( 10558), INT16_C( 2348), -INT16_C( 29756), -INT16_C( 19130), INT16_C( 19962), INT16_C( 3954), INT16_C( 12051), INT16_C( 30622), -INT16_C( 457) } }, { { INT16_C( 7477), -INT16_C( 32047), INT16_C( 7274), -INT16_C( 5870), INT16_C( 5719), -INT16_C( 27562), INT16_C( 1724), INT16_C( 11580), -INT16_C( 31804), INT16_C( 28515), INT16_C( 32223), INT16_C( 13381), INT16_C( 30033), INT16_C( 17548), INT16_C( 24242), -INT16_C( 6258), INT16_C( 24443), -INT16_C( 6807), INT16_C( 31611), -INT16_C( 11570), INT16_C( 9361), INT16_C( 20071), -INT16_C( 23765), -INT16_C( 4229), -INT16_C( 8666), INT16_C( 1374), -INT16_C( 23460), -INT16_C( 21190), -INT16_C( 14823), -INT16_C( 13327), INT16_C( 32548), -INT16_C( 24654) }, UINT32_C(1518607327), { INT16_C( 21143), INT16_C( 10285), -INT16_C( 27529), -INT16_C( 23946), -INT16_C( 3785), INT16_C( 24209), -INT16_C( 4144), INT16_C( 11363), -INT16_C( 25197), -INT16_C( 21287), -INT16_C( 13724), -INT16_C( 30601), INT16_C( 10570), INT16_C( 10536), -INT16_C( 21435), -INT16_C( 9085), -INT16_C( 20225), INT16_C( 30212), INT16_C( 31556), INT16_C( 31768), -INT16_C( 22164), INT16_C( 15578), INT16_C( 15768), INT16_C( 11368), INT16_C( 16859), INT16_C( 16344), INT16_C( 20492), INT16_C( 22215), -INT16_C( 4231), -INT16_C( 16769), INT16_C( 668), -INT16_C( 25702) }, { -INT16_C( 24653), -INT16_C( 2287), INT16_C( 10522), -INT16_C( 31117), INT16_C( 19922), INT16_C( 27331), INT16_C( 11147), INT16_C( 26262), INT16_C( 28525), INT16_C( 31141), INT16_C( 27839), INT16_C( 14543), INT16_C( 20060), -INT16_C( 1801), -INT16_C( 28336), INT16_C( 915), -INT16_C( 23504), INT16_C( 19195), INT16_C( 28365), -INT16_C( 24623), -INT16_C( 27460), INT16_C( 18185), -INT16_C( 24385), INT16_C( 11437), INT16_C( 21007), -INT16_C( 12635), INT16_C( 29886), INT16_C( 6662), -INT16_C( 574), INT16_C( 4882), -INT16_C( 23153), -INT16_C( 16618) }, { -INT16_C( 3510), INT16_C( 7998), -INT16_C( 17007), INT16_MIN, INT16_C( 16137), -INT16_C( 27562), INT16_C( 7003), INT16_MAX, INT16_C( 3328), INT16_C( 9854), INT16_C( 32223), -INT16_C( 16058), INT16_C( 30630), INT16_C( 17548), INT16_C( 24242), -INT16_C( 6258), INT16_C( 24443), -INT16_C( 6807), INT16_MAX, -INT16_C( 11570), INT16_C( 9361), INT16_C( 20071), -INT16_C( 23765), INT16_C( 22805), -INT16_C( 8666), INT16_C( 3709), -INT16_C( 23460), INT16_C( 28877), -INT16_C( 4805), -INT16_C( 13327), -INT16_C( 22485), -INT16_C( 24654) } }, { { INT16_C( 4425), INT16_C( 5642), -INT16_C( 9344), INT16_C( 15541), -INT16_C( 16529), INT16_C( 11907), INT16_C( 12383), INT16_C( 28251), INT16_C( 130), INT16_C( 16444), INT16_C( 17013), INT16_C( 14171), INT16_C( 27968), -INT16_C( 12470), INT16_C( 24851), INT16_C( 23694), -INT16_C( 26510), -INT16_C( 3469), INT16_C( 10355), -INT16_C( 7634), -INT16_C( 19993), INT16_C( 17937), INT16_C( 27873), INT16_C( 25524), -INT16_C( 3988), -INT16_C( 7772), -INT16_C( 205), INT16_C( 29465), INT16_C( 25452), INT16_C( 32578), -INT16_C( 12092), INT16_C( 14300) }, UINT32_C(3693694825), { INT16_C( 22647), INT16_C( 24511), -INT16_C( 12279), -INT16_C( 5211), INT16_C( 23100), -INT16_C( 22450), -INT16_C( 3510), INT16_C( 32138), -INT16_C( 23567), INT16_C( 24304), INT16_C( 12806), -INT16_C( 13347), -INT16_C( 18173), INT16_C( 27650), INT16_C( 11016), -INT16_C( 32696), INT16_C( 1923), -INT16_C( 29217), -INT16_C( 31529), INT16_C( 4984), -INT16_C( 14626), INT16_C( 10684), INT16_C( 18105), -INT16_C( 21850), -INT16_C( 26647), -INT16_C( 4344), -INT16_C( 6455), -INT16_C( 13126), -INT16_C( 17249), -INT16_C( 22472), -INT16_C( 32280), INT16_C( 27432) }, { INT16_C( 1928), INT16_C( 24824), INT16_C( 28811), INT16_C( 27251), INT16_C( 12087), -INT16_C( 3949), INT16_C( 14709), INT16_C( 24218), -INT16_C( 23600), -INT16_C( 26034), INT16_C( 2185), INT16_C( 10342), -INT16_C( 24635), -INT16_C( 21040), -INT16_C( 2016), -INT16_C( 22504), INT16_C( 4607), -INT16_C( 29944), INT16_C( 31873), -INT16_C( 18187), -INT16_C( 30549), INT16_C( 8616), INT16_C( 17345), -INT16_C( 28033), -INT16_C( 12826), INT16_C( 28460), -INT16_C( 27946), -INT16_C( 25705), INT16_C( 26673), INT16_C( 20808), INT16_C( 24672), INT16_C( 24826) }, { INT16_C( 24575), INT16_C( 5642), -INT16_C( 9344), INT16_C( 22040), -INT16_C( 16529), -INT16_C( 26399), INT16_C( 11199), INT16_C( 28251), INT16_MIN, -INT16_C( 1730), INT16_C( 14991), -INT16_C( 3005), INT16_C( 27968), -INT16_C( 12470), INT16_C( 9000), INT16_C( 23694), INT16_C( 6530), -INT16_C( 3469), INT16_C( 10355), -INT16_C( 13203), -INT16_C( 19993), INT16_C( 19300), INT16_C( 27873), INT16_C( 25524), -INT16_C( 3988), -INT16_C( 7772), INT16_MIN, INT16_MIN, INT16_C( 9424), INT16_C( 32578), -INT16_C( 7608), INT16_MAX } }, { { INT16_C( 625), -INT16_C( 3093), -INT16_C( 8066), INT16_C( 10923), INT16_C( 21608), INT16_C( 10571), -INT16_C( 13673), INT16_C( 32187), -INT16_C( 6248), INT16_C( 28396), -INT16_C( 31878), -INT16_C( 21751), INT16_C( 20971), INT16_C( 19709), -INT16_C( 2127), INT16_C( 9132), -INT16_C( 26631), INT16_C( 30742), -INT16_C( 16009), -INT16_C( 8286), -INT16_C( 4843), -INT16_C( 21496), -INT16_C( 15177), INT16_C( 20265), INT16_C( 5547), INT16_C( 9661), -INT16_C( 14695), -INT16_C( 31535), -INT16_C( 12777), -INT16_C( 13872), INT16_C( 31941), -INT16_C( 16660) }, UINT32_C(2318795283), { -INT16_C( 10045), -INT16_C( 9879), INT16_C( 29381), INT16_C( 32133), -INT16_C( 20682), -INT16_C( 7732), -INT16_C( 30012), INT16_C( 23815), -INT16_C( 10160), INT16_C( 26850), -INT16_C( 19802), INT16_C( 27441), INT16_C( 7471), INT16_C( 16937), INT16_C( 24607), -INT16_C( 7475), INT16_C( 13880), -INT16_C( 325), INT16_C( 16808), -INT16_C( 8581), INT16_C( 18416), -INT16_C( 19264), -INT16_C( 14383), INT16_C( 8722), -INT16_C( 2913), INT16_C( 17802), -INT16_C( 17498), -INT16_C( 10832), -INT16_C( 9768), -INT16_C( 2280), -INT16_C( 6855), INT16_C( 29401) }, { -INT16_C( 27365), -INT16_C( 15248), -INT16_C( 5162), -INT16_C( 14686), INT16_C( 25138), INT16_C( 1146), -INT16_C( 29655), -INT16_C( 14298), -INT16_C( 20352), INT16_C( 9997), -INT16_C( 17045), INT16_C( 17404), INT16_C( 5271), -INT16_C( 12230), INT16_C( 5113), INT16_C( 5442), -INT16_C( 19800), INT16_C( 32473), INT16_C( 31645), -INT16_C( 12220), -INT16_C( 16418), INT16_C( 2004), -INT16_C( 1461), -INT16_C( 13104), -INT16_C( 8790), INT16_C( 5619), -INT16_C( 4197), INT16_C( 12888), -INT16_C( 28156), -INT16_C( 766), INT16_C( 17829), INT16_C( 19986) }, { INT16_MIN, -INT16_C( 25127), -INT16_C( 8066), INT16_C( 10923), INT16_C( 4456), INT16_C( 10571), -INT16_C( 13673), INT16_C( 32187), -INT16_C( 6248), INT16_MAX, -INT16_C( 31878), -INT16_C( 21751), INT16_C( 20971), INT16_C( 19709), -INT16_C( 2127), INT16_C( 9132), -INT16_C( 26631), INT16_C( 32148), INT16_MAX, -INT16_C( 8286), INT16_C( 1998), -INT16_C( 17260), -INT16_C( 15177), INT16_C( 20265), INT16_C( 5547), INT16_C( 23421), -INT16_C( 14695), INT16_C( 2056), -INT16_C( 12777), -INT16_C( 13872), INT16_C( 31941), INT16_MAX } }, { { -INT16_C( 5129), -INT16_C( 27188), INT16_C( 4455), INT16_C( 17765), INT16_C( 14800), INT16_C( 6988), INT16_C( 7219), -INT16_C( 8729), -INT16_C( 9478), -INT16_C( 27150), INT16_C( 19146), -INT16_C( 12601), -INT16_C( 13860), -INT16_C( 32309), -INT16_C( 8690), INT16_C( 1743), -INT16_C( 25399), INT16_C( 12443), INT16_C( 173), INT16_C( 32117), -INT16_C( 15815), INT16_C( 27800), -INT16_C( 32546), -INT16_C( 10167), INT16_C( 15194), INT16_C( 9325), INT16_C( 13445), INT16_C( 25074), -INT16_C( 16642), INT16_C( 3298), -INT16_C( 19812), INT16_C( 25874) }, UINT32_C(4220955982), { INT16_C( 2989), -INT16_C( 6536), INT16_C( 4301), -INT16_C( 21422), -INT16_C( 25712), -INT16_C( 5244), -INT16_C( 3370), INT16_C( 23311), INT16_C( 550), INT16_C( 9404), -INT16_C( 24640), INT16_C( 23601), INT16_C( 17233), -INT16_C( 24639), INT16_C( 22513), -INT16_C( 24934), INT16_C( 4707), INT16_C( 12421), -INT16_C( 10462), -INT16_C( 19492), INT16_C( 24947), INT16_C( 18846), -INT16_C( 21165), INT16_C( 31141), INT16_C( 25007), INT16_C( 28574), -INT16_C( 12544), INT16_C( 20939), -INT16_C( 29422), INT16_C( 1008), -INT16_C( 29980), INT16_C( 18338) }, { INT16_C( 10140), -INT16_C( 16520), INT16_C( 21758), INT16_C( 29042), INT16_C( 4277), INT16_C( 2235), INT16_C( 24765), INT16_C( 28034), INT16_C( 8385), -INT16_C( 15652), -INT16_C( 22289), INT16_C( 275), INT16_C( 1077), INT16_C( 6405), -INT16_C( 22642), INT16_C( 11105), -INT16_C( 9778), -INT16_C( 13078), INT16_C( 23597), -INT16_C( 7362), -INT16_C( 1684), INT16_C( 10731), INT16_C( 27993), INT16_C( 6806), INT16_C( 29581), INT16_C( 31964), -INT16_C( 4069), INT16_C( 20606), -INT16_C( 31756), -INT16_C( 32151), -INT16_C( 13782), -INT16_C( 1875) }, { -INT16_C( 5129), -INT16_C( 23056), INT16_C( 26059), INT16_C( 7620), INT16_C( 14800), INT16_C( 6988), INT16_C( 21395), -INT16_C( 8729), INT16_C( 8935), -INT16_C( 27150), INT16_MIN, INT16_C( 23876), -INT16_C( 13860), -INT16_C( 18234), -INT16_C( 8690), -INT16_C( 13829), -INT16_C( 25399), -INT16_C( 657), INT16_C( 13135), INT16_C( 32117), INT16_C( 23263), INT16_C( 27800), -INT16_C( 32546), INT16_MAX, INT16_MAX, INT16_MAX, INT16_C( 13445), INT16_MAX, INT16_MIN, -INT16_C( 31143), INT16_MIN, INT16_C( 16463) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i src = simde_mm512_loadu_epi16(test_vec[i].src); simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a); simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b); simde__m512i r = simde_mm512_mask_adds_epi16(src, test_vec[i].k, a, b); simde_test_x86_assert_equal_i16x32(r, simde_mm512_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm512_maskz_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const simde__mmask32 k; const int16_t a[32]; const int16_t b[32]; const int16_t r[32]; } test_vec[] = { { UINT32_C(1382488990), { INT16_C( 13382), -INT16_C( 1131), -INT16_C( 8449), INT16_C( 8490), INT16_C( 27735), INT16_C( 28052), -INT16_C( 21201), INT16_C( 29768), INT16_C( 19795), -INT16_C( 30934), -INT16_C( 32642), INT16_C( 22005), INT16_C( 9346), INT16_C( 8543), -INT16_C( 14529), -INT16_C( 31373), INT16_C( 2299), -INT16_C( 1408), -INT16_C( 21530), INT16_C( 15643), -INT16_C( 20713), INT16_C( 18091), -INT16_C( 3236), -INT16_C( 20549), -INT16_C( 6847), -INT16_C( 16586), INT16_C( 11109), -INT16_C( 6124), INT16_C( 29776), -INT16_C( 28919), INT16_C( 31803), INT16_C( 13845) }, { -INT16_C( 27260), INT16_C( 27184), INT16_C( 19264), INT16_C( 22695), INT16_C( 21242), INT16_C( 22174), INT16_C( 22854), -INT16_C( 30971), INT16_C( 15423), -INT16_C( 23482), INT16_C( 23399), -INT16_C( 18548), -INT16_C( 27185), INT16_C( 2631), INT16_C( 23569), -INT16_C( 27328), INT16_C( 28913), INT16_C( 13055), -INT16_C( 22597), -INT16_C( 19062), INT16_C( 10489), INT16_C( 16139), INT16_C( 4226), -INT16_C( 15930), INT16_C( 3404), -INT16_C( 19355), -INT16_C( 3480), INT16_C( 14187), -INT16_C( 19833), -INT16_C( 26303), -INT16_C( 32498), INT16_C( 46) }, { INT16_C( 0), INT16_C( 26053), INT16_C( 10815), INT16_C( 31185), INT16_MAX, INT16_C( 0), INT16_C( 0), -INT16_C( 1203), INT16_MAX, INT16_MIN, INT16_C( 0), INT16_C( 3457), -INT16_C( 17839), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 31212), INT16_C( 11647), INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_MAX, INT16_C( 990), INT16_C( 0), INT16_C( 0), INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_C( 9943), INT16_C( 0), -INT16_C( 695), INT16_C( 0) } }, { UINT32_C(2888969969), { -INT16_C( 17195), -INT16_C( 12703), INT16_C( 27876), INT16_C( 26126), -INT16_C( 11140), -INT16_C( 14041), -INT16_C( 29215), INT16_C( 18813), -INT16_C( 6017), INT16_C( 1664), -INT16_C( 15973), -INT16_C( 22113), -INT16_C( 12734), INT16_C( 13225), -INT16_C( 9220), -INT16_C( 11809), INT16_C( 16535), INT16_C( 31903), -INT16_C( 21076), INT16_C( 10722), INT16_C( 2690), INT16_C( 25586), INT16_C( 28567), INT16_C( 5805), INT16_C( 11607), -INT16_C( 3556), -INT16_C( 17169), INT16_C( 12700), INT16_C( 17802), -INT16_C( 31131), INT16_C( 17441), -INT16_C( 18345) }, { -INT16_C( 2427), INT16_C( 12596), INT16_C( 6052), INT16_C( 9818), INT16_C( 19489), -INT16_C( 18295), INT16_C( 14011), INT16_C( 5070), -INT16_C( 5532), INT16_C( 21253), -INT16_C( 24154), INT16_C( 12420), -INT16_C( 5657), INT16_C( 2230), INT16_C( 3374), -INT16_C( 19520), -INT16_C( 2812), -INT16_C( 22300), INT16_C( 16140), INT16_C( 11726), INT16_C( 22411), INT16_C( 18405), -INT16_C( 19570), -INT16_C( 3494), INT16_C( 24477), INT16_C( 17477), -INT16_C( 14079), -INT16_C( 6028), INT16_C( 11187), -INT16_C( 7696), -INT16_C( 20424), INT16_C( 15508) }, { -INT16_C( 19622), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 8349), -INT16_C( 32336), -INT16_C( 15204), INT16_C( 23883), INT16_C( 0), INT16_C( 22917), INT16_MIN, -INT16_C( 9693), INT16_C( 0), INT16_C( 15455), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 9603), INT16_C( 0), INT16_C( 0), INT16_C( 25101), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 31248), INT16_C( 6672), INT16_C( 0), INT16_MIN, INT16_C( 0), -INT16_C( 2837) } }, { UINT32_C(2984540325), { -INT16_C( 19785), INT16_C( 17374), -INT16_C( 15606), -INT16_C( 26486), -INT16_C( 7050), INT16_C( 5258), -INT16_C( 12477), INT16_C( 17496), -INT16_C( 13160), INT16_C( 19244), INT16_C( 7415), INT16_C( 12332), -INT16_C( 16179), INT16_C( 29292), INT16_C( 20793), -INT16_C( 4060), INT16_C( 515), INT16_C( 3379), -INT16_C( 16954), INT16_C( 15525), INT16_C( 12193), -INT16_C( 6832), -INT16_C( 22274), -INT16_C( 26839), INT16_C( 22133), INT16_C( 27874), INT16_C( 3954), INT16_C( 16284), INT16_C( 2511), INT16_C( 2226), -INT16_C( 10662), INT16_C( 24057) }, { INT16_C( 11480), -INT16_C( 24981), INT16_C( 4330), -INT16_C( 29733), INT16_C( 11072), INT16_C( 15984), -INT16_C( 25900), INT16_C( 18901), -INT16_C( 18192), INT16_C( 25269), INT16_C( 21191), -INT16_C( 26974), INT16_C( 21595), -INT16_C( 19041), -INT16_C( 26582), INT16_C( 530), INT16_C( 32196), -INT16_C( 20831), INT16_C( 31886), -INT16_C( 12742), -INT16_C( 21849), INT16_C( 31500), -INT16_C( 7612), INT16_C( 13508), INT16_C( 31386), INT16_C( 24983), INT16_C( 14796), INT16_C( 10231), -INT16_C( 26995), -INT16_C( 18468), -INT16_C( 4562), -INT16_C( 3143) }, { -INT16_C( 8305), INT16_C( 0), -INT16_C( 11276), INT16_C( 0), INT16_C( 0), INT16_C( 21242), INT16_C( 0), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 14642), INT16_C( 5416), INT16_C( 10251), -INT16_C( 5789), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 14932), INT16_C( 0), INT16_C( 0), INT16_C( 24668), -INT16_C( 29886), -INT16_C( 13331), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 24484), -INT16_C( 16242), INT16_C( 0), INT16_C( 20914) } }, { UINT32_C(4204878444), { -INT16_C( 9258), INT16_C( 32456), -INT16_C( 11130), -INT16_C( 13575), -INT16_C( 16714), INT16_C( 20735), -INT16_C( 27080), INT16_C( 1201), -INT16_C( 22065), INT16_C( 23595), INT16_C( 1855), INT16_C( 28179), -INT16_C( 13067), INT16_C( 24929), INT16_C( 551), -INT16_C( 677), INT16_C( 9182), INT16_C( 25723), INT16_C( 30200), -INT16_C( 20946), INT16_C( 11571), INT16_C( 27647), -INT16_C( 20285), -INT16_C( 28049), -INT16_C( 26023), -INT16_C( 26130), INT16_C( 417), -INT16_C( 27129), INT16_C( 26830), -INT16_C( 2568), INT16_C( 21354), INT16_C( 18674) }, { INT16_C( 28279), INT16_C( 28588), -INT16_C( 9245), INT16_C( 5661), INT16_C( 7176), -INT16_C( 13183), -INT16_C( 3891), INT16_C( 9822), INT16_C( 19850), INT16_C( 11199), -INT16_C( 14770), INT16_C( 7361), -INT16_C( 18130), -INT16_C( 26351), INT16_C( 1037), -INT16_C( 31519), -INT16_C( 29070), INT16_C( 22003), INT16_C( 4201), INT16_C( 29035), -INT16_C( 5075), -INT16_C( 1475), -INT16_C( 25380), INT16_C( 26144), -INT16_C( 7959), INT16_C( 14225), INT16_C( 21158), -INT16_C( 10924), INT16_C( 25868), INT16_C( 6510), INT16_C( 20329), -INT16_C( 9315) }, { INT16_C( 0), INT16_C( 0), -INT16_C( 20375), -INT16_C( 7914), INT16_C( 0), INT16_C( 7552), -INT16_C( 30971), INT16_C( 0), INT16_C( 0), INT16_MAX, INT16_C( 0), INT16_MAX, -INT16_C( 31197), INT16_C( 0), INT16_C( 1588), INT16_C( 0), -INT16_C( 19888), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 26172), INT16_C( 0), -INT16_C( 1905), INT16_C( 0), -INT16_C( 11905), INT16_C( 0), INT16_MIN, INT16_MAX, INT16_C( 3942), INT16_MAX, INT16_C( 9359) } }, { UINT32_C(1177587933), { -INT16_C( 25696), -INT16_C( 12872), -INT16_C( 2681), INT16_C( 25543), -INT16_C( 5999), INT16_C( 31433), INT16_C( 23240), INT16_C( 28338), INT16_C( 1709), -INT16_C( 18109), -INT16_C( 20117), -INT16_C( 10798), INT16_C( 28417), -INT16_C( 8528), -INT16_C( 7681), -INT16_C( 24795), -INT16_C( 8836), INT16_C( 1133), INT16_C( 13522), INT16_C( 25703), INT16_C( 12572), -INT16_C( 6946), -INT16_C( 28533), INT16_C( 14419), -INT16_C( 26986), INT16_C( 753), -INT16_C( 15544), INT16_C( 18903), -INT16_C( 30926), INT16_C( 12583), INT16_C( 19560), -INT16_C( 6703) }, { INT16_C( 15913), -INT16_C( 791), INT16_C( 20594), -INT16_C( 28832), INT16_C( 16001), INT16_C( 3443), -INT16_C( 14641), INT16_C( 25925), INT16_C( 14173), -INT16_C( 23193), INT16_C( 16122), INT16_C( 11758), INT16_C( 5574), INT16_C( 11870), INT16_C( 12130), -INT16_C( 29933), -INT16_C( 915), -INT16_C( 8057), -INT16_C( 6323), -INT16_C( 12689), -INT16_C( 7642), -INT16_C( 2597), INT16_C( 8617), INT16_C( 1626), -INT16_C( 15784), INT16_C( 21163), -INT16_C( 26368), -INT16_C( 14721), -INT16_C( 8530), INT16_C( 4341), INT16_C( 2061), INT16_C( 31644) }, { -INT16_C( 9783), INT16_C( 0), INT16_C( 17913), -INT16_C( 3289), INT16_C( 10002), INT16_C( 0), INT16_C( 8599), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 4930), -INT16_C( 9543), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 21916), INT16_MIN, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 21621), INT16_C( 0) } }, { UINT32_C(1381704453), { -INT16_C( 13813), INT16_C( 12576), -INT16_C( 852), INT16_C( 21798), -INT16_C( 32739), INT16_C( 30043), INT16_C( 1602), INT16_C( 17351), INT16_C( 18335), INT16_C( 19977), -INT16_C( 475), INT16_C( 12894), -INT16_C( 1529), INT16_C( 3245), INT16_C( 2078), INT16_C( 10590), INT16_C( 32466), INT16_C( 32602), -INT16_C( 32646), -INT16_C( 26668), INT16_C( 12288), INT16_C( 17164), -INT16_C( 11210), -INT16_C( 10618), -INT16_C( 28901), INT16_C( 16420), -INT16_C( 32114), -INT16_C( 27278), INT16_C( 8317), -INT16_C( 25695), -INT16_C( 216), -INT16_C( 1084) }, { INT16_C( 7805), -INT16_C( 1926), INT16_C( 20126), -INT16_C( 24945), -INT16_C( 25474), -INT16_C( 18975), INT16_C( 26480), -INT16_C( 29813), -INT16_C( 20489), -INT16_C( 31285), INT16_C( 15665), -INT16_C( 20966), -INT16_C( 17571), -INT16_C( 31159), INT16_C( 3514), INT16_C( 14209), -INT16_C( 1237), -INT16_C( 14033), -INT16_C( 16567), -INT16_C( 14232), INT16_C( 18779), -INT16_C( 13443), INT16_C( 2225), -INT16_C( 22442), INT16_C( 8631), -INT16_C( 6099), INT16_C( 18270), -INT16_C( 17257), -INT16_C( 8190), -INT16_C( 17342), -INT16_C( 15378), INT16_C( 6643) }, { -INT16_C( 6008), INT16_C( 0), INT16_C( 19274), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 2154), -INT16_C( 11308), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 27914), INT16_C( 0), INT16_C( 0), INT16_C( 31229), INT16_C( 18569), INT16_C( 0), INT16_MIN, INT16_C( 31067), INT16_C( 0), -INT16_C( 8985), INT16_C( 0), INT16_C( 0), INT16_C( 10321), INT16_C( 0), INT16_C( 0), INT16_C( 127), INT16_C( 0), -INT16_C( 15594), INT16_C( 0) } }, { UINT32_C( 132326334), { INT16_C( 19426), INT16_C( 15823), INT16_C( 19604), INT16_C( 17672), INT16_C( 24148), INT16_C( 3053), INT16_C( 6783), -INT16_C( 8716), -INT16_C( 29855), INT16_C( 25497), -INT16_C( 9365), INT16_C( 22815), INT16_C( 5022), INT16_C( 23667), INT16_C( 22070), INT16_C( 6244), INT16_C( 13217), INT16_C( 13653), INT16_C( 23936), -INT16_C( 11141), INT16_C( 26811), INT16_C( 15072), -INT16_C( 11133), -INT16_C( 7145), -INT16_C( 20129), -INT16_C( 13752), INT16_C( 26508), INT16_C( 11044), -INT16_C( 26758), -INT16_C( 20345), -INT16_C( 5139), -INT16_C( 28984) }, { INT16_C( 7455), -INT16_C( 24637), INT16_C( 15994), INT16_C( 13683), INT16_C( 21415), INT16_C( 10863), -INT16_C( 30937), -INT16_C( 31218), INT16_C( 22072), -INT16_C( 15279), INT16_C( 30142), INT16_C( 14575), INT16_C( 30476), -INT16_C( 1559), -INT16_C( 20126), -INT16_C( 32377), INT16_C( 19151), INT16_C( 18720), -INT16_C( 27511), INT16_C( 12415), -INT16_C( 4377), INT16_C( 3930), INT16_C( 26741), -INT16_C( 21099), -INT16_C( 6465), INT16_C( 32114), INT16_C( 24923), INT16_C( 26549), -INT16_C( 24872), INT16_C( 15200), -INT16_C( 6320), INT16_C( 8124) }, { INT16_C( 0), -INT16_C( 8814), INT16_MAX, INT16_C( 31355), INT16_MAX, INT16_C( 13916), INT16_C( 0), INT16_MIN, -INT16_C( 7783), INT16_C( 10218), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 22108), INT16_C( 0), INT16_C( 0), INT16_C( 32368), INT16_C( 32373), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 19002), INT16_C( 15608), -INT16_C( 28244), -INT16_C( 26594), INT16_C( 18362), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) } }, { UINT32_C(3144211762), { -INT16_C( 6287), INT16_C( 22763), INT16_C( 17878), INT16_C( 19303), -INT16_C( 595), INT16_C( 27897), INT16_C( 27619), INT16_C( 16361), -INT16_C( 24628), -INT16_C( 23130), INT16_C( 1853), -INT16_C( 29216), -INT16_C( 25362), INT16_C( 8364), INT16_C( 5497), -INT16_C( 5413), -INT16_C( 14596), -INT16_C( 11709), -INT16_C( 22005), -INT16_C( 18146), INT16_C( 6055), -INT16_C( 29915), INT16_C( 3970), INT16_C( 20170), INT16_C( 28846), -INT16_C( 5133), -INT16_C( 11401), INT16_C( 26233), INT16_C( 9584), -INT16_C( 5754), INT16_C( 25146), INT16_C( 14292) }, { INT16_C( 5928), INT16_C( 13321), INT16_C( 10177), INT16_C( 27117), INT16_C( 4670), -INT16_C( 16140), -INT16_C( 16863), -INT16_C( 12529), INT16_C( 558), -INT16_C( 22853), INT16_C( 13526), INT16_C( 17932), -INT16_C( 28071), -INT16_C( 27601), INT16_C( 1012), INT16_C( 7627), -INT16_C( 11238), -INT16_C( 9135), INT16_C( 16124), INT16_C( 14917), INT16_C( 14672), INT16_C( 29435), INT16_C( 2807), INT16_C( 9537), -INT16_C( 1012), -INT16_C( 7477), -INT16_C( 10448), -INT16_C( 30168), INT16_C( 22634), INT16_C( 24094), -INT16_C( 5797), INT16_C( 30331) }, { INT16_C( 0), INT16_MAX, INT16_C( 0), INT16_C( 0), INT16_C( 4075), INT16_C( 11757), INT16_C( 0), INT16_C( 0), -INT16_C( 24070), INT16_C( 0), INT16_C( 15379), -INT16_C( 11284), INT16_MIN, INT16_C( 0), INT16_C( 6509), INT16_C( 2214), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 3229), INT16_C( 0), -INT16_C( 480), INT16_C( 6777), INT16_C( 0), INT16_C( 27834), -INT16_C( 12610), INT16_C( 0), -INT16_C( 3935), INT16_C( 32218), INT16_C( 18340), INT16_C( 0), INT16_MAX } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a); simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b); simde__m512i r = simde_mm512_maskz_adds_epi16(test_vec[i].k, a, b); simde_test_x86_assert_equal_i16x32(r, simde_mm512_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm512_adds_epu8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_x_mm512_set_epu8(UINT8_C( 52), UINT8_C( 29), UINT8_C( 31), UINT8_C(206), UINT8_C( 40), UINT8_C(160), UINT8_C(244), UINT8_C( 85), UINT8_C( 47), UINT8_C(153), UINT8_C(218), UINT8_C(226), UINT8_C( 99), UINT8_C(129), UINT8_C( 68), UINT8_C(218), UINT8_C(122), UINT8_C( 56), UINT8_C(240), UINT8_C( 10), UINT8_C(228), UINT8_C( 40), UINT8_C( 70), UINT8_C( 14), UINT8_C( 67), UINT8_C( 37), UINT8_C( 87), UINT8_C(131), UINT8_C( 29), UINT8_C(175), UINT8_C(167), UINT8_C(223), UINT8_C(170), UINT8_C( 76), UINT8_C( 39), UINT8_C(254), UINT8_C(222), UINT8_C(105), UINT8_C(193), UINT8_C(144), UINT8_C(182), UINT8_C(106), UINT8_C(199), UINT8_C(161), UINT8_C(173), UINT8_C( 65), UINT8_C( 54), UINT8_C(148), UINT8_C(222), UINT8_C( 9), UINT8_C(237), UINT8_C( 76), UINT8_C(149), UINT8_C(196), UINT8_C(194), UINT8_C(114), UINT8_C(167), UINT8_C( 47), UINT8_C(174), UINT8_C(135), UINT8_C(170), UINT8_C( 1), UINT8_C( 40), UINT8_C( 68)), simde_x_mm512_set_epu8(UINT8_C(183), UINT8_C(129), UINT8_C(214), UINT8_C( 34), UINT8_C(187), UINT8_C(142), UINT8_C(238), UINT8_C(248), UINT8_C(175), UINT8_C(127), UINT8_C(231), UINT8_C(164), UINT8_C( 16), UINT8_C(128), UINT8_C( 32), UINT8_C( 28), UINT8_C(111), UINT8_C( 40), UINT8_C( 8), UINT8_C(160), UINT8_C( 37), UINT8_C(193), UINT8_C(195), UINT8_C(135), UINT8_C(102), UINT8_C( 87), UINT8_C(146), UINT8_C(206), UINT8_C( 94), UINT8_C(109), UINT8_C(112), UINT8_C( 83), UINT8_C( 63), UINT8_C(215), UINT8_C( 46), UINT8_C( 55), UINT8_C( 78), UINT8_C(211), UINT8_C(175), UINT8_C(210), UINT8_C( 60), UINT8_C(205), UINT8_C(118), UINT8_C(142), UINT8_C(109), UINT8_C( 48), UINT8_C( 54), UINT8_C( 54), UINT8_C( 99), UINT8_C(248), UINT8_C(120), UINT8_C(165), UINT8_C(189), UINT8_C(132), UINT8_C(130), UINT8_C( 16), UINT8_C( 6), UINT8_C(104), UINT8_C(176), UINT8_C(111), UINT8_C(254), UINT8_C(193), UINT8_C(106), UINT8_C( 5)), simde_x_mm512_set_epu8(UINT8_C(235), UINT8_C(158), UINT8_C(245), UINT8_C(240), UINT8_C(227), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(222), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(115), UINT8_C(255), UINT8_C(100), UINT8_C(246), UINT8_C(233), UINT8_C( 96), UINT8_C(248), UINT8_C(170), UINT8_C(255), UINT8_C(233), UINT8_C(255), UINT8_C(149), UINT8_C(169), UINT8_C(124), UINT8_C(233), UINT8_C(255), UINT8_C(123), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(233), UINT8_C(255), UINT8_C( 85), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(242), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(113), UINT8_C(108), UINT8_C(202), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(241), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(130), UINT8_C(173), UINT8_C(151), UINT8_C(255), UINT8_C(246), UINT8_C(255), UINT8_C(194), UINT8_C(146), UINT8_C( 73)) }, { simde_x_mm512_set_epu8(UINT8_C( 38), UINT8_C(254), UINT8_C(204), UINT8_C( 72), UINT8_C(177), UINT8_C( 63), UINT8_C( 67), UINT8_C( 50), UINT8_C( 71), UINT8_C(226), UINT8_C(146), UINT8_C( 4), UINT8_C(134), UINT8_C( 91), UINT8_C(195), UINT8_C(148), UINT8_C( 28), UINT8_C(158), UINT8_C(223), UINT8_C(181), UINT8_C(218), UINT8_C(114), UINT8_C(200), UINT8_C(243), UINT8_C(255), UINT8_C( 48), UINT8_C(233), UINT8_C( 82), UINT8_C( 22), UINT8_C( 26), UINT8_C(128), UINT8_C(166), UINT8_C( 79), UINT8_C(206), UINT8_C(109), UINT8_C(113), UINT8_C( 86), UINT8_C(112), UINT8_C(215), UINT8_C(187), UINT8_C(174), UINT8_C(250), UINT8_C(225), UINT8_C(206), UINT8_C(242), UINT8_C(141), UINT8_C(197), UINT8_C(179), UINT8_C( 88), UINT8_C(237), UINT8_C(191), UINT8_C(149), UINT8_C(130), UINT8_C( 63), UINT8_C( 54), UINT8_C(129), UINT8_C(126), UINT8_C( 18), UINT8_C( 43), UINT8_C(251), UINT8_C(214), UINT8_C(155), UINT8_C( 61), UINT8_C(138)), simde_x_mm512_set_epu8(UINT8_C(142), UINT8_C( 33), UINT8_C( 51), UINT8_C(244), UINT8_C( 33), UINT8_C(106), UINT8_C( 75), UINT8_C(210), UINT8_C(121), UINT8_C( 52), UINT8_C(233), UINT8_C(109), UINT8_C(205), UINT8_C(175), UINT8_C(230), UINT8_C( 70), UINT8_C( 28), UINT8_C(216), UINT8_C( 76), UINT8_C(137), UINT8_C(129), UINT8_C( 5), UINT8_C(149), UINT8_C(132), UINT8_C(159), UINT8_C( 55), UINT8_C( 47), UINT8_C(212), UINT8_C(202), UINT8_C( 26), UINT8_C(247), UINT8_C( 19), UINT8_C(109), UINT8_C( 59), UINT8_C( 49), UINT8_C(175), UINT8_C( 15), UINT8_C(240), UINT8_C(155), UINT8_C( 20), UINT8_C( 85), UINT8_C( 57), UINT8_C( 91), UINT8_C(177), UINT8_C(179), UINT8_C(200), UINT8_C( 26), UINT8_C( 99), UINT8_C( 9), UINT8_C(177), UINT8_C(151), UINT8_C(246), UINT8_C(116), UINT8_C(162), UINT8_C(144), UINT8_C( 44), UINT8_C(240), UINT8_C(226), UINT8_C(215), UINT8_C(206), UINT8_C(114), UINT8_C(250), UINT8_C(170), UINT8_C(220)), simde_x_mm512_set_epu8(UINT8_C(180), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(210), UINT8_C(169), UINT8_C(142), UINT8_C(255), UINT8_C(192), UINT8_C(255), UINT8_C(255), UINT8_C(113), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(218), UINT8_C( 56), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(119), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(103), UINT8_C(255), UINT8_C(255), UINT8_C(224), UINT8_C( 52), UINT8_C(255), UINT8_C(185), UINT8_C(188), UINT8_C(255), UINT8_C(158), UINT8_C(255), UINT8_C(101), UINT8_C(255), UINT8_C(255), UINT8_C(207), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(223), UINT8_C(255), UINT8_C( 97), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(246), UINT8_C(225), UINT8_C(198), UINT8_C(173), UINT8_C(255), UINT8_C(244), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(231), UINT8_C(255)) }, { simde_x_mm512_set_epu8(UINT8_C(103), UINT8_C(253), UINT8_C( 31), UINT8_C(185), UINT8_C(101), UINT8_C(201), UINT8_C( 20), UINT8_C( 77), UINT8_C(110), UINT8_C(116), UINT8_C(226), UINT8_C( 37), UINT8_C(155), UINT8_C( 44), UINT8_C(198), UINT8_C(182), UINT8_C(132), UINT8_C( 61), UINT8_C(104), UINT8_C(181), UINT8_C( 77), UINT8_C(161), UINT8_C(154), UINT8_C(195), UINT8_C(148), UINT8_C(239), UINT8_C(178), UINT8_C(165), UINT8_C( 6), UINT8_C(251), UINT8_C( 97), UINT8_C(247), UINT8_C( 8), UINT8_C( 52), UINT8_C( 96), UINT8_C( 34), UINT8_C(233), UINT8_C( 1), UINT8_C( 7), UINT8_C(254), UINT8_C( 3), UINT8_C( 8), UINT8_C(168), UINT8_C(221), UINT8_C(238), UINT8_C(144), UINT8_C( 18), UINT8_C(245), UINT8_C(216), UINT8_C(239), UINT8_C(128), UINT8_C(174), UINT8_C(108), UINT8_C(236), UINT8_C(204), UINT8_C(151), UINT8_C( 83), UINT8_C(224), UINT8_C(253), UINT8_C( 94), UINT8_C( 40), UINT8_C( 10), UINT8_C(195), UINT8_C( 72)), simde_x_mm512_set_epu8(UINT8_C(196), UINT8_C(220), UINT8_C(209), UINT8_C(146), UINT8_C( 66), UINT8_C(240), UINT8_C(160), UINT8_C( 58), UINT8_C(206), UINT8_C(157), UINT8_C(225), UINT8_C(238), UINT8_C(235), UINT8_C( 53), UINT8_C( 91), UINT8_C( 97), UINT8_C(175), UINT8_C( 22), UINT8_C( 33), UINT8_C(101), UINT8_C(189), UINT8_C(131), UINT8_C(219), UINT8_C( 30), UINT8_C( 36), UINT8_C( 11), UINT8_C(180), UINT8_C( 46), UINT8_C(126), UINT8_C(239), UINT8_C(135), UINT8_C( 44), UINT8_C(198), UINT8_C(149), UINT8_C(235), UINT8_C( 72), UINT8_C( 18), UINT8_C(214), UINT8_C( 92), UINT8_C(199), UINT8_C( 79), UINT8_C( 28), UINT8_C(156), UINT8_C( 37), UINT8_C(212), UINT8_C(167), UINT8_C( 62), UINT8_C(201), UINT8_C(139), UINT8_C(215), UINT8_C( 68), UINT8_C(117), UINT8_C( 83), UINT8_C(105), UINT8_C(232), UINT8_C(251), UINT8_C( 6), UINT8_C(165), UINT8_C(199), UINT8_C(183), UINT8_C(254), UINT8_C( 55), UINT8_C(167), UINT8_C(238)), simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(255), UINT8_C(240), UINT8_C(255), UINT8_C(167), UINT8_C(255), UINT8_C(180), UINT8_C(135), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C( 97), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C( 83), UINT8_C(137), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(225), UINT8_C(184), UINT8_C(250), UINT8_C(255), UINT8_C(211), UINT8_C(132), UINT8_C(255), UINT8_C(232), UINT8_C(255), UINT8_C(206), UINT8_C(201), UINT8_C(255), UINT8_C(106), UINT8_C(251), UINT8_C(215), UINT8_C( 99), UINT8_C(255), UINT8_C( 82), UINT8_C( 36), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C( 80), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(196), UINT8_C(255), UINT8_C(191), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C( 89), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C( 65), UINT8_C(255), UINT8_C(255)) }, { simde_x_mm512_set_epu8(UINT8_C( 7), UINT8_C( 99), UINT8_C(210), UINT8_C(110), UINT8_C(202), UINT8_C( 10), UINT8_C(247), UINT8_C( 68), UINT8_C(177), UINT8_C(186), UINT8_C(247), UINT8_C( 36), UINT8_C(212), UINT8_C(146), UINT8_C(251), UINT8_C( 66), UINT8_C( 0), UINT8_C( 8), UINT8_C(116), UINT8_C(102), UINT8_C(175), UINT8_C(223), UINT8_C( 15), UINT8_C(232), UINT8_C(127), UINT8_C( 63), UINT8_C( 84), UINT8_C(165), UINT8_C( 18), UINT8_C(250), UINT8_C( 71), UINT8_C( 18), UINT8_C(132), UINT8_C(155), UINT8_C(102), UINT8_C( 18), UINT8_C(177), UINT8_C(146), UINT8_C(169), UINT8_C(139), UINT8_C( 21), UINT8_C( 79), UINT8_C( 4), UINT8_C(129), UINT8_C(168), UINT8_C( 42), UINT8_C( 9), UINT8_C(184), UINT8_C( 46), UINT8_C( 53), UINT8_C(243), UINT8_C(140), UINT8_C(158), UINT8_C(112), UINT8_C( 35), UINT8_C( 49), UINT8_C(253), UINT8_C(233), UINT8_C( 33), UINT8_C(178), UINT8_C(117), UINT8_C(161), UINT8_C(168), UINT8_C( 39)), simde_x_mm512_set_epu8(UINT8_C( 75), UINT8_C(218), UINT8_C(162), UINT8_C( 30), UINT8_C(119), UINT8_C(231), UINT8_C(193), UINT8_C(230), UINT8_C(151), UINT8_C( 49), UINT8_C(234), UINT8_C( 78), UINT8_C( 76), UINT8_C( 37), UINT8_C(174), UINT8_C(105), UINT8_C(224), UINT8_C(210), UINT8_C(188), UINT8_C(142), UINT8_C(116), UINT8_C(129), UINT8_C( 93), UINT8_C(124), UINT8_C(248), UINT8_C(145), UINT8_C(230), UINT8_C( 41), UINT8_C( 66), UINT8_C(115), UINT8_C(180), UINT8_C( 47), UINT8_C( 55), UINT8_C(104), UINT8_C(123), UINT8_C(150), UINT8_C(165), UINT8_C( 22), UINT8_C( 0), UINT8_C(101), UINT8_C( 55), UINT8_C( 23), UINT8_C( 90), UINT8_C( 64), UINT8_C( 52), UINT8_C(254), UINT8_C(116), UINT8_C(243), UINT8_C( 4), UINT8_C( 84), UINT8_C( 82), UINT8_C(103), UINT8_C( 43), UINT8_C(237), UINT8_C( 7), UINT8_C( 76), UINT8_C( 88), UINT8_C(212), UINT8_C( 63), UINT8_C(146), UINT8_C(224), UINT8_C(223), UINT8_C(207), UINT8_C(220)), simde_x_mm512_set_epu8(UINT8_C( 82), UINT8_C(255), UINT8_C(255), UINT8_C(140), UINT8_C(255), UINT8_C(241), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(235), UINT8_C(255), UINT8_C(114), UINT8_C(255), UINT8_C(183), UINT8_C(255), UINT8_C(171), UINT8_C(224), UINT8_C(218), UINT8_C(255), UINT8_C(244), UINT8_C(255), UINT8_C(255), UINT8_C(108), UINT8_C(255), UINT8_C(255), UINT8_C(208), UINT8_C(255), UINT8_C(206), UINT8_C( 84), UINT8_C(255), UINT8_C(251), UINT8_C( 65), UINT8_C(187), UINT8_C(255), UINT8_C(225), UINT8_C(168), UINT8_C(255), UINT8_C(168), UINT8_C(169), UINT8_C(240), UINT8_C( 76), UINT8_C(102), UINT8_C( 94), UINT8_C(193), UINT8_C(220), UINT8_C(255), UINT8_C(125), UINT8_C(255), UINT8_C( 50), UINT8_C(137), UINT8_C(255), UINT8_C(243), UINT8_C(201), UINT8_C(255), UINT8_C( 42), UINT8_C(125), UINT8_C(255), UINT8_C(255), UINT8_C( 96), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255)) }, { simde_x_mm512_set_epu8(UINT8_C(233), UINT8_C(112), UINT8_C( 62), UINT8_C( 65), UINT8_C( 37), UINT8_C(247), UINT8_C(105), UINT8_C( 54), UINT8_C(214), UINT8_C(255), UINT8_C(145), UINT8_C( 18), UINT8_C(160), UINT8_C( 92), UINT8_C( 29), UINT8_C(253), UINT8_C(230), UINT8_C( 83), UINT8_C(176), UINT8_C( 43), UINT8_C( 78), UINT8_C( 31), UINT8_C(113), UINT8_C(239), UINT8_C( 38), UINT8_C(192), UINT8_C(127), UINT8_C( 44), UINT8_C(218), UINT8_C(134), UINT8_C(224), UINT8_C( 35), UINT8_C(155), UINT8_C(171), UINT8_C( 44), UINT8_C( 53), UINT8_C(101), UINT8_C(234), UINT8_C(121), UINT8_C( 95), UINT8_C(232), UINT8_C(104), UINT8_C( 20), UINT8_C( 52), UINT8_C( 59), UINT8_C( 62), UINT8_C( 55), UINT8_C( 43), UINT8_C(246), UINT8_C( 36), UINT8_C( 25), UINT8_C( 98), UINT8_C(155), UINT8_C(231), UINT8_C( 43), UINT8_C(203), UINT8_C( 77), UINT8_C( 43), UINT8_C( 80), UINT8_C( 85), UINT8_C(227), UINT8_C( 34), UINT8_C( 77), UINT8_C(179)), simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C(183), UINT8_C(190), UINT8_C(248), UINT8_C( 54), UINT8_C(194), UINT8_C( 0), UINT8_C(190), UINT8_C(102), UINT8_C(185), UINT8_C( 5), UINT8_C(238), UINT8_C(188), UINT8_C(104), UINT8_C(139), UINT8_C(163), UINT8_C(242), UINT8_C( 94), UINT8_C(181), UINT8_C(214), UINT8_C(170), UINT8_C(182), UINT8_C(139), UINT8_C( 96), UINT8_C( 80), UINT8_C( 38), UINT8_C(151), UINT8_C(132), UINT8_C(243), UINT8_C( 37), UINT8_C(120), UINT8_C( 30), UINT8_C(115), UINT8_C( 34), UINT8_C(222), UINT8_C(121), UINT8_C(112), UINT8_C(205), UINT8_C(161), UINT8_C( 52), UINT8_C(142), UINT8_C(118), UINT8_C(195), UINT8_C(200), UINT8_C( 59), UINT8_C( 6), UINT8_C(115), UINT8_C(109), UINT8_C( 93), UINT8_C(174), UINT8_C(200), UINT8_C(190), UINT8_C(151), UINT8_C(126), UINT8_C(210), UINT8_C(200), UINT8_C( 79), UINT8_C( 43), UINT8_C( 20), UINT8_C(239), UINT8_C(149), UINT8_C(119), UINT8_C( 96), UINT8_C(120)), simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(255), UINT8_C(252), UINT8_C(255), UINT8_C( 91), UINT8_C(255), UINT8_C(105), UINT8_C(244), UINT8_C(255), UINT8_C(255), UINT8_C(150), UINT8_C(255), UINT8_C(255), UINT8_C(196), UINT8_C(168), UINT8_C(255), UINT8_C(255), UINT8_C(177), UINT8_C(255), UINT8_C(255), UINT8_C(248), UINT8_C(213), UINT8_C(252), UINT8_C(255), UINT8_C(118), UINT8_C(230), UINT8_C(255), UINT8_C(176), UINT8_C(255), UINT8_C(171), UINT8_C(255), UINT8_C( 65), UINT8_C(255), UINT8_C(205), UINT8_C(255), UINT8_C(174), UINT8_C(213), UINT8_C(255), UINT8_C(255), UINT8_C(147), UINT8_C(255), UINT8_C(222), UINT8_C(215), UINT8_C(252), UINT8_C(118), UINT8_C( 68), UINT8_C(170), UINT8_C(152), UINT8_C(255), UINT8_C(210), UINT8_C(225), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(253), UINT8_C(255), UINT8_C(156), UINT8_C( 86), UINT8_C(100), UINT8_C(255), UINT8_C(255), UINT8_C(153), UINT8_C(173), UINT8_C(255)) }, { simde_x_mm512_set_epu8(UINT8_C(150), UINT8_C(150), UINT8_C(146), UINT8_C(157), UINT8_C(103), UINT8_C( 31), UINT8_C(236), UINT8_C(192), UINT8_C(155), UINT8_C( 46), UINT8_C(170), UINT8_C(176), UINT8_C(189), UINT8_C( 74), UINT8_C(246), UINT8_C( 0), UINT8_C( 85), UINT8_C( 30), UINT8_C(190), UINT8_C( 12), UINT8_C(117), UINT8_C( 74), UINT8_C(194), UINT8_C( 97), UINT8_C(132), UINT8_C( 63), UINT8_C(227), UINT8_C( 21), UINT8_C(244), UINT8_C(229), UINT8_C(176), UINT8_C(122), UINT8_C(159), UINT8_C( 35), UINT8_C(115), UINT8_C(240), UINT8_C( 88), UINT8_C(151), UINT8_C(101), UINT8_C(194), UINT8_C( 49), UINT8_C(128), UINT8_C( 87), UINT8_C(152), UINT8_C(173), UINT8_C(242), UINT8_C(150), UINT8_C( 26), UINT8_C(183), UINT8_C( 56), UINT8_C(181), UINT8_C(193), UINT8_C(231), UINT8_C(135), UINT8_C(190), UINT8_C( 42), UINT8_C( 33), UINT8_C(174), UINT8_C( 57), UINT8_C(232), UINT8_C(176), UINT8_C(125), UINT8_C( 87), UINT8_C( 79)), simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C( 1), UINT8_C(208), UINT8_C( 74), UINT8_C(102), UINT8_C(168), UINT8_C( 41), UINT8_C( 41), UINT8_C( 83), UINT8_C( 95), UINT8_C(152), UINT8_C(131), UINT8_C(230), UINT8_C( 27), UINT8_C(126), UINT8_C(230), UINT8_C(128), UINT8_C(133), UINT8_C(107), UINT8_C(197), UINT8_C( 23), UINT8_C( 2), UINT8_C(108), UINT8_C(207), UINT8_C( 82), UINT8_C(175), UINT8_C(247), UINT8_C(180), UINT8_C( 57), UINT8_C( 31), UINT8_C(124), UINT8_C(203), UINT8_C(246), UINT8_C(195), UINT8_C(173), UINT8_C(161), UINT8_C(132), UINT8_C(162), UINT8_C( 13), UINT8_C(205), UINT8_C(225), UINT8_C( 25), UINT8_C( 39), UINT8_C(181), UINT8_C(149), UINT8_C(149), UINT8_C(138), UINT8_C(158), UINT8_C(215), UINT8_C(147), UINT8_C( 0), UINT8_C( 87), UINT8_C(244), UINT8_C( 10), UINT8_C( 1), UINT8_C( 19), UINT8_C(173), UINT8_C(221), UINT8_C(118), UINT8_C( 51), UINT8_C( 98), UINT8_C(183), UINT8_C(125), UINT8_C( 92)), simde_x_mm512_set_epu8(UINT8_C(218), UINT8_C(151), UINT8_C(255), UINT8_C(231), UINT8_C(205), UINT8_C(199), UINT8_C(255), UINT8_C(233), UINT8_C(238), UINT8_C(141), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(101), UINT8_C(255), UINT8_C(230), UINT8_C(213), UINT8_C(163), UINT8_C(255), UINT8_C(209), UINT8_C(140), UINT8_C( 76), UINT8_C(255), UINT8_C(255), UINT8_C(214), UINT8_C(238), UINT8_C(255), UINT8_C(201), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(230), UINT8_C(255), UINT8_C(255), UINT8_C(220), UINT8_C(255), UINT8_C(114), UINT8_C(255), UINT8_C(255), UINT8_C(153), UINT8_C(126), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(184), UINT8_C(255), UINT8_C(203), UINT8_C(181), UINT8_C(255), UINT8_C(255), UINT8_C(145), UINT8_C(191), UINT8_C( 61), UINT8_C(206), UINT8_C(255), UINT8_C(175), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(212), UINT8_C(171)) }, { simde_x_mm512_set_epu8(UINT8_C(166), UINT8_C(112), UINT8_C( 16), UINT8_C( 20), UINT8_C(189), UINT8_C( 23), UINT8_C( 28), UINT8_C(226), UINT8_C( 92), UINT8_C(105), UINT8_C(249), UINT8_C( 71), UINT8_C( 22), UINT8_C(153), UINT8_C( 38), UINT8_C( 58), UINT8_C( 86), UINT8_C(191), UINT8_C( 97), UINT8_C(186), UINT8_C(117), UINT8_C( 93), UINT8_C( 63), UINT8_C(142), UINT8_C( 82), UINT8_C(123), UINT8_C(210), UINT8_C(159), UINT8_C(175), UINT8_C(187), UINT8_C( 33), UINT8_C(134), UINT8_C(156), UINT8_C(243), UINT8_C(191), UINT8_C(139), UINT8_C(173), UINT8_C( 70), UINT8_C(113), UINT8_C( 30), UINT8_C(184), UINT8_C( 82), UINT8_C(234), UINT8_C(177), UINT8_C(234), UINT8_C(131), UINT8_C(180), UINT8_C( 12), UINT8_C( 47), UINT8_C(213), UINT8_C( 54), UINT8_C(222), UINT8_C(114), UINT8_C(251), UINT8_C(236), UINT8_C( 57), UINT8_C(205), UINT8_C(187), UINT8_C( 48), UINT8_C(112), UINT8_C( 34), UINT8_C( 49), UINT8_C( 95), UINT8_C(198)), simde_x_mm512_set_epu8(UINT8_C(116), UINT8_C(101), UINT8_C(212), UINT8_C(199), UINT8_C( 88), UINT8_C(165), UINT8_C(253), UINT8_C( 88), UINT8_C(138), UINT8_C( 27), UINT8_C(153), UINT8_C(155), UINT8_C(248), UINT8_C(175), UINT8_C(152), UINT8_C(246), UINT8_C( 17), UINT8_C(224), UINT8_C( 49), UINT8_C(127), UINT8_C(200), UINT8_C( 46), UINT8_C( 58), UINT8_C(159), UINT8_C(177), UINT8_C( 24), UINT8_C(139), UINT8_C(240), UINT8_C( 45), UINT8_C(115), UINT8_C(179), UINT8_C(230), UINT8_C(249), UINT8_C(217), UINT8_C(202), UINT8_C( 21), UINT8_C(134), UINT8_C(111), UINT8_C( 79), UINT8_C(153), UINT8_C(130), UINT8_C( 83), UINT8_C(196), UINT8_C(101), UINT8_C(151), UINT8_C(117), UINT8_C(152), UINT8_C(155), UINT8_C(116), UINT8_C(201), UINT8_C(241), UINT8_C( 71), UINT8_C( 24), UINT8_C(105), UINT8_C(212), UINT8_C(191), UINT8_C( 1), UINT8_C(252), UINT8_C( 15), UINT8_C( 49), UINT8_C(105), UINT8_C(159), UINT8_C(109), UINT8_C( 31)), simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(213), UINT8_C(228), UINT8_C(219), UINT8_C(255), UINT8_C(188), UINT8_C(255), UINT8_C(255), UINT8_C(230), UINT8_C(132), UINT8_C(255), UINT8_C(226), UINT8_C(255), UINT8_C(255), UINT8_C(190), UINT8_C(255), UINT8_C(103), UINT8_C(255), UINT8_C(146), UINT8_C(255), UINT8_C(255), UINT8_C(139), UINT8_C(121), UINT8_C(255), UINT8_C(255), UINT8_C(147), UINT8_C(255), UINT8_C(255), UINT8_C(220), UINT8_C(255), UINT8_C(212), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(160), UINT8_C(255), UINT8_C(181), UINT8_C(192), UINT8_C(183), UINT8_C(255), UINT8_C(165), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(248), UINT8_C(255), UINT8_C(167), UINT8_C(163), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(138), UINT8_C(255), UINT8_C(255), UINT8_C(248), UINT8_C(206), UINT8_C(255), UINT8_C( 63), UINT8_C(161), UINT8_C(139), UINT8_C(208), UINT8_C(204), UINT8_C(229)) }, { simde_x_mm512_set_epu8(UINT8_C(239), UINT8_C(174), UINT8_C( 81), UINT8_C( 89), UINT8_C( 63), UINT8_C(160), UINT8_C(219), UINT8_C(204), UINT8_C(161), UINT8_C( 4), UINT8_C(134), UINT8_C(137), UINT8_C( 48), UINT8_C( 33), UINT8_C(178), UINT8_C(122), UINT8_C( 99), UINT8_C(167), UINT8_C( 95), UINT8_C(109), UINT8_C( 38), UINT8_C(191), UINT8_C( 3), UINT8_C( 48), UINT8_C(143), UINT8_C( 51), UINT8_C( 81), UINT8_C( 76), UINT8_C(251), UINT8_C(204), UINT8_C(198), UINT8_C( 1), UINT8_C(175), UINT8_C(123), UINT8_C( 24), UINT8_C(237), UINT8_C(190), UINT8_C( 62), UINT8_C( 87), UINT8_C(255), UINT8_C(119), UINT8_C(202), UINT8_C( 4), UINT8_C( 40), UINT8_C(152), UINT8_C(128), UINT8_C(116), UINT8_C( 72), UINT8_C(245), UINT8_C(148), UINT8_C( 39), UINT8_C(106), UINT8_C(195), UINT8_C(186), UINT8_C(241), UINT8_C(178), UINT8_C( 68), UINT8_C(210), UINT8_C( 61), UINT8_C(218), UINT8_C(116), UINT8_C( 98), UINT8_C( 41), UINT8_C( 22)), simde_x_mm512_set_epu8(UINT8_C( 3), UINT8_C(245), UINT8_C( 8), UINT8_C(179), UINT8_C(242), UINT8_C( 19), UINT8_C(107), UINT8_C(170), UINT8_C(178), UINT8_C(175), UINT8_C(174), UINT8_C(170), UINT8_C( 72), UINT8_C(195), UINT8_C(199), UINT8_C( 66), UINT8_C(182), UINT8_C(183), UINT8_C( 58), UINT8_C(245), UINT8_C( 62), UINT8_C( 31), UINT8_C( 93), UINT8_C( 74), UINT8_C(114), UINT8_C( 92), UINT8_C(199), UINT8_C( 53), UINT8_C( 94), UINT8_C(185), UINT8_C(107), UINT8_C(124), UINT8_C(160), UINT8_C(193), UINT8_C( 17), UINT8_C( 65), UINT8_C(242), UINT8_C( 55), UINT8_C(163), UINT8_C(102), UINT8_C( 59), UINT8_C(173), UINT8_C(244), UINT8_C(232), UINT8_C(182), UINT8_C(139), UINT8_C(254), UINT8_C( 81), UINT8_C(228), UINT8_C(175), UINT8_C(104), UINT8_C(167), UINT8_C( 38), UINT8_C(114), UINT8_C(184), UINT8_C(118), UINT8_C(167), UINT8_C( 58), UINT8_C(153), UINT8_C(103), UINT8_C(204), UINT8_C(126), UINT8_C(111), UINT8_C( 63)), simde_x_mm512_set_epu8(UINT8_C(242), UINT8_C(255), UINT8_C( 89), UINT8_C(255), UINT8_C(255), UINT8_C(179), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(179), UINT8_C(255), UINT8_C(255), UINT8_C(120), UINT8_C(228), UINT8_C(255), UINT8_C(188), UINT8_C(255), UINT8_C(255), UINT8_C(153), UINT8_C(255), UINT8_C(100), UINT8_C(222), UINT8_C( 96), UINT8_C(122), UINT8_C(255), UINT8_C(143), UINT8_C(255), UINT8_C(129), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(125), UINT8_C(255), UINT8_C(255), UINT8_C( 41), UINT8_C(255), UINT8_C(255), UINT8_C(117), UINT8_C(250), UINT8_C(255), UINT8_C(178), UINT8_C(255), UINT8_C(248), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(153), UINT8_C(255), UINT8_C(255), UINT8_C(143), UINT8_C(255), UINT8_C(233), UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(235), UINT8_C(255), UINT8_C(214), UINT8_C(255), UINT8_C(255), UINT8_C(224), UINT8_C(152), UINT8_C( 85)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_adds_epu8(test_vec[i].a, test_vec[i].b); simde_assert_m512i_u8(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_adds_epu8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i src; simde__mmask64 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_x_mm512_set_epu8(UINT8_C( 92), UINT8_C( 116), UINT8_C( 178), UINT8_C( 237), UINT8_C( 183), UINT8_C( 22), UINT8_C( 190), UINT8_C( 227), UINT8_C( 55), UINT8_C( 78), UINT8_C( 211), UINT8_C( 137), UINT8_C( 30), UINT8_C( 227), UINT8_C( 233), UINT8_C( 89), UINT8_C( 15), UINT8_C( 119), UINT8_C( 168), UINT8_C( 109), UINT8_C( 240), UINT8_C( 246), UINT8_C( 0), UINT8_C( 238), UINT8_C( 1), UINT8_C( 116), UINT8_C( 62), UINT8_C( 183), UINT8_C( 134), UINT8_C( 0), UINT8_C( 111), UINT8_C( 95), UINT8_C( 236), UINT8_C( 3), UINT8_C( 122), UINT8_C( 135), UINT8_C( 13), UINT8_C( 25), UINT8_C( 221), UINT8_C( 129), UINT8_C( 82), UINT8_C( 90), UINT8_C( 53), UINT8_C( 123), UINT8_C( 73), UINT8_C( 108), UINT8_C( 238), UINT8_C( 15), UINT8_C( 81), UINT8_C( 229), UINT8_C( 102), UINT8_C( 118), UINT8_C( 39), UINT8_C( 179), UINT8_C( 45), UINT8_C( 81), UINT8_C( 239), UINT8_C( 228), UINT8_C( 67), UINT8_C( 138), UINT8_C( 79), UINT8_C( 143), UINT8_C( 134), UINT8_C( 124)), UINT64_C(10224647434006242820), simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C( 148), UINT8_C( 135), UINT8_C( 141), UINT8_C( 197), UINT8_C( 178), UINT8_C( 145), UINT8_C( 56), UINT8_C( 9), UINT8_C( 135), UINT8_C( 120), UINT8_C( 220), UINT8_C( 36), UINT8_C( 153), UINT8_C( 152), UINT8_C( 25), UINT8_C( 145), UINT8_C( 193), UINT8_C( 221), UINT8_C( 136), UINT8_C( 28), UINT8_C( 212), UINT8_C( 230), UINT8_C( 170), UINT8_C( 243), UINT8_C( 53), UINT8_C( 168), UINT8_C( 149), UINT8_C( 68), UINT8_C( 42), UINT8_C( 138), UINT8_C( 111), UINT8_C( 54), UINT8_C( 198), UINT8_C( 243), UINT8_C( 27), UINT8_C( 23), UINT8_C( 41), UINT8_C( 137), UINT8_C( 44), UINT8_C( 7), UINT8_C( 136), UINT8_C( 32), UINT8_C( 213), UINT8_C( 114), UINT8_C( 184), UINT8_C( 73), UINT8_C( 160), UINT8_C( 96), UINT8_C( 110), UINT8_C( 175), UINT8_C( 180), UINT8_C( 103), UINT8_C( 156), UINT8_C( 234), UINT8_C( 18), UINT8_C( 115), UINT8_C( 54), UINT8_C( 216), UINT8_C( 125), UINT8_C( 110), UINT8_C( 31), UINT8_C( 51), UINT8_C( 152)), simde_x_mm512_set_epu8(UINT8_C( 242), UINT8_C( 85), UINT8_C( 176), UINT8_C( 80), UINT8_C( 48), UINT8_C( 93), UINT8_C( 79), UINT8_C( 127), UINT8_C( 16), UINT8_C( 41), UINT8_C( 54), UINT8_C( 140), UINT8_C( 17), UINT8_C( 42), UINT8_C( 170), UINT8_C( 38), UINT8_C( 138), UINT8_C( 200), UINT8_C( 60), UINT8_C( 19), UINT8_C( 156), UINT8_C( 149), UINT8_C( 105), UINT8_C( 180), UINT8_C( 10), UINT8_C( 247), UINT8_C( 244), UINT8_C( 200), UINT8_C( 185), UINT8_C( 96), UINT8_C( 6), UINT8_C( 24), UINT8_C( 69), UINT8_C( 73), UINT8_C( 229), UINT8_C( 3), UINT8_C( 161), UINT8_C( 50), UINT8_C( 189), UINT8_C( 217), UINT8_C( 97), UINT8_C( 62), UINT8_C( 101), UINT8_C( 56), UINT8_C( 177), UINT8_C( 83), UINT8_C( 157), UINT8_C( 200), UINT8_C( 239), UINT8_C( 200), UINT8_C( 248), UINT8_C( 240), UINT8_C( 84), UINT8_C( 161), UINT8_C( 183), UINT8_C( 54), UINT8_C( 125), UINT8_C( 85), UINT8_C( 78), UINT8_C( 191), UINT8_C( 4), UINT8_C( 113), UINT8_C( 240), UINT8_C( 203)), simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 116), UINT8_C( 178), UINT8_C( 237), UINT8_C( 245), UINT8_C( 255), UINT8_C( 190), UINT8_C( 183), UINT8_C( 25), UINT8_C( 176), UINT8_C( 174), UINT8_C( 137), UINT8_C( 30), UINT8_C( 195), UINT8_C( 233), UINT8_C( 63), UINT8_C( 15), UINT8_C( 119), UINT8_C( 255), UINT8_C( 155), UINT8_C( 184), UINT8_C( 255), UINT8_C( 255), UINT8_C( 238), UINT8_C( 253), UINT8_C( 116), UINT8_C( 255), UINT8_C( 183), UINT8_C( 253), UINT8_C( 0), UINT8_C( 144), UINT8_C( 135), UINT8_C( 236), UINT8_C( 3), UINT8_C( 255), UINT8_C( 30), UINT8_C( 13), UINT8_C( 25), UINT8_C( 221), UINT8_C( 255), UINT8_C( 104), UINT8_C( 90), UINT8_C( 53), UINT8_C( 123), UINT8_C( 255), UINT8_C( 255), UINT8_C( 238), UINT8_C( 255), UINT8_C( 81), UINT8_C( 229), UINT8_C( 255), UINT8_C( 118), UINT8_C( 39), UINT8_C( 255), UINT8_C( 255), UINT8_C( 81), UINT8_C( 239), UINT8_C( 228), UINT8_C( 67), UINT8_C( 138), UINT8_C( 79), UINT8_C( 144), UINT8_C( 134), UINT8_C( 124)) }, { simde_x_mm512_set_epu8(UINT8_C( 133), UINT8_C( 156), UINT8_C( 217), UINT8_C( 212), UINT8_C( 22), UINT8_C( 112), UINT8_C( 16), UINT8_C( 15), UINT8_C( 152), UINT8_C( 154), UINT8_C( 102), UINT8_C( 161), UINT8_C( 69), UINT8_C( 13), UINT8_C( 235), UINT8_C( 45), UINT8_C( 62), UINT8_C( 136), UINT8_C( 145), UINT8_C( 32), UINT8_C( 149), UINT8_C( 226), UINT8_C( 99), UINT8_C( 192), UINT8_C( 8), UINT8_C( 214), UINT8_C( 81), UINT8_C( 222), UINT8_C( 210), UINT8_C( 26), UINT8_C( 31), UINT8_C( 254), UINT8_C( 68), UINT8_C( 249), UINT8_C( 185), UINT8_C( 46), UINT8_C( 235), UINT8_C( 183), UINT8_C( 21), UINT8_C( 83), UINT8_C( 148), UINT8_C( 159), UINT8_C( 187), UINT8_C( 73), UINT8_C( 57), UINT8_C( 219), UINT8_C( 21), UINT8_C( 82), UINT8_C( 137), UINT8_C( 130), UINT8_C( 126), UINT8_C( 91), UINT8_C( 115), UINT8_C( 31), UINT8_C( 177), UINT8_C( 28), UINT8_C( 150), UINT8_C( 238), UINT8_C( 65), UINT8_C( 152), UINT8_C( 81), UINT8_C( 38), UINT8_C( 172), UINT8_C( 254)), UINT64_C( 4597426592773770833), simde_x_mm512_set_epu8(UINT8_C( 74), UINT8_C( 72), UINT8_C( 252), UINT8_C( 28), UINT8_C( 141), UINT8_C( 93), UINT8_C( 102), UINT8_C( 44), UINT8_C( 153), UINT8_C( 227), UINT8_C( 206), UINT8_C( 48), UINT8_C( 160), UINT8_C( 206), UINT8_C( 46), UINT8_C( 191), UINT8_C( 4), UINT8_C( 43), UINT8_C( 181), UINT8_C( 97), UINT8_C( 230), UINT8_C( 153), UINT8_C( 71), UINT8_C( 149), UINT8_C( 91), UINT8_C( 45), UINT8_C( 245), UINT8_C( 47), UINT8_C( 29), UINT8_C( 25), UINT8_C( 26), UINT8_C( 247), UINT8_C( 10), UINT8_C( 36), UINT8_C( 177), UINT8_C( 203), UINT8_C( 41), UINT8_C( 1), UINT8_C( 233), UINT8_C( 193), UINT8_C( 129), UINT8_C( 68), UINT8_C( 48), UINT8_C( 36), UINT8_C( 89), UINT8_C( 144), UINT8_C( 225), UINT8_C( 120), UINT8_C( 35), UINT8_C( 62), UINT8_C( 235), UINT8_C( 142), UINT8_C( 152), UINT8_C( 57), UINT8_C( 42), UINT8_C( 145), UINT8_C( 94), UINT8_C( 193), UINT8_C( 247), UINT8_C( 64), UINT8_C( 191), UINT8_C( 254), UINT8_C( 110), UINT8_C( 248)), simde_x_mm512_set_epu8(UINT8_C( 44), UINT8_C( 164), UINT8_C( 225), UINT8_C( 26), UINT8_C( 157), UINT8_C( 203), UINT8_C( 117), UINT8_C( 18), UINT8_C( 193), UINT8_C( 45), UINT8_C( 12), UINT8_C( 24), UINT8_C( 148), UINT8_C( 18), UINT8_C( 196), UINT8_C( 28), UINT8_C( 50), UINT8_C( 245), UINT8_C( 188), UINT8_C( 225), UINT8_C( 105), UINT8_C( 150), UINT8_C( 98), UINT8_C( 51), UINT8_C( 58), UINT8_C( 103), UINT8_C( 111), UINT8_C( 129), UINT8_C( 68), UINT8_C( 200), UINT8_C( 124), UINT8_C( 137), UINT8_C( 74), UINT8_C( 194), UINT8_C( 140), UINT8_C( 37), UINT8_C( 244), UINT8_C( 114), UINT8_C( 0), UINT8_C( 61), UINT8_C( 103), UINT8_C( 252), UINT8_C( 151), UINT8_C( 188), UINT8_C( 39), UINT8_C( 156), UINT8_C( 163), UINT8_C( 11), UINT8_C( 176), UINT8_C( 237), UINT8_C( 234), UINT8_C( 217), UINT8_C( 127), UINT8_C( 218), UINT8_C( 131), UINT8_C( 145), UINT8_C( 84), UINT8_C( 160), UINT8_C( 87), UINT8_C( 234), UINT8_C( 251), UINT8_C( 253), UINT8_C( 129), UINT8_C( 41)), simde_x_mm512_set_epu8(UINT8_C( 133), UINT8_C( 156), UINT8_C( 255), UINT8_C( 54), UINT8_C( 255), UINT8_C( 255), UINT8_C( 219), UINT8_C( 62), UINT8_C( 255), UINT8_C( 255), UINT8_C( 102), UINT8_C( 161), UINT8_C( 255), UINT8_C( 224), UINT8_C( 235), UINT8_C( 219), UINT8_C( 62), UINT8_C( 255), UINT8_C( 145), UINT8_C( 255), UINT8_C( 149), UINT8_C( 255), UINT8_C( 169), UINT8_C( 200), UINT8_C( 8), UINT8_C( 214), UINT8_C( 255), UINT8_C( 222), UINT8_C( 210), UINT8_C( 26), UINT8_C( 31), UINT8_C( 254), UINT8_C( 84), UINT8_C( 249), UINT8_C( 255), UINT8_C( 240), UINT8_C( 255), UINT8_C( 115), UINT8_C( 233), UINT8_C( 254), UINT8_C( 148), UINT8_C( 159), UINT8_C( 199), UINT8_C( 224), UINT8_C( 57), UINT8_C( 255), UINT8_C( 255), UINT8_C( 131), UINT8_C( 137), UINT8_C( 130), UINT8_C( 126), UINT8_C( 91), UINT8_C( 255), UINT8_C( 255), UINT8_C( 173), UINT8_C( 28), UINT8_C( 150), UINT8_C( 255), UINT8_C( 65), UINT8_C( 255), UINT8_C( 81), UINT8_C( 38), UINT8_C( 172), UINT8_C( 255)) }, { simde_x_mm512_set_epu8(UINT8_C( 226), UINT8_C( 219), UINT8_C( 51), UINT8_C( 220), UINT8_C( 8), UINT8_C( 52), UINT8_C( 97), UINT8_C( 123), UINT8_C( 207), UINT8_C( 132), UINT8_C( 95), UINT8_C( 173), UINT8_C( 70), UINT8_C( 206), UINT8_C( 195), UINT8_C( 25), UINT8_C( 159), UINT8_C( 28), UINT8_C( 198), UINT8_C( 11), UINT8_C( 242), UINT8_C( 126), UINT8_C( 81), UINT8_C( 45), UINT8_C( 233), UINT8_C( 120), UINT8_C( 173), UINT8_C( 240), UINT8_C( 7), UINT8_C( 51), UINT8_C( 199), UINT8_C( 206), UINT8_C( 235), UINT8_C( 98), UINT8_C( 88), UINT8_C( 0), UINT8_C( 190), UINT8_C( 3), UINT8_C( 124), UINT8_C( 143), UINT8_C( 50), UINT8_C( 88), UINT8_C( 171), UINT8_C( 163), UINT8_C( 212), UINT8_C( 243), UINT8_C( 162), UINT8_C( 17), UINT8_C( 254), UINT8_C( 79), UINT8_C( 140), UINT8_C( 43), UINT8_C( 179), UINT8_C( 131), UINT8_C( 233), UINT8_C( 136), UINT8_C( 96), UINT8_C( 192), UINT8_C( 233), UINT8_C( 210), UINT8_C( 227), UINT8_C( 185), UINT8_C( 71), UINT8_C( 90)), UINT64_C(12627002542648829104), simde_x_mm512_set_epu8(UINT8_C( 56), UINT8_C( 211), UINT8_C( 148), UINT8_C( 237), UINT8_C( 132), UINT8_C( 229), UINT8_C( 22), UINT8_C( 126), UINT8_C( 150), UINT8_C( 188), UINT8_C( 196), UINT8_C( 8), UINT8_C( 60), UINT8_C( 93), UINT8_C( 223), UINT8_C( 229), UINT8_C( 249), UINT8_C( 27), UINT8_C( 134), UINT8_C( 218), UINT8_C( 23), UINT8_C( 6), UINT8_C( 45), UINT8_C( 235), UINT8_C( 233), UINT8_C( 155), UINT8_C( 116), UINT8_C( 127), UINT8_C( 96), UINT8_C( 40), UINT8_C( 159), UINT8_C( 40), UINT8_C( 86), UINT8_C( 212), UINT8_C( 70), UINT8_C( 185), UINT8_C( 62), UINT8_C( 235), UINT8_C( 66), UINT8_C( 68), UINT8_C( 169), UINT8_C( 195), UINT8_C( 48), UINT8_C( 186), UINT8_C( 18), UINT8_C( 178), UINT8_C( 158), UINT8_C( 117), UINT8_C( 74), UINT8_C( 32), UINT8_C( 93), UINT8_C( 125), UINT8_C( 209), UINT8_C( 196), UINT8_C( 170), UINT8_C( 117), UINT8_C( 122), UINT8_C( 202), UINT8_C( 50), UINT8_C( 123), UINT8_C( 225), UINT8_C( 182), UINT8_C( 192), UINT8_C( 54)), simde_x_mm512_set_epu8(UINT8_C( 115), UINT8_C( 51), UINT8_C( 165), UINT8_C( 56), UINT8_C( 64), UINT8_C( 217), UINT8_C( 137), UINT8_C( 228), UINT8_C( 202), UINT8_C( 28), UINT8_C( 54), UINT8_C( 248), UINT8_C( 202), UINT8_C( 128), UINT8_C( 228), UINT8_C( 185), UINT8_C( 107), UINT8_C( 190), UINT8_C( 142), UINT8_C( 168), UINT8_C( 34), UINT8_C( 173), UINT8_C( 235), UINT8_C( 192), UINT8_C( 121), UINT8_C( 236), UINT8_C( 167), UINT8_C( 162), UINT8_C( 112), UINT8_C( 229), UINT8_C( 81), UINT8_C( 202), UINT8_C( 192), UINT8_C( 142), UINT8_C( 48), UINT8_C( 167), UINT8_C( 195), UINT8_C( 26), UINT8_C( 43), UINT8_C( 29), UINT8_C( 0), UINT8_C( 64), UINT8_C( 123), UINT8_C( 189), UINT8_C( 15), UINT8_C( 120), UINT8_C( 36), UINT8_C( 40), UINT8_C( 106), UINT8_C( 138), UINT8_C( 148), UINT8_C( 198), UINT8_C( 26), UINT8_C( 145), UINT8_C( 63), UINT8_C( 158), UINT8_C( 243), UINT8_C( 244), UINT8_C( 132), UINT8_C( 96), UINT8_C( 243), UINT8_C( 158), UINT8_C( 99), UINT8_C( 243)), simde_x_mm512_set_epu8(UINT8_C( 171), UINT8_C( 219), UINT8_C( 255), UINT8_C( 220), UINT8_C( 196), UINT8_C( 255), UINT8_C( 159), UINT8_C( 255), UINT8_C( 207), UINT8_C( 132), UINT8_C( 250), UINT8_C( 255), UINT8_C( 255), UINT8_C( 221), UINT8_C( 195), UINT8_C( 25), UINT8_C( 159), UINT8_C( 28), UINT8_C( 198), UINT8_C( 255), UINT8_C( 57), UINT8_C( 179), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 240), UINT8_C( 208), UINT8_C( 51), UINT8_C( 199), UINT8_C( 242), UINT8_C( 235), UINT8_C( 255), UINT8_C( 118), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 124), UINT8_C( 143), UINT8_C( 169), UINT8_C( 88), UINT8_C( 171), UINT8_C( 163), UINT8_C( 33), UINT8_C( 243), UINT8_C( 162), UINT8_C( 157), UINT8_C( 180), UINT8_C( 79), UINT8_C( 241), UINT8_C( 43), UINT8_C( 179), UINT8_C( 255), UINT8_C( 233), UINT8_C( 136), UINT8_C( 255), UINT8_C( 192), UINT8_C( 182), UINT8_C( 219), UINT8_C( 227), UINT8_C( 185), UINT8_C( 71), UINT8_C( 90)) }, { simde_x_mm512_set_epu8(UINT8_C( 72), UINT8_C( 45), UINT8_C( 120), UINT8_C( 251), UINT8_C( 147), UINT8_C( 62), UINT8_C( 17), UINT8_C( 31), UINT8_C( 226), UINT8_C( 198), UINT8_C( 56), UINT8_C( 21), UINT8_C( 72), UINT8_C( 182), UINT8_C( 216), UINT8_C( 120), UINT8_C( 95), UINT8_C( 108), UINT8_C( 32), UINT8_C( 64), UINT8_C( 128), UINT8_C( 102), UINT8_C( 235), UINT8_C( 28), UINT8_C( 105), UINT8_C( 52), UINT8_C( 85), UINT8_C( 152), UINT8_C( 57), UINT8_C( 225), UINT8_C( 218), UINT8_C( 132), UINT8_C( 149), UINT8_C( 254), UINT8_C( 55), UINT8_C( 46), UINT8_C( 185), UINT8_C( 77), UINT8_C( 18), UINT8_C( 70), UINT8_C( 89), UINT8_C( 125), UINT8_C( 214), UINT8_C( 131), UINT8_C( 121), UINT8_C( 245), UINT8_C( 187), UINT8_C( 197), UINT8_C( 203), UINT8_C( 34), UINT8_C( 9), UINT8_C( 64), UINT8_C( 195), UINT8_C( 231), UINT8_C( 141), UINT8_C( 100), UINT8_C( 65), UINT8_C( 8), UINT8_C( 69), UINT8_C( 248), UINT8_C( 241), UINT8_C( 205), UINT8_C( 1), UINT8_C( 90)), UINT64_C(14515151237088493607), simde_x_mm512_set_epu8(UINT8_C( 230), UINT8_C( 247), UINT8_C( 66), UINT8_C( 1), UINT8_C( 243), UINT8_C( 60), UINT8_C( 137), UINT8_C( 173), UINT8_C( 134), UINT8_C( 192), UINT8_C( 173), UINT8_C( 182), UINT8_C( 119), UINT8_C( 248), UINT8_C( 12), UINT8_C( 113), UINT8_C( 244), UINT8_C( 172), UINT8_C( 6), UINT8_C( 69), UINT8_C( 2), UINT8_C( 181), UINT8_C( 222), UINT8_C( 130), UINT8_C( 3), UINT8_C( 128), UINT8_C( 247), UINT8_C( 24), UINT8_C( 11), UINT8_C( 162), UINT8_C( 224), UINT8_C( 110), UINT8_C( 33), UINT8_C( 232), UINT8_C( 125), UINT8_C( 35), UINT8_C( 153), UINT8_C( 208), UINT8_C( 234), UINT8_C( 38), UINT8_C( 175), UINT8_C( 9), UINT8_C( 245), UINT8_C( 132), UINT8_C( 71), UINT8_C( 31), UINT8_C( 214), UINT8_C( 93), UINT8_C( 67), UINT8_C( 45), UINT8_C( 51), UINT8_C( 164), UINT8_C( 126), UINT8_C( 108), UINT8_C( 133), UINT8_C( 185), UINT8_C( 113), UINT8_C( 32), UINT8_C( 71), UINT8_C( 55), UINT8_C( 230), UINT8_C( 82), UINT8_C( 175), UINT8_C( 236)), simde_x_mm512_set_epu8(UINT8_C( 131), UINT8_C( 121), UINT8_C( 128), UINT8_C( 103), UINT8_C( 0), UINT8_C( 101), UINT8_C( 215), UINT8_C( 89), UINT8_C( 173), UINT8_C( 191), UINT8_C( 9), UINT8_C( 249), UINT8_C( 193), UINT8_C( 13), UINT8_C( 105), UINT8_C( 92), UINT8_C( 238), UINT8_C( 235), UINT8_C( 154), UINT8_C( 142), UINT8_C( 74), UINT8_C( 121), UINT8_C( 211), UINT8_C( 52), UINT8_C( 193), UINT8_C( 163), UINT8_C( 98), UINT8_C( 106), UINT8_C( 147), UINT8_C( 209), UINT8_C( 37), UINT8_C( 70), UINT8_C( 100), UINT8_C( 121), UINT8_C( 18), UINT8_C( 28), UINT8_C( 139), UINT8_C( 107), UINT8_C( 3), UINT8_C( 194), UINT8_C( 42), UINT8_C( 72), UINT8_C( 91), UINT8_C( 86), UINT8_C( 184), UINT8_C( 9), UINT8_C( 176), UINT8_C( 118), UINT8_C( 122), UINT8_C( 148), UINT8_C( 186), UINT8_C( 193), UINT8_C( 56), UINT8_C( 71), UINT8_C( 242), UINT8_C( 49), UINT8_C( 183), UINT8_C( 53), UINT8_C( 227), UINT8_C( 3), UINT8_C( 183), UINT8_C( 43), UINT8_C( 234), UINT8_C( 85)), simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 255), UINT8_C( 120), UINT8_C( 251), UINT8_C( 243), UINT8_C( 62), UINT8_C( 17), UINT8_C( 255), UINT8_C( 226), UINT8_C( 255), UINT8_C( 182), UINT8_C( 255), UINT8_C( 72), UINT8_C( 182), UINT8_C( 216), UINT8_C( 120), UINT8_C( 95), UINT8_C( 108), UINT8_C( 160), UINT8_C( 64), UINT8_C( 76), UINT8_C( 255), UINT8_C( 235), UINT8_C( 182), UINT8_C( 105), UINT8_C( 52), UINT8_C( 255), UINT8_C( 152), UINT8_C( 57), UINT8_C( 255), UINT8_C( 218), UINT8_C( 180), UINT8_C( 149), UINT8_C( 255), UINT8_C( 55), UINT8_C( 46), UINT8_C( 185), UINT8_C( 77), UINT8_C( 237), UINT8_C( 232), UINT8_C( 217), UINT8_C( 125), UINT8_C( 255), UINT8_C( 218), UINT8_C( 255), UINT8_C( 245), UINT8_C( 255), UINT8_C( 211), UINT8_C( 203), UINT8_C( 193), UINT8_C( 9), UINT8_C( 64), UINT8_C( 195), UINT8_C( 231), UINT8_C( 141), UINT8_C( 100), UINT8_C( 65), UINT8_C( 8), UINT8_C( 255), UINT8_C( 248), UINT8_C( 241), UINT8_C( 125), UINT8_C( 255), UINT8_C( 255)) }, { simde_x_mm512_set_epu8(UINT8_C( 209), UINT8_C( 84), UINT8_C( 130), UINT8_C( 192), UINT8_C( 14), UINT8_C( 11), UINT8_C( 37), UINT8_C( 233), UINT8_C( 67), UINT8_C( 124), UINT8_C( 58), UINT8_C( 162), UINT8_C( 30), UINT8_C( 223), UINT8_C( 70), UINT8_C( 232), UINT8_C( 38), UINT8_C( 159), UINT8_C( 200), UINT8_C( 196), UINT8_C( 197), UINT8_C( 65), UINT8_C( 182), UINT8_C( 45), UINT8_C( 245), UINT8_C( 55), UINT8_C( 174), UINT8_C( 12), UINT8_C( 106), UINT8_C( 22), UINT8_C( 132), UINT8_C( 252), UINT8_C( 2), UINT8_C( 175), UINT8_C( 14), UINT8_C( 90), UINT8_C( 156), UINT8_C( 134), UINT8_C( 221), UINT8_C( 81), UINT8_C( 242), UINT8_C( 214), UINT8_C( 125), UINT8_C( 131), UINT8_C( 199), UINT8_C( 90), UINT8_C( 247), UINT8_C( 63), UINT8_C( 53), UINT8_C( 77), UINT8_C( 63), UINT8_C( 172), UINT8_C( 27), UINT8_C( 22), UINT8_C( 3), UINT8_C( 219), UINT8_C( 65), UINT8_C( 118), UINT8_C( 130), UINT8_C( 97), UINT8_C( 109), UINT8_C( 7), UINT8_C( 142), UINT8_C( 181)), UINT64_C( 8707623543556880126), simde_x_mm512_set_epu8(UINT8_C( 84), UINT8_C( 185), UINT8_C( 8), UINT8_C( 12), UINT8_C( 245), UINT8_C( 180), UINT8_C( 62), UINT8_C( 93), UINT8_C( 181), UINT8_C( 179), UINT8_C( 172), UINT8_C( 148), UINT8_C( 221), UINT8_C( 14), UINT8_C( 196), UINT8_C( 18), UINT8_C( 23), UINT8_C( 196), UINT8_C( 193), UINT8_C( 142), UINT8_C( 201), UINT8_C( 75), UINT8_C( 157), UINT8_C( 201), UINT8_C( 58), UINT8_C( 76), UINT8_C( 154), UINT8_C( 138), UINT8_C( 226), UINT8_C( 39), UINT8_C( 119), UINT8_C( 85), UINT8_C( 248), UINT8_C( 184), UINT8_C( 196), UINT8_C( 162), UINT8_C( 144), UINT8_C( 119), UINT8_C( 124), UINT8_C( 76), UINT8_C( 214), UINT8_C( 132), UINT8_C( 54), UINT8_C( 74), UINT8_C( 164), UINT8_C( 99), UINT8_C( 79), UINT8_C( 253), UINT8_C( 61), UINT8_C( 167), UINT8_C( 84), UINT8_C( 162), UINT8_C( 31), UINT8_C( 140), UINT8_C( 189), UINT8_C( 154), UINT8_C( 184), UINT8_C( 165), UINT8_C( 151), UINT8_C( 148), UINT8_C( 212), UINT8_C( 74), UINT8_C( 228), UINT8_C( 124)), simde_x_mm512_set_epu8(UINT8_C( 1), UINT8_C( 75), UINT8_C( 21), UINT8_C( 220), UINT8_C( 130), UINT8_C( 122), UINT8_C( 71), UINT8_C( 76), UINT8_C( 28), UINT8_C( 200), UINT8_C( 32), UINT8_C( 101), UINT8_C( 149), UINT8_C( 145), UINT8_C( 168), UINT8_C( 237), UINT8_C( 179), UINT8_C( 19), UINT8_C( 235), UINT8_C( 145), UINT8_C( 188), UINT8_C( 82), UINT8_C( 138), UINT8_C( 180), UINT8_C( 47), UINT8_C( 127), UINT8_C( 62), UINT8_C( 240), UINT8_C( 10), UINT8_C( 242), UINT8_C( 156), UINT8_C( 86), UINT8_C( 29), UINT8_C( 107), UINT8_C( 56), UINT8_C( 21), UINT8_C( 24), UINT8_C( 68), UINT8_C( 160), UINT8_C( 64), UINT8_C( 48), UINT8_C( 13), UINT8_C( 173), UINT8_C( 4), UINT8_C( 253), UINT8_C( 192), UINT8_C( 17), UINT8_C( 141), UINT8_C( 21), UINT8_C( 108), UINT8_C( 125), UINT8_C( 196), UINT8_C( 184), UINT8_C( 74), UINT8_C( 251), UINT8_C( 198), UINT8_C( 215), UINT8_C( 22), UINT8_C( 141), UINT8_C( 102), UINT8_C( 59), UINT8_C( 176), UINT8_C( 241), UINT8_C( 193)), simde_x_mm512_set_epu8(UINT8_C( 209), UINT8_C( 255), UINT8_C( 29), UINT8_C( 232), UINT8_C( 255), UINT8_C( 11), UINT8_C( 37), UINT8_C( 233), UINT8_C( 209), UINT8_C( 255), UINT8_C( 58), UINT8_C( 249), UINT8_C( 30), UINT8_C( 159), UINT8_C( 255), UINT8_C( 255), UINT8_C( 202), UINT8_C( 159), UINT8_C( 255), UINT8_C( 255), UINT8_C( 197), UINT8_C( 65), UINT8_C( 182), UINT8_C( 255), UINT8_C( 245), UINT8_C( 203), UINT8_C( 216), UINT8_C( 255), UINT8_C( 236), UINT8_C( 22), UINT8_C( 255), UINT8_C( 252), UINT8_C( 2), UINT8_C( 255), UINT8_C( 14), UINT8_C( 183), UINT8_C( 156), UINT8_C( 187), UINT8_C( 255), UINT8_C( 140), UINT8_C( 255), UINT8_C( 214), UINT8_C( 125), UINT8_C( 131), UINT8_C( 255), UINT8_C( 90), UINT8_C( 247), UINT8_C( 255), UINT8_C( 53), UINT8_C( 77), UINT8_C( 209), UINT8_C( 255), UINT8_C( 27), UINT8_C( 214), UINT8_C( 255), UINT8_C( 219), UINT8_C( 255), UINT8_C( 187), UINT8_C( 255), UINT8_C( 250), UINT8_C( 255), UINT8_C( 250), UINT8_C( 255), UINT8_C( 181)) }, { simde_x_mm512_set_epu8(UINT8_C( 192), UINT8_C( 203), UINT8_C( 214), UINT8_C( 126), UINT8_C( 67), UINT8_C( 50), UINT8_C( 238), UINT8_C( 76), UINT8_C( 237), UINT8_C( 123), UINT8_C( 169), UINT8_C( 106), UINT8_C( 182), UINT8_C( 44), UINT8_C( 117), UINT8_C( 103), UINT8_C( 81), UINT8_C( 122), UINT8_C( 56), UINT8_C( 246), UINT8_C( 67), UINT8_C( 79), UINT8_C( 83), UINT8_C( 218), UINT8_C( 243), UINT8_C( 43), UINT8_C( 27), UINT8_C( 159), UINT8_C( 102), UINT8_C( 126), UINT8_C( 38), UINT8_C( 194), UINT8_C( 232), UINT8_C( 117), UINT8_C( 218), UINT8_C( 163), UINT8_C( 198), UINT8_C( 132), UINT8_C( 181), UINT8_C( 10), UINT8_C( 18), UINT8_C( 182), UINT8_C( 14), UINT8_C( 36), UINT8_C( 249), UINT8_C( 113), UINT8_C( 40), UINT8_C( 48), UINT8_C( 149), UINT8_C( 222), UINT8_C( 181), UINT8_C( 85), UINT8_C( 221), UINT8_C( 140), UINT8_C( 65), UINT8_C( 235), UINT8_C( 15), UINT8_C( 3), UINT8_C( 45), UINT8_C( 21), UINT8_C( 72), UINT8_C( 93), UINT8_C( 108), UINT8_C( 125)), UINT64_C(12576710173448868104), simde_x_mm512_set_epu8(UINT8_C( 90), UINT8_C( 218), UINT8_C( 158), UINT8_C( 186), UINT8_C( 148), UINT8_C( 20), UINT8_C( 43), UINT8_C( 128), UINT8_C( 77), UINT8_C( 108), UINT8_C( 53), UINT8_C( 82), UINT8_C( 206), UINT8_C( 52), UINT8_C( 56), UINT8_C( 58), UINT8_C( 136), UINT8_C( 213), UINT8_C( 114), UINT8_C( 93), UINT8_C( 212), UINT8_C( 241), UINT8_C( 38), UINT8_C( 239), UINT8_C( 146), UINT8_C( 133), UINT8_C( 217), UINT8_C( 114), UINT8_C( 51), UINT8_C( 141), UINT8_C( 182), UINT8_C( 43), UINT8_C( 41), UINT8_C( 220), UINT8_C( 19), UINT8_C( 69), UINT8_C( 60), UINT8_C( 203), UINT8_C( 112), UINT8_C( 108), UINT8_C( 8), UINT8_C( 46), UINT8_C( 221), UINT8_C( 26), UINT8_C( 11), UINT8_C( 42), UINT8_C( 47), UINT8_C( 59), UINT8_C( 199), UINT8_C( 94), UINT8_C( 131), UINT8_C( 132), UINT8_C( 36), UINT8_C( 57), UINT8_C( 68), UINT8_C( 204), UINT8_C( 39), UINT8_C( 50), UINT8_C( 208), UINT8_C( 94), UINT8_C( 53), UINT8_C( 11), UINT8_C( 29), UINT8_C( 65)), simde_x_mm512_set_epu8(UINT8_C( 149), UINT8_C( 120), UINT8_C( 198), UINT8_C( 107), UINT8_C( 224), UINT8_C( 224), UINT8_C( 88), UINT8_C( 213), UINT8_C( 31), UINT8_C( 224), UINT8_C( 192), UINT8_C( 27), UINT8_C( 82), UINT8_C( 166), UINT8_C( 202), UINT8_C( 172), UINT8_C( 226), UINT8_C( 63), UINT8_C( 24), UINT8_C( 81), UINT8_C( 248), UINT8_C( 9), UINT8_C( 221), UINT8_C( 155), UINT8_C( 83), UINT8_C( 107), UINT8_C( 209), UINT8_C( 200), UINT8_C( 57), UINT8_C( 168), UINT8_C( 141), UINT8_C( 236), UINT8_C( 58), UINT8_C( 75), UINT8_C( 56), UINT8_C( 93), UINT8_C( 49), UINT8_C( 43), UINT8_C( 108), UINT8_C( 118), UINT8_C( 177), UINT8_C( 112), UINT8_C( 44), UINT8_C( 144), UINT8_C( 204), UINT8_C( 10), UINT8_C( 28), UINT8_C( 170), UINT8_C( 65), UINT8_C( 62), UINT8_C( 86), UINT8_C( 149), UINT8_C( 24), UINT8_C( 201), UINT8_C( 54), UINT8_C( 146), UINT8_C( 223), UINT8_C( 110), UINT8_C( 140), UINT8_C( 217), UINT8_C( 39), UINT8_C( 144), UINT8_C( 64), UINT8_C( 43)), simde_x_mm512_set_epu8(UINT8_C( 239), UINT8_C( 203), UINT8_C( 255), UINT8_C( 126), UINT8_C( 255), UINT8_C( 244), UINT8_C( 131), UINT8_C( 76), UINT8_C( 108), UINT8_C( 123), UINT8_C( 169), UINT8_C( 106), UINT8_C( 255), UINT8_C( 44), UINT8_C( 117), UINT8_C( 230), UINT8_C( 81), UINT8_C( 255), UINT8_C( 138), UINT8_C( 174), UINT8_C( 67), UINT8_C( 79), UINT8_C( 255), UINT8_C( 255), UINT8_C( 243), UINT8_C( 240), UINT8_C( 27), UINT8_C( 159), UINT8_C( 102), UINT8_C( 255), UINT8_C( 38), UINT8_C( 194), UINT8_C( 99), UINT8_C( 117), UINT8_C( 75), UINT8_C( 162), UINT8_C( 109), UINT8_C( 132), UINT8_C( 220), UINT8_C( 226), UINT8_C( 18), UINT8_C( 158), UINT8_C( 255), UINT8_C( 170), UINT8_C( 249), UINT8_C( 52), UINT8_C( 75), UINT8_C( 48), UINT8_C( 149), UINT8_C( 222), UINT8_C( 181), UINT8_C( 255), UINT8_C( 221), UINT8_C( 140), UINT8_C( 65), UINT8_C( 255), UINT8_C( 15), UINT8_C( 3), UINT8_C( 45), UINT8_C( 21), UINT8_C( 92), UINT8_C( 93), UINT8_C( 108), UINT8_C( 125)) }, { simde_x_mm512_set_epu8(UINT8_C( 153), UINT8_C( 132), UINT8_C( 13), UINT8_C( 176), UINT8_C( 224), UINT8_C( 123), UINT8_C( 115), UINT8_C( 207), UINT8_C( 113), UINT8_C( 205), UINT8_C( 119), UINT8_C( 189), UINT8_C( 235), UINT8_C( 19), UINT8_C( 244), UINT8_C( 29), UINT8_C( 91), UINT8_C( 192), UINT8_C( 88), UINT8_C( 151), UINT8_C( 24), UINT8_C( 31), UINT8_C( 77), UINT8_C( 92), UINT8_C( 171), UINT8_C( 48), UINT8_C( 143), UINT8_C( 142), UINT8_C( 16), UINT8_C( 18), UINT8_C( 212), UINT8_C( 190), UINT8_C( 25), UINT8_C( 151), UINT8_C( 156), UINT8_C( 165), UINT8_C( 26), UINT8_C( 133), UINT8_C( 223), UINT8_C( 219), UINT8_C( 63), UINT8_C( 13), UINT8_C( 132), UINT8_C( 41), UINT8_C( 152), UINT8_C( 197), UINT8_C( 254), UINT8_C( 202), UINT8_C( 73), UINT8_C( 3), UINT8_C( 238), UINT8_C( 10), UINT8_C( 19), UINT8_C( 58), UINT8_C( 244), UINT8_C( 181), UINT8_C( 168), UINT8_C( 59), UINT8_C( 104), UINT8_C( 216), UINT8_C( 174), UINT8_C( 42), UINT8_C( 183), UINT8_C( 162)), UINT64_C( 2633789449456316803), simde_x_mm512_set_epu8(UINT8_C( 118), UINT8_C( 44), UINT8_C( 242), UINT8_C( 84), UINT8_C( 187), UINT8_C( 208), UINT8_C( 40), UINT8_C( 86), UINT8_C( 255), UINT8_C( 121), UINT8_C( 216), UINT8_C( 44), UINT8_C( 255), UINT8_C( 38), UINT8_C( 212), UINT8_C( 38), UINT8_C( 93), UINT8_C( 149), UINT8_C( 252), UINT8_C( 195), UINT8_C( 204), UINT8_C( 22), UINT8_C( 202), UINT8_C( 131), UINT8_C( 227), UINT8_C( 25), UINT8_C( 179), UINT8_C( 188), UINT8_C( 9), UINT8_C( 221), UINT8_C( 245), UINT8_C( 53), UINT8_C( 28), UINT8_C( 61), UINT8_C( 221), UINT8_C( 150), UINT8_C( 210), UINT8_C( 121), UINT8_C( 154), UINT8_C( 121), UINT8_C( 202), UINT8_C( 196), UINT8_C( 7), UINT8_C( 2), UINT8_C( 137), UINT8_C( 111), UINT8_C( 236), UINT8_C( 198), UINT8_C( 158), UINT8_C( 83), UINT8_C( 32), UINT8_C( 207), UINT8_C( 245), UINT8_C( 48), UINT8_C( 92), UINT8_C( 47), UINT8_C( 218), UINT8_C( 11), UINT8_C( 26), UINT8_C( 90), UINT8_C( 251), UINT8_C( 73), UINT8_C( 45), UINT8_C( 254)), simde_x_mm512_set_epu8(UINT8_C( 225), UINT8_C( 126), UINT8_C( 138), UINT8_C( 199), UINT8_C( 130), UINT8_C( 29), UINT8_C( 101), UINT8_C( 241), UINT8_C( 195), UINT8_C( 118), UINT8_C( 102), UINT8_C( 12), UINT8_C( 197), UINT8_C( 215), UINT8_C( 196), UINT8_C( 46), UINT8_C( 63), UINT8_C( 78), UINT8_C( 87), UINT8_C( 18), UINT8_C( 18), UINT8_C( 32), UINT8_C( 230), UINT8_C( 250), UINT8_C( 236), UINT8_C( 133), UINT8_C( 99), UINT8_C( 65), UINT8_C( 13), UINT8_C( 25), UINT8_C( 108), UINT8_C( 135), UINT8_C( 42), UINT8_C( 0), UINT8_C( 104), UINT8_C( 239), UINT8_C( 111), UINT8_C( 146), UINT8_C( 217), UINT8_C( 125), UINT8_C( 206), UINT8_C( 209), UINT8_C( 30), UINT8_C( 92), UINT8_C( 19), UINT8_C( 248), UINT8_C( 136), UINT8_C( 127), UINT8_C( 207), UINT8_C( 23), UINT8_C( 16), UINT8_C( 192), UINT8_C( 177), UINT8_C( 116), UINT8_C( 251), UINT8_C( 206), UINT8_C( 32), UINT8_C( 22), UINT8_C( 214), UINT8_C( 253), UINT8_C( 30), UINT8_C( 64), UINT8_C( 96), UINT8_C( 190)), simde_x_mm512_set_epu8(UINT8_C( 153), UINT8_C( 132), UINT8_C( 255), UINT8_C( 176), UINT8_C( 224), UINT8_C( 237), UINT8_C( 115), UINT8_C( 207), UINT8_C( 255), UINT8_C( 205), UINT8_C( 119), UINT8_C( 189), UINT8_C( 255), UINT8_C( 253), UINT8_C( 244), UINT8_C( 84), UINT8_C( 91), UINT8_C( 192), UINT8_C( 88), UINT8_C( 213), UINT8_C( 222), UINT8_C( 31), UINT8_C( 77), UINT8_C( 255), UINT8_C( 255), UINT8_C( 48), UINT8_C( 143), UINT8_C( 142), UINT8_C( 22), UINT8_C( 246), UINT8_C( 212), UINT8_C( 190), UINT8_C( 70), UINT8_C( 61), UINT8_C( 156), UINT8_C( 165), UINT8_C( 26), UINT8_C( 255), UINT8_C( 223), UINT8_C( 219), UINT8_C( 63), UINT8_C( 13), UINT8_C( 132), UINT8_C( 41), UINT8_C( 152), UINT8_C( 197), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 106), UINT8_C( 48), UINT8_C( 255), UINT8_C( 19), UINT8_C( 58), UINT8_C( 244), UINT8_C( 253), UINT8_C( 250), UINT8_C( 59), UINT8_C( 104), UINT8_C( 216), UINT8_C( 174), UINT8_C( 42), UINT8_C( 141), UINT8_C( 255)) }, { simde_x_mm512_set_epu8(UINT8_C( 117), UINT8_C( 69), UINT8_C( 121), UINT8_C( 211), UINT8_C( 30), UINT8_C( 183), UINT8_C( 2), UINT8_C( 216), UINT8_C( 95), UINT8_C( 253), UINT8_C( 16), UINT8_C( 178), UINT8_C( 128), UINT8_C( 215), UINT8_C( 190), UINT8_C( 66), UINT8_C( 93), UINT8_C( 224), UINT8_C( 206), UINT8_C( 254), UINT8_C( 195), UINT8_C( 29), UINT8_C( 168), UINT8_C( 138), UINT8_C( 229), UINT8_C( 42), UINT8_C( 78), UINT8_C( 210), UINT8_C( 177), UINT8_C( 38), UINT8_C( 181), UINT8_C( 14), UINT8_C( 138), UINT8_C( 142), UINT8_C( 136), UINT8_C( 42), UINT8_C( 4), UINT8_C( 79), UINT8_C( 172), UINT8_C( 146), UINT8_C( 0), UINT8_C( 85), UINT8_C( 236), UINT8_C( 61), UINT8_C( 40), UINT8_C( 181), UINT8_C( 69), UINT8_C( 157), UINT8_C( 73), UINT8_C( 222), UINT8_C( 242), UINT8_C( 72), UINT8_C( 101), UINT8_C( 96), UINT8_C( 142), UINT8_C( 132), UINT8_C( 169), UINT8_C( 43), UINT8_C( 138), UINT8_C( 114), UINT8_C( 168), UINT8_C( 8), UINT8_C( 204), UINT8_C( 75)), UINT64_C(14890918166471265655), simde_x_mm512_set_epu8(UINT8_C( 200), UINT8_C( 186), UINT8_C( 66), UINT8_C( 145), UINT8_C( 187), UINT8_C( 15), UINT8_C( 174), UINT8_C( 244), UINT8_C( 167), UINT8_C( 37), UINT8_C( 80), UINT8_C( 120), UINT8_C( 173), UINT8_C( 136), UINT8_C( 95), UINT8_C( 21), UINT8_C( 91), UINT8_C( 159), UINT8_C( 184), UINT8_C( 42), UINT8_C( 22), UINT8_C( 186), UINT8_C( 71), UINT8_C( 178), UINT8_C( 251), UINT8_C( 52), UINT8_C( 234), UINT8_C( 222), UINT8_C( 16), UINT8_C( 92), UINT8_C( 91), UINT8_C( 184), UINT8_C( 3), UINT8_C( 225), UINT8_C( 161), UINT8_C( 200), UINT8_C( 206), UINT8_C( 68), UINT8_C( 232), UINT8_C( 206), UINT8_C( 94), UINT8_C( 67), UINT8_C( 108), UINT8_C( 138), UINT8_C( 191), UINT8_C( 31), UINT8_C( 70), UINT8_C( 108), UINT8_C( 190), UINT8_C( 107), UINT8_C( 171), UINT8_C( 38), UINT8_C( 2), UINT8_C( 32), UINT8_C( 56), UINT8_C( 66), UINT8_C( 254), UINT8_C( 182), UINT8_C( 112), UINT8_C( 10), UINT8_C( 64), UINT8_C( 100), UINT8_C( 201), UINT8_C( 83)), simde_x_mm512_set_epu8(UINT8_C( 187), UINT8_C( 211), UINT8_C( 23), UINT8_C( 70), UINT8_C( 22), UINT8_C( 113), UINT8_C( 75), UINT8_C( 139), UINT8_C( 69), UINT8_C( 182), UINT8_C( 40), UINT8_C( 217), UINT8_C( 205), UINT8_C( 165), UINT8_C( 25), UINT8_C( 252), UINT8_C( 244), UINT8_C( 243), UINT8_C( 179), UINT8_C( 75), UINT8_C( 140), UINT8_C( 220), UINT8_C( 38), UINT8_C( 204), UINT8_C( 13), UINT8_C( 204), UINT8_C( 156), UINT8_C( 210), UINT8_C( 13), UINT8_C( 83), UINT8_C( 162), UINT8_C( 102), UINT8_C( 116), UINT8_C( 196), UINT8_C( 44), UINT8_C( 249), UINT8_C( 104), UINT8_C( 206), UINT8_C( 226), UINT8_C( 17), UINT8_C( 13), UINT8_C( 149), UINT8_C( 111), UINT8_C( 243), UINT8_C( 17), UINT8_C( 211), UINT8_C( 225), UINT8_C( 76), UINT8_C( 154), UINT8_C( 185), UINT8_C( 116), UINT8_C( 72), UINT8_C( 245), UINT8_C( 159), UINT8_C( 93), UINT8_C( 48), UINT8_C( 181), UINT8_C( 166), UINT8_C( 246), UINT8_C( 178), UINT8_C( 248), UINT8_C( 246), UINT8_C( 48), UINT8_C( 245)), simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 255), UINT8_C( 121), UINT8_C( 211), UINT8_C( 209), UINT8_C( 128), UINT8_C( 249), UINT8_C( 216), UINT8_C( 236), UINT8_C( 253), UINT8_C( 120), UINT8_C( 178), UINT8_C( 128), UINT8_C( 255), UINT8_C( 120), UINT8_C( 255), UINT8_C( 93), UINT8_C( 224), UINT8_C( 255), UINT8_C( 254), UINT8_C( 162), UINT8_C( 29), UINT8_C( 109), UINT8_C( 255), UINT8_C( 229), UINT8_C( 42), UINT8_C( 255), UINT8_C( 210), UINT8_C( 29), UINT8_C( 175), UINT8_C( 181), UINT8_C( 255), UINT8_C( 138), UINT8_C( 255), UINT8_C( 136), UINT8_C( 42), UINT8_C( 255), UINT8_C( 79), UINT8_C( 255), UINT8_C( 223), UINT8_C( 107), UINT8_C( 216), UINT8_C( 219), UINT8_C( 61), UINT8_C( 208), UINT8_C( 242), UINT8_C( 255), UINT8_C( 157), UINT8_C( 73), UINT8_C( 255), UINT8_C( 242), UINT8_C( 72), UINT8_C( 247), UINT8_C( 191), UINT8_C( 142), UINT8_C( 114), UINT8_C( 169), UINT8_C( 255), UINT8_C( 255), UINT8_C( 188), UINT8_C( 168), UINT8_C( 255), UINT8_C( 249), UINT8_C( 255)) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_adds_epu8(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_u8(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_maskz_adds_epu8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask64 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT64_C(17286015531074160252), simde_x_mm512_set_epu8(UINT8_C( 141), UINT8_C( 229), UINT8_C( 62), UINT8_C( 171), UINT8_C( 49), UINT8_C( 141), UINT8_C( 38), UINT8_C( 4), UINT8_C( 92), UINT8_C( 116), UINT8_C( 178), UINT8_C( 237), UINT8_C( 183), UINT8_C( 22), UINT8_C( 190), UINT8_C( 227), UINT8_C( 55), UINT8_C( 78), UINT8_C( 211), UINT8_C( 137), UINT8_C( 30), UINT8_C( 227), UINT8_C( 233), UINT8_C( 89), UINT8_C( 15), UINT8_C( 119), UINT8_C( 168), UINT8_C( 109), UINT8_C( 240), UINT8_C( 246), UINT8_C( 0), UINT8_C( 238), UINT8_C( 1), UINT8_C( 116), UINT8_C( 62), UINT8_C( 183), UINT8_C( 134), UINT8_C( 0), UINT8_C( 111), UINT8_C( 95), UINT8_C( 236), UINT8_C( 3), UINT8_C( 122), UINT8_C( 135), UINT8_C( 13), UINT8_C( 25), UINT8_C( 221), UINT8_C( 129), UINT8_C( 82), UINT8_C( 90), UINT8_C( 53), UINT8_C( 123), UINT8_C( 73), UINT8_C( 108), UINT8_C( 238), UINT8_C( 15), UINT8_C( 81), UINT8_C( 229), UINT8_C( 102), UINT8_C( 118), UINT8_C( 39), UINT8_C( 179), UINT8_C( 45), UINT8_C( 81)), simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C( 148), UINT8_C( 135), UINT8_C( 141), UINT8_C( 197), UINT8_C( 178), UINT8_C( 145), UINT8_C( 56), UINT8_C( 9), UINT8_C( 135), UINT8_C( 120), UINT8_C( 220), UINT8_C( 36), UINT8_C( 153), UINT8_C( 152), UINT8_C( 25), UINT8_C( 145), UINT8_C( 193), UINT8_C( 221), UINT8_C( 136), UINT8_C( 28), UINT8_C( 212), UINT8_C( 230), UINT8_C( 170), UINT8_C( 243), UINT8_C( 53), UINT8_C( 168), UINT8_C( 149), UINT8_C( 68), UINT8_C( 42), UINT8_C( 138), UINT8_C( 111), UINT8_C( 54), UINT8_C( 198), UINT8_C( 243), UINT8_C( 27), UINT8_C( 23), UINT8_C( 41), UINT8_C( 137), UINT8_C( 44), UINT8_C( 7), UINT8_C( 136), UINT8_C( 32), UINT8_C( 213), UINT8_C( 114), UINT8_C( 184), UINT8_C( 73), UINT8_C( 160), UINT8_C( 96), UINT8_C( 110), UINT8_C( 175), UINT8_C( 180), UINT8_C( 103), UINT8_C( 156), UINT8_C( 234), UINT8_C( 18), UINT8_C( 115), UINT8_C( 54), UINT8_C( 216), UINT8_C( 125), UINT8_C( 110), UINT8_C( 31), UINT8_C( 51), UINT8_C( 152)), simde_x_mm512_set_epu8(UINT8_C( 209), UINT8_C( 255), UINT8_C( 197), UINT8_C( 0), UINT8_C( 246), UINT8_C( 255), UINT8_C( 183), UINT8_C( 60), UINT8_C( 101), UINT8_C( 251), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 175), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 138), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 157), UINT8_C( 41), UINT8_C( 248), UINT8_C( 139), UINT8_C( 243), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 127), UINT8_C( 209), UINT8_C( 255), UINT8_C( 255), UINT8_C( 178), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 243), UINT8_C( 149), UINT8_C( 210), UINT8_C( 0), UINT8_C( 0)) }, { UINT64_C( 9031211210081693899), simde_x_mm512_set_epu8(UINT8_C( 150), UINT8_C( 238), UINT8_C( 65), UINT8_C( 152), UINT8_C( 81), UINT8_C( 38), UINT8_C( 172), UINT8_C( 254), UINT8_C( 242), UINT8_C( 85), UINT8_C( 176), UINT8_C( 80), UINT8_C( 48), UINT8_C( 93), UINT8_C( 79), UINT8_C( 127), UINT8_C( 16), UINT8_C( 41), UINT8_C( 54), UINT8_C( 140), UINT8_C( 17), UINT8_C( 42), UINT8_C( 170), UINT8_C( 38), UINT8_C( 138), UINT8_C( 200), UINT8_C( 60), UINT8_C( 19), UINT8_C( 156), UINT8_C( 149), UINT8_C( 105), UINT8_C( 180), UINT8_C( 10), UINT8_C( 247), UINT8_C( 244), UINT8_C( 200), UINT8_C( 185), UINT8_C( 96), UINT8_C( 6), UINT8_C( 24), UINT8_C( 69), UINT8_C( 73), UINT8_C( 229), UINT8_C( 3), UINT8_C( 161), UINT8_C( 50), UINT8_C( 189), UINT8_C( 217), UINT8_C( 97), UINT8_C( 62), UINT8_C( 101), UINT8_C( 56), UINT8_C( 177), UINT8_C( 83), UINT8_C( 157), UINT8_C( 200), UINT8_C( 239), UINT8_C( 200), UINT8_C( 248), UINT8_C( 240), UINT8_C( 84), UINT8_C( 161), UINT8_C( 183), UINT8_C( 54)), simde_x_mm512_set_epu8(UINT8_C( 63), UINT8_C( 205), UINT8_C( 87), UINT8_C( 32), UINT8_C( 191), UINT8_C( 55), UINT8_C( 14), UINT8_C( 81), UINT8_C( 133), UINT8_C( 156), UINT8_C( 217), UINT8_C( 212), UINT8_C( 22), UINT8_C( 112), UINT8_C( 16), UINT8_C( 15), UINT8_C( 152), UINT8_C( 154), UINT8_C( 102), UINT8_C( 161), UINT8_C( 69), UINT8_C( 13), UINT8_C( 235), UINT8_C( 45), UINT8_C( 62), UINT8_C( 136), UINT8_C( 145), UINT8_C( 32), UINT8_C( 149), UINT8_C( 226), UINT8_C( 99), UINT8_C( 192), UINT8_C( 8), UINT8_C( 214), UINT8_C( 81), UINT8_C( 222), UINT8_C( 210), UINT8_C( 26), UINT8_C( 31), UINT8_C( 254), UINT8_C( 68), UINT8_C( 249), UINT8_C( 185), UINT8_C( 46), UINT8_C( 235), UINT8_C( 183), UINT8_C( 21), UINT8_C( 83), UINT8_C( 148), UINT8_C( 159), UINT8_C( 187), UINT8_C( 73), UINT8_C( 57), UINT8_C( 219), UINT8_C( 21), UINT8_C( 82), UINT8_C( 137), UINT8_C( 130), UINT8_C( 126), UINT8_C( 91), UINT8_C( 115), UINT8_C( 31), UINT8_C( 177), UINT8_C( 28)), simde_x_mm512_set_epu8(UINT8_C( 0), UINT8_C( 255), UINT8_C( 152), UINT8_C( 184), UINT8_C( 255), UINT8_C( 93), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 241), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 205), UINT8_C( 0), UINT8_C( 142), UINT8_C( 0), UINT8_C( 195), UINT8_C( 0), UINT8_C( 0), UINT8_C( 86), UINT8_C( 55), UINT8_C( 255), UINT8_C( 0), UINT8_C( 200), UINT8_C( 0), UINT8_C( 205), UINT8_C( 51), UINT8_C( 255), UINT8_C( 255), UINT8_C( 204), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 122), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 49), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 245), UINT8_C( 221), UINT8_C( 255), UINT8_C( 129), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 199), UINT8_C( 0), UINT8_C( 255), UINT8_C( 82)) }, { UINT64_C( 6828010367541473016), simde_x_mm512_set_epu8(UINT8_C( 84), UINT8_C( 160), UINT8_C( 87), UINT8_C( 234), UINT8_C( 251), UINT8_C( 253), UINT8_C( 129), UINT8_C( 41), UINT8_C( 74), UINT8_C( 72), UINT8_C( 252), UINT8_C( 28), UINT8_C( 141), UINT8_C( 93), UINT8_C( 102), UINT8_C( 44), UINT8_C( 153), UINT8_C( 227), UINT8_C( 206), UINT8_C( 48), UINT8_C( 160), UINT8_C( 206), UINT8_C( 46), UINT8_C( 191), UINT8_C( 4), UINT8_C( 43), UINT8_C( 181), UINT8_C( 97), UINT8_C( 230), UINT8_C( 153), UINT8_C( 71), UINT8_C( 149), UINT8_C( 91), UINT8_C( 45), UINT8_C( 245), UINT8_C( 47), UINT8_C( 29), UINT8_C( 25), UINT8_C( 26), UINT8_C( 247), UINT8_C( 10), UINT8_C( 36), UINT8_C( 177), UINT8_C( 203), UINT8_C( 41), UINT8_C( 1), UINT8_C( 233), UINT8_C( 193), UINT8_C( 129), UINT8_C( 68), UINT8_C( 48), UINT8_C( 36), UINT8_C( 89), UINT8_C( 144), UINT8_C( 225), UINT8_C( 120), UINT8_C( 35), UINT8_C( 62), UINT8_C( 235), UINT8_C( 142), UINT8_C( 152), UINT8_C( 57), UINT8_C( 42), UINT8_C( 145)), simde_x_mm512_set_epu8(UINT8_C( 96), UINT8_C( 192), UINT8_C( 233), UINT8_C( 210), UINT8_C( 227), UINT8_C( 185), UINT8_C( 71), UINT8_C( 90), UINT8_C( 44), UINT8_C( 164), UINT8_C( 225), UINT8_C( 26), UINT8_C( 157), UINT8_C( 203), UINT8_C( 117), UINT8_C( 18), UINT8_C( 193), UINT8_C( 45), UINT8_C( 12), UINT8_C( 24), UINT8_C( 148), UINT8_C( 18), UINT8_C( 196), UINT8_C( 28), UINT8_C( 50), UINT8_C( 245), UINT8_C( 188), UINT8_C( 225), UINT8_C( 105), UINT8_C( 150), UINT8_C( 98), UINT8_C( 51), UINT8_C( 58), UINT8_C( 103), UINT8_C( 111), UINT8_C( 129), UINT8_C( 68), UINT8_C( 200), UINT8_C( 124), UINT8_C( 137), UINT8_C( 74), UINT8_C( 194), UINT8_C( 140), UINT8_C( 37), UINT8_C( 244), UINT8_C( 114), UINT8_C( 0), UINT8_C( 61), UINT8_C( 103), UINT8_C( 252), UINT8_C( 151), UINT8_C( 188), UINT8_C( 39), UINT8_C( 156), UINT8_C( 163), UINT8_C( 11), UINT8_C( 176), UINT8_C( 237), UINT8_C( 234), UINT8_C( 217), UINT8_C( 127), UINT8_C( 218), UINT8_C( 131), UINT8_C( 145)), simde_x_mm512_set_epu8(UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 200), UINT8_C( 0), UINT8_C( 118), UINT8_C( 236), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 62), UINT8_C( 255), UINT8_C( 255), UINT8_C( 218), UINT8_C( 72), UINT8_C( 0), UINT8_C( 224), UINT8_C( 242), UINT8_C( 219), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 149), UINT8_C( 0), UINT8_C( 255), UINT8_C( 176), UINT8_C( 97), UINT8_C( 225), UINT8_C( 150), UINT8_C( 255), UINT8_C( 84), UINT8_C( 230), UINT8_C( 255), UINT8_C( 240), UINT8_C( 255), UINT8_C( 115), UINT8_C( 233), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 199), UINT8_C( 0), UINT8_C( 128), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 211), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0)) }, { UINT64_C(18325019528117086600), simde_x_mm512_set_epu8(UINT8_C( 122), UINT8_C( 202), UINT8_C( 50), UINT8_C( 123), UINT8_C( 225), UINT8_C( 182), UINT8_C( 192), UINT8_C( 54), UINT8_C( 175), UINT8_C( 60), UINT8_C( 31), UINT8_C( 233), UINT8_C( 108), UINT8_C( 137), UINT8_C( 164), UINT8_C( 176), UINT8_C( 226), UINT8_C( 219), UINT8_C( 51), UINT8_C( 220), UINT8_C( 8), UINT8_C( 52), UINT8_C( 97), UINT8_C( 123), UINT8_C( 207), UINT8_C( 132), UINT8_C( 95), UINT8_C( 173), UINT8_C( 70), UINT8_C( 206), UINT8_C( 195), UINT8_C( 25), UINT8_C( 159), UINT8_C( 28), UINT8_C( 198), UINT8_C( 11), UINT8_C( 242), UINT8_C( 126), UINT8_C( 81), UINT8_C( 45), UINT8_C( 233), UINT8_C( 120), UINT8_C( 173), UINT8_C( 240), UINT8_C( 7), UINT8_C( 51), UINT8_C( 199), UINT8_C( 206), UINT8_C( 235), UINT8_C( 98), UINT8_C( 88), UINT8_C( 0), UINT8_C( 190), UINT8_C( 3), UINT8_C( 124), UINT8_C( 143), UINT8_C( 50), UINT8_C( 88), UINT8_C( 171), UINT8_C( 163), UINT8_C( 212), UINT8_C( 243), UINT8_C( 162), UINT8_C( 17)), simde_x_mm512_set_epu8(UINT8_C( 243), UINT8_C( 244), UINT8_C( 132), UINT8_C( 96), UINT8_C( 243), UINT8_C( 158), UINT8_C( 99), UINT8_C( 243), UINT8_C( 56), UINT8_C( 211), UINT8_C( 148), UINT8_C( 237), UINT8_C( 132), UINT8_C( 229), UINT8_C( 22), UINT8_C( 126), UINT8_C( 150), UINT8_C( 188), UINT8_C( 196), UINT8_C( 8), UINT8_C( 60), UINT8_C( 93), UINT8_C( 223), UINT8_C( 229), UINT8_C( 249), UINT8_C( 27), UINT8_C( 134), UINT8_C( 218), UINT8_C( 23), UINT8_C( 6), UINT8_C( 45), UINT8_C( 235), UINT8_C( 233), UINT8_C( 155), UINT8_C( 116), UINT8_C( 127), UINT8_C( 96), UINT8_C( 40), UINT8_C( 159), UINT8_C( 40), UINT8_C( 86), UINT8_C( 212), UINT8_C( 70), UINT8_C( 185), UINT8_C( 62), UINT8_C( 235), UINT8_C( 66), UINT8_C( 68), UINT8_C( 169), UINT8_C( 195), UINT8_C( 48), UINT8_C( 186), UINT8_C( 18), UINT8_C( 178), UINT8_C( 158), UINT8_C( 117), UINT8_C( 74), UINT8_C( 32), UINT8_C( 93), UINT8_C( 125), UINT8_C( 209), UINT8_C( 196), UINT8_C( 170), UINT8_C( 117)), simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 255), UINT8_C( 182), UINT8_C( 219), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 240), UINT8_C( 255), UINT8_C( 186), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 68), UINT8_C( 145), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 229), UINT8_C( 0), UINT8_C( 93), UINT8_C( 0), UINT8_C( 240), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 138), UINT8_C( 0), UINT8_C( 0), UINT8_C( 240), UINT8_C( 85), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 136), UINT8_C( 0), UINT8_C( 208), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 124), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0)) }, { UINT64_C( 7677112093376593822), simde_x_mm512_set_epu8(UINT8_C( 203), UINT8_C( 34), UINT8_C( 9), UINT8_C( 64), UINT8_C( 195), UINT8_C( 231), UINT8_C( 141), UINT8_C( 100), UINT8_C( 65), UINT8_C( 8), UINT8_C( 69), UINT8_C( 248), UINT8_C( 241), UINT8_C( 205), UINT8_C( 1), UINT8_C( 90), UINT8_C( 115), UINT8_C( 51), UINT8_C( 165), UINT8_C( 56), UINT8_C( 64), UINT8_C( 217), UINT8_C( 137), UINT8_C( 228), UINT8_C( 202), UINT8_C( 28), UINT8_C( 54), UINT8_C( 248), UINT8_C( 202), UINT8_C( 128), UINT8_C( 228), UINT8_C( 185), UINT8_C( 107), UINT8_C( 190), UINT8_C( 142), UINT8_C( 168), UINT8_C( 34), UINT8_C( 173), UINT8_C( 235), UINT8_C( 192), UINT8_C( 121), UINT8_C( 236), UINT8_C( 167), UINT8_C( 162), UINT8_C( 112), UINT8_C( 229), UINT8_C( 81), UINT8_C( 202), UINT8_C( 192), UINT8_C( 142), UINT8_C( 48), UINT8_C( 167), UINT8_C( 195), UINT8_C( 26), UINT8_C( 43), UINT8_C( 29), UINT8_C( 0), UINT8_C( 64), UINT8_C( 123), UINT8_C( 189), UINT8_C( 15), UINT8_C( 120), UINT8_C( 36), UINT8_C( 40)), simde_x_mm512_set_epu8(UINT8_C( 113), UINT8_C( 32), UINT8_C( 71), UINT8_C( 55), UINT8_C( 230), UINT8_C( 82), UINT8_C( 175), UINT8_C( 236), UINT8_C( 201), UINT8_C( 112), UINT8_C( 45), UINT8_C( 37), UINT8_C( 67), UINT8_C( 187), UINT8_C( 64), UINT8_C( 39), UINT8_C( 72), UINT8_C( 45), UINT8_C( 120), UINT8_C( 251), UINT8_C( 147), UINT8_C( 62), UINT8_C( 17), UINT8_C( 31), UINT8_C( 226), UINT8_C( 198), UINT8_C( 56), UINT8_C( 21), UINT8_C( 72), UINT8_C( 182), UINT8_C( 216), UINT8_C( 120), UINT8_C( 95), UINT8_C( 108), UINT8_C( 32), UINT8_C( 64), UINT8_C( 128), UINT8_C( 102), UINT8_C( 235), UINT8_C( 28), UINT8_C( 105), UINT8_C( 52), UINT8_C( 85), UINT8_C( 152), UINT8_C( 57), UINT8_C( 225), UINT8_C( 218), UINT8_C( 132), UINT8_C( 149), UINT8_C( 254), UINT8_C( 55), UINT8_C( 46), UINT8_C( 185), UINT8_C( 77), UINT8_C( 18), UINT8_C( 70), UINT8_C( 89), UINT8_C( 125), UINT8_C( 214), UINT8_C( 131), UINT8_C( 121), UINT8_C( 245), UINT8_C( 187), UINT8_C( 197)), simde_x_mm512_set_epu8(UINT8_C( 0), UINT8_C( 66), UINT8_C( 80), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 65), UINT8_C( 0), UINT8_C( 187), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 226), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 232), UINT8_C( 162), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 226), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 103), UINT8_C( 213), UINT8_C( 255), UINT8_C( 103), UINT8_C( 61), UINT8_C( 99), UINT8_C( 89), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 136), UINT8_C( 255), UINT8_C( 223), UINT8_C( 0)) }, { UINT64_C( 4840581956081845689), simde_x_mm512_set_epu8(UINT8_C( 122), UINT8_C( 148), UINT8_C( 186), UINT8_C( 193), UINT8_C( 56), UINT8_C( 71), UINT8_C( 242), UINT8_C( 49), UINT8_C( 183), UINT8_C( 53), UINT8_C( 227), UINT8_C( 3), UINT8_C( 183), UINT8_C( 43), UINT8_C( 234), UINT8_C( 85), UINT8_C( 230), UINT8_C( 247), UINT8_C( 66), UINT8_C( 1), UINT8_C( 243), UINT8_C( 60), UINT8_C( 137), UINT8_C( 173), UINT8_C( 134), UINT8_C( 192), UINT8_C( 173), UINT8_C( 182), UINT8_C( 119), UINT8_C( 248), UINT8_C( 12), UINT8_C( 113), UINT8_C( 244), UINT8_C( 172), UINT8_C( 6), UINT8_C( 69), UINT8_C( 2), UINT8_C( 181), UINT8_C( 222), UINT8_C( 130), UINT8_C( 3), UINT8_C( 128), UINT8_C( 247), UINT8_C( 24), UINT8_C( 11), UINT8_C( 162), UINT8_C( 224), UINT8_C( 110), UINT8_C( 33), UINT8_C( 232), UINT8_C( 125), UINT8_C( 35), UINT8_C( 153), UINT8_C( 208), UINT8_C( 234), UINT8_C( 38), UINT8_C( 175), UINT8_C( 9), UINT8_C( 245), UINT8_C( 132), UINT8_C( 71), UINT8_C( 31), UINT8_C( 214), UINT8_C( 93)), simde_x_mm512_set_epu8(UINT8_C( 53), UINT8_C( 77), UINT8_C( 63), UINT8_C( 172), UINT8_C( 27), UINT8_C( 22), UINT8_C( 3), UINT8_C( 219), UINT8_C( 65), UINT8_C( 118), UINT8_C( 130), UINT8_C( 97), UINT8_C( 109), UINT8_C( 7), UINT8_C( 142), UINT8_C( 181), UINT8_C( 131), UINT8_C( 121), UINT8_C( 128), UINT8_C( 103), UINT8_C( 0), UINT8_C( 101), UINT8_C( 215), UINT8_C( 89), UINT8_C( 173), UINT8_C( 191), UINT8_C( 9), UINT8_C( 249), UINT8_C( 193), UINT8_C( 13), UINT8_C( 105), UINT8_C( 92), UINT8_C( 238), UINT8_C( 235), UINT8_C( 154), UINT8_C( 142), UINT8_C( 74), UINT8_C( 121), UINT8_C( 211), UINT8_C( 52), UINT8_C( 193), UINT8_C( 163), UINT8_C( 98), UINT8_C( 106), UINT8_C( 147), UINT8_C( 209), UINT8_C( 37), UINT8_C( 70), UINT8_C( 100), UINT8_C( 121), UINT8_C( 18), UINT8_C( 28), UINT8_C( 139), UINT8_C( 107), UINT8_C( 3), UINT8_C( 194), UINT8_C( 42), UINT8_C( 72), UINT8_C( 91), UINT8_C( 86), UINT8_C( 184), UINT8_C( 9), UINT8_C( 176), UINT8_C( 118)), simde_x_mm512_set_epu8(UINT8_C( 0), UINT8_C( 225), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 245), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 50), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 194), UINT8_C( 104), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 182), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 160), UINT8_C( 211), UINT8_C( 76), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 158), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 133), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 232), UINT8_C( 217), UINT8_C( 0), UINT8_C( 255), UINT8_C( 218), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 211)) }, { UINT64_C(17498311407133456191), simde_x_mm512_set_epu8(UINT8_C( 61), UINT8_C( 167), UINT8_C( 84), UINT8_C( 162), UINT8_C( 31), UINT8_C( 140), UINT8_C( 189), UINT8_C( 154), UINT8_C( 184), UINT8_C( 165), UINT8_C( 151), UINT8_C( 148), UINT8_C( 212), UINT8_C( 74), UINT8_C( 228), UINT8_C( 124), UINT8_C( 120), UINT8_C( 215), UINT8_C( 177), UINT8_C( 122), UINT8_C( 87), UINT8_C( 137), UINT8_C( 54), UINT8_C( 254), UINT8_C( 209), UINT8_C( 84), UINT8_C( 130), UINT8_C( 192), UINT8_C( 14), UINT8_C( 11), UINT8_C( 37), UINT8_C( 233), UINT8_C( 67), UINT8_C( 124), UINT8_C( 58), UINT8_C( 162), UINT8_C( 30), UINT8_C( 223), UINT8_C( 70), UINT8_C( 232), UINT8_C( 38), UINT8_C( 159), UINT8_C( 200), UINT8_C( 196), UINT8_C( 197), UINT8_C( 65), UINT8_C( 182), UINT8_C( 45), UINT8_C( 245), UINT8_C( 55), UINT8_C( 174), UINT8_C( 12), UINT8_C( 106), UINT8_C( 22), UINT8_C( 132), UINT8_C( 252), UINT8_C( 2), UINT8_C( 175), UINT8_C( 14), UINT8_C( 90), UINT8_C( 156), UINT8_C( 134), UINT8_C( 221), UINT8_C( 81)), simde_x_mm512_set_epu8(UINT8_C( 21), UINT8_C( 108), UINT8_C( 125), UINT8_C( 196), UINT8_C( 184), UINT8_C( 74), UINT8_C( 251), UINT8_C( 198), UINT8_C( 215), UINT8_C( 22), UINT8_C( 141), UINT8_C( 102), UINT8_C( 59), UINT8_C( 176), UINT8_C( 241), UINT8_C( 193), UINT8_C( 84), UINT8_C( 185), UINT8_C( 8), UINT8_C( 12), UINT8_C( 245), UINT8_C( 180), UINT8_C( 62), UINT8_C( 93), UINT8_C( 181), UINT8_C( 179), UINT8_C( 172), UINT8_C( 148), UINT8_C( 221), UINT8_C( 14), UINT8_C( 196), UINT8_C( 18), UINT8_C( 23), UINT8_C( 196), UINT8_C( 193), UINT8_C( 142), UINT8_C( 201), UINT8_C( 75), UINT8_C( 157), UINT8_C( 201), UINT8_C( 58), UINT8_C( 76), UINT8_C( 154), UINT8_C( 138), UINT8_C( 226), UINT8_C( 39), UINT8_C( 119), UINT8_C( 85), UINT8_C( 248), UINT8_C( 184), UINT8_C( 196), UINT8_C( 162), UINT8_C( 144), UINT8_C( 119), UINT8_C( 124), UINT8_C( 76), UINT8_C( 214), UINT8_C( 132), UINT8_C( 54), UINT8_C( 74), UINT8_C( 164), UINT8_C( 99), UINT8_C( 79), UINT8_C( 253)), simde_x_mm512_set_epu8(UINT8_C( 82), UINT8_C( 255), UINT8_C( 209), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 187), UINT8_C( 0), UINT8_C( 250), UINT8_C( 0), UINT8_C( 250), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 185), UINT8_C( 134), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 233), UINT8_C( 251), UINT8_C( 90), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 227), UINT8_C( 255), UINT8_C( 0), UINT8_C( 235), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 255), UINT8_C( 239), UINT8_C( 255), UINT8_C( 174), UINT8_C( 0), UINT8_C( 141), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 68), UINT8_C( 164), UINT8_C( 255), UINT8_C( 233), UINT8_C( 255), UINT8_C( 255)) }, { UINT64_C( 3462613925466476941), simde_x_mm512_set_epu8(UINT8_C( 18), UINT8_C( 182), UINT8_C( 14), UINT8_C( 36), UINT8_C( 249), UINT8_C( 113), UINT8_C( 40), UINT8_C( 48), UINT8_C( 149), UINT8_C( 222), UINT8_C( 181), UINT8_C( 85), UINT8_C( 221), UINT8_C( 140), UINT8_C( 65), UINT8_C( 235), UINT8_C( 15), UINT8_C( 3), UINT8_C( 45), UINT8_C( 21), UINT8_C( 72), UINT8_C( 93), UINT8_C( 108), UINT8_C( 125), UINT8_C( 1), UINT8_C( 75), UINT8_C( 21), UINT8_C( 220), UINT8_C( 130), UINT8_C( 122), UINT8_C( 71), UINT8_C( 76), UINT8_C( 28), UINT8_C( 200), UINT8_C( 32), UINT8_C( 101), UINT8_C( 149), UINT8_C( 145), UINT8_C( 168), UINT8_C( 237), UINT8_C( 179), UINT8_C( 19), UINT8_C( 235), UINT8_C( 145), UINT8_C( 188), UINT8_C( 82), UINT8_C( 138), UINT8_C( 180), UINT8_C( 47), UINT8_C( 127), UINT8_C( 62), UINT8_C( 240), UINT8_C( 10), UINT8_C( 242), UINT8_C( 156), UINT8_C( 86), UINT8_C( 29), UINT8_C( 107), UINT8_C( 56), UINT8_C( 21), UINT8_C( 24), UINT8_C( 68), UINT8_C( 160), UINT8_C( 64)), simde_x_mm512_set_epu8(UINT8_C( 199), UINT8_C( 94), UINT8_C( 131), UINT8_C( 132), UINT8_C( 36), UINT8_C( 57), UINT8_C( 68), UINT8_C( 204), UINT8_C( 39), UINT8_C( 50), UINT8_C( 208), UINT8_C( 94), UINT8_C( 53), UINT8_C( 11), UINT8_C( 29), UINT8_C( 65), UINT8_C( 174), UINT8_C( 137), UINT8_C( 115), UINT8_C( 68), UINT8_C( 187), UINT8_C( 118), UINT8_C( 17), UINT8_C( 8), UINT8_C( 192), UINT8_C( 203), UINT8_C( 214), UINT8_C( 126), UINT8_C( 67), UINT8_C( 50), UINT8_C( 238), UINT8_C( 76), UINT8_C( 237), UINT8_C( 123), UINT8_C( 169), UINT8_C( 106), UINT8_C( 182), UINT8_C( 44), UINT8_C( 117), UINT8_C( 103), UINT8_C( 81), UINT8_C( 122), UINT8_C( 56), UINT8_C( 246), UINT8_C( 67), UINT8_C( 79), UINT8_C( 83), UINT8_C( 218), UINT8_C( 243), UINT8_C( 43), UINT8_C( 27), UINT8_C( 159), UINT8_C( 102), UINT8_C( 126), UINT8_C( 38), UINT8_C( 194), UINT8_C( 232), UINT8_C( 117), UINT8_C( 218), UINT8_C( 163), UINT8_C( 198), UINT8_C( 132), UINT8_C( 181), UINT8_C( 10)), simde_x_mm512_set_epu8(UINT8_C( 0), UINT8_C( 0), UINT8_C( 145), UINT8_C( 168), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 151), UINT8_C( 0), UINT8_C( 255), UINT8_C( 189), UINT8_C( 0), UINT8_C( 160), UINT8_C( 0), UINT8_C( 255), UINT8_C( 211), UINT8_C( 0), UINT8_C( 133), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 172), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 201), UINT8_C( 207), UINT8_C( 255), UINT8_C( 189), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 141), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 222), UINT8_C( 200), UINT8_C( 0), UINT8_C( 74)) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_adds_epu8(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_u8(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_adds_epu16(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_x_mm512_set_epu16(UINT16_C( 57245), UINT16_C( 31803), UINT16_C( 9053), UINT16_C( 21282), UINT16_C( 45515), UINT16_C( 57894), UINT16_C( 50445), UINT16_C( 50583), UINT16_C( 54723), UINT16_C( 52144), UINT16_C( 13347), UINT16_C( 57624), UINT16_C( 20975), UINT16_C( 65317), UINT16_C( 16493), UINT16_C( 47193), UINT16_C( 8805), UINT16_C( 17012), UINT16_C( 15383), UINT16_C( 5484), UINT16_C( 64480), UINT16_C( 10898), UINT16_C( 37488), UINT16_C( 8763), UINT16_C( 45480), UINT16_C( 3307), UINT16_C( 9193), UINT16_C( 26229), UINT16_C( 20008), UINT16_C( 59713), UINT16_C( 53564), UINT16_C( 62675)), simde_x_mm512_set_epu16(UINT16_C( 56619), UINT16_C( 61703), UINT16_C( 3086), UINT16_C( 41224), UINT16_C( 8421), UINT16_C( 52766), UINT16_C( 7424), UINT16_C( 48822), UINT16_C( 41975), UINT16_C( 22918), UINT16_C( 59915), UINT16_C( 26727), UINT16_C( 53323), UINT16_C( 34707), UINT16_C( 14572), UINT16_C( 716), UINT16_C( 56087), UINT16_C( 9094), UINT16_C( 20814), UINT16_C( 56962), UINT16_C( 14110), UINT16_C( 52082), UINT16_C( 8468), UINT16_C( 11854), UINT16_C( 1576), UINT16_C( 12690), UINT16_C( 32737), UINT16_C( 51663), UINT16_C( 37115), UINT16_C( 18115), UINT16_C( 50682), UINT16_C( 1653)), simde_x_mm512_set_epu16(UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 12139), UINT16_C( 62506), UINT16_C( 53936), UINT16_C( 65535), UINT16_C( 57869), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 31065), UINT16_C( 47909), UINT16_C( 64892), UINT16_C( 26106), UINT16_C( 36197), UINT16_C( 62446), UINT16_C( 65535), UINT16_C( 62980), UINT16_C( 45956), UINT16_C( 20617), UINT16_C( 47056), UINT16_C( 15997), UINT16_C( 41930), UINT16_C( 65535), UINT16_C( 57123), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 64328)) }, { simde_x_mm512_set_epu16(UINT16_C( 1128), UINT16_C( 14143), UINT16_C( 19763), UINT16_C( 47819), UINT16_C( 62972), UINT16_C( 13428), UINT16_C( 18537), UINT16_C( 38297), UINT16_C( 21721), UINT16_C( 58861), UINT16_C( 42577), UINT16_C( 39379), UINT16_C( 55643), UINT16_C( 20439), UINT16_C( 34514), UINT16_C( 49721), UINT16_C( 18526), UINT16_C( 46886), UINT16_C( 20377), UINT16_C( 31658), UINT16_C( 32537), UINT16_C( 50044), UINT16_C( 28503), UINT16_C( 5895), UINT16_C( 1666), UINT16_C( 50137), UINT16_C( 30976), UINT16_C( 4047), UINT16_C( 24589), UINT16_C( 29183), UINT16_C( 13128), UINT16_C( 3541)), simde_x_mm512_set_epu16(UINT16_C( 38521), UINT16_C( 64382), UINT16_C( 35873), UINT16_C( 42497), UINT16_C( 46178), UINT16_C( 38904), UINT16_C( 15657), UINT16_C( 6453), UINT16_C( 15377), UINT16_C( 45418), UINT16_C( 38208), UINT16_C( 44948), UINT16_C( 17985), UINT16_C( 28923), UINT16_C( 11094), UINT16_C( 61254), UINT16_C( 41028), UINT16_C( 4939), UINT16_C( 61438), UINT16_C( 34821), UINT16_C( 9578), UINT16_C( 46329), UINT16_C( 53213), UINT16_C( 42297), UINT16_C( 42846), UINT16_C( 12973), UINT16_C( 32628), UINT16_C( 10992), UINT16_C( 56871), UINT16_C( 37695), UINT16_C( 16317), UINT16_C( 4356)), simde_x_mm512_set_epu16(UINT16_C( 39649), UINT16_C( 65535), UINT16_C( 55636), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 52332), UINT16_C( 34194), UINT16_C( 44750), UINT16_C( 37098), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 49362), UINT16_C( 45608), UINT16_C( 65535), UINT16_C( 59554), UINT16_C( 51825), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 42115), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 48192), UINT16_C( 44512), UINT16_C( 63110), UINT16_C( 63604), UINT16_C( 15039), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 29445), UINT16_C( 7897)) }, { simde_x_mm512_set_epu16(UINT16_C( 14747), UINT16_C( 30570), UINT16_C( 56275), UINT16_C( 58793), UINT16_C( 48636), UINT16_C( 11396), UINT16_C( 12142), UINT16_C( 25883), UINT16_C( 48137), UINT16_C( 31445), UINT16_C( 15524), UINT16_C( 49322), UINT16_C( 6761), UINT16_C( 42681), UINT16_C( 8586), UINT16_C( 53309), UINT16_C( 48898), UINT16_C( 23142), UINT16_C( 17912), UINT16_C( 20578), UINT16_C( 42157), UINT16_C( 25705), UINT16_C( 39154), UINT16_C( 32521), UINT16_C( 7302), UINT16_C( 65263), UINT16_C( 7623), UINT16_C( 47267), UINT16_C( 41612), UINT16_C( 7723), UINT16_C( 51815), UINT16_C( 23273)), simde_x_mm512_set_epu16(UINT16_C( 29783), UINT16_C( 35133), UINT16_C( 18722), UINT16_C( 24788), UINT16_C( 4507), UINT16_C( 64908), UINT16_C( 18120), UINT16_C( 53792), UINT16_C( 40447), UINT16_C( 2013), UINT16_C( 19329), UINT16_C( 18474), UINT16_C( 45067), UINT16_C( 37105), UINT16_C( 40003), UINT16_C( 11523), UINT16_C( 28865), UINT16_C( 9988), UINT16_C( 16394), UINT16_C( 60605), UINT16_C( 29530), UINT16_C( 612), UINT16_C( 21547), UINT16_C( 12463), UINT16_C( 46586), UINT16_C( 6619), UINT16_C( 39845), UINT16_C( 4328), UINT16_C( 31818), UINT16_C( 16334), UINT16_C( 57400), UINT16_C( 58095)), simde_x_mm512_set_epu16(UINT16_C( 44530), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 53143), UINT16_C( 65535), UINT16_C( 30262), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 33458), UINT16_C( 34853), UINT16_C( 65535), UINT16_C( 51828), UINT16_C( 65535), UINT16_C( 48589), UINT16_C( 64832), UINT16_C( 65535), UINT16_C( 33130), UINT16_C( 34306), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 26317), UINT16_C( 60701), UINT16_C( 44984), UINT16_C( 53888), UINT16_C( 65535), UINT16_C( 47468), UINT16_C( 51595), UINT16_C( 65535), UINT16_C( 24057), UINT16_C( 65535), UINT16_C( 65535)) }, { simde_x_mm512_set_epu16(UINT16_C( 30682), UINT16_C( 30851), UINT16_C( 8660), UINT16_C( 19219), UINT16_C( 10963), UINT16_C( 474), UINT16_C( 23728), UINT16_C( 46528), UINT16_C( 63120), UINT16_C( 45881), UINT16_C( 63086), UINT16_C( 25197), UINT16_C( 2704), UINT16_C( 4513), UINT16_C( 59294), UINT16_C( 60752), UINT16_C( 50954), UINT16_C( 23266), UINT16_C( 27902), UINT16_C( 8814), UINT16_C( 4863), UINT16_C( 1260), UINT16_C( 11681), UINT16_C( 46962), UINT16_C( 62057), UINT16_C( 1167), UINT16_C( 44133), UINT16_C( 29723), UINT16_C( 20503), UINT16_C( 47951), UINT16_C( 6645), UINT16_C( 27511)), simde_x_mm512_set_epu16(UINT16_C( 15286), UINT16_C( 5686), UINT16_C( 62529), UINT16_C( 52414), UINT16_C( 64942), UINT16_C( 55157), UINT16_C( 1921), UINT16_C( 414), UINT16_C( 57075), UINT16_C( 38949), UINT16_C( 49837), UINT16_C( 16574), UINT16_C( 63519), UINT16_C( 21815), UINT16_C( 16534), UINT16_C( 5264), UINT16_C( 40611), UINT16_C( 7582), UINT16_C( 27508), UINT16_C( 40060), UINT16_C( 17332), UINT16_C( 48486), UINT16_C( 46457), UINT16_C( 3074), UINT16_C( 49520), UINT16_C( 35694), UINT16_C( 14820), UINT16_C( 26739), UINT16_C( 52931), UINT16_C( 30426), UINT16_C( 34639), UINT16_C( 60126)), simde_x_mm512_set_epu16(UINT16_C( 45968), UINT16_C( 36537), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 55631), UINT16_C( 25649), UINT16_C( 46942), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 41771), UINT16_C( 65535), UINT16_C( 26328), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 30848), UINT16_C( 55410), UINT16_C( 48874), UINT16_C( 22195), UINT16_C( 49746), UINT16_C( 58138), UINT16_C( 50036), UINT16_C( 65535), UINT16_C( 36861), UINT16_C( 58953), UINT16_C( 56462), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 41284), UINT16_C( 65535)) }, { simde_x_mm512_set_epu16(UINT16_C( 20277), UINT16_C( 2901), UINT16_C( 9119), UINT16_C( 39166), UINT16_C( 42714), UINT16_C( 26596), UINT16_C( 65466), UINT16_C( 41724), UINT16_C( 43509), UINT16_C( 36161), UINT16_C( 14559), UINT16_C( 39814), UINT16_C( 39598), UINT16_C( 35810), UINT16_C( 32670), UINT16_C( 2206), UINT16_C( 28889), UINT16_C( 41636), UINT16_C( 48990), UINT16_C( 37294), UINT16_C( 39242), UINT16_C( 39778), UINT16_C( 6979), UINT16_C( 54232), UINT16_C( 47738), UINT16_C( 57923), UINT16_C( 37900), UINT16_C( 45798), UINT16_C( 44781), UINT16_C( 27960), UINT16_C( 1998), UINT16_C( 61149)), simde_x_mm512_set_epu16(UINT16_C( 20730), UINT16_C( 18080), UINT16_C( 51364), UINT16_C( 27968), UINT16_C( 47873), UINT16_C( 51993), UINT16_C( 18829), UINT16_C( 15054), UINT16_C( 50771), UINT16_C( 37023), UINT16_C( 39205), UINT16_C( 18252), UINT16_C( 53613), UINT16_C( 36736), UINT16_C( 53958), UINT16_C( 13137), UINT16_C( 43763), UINT16_C( 19789), UINT16_C( 2934), UINT16_C( 22986), UINT16_C( 46964), UINT16_C( 64986), UINT16_C( 13395), UINT16_C( 61287), UINT16_C( 61677), UINT16_C( 22301), UINT16_C( 41322), UINT16_C( 35063), UINT16_C( 22663), UINT16_C( 28062), UINT16_C( 45351), UINT16_C( 21097)), simde_x_mm512_set_epu16(UINT16_C( 41007), UINT16_C( 20981), UINT16_C( 60483), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56778), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 53764), UINT16_C( 58066), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 15343), UINT16_C( 65535), UINT16_C( 61425), UINT16_C( 51924), UINT16_C( 60280), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 20374), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56022), UINT16_C( 47349), UINT16_C( 65535)) }, { simde_x_mm512_set_epu16(UINT16_C( 29192), UINT16_C( 8654), UINT16_C( 22850), UINT16_C( 62764), UINT16_C( 24193), UINT16_C( 41054), UINT16_C( 47201), UINT16_C( 29473), UINT16_C( 7514), UINT16_C( 21604), UINT16_C( 55170), UINT16_C( 17089), UINT16_C( 58910), UINT16_C( 18576), UINT16_C( 50942), UINT16_C( 19375), UINT16_C( 32394), UINT16_C( 6670), UINT16_C( 34291), UINT16_C( 10597), UINT16_C( 63848), UINT16_C( 24622), UINT16_C( 55141), UINT16_C( 33399), UINT16_C( 17676), UINT16_C( 53111), UINT16_C( 57678), UINT16_C( 53869), UINT16_C( 1069), UINT16_C( 35377), UINT16_C( 20392), UINT16_C( 6033)), simde_x_mm512_set_epu16(UINT16_C( 30110), UINT16_C( 5765), UINT16_C( 21533), UINT16_C( 32154), UINT16_C( 47788), UINT16_C( 4708), UINT16_C( 49450), UINT16_C( 15569), UINT16_C( 11433), UINT16_C( 48528), UINT16_C( 18868), UINT16_C( 49914), UINT16_C( 29591), UINT16_C( 10234), UINT16_C( 18676), UINT16_C( 18833), UINT16_C( 53298), UINT16_C( 44056), UINT16_C( 163), UINT16_C( 14043), UINT16_C( 52308), UINT16_C( 55462), UINT16_C( 1379), UINT16_C( 56593), UINT16_C( 40649), UINT16_C( 10209), UINT16_C( 62181), UINT16_C( 6865), UINT16_C( 33659), UINT16_C( 12643), UINT16_C( 58853), UINT16_C( 27590)), simde_x_mm512_set_epu16(UINT16_C( 59302), UINT16_C( 14419), UINT16_C( 44383), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 45762), UINT16_C( 65535), UINT16_C( 45042), UINT16_C( 18947), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 28810), UINT16_C( 65535), UINT16_C( 38208), UINT16_C( 65535), UINT16_C( 50726), UINT16_C( 34454), UINT16_C( 24640), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56520), UINT16_C( 65535), UINT16_C( 58325), UINT16_C( 63320), UINT16_C( 65535), UINT16_C( 60734), UINT16_C( 34728), UINT16_C( 48020), UINT16_C( 65535), UINT16_C( 33623)) }, { simde_x_mm512_set_epu16(UINT16_C( 54408), UINT16_C( 44486), UINT16_C( 24517), UINT16_C( 51207), UINT16_C( 2791), UINT16_C( 45592), UINT16_C( 48586), UINT16_C( 36784), UINT16_C( 53369), UINT16_C( 43811), UINT16_C( 65046), UINT16_C( 44235), UINT16_C( 48681), UINT16_C( 21401), UINT16_C( 55417), UINT16_C( 5581), UINT16_C( 56410), UINT16_C( 42092), UINT16_C( 49678), UINT16_C( 22777), UINT16_C( 15839), UINT16_C( 59069), UINT16_C( 3836), UINT16_C( 55877), UINT16_C( 35316), UINT16_C( 40611), UINT16_C( 30925), UINT16_C( 38925), UINT16_C( 44290), UINT16_C( 48844), UINT16_C( 41388), UINT16_C( 24135)), simde_x_mm512_set_epu16(UINT16_C( 7663), UINT16_C( 4305), UINT16_C( 48670), UINT16_C( 39779), UINT16_C( 2052), UINT16_C( 40026), UINT16_C( 47264), UINT16_C( 7297), UINT16_C( 11022), UINT16_C( 64822), UINT16_C( 63292), UINT16_C( 56921), UINT16_C( 8160), UINT16_C( 61766), UINT16_C( 22014), UINT16_C( 41597), UINT16_C( 60919), UINT16_C( 45399), UINT16_C( 45462), UINT16_C( 35135), UINT16_C( 13486), UINT16_C( 42127), UINT16_C( 6466), UINT16_C( 5931), UINT16_C( 30448), UINT16_C( 27493), UINT16_C( 24921), UINT16_C( 23842), UINT16_C( 21170), UINT16_C( 62954), UINT16_C( 7914), UINT16_C( 35527)), simde_x_mm512_set_epu16(UINT16_C( 62071), UINT16_C( 48791), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 4843), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 44081), UINT16_C( 64391), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56841), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 47178), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 57912), UINT16_C( 29325), UINT16_C( 65535), UINT16_C( 10302), UINT16_C( 61808), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 55846), UINT16_C( 62767), UINT16_C( 65460), UINT16_C( 65535), UINT16_C( 49302), UINT16_C( 59662)) }, { simde_x_mm512_set_epu16(UINT16_C( 61865), UINT16_C( 23426), UINT16_C( 1768), UINT16_C( 58636), UINT16_C( 57533), UINT16_C( 19108), UINT16_C( 59802), UINT16_C( 30792), UINT16_C( 61240), UINT16_C( 6209), UINT16_C( 32476), UINT16_C( 14300), UINT16_C( 7420), UINT16_C( 1985), UINT16_C( 25770), UINT16_C( 58800), UINT16_C( 51482), UINT16_C( 20894), UINT16_C( 680), UINT16_C( 29487), UINT16_C( 45202), UINT16_C( 20181), UINT16_C( 14712), UINT16_C( 17612), UINT16_C( 16683), UINT16_C( 1453), UINT16_C( 15990), UINT16_C( 36509), UINT16_C( 51737), UINT16_C( 56324), UINT16_C( 34493), UINT16_C( 17761)), simde_x_mm512_set_epu16(UINT16_C( 37550), UINT16_C( 51250), UINT16_C( 42874), UINT16_C( 8384), UINT16_C( 13698), UINT16_C( 33689), UINT16_C( 64372), UINT16_C( 20393), UINT16_C( 17692), UINT16_C( 65383), UINT16_C( 545), UINT16_C( 27220), UINT16_C( 18321), UINT16_C( 26532), UINT16_C( 40835), UINT16_C( 14036), UINT16_C( 3666), UINT16_C( 2040), UINT16_C( 61839), UINT16_C( 38748), UINT16_C( 62699), UINT16_C( 55831), UINT16_C( 23293), UINT16_C( 13208), UINT16_C( 60975), UINT16_C( 12632), UINT16_C( 13392), UINT16_C( 63703), UINT16_C( 41286), UINT16_C( 6117), UINT16_C( 32645), UINT16_C( 56152)), simde_x_mm512_set_epu16(UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 44642), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 52797), UINT16_C( 65535), UINT16_C( 51185), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 33021), UINT16_C( 41520), UINT16_C( 25741), UINT16_C( 28517), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 55148), UINT16_C( 22934), UINT16_C( 62519), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 38005), UINT16_C( 30820), UINT16_C( 65535), UINT16_C( 14085), UINT16_C( 29382), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 62441), UINT16_C( 65535), UINT16_C( 65535)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_adds_epu16(test_vec[i].a, test_vec[i].b); simde_assert_m512i_u16(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_adds_epu16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const int16_t src[32]; const simde__mmask32 k; const uint16_t a[32]; const uint16_t b[32]; const uint16_t r[32]; } test_vec[] = { { { -INT16_C( 25480), INT16_C( 16389), INT16_C( 16810), INT16_C( 20465), -INT16_C( 11763), INT16_C( 1143), INT16_C( 11613), INT16_C( 5547), -INT16_C( 217), INT16_C( 4795), INT16_C( 5277), -INT16_C( 31526), -INT16_C( 1895), INT16_C( 7976), -INT16_C( 7252), INT16_C( 9466), -INT16_C( 129), INT16_C( 10853), INT16_C( 22080), INT16_C( 19833), -INT16_C( 4056), -INT16_C( 31151), -INT16_C( 994), INT16_C( 17819), INT16_C( 22267), -INT16_C( 26281), INT16_C( 12651), INT16_C( 1053), INT16_C( 17962), -INT16_C( 10716), INT16_C( 7721), -INT16_C( 22278) }, UINT32_C(1590845213), { UINT16_C(19382), UINT16_C(57003), UINT16_C(64828), UINT16_C(23140), UINT16_C(65529), UINT16_C(62879), UINT16_C(63062), UINT16_C(49550), UINT16_C(43815), UINT16_C(20933), UINT16_C(59889), UINT16_C( 6695), UINT16_C( 8711), UINT16_C( 9667), UINT16_C(38273), UINT16_C(14211), UINT16_C(12001), UINT16_C( 7446), UINT16_C(31275), UINT16_C( 9591), UINT16_C( 5754), UINT16_C(53274), UINT16_C(43020), UINT16_C(13201), UINT16_C(22099), UINT16_C(17797), UINT16_C(44096), UINT16_C(18271), UINT16_C( 8910), UINT16_C(20588), UINT16_C(61368), UINT16_C(39303) }, { UINT16_C(40222), UINT16_C(18870), UINT16_C(11544), UINT16_C(37486), UINT16_C(34883), UINT16_C(20322), UINT16_C(62256), UINT16_C(33922), UINT16_C( 1865), UINT16_C(35273), UINT16_C(10420), UINT16_C(33489), UINT16_C(15691), UINT16_C( 978), UINT16_C(23085), UINT16_C(19356), UINT16_C(21239), UINT16_C( 3988), UINT16_C( 895), UINT16_C(49825), UINT16_C( 907), UINT16_C(48145), UINT16_C(37878), UINT16_C(16448), UINT16_C( 2459), UINT16_C(20425), UINT16_C(39473), UINT16_C(31953), UINT16_C(42200), UINT16_C( 1407), UINT16_C( 7166), UINT16_C(62800) }, { UINT16_C(59604), UINT16_C(16389), UINT16_MAX, UINT16_C(60626), UINT16_MAX, UINT16_C( 1143), UINT16_C(11613), UINT16_C( 5547), UINT16_C(45680), UINT16_C(56206), UINT16_MAX, UINT16_C(40184), UINT16_C(24402), UINT16_C( 7976), UINT16_C(61358), UINT16_C( 9466), UINT16_C(65407), UINT16_C(11434), UINT16_C(22080), UINT16_C(19833), UINT16_C( 6661), UINT16_C(34385), UINT16_MAX, UINT16_C(29649), UINT16_C(22267), UINT16_C(38222), UINT16_MAX, UINT16_C(50224), UINT16_C(51110), UINT16_C(54820), UINT16_MAX, UINT16_C(43258) } }, { { -INT16_C( 7059), -INT16_C( 5115), -INT16_C( 22809), INT16_C( 29614), -INT16_C( 16470), -INT16_C( 24529), INT16_C( 28499), -INT16_C( 4384), -INT16_C( 21896), -INT16_C( 22211), INT16_C( 3652), INT16_C( 7206), -INT16_C( 23118), -INT16_C( 20447), INT16_C( 29121), INT16_C( 11942), -INT16_C( 21674), INT16_C( 15643), -INT16_C( 13999), -INT16_C( 1104), -INT16_C( 8311), -INT16_C( 9060), INT16_C( 31822), -INT16_C( 14646), INT16_C( 1830), INT16_C( 27504), -INT16_C( 27115), -INT16_C( 14201), -INT16_C( 22213), -INT16_C( 904), INT16_C( 7706), INT16_C( 28715) }, UINT32_C( 464406217), { UINT16_C(24079), UINT16_C(38934), UINT16_C(45630), UINT16_C(35956), UINT16_C(15919), UINT16_C(21843), UINT16_C(49989), UINT16_C(23488), UINT16_C(18521), UINT16_C(37923), UINT16_C(39921), UINT16_C( 2961), UINT16_C(48314), UINT16_C(33660), UINT16_C(10754), UINT16_C( 4510), UINT16_C(46472), UINT16_C(50858), UINT16_C( 7783), UINT16_C(38483), UINT16_C(42589), UINT16_C(41708), UINT16_C(44137), UINT16_C(49917), UINT16_C( 8436), UINT16_C(58710), UINT16_C(59324), UINT16_C(30449), UINT16_C(28067), UINT16_C(42489), UINT16_C(39063), UINT16_C( 8119) }, { UINT16_C(24909), UINT16_C(46310), UINT16_C(14719), UINT16_C(56395), UINT16_C(14303), UINT16_C(18559), UINT16_C(31971), UINT16_C(55306), UINT16_C(24733), UINT16_C(22973), UINT16_C(44616), UINT16_C(60367), UINT16_C(51227), UINT16_C(45713), UINT16_C(18528), UINT16_C(44498), UINT16_C(47273), UINT16_C(10338), UINT16_C(44529), UINT16_C(53253), UINT16_C(34020), UINT16_C(50968), UINT16_C( 8704), UINT16_C(40351), UINT16_C(23938), UINT16_C(51958), UINT16_C(50443), UINT16_C(10166), UINT16_C(18318), UINT16_C(61145), UINT16_C(43919), UINT16_C(14492) }, { UINT16_C(48988), UINT16_C(60421), UINT16_C(42727), UINT16_MAX, UINT16_C(49066), UINT16_C(41007), UINT16_MAX, UINT16_MAX, UINT16_C(43640), UINT16_C(60896), UINT16_MAX, UINT16_C( 7206), UINT16_C(42418), UINT16_C(45089), UINT16_C(29282), UINT16_C(11942), UINT16_C(43862), UINT16_C(61196), UINT16_C(52312), UINT16_MAX, UINT16_C(57225), UINT16_MAX, UINT16_C(31822), UINT16_MAX, UINT16_C(32374), UINT16_MAX, UINT16_C(38421), UINT16_C(40615), UINT16_C(46385), UINT16_C(64632), UINT16_C( 7706), UINT16_C(28715) } }, { { -INT16_C( 413), INT16_C( 21600), INT16_C( 26027), -INT16_C( 28892), INT16_C( 15593), -INT16_C( 5546), -INT16_C( 2466), -INT16_C( 7801), INT16_C( 32339), INT16_C( 24235), INT16_C( 24899), -INT16_C( 11899), INT16_C( 24488), INT16_C( 14272), INT16_C( 23562), INT16_C( 28271), -INT16_C( 12198), INT16_C( 1474), -INT16_C( 6347), INT16_C( 8084), -INT16_C( 5597), -INT16_C( 32247), -INT16_C( 28448), INT16_C( 13155), INT16_C( 3598), INT16_C( 21138), INT16_C( 6000), INT16_C( 6179), -INT16_C( 7306), -INT16_C( 32432), -INT16_C( 16577), -INT16_C( 26129) }, UINT32_C(3315511695), { UINT16_C(12952), UINT16_C(48356), UINT16_C(60701), UINT16_C(64830), UINT16_C(41341), UINT16_C(35889), UINT16_C(50095), UINT16_C( 8158), UINT16_C( 474), UINT16_C(20792), UINT16_C(35045), UINT16_C( 9426), UINT16_C(49479), UINT16_C(55230), UINT16_C(23666), UINT16_C( 2972), UINT16_C(32911), UINT16_C(44231), UINT16_C( 1389), UINT16_C(60073), UINT16_C(55974), UINT16_C(21878), UINT16_C(21661), UINT16_C(30837), UINT16_C(44374), UINT16_C(15305), UINT16_C(39733), UINT16_C(31839), UINT16_C( 7516), UINT16_C(52819), UINT16_C(61306), UINT16_C( 2521) }, { UINT16_C(41071), UINT16_C(56501), UINT16_C(24229), UINT16_C(19399), UINT16_C(15673), UINT16_C(54945), UINT16_C( 5778), UINT16_C(59470), UINT16_C( 6083), UINT16_C(63523), UINT16_C(33458), UINT16_C( 3700), UINT16_C(51360), UINT16_C( 6877), UINT16_C(46775), UINT16_C(10019), UINT16_C(55383), UINT16_C(64515), UINT16_C(51766), UINT16_C(28488), UINT16_C(59656), UINT16_C(39494), UINT16_C(38143), UINT16_C(49794), UINT16_C(42412), UINT16_C(24250), UINT16_C(11815), UINT16_C(51053), UINT16_C(19190), UINT16_C(44769), UINT16_C( 1024), UINT16_C(22485) }, { UINT16_C(54023), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C(15593), UINT16_C(59990), UINT16_C(63070), UINT16_MAX, UINT16_C( 6557), UINT16_C(24235), UINT16_C(24899), UINT16_C(53637), UINT16_MAX, UINT16_C(62107), UINT16_C(23562), UINT16_C(12991), UINT16_C(53338), UINT16_MAX, UINT16_C(53155), UINT16_MAX, UINT16_MAX, UINT16_C(33289), UINT16_C(37088), UINT16_MAX, UINT16_MAX, UINT16_C(21138), UINT16_C(51548), UINT16_C( 6179), UINT16_C(58230), UINT16_C(33104), UINT16_C(62330), UINT16_C(25006) } }, { { -INT16_C( 10020), INT16_C( 4948), -INT16_C( 25437), -INT16_C( 21630), -INT16_C( 14203), -INT16_C( 31675), -INT16_C( 14499), INT16_C( 2374), INT16_C( 108), -INT16_C( 27801), -INT16_C( 11218), INT16_C( 9563), INT16_C( 15390), INT16_C( 8147), -INT16_C( 22463), INT16_C( 7542), -INT16_C( 13696), INT16_C( 9008), -INT16_C( 19610), -INT16_C( 5170), INT16_C( 4987), -INT16_C( 10129), -INT16_C( 18982), INT16_C( 18145), INT16_C( 18869), -INT16_C( 6950), INT16_C( 13597), INT16_C( 15369), -INT16_C( 9103), -INT16_C( 19877), -INT16_C( 11900), INT16_C( 1232) }, UINT32_C( 36176028), { UINT16_C(63155), UINT16_C(12270), UINT16_C(23818), UINT16_C(58375), UINT16_C(59667), UINT16_C(51243), UINT16_C( 1330), UINT16_C(20396), UINT16_C(46394), UINT16_C(43915), UINT16_C(59025), UINT16_C( 5470), UINT16_C(11960), UINT16_C(21530), UINT16_C(16942), UINT16_C(57942), UINT16_C(17464), UINT16_C(16913), UINT16_C( 6306), UINT16_C(46375), UINT16_C(20993), UINT16_C(13181), UINT16_C(10839), UINT16_C(37251), UINT16_C( 3807), UINT16_C(28988), UINT16_C(39669), UINT16_C(44422), UINT16_C(41160), UINT16_C(63233), UINT16_C(22498), UINT16_C( 7129) }, { UINT16_C(60060), UINT16_C(15965), UINT16_C(33794), UINT16_C( 1267), UINT16_C(28886), UINT16_C(11575), UINT16_C(47770), UINT16_C(31422), UINT16_C(64457), UINT16_C(48875), UINT16_C(29077), UINT16_C(24171), UINT16_C(27666), UINT16_C(62549), UINT16_C(11971), UINT16_C(24335), UINT16_C(27928), UINT16_C( 6813), UINT16_C(37105), UINT16_C(51230), UINT16_C(22017), UINT16_C(39925), UINT16_C(46096), UINT16_C(55573), UINT16_C( 175), UINT16_C(17559), UINT16_C( 626), UINT16_C(33954), UINT16_C(63342), UINT16_C(12920), UINT16_C(34853), UINT16_C(15761) }, { UINT16_C(55516), UINT16_C( 4948), UINT16_C(57612), UINT16_C(59642), UINT16_MAX, UINT16_C(33861), UINT16_C(51037), UINT16_C(51818), UINT16_C( 108), UINT16_C(37735), UINT16_C(54318), UINT16_C( 9563), UINT16_C(15390), UINT16_C( 8147), UINT16_C(43073), UINT16_C( 7542), UINT16_C(51840), UINT16_C( 9008), UINT16_C(45926), UINT16_MAX, UINT16_C( 4987), UINT16_C(53106), UINT16_C(46554), UINT16_C(18145), UINT16_C(18869), UINT16_C(46547), UINT16_C(13597), UINT16_C(15369), UINT16_C(56433), UINT16_C(45659), UINT16_C(53636), UINT16_C( 1232) } }, { { INT16_C( 12277), -INT16_C( 6568), INT16_C( 30399), -INT16_C( 16210), -INT16_C( 23348), -INT16_C( 8868), INT16_C( 29016), INT16_C( 1974), INT16_C( 20082), -INT16_C( 7093), -INT16_C( 4528), -INT16_C( 16536), -INT16_C( 7963), INT16_C( 3057), -INT16_C( 32152), INT16_C( 23880), -INT16_C( 24399), INT16_C( 28996), -INT16_C( 3561), -INT16_C( 7375), -INT16_C( 29290), -INT16_C( 4416), INT16_C( 30719), INT16_C( 29173), INT16_C( 16837), INT16_C( 5461), -INT16_C( 17105), INT16_C( 5332), -INT16_C( 14947), INT16_C( 1567), INT16_C( 26696), -INT16_C( 1693) }, UINT32_C( 527083272), { UINT16_C(40090), UINT16_C(12291), UINT16_C(49961), UINT16_C(10271), UINT16_C( 5178), UINT16_C(65433), UINT16_C(61013), UINT16_C(33813), UINT16_C(59819), UINT16_C(18841), UINT16_C(47279), UINT16_C(63311), UINT16_C(45600), UINT16_C(10736), UINT16_C(23386), UINT16_C(62536), UINT16_C(19447), UINT16_C( 8228), UINT16_C(17167), UINT16_C(18761), UINT16_C(57944), UINT16_C(44361), UINT16_C(24273), UINT16_C(31794), UINT16_C(52039), UINT16_C(63173), UINT16_C( 5251), UINT16_C(42221), UINT16_C(57031), UINT16_C( 8653), UINT16_C( 5433), UINT16_C(12309) }, { UINT16_C(14689), UINT16_C(28752), UINT16_C(39293), UINT16_C(54713), UINT16_C( 636), UINT16_C(19842), UINT16_C(46176), UINT16_C(43209), UINT16_C(36735), UINT16_C( 926), UINT16_C(36003), UINT16_C(27303), UINT16_C(29802), UINT16_C(41867), UINT16_C(41097), UINT16_C(60115), UINT16_C( 9178), UINT16_C(22362), UINT16_C( 5309), UINT16_C(14636), UINT16_C(44566), UINT16_C(30598), UINT16_C(20323), UINT16_C(57887), UINT16_C(48606), UINT16_C(33509), UINT16_C(35913), UINT16_C(46060), UINT16_C(30720), UINT16_C(35414), UINT16_C(10520), UINT16_C(62068) }, { UINT16_C(12277), UINT16_C(58968), UINT16_C(30399), UINT16_C(64984), UINT16_C(42188), UINT16_C(56668), UINT16_C(29016), UINT16_C( 1974), UINT16_MAX, UINT16_C(19767), UINT16_MAX, UINT16_C(49000), UINT16_C(57573), UINT16_C(52603), UINT16_C(33384), UINT16_MAX, UINT16_C(41137), UINT16_C(30590), UINT16_C(61975), UINT16_C(33397), UINT16_C(36246), UINT16_MAX, UINT16_C(44596), UINT16_C(29173), UINT16_MAX, UINT16_MAX, UINT16_C(41164), UINT16_MAX, UINT16_MAX, UINT16_C( 1567), UINT16_C(26696), UINT16_C(63843) } }, { { -INT16_C( 12467), INT16_C( 2633), INT16_C( 30179), -INT16_C( 1725), -INT16_C( 14044), -INT16_C( 30864), -INT16_C( 28904), -INT16_C( 2199), INT16_C( 20301), -INT16_C( 27015), INT16_C( 26075), -INT16_C( 9142), -INT16_C( 24355), -INT16_C( 2458), -INT16_C( 9526), INT16_C( 6120), INT16_C( 12969), -INT16_C( 29663), INT16_C( 25767), -INT16_C( 13434), -INT16_C( 2515), INT16_C( 17746), -INT16_C( 17274), -INT16_C( 11460), -INT16_C( 19189), -INT16_C( 6551), -INT16_C( 19685), -INT16_C( 1854), INT16_C( 10324), INT16_C( 7918), -INT16_C( 10493), -INT16_C( 21451) }, UINT32_C(2956547593), { UINT16_C(49082), UINT16_C(59260), UINT16_C(52917), UINT16_C(15148), UINT16_C(27018), UINT16_C(38158), UINT16_C(30750), UINT16_C(14716), UINT16_C(15915), UINT16_C(32562), UINT16_C( 8295), UINT16_C(27293), UINT16_C(54007), UINT16_C( 22), UINT16_C(20264), UINT16_C(58033), UINT16_C(11534), UINT16_C(50377), UINT16_C(63227), UINT16_C(34559), UINT16_C( 3679), UINT16_C(32027), UINT16_C(38790), UINT16_C(45495), UINT16_C(59862), UINT16_C(15665), UINT16_C(52745), UINT16_C( 423), UINT16_C(48545), UINT16_C(51457), UINT16_C(45581), UINT16_C( 7084) }, { UINT16_C(30175), UINT16_C(56287), UINT16_C(57195), UINT16_C(51809), UINT16_C(31981), UINT16_C(29512), UINT16_C(65300), UINT16_C(59940), UINT16_C(21992), UINT16_C(61735), UINT16_C(52772), UINT16_C(50674), UINT16_C(62603), UINT16_C(39054), UINT16_C(15014), UINT16_C(34484), UINT16_C(37808), UINT16_C( 7009), UINT16_C(49778), UINT16_C(24550), UINT16_C(11838), UINT16_C(21202), UINT16_C(63277), UINT16_C( 5436), UINT16_C(25420), UINT16_C(28678), UINT16_C(63793), UINT16_C(48437), UINT16_C(50413), UINT16_C(37717), UINT16_C( 2558), UINT16_C(44569) }, { UINT16_MAX, UINT16_C( 2633), UINT16_C(30179), UINT16_MAX, UINT16_C(51492), UINT16_C(34672), UINT16_C(36632), UINT16_C(63337), UINT16_C(20301), UINT16_MAX, UINT16_C(61067), UINT16_C(56394), UINT16_MAX, UINT16_C(63078), UINT16_C(35278), UINT16_C( 6120), UINT16_C(49342), UINT16_C(35873), UINT16_C(25767), UINT16_C(59109), UINT16_C(15517), UINT16_C(53229), UINT16_C(48262), UINT16_C(54076), UINT16_C(46347), UINT16_C(58985), UINT16_C(45851), UINT16_C(63682), UINT16_MAX, UINT16_MAX, UINT16_C(55043), UINT16_C(51653) } }, { { INT16_C( 31389), INT16_C( 4042), -INT16_C( 20420), INT16_C( 31599), INT16_C( 16862), INT16_C( 3021), INT16_C( 2616), -INT16_C( 31456), INT16_C( 9837), -INT16_C( 24587), INT16_C( 11039), INT16_C( 3164), -INT16_C( 19985), -INT16_C( 4704), -INT16_C( 17989), INT16_C( 22684), INT16_C( 26164), INT16_C( 28775), -INT16_C( 10730), -INT16_C( 2837), -INT16_C( 18152), INT16_C( 20735), INT16_C( 8131), INT16_C( 12501), -INT16_C( 13499), INT16_C( 26063), INT16_C( 11254), -INT16_C( 6799), INT16_C( 4573), -INT16_C( 26414), INT16_C( 28363), -INT16_C( 16) }, UINT32_C(3933165524), { UINT16_C(23342), UINT16_C(18142), UINT16_C(56596), UINT16_C(55190), UINT16_C(27900), UINT16_C(16903), UINT16_C(55095), UINT16_C(11687), UINT16_C( 6146), UINT16_C(57106), UINT16_C(58410), UINT16_C(62839), UINT16_C(26451), UINT16_C(10228), UINT16_C(25535), UINT16_C(60690), UINT16_C(61630), UINT16_C(53811), UINT16_C(51662), UINT16_C(51881), UINT16_C(45365), UINT16_C(27660), UINT16_C(45960), UINT16_C(35481), UINT16_C(43980), UINT16_C(63082), UINT16_C(57744), UINT16_C(58347), UINT16_C(57161), UINT16_C( 2058), UINT16_C( 7234), UINT16_C( 501) }, { UINT16_C(10253), UINT16_C(56275), UINT16_C(32241), UINT16_C(10149), UINT16_C(45614), UINT16_C(46739), UINT16_C(11621), UINT16_C(12608), UINT16_C(43736), UINT16_C(26663), UINT16_C( 4748), UINT16_C(54603), UINT16_C(22257), UINT16_C(13533), UINT16_C(53874), UINT16_C(32565), UINT16_C( 2298), UINT16_C(60250), UINT16_C( 133), UINT16_C(45842), UINT16_C(42674), UINT16_C( 5993), UINT16_C(43731), UINT16_C(43849), UINT16_C(28756), UINT16_C(57364), UINT16_C(24451), UINT16_C(29877), UINT16_C(37557), UINT16_C(10408), UINT16_C(56676), UINT16_C(24231) }, { UINT16_C(31389), UINT16_C( 4042), UINT16_MAX, UINT16_C(31599), UINT16_MAX, UINT16_C( 3021), UINT16_MAX, UINT16_C(24295), UINT16_C(49882), UINT16_MAX, UINT16_C(63158), UINT16_C( 3164), UINT16_C(48708), UINT16_C(60832), UINT16_MAX, UINT16_C(22684), UINT16_C(63928), UINT16_MAX, UINT16_C(51795), UINT16_MAX, UINT16_C(47384), UINT16_C(33653), UINT16_MAX, UINT16_C(12501), UINT16_C(52037), UINT16_MAX, UINT16_C(11254), UINT16_MAX, UINT16_C( 4573), UINT16_C(12466), UINT16_C(63910), UINT16_C(24732) } }, { { INT16_C( 742), INT16_C( 27466), INT16_C( 23554), -INT16_C( 19425), -INT16_C( 30718), -INT16_C( 10805), INT16_C( 5170), -INT16_C( 30847), -INT16_C( 27259), INT16_C( 2151), INT16_C( 7668), -INT16_C( 21892), INT16_C( 9647), INT16_C( 5330), INT16_C( 30978), -INT16_C( 6030), -INT16_C( 17285), INT16_C( 32084), INT16_C( 29465), INT16_C( 6961), -INT16_C( 517), INT16_C( 12017), INT16_C( 29201), -INT16_C( 26955), INT16_C( 7175), -INT16_C( 1122), INT16_C( 6969), -INT16_C( 5723), INT16_C( 30528), INT16_C( 17149), INT16_C( 28657), INT16_C( 27691) }, UINT32_C(1172995884), { UINT16_C( 7154), UINT16_C(60768), UINT16_C(20760), UINT16_C(10779), UINT16_C(53443), UINT16_C(51904), UINT16_C(24557), UINT16_C( 9926), UINT16_C(27514), UINT16_C(47631), UINT16_C( 3299), UINT16_C(54524), UINT16_C(10108), UINT16_C(43072), UINT16_C(10918), UINT16_C(39149), UINT16_C(19782), UINT16_C(24198), UINT16_C(41375), UINT16_C(25224), UINT16_C(18802), UINT16_C(24365), UINT16_C(62376), UINT16_C( 8837), UINT16_C(38238), UINT16_C(16860), UINT16_C(55457), UINT16_C( 7445), UINT16_C(22016), UINT16_C(42693), UINT16_C(45696), UINT16_C(50751) }, { UINT16_C(50432), UINT16_C(40741), UINT16_C(44390), UINT16_C(55297), UINT16_C(12022), UINT16_C(40503), UINT16_C(48417), UINT16_C(32960), UINT16_C(40018), UINT16_C(62401), UINT16_C(55157), UINT16_C(29969), UINT16_C(54829), UINT16_C(44315), UINT16_C(23177), UINT16_C(35188), UINT16_C(39199), UINT16_C(34344), UINT16_C(10566), UINT16_C(15710), UINT16_C(38488), UINT16_C(31195), UINT16_C(40019), UINT16_C(42489), UINT16_C(47928), UINT16_C(44440), UINT16_C(43410), UINT16_C(48930), UINT16_C(16000), UINT16_C( 2412), UINT16_C(57496), UINT16_C(47250) }, { UINT16_C( 742), UINT16_C(27466), UINT16_C(65150), UINT16_MAX, UINT16_C(34818), UINT16_MAX, UINT16_C( 5170), UINT16_C(34689), UINT16_MAX, UINT16_MAX, UINT16_C(58456), UINT16_MAX, UINT16_C(64937), UINT16_MAX, UINT16_C(34095), UINT16_C(59506), UINT16_C(48251), UINT16_C(58542), UINT16_C(29465), UINT16_C(40934), UINT16_C(65019), UINT16_C(55560), UINT16_MAX, UINT16_C(51326), UINT16_MAX, UINT16_C(64414), UINT16_MAX, UINT16_C(59813), UINT16_C(30528), UINT16_C(17149), UINT16_MAX, UINT16_C(27691) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i src = simde_mm512_loadu_epi16(test_vec[i].src); simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a); simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b); simde__m512i r = simde_mm512_mask_adds_epu16(src, test_vec[i].k, a, b); simde_test_x86_assert_equal_u16x32(r, simde_mm512_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_mm512_maskz_adds_epu16 (SIMDE_MUNIT_TEST_ARGS) { static const struct { const simde__mmask32 k; const uint16_t a[32]; const uint16_t b[32]; const uint16_t r[32]; } test_vec[] = { { UINT32_C( 298122215), { UINT16_C(43877), UINT16_C(21426), UINT16_C(12985), UINT16_C(37214), UINT16_C(44901), UINT16_C(48588), UINT16_C(18525), UINT16_C(41048), UINT16_C(22359), UINT16_C(46043), UINT16_C(52738), UINT16_C(43622), UINT16_C(52530), UINT16_C( 6625), UINT16_C(42696), UINT16_C(11818), UINT16_C(56401), UINT16_C( 2689), UINT16_C(57359), UINT16_C(29852), UINT16_C(26767), UINT16_C(60465), UINT16_C(35504), UINT16_C( 2188), UINT16_C(26593), UINT16_C(58555), UINT16_C( 8501), UINT16_C(26510), UINT16_C(28654), UINT16_C(46976), UINT16_C(43541), UINT16_C(26597) }, { UINT16_C(26246), UINT16_C(38257), UINT16_C( 3398), UINT16_C(54538), UINT16_C(15221), UINT16_C( 9921), UINT16_C(19909), UINT16_C(42798), UINT16_C(59828), UINT16_C(59787), UINT16_C( 6411), UINT16_C(63824), UINT16_C(53384), UINT16_C(40624), UINT16_C(38266), UINT16_C( 261), UINT16_C(30460), UINT16_C(17046), UINT16_C(41092), UINT16_C(63768), UINT16_C(55772), UINT16_C(41247), UINT16_C(19751), UINT16_C(56136), UINT16_C(54071), UINT16_C(17093), UINT16_C( 5612), UINT16_C(30011), UINT16_C(60646), UINT16_C(24595), UINT16_C( 6273), UINT16_C(32097) }, { UINT16_MAX, UINT16_C(59683), UINT16_C(16383), UINT16_C( 0), UINT16_C( 0), UINT16_C(58509), UINT16_C(38434), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C(47249), UINT16_MAX, UINT16_C(12079), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(55255), UINT16_C(58324), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, { UINT32_C( 314636430), { UINT16_C(55448), UINT16_C(29708), UINT16_C(11185), UINT16_C(55318), UINT16_C(24185), UINT16_C(45236), UINT16_C(31026), UINT16_C( 7922), UINT16_C(11662), UINT16_C(29843), UINT16_C(42521), UINT16_C(39893), UINT16_C(14014), UINT16_C(19736), UINT16_C(55342), UINT16_C(51039), UINT16_C(27568), UINT16_C(25147), UINT16_C(20887), UINT16_C( 4154), UINT16_C(61104), UINT16_C(58048), UINT16_C(45671), UINT16_C(62976), UINT16_C(38111), UINT16_C(63850), UINT16_C(16186), UINT16_C(63892), UINT16_C(44150), UINT16_C(42054), UINT16_C(42373), UINT16_C(13675) }, { UINT16_C(42769), UINT16_C(43159), UINT16_C(54008), UINT16_C(43192), UINT16_C(30912), UINT16_C(10378), UINT16_C(35626), UINT16_C( 2334), UINT16_C(34847), UINT16_C(22786), UINT16_C(38600), UINT16_C(15954), UINT16_C(38979), UINT16_C(51426), UINT16_C(20030), UINT16_C(20477), UINT16_C(38389), UINT16_C(60919), UINT16_C(44903), UINT16_C(10134), UINT16_C( 8231), UINT16_C(20815), UINT16_C(28075), UINT16_C(51802), UINT16_C(24054), UINT16_C(48676), UINT16_C(30451), UINT16_C(14076), UINT16_C(56847), UINT16_C(19966), UINT16_C(64556), UINT16_C( 8604) }, { UINT16_C( 0), UINT16_MAX, UINT16_C(65193), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(10256), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(55847), UINT16_C(52993), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, { UINT32_C(4161770385), { UINT16_C(42306), UINT16_C(26911), UINT16_C(28613), UINT16_C(29114), UINT16_C( 5340), UINT16_C(53819), UINT16_C(24433), UINT16_C(26000), UINT16_C(36054), UINT16_C(58779), UINT16_C(39531), UINT16_C(38706), UINT16_C(52886), UINT16_C(10169), UINT16_C(51297), UINT16_C(41759), UINT16_C(15981), UINT16_C(12812), UINT16_C(50861), UINT16_C(35491), UINT16_C(57306), UINT16_C(19548), UINT16_C(60734), UINT16_C( 5297), UINT16_C(19577), UINT16_C(58617), UINT16_C(11238), UINT16_C(31868), UINT16_C(13817), UINT16_C(23203), UINT16_C(49917), UINT16_C(27389) }, { UINT16_C( 2305), UINT16_C(44700), UINT16_C(16591), UINT16_C(43576), UINT16_C(38175), UINT16_C(24054), UINT16_C(42882), UINT16_C(64370), UINT16_C(27635), UINT16_C(56032), UINT16_C(23703), UINT16_C(36950), UINT16_C(64145), UINT16_C(36587), UINT16_C(59580), UINT16_C(48632), UINT16_C(38130), UINT16_C(49516), UINT16_C(42196), UINT16_C(62315), UINT16_C(24889), UINT16_C(47953), UINT16_C(49928), UINT16_C(64695), UINT16_C(38702), UINT16_C(50646), UINT16_C(11507), UINT16_C(33878), UINT16_C(16678), UINT16_C(58130), UINT16_C( 2601), UINT16_C( 7072) }, { UINT16_C(44611), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(43515), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C(63689), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C(54111), UINT16_C(62328), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C(30495), UINT16_MAX, UINT16_C(52518), UINT16_C(34461) } }, { UINT32_C(1943866526), { UINT16_C(18609), UINT16_C(60006), UINT16_C(47018), UINT16_C(45734), UINT16_C(23930), UINT16_C(43438), UINT16_C(34036), UINT16_C(59246), UINT16_C(50353), UINT16_C(55147), UINT16_C(32005), UINT16_C(12218), UINT16_C(23431), UINT16_C( 9546), UINT16_C(10087), UINT16_C( 6296), UINT16_C(65392), UINT16_C( 6659), UINT16_C(43446), UINT16_C(12748), UINT16_C(31494), UINT16_C(64218), UINT16_C(18687), UINT16_C(45281), UINT16_C(19469), UINT16_C( 4744), UINT16_C(17097), UINT16_C(20545), UINT16_C(35997), UINT16_C( 1397), UINT16_C( 3763), UINT16_C( 8989) }, { UINT16_C( 8205), UINT16_C(49981), UINT16_C( 2761), UINT16_C(53236), UINT16_C(52869), UINT16_C(33993), UINT16_C(43543), UINT16_C( 9269), UINT16_C(48630), UINT16_C(48950), UINT16_C(30975), UINT16_C(40207), UINT16_C(34052), UINT16_C(47010), UINT16_C(49043), UINT16_C(41179), UINT16_C( 6368), UINT16_C(43363), UINT16_C(22562), UINT16_C(42873), UINT16_C(16934), UINT16_C(15660), UINT16_C(25069), UINT16_C(58209), UINT16_C(38942), UINT16_C( 7587), UINT16_C(45584), UINT16_C( 5306), UINT16_C(23607), UINT16_C(51915), UINT16_C(42524), UINT16_C(64618) }, { UINT16_C( 0), UINT16_MAX, UINT16_C(49779), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C(62980), UINT16_C(52425), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C(55621), UINT16_C(48428), UINT16_C( 0), UINT16_C(43756), UINT16_MAX, UINT16_C(58411), UINT16_C(12331), UINT16_C( 0), UINT16_C( 0), UINT16_C(59604), UINT16_C(53312), UINT16_C(46287), UINT16_C( 0) } }, { UINT32_C(3785739967), { UINT16_C( 7718), UINT16_C(19593), UINT16_C(46433), UINT16_C(20106), UINT16_C(60182), UINT16_C(13361), UINT16_C(54403), UINT16_C(37713), UINT16_C( 3207), UINT16_C(48807), UINT16_C(29544), UINT16_C(33929), UINT16_C(62233), UINT16_C(55424), UINT16_C( 9921), UINT16_C(59322), UINT16_C(17220), UINT16_C(42292), UINT16_C(48888), UINT16_C( 3827), UINT16_C( 9641), UINT16_C(11586), UINT16_C(37881), UINT16_C(32960), UINT16_C(26783), UINT16_C( 2111), UINT16_C(51419), UINT16_C(62604), UINT16_C( 3515), UINT16_C(32205), UINT16_C(34611), UINT16_C(30564) }, { UINT16_C(39114), UINT16_C(49693), UINT16_C( 4182), UINT16_C( 208), UINT16_C( 4661), UINT16_C(12077), UINT16_C(60837), UINT16_C(17839), UINT16_C(61013), UINT16_C(12365), UINT16_C(55734), UINT16_C(29221), UINT16_C(62182), UINT16_C( 6639), UINT16_C(21369), UINT16_C(17297), UINT16_C(44780), UINT16_C(16901), UINT16_C(54718), UINT16_C(62530), UINT16_C(28647), UINT16_C(35875), UINT16_C(53853), UINT16_C(45777), UINT16_C( 7873), UINT16_C(30691), UINT16_C( 2296), UINT16_C(57065), UINT16_C(55546), UINT16_C(29688), UINT16_C(35116), UINT16_C( 6326) }, { UINT16_C(46832), UINT16_MAX, UINT16_C(50615), UINT16_C(20314), UINT16_C(64843), UINT16_C(25438), UINT16_C( 0), UINT16_C(55552), UINT16_C( 0), UINT16_C(61172), UINT16_MAX, UINT16_C(63150), UINT16_C( 0), UINT16_C( 0), UINT16_C(31290), UINT16_MAX, UINT16_C(62000), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C(47461), UINT16_C( 0), UINT16_MAX, UINT16_C(34656), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(61893), UINT16_MAX, UINT16_C(36890) } }, { UINT32_C(4116364087), { UINT16_C(40336), UINT16_C(30697), UINT16_C( 3084), UINT16_C(26883), UINT16_C(54751), UINT16_C(40988), UINT16_C(65523), UINT16_C(60183), UINT16_C( 263), UINT16_C( 458), UINT16_C(49881), UINT16_C( 1396), UINT16_C(10827), UINT16_C(33309), UINT16_C(30949), UINT16_C(30071), UINT16_C(24853), UINT16_C( 8684), UINT16_C(61293), UINT16_C(19595), UINT16_C(42948), UINT16_C(47340), UINT16_C( 1190), UINT16_C(44451), UINT16_C(27909), UINT16_C(57006), UINT16_C( 8751), UINT16_C(31460), UINT16_C( 332), UINT16_C(12796), UINT16_C(29817), UINT16_C(36518) }, { UINT16_C(37589), UINT16_C(17072), UINT16_C(15233), UINT16_C(18063), UINT16_C(31714), UINT16_C(35070), UINT16_C(41343), UINT16_C(33845), UINT16_C(58127), UINT16_C(15971), UINT16_C(18181), UINT16_C(20921), UINT16_C(46408), UINT16_C(49794), UINT16_C(10281), UINT16_C(65104), UINT16_C( 186), UINT16_C(15169), UINT16_C(53307), UINT16_C( 7553), UINT16_C(32587), UINT16_C(52133), UINT16_C(55841), UINT16_C(12367), UINT16_C(45757), UINT16_C(49774), UINT16_C(10233), UINT16_C(16915), UINT16_C(38365), UINT16_C( 1540), UINT16_C(21693), UINT16_C(30469) }, { UINT16_MAX, UINT16_C(47769), UINT16_C(18317), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C(58390), UINT16_C(16429), UINT16_C( 0), UINT16_C(22317), UINT16_C(57235), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C(23853), UINT16_C( 0), UINT16_C(27148), UINT16_MAX, UINT16_C( 0), UINT16_C(57031), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C(18984), UINT16_C( 0), UINT16_C(38697), UINT16_C(14336), UINT16_C(51510), UINT16_MAX } }, { UINT32_C(2427668053), { UINT16_C(13334), UINT16_C(25006), UINT16_C(21428), UINT16_C(54572), UINT16_C(31790), UINT16_C(60165), UINT16_C(29486), UINT16_C(10414), UINT16_C(49563), UINT16_C(30826), UINT16_C(28247), UINT16_C( 5246), UINT16_C(33730), UINT16_C( 6028), UINT16_C(16329), UINT16_C(57256), UINT16_C(22131), UINT16_C(10049), UINT16_C(28073), UINT16_C(55292), UINT16_C( 489), UINT16_C( 6339), UINT16_C(29045), UINT16_C( 4160), UINT16_C(43570), UINT16_C(35208), UINT16_C( 1560), UINT16_C(55966), UINT16_C(10890), UINT16_C(21490), UINT16_C(39529), UINT16_C(56371) }, { UINT16_C(29936), UINT16_C(39172), UINT16_C( 225), UINT16_C(52081), UINT16_C(13314), UINT16_C(30691), UINT16_C( 9125), UINT16_C(55175), UINT16_C( 4045), UINT16_C(58721), UINT16_C(65301), UINT16_C(40895), UINT16_C(45353), UINT16_C(37619), UINT16_C( 9803), UINT16_C(15214), UINT16_C(29338), UINT16_C(31701), UINT16_C(18035), UINT16_C(30022), UINT16_C(10618), UINT16_C( 8172), UINT16_C(29516), UINT16_C( 6646), UINT16_C(22402), UINT16_C(38910), UINT16_C(48726), UINT16_C(32567), UINT16_C(10863), UINT16_C(47889), UINT16_C(32848), UINT16_C(60150) }, { UINT16_C(43270), UINT16_C( 0), UINT16_C(21653), UINT16_C( 0), UINT16_C(45104), UINT16_C( 0), UINT16_C(38611), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(26132), UINT16_C( 0), UINT16_C(51469), UINT16_C(41750), UINT16_C( 0), UINT16_C( 0), UINT16_C(11107), UINT16_C(14511), UINT16_C( 0), UINT16_C(10806), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C(21753), UINT16_C( 0), UINT16_C( 0), UINT16_MAX } }, { UINT32_C(1701170162), { UINT16_C(44049), UINT16_C(35802), UINT16_C(50901), UINT16_C( 8874), UINT16_C(41273), UINT16_C(47931), UINT16_C(15096), UINT16_C(20307), UINT16_C(35576), UINT16_C(26574), UINT16_C(57524), UINT16_C( 1058), UINT16_C( 6496), UINT16_C(21230), UINT16_C(21476), UINT16_C(63160), UINT16_C(37631), UINT16_C(54657), UINT16_C(11353), UINT16_C(37623), UINT16_C(13005), UINT16_C(50510), UINT16_C(41324), UINT16_C(25620), UINT16_C(58155), UINT16_C(57292), UINT16_C(61123), UINT16_C( 9187), UINT16_C(53511), UINT16_C(60533), UINT16_C(11556), UINT16_C( 9442) }, { UINT16_C(25536), UINT16_C( 6649), UINT16_C(61583), UINT16_C(23723), UINT16_C(63778), UINT16_C(36642), UINT16_C(13978), UINT16_C(50675), UINT16_C(48921), UINT16_C(56484), UINT16_C(34734), UINT16_C(46591), UINT16_C(30040), UINT16_C(32161), UINT16_C(33698), UINT16_C(25249), UINT16_C(39655), UINT16_C(30331), UINT16_C(10122), UINT16_C(44243), UINT16_C(62752), UINT16_C(47931), UINT16_C(12075), UINT16_C(17792), UINT16_C( 9710), UINT16_C(39969), UINT16_C( 8620), UINT16_C( 1362), UINT16_C(62358), UINT16_C(14466), UINT16_C( 9079), UINT16_C(24219) }, { UINT16_C( 0), UINT16_C(42451), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C(29074), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C(47649), UINT16_C( 0), UINT16_C( 0), UINT16_C(55174), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C(21475), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C(53399), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C(20635), UINT16_C( 0) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a); simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b); simde__m512i r = simde_mm512_maskz_adds_epu16(test_vec[i].k, a, b); simde_test_x86_assert_equal_u16x32(r, simde_mm512_loadu_epi16(test_vec[i].r)); } return 0; } static int test_simde_x_mm_adds_epi32 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const struct { const int32_t a[4]; const int32_t b[4]; const int32_t r[4]; } test_vec[] = { { { INT32_C( 795043823), INT32_C( 1677977077), -INT32_C( 1932655024), -INT32_C( 289899915) }, { -INT32_C( 1044210742), INT32_C( 668338078), INT32_C( 1187560581), INT32_C( 40306706) }, { -INT32_C( 249166919), INT32_MAX, -INT32_C( 745094443), -INT32_C( 249593209) } }, { { INT32_C( 1697761904), -INT32_C( 3525457), -INT32_C( 1333028806), -INT32_C( 593607662) }, { INT32_C( 2107466207), -INT32_C( 291146904), INT32_C( 1110732080), -INT32_C( 431711370) }, { INT32_MAX, -INT32_C( 294672361), -INT32_C( 222296726), -INT32_C( 1025319032) } }, { { INT32_C( 357266789), -INT32_C( 468445782), -INT32_C( 1080778579), -INT32_C( 1013238812) }, { -INT32_C( 62900076), -INT32_C( 588585556), -INT32_C( 920773037), INT32_C( 531588025) }, { INT32_C( 294366713), -INT32_C( 1057031338), -INT32_C( 2001551616), -INT32_C( 481650787) } }, { { -INT32_C( 2110457128), -INT32_C( 1117304816), -INT32_C( 864158744), -INT32_C( 1030809554) }, { -INT32_C( 37760943), INT32_C( 148482485), -INT32_C( 2116945976), INT32_C( 866156634) }, { INT32_MIN, -INT32_C( 968822331), INT32_MIN, -INT32_C( 164652920) } }, { { -INT32_C( 1951017861), INT32_C( 88611869), INT32_C( 1188218136), INT32_C( 789144030) }, { -INT32_C( 416495567), INT32_C( 971965809), INT32_C( 1471922684), -INT32_C( 1131783359) }, { INT32_MIN, INT32_C( 1060577678), INT32_MAX, -INT32_C( 342639329) } }, { { INT32_C( 1296514864), INT32_C( 1951567964), INT32_C( 867837013), -INT32_C( 1218264186) }, { -INT32_C( 39940469), -INT32_C( 1875472749), -INT32_C( 1863847601), INT32_C( 2102227277) }, { INT32_C( 1256574395), INT32_C( 76095215), -INT32_C( 996010588), INT32_C( 883963091) } }, { { INT32_C( 214602928), INT32_C( 2055216164), -INT32_C( 944948415), -INT32_C( 1971449602) }, { INT32_C( 847715742), -INT32_C( 87900757), -INT32_C( 58021457), -INT32_C( 897984742) }, { INT32_C( 1062318670), INT32_C( 1967315407), -INT32_C( 1002969872), INT32_MIN } }, { { -INT32_C( 1864940692), -INT32_C( 1609935009), -INT32_C( 1855473518), INT32_C( 1713104584) }, { -INT32_C( 1365728765), INT32_C( 245914207), INT32_C( 487207427), INT32_C( 1994949386) }, { INT32_MIN, -INT32_C( 1364020802), -INT32_C( 1368266091), INT32_MAX } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m128i a = simde_x_mm_loadu_epi32(test_vec[i].a); simde__m128i b = simde_x_mm_loadu_epi32(test_vec[i].b); simde__m128i r = simde_x_mm_adds_epi32(a, b); simde_test_x86_assert_equal_i32x4(r, simde_x_mm_loadu_epi32(test_vec[i].r)); } return 0; #else fputc('\n', stdout); for (int i = 0 ; i < 8 ; i++) { simde__m128i a = simde_test_x86_random_i32x4(); simde__m128i b = simde_test_x86_random_i32x4(); simde__m128i r = simde_x_mm_adds_epi32(a, b); simde_test_x86_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_x86_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_x86_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); } return 1; #endif } static int test_simde_x_mm256_adds_epi32 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const struct { const int32_t a[8]; const int32_t b[8]; const int32_t r[8]; } test_vec[] = { { { INT32_C( 637976518), -INT32_C( 1446637290), -INT32_C( 1858457911), INT32_C( 402085140), INT32_C( 1455788279), -INT32_C( 295342614), -INT32_C( 1458868321), -INT32_C( 1189088269) }, { -INT32_C( 908122446), INT32_C( 7513655), -INT32_C( 393106220), -INT32_C( 117471231), INT32_C( 55493656), -INT32_C( 789466319), INT32_C( 377158691), -INT32_C( 1563452944) }, { -INT32_C( 270145928), -INT32_C( 1439123635), INT32_MIN, INT32_C( 284613909), INT32_C( 1511281935), -INT32_C( 1084808933), -INT32_C( 1081709630), INT32_MIN } }, { { -INT32_C( 160714817), INT32_C( 704044373), -INT32_C( 1978562679), INT32_C( 679612432), INT32_C( 86757844), -INT32_C( 1479205756), INT32_C( 163401497), -INT32_C( 1465152023) }, { -INT32_C( 1851844804), INT32_C( 2126157300), INT32_C( 755551005), -INT32_C( 1353348133), -INT32_C( 525041316), -INT32_C( 1232565859), -INT32_C( 1027652135), INT32_C( 241855442) }, { -INT32_C( 2012559621), INT32_MAX, -INT32_C( 1223011674), -INT32_C( 673735701), -INT32_C( 438283472), INT32_MIN, -INT32_C( 864250638), -INT32_C( 1223296581) } }, { { INT32_C( 1990134146), -INT32_C( 1124836961), -INT32_C( 1442524), -INT32_C( 458342776), INT32_C( 1573151423), -INT32_C( 988590868), INT32_C( 1686623122), -INT32_C( 1066143426) }, { -INT32_C( 1707732229), -INT32_C( 1873400980), -INT32_C( 1332723928), INT32_C( 1033125501), -INT32_C( 1919264607), INT32_C( 928165285), -INT32_C( 1097082496), -INT32_C( 981594422) }, { INT32_C( 282401917), INT32_MIN, -INT32_C( 1334166452), INT32_C( 574782725), -INT32_C( 346113184), -INT32_C( 60425583), INT32_C( 589540626), -INT32_C( 2047737848) } }, { { -INT32_C( 1923107551), INT32_C( 136164832), INT32_C( 1924705780), -INT32_C( 1917891348), INT32_C( 1226459556), INT32_C( 2004905206), INT32_C( 255138885), INT32_C( 1272296490) }, { INT32_C( 1238905961), -INT32_C( 565053718), -INT32_C( 1890580061), -INT32_C( 115540139), INT32_C( 1061369416), -INT32_C( 407452766), INT32_C( 184019935), INT32_C( 139840671) }, { -INT32_C( 684201590), -INT32_C( 428888886), INT32_C( 34125719), -INT32_C( 2033431487), INT32_MAX, INT32_C( 1597452440), INT32_C( 439158820), INT32_C( 1412137161) } }, { { -INT32_C( 363778560), -INT32_C( 943087068), INT32_C( 5708203), INT32_C( 1643803417), INT32_C( 1285569962), -INT32_C( 533441024), -INT32_C( 504747198), -INT32_C( 135643145) }, { -INT32_C( 1847444627), -INT32_C( 1990612002), -INT32_C( 578113340), -INT32_C( 851475421), -INT32_C( 1055203391), INT32_C( 2023837238), INT32_C( 1884916601), INT32_C( 946291659) }, { INT32_MIN, INT32_MIN, -INT32_C( 572405137), INT32_C( 792327996), INT32_C( 230366571), INT32_C( 1490396214), INT32_C( 1380169403), INT32_C( 810648514) } }, { { INT32_C( 1573538175), -INT32_C( 1176099852), -INT32_C( 157912877), -INT32_C( 1245391372), -INT32_C( 344465739), -INT32_C( 1520232404), INT32_C( 1863695524), INT32_C( 2141682688) }, { -INT32_C( 1159958074), INT32_C( 1735639700), INT32_C( 660474419), -INT32_C( 1797446945), INT32_C( 746542080), INT32_C( 282190444), -INT32_C( 1619007841), INT32_C( 673064802) }, { INT32_C( 413580101), INT32_C( 559539848), INT32_C( 502561542), INT32_MIN, INT32_C( 402076341), -INT32_C( 1238041960), INT32_C( 244687683), INT32_MAX } }, { { INT32_C( 769915544), -INT32_C( 275491140), INT32_C( 1075311200), INT32_C( 349500436), -INT32_C( 1270852536), -INT32_C( 708505290), INT32_C( 1517569271), INT32_C( 75666027) }, { INT32_C( 1227974028), INT32_C( 473482684), -INT32_C( 866365512), -INT32_C( 1948176061), -INT32_C( 1153425019), INT32_C( 714147123), -INT32_C( 1249639095), INT32_C( 616105880) }, { INT32_C( 1997889572), INT32_C( 197991544), INT32_C( 208945688), -INT32_C( 1598675625), INT32_MIN, INT32_C( 5641833), INT32_C( 267930176), INT32_C( 691771907) } }, { { INT32_C( 678292076), INT32_C( 1732617903), INT32_C( 959750645), INT32_C( 1472468434), INT32_C( 1762853942), INT32_C( 1402250249), INT32_C( 1091049641), -INT32_C( 1939422945) }, { INT32_C( 1521800107), INT32_C( 1875048825), INT32_C( 1839789723), INT32_C( 1103457291), INT32_C( 2058082417), INT32_C( 634208124), INT32_C( 2003293527), INT32_C( 1090768278) }, { INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX, INT32_C( 2036458373), INT32_MAX, -INT32_C( 848654667) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m256i a = simde_x_mm256_loadu_epi32(test_vec[i].a); simde__m256i b = simde_x_mm256_loadu_epi32(test_vec[i].b); simde__m256i r = simde_x_mm256_adds_epi32(a, b); simde_test_x86_assert_equal_i32x8(r, simde_x_mm256_loadu_epi32(test_vec[i].r)); } return 0; #else fputc('\n', stdout); for (int i = 0 ; i < 8 ; i++) { simde__m256i a = simde_test_x86_random_i32x8(); simde__m256i b = simde_test_x86_random_i32x8(); simde__m256i r = simde_x_mm256_adds_epi32(a, b); simde_test_x86_write_i32x8(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_x86_write_i32x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_x86_write_i32x8(2, r, SIMDE_TEST_VEC_POS_LAST); } return 1; #endif } static int test_simde_x_mm512_adds_epi32 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const struct { const int32_t a[16]; const int32_t b[16]; const int32_t r[16]; } test_vec[] = { { { INT32_C( 446478240), INT32_C( 1284071089), INT32_C( 1605972308), INT32_C( 245399197), -INT32_C( 762754218), -INT32_C( 487041398), -INT32_C( 1034330324), -INT32_C( 872129492), -INT32_C( 991518701), INT32_C( 1376808958), INT32_C( 1051839136), -INT32_C( 1622388408), INT32_C( 661771677), INT32_C( 1477011756), -INT32_C( 199597368), -INT32_C( 759095618) }, { -INT32_C( 1130977346), -INT32_C( 1223776489), -INT32_C( 1175077007), -INT32_C( 1369947631), INT32_C( 1138084375), -INT32_C( 56893645), INT32_C( 15775297), -INT32_C( 1814908460), INT32_C( 1884252249), -INT32_C( 2144903665), INT32_C( 775560477), INT32_C( 1994166879), -INT32_C( 1866812836), -INT32_C( 762554991), -INT32_C( 523076597), -INT32_C( 2022464466) }, { -INT32_C( 684499106), INT32_C( 60294600), INT32_C( 430895301), -INT32_C( 1124548434), INT32_C( 375330157), -INT32_C( 543935043), -INT32_C( 1018555027), INT32_MIN, INT32_C( 892733548), -INT32_C( 768094707), INT32_C( 1827399613), INT32_C( 371778471), -INT32_C( 1205041159), INT32_C( 714456765), -INT32_C( 722673965), INT32_MIN } }, { { INT32_C( 485999117), INT32_C( 1050484256), -INT32_C( 1704143045), -INT32_C( 971945623), -INT32_C( 1940468741), INT32_C( 744415776), -INT32_C( 1945357986), -INT32_C( 502038571), INT32_C( 1660881473), INT32_C( 1688247337), -INT32_C( 587264909), INT32_C( 1352798293), -INT32_C( 69404453), INT32_C( 958872538), INT32_C( 1103442796), -INT32_C( 198911566) }, { INT32_C( 206971875), INT32_C( 846329535), INT32_C( 1477341186), INT32_C( 1537782144), -INT32_C( 2074704471), INT32_C( 750616256), INT32_C( 1684898481), INT32_C( 1062768987), INT32_C( 1934339764), -INT32_C( 1499087708), -INT32_C( 1392593876), INT32_C( 235382629), -INT32_C( 325951956), -INT32_C( 1927786532), INT32_C( 770803154), -INT32_C( 882095849) }, { INT32_C( 692970992), INT32_C( 1896813791), -INT32_C( 226801859), INT32_C( 565836521), INT32_MIN, INT32_C( 1495032032), -INT32_C( 260459505), INT32_C( 560730416), INT32_MAX, INT32_C( 189159629), -INT32_C( 1979858785), INT32_C( 1588180922), -INT32_C( 395356409), -INT32_C( 968913994), INT32_C( 1874245950), -INT32_C( 1081007415) } }, { { -INT32_C( 1690322697), -INT32_C( 1589451660), -INT32_C( 45268840), INT32_C( 319575527), -INT32_C( 1879073101), -INT32_C( 1071900690), -INT32_C( 1259532643), INT32_C( 1333746263), -INT32_C( 2031436270), INT32_C( 992423075), INT32_C( 1413051757), INT32_C( 2103985610), -INT32_C( 787716125), INT32_C( 479275135), -INT32_C( 1898938570), -INT32_C( 337817639) }, { -INT32_C( 1317943538), INT32_C( 1642895860), -INT32_C( 659217138), INT32_C( 1314200938), INT32_C( 69165445), -INT32_C( 1071599223), INT32_C( 156168240), INT32_C( 1307847487), -INT32_C( 419535374), INT32_C( 206040062), INT32_C( 2078604560), -INT32_C( 1614202598), INT32_C( 614721690), -INT32_C( 907754599), -INT32_C( 204328269), INT32_C( 1329645149) }, { INT32_MIN, INT32_C( 53444200), -INT32_C( 704485978), INT32_C( 1633776465), -INT32_C( 1809907656), -INT32_C( 2143499913), -INT32_C( 1103364403), INT32_MAX, INT32_MIN, INT32_C( 1198463137), INT32_MAX, INT32_C( 489783012), -INT32_C( 172994435), -INT32_C( 428479464), -INT32_C( 2103266839), INT32_C( 991827510) } }, { { INT32_C( 708198188), INT32_C( 976715050), -INT32_C( 1783293062), -INT32_C( 281772459), INT32_C( 1300583), INT32_C( 1338701723), -INT32_C( 2042454999), -INT32_C( 1881767325), -INT32_C( 340194111), INT32_C( 69660809), INT32_C( 1637473036), -INT32_C( 1051669158), INT32_C( 1103193253), -INT32_C( 2054124709), -INT32_C( 1962159576), INT32_C( 370860372) }, { INT32_C( 1996608493), -INT32_C( 797235260), INT32_C( 1563497475), -INT32_C( 2028043807), INT32_C( 1103683557), -INT32_C( 1815717781), INT32_C( 2115948842), -INT32_C( 1600898893), -INT32_C( 820537845), -INT32_C( 1063284035), -INT32_C( 2011311962), INT32_C( 923745106), -INT32_C( 2038900965), INT32_C( 1494826543), -INT32_C( 1009305840), INT32_C( 2053336175) }, { INT32_MAX, INT32_C( 179479790), -INT32_C( 219795587), INT32_MIN, INT32_C( 1104984140), -INT32_C( 477016058), INT32_C( 73493843), INT32_MIN, -INT32_C( 1160731956), -INT32_C( 993623226), -INT32_C( 373838926), -INT32_C( 127924052), -INT32_C( 935707712), -INT32_C( 559298166), INT32_MIN, INT32_MAX } }, { { -INT32_C( 1085637886), -INT32_C( 1266620147), INT32_C( 205299130), -INT32_C( 196916263), INT32_C( 1366998050), INT32_C( 178951162), INT32_C( 969769418), -INT32_C( 273468947), -INT32_C( 1179648596), -INT32_C( 1586679833), -INT32_C( 1515345460), INT32_C( 379187444), -INT32_C( 1486416980), INT32_C( 1890652582), -INT32_C( 2136375405), INT32_C( 1550867888) }, { INT32_C( 1091903322), INT32_C( 451052366), INT32_C( 566267692), INT32_C( 741824896), INT32_C( 332636013), INT32_C( 1132758448), -INT32_C( 1262211836), -INT32_C( 451922806), -INT32_C( 1591335597), -INT32_C( 709162584), INT32_C( 418806680), INT32_C( 1111829973), INT32_C( 2102728908), -INT32_C( 1581196899), -INT32_C( 1856666617), INT32_C( 192308664) }, { INT32_C( 6265436), -INT32_C( 815567781), INT32_C( 771566822), INT32_C( 544908633), INT32_C( 1699634063), INT32_C( 1311709610), -INT32_C( 292442418), -INT32_C( 725391753), INT32_MIN, INT32_MIN, -INT32_C( 1096538780), INT32_C( 1491017417), INT32_C( 616311928), INT32_C( 309455683), INT32_MIN, INT32_C( 1743176552) } }, { { INT32_C( 866950539), INT32_C( 1040738470), -INT32_C( 1202192669), -INT32_C( 117793748), INT32_C( 1383420084), INT32_C( 821245481), INT32_C( 1942112698), INT32_C( 964573358), INT32_C( 2070752213), INT32_C( 1991931283), -INT32_C( 1607528076), INT32_C( 1637362093), -INT32_C( 1548546439), -INT32_C( 19683516), -INT32_C( 1636723216), -INT32_C( 1546063666) }, { -INT32_C( 1373682405), INT32_C( 774166970), -INT32_C( 1748085782), -INT32_C( 151492739), -INT32_C( 1181111179), INT32_C( 1136094547), -INT32_C( 790550270), INT32_C( 880064793), -INT32_C( 1176333314), INT32_C( 1457981036), -INT32_C( 672287142), -INT32_C( 1832000227), -INT32_C( 464820335), -INT32_C( 702086444), INT32_C( 1151797547), -INT32_C( 1049093182) }, { -INT32_C( 506731866), INT32_C( 1814905440), INT32_MIN, -INT32_C( 269286487), INT32_C( 202308905), INT32_C( 1957340028), INT32_C( 1151562428), INT32_C( 1844638151), INT32_C( 894418899), INT32_MAX, INT32_MIN, -INT32_C( 194638134), -INT32_C( 2013366774), -INT32_C( 721769960), -INT32_C( 484925669), INT32_MIN } }, { { INT32_C( 444226222), -INT32_C( 1150262943), INT32_C( 882007319), -INT32_C( 725196990), -INT32_C( 1699212858), INT32_C( 1064427540), -INT32_C( 1417406231), -INT32_C( 512951245), -INT32_C( 1191451049), INT32_C( 1601399624), INT32_C( 177472968), INT32_C( 735992420), -INT32_C( 2134534292), INT32_C( 1623144055), -INT32_C( 2129968306), -INT32_C( 1755154368) }, { -INT32_C( 1504748194), -INT32_C( 1878605112), INT32_C( 731617991), INT32_C( 1616280052), -INT32_C( 2015355888), -INT32_C( 1578655662), INT32_C( 589493219), -INT32_C( 910523029), -INT32_C( 1418720798), -INT32_C( 1841596725), INT32_C( 79615504), INT32_C( 1617237072), -INT32_C( 2081929936), -INT32_C( 920334363), INT32_C( 770459330), -INT32_C( 1359501365) }, { -INT32_C( 1060521972), INT32_MIN, INT32_C( 1613625310), INT32_C( 891083062), INT32_MIN, -INT32_C( 514228122), -INT32_C( 827913012), -INT32_C( 1423474274), INT32_MIN, -INT32_C( 240197101), INT32_C( 257088472), INT32_MAX, INT32_MIN, INT32_C( 702809692), -INT32_C( 1359508976), INT32_MIN } }, { { INT32_C( 2086234032), -INT32_C( 317811491), -INT32_C( 1141781397), INT32_C( 287004385), -INT32_C( 2121006180), -INT32_C( 1790265133), -INT32_C( 893175809), -INT32_C( 1904690466), -INT32_C( 32845535), -INT32_C( 773121690), -INT32_C( 963846939), -INT32_C( 807885005), INT32_C( 2119199915), INT32_C( 605264677), -INT32_C( 1326524718), -INT32_C( 1321310320) }, { -INT32_C( 1632679624), INT32_C( 1198496354), -INT32_C( 1441858697), INT32_C( 1316611747), INT32_C( 2009909586), INT32_C( 916184932), INT32_C( 1189513910), INT32_C( 704128497), -INT32_C( 792156306), -INT32_C( 1189660862), -INT32_C( 698145485), INT32_C( 1579473931), INT32_C( 181792933), -INT32_C( 2059374129), -INT32_C( 322164741), -INT32_C( 1172978612) }, { INT32_C( 453554408), INT32_C( 880684863), INT32_MIN, INT32_C( 1603616132), -INT32_C( 111096594), -INT32_C( 874080201), INT32_C( 296338101), -INT32_C( 1200561969), -INT32_C( 825001841), -INT32_C( 1962782552), -INT32_C( 1661992424), INT32_C( 771588926), INT32_MAX, -INT32_C( 1454109452), -INT32_C( 1648689459), INT32_MIN } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { simde__m512i a = simde_mm512_loadu_epi32(test_vec[i].a); simde__m512i b = simde_mm512_loadu_epi32(test_vec[i].b); simde__m512i r = simde_x_mm512_adds_epi32(a, b); simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r)); } return 0; #else fputc('\n', stdout); for (int i = 0 ; i < 8 ; i++) { simde__m512i a = simde_test_x86_random_i32x16(); simde__m512i b = simde_test_x86_random_i32x16(); simde__m512i r = simde_x_mm512_adds_epi32(a, b); simde_test_x86_write_i32x16(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_x86_write_i32x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST); } return 1; #endif } SIMDE_TEST_FUNC_LIST_BEGIN SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epu8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epu8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epu8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epu16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epu16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epu16) SIMDE_TEST_FUNC_LIST_ENTRY(x_mm_adds_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(x_mm256_adds_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_adds_epi32) SIMDE_TEST_FUNC_LIST_END #include