/* SPDX-License-Identifier: MIT * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Copyright: * 2020 Evan Nemerson * 2020 Himanshi Mathur * 2020 Hidayat Khan */ #define SIMDE_TEST_X86_AVX512_INSN sub #include #include #include static int test_simde_mm512_sub_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( 82), INT8_C( 83), INT8_C( 117), INT8_C( 65), INT8_C( -47), INT8_C(-122), INT8_C( 116), INT8_C( 14), INT8_C( 76), INT8_C( 1), INT8_C( -50), INT8_C( 4), INT8_C( 83), INT8_C( -77), INT8_C( 112), INT8_C(-102), INT8_C( 99), INT8_C(-118), INT8_C( -47), INT8_C( -67), INT8_C( 60), INT8_C( -34), INT8_C( 78), INT8_C(-110), INT8_C( -58), INT8_C( 87), INT8_C( -61), INT8_C( 26), INT8_C( -17), INT8_C( -46), INT8_C( 116), INT8_C( -20), INT8_C(-120), INT8_C( 48), INT8_C( 24), INT8_C( 46), INT8_C( 103), INT8_C( -34), INT8_C( 42), INT8_C( 51), INT8_C( -65), INT8_C( 86), INT8_C( 61), INT8_C( -56), INT8_C( 58), INT8_C( 119), INT8_C( 93), INT8_C( -1), INT8_C( -58), INT8_C(-121), INT8_C( -32), INT8_C( 98), INT8_C( -66), INT8_C( 79), INT8_C( 99), INT8_C( -93), INT8_C( 77), INT8_C( -56), INT8_C( -78), INT8_C( 39), INT8_C( -50), INT8_C( -60), INT8_C( -68), INT8_C( -4)), simde_mm512_set_epi8(INT8_C( 106), INT8_C( 39), INT8_C(-106), INT8_C( 14), INT8_C( -28), INT8_C( -2), INT8_C( 39), INT8_C( -28), INT8_C( 54), INT8_C( 70), INT8_C( -19), INT8_C( -12), INT8_C( -42), INT8_C( 28), INT8_C( -13), INT8_C( -6), INT8_C( 116), INT8_C( 2), INT8_C( 23), INT8_C( 121), INT8_C( 112), INT8_C( -35), INT8_C(-124), INT8_C( 10), INT8_C( -16), INT8_C(-117), INT8_C( 26), INT8_C(-125), INT8_C( 36), INT8_C( 109), INT8_C( 29), INT8_C( -35), INT8_C( -9), INT8_C( -85), INT8_C( -38), INT8_C( 95), INT8_C( -88), INT8_C( 3), INT8_C( 4), INT8_C( 100), INT8_C( 85), INT8_C( 21), INT8_C( 66), INT8_C( -33), INT8_C( -77), INT8_C( -5), INT8_C(-126), INT8_C( 122), INT8_C( -30), INT8_C( -83), INT8_C( 74), INT8_C(-108), INT8_C( 83), INT8_C( -96), INT8_C( -57), INT8_C(-108), INT8_C( 89), INT8_C( 59), INT8_C( 111), INT8_C( -47), INT8_C( -10), INT8_C( -18), INT8_C( 20), INT8_C(-125)), simde_mm512_set_epi8(INT8_C( -24), INT8_C( 44), INT8_C( -33), INT8_C( 51), INT8_C( -19), INT8_C(-120), INT8_C( 77), INT8_C( 42), INT8_C( 22), INT8_C( -69), INT8_C( -31), INT8_C( 16), INT8_C( 125), INT8_C(-105), INT8_C( 125), INT8_C( -96), INT8_C( -17), INT8_C(-120), INT8_C( -70), INT8_C( 68), INT8_C( -52), INT8_C( 1), INT8_C( -54), INT8_C(-120), INT8_C( -42), INT8_C( -52), INT8_C( -87), INT8_C(-105), INT8_C( -53), INT8_C( 101), INT8_C( 87), INT8_C( 15), INT8_C(-111), INT8_C(-123), INT8_C( 62), INT8_C( -49), INT8_C( -65), INT8_C( -37), INT8_C( 38), INT8_C( -49), INT8_C( 106), INT8_C( 65), INT8_C( -5), INT8_C( -23), INT8_C(-121), INT8_C( 124), INT8_C( -37), INT8_C(-123), INT8_C( -28), INT8_C( -38), INT8_C(-106), INT8_C( -50), INT8_C( 107), INT8_C( -81), INT8_C(-100), INT8_C( 15), INT8_C( -12), INT8_C(-115), INT8_C( 67), INT8_C( 86), INT8_C( -40), INT8_C( -42), INT8_C( -88), INT8_C( 121)) }, { simde_mm512_set_epi8(INT8_C(-108), INT8_C(-116), INT8_C( 21), INT8_C(-123), INT8_C( -53), INT8_C( 42), INT8_C( 66), INT8_C( 13), INT8_C( 9), INT8_C( 115), INT8_C( 86), INT8_C( 126), INT8_C( -24), INT8_C( 35), INT8_C( -5), INT8_C( 103), INT8_C( 38), INT8_C( 111), INT8_C( 24), INT8_C( -71), INT8_C( -1), INT8_C( 17), INT8_C( -63), INT8_C( -13), INT8_C( 14), INT8_C( 82), INT8_C( 78), INT8_C(-102), INT8_C( -7), INT8_C( 93), INT8_C( 25), INT8_C( 103), INT8_C( 113), INT8_C( -15), INT8_C( -19), INT8_C( -73), INT8_C( -11), INT8_C( 103), INT8_C( -97), INT8_C( 123), INT8_C( 28), INT8_C( 53), INT8_C( -15), INT8_C( 122), INT8_C( 3), INT8_C( -54), INT8_C( -61), INT8_C( 58), INT8_C( -44), INT8_C( -3), INT8_C( -43), INT8_C( -35), INT8_C(-118), INT8_C( -18), INT8_C( 15), INT8_C( 54), INT8_C(-102), INT8_C( -58), INT8_C( -74), INT8_C( -70), INT8_C( 46), INT8_C( 48), INT8_C( -35), INT8_C( 92)), simde_mm512_set_epi8(INT8_C( 6), INT8_C( 68), INT8_C( 77), INT8_C( -94), INT8_C( -48), INT8_C(-101), INT8_C( -8), INT8_C( 82), INT8_C( 50), INT8_C( -15), INT8_C( 6), INT8_C( 30), INT8_C( -47), INT8_C( -15), INT8_C( -14), INT8_C( -97), INT8_C( 28), INT8_C( -47), INT8_C( -92), INT8_C( -84), INT8_C( -37), INT8_C( -33), INT8_C(-123), INT8_C( -19), INT8_C( 58), INT8_C( 29), INT8_C( 93), INT8_C( -55), INT8_C(-127), INT8_C( -60), INT8_C( 32), INT8_C( 116), INT8_C( -46), INT8_C( 51), INT8_C( -40), INT8_C( 10), INT8_C( 4), INT8_C( 50), INT8_C( 48), INT8_C( 53), INT8_C( 78), INT8_C( 21), INT8_C( 64), INT8_C( 107), INT8_C( 16), INT8_C( 48), INT8_C( -46), INT8_C( 62), INT8_C( 75), INT8_C( 85), INT8_C(-115), INT8_C( -14), INT8_C( -99), INT8_C( 86), INT8_C(-116), INT8_C( -74), INT8_C( 38), INT8_C( 27), INT8_C(-115), INT8_C( 55), INT8_C( -91), INT8_C( -71), INT8_C( -14), INT8_C( -84)), simde_mm512_set_epi8(INT8_C(-114), INT8_C( 72), INT8_C( -56), INT8_C( -29), INT8_C( -5), INT8_C(-113), INT8_C( 74), INT8_C( -69), INT8_C( -41), INT8_C(-126), INT8_C( 80), INT8_C( 96), INT8_C( 23), INT8_C( 50), INT8_C( 9), INT8_C( -56), INT8_C( 10), INT8_C( -98), INT8_C( 116), INT8_C( 13), INT8_C( 36), INT8_C( 50), INT8_C( 60), INT8_C( 6), INT8_C( -44), INT8_C( 53), INT8_C( -15), INT8_C( -47), INT8_C( 120), INT8_C(-103), INT8_C( -7), INT8_C( -13), INT8_C( -97), INT8_C( -66), INT8_C( 21), INT8_C( -83), INT8_C( -15), INT8_C( 53), INT8_C( 111), INT8_C( 70), INT8_C( -50), INT8_C( 32), INT8_C( -79), INT8_C( 15), INT8_C( -13), INT8_C(-102), INT8_C( -15), INT8_C( -4), INT8_C(-119), INT8_C( -88), INT8_C( 72), INT8_C( -21), INT8_C( -19), INT8_C(-104), INT8_C(-125), INT8_C(-128), INT8_C( 116), INT8_C( -85), INT8_C( 41), INT8_C(-125), INT8_C(-119), INT8_C( 119), INT8_C( -21), INT8_C( -80)) }, { simde_mm512_set_epi8(INT8_C( 2), INT8_C( -77), INT8_C( -19), INT8_C( 41), INT8_C( -13), INT8_C( 75), INT8_C(-123), INT8_C( 96), INT8_C( -86), INT8_C( -24), INT8_C( -27), INT8_C( -84), INT8_C( 35), INT8_C( -86), INT8_C( -72), INT8_C( -97), INT8_C( 44), INT8_C( 11), INT8_C(-106), INT8_C( 44), INT8_C( 0), INT8_C( 90), INT8_C( -79), INT8_C( 91), INT8_C( 119), INT8_C( 59), INT8_C( 105), INT8_C(-128), INT8_C( 110), INT8_C( -29), INT8_C( 67), INT8_C( 114), INT8_C( -39), INT8_C( -49), INT8_C( 105), INT8_C( -40), INT8_C( -33), INT8_C( 120), INT8_C( -27), INT8_C( 100), INT8_C( -90), INT8_C( 86), INT8_C( -18), INT8_C( -57), INT8_C( 84), INT8_C( -26), INT8_C( -77), INT8_C( 17), INT8_C( -47), INT8_C( 51), INT8_C( -83), INT8_C( 53), INT8_C( 71), INT8_C( 96), INT8_C( 110), INT8_C( -89), INT8_C( 27), INT8_C( -45), INT8_C(-126), INT8_C( 40), INT8_C( 95), INT8_C( -87), INT8_C( -62), INT8_C( -52)), simde_mm512_set_epi8(INT8_C( -84), INT8_C( 127), INT8_C( 61), INT8_C( -16), INT8_C( 30), INT8_C( 6), INT8_C(-112), INT8_C( 104), INT8_C( -60), INT8_C( -88), INT8_C( -39), INT8_C( -19), INT8_C( 44), INT8_C( 36), INT8_C( 105), INT8_C( 120), INT8_C( -26), INT8_C( 21), INT8_C( 14), INT8_C( 42), INT8_C( 49), INT8_C( -84), INT8_C(-120), INT8_C(-107), INT8_C( 123), INT8_C( -47), INT8_C( 21), INT8_C( -10), INT8_C( 95), INT8_C( 124), INT8_C( -33), INT8_C( -34), INT8_C( -33), INT8_C( -71), INT8_C( 11), INT8_C( 74), INT8_C( 104), INT8_C( 108), INT8_C( -35), INT8_C( -59), INT8_C( -55), INT8_C(-126), INT8_C( 107), INT8_C( 23), INT8_C( 29), INT8_C( -27), INT8_C( 123), INT8_C( 23), INT8_C( -83), INT8_C( -90), INT8_C( 9), INT8_C( 94), INT8_C( 91), INT8_C( 69), INT8_C( -51), INT8_C(-103), INT8_C( -72), INT8_C( -45), INT8_C( 16), INT8_C( 108), INT8_C( -80), INT8_C( 27), INT8_C( 58), INT8_C( -83)), simde_mm512_set_epi8(INT8_C( 86), INT8_C( 52), INT8_C( -80), INT8_C( 57), INT8_C( -43), INT8_C( 69), INT8_C( -11), INT8_C( -8), INT8_C( -26), INT8_C( 64), INT8_C( 12), INT8_C( -65), INT8_C( -9), INT8_C(-122), INT8_C( 79), INT8_C( 39), INT8_C( 70), INT8_C( -10), INT8_C(-120), INT8_C( 2), INT8_C( -49), INT8_C( -82), INT8_C( 41), INT8_C( -58), INT8_C( -4), INT8_C( 106), INT8_C( 84), INT8_C(-118), INT8_C( 15), INT8_C( 103), INT8_C( 100), INT8_C(-108), INT8_C( -6), INT8_C( 22), INT8_C( 94), INT8_C(-114), INT8_C( 119), INT8_C( 12), INT8_C( 8), INT8_C( -97), INT8_C( -35), INT8_C( -44), INT8_C(-125), INT8_C( -80), INT8_C( 55), INT8_C( 1), INT8_C( 56), INT8_C( -6), INT8_C( 36), INT8_C(-115), INT8_C( -92), INT8_C( -41), INT8_C( -20), INT8_C( 27), INT8_C( -95), INT8_C( 14), INT8_C( 99), INT8_C( 0), INT8_C( 114), INT8_C( -68), INT8_C( -81), INT8_C(-114), INT8_C(-120), INT8_C( 31)) }, { simde_mm512_set_epi8(INT8_C( 17), INT8_C( 99), INT8_C( -13), INT8_C( -49), INT8_C( 45), INT8_C(-128), INT8_C( 55), INT8_C( 105), INT8_C( -34), INT8_C( -51), INT8_C( -97), INT8_C(-103), INT8_C(-124), INT8_C( 111), INT8_C( 74), INT8_C( 75), INT8_C( 102), INT8_C( 98), INT8_C(-117), INT8_C( 9), INT8_C( -74), INT8_C( 61), INT8_C( 99), INT8_C( 124), INT8_C( 79), INT8_C(-114), INT8_C( 19), INT8_C( 97), INT8_C(-100), INT8_C(-124), INT8_C( -17), INT8_C( -62), INT8_C( 25), INT8_C( -3), INT8_C( -7), INT8_C( 72), INT8_C(-117), INT8_C( -27), INT8_C( -56), INT8_C( 92), INT8_C( -20), INT8_C( -53), INT8_C( 2), INT8_C( -38), INT8_C( -81), INT8_C( 59), INT8_C( 66), INT8_C( 90), INT8_C( 36), INT8_C( 100), INT8_C( 112), INT8_C( 123), INT8_C( -72), INT8_C( -97), INT8_C(-115), INT8_C( 17), INT8_C( -93), INT8_C(-122), INT8_C( 31), INT8_C( 27), INT8_C( 109), INT8_C( 115), INT8_C( 53), INT8_C( -96)), simde_mm512_set_epi8(INT8_C( -43), INT8_C( -18), INT8_C( 114), INT8_C( -29), INT8_C( 118), INT8_C( -1), INT8_C( -20), INT8_C( -38), INT8_C( -80), INT8_C( 88), INT8_C(-111), INT8_C( -91), INT8_C( 44), INT8_C( -72), INT8_C( 106), INT8_C( 19), INT8_C( -46), INT8_C( 107), INT8_C( 46), INT8_C( 44), INT8_C( -65), INT8_C(-128), INT8_C( 41), INT8_C( 44), INT8_C( 68), INT8_C( 69), INT8_C( -78), INT8_C( -47), INT8_C( 109), INT8_C( 120), INT8_C( -57), INT8_C( -95), INT8_C( 95), INT8_C( 80), INT8_C( -30), INT8_C( 97), INT8_C( -48), INT8_C( -97), INT8_C( 111), INT8_C( -80), INT8_C(-122), INT8_C( -81), INT8_C( -71), INT8_C( 85), INT8_C( 77), INT8_C( -42), INT8_C(-115), INT8_C( -77), INT8_C( 29), INT8_C( 77), INT8_C( 64), INT8_C( -20), INT8_C( 27), INT8_C( 41), INT8_C( 13), INT8_C( 109), INT8_C( 22), INT8_C( -98), INT8_C( 20), INT8_C( -28), INT8_C( 66), INT8_C( -7), INT8_C(-113), INT8_C(-119)), simde_mm512_set_epi8(INT8_C( 60), INT8_C( 117), INT8_C(-127), INT8_C( -20), INT8_C( -73), INT8_C(-127), INT8_C( 75), INT8_C(-113), INT8_C( 46), INT8_C( 117), INT8_C( 14), INT8_C( -12), INT8_C( 88), INT8_C( -73), INT8_C( -32), INT8_C( 56), INT8_C(-108), INT8_C( -9), INT8_C( 93), INT8_C( -35), INT8_C( -9), INT8_C( -67), INT8_C( 58), INT8_C( 80), INT8_C( 11), INT8_C( 73), INT8_C( 97), INT8_C(-112), INT8_C( 47), INT8_C( 12), INT8_C( 40), INT8_C( 33), INT8_C( -70), INT8_C( -83), INT8_C( 23), INT8_C( -25), INT8_C( -69), INT8_C( 70), INT8_C( 89), INT8_C( -84), INT8_C( 102), INT8_C( 28), INT8_C( 73), INT8_C(-123), INT8_C( 98), INT8_C( 101), INT8_C( -75), INT8_C( -89), INT8_C( 7), INT8_C( 23), INT8_C( 48), INT8_C(-113), INT8_C( -99), INT8_C( 118), INT8_C(-128), INT8_C( -92), INT8_C(-115), INT8_C( -24), INT8_C( 11), INT8_C( 55), INT8_C( 43), INT8_C( 122), INT8_C( -90), INT8_C( 23)) }, { simde_mm512_set_epi8(INT8_C(-124), INT8_C( -73), INT8_C( 74), INT8_C( 5), INT8_C( -9), INT8_C( 17), INT8_C( -81), INT8_C( -54), INT8_C( -5), INT8_C( -33), INT8_C( -12), INT8_C( 26), INT8_C( 86), INT8_C( 122), INT8_C( -44), INT8_C( -23), INT8_C( 0), INT8_C( 43), INT8_C( -25), INT8_C(-122), INT8_C( -79), INT8_C(-122), INT8_C( -88), INT8_C(-121), INT8_C(-102), INT8_C( 66), INT8_C( -93), INT8_C( 105), INT8_C( 109), INT8_C( -68), INT8_C( 24), INT8_C( -54), INT8_C( 40), INT8_C( 68), INT8_C( 2), INT8_C( 60), INT8_C( 0), INT8_C( 5), INT8_C( 59), INT8_C( -54), INT8_C( -76), INT8_C( 27), INT8_C( -23), INT8_C( 77), INT8_C(-108), INT8_C( -28), INT8_C(-114), INT8_C( 56), INT8_C( -54), INT8_C(-108), INT8_C( -15), INT8_C( -89), INT8_C(-103), INT8_C( -45), INT8_C( 74), INT8_C( -3), INT8_C(-108), INT8_C( 55), INT8_C( -79), INT8_C( -62), INT8_C( 14), INT8_C( 106), INT8_C( -16), INT8_C( -10)), simde_mm512_set_epi8(INT8_C( -47), INT8_C( 124), INT8_C( 57), INT8_C( -74), INT8_C( 20), INT8_C( 124), INT8_C( 70), INT8_C( -69), INT8_C( -65), INT8_C( -12), INT8_C( 124), INT8_C( -90), INT8_C(-113), INT8_C( 63), INT8_C( -79), INT8_C( -70), INT8_C( -76), INT8_C( -34), INT8_C( -60), INT8_C( -4), INT8_C( -41), INT8_C( 60), INT8_C( 77), INT8_C( -57), INT8_C( 13), INT8_C( 2), INT8_C( 111), INT8_C( -39), INT8_C( 41), INT8_C( 54), INT8_C( -37), INT8_C( 114), INT8_C( 92), INT8_C(-111), INT8_C( 77), INT8_C( 14), INT8_C(-104), INT8_C( -39), INT8_C( -74), INT8_C( 66), INT8_C( 16), INT8_C( -26), INT8_C( -89), INT8_C(-114), INT8_C( -68), INT8_C( 6), INT8_C( 62), INT8_C( -93), INT8_C( 55), INT8_C(-113), INT8_C( -60), INT8_C( -56), INT8_C( -37), INT8_C( 2), INT8_C( -15), INT8_C( 88), INT8_C( 26), INT8_C( 54), INT8_C( 82), INT8_C( 124), INT8_C( -38), INT8_C(-107), INT8_C( 40), INT8_C( 13)), simde_mm512_set_epi8(INT8_C( -77), INT8_C( 59), INT8_C( 17), INT8_C( 79), INT8_C( -29), INT8_C(-107), INT8_C( 105), INT8_C( 15), INT8_C( 60), INT8_C( -21), INT8_C( 120), INT8_C( 116), INT8_C( -57), INT8_C( 59), INT8_C( 35), INT8_C( 47), INT8_C( 76), INT8_C( 77), INT8_C( 35), INT8_C(-118), INT8_C( -38), INT8_C( 74), INT8_C( 91), INT8_C( -64), INT8_C(-115), INT8_C( 64), INT8_C( 52), INT8_C(-112), INT8_C( 68), INT8_C(-122), INT8_C( 61), INT8_C( 88), INT8_C( -52), INT8_C( -77), INT8_C( -75), INT8_C( 46), INT8_C( 104), INT8_C( 44), INT8_C(-123), INT8_C(-120), INT8_C( -92), INT8_C( 53), INT8_C( 66), INT8_C( -65), INT8_C( -40), INT8_C( -34), INT8_C( 80), INT8_C(-107), INT8_C(-109), INT8_C( 5), INT8_C( 45), INT8_C( -33), INT8_C( -66), INT8_C( -47), INT8_C( 89), INT8_C( -91), INT8_C( 122), INT8_C( 1), INT8_C( 95), INT8_C( 70), INT8_C( 52), INT8_C( -43), INT8_C( -56), INT8_C( -23)) }, { simde_mm512_set_epi8(INT8_C( 5), INT8_C( -68), INT8_C( -18), INT8_C( -37), INT8_C( 5), INT8_C( 16), INT8_C(-109), INT8_C( -67), INT8_C( -62), INT8_C( -4), INT8_C( 14), INT8_C(-109), INT8_C( -29), INT8_C(-121), INT8_C(-109), INT8_C( -55), INT8_C( 1), INT8_C( -38), INT8_C( 107), INT8_C( 55), INT8_C( -36), INT8_C( -76), INT8_C( 35), INT8_C( -40), INT8_C( 10), INT8_C( -90), INT8_C( -48), INT8_C(-112), INT8_C( -9), INT8_C( -53), INT8_C( 105), INT8_C( 27), INT8_C( -97), INT8_C(-124), INT8_C( 4), INT8_C( -36), INT8_C( -16), INT8_C( -87), INT8_C( -89), INT8_C(-104), INT8_C( -30), INT8_C(-101), INT8_C( 69), INT8_C( 79), INT8_C( 59), INT8_C( -97), INT8_C( -15), INT8_C( 17), INT8_C( 106), INT8_C( -85), INT8_C( 126), INT8_C(-121), INT8_C( -91), INT8_C( 26), INT8_C(-115), INT8_C(-117), INT8_C( 91), INT8_C( 73), INT8_C( -60), INT8_C( 69), INT8_C( -23), INT8_C( 48), INT8_C( 70), INT8_C( -8)), simde_mm512_set_epi8(INT8_C( 91), INT8_C(-103), INT8_C( 69), INT8_C( 61), INT8_C( -82), INT8_C( 73), INT8_C( 122), INT8_C( -22), INT8_C( 122), INT8_C( 76), INT8_C( -9), INT8_C( 121), INT8_C(-123), INT8_C(-119), INT8_C(-127), INT8_C( 126), INT8_C( 105), INT8_C( 10), INT8_C(-120), INT8_C(-127), INT8_C( -50), INT8_C( 15), INT8_C( -93), INT8_C( -86), INT8_C(-125), INT8_C( 45), INT8_C( -39), INT8_C(-119), INT8_C( 74), INT8_C( -92), INT8_C( -78), INT8_C( 53), INT8_C( 17), INT8_C( -21), INT8_C( 105), INT8_C(-102), INT8_C( -1), INT8_C( -19), INT8_C( 110), INT8_C( -84), INT8_C( -93), INT8_C( 19), INT8_C( -98), INT8_C(-128), INT8_C( -23), INT8_C( 49), INT8_C( 100), INT8_C( 122), INT8_C( -96), INT8_C(-103), INT8_C( 60), INT8_C( -24), INT8_C( 23), INT8_C( -52), INT8_C( -37), INT8_C( -56), INT8_C( -50), INT8_C( 4), INT8_C( -69), INT8_C( 1), INT8_C( -25), INT8_C( -10), INT8_C( 93), INT8_C( 51)), simde_mm512_set_epi8(INT8_C( -86), INT8_C( 35), INT8_C( -87), INT8_C( -98), INT8_C( 87), INT8_C( -57), INT8_C( 25), INT8_C( -45), INT8_C( 72), INT8_C( -80), INT8_C( 23), INT8_C( 26), INT8_C( 94), INT8_C( -2), INT8_C( 18), INT8_C( 75), INT8_C(-104), INT8_C( -48), INT8_C( -29), INT8_C( -74), INT8_C( 14), INT8_C( -91), INT8_C(-128), INT8_C( 46), INT8_C(-121), INT8_C( 121), INT8_C( -9), INT8_C( 7), INT8_C( -83), INT8_C( 39), INT8_C( -73), INT8_C( -26), INT8_C(-114), INT8_C(-103), INT8_C(-101), INT8_C( 66), INT8_C( -15), INT8_C( -68), INT8_C( 57), INT8_C( -20), INT8_C( 63), INT8_C(-120), INT8_C( -89), INT8_C( -49), INT8_C( 82), INT8_C( 110), INT8_C(-115), INT8_C(-105), INT8_C( -54), INT8_C( 18), INT8_C( 66), INT8_C( -97), INT8_C(-114), INT8_C( 78), INT8_C( -78), INT8_C( -61), INT8_C(-115), INT8_C( 69), INT8_C( 9), INT8_C( 68), INT8_C( 2), INT8_C( 58), INT8_C( -23), INT8_C( -59)) }, { simde_mm512_set_epi8(INT8_C( -89), INT8_C( 43), INT8_C( 52), INT8_C( 82), INT8_C( -37), INT8_C( 55), INT8_C( 112), INT8_C( -22), INT8_C( -75), INT8_C( -36), INT8_C( -34), INT8_C( -15), INT8_C( 35), INT8_C( -42), INT8_C(-101), INT8_C( -5), INT8_C( 2), INT8_C( 35), INT8_C( 14), INT8_C( -73), INT8_C( -50), INT8_C( -33), INT8_C( -65), INT8_C( 94), INT8_C( -6), INT8_C( -21), INT8_C( -28), INT8_C( 21), INT8_C( 102), INT8_C( -87), INT8_C( 114), INT8_C( 125), INT8_C( 113), INT8_C( 124), INT8_C(-121), INT8_C(-122), INT8_C( 23), INT8_C( 107), INT8_C( 24), INT8_C( 126), INT8_C( 80), INT8_C( 59), INT8_C( 39), INT8_C( -61), INT8_C(-105), INT8_C( 32), INT8_C( 55), INT8_C( -9), INT8_C( 60), INT8_C(-125), INT8_C( 72), INT8_C( -36), INT8_C( 77), INT8_C( -65), INT8_C( 117), INT8_C( -85), INT8_C( 98), INT8_C( -83), INT8_C( -69), INT8_C( -52), INT8_C( 41), INT8_C( -10), INT8_C( -18), INT8_C( 56)), simde_mm512_set_epi8(INT8_C( 22), INT8_C( 122), INT8_C( -90), INT8_C( 2), INT8_C( -65), INT8_C( 51), INT8_C( -94), INT8_C( -50), INT8_C( -15), INT8_C( 19), INT8_C( -19), INT8_C( 66), INT8_C( 119), INT8_C(-118), INT8_C(-112), INT8_C(-116), INT8_C( 44), INT8_C( -12), INT8_C( 31), INT8_C( 43), INT8_C( -16), INT8_C( -37), INT8_C( -24), INT8_C( -32), INT8_C( -95), INT8_C( -86), INT8_C( -96), INT8_C( 80), INT8_C( 68), INT8_C( 13), INT8_C( -8), INT8_C( 67), INT8_C( 107), INT8_C(-125), INT8_C( 104), INT8_C( -80), INT8_C( 97), INT8_C( -78), INT8_C( 106), INT8_C( -53), INT8_C( -36), INT8_C( -90), INT8_C( 74), INT8_C( -72), INT8_C( 59), INT8_C( -81), INT8_C( -8), INT8_C( -25), INT8_C( -55), INT8_C( -99), INT8_C( 20), INT8_C( 9), INT8_C( -89), INT8_C( -90), INT8_C( 108), INT8_C( 56), INT8_C( -19), INT8_C( 81), INT8_C( 122), INT8_C( 6), INT8_C(-119), INT8_C( 122), INT8_C( -35), INT8_C( 106)), simde_mm512_set_epi8(INT8_C(-111), INT8_C( -79), INT8_C(-114), INT8_C( 80), INT8_C( 28), INT8_C( 4), INT8_C( -50), INT8_C( 28), INT8_C( -60), INT8_C( -55), INT8_C( -15), INT8_C( -81), INT8_C( -84), INT8_C( 76), INT8_C( 11), INT8_C( 111), INT8_C( -42), INT8_C( 47), INT8_C( -17), INT8_C(-116), INT8_C( -34), INT8_C( 4), INT8_C( -41), INT8_C( 126), INT8_C( 89), INT8_C( 65), INT8_C( 68), INT8_C( -59), INT8_C( 34), INT8_C(-100), INT8_C( 122), INT8_C( 58), INT8_C( 6), INT8_C( -7), INT8_C( 31), INT8_C( -42), INT8_C( -74), INT8_C( -71), INT8_C( -82), INT8_C( -77), INT8_C( 116), INT8_C(-107), INT8_C( -35), INT8_C( 11), INT8_C( 92), INT8_C( 113), INT8_C( 63), INT8_C( 16), INT8_C( 115), INT8_C( -26), INT8_C( 52), INT8_C( -45), INT8_C( -90), INT8_C( 25), INT8_C( 9), INT8_C( 115), INT8_C( 117), INT8_C( 92), INT8_C( 65), INT8_C( -58), INT8_C( -96), INT8_C( 124), INT8_C( 17), INT8_C( -50)) }, { simde_mm512_set_epi8(INT8_C( 105), INT8_C(-115), INT8_C( 121), INT8_C(-101), INT8_C( 0), INT8_C( 63), INT8_C( -42), INT8_C( -34), INT8_C( -5), INT8_C( -47), INT8_C(-123), INT8_C( -52), INT8_C( -86), INT8_C( -28), INT8_C( -63), INT8_C( 20), INT8_C( -60), INT8_C( -63), INT8_C( 99), INT8_C( 78), INT8_C( 56), INT8_C( -72), INT8_C( -55), INT8_C( -72), INT8_C( 79), INT8_C( -81), INT8_C( 124), INT8_C( -85), INT8_C( -65), INT8_C( 122), INT8_C( -25), INT8_C( -58), INT8_C( -64), INT8_C( 52), INT8_C( -12), INT8_C( 1), INT8_C( -62), INT8_C( -28), INT8_C( -28), INT8_C(-104), INT8_C( 54), INT8_C(-103), INT8_C( -55), INT8_C( -22), INT8_C( -91), INT8_C( 6), INT8_C( -9), INT8_C( -31), INT8_C( 18), INT8_C(-111), INT8_C( 58), INT8_C( 71), INT8_C( -73), INT8_C( -96), INT8_C( 28), INT8_C( -4), INT8_C( 47), INT8_C( 66), INT8_C( 121), INT8_C( 38), INT8_C( 69), INT8_C(-107), INT8_C( -57), INT8_C(-120)), simde_mm512_set_epi8(INT8_C( -49), INT8_C( 15), INT8_C( -15), INT8_C( -59), INT8_C(-113), INT8_C( 102), INT8_C( -48), INT8_C( -78), INT8_C( 31), INT8_C( 94), INT8_C( 79), INT8_C( 92), INT8_C( 106), INT8_C( -68), INT8_C( 96), INT8_C( -97), INT8_C( -27), INT8_C(-118), INT8_C( -11), INT8_C( 112), INT8_C(-125), INT8_C( 70), INT8_C( 26), INT8_C( -38), INT8_C( -16), INT8_C(-112), INT8_C( 10), INT8_C( 98), INT8_C( -4), INT8_C( 120), INT8_C( -33), INT8_C(-127), INT8_C( -65), INT8_C( -40), INT8_C( 88), INT8_C( -6), INT8_C( 74), INT8_C( 41), INT8_C( 39), INT8_C( 79), INT8_C(-125), INT8_C( -7), INT8_C( 62), INT8_C(-112), INT8_C(-119), INT8_C( -9), INT8_C( 71), INT8_C( -68), INT8_C( -79), INT8_C( 48), INT8_C( -20), INT8_C( -97), INT8_C(-116), INT8_C( 120), INT8_C( -65), INT8_C( 6), INT8_C( -32), INT8_C( -75), INT8_C(-106), INT8_C( 26), INT8_C( -96), INT8_C( 50), INT8_C( -45), INT8_C( 16)), simde_mm512_set_epi8(INT8_C(-102), INT8_C( 126), INT8_C(-120), INT8_C( -42), INT8_C( 113), INT8_C( -39), INT8_C( 6), INT8_C( 44), INT8_C( -36), INT8_C( 115), INT8_C( 54), INT8_C( 112), INT8_C( 64), INT8_C( 40), INT8_C( 97), INT8_C( 117), INT8_C( -33), INT8_C( 55), INT8_C( 110), INT8_C( -34), INT8_C( -75), INT8_C( 114), INT8_C( -81), INT8_C( -34), INT8_C( 95), INT8_C( 31), INT8_C( 114), INT8_C( 73), INT8_C( -61), INT8_C( 2), INT8_C( 8), INT8_C( 69), INT8_C( 1), INT8_C( 92), INT8_C(-100), INT8_C( 7), INT8_C( 120), INT8_C( -69), INT8_C( -67), INT8_C( 73), INT8_C( -77), INT8_C( -96), INT8_C(-117), INT8_C( 90), INT8_C( 28), INT8_C( 15), INT8_C( -80), INT8_C( 37), INT8_C( 97), INT8_C( 97), INT8_C( 78), INT8_C( -88), INT8_C( 43), INT8_C( 40), INT8_C( 93), INT8_C( -10), INT8_C( 79), INT8_C(-115), INT8_C( -29), INT8_C( 12), INT8_C( -91), INT8_C( 99), INT8_C( -12), INT8_C( 120)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_sub_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_sub_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( 121), INT8_C( -8), INT8_C(-121), INT8_C( -19), INT8_C( 19), INT8_C( -3), INT8_C( 10), INT8_C( -37), INT8_C( 96), INT8_C( 15), INT8_C( -45), INT8_C( -44), INT8_C( -83), INT8_C( -37), INT8_C( 8), INT8_C( 111), INT8_C( -30), INT8_C( -99), INT8_C( 116), INT8_C( 112), INT8_C( 67), INT8_C(-123), INT8_C( 59), INT8_C( -62), INT8_C( 33), INT8_C( 51), INT8_C( -16), INT8_C( -35), INT8_C( -53), INT8_C( 108), INT8_C( -37), INT8_C( -15), INT8_C( 26), INT8_C( 83), INT8_C( -47), INT8_C( -23), INT8_C( 6), INT8_C( 52), INT8_C( -19), INT8_C( 108), INT8_C( -33), INT8_C( 120), INT8_C( 55), INT8_C(-128), INT8_C( -46), INT8_C( 117), INT8_C( 41), INT8_C( -54), INT8_C( -99), INT8_C( -39), INT8_C( 117), INT8_C( 57), INT8_C( 78), INT8_C(-110), INT8_C( -8), INT8_C(-114), INT8_C( -54), INT8_C( 20), INT8_C( 112), INT8_C( 39), INT8_C( -60), INT8_C( 36), INT8_C( -53), INT8_C( 53)), UINT64_C( 567574400), simde_mm512_set_epi8(INT8_C( 115), INT8_C( 65), INT8_C(-123), INT8_C( 116), INT8_C( -46), INT8_C( -68), INT8_C( -8), INT8_C( 96), INT8_C( -90), INT8_C( -14), INT8_C( 27), INT8_C( 33), INT8_C( 21), INT8_C( 58), INT8_C( -12), INT8_C( -76), INT8_C( 70), INT8_C( -70), INT8_C( -4), INT8_C( 64), INT8_C( 35), INT8_C( -32), INT8_C(-115), INT8_C( 109), INT8_C( -69), INT8_C( -61), INT8_C(-126), INT8_C( 45), INT8_C( 93), INT8_C( 100), INT8_C( -53), INT8_C( 105), INT8_C( -51), INT8_C( 43), INT8_C( -96), INT8_C( -95), INT8_C( 86), INT8_C( -66), INT8_C( -47), INT8_C( 123), INT8_C( 63), INT8_C( 16), INT8_C( -66), INT8_C( 12), INT8_C( 115), INT8_C( -39), INT8_C( 10), INT8_C( 108), INT8_C(-120), INT8_C( 110), INT8_C( -25), INT8_C( 7), INT8_C( 105), INT8_C( -93), INT8_C( 68), INT8_C( 3), INT8_C( 113), INT8_C( -50), INT8_C( -34), INT8_C( 22), INT8_C( -61), INT8_C( 75), INT8_C( 28), INT8_C( 116)), simde_mm512_set_epi8(INT8_C( 26), INT8_C( -6), INT8_C( -92), INT8_C( 7), INT8_C(-105), INT8_C( -92), INT8_C( 38), INT8_C( -63), INT8_C( 77), INT8_C( 86), INT8_C( 113), INT8_C( -48), INT8_C( 108), INT8_C( -92), INT8_C( 69), INT8_C( 74), INT8_C( 67), INT8_C( 96), INT8_C( -34), INT8_C( 78), INT8_C( 124), INT8_C( 9), INT8_C( -1), INT8_C( -86), INT8_C( -35), INT8_C( 26), INT8_C( 67), INT8_C( 46), INT8_C( 75), INT8_C(-119), INT8_C( 68), INT8_C( 31), INT8_C( -52), INT8_C(-102), INT8_C( -4), INT8_C( 118), INT8_C( 0), INT8_C( -44), INT8_C( 123), INT8_C( -73), INT8_C( 84), INT8_C( 30), INT8_C( -8), INT8_C( 64), INT8_C( -20), INT8_C( -79), INT8_C( -85), INT8_C( -23), INT8_C( -34), INT8_C( -4), INT8_C( -85), INT8_C( 107), INT8_C( -6), INT8_C( 16), INT8_C( -66), INT8_C(-113), INT8_C( 60), INT8_C( 127), INT8_C( -54), INT8_C( -36), INT8_C( 73), INT8_C( -97), INT8_C( -65), INT8_C( 63)), simde_mm512_set_epi8(INT8_C( 121), INT8_C( -8), INT8_C(-121), INT8_C( -19), INT8_C( 19), INT8_C( -3), INT8_C( 10), INT8_C( -37), INT8_C( 96), INT8_C( 15), INT8_C( -45), INT8_C( -44), INT8_C( -83), INT8_C( -37), INT8_C( 8), INT8_C( 111), INT8_C( -30), INT8_C( -99), INT8_C( 116), INT8_C( 112), INT8_C( 67), INT8_C(-123), INT8_C( 59), INT8_C( -62), INT8_C( 33), INT8_C( 51), INT8_C( -16), INT8_C( -35), INT8_C( -53), INT8_C( 108), INT8_C( -37), INT8_C( -15), INT8_C( 26), INT8_C( 83), INT8_C( -92), INT8_C( -23), INT8_C( 6), INT8_C( 52), INT8_C( -19), INT8_C( -60), INT8_C( -21), INT8_C( -14), INT8_C( 55), INT8_C( -52), INT8_C( -46), INT8_C( 40), INT8_C( 41), INT8_C( -54), INT8_C( -99), INT8_C( 114), INT8_C( 60), INT8_C(-100), INT8_C( 111), INT8_C(-109), INT8_C(-122), INT8_C( 116), INT8_C( 53), INT8_C( 20), INT8_C( 112), INT8_C( 39), INT8_C( -60), INT8_C( 36), INT8_C( -53), INT8_C( 53)) }, { simde_mm512_set_epi8(INT8_C( 44), INT8_C( 68), INT8_C( 96), INT8_C( 88), INT8_C( 1), INT8_C( 68), INT8_C( 46), INT8_C( 19), INT8_C( 31), INT8_C( 85), INT8_C( 35), INT8_C( 68), INT8_C( -79), INT8_C( 41), INT8_C( 28), INT8_C( 92), INT8_C( -26), INT8_C( 20), INT8_C( -16), INT8_C( -7), INT8_C( 41), INT8_C( 71), INT8_C( 88), INT8_C( 39), INT8_C( -42), INT8_C( 76), INT8_C( 40), INT8_C( 108), INT8_C( -87), INT8_C(-126), INT8_C( 42), INT8_C( 58), INT8_C( 2), INT8_C( -23), INT8_C( 5), INT8_C(-116), INT8_C( 34), INT8_C( 66), INT8_C( 28), INT8_C( 86), INT8_C( 50), INT8_C( -67), INT8_C( 20), INT8_C( 73), INT8_C( 27), INT8_C( -29), INT8_C( 84), INT8_C( 112), INT8_C( 104), INT8_C( 53), INT8_C( -89), INT8_C(-113), INT8_C( -4), INT8_C( 94), INT8_C( 75), INT8_C( 21), INT8_C(-120), INT8_C( -25), INT8_C( 111), INT8_C(-128), INT8_C( -4), INT8_C( 58), INT8_C(-115), INT8_C( 4)), UINT64_C( 2779079274), simde_mm512_set_epi8(INT8_C( -70), INT8_C( -58), INT8_C( 69), INT8_C( -7), INT8_C( 115), INT8_C( -10), INT8_C( -39), INT8_C( 78), INT8_C( 56), INT8_C( 116), INT8_C( 104), INT8_C( -92), INT8_C( 5), INT8_C( -47), INT8_C( 27), INT8_C( 94), INT8_C(-126), INT8_C( 88), INT8_C( 80), INT8_C( 112), INT8_C( 21), INT8_C( 62), INT8_C( 86), INT8_C(-103), INT8_C( 66), INT8_C( -9), INT8_C( -26), INT8_C( 47), INT8_C( -50), INT8_C(-118), INT8_C( 115), INT8_C( 49), INT8_C( 42), INT8_C( 6), INT8_C( 92), INT8_C( 2), INT8_C( 63), INT8_C( -6), INT8_C( -32), INT8_C( 15), INT8_C( 66), INT8_C( 82), INT8_C( -9), INT8_C( -79), INT8_C(-123), INT8_C( 52), INT8_C( -90), INT8_C(-111), INT8_C( 62), INT8_C( -43), INT8_C( -50), INT8_C( 62), INT8_C( 4), INT8_C( -92), INT8_C( 86), INT8_C( -32), INT8_C( 69), INT8_C( -15), INT8_C( 55), INT8_C(-127), INT8_C( -36), INT8_C( 56), INT8_C( 46), INT8_C(-119)), simde_mm512_set_epi8(INT8_C( 18), INT8_C( 68), INT8_C( -9), INT8_C( 64), INT8_C(-111), INT8_C( 37), INT8_C( -82), INT8_C( -95), INT8_C( 54), INT8_C( 75), INT8_C( -77), INT8_C( -34), INT8_C( 52), INT8_C( -80), INT8_C( -94), INT8_C( 90), INT8_C( 0), INT8_C( -8), INT8_C( 123), INT8_C(-111), INT8_C( 16), INT8_C( 125), INT8_C( -51), INT8_C( 99), INT8_C( -22), INT8_C( 121), INT8_C( 63), INT8_C( -55), INT8_C( 117), INT8_C( 109), INT8_C(-126), INT8_C(-111), INT8_C( 47), INT8_C(-127), INT8_C( 109), INT8_C( -9), INT8_C( -42), INT8_C( 36), INT8_C( -32), INT8_C( 115), INT8_C( -89), INT8_C( 7), INT8_C( 90), INT8_C( 46), INT8_C( -83), INT8_C( -35), INT8_C( 30), INT8_C( -19), INT8_C( -99), INT8_C( -56), INT8_C( -70), INT8_C( 73), INT8_C( -61), INT8_C( 27), INT8_C( 117), INT8_C( 47), INT8_C( 0), INT8_C( -45), INT8_C( 59), INT8_C( 51), INT8_C( -35), INT8_C( 70), INT8_C( 73), INT8_C( 33)), simde_mm512_set_epi8(INT8_C( 44), INT8_C( 68), INT8_C( 96), INT8_C( 88), INT8_C( 1), INT8_C( 68), INT8_C( 46), INT8_C( 19), INT8_C( 31), INT8_C( 85), INT8_C( 35), INT8_C( 68), INT8_C( -79), INT8_C( 41), INT8_C( 28), INT8_C( 92), INT8_C( -26), INT8_C( 20), INT8_C( -16), INT8_C( -7), INT8_C( 41), INT8_C( 71), INT8_C( 88), INT8_C( 39), INT8_C( -42), INT8_C( 76), INT8_C( 40), INT8_C( 108), INT8_C( -87), INT8_C(-126), INT8_C( 42), INT8_C( 58), INT8_C( -5), INT8_C( -23), INT8_C( -17), INT8_C(-116), INT8_C( 34), INT8_C( -42), INT8_C( 28), INT8_C(-100), INT8_C(-101), INT8_C( -67), INT8_C( -99), INT8_C( 73), INT8_C( 27), INT8_C( 87), INT8_C( 84), INT8_C( -92), INT8_C( 104), INT8_C( 13), INT8_C( 20), INT8_C(-113), INT8_C( -4), INT8_C( 94), INT8_C( -31), INT8_C( 21), INT8_C(-120), INT8_C( 30), INT8_C( -4), INT8_C(-128), INT8_C( -1), INT8_C( 58), INT8_C( -27), INT8_C( 4)) }, { simde_mm512_set_epi8(INT8_C( -35), INT8_C( 32), INT8_C( -43), INT8_C( 108), INT8_C( 83), INT8_C( -59), INT8_C( -4), INT8_C( 125), INT8_C( -31), INT8_C( 118), INT8_C( -25), INT8_C( -91), INT8_C( 50), INT8_C( -74), INT8_C( 78), INT8_C( 95), INT8_C( -84), INT8_C( -63), INT8_C( 87), INT8_C(-108), INT8_C( 28), INT8_C( -70), INT8_C( 77), INT8_C(-113), INT8_C( -20), INT8_C( 50), INT8_C( 95), INT8_C(-108), INT8_C( 105), INT8_C( 114), INT8_C(-109), INT8_C( 19), INT8_C( -79), INT8_C( 106), INT8_C( 61), INT8_C( -12), INT8_C( 126), INT8_C(-117), INT8_C( 126), INT8_C(-125), INT8_C( -93), INT8_C( 69), INT8_C( 104), INT8_C( 119), INT8_C( 63), INT8_C( 95), INT8_C(-106), INT8_C( -66), INT8_C( -47), INT8_C( -45), INT8_C( -60), INT8_C( -54), INT8_C(-109), INT8_C( -45), INT8_C( -86), INT8_C( 121), INT8_C( 23), INT8_C( -12), INT8_C( 67), INT8_C( -6), INT8_C( -37), INT8_C( 92), INT8_C( -35), INT8_C( 99)), UINT64_C( 1100920337), simde_mm512_set_epi8(INT8_C( 13), INT8_C( 104), INT8_C( 50), INT8_C( 43), INT8_C( 82), INT8_C( -5), INT8_C( -23), INT8_C( -47), INT8_C( 99), INT8_C(-116), INT8_C( 118), INT8_C( 73), INT8_C( -10), INT8_C( -88), INT8_C( -42), INT8_C( -58), INT8_C( -49), INT8_C( 65), INT8_C( -18), INT8_C( 54), INT8_C( -68), INT8_C( 1), INT8_C( -7), INT8_C( -96), INT8_C( 4), INT8_C( 115), INT8_C( 42), INT8_C(-106), INT8_C( 31), INT8_C( 94), INT8_C( -71), INT8_C( -41), INT8_C( 33), INT8_C(-106), INT8_C( -65), INT8_C(-107), INT8_C( 71), INT8_C( -10), INT8_C( -21), INT8_C(-128), INT8_C( -23), INT8_C( 20), INT8_C( 2), INT8_C( 96), INT8_C(-128), INT8_C( -51), INT8_C( -38), INT8_C( 47), INT8_C( -56), INT8_C( 123), INT8_C( -20), INT8_C( -50), INT8_C( -2), INT8_C( 40), INT8_C( 24), INT8_C( -98), INT8_C( 4), INT8_C( -62), INT8_C( -44), INT8_C( 49), INT8_C( 83), INT8_C( 115), INT8_C( 5), INT8_C( 57)), simde_mm512_set_epi8(INT8_C( 76), INT8_C( -52), INT8_C( -96), INT8_C( -6), INT8_C(-119), INT8_C( -87), INT8_C( 102), INT8_C( 5), INT8_C( 24), INT8_C( -44), INT8_C( 110), INT8_C(-113), INT8_C(-116), INT8_C( -3), INT8_C( 62), INT8_C( -87), INT8_C( 7), INT8_C( -54), INT8_C( -57), INT8_C( -66), INT8_C( 42), INT8_C( -82), INT8_C( 46), INT8_C( -16), INT8_C( 91), INT8_C( -73), INT8_C( -20), INT8_C( -77), INT8_C( -11), INT8_C( 25), INT8_C( 12), INT8_C( 76), INT8_C( -58), INT8_C( 3), INT8_C(-125), INT8_C( -36), INT8_C( 18), INT8_C( -40), INT8_C( 111), INT8_C( 107), INT8_C( 88), INT8_C( 48), INT8_C( 113), INT8_C( -90), INT8_C(-117), INT8_C( 116), INT8_C( 46), INT8_C( -70), INT8_C( 51), INT8_C( -55), INT8_C( 127), INT8_C( 82), INT8_C( -88), INT8_C( 60), INT8_C( -59), INT8_C( 80), INT8_C( -51), INT8_C( 11), INT8_C( -44), INT8_C( 33), INT8_C( 29), INT8_C( 8), INT8_C( 5), INT8_C( 70)), simde_mm512_set_epi8(INT8_C( -35), INT8_C( 32), INT8_C( -43), INT8_C( 108), INT8_C( 83), INT8_C( -59), INT8_C( -4), INT8_C( 125), INT8_C( -31), INT8_C( 118), INT8_C( -25), INT8_C( -91), INT8_C( 50), INT8_C( -74), INT8_C( 78), INT8_C( 95), INT8_C( -84), INT8_C( -63), INT8_C( 87), INT8_C(-108), INT8_C( 28), INT8_C( -70), INT8_C( 77), INT8_C(-113), INT8_C( -20), INT8_C( 50), INT8_C( 95), INT8_C(-108), INT8_C( 105), INT8_C( 114), INT8_C(-109), INT8_C( 19), INT8_C( -79), INT8_C(-109), INT8_C( 61), INT8_C( -12), INT8_C( 126), INT8_C(-117), INT8_C( 126), INT8_C( 21), INT8_C(-111), INT8_C( 69), INT8_C( 104), INT8_C( -70), INT8_C( -11), INT8_C( 89), INT8_C( -84), INT8_C( -66), INT8_C(-107), INT8_C( -45), INT8_C( 109), INT8_C( 124), INT8_C(-109), INT8_C( -20), INT8_C( 83), INT8_C( 121), INT8_C( 23), INT8_C( -12), INT8_C( 67), INT8_C( 16), INT8_C( -37), INT8_C( 92), INT8_C( -35), INT8_C( -13)) }, { simde_mm512_set_epi8(INT8_C( 27), INT8_C( 45), INT8_C( 71), INT8_C( -63), INT8_C( 96), INT8_C(-106), INT8_C( -43), INT8_C( 10), INT8_C( 104), INT8_C( -19), INT8_C(-110), INT8_C( 126), INT8_C( -52), INT8_C( -56), INT8_C( -96), INT8_C( -27), INT8_C(-125), INT8_C(-116), INT8_C( 25), INT8_C( 78), INT8_C( -76), INT8_C( -85), INT8_C( -23), INT8_C( -19), INT8_C(-106), INT8_C( 126), INT8_C( 19), INT8_C( -41), INT8_C( 40), INT8_C( 78), INT8_C( -69), INT8_C( 57), INT8_C( 73), INT8_C( -58), INT8_C( 3), INT8_C( 65), INT8_C( -87), INT8_C( -37), INT8_C( 5), INT8_C(-126), INT8_C( 14), INT8_C( -36), INT8_C( -37), INT8_C( 11), INT8_C( 94), INT8_C( 24), INT8_C( 8), INT8_C( -31), INT8_C( -38), INT8_C( -1), INT8_C( 48), INT8_C( 32), INT8_C( 88), INT8_C( -18), INT8_C( 123), INT8_C( 27), INT8_C( 111), INT8_C( 27), INT8_C( -3), INT8_C( 52), INT8_C( -31), INT8_C( 2), INT8_C( -47), INT8_C( 64)), UINT64_C( 361367503), simde_mm512_set_epi8(INT8_C( -20), INT8_C(-104), INT8_C( -27), INT8_C( 38), INT8_C( 31), INT8_C( -21), INT8_C( 79), INT8_C( -62), INT8_C( 36), INT8_C( 95), INT8_C( 42), INT8_C(-102), INT8_C( -80), INT8_C( -69), INT8_C( 107), INT8_C(-114), INT8_C( 76), INT8_C( 123), INT8_C(-126), INT8_C( 108), INT8_C( -55), INT8_C( 89), INT8_C( -46), INT8_C( 18), INT8_C( 117), INT8_C( 25), INT8_C(-120), INT8_C( 27), INT8_C( 34), INT8_C( 64), INT8_C( 71), INT8_C( 64), INT8_C( -13), INT8_C( -73), INT8_C( 112), INT8_C( 25), INT8_C( -18), INT8_C( -63), INT8_C( 109), INT8_C( 9), INT8_C( 14), INT8_C(-125), INT8_C( -89), INT8_C( 70), INT8_C( 10), INT8_C( 15), INT8_C( 120), INT8_C( -59), INT8_C( 55), INT8_C( 108), INT8_C( 41), INT8_C( -5), INT8_C( -91), INT8_C(-120), INT8_C( -46), INT8_C( 122), INT8_C( 116), INT8_C(-120), INT8_C( -67), INT8_C( -86), INT8_C( 48), INT8_C( 2), INT8_C( 37), INT8_C( -26)), simde_mm512_set_epi8(INT8_C( -70), INT8_C( 3), INT8_C( 118), INT8_C( 37), INT8_C( 104), INT8_C( 111), INT8_C( -17), INT8_C( 110), INT8_C( -58), INT8_C( 58), INT8_C( 102), INT8_C( 64), INT8_C( -67), INT8_C( -76), INT8_C( -30), INT8_C( 108), INT8_C( 79), INT8_C( 46), INT8_C( -40), INT8_C( 101), INT8_C( -13), INT8_C( -25), INT8_C( 60), INT8_C( 25), INT8_C( 32), INT8_C( -21), INT8_C( 114), INT8_C( -21), INT8_C( 71), INT8_C( -85), INT8_C( 34), INT8_C( 82), INT8_C(-114), INT8_C( -30), INT8_C( -58), INT8_C( 116), INT8_C( 58), INT8_C(-105), INT8_C( 117), INT8_C( 11), INT8_C( -91), INT8_C( 118), INT8_C( -50), INT8_C( -8), INT8_C( -22), INT8_C( 59), INT8_C( -29), INT8_C( -88), INT8_C( -82), INT8_C( -24), INT8_C( 18), INT8_C( 115), INT8_C( -15), INT8_C( 55), INT8_C( 78), INT8_C( 60), INT8_C( -8), INT8_C( -91), INT8_C( 126), INT8_C( 15), INT8_C( 23), INT8_C( 6), INT8_C( -21), INT8_C( 120)), simde_mm512_set_epi8(INT8_C( 27), INT8_C( 45), INT8_C( 71), INT8_C( -63), INT8_C( 96), INT8_C(-106), INT8_C( -43), INT8_C( 10), INT8_C( 104), INT8_C( -19), INT8_C(-110), INT8_C( 126), INT8_C( -52), INT8_C( -56), INT8_C( -96), INT8_C( -27), INT8_C(-125), INT8_C(-116), INT8_C( 25), INT8_C( 78), INT8_C( -76), INT8_C( -85), INT8_C( -23), INT8_C( -19), INT8_C(-106), INT8_C( 126), INT8_C( 19), INT8_C( -41), INT8_C( 40), INT8_C( 78), INT8_C( -69), INT8_C( 57), INT8_C( 73), INT8_C( -58), INT8_C( 3), INT8_C( -91), INT8_C( -87), INT8_C( 42), INT8_C( 5), INT8_C( -2), INT8_C( 105), INT8_C( -36), INT8_C( -37), INT8_C( 11), INT8_C( 32), INT8_C( 24), INT8_C(-107), INT8_C( -31), INT8_C( -38), INT8_C( -1), INT8_C( 48), INT8_C( 32), INT8_C( 88), INT8_C( 81), INT8_C(-124), INT8_C( 62), INT8_C( 124), INT8_C( -29), INT8_C( -3), INT8_C( 52), INT8_C( 25), INT8_C( -4), INT8_C( 58), INT8_C( 110)) }, { simde_mm512_set_epi8(INT8_C( 4), INT8_C( 97), INT8_C( 53), INT8_C( -46), INT8_C( 92), INT8_C(-100), INT8_C( 47), INT8_C( 107), INT8_C( -52), INT8_C( 68), INT8_C( 11), INT8_C( -16), INT8_C( -66), INT8_C( -79), INT8_C( -14), INT8_C( 27), INT8_C( 14), INT8_C( 125), INT8_C( 22), INT8_C( -82), INT8_C( 44), INT8_C( -12), INT8_C( 94), INT8_C( -30), INT8_C( 98), INT8_C( 125), INT8_C(-107), INT8_C( 37), INT8_C( -66), INT8_C( 90), INT8_C( 68), INT8_C( 10), INT8_C( -72), INT8_C( -10), INT8_C(-119), INT8_C( -9), INT8_C( 49), INT8_C(-107), INT8_C( 10), INT8_C( 47), INT8_C( 58), INT8_C(-125), INT8_C( 4), INT8_C( 68), INT8_C( -24), INT8_C( -12), INT8_C( 44), INT8_C(-128), INT8_C( -52), INT8_C( -61), INT8_C( -14), INT8_C( -38), INT8_C( -93), INT8_C( -34), INT8_C( 64), INT8_C( -67), INT8_C(-123), INT8_C( 123), INT8_C( -93), INT8_C( 41), INT8_C( 97), INT8_C( -8), INT8_C( -86), INT8_C( -16)), UINT64_C( 944667126), simde_mm512_set_epi8(INT8_C( -24), INT8_C( -47), INT8_C(-119), INT8_C( 5), INT8_C( 95), INT8_C( 82), INT8_C( -3), INT8_C( -62), INT8_C(-116), INT8_C( -98), INT8_C( -29), INT8_C( 77), INT8_C( -38), INT8_C(-118), INT8_C( -85), INT8_C( 121), INT8_C( -72), INT8_C(-111), INT8_C( 28), INT8_C( -18), INT8_C( 64), INT8_C(-126), INT8_C( 122), INT8_C( -54), INT8_C( 87), INT8_C( -22), INT8_C( 17), INT8_C( 50), INT8_C( -83), INT8_C( -39), INT8_C( 77), INT8_C( -13), INT8_C( 17), INT8_C( -66), INT8_C(-128), INT8_C( 77), INT8_C( 107), INT8_C( 47), INT8_C( -68), INT8_C( -44), INT8_C( -30), INT8_C( -22), INT8_C( 14), INT8_C( 26), INT8_C( 59), INT8_C( 103), INT8_C( -54), INT8_C( -39), INT8_C( 16), INT8_C( 5), INT8_C( 18), INT8_C(-104), INT8_C(-119), INT8_C( -46), INT8_C( -92), INT8_C( 37), INT8_C( -84), INT8_C( 2), INT8_C( -49), INT8_C( 99), INT8_C( -79), INT8_C( 48), INT8_C(-103), INT8_C( 3)), simde_mm512_set_epi8(INT8_C( -56), INT8_C( -56), INT8_C( 57), INT8_C( -25), INT8_C( -3), INT8_C( 99), INT8_C( -6), INT8_C( 31), INT8_C( -96), INT8_C( 49), INT8_C( 110), INT8_C( -10), INT8_C( -82), INT8_C( 32), INT8_C( -27), INT8_C( 112), INT8_C( 84), INT8_C( 37), INT8_C( -62), INT8_C( 38), INT8_C( -53), INT8_C( -97), INT8_C( 76), INT8_C( 13), INT8_C(-124), INT8_C(-120), INT8_C( -86), INT8_C( 98), INT8_C( 96), INT8_C( 4), INT8_C( 4), INT8_C( 94), INT8_C( -41), INT8_C( -81), INT8_C( -40), INT8_C( -28), INT8_C( -23), INT8_C( -59), INT8_C( -15), INT8_C( -40), INT8_C( 113), INT8_C( 116), INT8_C( 41), INT8_C( -96), INT8_C( -83), INT8_C( 4), INT8_C( 93), INT8_C( 28), INT8_C( 114), INT8_C( 29), INT8_C( -56), INT8_C( -61), INT8_C(-124), INT8_C(-107), INT8_C( -23), INT8_C( -89), INT8_C( 38), INT8_C( -97), INT8_C( 109), INT8_C( 53), INT8_C(-117), INT8_C( 76), INT8_C( -82), INT8_C( -65)), simde_mm512_set_epi8(INT8_C( 4), INT8_C( 97), INT8_C( 53), INT8_C( -46), INT8_C( 92), INT8_C(-100), INT8_C( 47), INT8_C( 107), INT8_C( -52), INT8_C( 68), INT8_C( 11), INT8_C( -16), INT8_C( -66), INT8_C( -79), INT8_C( -14), INT8_C( 27), INT8_C( 14), INT8_C( 125), INT8_C( 22), INT8_C( -82), INT8_C( 44), INT8_C( -12), INT8_C( 94), INT8_C( -30), INT8_C( 98), INT8_C( 125), INT8_C(-107), INT8_C( 37), INT8_C( -66), INT8_C( 90), INT8_C( 68), INT8_C( 10), INT8_C( -72), INT8_C( -10), INT8_C( -88), INT8_C( 105), INT8_C(-126), INT8_C(-107), INT8_C( 10), INT8_C( 47), INT8_C( 58), INT8_C( 118), INT8_C( 4), INT8_C( 68), INT8_C(-114), INT8_C( 99), INT8_C( 109), INT8_C(-128), INT8_C( -52), INT8_C( -24), INT8_C( 74), INT8_C( -43), INT8_C( 5), INT8_C( -34), INT8_C( 64), INT8_C( 126), INT8_C(-122), INT8_C( 99), INT8_C( 98), INT8_C( 46), INT8_C( 97), INT8_C( -28), INT8_C( -21), INT8_C( -16)) }, { simde_mm512_set_epi8(INT8_C( -50), INT8_C( 0), INT8_C( 80), INT8_C(-123), INT8_C( 19), INT8_C( 112), INT8_C( 30), INT8_C( 95), INT8_C( 58), INT8_C( 21), INT8_C( 13), INT8_C( 32), INT8_C( 113), INT8_C( 126), INT8_C( 27), INT8_C( 113), INT8_C( 121), INT8_C( 97), INT8_C( 51), INT8_C( -16), INT8_C( -77), INT8_C( 84), INT8_C( 16), INT8_C(-112), INT8_C( -40), INT8_C( -69), INT8_C(-116), INT8_C( -97), INT8_C(-120), INT8_C( 102), INT8_C( -82), INT8_C( -42), INT8_C( 43), INT8_C( -70), INT8_C( 46), INT8_C( 17), INT8_C( 108), INT8_C( -47), INT8_C( 53), INT8_C( -84), INT8_C( 19), INT8_C( -37), INT8_C( -32), INT8_C( -59), INT8_C( 33), INT8_C( 110), INT8_C( 17), INT8_C( 67), INT8_C( 51), INT8_C( -19), INT8_C( 91), INT8_C( 26), INT8_C( 33), INT8_C( -43), INT8_C( -14), INT8_C( -56), INT8_C( 112), INT8_C( -72), INT8_C( 96), INT8_C( -62), INT8_C( -21), INT8_C( 96), INT8_C( -25), INT8_C( 104)), UINT64_C( 1662672283), simde_mm512_set_epi8(INT8_C( 55), INT8_C( 43), INT8_C(-128), INT8_C( 23), INT8_C( -59), INT8_C( -21), INT8_C( -11), INT8_C( -65), INT8_C(-101), INT8_C( -89), INT8_C( -88), INT8_C( -71), INT8_C( -70), INT8_C( 37), INT8_C( 122), INT8_C( 74), INT8_C( 109), INT8_C( -13), INT8_C( -13), INT8_C( 72), INT8_C( -1), INT8_C( -35), INT8_C( 80), INT8_C( -20), INT8_C( 14), INT8_C(-104), INT8_C( -76), INT8_C(-122), INT8_C( -35), INT8_C( -33), INT8_C( 63), INT8_C( 74), INT8_C( 98), INT8_C( 54), INT8_C( -12), INT8_C( -1), INT8_C( -30), INT8_C( 96), INT8_C( 95), INT8_C( 58), INT8_C( -63), INT8_C( -6), INT8_C(-113), INT8_C( 55), INT8_C(-128), INT8_C( -43), INT8_C( -90), INT8_C( -63), INT8_C( 3), INT8_C( -6), INT8_C( -45), INT8_C( -75), INT8_C( -83), INT8_C(-118), INT8_C( 74), INT8_C( 35), INT8_C( 38), INT8_C( 4), INT8_C( 35), INT8_C( 15), INT8_C( -42), INT8_C( 71), INT8_C( -1), INT8_C( 27)), simde_mm512_set_epi8(INT8_C( 32), INT8_C( 122), INT8_C( 89), INT8_C( 21), INT8_C( -83), INT8_C( -46), INT8_C( -78), INT8_C( 71), INT8_C( -35), INT8_C( 54), INT8_C( -65), INT8_C(-111), INT8_C( 45), INT8_C( -5), INT8_C( 102), INT8_C( 32), INT8_C(-110), INT8_C( 116), INT8_C( -61), INT8_C( 36), INT8_C( -25), INT8_C( 106), INT8_C( -63), INT8_C( 23), INT8_C( -59), INT8_C( 25), INT8_C(-108), INT8_C( -84), INT8_C( -23), INT8_C( 118), INT8_C( -35), INT8_C( 92), INT8_C( -29), INT8_C(-121), INT8_C( -87), INT8_C( 93), INT8_C( 6), INT8_C( -12), INT8_C(-123), INT8_C( 42), INT8_C( 121), INT8_C( 3), INT8_C( 69), INT8_C( 75), INT8_C( 68), INT8_C( -1), INT8_C( -25), INT8_C( 83), INT8_C( -4), INT8_C( -73), INT8_C( -63), INT8_C( 12), INT8_C( -93), INT8_C( -22), INT8_C( 40), INT8_C( -24), INT8_C( -60), INT8_C( 99), INT8_C( 122), INT8_C( 49), INT8_C( -46), INT8_C( 127), INT8_C( 18), INT8_C( 124)), simde_mm512_set_epi8(INT8_C( -50), INT8_C( 0), INT8_C( 80), INT8_C(-123), INT8_C( 19), INT8_C( 112), INT8_C( 30), INT8_C( 95), INT8_C( 58), INT8_C( 21), INT8_C( 13), INT8_C( 32), INT8_C( 113), INT8_C( 126), INT8_C( 27), INT8_C( 113), INT8_C( 121), INT8_C( 97), INT8_C( 51), INT8_C( -16), INT8_C( -77), INT8_C( 84), INT8_C( 16), INT8_C(-112), INT8_C( -40), INT8_C( -69), INT8_C(-116), INT8_C( -97), INT8_C(-120), INT8_C( 102), INT8_C( -82), INT8_C( -42), INT8_C( 43), INT8_C( -81), INT8_C( 75), INT8_C( 17), INT8_C( 108), INT8_C( -47), INT8_C( -38), INT8_C( 16), INT8_C( 19), INT8_C( -37), INT8_C( -32), INT8_C( -20), INT8_C( 60), INT8_C( 110), INT8_C( -65), INT8_C( 67), INT8_C( 51), INT8_C( 67), INT8_C( 91), INT8_C( -87), INT8_C( 10), INT8_C( -96), INT8_C( -14), INT8_C( 59), INT8_C( 98), INT8_C( -72), INT8_C( 96), INT8_C( -34), INT8_C( 4), INT8_C( 96), INT8_C( -19), INT8_C( -97)) }, { simde_mm512_set_epi8(INT8_C( -82), INT8_C( 17), INT8_C( 105), INT8_C( 8), INT8_C( -41), INT8_C( 122), INT8_C( -11), INT8_C( -52), INT8_C( -81), INT8_C( -30), INT8_C( 109), INT8_C( 119), INT8_C( -78), INT8_C(-123), INT8_C( 5), INT8_C( -23), INT8_C( 44), INT8_C( -23), INT8_C(-122), INT8_C(-101), INT8_C( -30), INT8_C( 103), INT8_C( 30), INT8_C( -6), INT8_C( 113), INT8_C( -64), INT8_C( -3), INT8_C(-100), INT8_C( 72), INT8_C( -30), INT8_C( 59), INT8_C( -7), INT8_C(-101), INT8_C( 48), INT8_C( -62), INT8_C( 5), INT8_C( -52), INT8_C( 72), INT8_C( 56), INT8_C( 6), INT8_C( 86), INT8_C( -78), INT8_C( -43), INT8_C( 91), INT8_C( -63), INT8_C( -91), INT8_C(-105), INT8_C( -98), INT8_C( 39), INT8_C( 5), INT8_C( 77), INT8_C( 91), INT8_C( -82), INT8_C( 20), INT8_C( 41), INT8_C( 62), INT8_C( 27), INT8_C( 82), INT8_C( -39), INT8_C( 57), INT8_C(-116), INT8_C( -85), INT8_C(-107), INT8_C( 31)), UINT64_C( 782232724), simde_mm512_set_epi8(INT8_C( 11), INT8_C( 49), INT8_C( -30), INT8_C(-117), INT8_C( 85), INT8_C( 19), INT8_C( 44), INT8_C(-110), INT8_C( 61), INT8_C( -27), INT8_C( 26), INT8_C( -12), INT8_C( 110), INT8_C( 11), INT8_C( 45), INT8_C( -32), INT8_C( -1), INT8_C( 86), INT8_C( 125), INT8_C( 95), INT8_C( -41), INT8_C( -73), INT8_C( -6), INT8_C( 122), INT8_C( 65), INT8_C( -38), INT8_C(-116), INT8_C( 84), INT8_C(-121), INT8_C( -15), INT8_C( 41), INT8_C(-102), INT8_C( -31), INT8_C( -83), INT8_C( -68), INT8_C( 89), INT8_C( 27), INT8_C(-107), INT8_C( -85), INT8_C( 74), INT8_C( 95), INT8_C( -86), INT8_C( 94), INT8_C( -13), INT8_C( -84), INT8_C( 38), INT8_C( 116), INT8_C(-101), INT8_C( 72), INT8_C( 32), INT8_C( -98), INT8_C( 48), INT8_C( -94), INT8_C( -55), INT8_C( -17), INT8_C( 28), INT8_C( 42), INT8_C( 70), INT8_C( 89), INT8_C(-115), INT8_C( -86), INT8_C( 126), INT8_C( -92), INT8_C( 91)), simde_mm512_set_epi8(INT8_C( -46), INT8_C( -24), INT8_C( -24), INT8_C( -26), INT8_C( 89), INT8_C( 108), INT8_C( 49), INT8_C( 123), INT8_C( -86), INT8_C( -61), INT8_C( -22), INT8_C( -47), INT8_C( 21), INT8_C( 76), INT8_C( 6), INT8_C( -21), INT8_C( -19), INT8_C( 38), INT8_C(-116), INT8_C( -22), INT8_C( -75), INT8_C( 54), INT8_C( -81), INT8_C( 9), INT8_C( 94), INT8_C( -15), INT8_C( 26), INT8_C(-110), INT8_C( 18), INT8_C( -49), INT8_C( -21), INT8_C( 70), INT8_C( 50), INT8_C( 20), INT8_C( -59), INT8_C( 63), INT8_C( -20), INT8_C( -92), INT8_C( -44), INT8_C( 37), INT8_C(-125), INT8_C( 4), INT8_C( 53), INT8_C( -49), INT8_C( -10), INT8_C( 11), INT8_C( 91), INT8_C( -86), INT8_C( -34), INT8_C(-108), INT8_C( -80), INT8_C( 122), INT8_C( 31), INT8_C( 31), INT8_C( -29), INT8_C( 70), INT8_C( 28), INT8_C( 33), INT8_C( 109), INT8_C( 55), INT8_C( -79), INT8_C( 95), INT8_C( 100), INT8_C( -33)), simde_mm512_set_epi8(INT8_C( -82), INT8_C( 17), INT8_C( 105), INT8_C( 8), INT8_C( -41), INT8_C( 122), INT8_C( -11), INT8_C( -52), INT8_C( -81), INT8_C( -30), INT8_C( 109), INT8_C( 119), INT8_C( -78), INT8_C(-123), INT8_C( 5), INT8_C( -23), INT8_C( 44), INT8_C( -23), INT8_C(-122), INT8_C(-101), INT8_C( -30), INT8_C( 103), INT8_C( 30), INT8_C( -6), INT8_C( 113), INT8_C( -64), INT8_C( -3), INT8_C(-100), INT8_C( 72), INT8_C( -30), INT8_C( 59), INT8_C( -7), INT8_C(-101), INT8_C( 48), INT8_C( -9), INT8_C( 5), INT8_C( 47), INT8_C( -15), INT8_C( -41), INT8_C( 6), INT8_C( -36), INT8_C( -78), INT8_C( -43), INT8_C( 36), INT8_C( -74), INT8_C( 27), INT8_C( 25), INT8_C( -15), INT8_C( 106), INT8_C(-116), INT8_C( -18), INT8_C( 91), INT8_C(-125), INT8_C( -86), INT8_C( 41), INT8_C( 62), INT8_C( 14), INT8_C( 82), INT8_C( -39), INT8_C( 86), INT8_C(-116), INT8_C( 31), INT8_C(-107), INT8_C( 31)) }, { simde_mm512_set_epi8(INT8_C( 82), INT8_C( -55), INT8_C( 13), INT8_C(-104), INT8_C( 62), INT8_C( 20), INT8_C( -36), INT8_C( 92), INT8_C( -73), INT8_C( -79), INT8_C( -7), INT8_C( -22), INT8_C( -50), INT8_C(-119), INT8_C( -83), INT8_C( -71), INT8_C( 125), INT8_C( 29), INT8_C( -61), INT8_C(-111), INT8_C( -9), INT8_C( 67), INT8_C( -39), INT8_C( -17), INT8_C( 23), INT8_C( -11), INT8_C(-122), INT8_C( -24), INT8_C( 37), INT8_C(-122), INT8_C( -16), INT8_C( -40), INT8_C( -34), INT8_C( -17), INT8_C( 100), INT8_C( 120), INT8_C( -51), INT8_C( 8), INT8_C( 82), INT8_C( 19), INT8_C( -50), INT8_C( -24), INT8_C( -20), INT8_C( -32), INT8_C( 74), INT8_C( -84), INT8_C( 9), INT8_C( 14), INT8_C(-102), INT8_C( -2), INT8_C( 106), INT8_C( 41), INT8_C( 98), INT8_C( -87), INT8_C(-124), INT8_C( -3), INT8_C( 80), INT8_C( 110), INT8_C( -32), INT8_C( 20), INT8_C( -15), INT8_C( 65), INT8_C( -54), INT8_C( -49)), UINT64_C( 1883474426), simde_mm512_set_epi8(INT8_C( -36), INT8_C(-125), INT8_C( -71), INT8_C(-101), INT8_C( -95), INT8_C( -1), INT8_C( 65), INT8_C( 67), INT8_C( 4), INT8_C( 126), INT8_C( -9), INT8_C( 50), INT8_C( 46), INT8_C( 17), INT8_C( 12), INT8_C( 7), INT8_C( 31), INT8_C( -83), INT8_C( 63), INT8_C( 21), INT8_C(-105), INT8_C( 56), INT8_C( 6), INT8_C( 88), INT8_C( -4), INT8_C( -51), INT8_C( -16), INT8_C( -27), INT8_C( -26), INT8_C( 50), INT8_C( 3), INT8_C( -65), INT8_C( -3), INT8_C( -86), INT8_C( 39), INT8_C( 48), INT8_C( 65), INT8_C( 36), INT8_C( -65), INT8_C( -82), INT8_C(-107), INT8_C( 14), INT8_C( 110), INT8_C( 56), INT8_C( 111), INT8_C( -32), INT8_C( 109), INT8_C( -95), INT8_C( 69), INT8_C(-111), INT8_C( -7), INT8_C( 9), INT8_C( 116), INT8_C( 77), INT8_C( 122), INT8_C( 26), INT8_C( 9), INT8_C( -79), INT8_C(-127), INT8_C( -5), INT8_C( 117), INT8_C( 5), INT8_C( 80), INT8_C( -85)), simde_mm512_set_epi8(INT8_C( 82), INT8_C(-125), INT8_C( -33), INT8_C( 83), INT8_C( -98), INT8_C( 50), INT8_C( -27), INT8_C( -16), INT8_C( -63), INT8_C(-111), INT8_C( -65), INT8_C( 3), INT8_C( -15), INT8_C( 37), INT8_C( 46), INT8_C( 58), INT8_C( -41), INT8_C( 72), INT8_C( 108), INT8_C(-124), INT8_C( 9), INT8_C( 40), INT8_C( 115), INT8_C( 12), INT8_C( 1), INT8_C( 41), INT8_C( -71), INT8_C( 87), INT8_C( -55), INT8_C( 52), INT8_C( -97), INT8_C( 49), INT8_C( 32), INT8_C(-115), INT8_C( 71), INT8_C( 64), INT8_C( -61), INT8_C( 43), INT8_C( -42), INT8_C( 57), INT8_C( -56), INT8_C( 113), INT8_C( 60), INT8_C( 75), INT8_C( 7), INT8_C( -47), INT8_C( 4), INT8_C( 115), INT8_C( 67), INT8_C( 44), INT8_C( -1), INT8_C( -85), INT8_C( -95), INT8_C( 108), INT8_C( 37), INT8_C( -99), INT8_C( -88), INT8_C( -11), INT8_C( 47), INT8_C( -69), INT8_C(-123), INT8_C( 17), INT8_C( -30), INT8_C( 36)), simde_mm512_set_epi8(INT8_C( 82), INT8_C( -55), INT8_C( 13), INT8_C(-104), INT8_C( 62), INT8_C( 20), INT8_C( -36), INT8_C( 92), INT8_C( -73), INT8_C( -79), INT8_C( -7), INT8_C( -22), INT8_C( -50), INT8_C(-119), INT8_C( -83), INT8_C( -71), INT8_C( 125), INT8_C( 29), INT8_C( -61), INT8_C(-111), INT8_C( -9), INT8_C( 67), INT8_C( -39), INT8_C( -17), INT8_C( 23), INT8_C( -11), INT8_C(-122), INT8_C( -24), INT8_C( 37), INT8_C(-122), INT8_C( -16), INT8_C( -40), INT8_C( -34), INT8_C( 29), INT8_C( -32), INT8_C( -16), INT8_C( -51), INT8_C( 8), INT8_C( 82), INT8_C( 19), INT8_C( -50), INT8_C( -99), INT8_C( -20), INT8_C( -32), INT8_C( 74), INT8_C( -84), INT8_C( 105), INT8_C( 46), INT8_C( 2), INT8_C( -2), INT8_C( 106), INT8_C( 41), INT8_C( -45), INT8_C( -87), INT8_C(-124), INT8_C( 125), INT8_C( 97), INT8_C( -68), INT8_C( 82), INT8_C( 64), INT8_C( -16), INT8_C( 65), INT8_C( 110), INT8_C( -49)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_sub_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_sub_epi8(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask64 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT64_C( 3290745653), simde_mm512_set_epi8(INT8_C( 68), INT8_C( -18), INT8_C(-120), INT8_C( -91), INT8_C( 33), INT8_C( -44), INT8_C( 127), INT8_C(-128), INT8_C( 121), INT8_C( -8), INT8_C(-121), INT8_C( -19), INT8_C( 19), INT8_C( -3), INT8_C( 10), INT8_C( -37), INT8_C( 96), INT8_C( 15), INT8_C( -45), INT8_C( -44), INT8_C( -83), INT8_C( -37), INT8_C( 8), INT8_C( 111), INT8_C( -30), INT8_C( -99), INT8_C( 116), INT8_C( 112), INT8_C( 67), INT8_C(-123), INT8_C( 59), INT8_C( -62), INT8_C( 33), INT8_C( 51), INT8_C( -16), INT8_C( -35), INT8_C( -53), INT8_C( 108), INT8_C( -37), INT8_C( -15), INT8_C( 26), INT8_C( 83), INT8_C( -47), INT8_C( -23), INT8_C( 6), INT8_C( 52), INT8_C( -19), INT8_C( 108), INT8_C( -33), INT8_C( 120), INT8_C( 55), INT8_C(-128), INT8_C( -46), INT8_C( 117), INT8_C( 41), INT8_C( -54), INT8_C( -99), INT8_C( -39), INT8_C( 117), INT8_C( 57), INT8_C( 78), INT8_C(-110), INT8_C( -8), INT8_C(-114)), simde_mm512_set_epi8(INT8_C( 115), INT8_C( 65), INT8_C(-123), INT8_C( 116), INT8_C( -46), INT8_C( -68), INT8_C( -8), INT8_C( 96), INT8_C( -90), INT8_C( -14), INT8_C( 27), INT8_C( 33), INT8_C( 21), INT8_C( 58), INT8_C( -12), INT8_C( -76), INT8_C( 70), INT8_C( -70), INT8_C( -4), INT8_C( 64), INT8_C( 35), INT8_C( -32), INT8_C(-115), INT8_C( 109), INT8_C( -69), INT8_C( -61), INT8_C(-126), INT8_C( 45), INT8_C( 93), INT8_C( 100), INT8_C( -53), INT8_C( 105), INT8_C( -51), INT8_C( 43), INT8_C( -96), INT8_C( -95), INT8_C( 86), INT8_C( -66), INT8_C( -47), INT8_C( 123), INT8_C( 63), INT8_C( 16), INT8_C( -66), INT8_C( 12), INT8_C( 115), INT8_C( -39), INT8_C( 10), INT8_C( 108), INT8_C(-120), INT8_C( 110), INT8_C( -25), INT8_C( 7), INT8_C( 105), INT8_C( -93), INT8_C( 68), INT8_C( 3), INT8_C( 113), INT8_C( -50), INT8_C( -34), INT8_C( 22), INT8_C( -61), INT8_C( 75), INT8_C( 28), INT8_C( 116)), simde_mm512_set_epi8(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), 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( 84), INT8_C( 8), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -82), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 19), INT8_C( 0), INT8_C( 0), INT8_C( 91), INT8_C( 0), INT8_C( 0), INT8_C( 87), INT8_C( 10), INT8_C( 0), INT8_C( 0), INT8_C( 105), INT8_C( 0), INT8_C( -27), INT8_C( -57), INT8_C( 0), INT8_C( 0), INT8_C(-105), INT8_C( 35), INT8_C( 0), INT8_C( 71), INT8_C( 0), INT8_C( 26)) }, { UINT64_C( 1235205951), simde_mm512_set_epi8(INT8_C(-120), INT8_C( -25), INT8_C( 111), INT8_C(-128), INT8_C( -4), INT8_C( 58), INT8_C(-115), INT8_C( 4), INT8_C( 26), INT8_C( -6), INT8_C( -92), INT8_C( 7), INT8_C(-105), INT8_C( -92), INT8_C( 38), INT8_C( -63), INT8_C( 77), INT8_C( 86), INT8_C( 113), INT8_C( -48), INT8_C( 108), INT8_C( -92), INT8_C( 69), INT8_C( 74), INT8_C( 67), INT8_C( 96), INT8_C( -34), INT8_C( 78), INT8_C( 124), INT8_C( 9), INT8_C( -1), INT8_C( -86), INT8_C( -35), INT8_C( 26), INT8_C( 67), INT8_C( 46), INT8_C( 75), INT8_C(-119), INT8_C( 68), INT8_C( 31), INT8_C( -52), INT8_C(-102), INT8_C( -4), INT8_C( 118), INT8_C( 0), INT8_C( -44), INT8_C( 123), INT8_C( -73), INT8_C( 84), INT8_C( 30), INT8_C( -8), INT8_C( 64), INT8_C( -20), INT8_C( -79), INT8_C( -85), INT8_C( -23), INT8_C( -34), INT8_C( -4), INT8_C( -85), INT8_C( 107), INT8_C( -6), INT8_C( 16), INT8_C( -66), INT8_C(-113)), simde_mm512_set_epi8(INT8_C( -19), INT8_C( 117), INT8_C( 121), INT8_C( 67), INT8_C( -91), INT8_C( -91), INT8_C( 98), INT8_C( 106), INT8_C( 44), INT8_C( 68), INT8_C( 96), INT8_C( 88), INT8_C( 1), INT8_C( 68), INT8_C( 46), INT8_C( 19), INT8_C( 31), INT8_C( 85), INT8_C( 35), INT8_C( 68), INT8_C( -79), INT8_C( 41), INT8_C( 28), INT8_C( 92), INT8_C( -26), INT8_C( 20), INT8_C( -16), INT8_C( -7), INT8_C( 41), INT8_C( 71), INT8_C( 88), INT8_C( 39), INT8_C( -42), INT8_C( 76), INT8_C( 40), INT8_C( 108), INT8_C( -87), INT8_C(-126), INT8_C( 42), INT8_C( 58), INT8_C( 2), INT8_C( -23), INT8_C( 5), INT8_C(-116), INT8_C( 34), INT8_C( 66), INT8_C( 28), INT8_C( 86), INT8_C( 50), INT8_C( -67), INT8_C( 20), INT8_C( 73), INT8_C( 27), INT8_C( -29), INT8_C( 84), INT8_C( 112), INT8_C( 104), INT8_C( 53), INT8_C( -89), INT8_C(-113), INT8_C( -4), INT8_C( 94), INT8_C( 75), INT8_C( 21)), simde_mm512_set_epi8(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), 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( -50), INT8_C( 0), INT8_C( 0), INT8_C( -94), INT8_C( 0), INT8_C( 0), INT8_C( -27), INT8_C( -54), INT8_C( 0), INT8_C( 0), INT8_C( -22), INT8_C( -34), INT8_C(-110), INT8_C( 95), INT8_C( 97), INT8_C( 34), INT8_C( 0), INT8_C( -28), INT8_C( -9), INT8_C( -47), INT8_C( -50), INT8_C( 87), INT8_C( 121), INT8_C( 0), INT8_C( 0), INT8_C( 4), INT8_C( -36), INT8_C( -2), INT8_C( -78), INT8_C( 115), INT8_C( 122)) }, { UINT64_C( 3694669449), simde_mm512_set_epi8(INT8_C( 0), INT8_C( -45), INT8_C( 59), INT8_C( 51), INT8_C( -35), INT8_C( 70), INT8_C( 73), INT8_C( 33), INT8_C( -70), INT8_C( -58), INT8_C( 69), INT8_C( -7), INT8_C( 115), INT8_C( -10), INT8_C( -39), INT8_C( 78), INT8_C( 56), INT8_C( 116), INT8_C( 104), INT8_C( -92), INT8_C( 5), INT8_C( -47), INT8_C( 27), INT8_C( 94), INT8_C(-126), INT8_C( 88), INT8_C( 80), INT8_C( 112), INT8_C( 21), INT8_C( 62), INT8_C( 86), INT8_C(-103), INT8_C( 66), INT8_C( -9), INT8_C( -26), INT8_C( 47), INT8_C( -50), INT8_C(-118), INT8_C( 115), INT8_C( 49), INT8_C( 42), INT8_C( 6), INT8_C( 92), INT8_C( 2), INT8_C( 63), INT8_C( -6), INT8_C( -32), INT8_C( 15), INT8_C( 66), INT8_C( 82), INT8_C( -9), INT8_C( -79), INT8_C(-123), INT8_C( 52), INT8_C( -90), INT8_C(-111), INT8_C( 62), INT8_C( -43), INT8_C( -50), INT8_C( 62), INT8_C( 4), INT8_C( -92), INT8_C( 86), INT8_C( -32)), simde_mm512_set_epi8(INT8_C( 23), INT8_C( -12), INT8_C( 67), INT8_C( -6), INT8_C( -37), INT8_C( 92), INT8_C( -35), INT8_C( 99), INT8_C( 18), INT8_C( 68), INT8_C( -9), INT8_C( 64), INT8_C(-111), INT8_C( 37), INT8_C( -82), INT8_C( -95), INT8_C( 54), INT8_C( 75), INT8_C( -77), INT8_C( -34), INT8_C( 52), INT8_C( -80), INT8_C( -94), INT8_C( 90), INT8_C( 0), INT8_C( -8), INT8_C( 123), INT8_C(-111), INT8_C( 16), INT8_C( 125), INT8_C( -51), INT8_C( 99), INT8_C( -22), INT8_C( 121), INT8_C( 63), INT8_C( -55), INT8_C( 117), INT8_C( 109), INT8_C(-126), INT8_C(-111), INT8_C( 47), INT8_C(-127), INT8_C( 109), INT8_C( -9), INT8_C( -42), INT8_C( 36), INT8_C( -32), INT8_C( 115), INT8_C( -89), INT8_C( 7), INT8_C( 90), INT8_C( 46), INT8_C( -83), INT8_C( -35), INT8_C( 30), INT8_C( -19), INT8_C( -99), INT8_C( -56), INT8_C( -70), INT8_C( 73), INT8_C( -61), INT8_C( 27), INT8_C( 117), INT8_C( 47)), simde_mm512_set_epi8(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), 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( 88), INT8_C( 126), INT8_C( 0), INT8_C( 102), INT8_C( 89), INT8_C( 29), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -17), INT8_C( 11), INT8_C( 105), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -99), INT8_C( 0), INT8_C( -40), INT8_C( 87), INT8_C(-120), INT8_C( 0), INT8_C( -95), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 65), INT8_C( 0), INT8_C( 0), INT8_C( -79)) }, { UINT64_C( 2480122489), simde_mm512_set_epi8(INT8_C( 4), INT8_C( -62), INT8_C( -44), INT8_C( 49), INT8_C( 83), INT8_C( 115), INT8_C( 5), INT8_C( 57), INT8_C( -76), INT8_C( -80), INT8_C( 40), INT8_C( 60), INT8_C( 65), INT8_C( -98), INT8_C( -74), INT8_C( 17), INT8_C( -35), INT8_C( 32), INT8_C( -43), INT8_C( 108), INT8_C( 83), INT8_C( -59), INT8_C( -4), INT8_C( 125), INT8_C( -31), INT8_C( 118), INT8_C( -25), INT8_C( -91), INT8_C( 50), INT8_C( -74), INT8_C( 78), INT8_C( 95), INT8_C( -84), INT8_C( -63), INT8_C( 87), INT8_C(-108), INT8_C( 28), INT8_C( -70), INT8_C( 77), INT8_C(-113), INT8_C( -20), INT8_C( 50), INT8_C( 95), INT8_C(-108), INT8_C( 105), INT8_C( 114), INT8_C(-109), INT8_C( 19), INT8_C( -79), INT8_C( 106), INT8_C( 61), INT8_C( -12), INT8_C( 126), INT8_C(-117), INT8_C( 126), INT8_C(-125), INT8_C( -93), INT8_C( 69), INT8_C( 104), INT8_C( 119), INT8_C( 63), INT8_C( 95), INT8_C(-106), INT8_C( -66)), simde_mm512_set_epi8(INT8_C( -51), INT8_C( 11), INT8_C( -44), INT8_C( 33), INT8_C( 29), INT8_C( 8), INT8_C( 5), INT8_C( 70), INT8_C( 13), INT8_C( 104), INT8_C( 50), INT8_C( 43), INT8_C( 82), INT8_C( -5), INT8_C( -23), INT8_C( -47), INT8_C( 99), INT8_C(-116), INT8_C( 118), INT8_C( 73), INT8_C( -10), INT8_C( -88), INT8_C( -42), INT8_C( -58), INT8_C( -49), INT8_C( 65), INT8_C( -18), INT8_C( 54), INT8_C( -68), INT8_C( 1), INT8_C( -7), INT8_C( -96), INT8_C( 4), INT8_C( 115), INT8_C( 42), INT8_C(-106), INT8_C( 31), INT8_C( 94), INT8_C( -71), INT8_C( -41), INT8_C( 33), INT8_C(-106), INT8_C( -65), INT8_C(-107), INT8_C( 71), INT8_C( -10), INT8_C( -21), INT8_C(-128), INT8_C( -23), INT8_C( 20), INT8_C( 2), INT8_C( 96), INT8_C(-128), INT8_C( -51), INT8_C( -38), INT8_C( 47), INT8_C( -56), INT8_C( 123), INT8_C( -20), INT8_C( -50), INT8_C( -2), INT8_C( 40), INT8_C( 24), INT8_C( -98)), simde_mm512_set_epi8(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), 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( -88), INT8_C( 0), INT8_C( 0), INT8_C( -2), INT8_C( 0), INT8_C( 0), INT8_C(-108), INT8_C( -72), INT8_C( -53), INT8_C(-100), INT8_C( 0), INT8_C( -1), INT8_C( 0), INT8_C( 0), INT8_C( -88), INT8_C(-109), INT8_C( -56), INT8_C( 0), INT8_C( 59), INT8_C( 0), INT8_C( -2), INT8_C( 0), INT8_C( -92), INT8_C( 0), INT8_C( 0), INT8_C( -54), INT8_C( 124), INT8_C( -87), INT8_C( 65), INT8_C( 0), INT8_C( 0), INT8_C( 32)) }, { UINT64_C( 2822554960), simde_mm512_set_epi8(INT8_C( -38), INT8_C( -1), INT8_C( 48), INT8_C( 32), INT8_C( 88), INT8_C( -18), INT8_C( 123), INT8_C( 27), INT8_C( 111), INT8_C( 27), INT8_C( -3), INT8_C( 52), INT8_C( -31), INT8_C( 2), INT8_C( -47), INT8_C( 64), INT8_C( 76), INT8_C( -52), INT8_C( -96), INT8_C( -6), INT8_C(-119), INT8_C( -87), INT8_C( 102), INT8_C( 5), INT8_C( 24), INT8_C( -44), INT8_C( 110), INT8_C(-113), INT8_C(-116), INT8_C( -3), INT8_C( 62), INT8_C( -87), INT8_C( 7), INT8_C( -54), INT8_C( -57), INT8_C( -66), INT8_C( 42), INT8_C( -82), INT8_C( 46), INT8_C( -16), INT8_C( 91), INT8_C( -73), INT8_C( -20), INT8_C( -77), INT8_C( -11), INT8_C( 25), INT8_C( 12), INT8_C( 76), INT8_C( -58), INT8_C( 3), INT8_C(-125), INT8_C( -36), INT8_C( 18), INT8_C( -40), INT8_C( 111), INT8_C( 107), INT8_C( 88), INT8_C( 48), INT8_C( 113), INT8_C( -90), INT8_C(-117), INT8_C( 116), INT8_C( 46), INT8_C( -70)), simde_mm512_set_epi8(INT8_C( 116), INT8_C(-120), INT8_C( -67), INT8_C( -86), INT8_C( 48), INT8_C( 2), INT8_C( 37), INT8_C( -26), INT8_C( -55), INT8_C( 66), INT8_C( 80), INT8_C( -7), INT8_C( 21), INT8_C(-118), INT8_C( 7), INT8_C( -49), INT8_C( 27), INT8_C( 45), INT8_C( 71), INT8_C( -63), INT8_C( 96), INT8_C(-106), INT8_C( -43), INT8_C( 10), INT8_C( 104), INT8_C( -19), INT8_C(-110), INT8_C( 126), INT8_C( -52), INT8_C( -56), INT8_C( -96), INT8_C( -27), INT8_C(-125), INT8_C(-116), INT8_C( 25), INT8_C( 78), INT8_C( -76), INT8_C( -85), INT8_C( -23), INT8_C( -19), INT8_C(-106), INT8_C( 126), INT8_C( 19), INT8_C( -41), INT8_C( 40), INT8_C( 78), INT8_C( -69), INT8_C( 57), INT8_C( 73), INT8_C( -58), INT8_C( 3), INT8_C( 65), INT8_C( -87), INT8_C( -37), INT8_C( 5), INT8_C(-126), INT8_C( 14), INT8_C( -36), INT8_C( -37), INT8_C( 11), INT8_C( 94), INT8_C( 24), INT8_C( 8), INT8_C( -31)), simde_mm512_set_epi8(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), 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(-124), INT8_C( 0), INT8_C( -82), INT8_C( 0), INT8_C( 118), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -39), INT8_C( -36), INT8_C( -51), INT8_C( -53), INT8_C( 0), INT8_C( 0), INT8_C( 125), INT8_C( 61), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -3), INT8_C( 0), INT8_C( -23), INT8_C( 0), INT8_C( 84), INT8_C( 0), INT8_C(-101), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0)) }, { UINT64_C( 2777207418), simde_mm512_set_epi8(INT8_C( -82), INT8_C( -24), INT8_C( 18), INT8_C( 115), INT8_C( -15), INT8_C( 55), INT8_C( 78), INT8_C( 60), INT8_C( -8), INT8_C( -91), INT8_C( 126), INT8_C( 15), INT8_C( 23), INT8_C( 6), INT8_C( -21), INT8_C( 120), INT8_C( -20), INT8_C(-104), INT8_C( -27), INT8_C( 38), INT8_C( 31), INT8_C( -21), INT8_C( 79), INT8_C( -62), INT8_C( 36), INT8_C( 95), INT8_C( 42), INT8_C(-102), INT8_C( -80), INT8_C( -69), INT8_C( 107), INT8_C(-114), INT8_C( 76), INT8_C( 123), INT8_C(-126), INT8_C( 108), INT8_C( -55), INT8_C( 89), INT8_C( -46), INT8_C( 18), INT8_C( 117), INT8_C( 25), INT8_C(-120), INT8_C( 27), INT8_C( 34), INT8_C( 64), INT8_C( 71), INT8_C( 64), INT8_C( -13), INT8_C( -73), INT8_C( 112), INT8_C( 25), INT8_C( -18), INT8_C( -63), INT8_C( 109), INT8_C( 9), INT8_C( 14), INT8_C(-125), INT8_C( -89), INT8_C( 70), INT8_C( 10), INT8_C( 15), INT8_C( 120), INT8_C( -59)), simde_mm512_set_epi8(INT8_C( -52), INT8_C( -61), INT8_C( -14), INT8_C( -38), INT8_C( -93), INT8_C( -34), INT8_C( 64), INT8_C( -67), INT8_C(-123), INT8_C( 123), INT8_C( -93), INT8_C( 41), INT8_C( 97), INT8_C( -8), INT8_C( -86), INT8_C( -16), INT8_C( -70), INT8_C( 3), INT8_C( 118), INT8_C( 37), INT8_C( 104), INT8_C( 111), INT8_C( -17), INT8_C( 110), INT8_C( -58), INT8_C( 58), INT8_C( 102), INT8_C( 64), INT8_C( -67), INT8_C( -76), INT8_C( -30), INT8_C( 108), INT8_C( 79), INT8_C( 46), INT8_C( -40), INT8_C( 101), INT8_C( -13), INT8_C( -25), INT8_C( 60), INT8_C( 25), INT8_C( 32), INT8_C( -21), INT8_C( 114), INT8_C( -21), INT8_C( 71), INT8_C( -85), INT8_C( 34), INT8_C( 82), INT8_C(-114), INT8_C( -30), INT8_C( -58), INT8_C( 116), INT8_C( 58), INT8_C(-105), INT8_C( 117), INT8_C( 11), INT8_C( -91), INT8_C( 118), INT8_C( -50), INT8_C( -8), INT8_C( -22), INT8_C( 59), INT8_C( -29), INT8_C( -88)), simde_mm512_set_epi8(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), 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( -3), INT8_C( 0), INT8_C( -86), INT8_C( 0), INT8_C( 0), INT8_C( 114), INT8_C( 0), INT8_C( -7), INT8_C( 85), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -37), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 101), INT8_C( -43), INT8_C( 0), INT8_C( -91), INT8_C( 0), INT8_C( 0), INT8_C( -8), INT8_C( 0), INT8_C( 0), INT8_C( 13), INT8_C( -39), INT8_C( 78), INT8_C( 32), INT8_C( 0), INT8_C(-107), INT8_C( 0)) }, { UINT64_C( 3908316288), simde_mm512_set_epi8(INT8_C( 16), INT8_C( 5), INT8_C( 18), INT8_C(-104), INT8_C(-119), INT8_C( -46), INT8_C( -92), INT8_C( 37), INT8_C( -84), INT8_C( 2), INT8_C( -49), INT8_C( 99), INT8_C( -79), INT8_C( 48), INT8_C(-103), INT8_C( 3), INT8_C( 54), INT8_C( 118), INT8_C( -53), INT8_C( 24), INT8_C( 56), INT8_C( 78), INT8_C( 121), INT8_C( -10), INT8_C( 4), INT8_C( 97), INT8_C( 53), INT8_C( -46), INT8_C( 92), INT8_C(-100), INT8_C( 47), INT8_C( 107), INT8_C( -52), INT8_C( 68), INT8_C( 11), INT8_C( -16), INT8_C( -66), INT8_C( -79), INT8_C( -14), INT8_C( 27), INT8_C( 14), INT8_C( 125), INT8_C( 22), INT8_C( -82), INT8_C( 44), INT8_C( -12), INT8_C( 94), INT8_C( -30), INT8_C( 98), INT8_C( 125), INT8_C(-107), INT8_C( 37), INT8_C( -66), INT8_C( 90), INT8_C( 68), INT8_C( 10), INT8_C( -72), INT8_C( -10), INT8_C(-119), INT8_C( -9), INT8_C( 49), INT8_C(-107), INT8_C( 10), INT8_C( 47)), simde_mm512_set_epi8(INT8_C( 114), INT8_C( 29), INT8_C( -56), INT8_C( -61), INT8_C(-124), INT8_C(-107), INT8_C( -23), INT8_C( -89), INT8_C( 38), INT8_C( -97), INT8_C( 109), INT8_C( 53), INT8_C(-117), INT8_C( 76), INT8_C( -82), INT8_C( -65), INT8_C( -24), INT8_C( -47), INT8_C(-119), INT8_C( 5), INT8_C( 95), INT8_C( 82), INT8_C( -3), INT8_C( -62), INT8_C(-116), INT8_C( -98), INT8_C( -29), INT8_C( 77), INT8_C( -38), INT8_C(-118), INT8_C( -85), INT8_C( 121), INT8_C( -72), INT8_C(-111), INT8_C( 28), INT8_C( -18), INT8_C( 64), INT8_C(-126), INT8_C( 122), INT8_C( -54), INT8_C( 87), INT8_C( -22), INT8_C( 17), INT8_C( 50), INT8_C( -83), INT8_C( -39), INT8_C( 77), INT8_C( -13), INT8_C( 17), INT8_C( -66), INT8_C(-128), INT8_C( 77), INT8_C( 107), INT8_C( 47), INT8_C( -68), INT8_C( -44), INT8_C( -30), INT8_C( -22), INT8_C( 14), INT8_C( 26), INT8_C( 59), INT8_C( 103), INT8_C( -54), INT8_C( -39)), simde_mm512_set_epi8(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), 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( 20), INT8_C( -77), INT8_C( -17), INT8_C( 0), INT8_C( 126), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -73), INT8_C(-109), INT8_C( 5), INT8_C( 124), INT8_C( 0), INT8_C( 27), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 21), INT8_C( 0), INT8_C( 83), INT8_C( 43), INT8_C( 0), INT8_C( 0), INT8_C( -42), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0)) }, { UINT64_C( 2902744348), simde_mm512_set_epi8(INT8_C( 19), INT8_C( -37), INT8_C( -32), INT8_C( -59), INT8_C( 33), INT8_C( 110), INT8_C( 17), INT8_C( 67), INT8_C( 51), INT8_C( -19), INT8_C( 91), INT8_C( 26), INT8_C( 33), INT8_C( -43), INT8_C( -14), INT8_C( -56), INT8_C( 112), INT8_C( -72), INT8_C( 96), INT8_C( -62), INT8_C( -21), INT8_C( 96), INT8_C( -25), INT8_C( 104), INT8_C( -56), INT8_C( -56), INT8_C( 57), INT8_C( -25), INT8_C( -3), INT8_C( 99), INT8_C( -6), INT8_C( 31), INT8_C( -96), INT8_C( 49), INT8_C( 110), INT8_C( -10), INT8_C( -82), INT8_C( 32), INT8_C( -27), INT8_C( 112), INT8_C( 84), INT8_C( 37), INT8_C( -62), INT8_C( 38), INT8_C( -53), INT8_C( -97), INT8_C( 76), INT8_C( 13), INT8_C(-124), INT8_C(-120), INT8_C( -86), INT8_C( 98), INT8_C( 96), INT8_C( 4), INT8_C( 4), INT8_C( 94), INT8_C( -41), INT8_C( -81), INT8_C( -40), INT8_C( -28), INT8_C( -23), INT8_C( -59), INT8_C( -15), INT8_C( -40)), simde_mm512_set_epi8(INT8_C( 3), INT8_C( -6), INT8_C( -45), INT8_C( -75), INT8_C( -83), INT8_C(-118), INT8_C( 74), INT8_C( 35), INT8_C( 38), INT8_C( 4), INT8_C( 35), INT8_C( 15), INT8_C( -42), INT8_C( 71), INT8_C( -1), INT8_C( 27), INT8_C( -48), INT8_C( -77), INT8_C( 116), INT8_C( 52), INT8_C( 99), INT8_C( 26), INT8_C( 93), INT8_C(-101), INT8_C( -50), INT8_C( 0), INT8_C( 80), INT8_C(-123), INT8_C( 19), INT8_C( 112), INT8_C( 30), INT8_C( 95), INT8_C( 58), INT8_C( 21), INT8_C( 13), INT8_C( 32), INT8_C( 113), INT8_C( 126), INT8_C( 27), INT8_C( 113), INT8_C( 121), INT8_C( 97), INT8_C( 51), INT8_C( -16), INT8_C( -77), INT8_C( 84), INT8_C( 16), INT8_C(-112), INT8_C( -40), INT8_C( -69), INT8_C(-116), INT8_C( -97), INT8_C(-120), INT8_C( 102), INT8_C( -82), INT8_C( -42), INT8_C( 43), INT8_C( -70), INT8_C( 46), INT8_C( 17), INT8_C( 108), INT8_C( -47), INT8_C( 53), INT8_C( -84)), simde_mm512_set_epi8(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), 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( 102), INT8_C( 0), INT8_C( 97), INT8_C( 0), INT8_C( 61), INT8_C( -94), INT8_C( 0), INT8_C( -1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 75), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -51), INT8_C( 0), INT8_C( -61), INT8_C( -40), INT8_C( -98), INT8_C( 0), INT8_C(-120), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -45), INT8_C( 125), INT8_C( -12), INT8_C( 0), INT8_C( 0)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_sub_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_sub_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( 21075), INT16_C( 30017), INT16_C(-11898), INT16_C( 29710), INT16_C( 19457), INT16_C(-12796), INT16_C( 21427), INT16_C( 28826), INT16_C( 25482), INT16_C(-11843), INT16_C( 15582), INT16_C( 20114), INT16_C(-14761), INT16_C(-15590), INT16_C( -4142), INT16_C( 29932), INT16_C(-30672), INT16_C( 6190), INT16_C( 26590), INT16_C( 10803), INT16_C(-16554), INT16_C( 15816), INT16_C( 14967), INT16_C( 24063), INT16_C(-14713), INT16_C( -8094), INT16_C(-16817), INT16_C( 25507), INT16_C( 19912), INT16_C(-19929), INT16_C(-12604), INT16_C(-17156)), simde_mm512_set_epi16(INT16_C( 27175), INT16_C(-27122), INT16_C( -6914), INT16_C( 10212), INT16_C( 13894), INT16_C( -4620), INT16_C(-10724), INT16_C( -3078), INT16_C( 29698), INT16_C( 6009), INT16_C( 28893), INT16_C(-31734), INT16_C( -3957), INT16_C( 6787), INT16_C( 9325), INT16_C( 7645), INT16_C( -2133), INT16_C( -9633), INT16_C(-22525), INT16_C( 1124), INT16_C( 21781), INT16_C( 17119), INT16_C(-19461), INT16_C(-32134), INT16_C( -7507), INT16_C( 19092), INT16_C( 21408), INT16_C(-14444), INT16_C( 22843), INT16_C( 28625), INT16_C( -2322), INT16_C( 5251)), simde_mm512_set_epi16(INT16_C( -6100), INT16_C( -8397), INT16_C( -4984), INT16_C( 19498), INT16_C( 5563), INT16_C( -8176), INT16_C( 32151), INT16_C( 31904), INT16_C( -4216), INT16_C(-17852), INT16_C(-13311), INT16_C(-13688), INT16_C(-10804), INT16_C(-22377), INT16_C(-13467), INT16_C( 22287), INT16_C(-28539), INT16_C( 15823), INT16_C(-16421), INT16_C( 9679), INT16_C( 27201), INT16_C( -1303), INT16_C(-31108), INT16_C( -9339), INT16_C( -7206), INT16_C(-27186), INT16_C( 27311), INT16_C(-25585), INT16_C( -2931), INT16_C( 16982), INT16_C(-10282), INT16_C(-22407)) }, { simde_mm512_set_epi16(INT16_C(-27508), INT16_C( 5509), INT16_C(-13526), INT16_C( 16909), INT16_C( 2419), INT16_C( 22142), INT16_C( -6109), INT16_C( -1177), INT16_C( 9839), INT16_C( 6329), INT16_C( -239), INT16_C(-15885), INT16_C( 3666), INT16_C( 20122), INT16_C( -1699), INT16_C( 6503), INT16_C( 29169), INT16_C( -4681), INT16_C( -2713), INT16_C(-24709), INT16_C( 7221), INT16_C( -3718), INT16_C( 970), INT16_C(-15558), INT16_C(-11011), INT16_C(-10787), INT16_C(-29970), INT16_C( 3894), INT16_C(-25914), INT16_C(-18758), INT16_C( 11824), INT16_C( -8868)), simde_mm512_set_epi16(INT16_C( 1604), INT16_C( 19874), INT16_C(-12133), INT16_C( -1966), INT16_C( 13041), INT16_C( 1566), INT16_C(-11791), INT16_C( -3425), INT16_C( 7377), INT16_C(-23380), INT16_C( -9249), INT16_C(-31251), INT16_C( 14877), INT16_C( 24009), INT16_C(-32316), INT16_C( 8308), INT16_C(-11725), INT16_C(-10230), INT16_C( 1074), INT16_C( 12341), INT16_C( 19989), INT16_C( 16491), INT16_C( 4144), INT16_C(-11714), INT16_C( 19285), INT16_C(-29198), INT16_C(-25258), INT16_C(-29514), INT16_C( 9755), INT16_C(-29385), INT16_C(-23111), INT16_C( -3412)), simde_mm512_set_epi16(INT16_C(-29112), INT16_C(-14365), INT16_C( -1393), INT16_C( 18875), INT16_C(-10622), INT16_C( 20576), INT16_C( 5682), INT16_C( 2248), INT16_C( 2462), INT16_C( 29709), INT16_C( 9010), INT16_C( 15366), INT16_C(-11211), INT16_C( -3887), INT16_C( 30617), INT16_C( -1805), INT16_C(-24642), INT16_C( 5549), INT16_C( -3787), INT16_C( 28486), INT16_C(-12768), INT16_C(-20209), INT16_C( -3174), INT16_C( -3844), INT16_C(-30296), INT16_C( 18411), INT16_C( -4712), INT16_C(-32128), INT16_C( 29867), INT16_C( 10627), INT16_C(-30601), INT16_C( -5456)) }, { simde_mm512_set_epi16(INT16_C( 691), INT16_C( -4823), INT16_C( -3253), INT16_C(-31392), INT16_C(-21784), INT16_C( -6740), INT16_C( 9130), INT16_C(-18273), INT16_C( 11275), INT16_C(-27092), INT16_C( 90), INT16_C(-20133), INT16_C( 30523), INT16_C( 27008), INT16_C( 28387), INT16_C( 17266), INT16_C( -9777), INT16_C( 27096), INT16_C( -8328), INT16_C( -6812), INT16_C(-22954), INT16_C( -4409), INT16_C( 21734), INT16_C(-19695), INT16_C(-11981), INT16_C(-21195), INT16_C( 18272), INT16_C( 28327), INT16_C( 7123), INT16_C(-32216), INT16_C( 24489), INT16_C(-15668)), simde_mm512_set_epi16(INT16_C(-21377), INT16_C( 15856), INT16_C( 7686), INT16_C(-28568), INT16_C(-15192), INT16_C( -9747), INT16_C( 11300), INT16_C( 27000), INT16_C( -6635), INT16_C( 3626), INT16_C( 12716), INT16_C(-30571), INT16_C( 31697), INT16_C( 5622), INT16_C( 24444), INT16_C( -8226), INT16_C( -8263), INT16_C( 2890), INT16_C( 26732), INT16_C( -8763), INT16_C(-13950), INT16_C( 27415), INT16_C( 7653), INT16_C( 31511), INT16_C(-21082), INT16_C( 2398), INT16_C( 23365), INT16_C(-12903), INT16_C(-18221), INT16_C( 4204), INT16_C(-20453), INT16_C( 15021)), simde_mm512_set_epi16(INT16_C( 22068), INT16_C(-20679), INT16_C(-10939), INT16_C( -2824), INT16_C( -6592), INT16_C( 3007), INT16_C( -2170), INT16_C( 20263), INT16_C( 17910), INT16_C(-30718), INT16_C(-12626), INT16_C( 10438), INT16_C( -1174), INT16_C( 21386), INT16_C( 3943), INT16_C( 25492), INT16_C( -1514), INT16_C( 24206), INT16_C( 30476), INT16_C( 1951), INT16_C( -9004), INT16_C(-31824), INT16_C( 14081), INT16_C( 14330), INT16_C( 9101), INT16_C(-23593), INT16_C( -5093), INT16_C(-24306), INT16_C( 25344), INT16_C( 29116), INT16_C(-20594), INT16_C(-30689)) }, { simde_mm512_set_epi16(INT16_C( 4451), INT16_C( -3121), INT16_C( 11648), INT16_C( 14185), INT16_C( -8499), INT16_C(-24679), INT16_C(-31633), INT16_C( 19019), INT16_C( 26210), INT16_C(-29943), INT16_C(-18883), INT16_C( 25468), INT16_C( 20366), INT16_C( 4961), INT16_C(-25468), INT16_C( -4158), INT16_C( 6653), INT16_C( -1720), INT16_C(-29723), INT16_C(-14244), INT16_C( -4917), INT16_C( 730), INT16_C(-20677), INT16_C( 16986), INT16_C( 9316), INT16_C( 28795), INT16_C(-18273), INT16_C(-29423), INT16_C(-23674), INT16_C( 7963), INT16_C( 28019), INT16_C( 13728)), simde_mm512_set_epi16(INT16_C(-10770), INT16_C( 29411), INT16_C( 30463), INT16_C( -4902), INT16_C(-20392), INT16_C(-28251), INT16_C( 11448), INT16_C( 27155), INT16_C(-11669), INT16_C( 11820), INT16_C(-16512), INT16_C( 10540), INT16_C( 17477), INT16_C(-19759), INT16_C( 28024), INT16_C(-14431), INT16_C( 24400), INT16_C( -7583), INT16_C(-12129), INT16_C( 28592), INT16_C(-31057), INT16_C(-18091), INT16_C( 19926), INT16_C(-29261), INT16_C( 7501), INT16_C( 16620), INT16_C( 6953), INT16_C( 3437), INT16_C( 5790), INT16_C( 5348), INT16_C( 17145), INT16_C(-28791)), simde_mm512_set_epi16(INT16_C( 15221), INT16_C(-32532), INT16_C(-18815), INT16_C( 19087), INT16_C( 11893), INT16_C( 3572), INT16_C( 22455), INT16_C( -8136), INT16_C(-27657), INT16_C( 23773), INT16_C( -2371), INT16_C( 14928), INT16_C( 2889), INT16_C( 24720), INT16_C( 12044), INT16_C( 10273), INT16_C(-17747), INT16_C( 5863), INT16_C(-17594), INT16_C( 22700), INT16_C( 26140), INT16_C( 18821), INT16_C( 24933), INT16_C(-19289), INT16_C( 1815), INT16_C( 12175), INT16_C(-25226), INT16_C( 32676), INT16_C(-29464), INT16_C( 2615), INT16_C( 10874), INT16_C(-23017)) }, { simde_mm512_set_epi16(INT16_C(-31561), INT16_C( 18949), INT16_C( -2287), INT16_C(-20534), INT16_C( -1057), INT16_C( -3046), INT16_C( 22138), INT16_C(-11031), INT16_C( 43), INT16_C( -6266), INT16_C(-20090), INT16_C(-22393), INT16_C(-26046), INT16_C(-23703), INT16_C( 28092), INT16_C( 6346), INT16_C( 10308), INT16_C( 572), INT16_C( 5), INT16_C( 15306), INT16_C(-19429), INT16_C( -5811), INT16_C(-27420), INT16_C(-29128), INT16_C(-13676), INT16_C( -3673), INT16_C(-26157), INT16_C( 19197), INT16_C(-27593), INT16_C(-20030), INT16_C( 3690), INT16_C( -3850)), simde_mm512_set_epi16(INT16_C(-11908), INT16_C( 14774), INT16_C( 5244), INT16_C( 18107), INT16_C(-16396), INT16_C( 31910), INT16_C(-28865), INT16_C(-20038), INT16_C(-19234), INT16_C(-15108), INT16_C(-10436), INT16_C( 19911), INT16_C( 3330), INT16_C( 28633), INT16_C( 10550), INT16_C( -9358), INT16_C( 23697), INT16_C( 19726), INT16_C(-26407), INT16_C(-18878), INT16_C( 4326), INT16_C(-22642), INT16_C(-17402), INT16_C( 16035), INT16_C( 14223), INT16_C(-15160), INT16_C( -9470), INT16_C( -3752), INT16_C( 6710), INT16_C( 21116), INT16_C( -9579), INT16_C( 10253)), simde_mm512_set_epi16(INT16_C(-19653), INT16_C( 4175), INT16_C( -7531), INT16_C( 26895), INT16_C( 15339), INT16_C( 30580), INT16_C(-14533), INT16_C( 9007), INT16_C( 19277), INT16_C( 8842), INT16_C( -9654), INT16_C( 23232), INT16_C(-29376), INT16_C( 13200), INT16_C( 17542), INT16_C( 15704), INT16_C(-13389), INT16_C(-19154), INT16_C( 26412), INT16_C(-31352), INT16_C(-23755), INT16_C( 16831), INT16_C(-10018), INT16_C( 20373), INT16_C(-27899), INT16_C( 11487), INT16_C(-16687), INT16_C( 22949), INT16_C( 31233), INT16_C( 24390), INT16_C( 13269), INT16_C(-14103)) }, { simde_mm512_set_epi16(INT16_C( 1468), INT16_C( -4389), INT16_C( 1296), INT16_C(-27715), INT16_C(-15620), INT16_C( 3731), INT16_C( -7289), INT16_C(-27703), INT16_C( 474), INT16_C( 27447), INT16_C( -9036), INT16_C( 9176), INT16_C( 2726), INT16_C(-12144), INT16_C( -2101), INT16_C( 26907), INT16_C(-24700), INT16_C( 1244), INT16_C( -3927), INT16_C(-22632), INT16_C( -7525), INT16_C( 17743), INT16_C( 15263), INT16_C( -3823), INT16_C( 27307), INT16_C( 32391), INT16_C(-23270), INT16_C(-29301), INT16_C( 23369), INT16_C(-15291), INT16_C( -5840), INT16_C( 18168)), simde_mm512_set_epi16(INT16_C( 23449), INT16_C( 17725), INT16_C(-20919), INT16_C( 31466), INT16_C( 31308), INT16_C( -2183), INT16_C(-31351), INT16_C(-32386), INT16_C( 26890), INT16_C(-30591), INT16_C(-12785), INT16_C(-23638), INT16_C(-31955), INT16_C( -9847), INT16_C( 19108), INT16_C(-19915), INT16_C( 4587), INT16_C( 27034), INT16_C( -19), INT16_C( 28332), INT16_C(-23789), INT16_C(-24960), INT16_C( -5839), INT16_C( 25722), INT16_C(-24423), INT16_C( 15592), INT16_C( 6092), INT16_C( -9272), INT16_C(-12796), INT16_C(-17663), INT16_C( -6154), INT16_C( 23859)), simde_mm512_set_epi16(INT16_C(-21981), INT16_C(-22114), INT16_C( 22215), INT16_C( 6355), INT16_C( 18608), INT16_C( 5914), INT16_C( 24062), INT16_C( 4683), INT16_C(-26416), INT16_C( -7498), INT16_C( 3749), INT16_C(-32722), INT16_C(-30855), INT16_C( -2297), INT16_C(-21209), INT16_C(-18714), INT16_C(-29287), INT16_C(-25790), INT16_C( -3908), INT16_C( 14572), INT16_C( 16264), INT16_C(-22833), INT16_C( 21102), INT16_C(-29545), INT16_C(-13806), INT16_C( 16799), INT16_C(-29362), INT16_C(-20029), INT16_C(-29371), INT16_C( 2372), INT16_C( 314), INT16_C( -5691)) }, { simde_mm512_set_epi16(INT16_C(-22741), INT16_C( 13394), INT16_C( -9417), INT16_C( 28906), INT16_C(-18980), INT16_C( -8463), INT16_C( 9174), INT16_C(-25605), INT16_C( 547), INT16_C( 3767), INT16_C(-12577), INT16_C(-16546), INT16_C( -1301), INT16_C( -7147), INT16_C( 26281), INT16_C( 29309), INT16_C( 29052), INT16_C(-30842), INT16_C( 5995), INT16_C( 6270), INT16_C( 20539), INT16_C( 10179), INT16_C(-26848), INT16_C( 14327), INT16_C( 15491), INT16_C( 18652), INT16_C( 19903), INT16_C( 30123), INT16_C( 25261), INT16_C(-17460), INT16_C( 10742), INT16_C( -4552)), simde_mm512_set_epi16(INT16_C( 5754), INT16_C(-23038), INT16_C(-16589), INT16_C(-23858), INT16_C( -3821), INT16_C( -4798), INT16_C( 30602), INT16_C(-28532), INT16_C( 11508), INT16_C( 7979), INT16_C( -3877), INT16_C( -5920), INT16_C(-24150), INT16_C(-24496), INT16_C( 17421), INT16_C( -1981), INT16_C( 27523), INT16_C( 26800), INT16_C( 25010), INT16_C( 27339), INT16_C( -9050), INT16_C( 19128), INT16_C( 15279), INT16_C( -1817), INT16_C(-13923), INT16_C( 5129), INT16_C(-22618), INT16_C( 27704), INT16_C( -4783), INT16_C( 31238), INT16_C(-30342), INT16_C( -8854)), simde_mm512_set_epi16(INT16_C(-28495), INT16_C(-29104), INT16_C( 7172), INT16_C(-12772), INT16_C(-15159), INT16_C( -3665), INT16_C(-21428), INT16_C( 2927), INT16_C(-10961), INT16_C( -4212), INT16_C( -8700), INT16_C(-10626), INT16_C( 22849), INT16_C( 17349), INT16_C( 8860), INT16_C( 31290), INT16_C( 1529), INT16_C( 7894), INT16_C(-19015), INT16_C(-21069), INT16_C( 29589), INT16_C( -8949), INT16_C( 23409), INT16_C( 16144), INT16_C( 29414), INT16_C( 13523), INT16_C(-23015), INT16_C( 2419), INT16_C( 30044), INT16_C( 16838), INT16_C(-24452), INT16_C( 4302)) }, { simde_mm512_set_epi16(INT16_C( 27021), INT16_C( 31131), INT16_C( 63), INT16_C(-10530), INT16_C( -1071), INT16_C(-31284), INT16_C(-21788), INT16_C(-16108), INT16_C(-15167), INT16_C( 25422), INT16_C( 14520), INT16_C(-13896), INT16_C( 20399), INT16_C( 31915), INT16_C(-16518), INT16_C( -6202), INT16_C(-16332), INT16_C( -3071), INT16_C(-15644), INT16_C( -7016), INT16_C( 13977), INT16_C(-13846), INT16_C(-23290), INT16_C( -2079), INT16_C( 4753), INT16_C( 14919), INT16_C(-18528), INT16_C( 7420), INT16_C( 12098), INT16_C( 31014), INT16_C( 17813), INT16_C(-14456)), simde_mm512_set_epi16(INT16_C(-12529), INT16_C( -3643), INT16_C(-28826), INT16_C(-12110), INT16_C( 8030), INT16_C( 20316), INT16_C( 27324), INT16_C( 24735), INT16_C( -6774), INT16_C( -2704), INT16_C(-31930), INT16_C( 6874), INT16_C( -3952), INT16_C( 2658), INT16_C( -904), INT16_C( -8319), INT16_C(-16424), INT16_C( 22778), INT16_C( 18985), INT16_C( 10063), INT16_C(-31751), INT16_C( 16016), INT16_C(-30217), INT16_C( 18364), INT16_C(-20176), INT16_C( -4961), INT16_C(-29576), INT16_C(-16634), INT16_C( -8011), INT16_C(-27110), INT16_C(-24526), INT16_C(-11504)), simde_mm512_set_epi16(INT16_C(-25986), INT16_C(-30762), INT16_C( 28889), INT16_C( 1580), INT16_C( -9101), INT16_C( 13936), INT16_C( 16424), INT16_C( 24693), INT16_C( -8393), INT16_C( 28126), INT16_C(-19086), INT16_C(-20770), INT16_C( 24351), INT16_C( 29257), INT16_C(-15614), INT16_C( 2117), INT16_C( 92), INT16_C(-25849), INT16_C( 30907), INT16_C(-17079), INT16_C(-19808), INT16_C(-29862), INT16_C( 6927), INT16_C(-20443), INT16_C( 24929), INT16_C( 19880), INT16_C( 11048), INT16_C( 24054), INT16_C( 20109), INT16_C( -7412), INT16_C(-23197), INT16_C( -2952)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_sub_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_sub_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi32(INT32_C(-2076524081), INT32_C( 1825078206), INT32_C(-1787857556), INT32_C(-1179707533), INT32_C( 233802890), INT32_C( 1015107327), INT32_C(-1130135421), INT32_C( 769270921), INT32_C( 970769619), INT32_C( -152032958), INT32_C(-1037455861), INT32_C( 1543352525), INT32_C( 1997985923), INT32_C( 1878044503), INT32_C( 49641854), INT32_C( 78691943)), simde_mm512_set_epi32(INT32_C( 1273959589), INT32_C( 730948807), INT32_C( 152082522), INT32_C( 516109144), INT32_C( -608654122), INT32_C( 326583665), INT32_C(-2143544685), INT32_C( 2015525957), INT32_C(-1762782050), INT32_C( 1423018518), INT32_C(-1835751490), INT32_C(-1847524510), INT32_C( 1152317453), INT32_C( -732966175), INT32_C( 916913335), INT32_C(-1961618071)), simde_mm512_set_epi32(INT32_C( 944483626), INT32_C( 1094129399), INT32_C(-1939940078), INT32_C(-1695816677), INT32_C( 842457012), INT32_C( 688523662), INT32_C( 1013409264), INT32_C(-1246255036), INT32_C(-1561415627), INT32_C(-1575051476), INT32_C( 798295629), INT32_C( -904090261), INT32_C( 845668470), INT32_C(-1683956618), INT32_C( -867271481), INT32_C( 2040310014)) }, { simde_mm512_set_epi32(INT32_C( 1516029066), INT32_C( 1696213023), INT32_C( 690963136), INT32_C( -395017807), INT32_C(-1227102652), INT32_C( 1731549524), INT32_C( 1416885076), INT32_C( -891143280), INT32_C(-1187279454), INT32_C( 699906112), INT32_C( 947982370), INT32_C(-1809113234), INT32_C( 892884346), INT32_C( 173663466), INT32_C( -426903082), INT32_C(-1178201759)), simde_mm512_set_epi32(INT32_C( 565568434), INT32_C( 1477571639), INT32_C( -962268135), INT32_C( 93801511), INT32_C( 1166085377), INT32_C(-1613873583), INT32_C( 1514751666), INT32_C( -9777248), INT32_C( 880861168), INT32_C(-1847118927), INT32_C( -454330268), INT32_C( -465889797), INT32_C( 607148382), INT32_C( -892911578), INT32_C(-1830027716), INT32_C( 171620514)), simde_mm512_set_epi32(INT32_C( 950460632), INT32_C( 218641384), INT32_C( 1653231271), INT32_C( -488819318), INT32_C( 1901779267), INT32_C( -949544189), INT32_C( -97866590), INT32_C( -881366032), INT32_C(-2068140622), INT32_C(-1747942257), INT32_C( 1402312638), INT32_C(-1343223437), INT32_C( 285735964), INT32_C( 1066575044), INT32_C( 1403124634), INT32_C(-1349822273)) }, { simde_mm512_set_epi32(INT32_C( -894737208), INT32_C( -894707310), INT32_C(-1734937643), INT32_C(-1821919338), INT32_C(-1629473200), INT32_C( 1017176222), INT32_C( 555630880), INT32_C( 1893052174), INT32_C( -395602197), INT32_C( 851153269), INT32_C( 1448617638), INT32_C( 1939202047), INT32_C(-1165352739), INT32_C( 784136789), INT32_C(-1222569677), INT32_C(-1663359991)), simde_mm512_set_epi32(INT32_C(-2134962383), INT32_C( 711344265), INT32_C( -499544380), INT32_C( 658556967), INT32_C(-1607446648), INT32_C(-2074003952), INT32_C( 449264495), INT32_C( -469125832), INT32_C(-1465796532), INT32_C( -575249454), INT32_C( -236269065), INT32_C( 567769266), INT32_C( -145854210), INT32_C( 502784491), INT32_C( -258238741), INT32_C( 1554234017)), simde_mm512_set_epi32(INT32_C( 1240225175), INT32_C(-1606051575), INT32_C(-1235393263), INT32_C( 1814490991), INT32_C( -22026552), INT32_C(-1203787122), INT32_C( 106366385), INT32_C(-1932789290), INT32_C( 1070194335), INT32_C( 1426402723), INT32_C( 1684886703), INT32_C( 1371432781), INT32_C(-1019498529), INT32_C( 281352298), INT32_C( -964330936), INT32_C( 1077373288)) }, { simde_mm512_set_epi32(INT32_C( -658606825), INT32_C(-1465142546), INT32_C(-1613315081), INT32_C( 1981327993), INT32_C( -540883338), INT32_C( -52568431), INT32_C( 513288938), INT32_C(-1741957410), INT32_C( -457290370), INT32_C( 949496535), INT32_C( -574503672), INT32_C( -516003313), INT32_C( 1705152287), INT32_C( 268459282), INT32_C( -796672854), INT32_C(-2124069536)), simde_mm512_set_epi32(INT32_C(-1627464574), INT32_C( 688417349), INT32_C(-1204757032), INT32_C(-1541532775), INT32_C( -489028243), INT32_C( -14341503), INT32_C( 1546753292), INT32_C( -383774267), INT32_C( 1479759913), INT32_C(-1792003336), INT32_C( 324281321), INT32_C(-1031805126), INT32_C(-1668912025), INT32_C( -271675366), INT32_C(-1502890080), INT32_C( -582208760)), simde_mm512_set_epi32(INT32_C( 968857749), INT32_C( 2141407401), INT32_C( -408558049), INT32_C( -772106528), INT32_C( -51855095), INT32_C( -38226928), INT32_C(-1033464354), INT32_C(-1358183143), INT32_C(-1937050283), INT32_C(-1553467425), INT32_C( -898784993), INT32_C( 515801813), INT32_C( -920902984), INT32_C( 540134648), INT32_C( 706217226), INT32_C(-1541860776)) }, { simde_mm512_set_epi32(INT32_C( 1656401797), INT32_C( 50049750), INT32_C( -488722048), INT32_C( 1532620410), INT32_C( 761833085), INT32_C( -28253750), INT32_C( 1071891913), INT32_C( -578065038), INT32_C( 2114869114), INT32_C( 1114386003), INT32_C( -192755303), INT32_C( -163390023), INT32_C(-1012186074), INT32_C( -258665152), INT32_C( 548389384), INT32_C( -601025611)), simde_mm512_set_epi32(INT32_C( -962813354), INT32_C(-1563683363), INT32_C( 1476422960), INT32_C(-1996230234), INT32_C( 594356694), INT32_C( -37573818), INT32_C( 2109710080), INT32_C(-2049942476), INT32_C(-1449482441), INT32_C(-1892730921), INT32_C( 1298337068), INT32_C( 30251788), INT32_C( -250852108), INT32_C(-2130168940), INT32_C( 414197854), INT32_C( -971416192)), simde_mm512_set_epi32(INT32_C(-1675752145), INT32_C( 1613733113), INT32_C(-1965145008), INT32_C( -766116652), INT32_C( 167476391), INT32_C( 9320068), INT32_C(-1037818167), INT32_C( 1471877438), INT32_C( -730615741), INT32_C(-1287850372), INT32_C(-1491092371), INT32_C( -193641811), INT32_C( -761333966), INT32_C( 1871503788), INT32_C( 134191530), INT32_C( 370390581)) }, { simde_mm512_set_epi32(INT32_C( 841332080), INT32_C( 332746710), INT32_C( 1180202036), INT32_C(-1365461084), INT32_C( -972107726), INT32_C( -919074620), INT32_C( 336794208), INT32_C(-2145769013), INT32_C(-1090767268), INT32_C( 1447456701), INT32_C(-1878509449), INT32_C( 1479468832), INT32_C(-2038652659), INT32_C( -428110707), INT32_C( -605535334), INT32_C( 1876977582)), simde_mm512_set_epi32(INT32_C(-1104919125), INT32_C(-1965384352), INT32_C( 1846340148), INT32_C( 1439724559), INT32_C( 1174009148), INT32_C( -500908704), INT32_C( 2074430235), INT32_C( 746110301), INT32_C( -229497465), INT32_C( 567264435), INT32_C(-1820479715), INT32_C( -409682629), INT32_C(-1976550605), INT32_C(-1717329929), INT32_C( 392593328), INT32_C( 809330056)), simde_mm512_set_epi32(INT32_C( 1946251205), INT32_C(-1996836234), INT32_C( -666138112), INT32_C( 1489781653), INT32_C(-2146116874), INT32_C( -418165916), INT32_C(-1737636027), INT32_C( 1403087982), INT32_C( -861269803), INT32_C( 880192266), INT32_C( -58029734), INT32_C( 1889151461), INT32_C( -62102054), INT32_C( 1289219222), INT32_C( -998128662), INT32_C( 1067647526)) }, { simde_mm512_set_epi32(INT32_C(-1188475624), INT32_C(-1471681451), INT32_C( -219755555), INT32_C(-1657771963), INT32_C( -257604504), INT32_C( 874981434), INT32_C(-1610485047), INT32_C(-1272947332), INT32_C( 1561476022), INT32_C( 375243187), INT32_C( 1479356717), INT32_C( 1523794483), INT32_C(-1698967593), INT32_C( -80864233), INT32_C( 1644091986), INT32_C( -229623607)), simde_mm512_set_epi32(INT32_C( 9741774), INT32_C( 693305140), INT32_C(-1221395242), INT32_C(-1923328842), INT32_C( 85084148), INT32_C( 1125599333), INT32_C( 2042080920), INT32_C( -456911551), INT32_C( -399701639), INT32_C(-1860388051), INT32_C( -699039468), INT32_C( 84523143), INT32_C(-1293034841), INT32_C(-1626054083), INT32_C( 96950550), INT32_C( 1663457642)), simde_mm512_set_epi32(INT32_C(-1198217398), INT32_C( 2129980705), INT32_C( 1001639687), INT32_C( 265556879), INT32_C( -342688652), INT32_C( -250617899), INT32_C( 642401329), INT32_C( -816035781), INT32_C( 1961177661), INT32_C(-2059336058), INT32_C(-2116571111), INT32_C( 1439271340), INT32_C( -405932752), INT32_C( 1545189850), INT32_C( 1547141436), INT32_C(-1893081249)) }, { simde_mm512_set_epi32(INT32_C(-1473946007), INT32_C( 121708864), INT32_C( 1020809582), INT32_C( 1669312470), INT32_C( -682688365), INT32_C( 500732292), INT32_C( 1673154382), INT32_C(-1552445241), INT32_C( 2068495467), INT32_C(-2039438173), INT32_C( 869593130), INT32_C( -471794528), INT32_C(-1539319849), INT32_C( 1041904784), INT32_C( -120989465), INT32_C(-1180697219)), simde_mm512_set_epi32(INT32_C( 1388066655), INT32_C( 1341381019), INT32_C(-1738591736), INT32_C( -783428109), INT32_C(-1884288937), INT32_C( 1340467391), INT32_C(-1349575878), INT32_C(-1411283384), INT32_C( 1173507492), INT32_C( 1805408001), INT32_C( 1184512890), INT32_C(-1180223583), INT32_C( -121255394), INT32_C(-2007254522), INT32_C( 970045213), INT32_C(-2132245994)), simde_mm512_set_epi32(INT32_C( 1432954634), INT32_C(-1219672155), INT32_C(-1535565978), INT32_C(-1842226717), INT32_C( 1201600572), INT32_C( -839735099), INT32_C(-1272237036), INT32_C( -141161857), INT32_C( 894987975), INT32_C( 450121122), INT32_C( -314919760), INT32_C( 708429055), INT32_C(-1418064455), INT32_C(-1245807990), INT32_C(-1091034678), INT32_C( 951548775)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_sub_epi32(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i32(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_sub_epi64(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi64(INT64_C(-8918603015426376770), INT64_C(-7678789729811228813), INT64_C( 1004175767275392767), INT64_C(-4853894672476920695), INT64_C( 4169423769698314562), INT64_C(-4455838992495169331), INT64_C( 8581284199031418711), INT64_C( 213210139521498727)), simde_mm512_set_epi64(INT64_C( 5471614771911550151), INT64_C( 653189458799309656), INT64_C(-2614149548239010447), INT64_C(-9206454317574095803), INT64_C(-7571091253302818282), INT64_C(-7884492610685828254), INT64_C( 4949165778807018209), INT64_C( 3938112789424641385)), simde_mm512_set_epi64(INT64_C( 4056526286371624695), INT64_C(-8331979188610538469), INT64_C( 3618325315514403214), INT64_C( 4352559645097175108), INT64_C(-6706229050708418772), INT64_C( 3428653618190658923), INT64_C( 3632118420224400502), INT64_C(-3724902649903142658)) }, { simde_mm512_set_epi64(INT64_C( 6511295259951638559), INT64_C( 2967664075761549745), INT64_C(-5270365757443319468), INT64_C( 6085475067014298512), INT64_C(-5099326425442830272), INT64_C( 4071553278820425582), INT64_C( 3834909065354011882), INT64_C(-1833534772634840735)), simde_mm512_set_epi64(INT64_C( 2429097929157506103), INT64_C(-4132910169714111449), INT64_C( 5008298561239924305), INT64_C( 6505808871316705184), INT64_C( 3783269911324210097), INT64_C(-1951333638813837829), INT64_C( 2607682447911370790), INT64_C(-7859909190821955422)), simde_mm512_set_epi64(INT64_C( 4082197330794132456), INT64_C( 7100574245475661194), INT64_C( 8168079755026307843), INT64_C( -420333804302406672), INT64_C(-8882596336767040369), INT64_C( 6022886917634263411), INT64_C( 1227226617442641092), INT64_C( 6026374418187114687)) }, { simde_mm512_set_epi64(INT64_C(-3842867043474089582), INT64_C(-7451500434811275370), INT64_C(-6998534102691290978), INT64_C( 2386416460140752654), INT64_C(-1699098497489596043), INT64_C( 6221765381557968895), INT64_C(-5005151901524886955), INT64_C(-5250896777164676087)), simde_mm512_set_epi64(INT64_C(-9169593612463882103), INT64_C(-2145526774342039513), INT64_C(-6903930781003860464), INT64_C( 1929576317104796984), INT64_C(-6295548163810499630), INT64_C(-1014767906663728974), INT64_C( -626439061431131669), INT64_C(-1109126945600980319)), simde_mm512_set_epi64(INT64_C( 5326726568989792521), INT64_C(-5305973660469235857), INT64_C( -94603321687430514), INT64_C( 456840143035955670), INT64_C( 4596449666320903587), INT64_C( 7236533288221697869), INT64_C(-4378712840093755286), INT64_C(-4141769831563695768)) }, { simde_mm512_set_epi64(INT64_C(-2828694771467570450), INT64_C(-6929135509057262983), INT64_C(-2323076243418915183), INT64_C( 2204559204661581534), INT64_C(-1964047182976242985), INT64_C(-2467474478892946929), INT64_C( 7323573307633065234), INT64_C(-3421683851370085024)), simde_mm512_set_epi64(INT64_C(-6989907120040154555), INT64_C(-5174392049312590951), INT64_C(-2100360306224715135), INT64_C( 6643254808031531461), INT64_C( 6355520434769769208), INT64_C( 1392777671661840186), INT64_C(-7167922563252842470), INT64_C(-6454863739370065144)), simde_mm512_set_epi64(INT64_C( 4161212348572584105), INT64_C(-1754743459744672032), INT64_C( -222715937194200048), INT64_C(-4438695603369949927), INT64_C(-8319567617746012193), INT64_C(-3860252150554787115), INT64_C(-3955248202823643912), INT64_C( 3033179887999980120)) }, { simde_mm512_set_epi64(INT64_C( 7114191547200680662), INT64_C(-2099045211461521798), INT64_C( 3272048189352501706), INT64_C( 4603740714898779506), INT64_C( 9083293681064881747), INT64_C( -827877718383993415), INT64_C(-4347306081260333760), INT64_C( 2355314473447527349)), simde_mm512_set_epi64(INT64_C(-4135251864850786851), INT64_C( 6341188330562253222), INT64_C( 2552742567146072902), INT64_C( 9061135799886568500), INT64_C(-6225479677819013161), INT64_C( 5576315246274779916), INT64_C(-1077401597827861612), INT64_C( 1778966240326933888)), simde_mm512_set_epi64(INT64_C(-7197300661658084103), INT64_C(-8440233542023775020), INT64_C( 719305622206428804), INT64_C(-4457395084987788994), INT64_C(-3137970714825656708), INT64_C(-6404192964658773331), INT64_C(-3269904483432472148), INT64_C( 576348233120593461)) }, { simde_mm512_set_epi64(INT64_C( 3613493769008402390), INT64_C( 5068929150222120868), INT64_C(-4175170887983036220), INT64_C( 1446520110991419851), INT64_C(-4684809742159810627), INT64_C(-8068136647202511072), INT64_C(-8755946494441583475), INT64_C(-2600754454225459282)), simde_mm512_set_epi64(INT64_C(-4745591504270353056), INT64_C( 7929970554391524367), INT64_C( 5042330899658882400), INT64_C( 8909610017904704861), INT64_C( -985684106122640205), INT64_C(-7818900835071115973), INT64_C(-8489220204786376713), INT64_C( 1686175505197131144)), simde_mm512_set_epi64(INT64_C( 8359085273278755446), INT64_C(-2861041404169403499), INT64_C(-9217501787641918620), INT64_C(-7463089906913285010), INT64_C(-3699125636037170422), INT64_C( -249235812131395099), INT64_C( -266726289655206762), INT64_C(-4286929959422590426)) }, { simde_mm512_set_epi64(INT64_C(-5104463934349906859), INT64_C( -943842919202133947), INT64_C(-1106402919107319750), INT64_C(-6916980604540002948), INT64_C( 6706488448353419699), INT64_C( 6353788720156721715), INT64_C(-7297010244684735465), INT64_C( 7061321315551033545)), simde_mm512_set_epi64(INT64_C( 41840601428328244), INT64_C(-5245852617508367178), INT64_C( 365433634193623141), INT64_C( 8770670771023648065), INT64_C(-1716705465228018899), INT64_C(-3002351653588715385), INT64_C(-5553542352014646723), INT64_C( 416399443242670442)), simde_mm512_set_epi64(INT64_C(-5146304535778235103), INT64_C( 4302009698306233231), INT64_C(-1471836553300942891), INT64_C( 2759092698145900603), INT64_C( 8423193913581438598), INT64_C(-9090603699964114516), INT64_C(-1743467892670088742), INT64_C( 6644921872308363103)) }, { simde_mm512_set_epi64(INT64_C(-6330549896013078208), INT64_C( 4384343771802742742), INT64_C(-2932124200533978748), INT64_C( 7186143354591613127), INT64_C( 8884120384944776355), INT64_C( 3734874057999449248), INT64_C(-6611328408496753520), INT64_C( -519645792221266563)), simde_mm512_set_epi64(INT64_C( 5961700889234495899), INT64_C(-7467194643704326669), INT64_C(-8092959359289136961), INT64_C(-5796384256596801976), INT64_C( 5040176301556389633), INT64_C( 5087444127355189153), INT64_C( -520787949405881850), INT64_C( 4166312467639075350)), simde_mm512_set_epi64(INT64_C( 6154493288461977509), INT64_C(-6595205658202482205), INT64_C( 5160835158755158213), INT64_C(-5464216462521136513), INT64_C( 3843944083388386722), INT64_C(-1352570069355739905), INT64_C(-6090540459090871670), INT64_C(-4685958259860341913)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_sub_epi64(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_sub_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { simde_mm512_set_ps(SIMDE_FLOAT32_C( -659.63), SIMDE_FLOAT32_C( -759.67), SIMDE_FLOAT32_C( -847.92), SIMDE_FLOAT32_C( -61.45), SIMDE_FLOAT32_C( -337.36), SIMDE_FLOAT32_C( 139.68), SIMDE_FLOAT32_C( 658.69), SIMDE_FLOAT32_C( 86.55), SIMDE_FLOAT32_C( -150.13), SIMDE_FLOAT32_C( 450.66), SIMDE_FLOAT32_C( -527.30), SIMDE_FLOAT32_C( -641.78), SIMDE_FLOAT32_C( 929.20), SIMDE_FLOAT32_C( -281.32), SIMDE_FLOAT32_C( -125.47), SIMDE_FLOAT32_C( -963.36)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -406.77), SIMDE_FLOAT32_C( -929.18), SIMDE_FLOAT32_C( 716.57), SIMDE_FLOAT32_C( 1.83), SIMDE_FLOAT32_C( 179.14), SIMDE_FLOAT32_C( 145.16), SIMDE_FLOAT32_C( -463.41), SIMDE_FLOAT32_C( -573.03), SIMDE_FLOAT32_C( 33.04), SIMDE_FLOAT32_C( 167.46), SIMDE_FLOAT32_C( -891.13), SIMDE_FLOAT32_C( 473.74), SIMDE_FLOAT32_C( -547.95), SIMDE_FLOAT32_C( 516.90), SIMDE_FLOAT32_C( -69.62), SIMDE_FLOAT32_C( -976.88)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -252.86), SIMDE_FLOAT32_C( 169.51), SIMDE_FLOAT32_C( -1564.49), SIMDE_FLOAT32_C( -63.28), SIMDE_FLOAT32_C( -516.50), SIMDE_FLOAT32_C( -5.48), SIMDE_FLOAT32_C( 1122.10), SIMDE_FLOAT32_C( 659.58), SIMDE_FLOAT32_C( -183.17), SIMDE_FLOAT32_C( 283.20), SIMDE_FLOAT32_C( 363.83), SIMDE_FLOAT32_C( -1115.52), SIMDE_FLOAT32_C( 1477.15), SIMDE_FLOAT32_C( -798.22), SIMDE_FLOAT32_C( -55.85), SIMDE_FLOAT32_C( 13.52)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -311.95), SIMDE_FLOAT32_C( -956.32), SIMDE_FLOAT32_C( 248.48), SIMDE_FLOAT32_C( 995.45), SIMDE_FLOAT32_C( 139.87), SIMDE_FLOAT32_C( 783.05), SIMDE_FLOAT32_C( 584.21), SIMDE_FLOAT32_C( -920.08), SIMDE_FLOAT32_C( -210.14), SIMDE_FLOAT32_C( 816.06), SIMDE_FLOAT32_C( -193.68), SIMDE_FLOAT32_C( 585.03), SIMDE_FLOAT32_C( -674.08), SIMDE_FLOAT32_C( 157.57), SIMDE_FLOAT32_C( -919.13), SIMDE_FLOAT32_C( 451.36)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -736.64), SIMDE_FLOAT32_C( 551.91), SIMDE_FLOAT32_C( -457.00), SIMDE_FLOAT32_C( -294.64), SIMDE_FLOAT32_C( -589.82), SIMDE_FLOAT32_C( 788.44), SIMDE_FLOAT32_C( -717.27), SIMDE_FLOAT32_C( 147.83), SIMDE_FLOAT32_C( -294.04), SIMDE_FLOAT32_C( -678.25), SIMDE_FLOAT32_C( 428.59), SIMDE_FLOAT32_C( -340.21), SIMDE_FLOAT32_C( 447.13), SIMDE_FLOAT32_C( -558.56), SIMDE_FLOAT32_C( -584.22), SIMDE_FLOAT32_C( 801.21)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 424.69), SIMDE_FLOAT32_C( -1508.23), SIMDE_FLOAT32_C( 705.48), SIMDE_FLOAT32_C( 1290.09), SIMDE_FLOAT32_C( 729.69), SIMDE_FLOAT32_C( -5.39), SIMDE_FLOAT32_C( 1301.48), SIMDE_FLOAT32_C( -1067.91), SIMDE_FLOAT32_C( 83.90), SIMDE_FLOAT32_C( 1494.31), SIMDE_FLOAT32_C( -622.27), SIMDE_FLOAT32_C( 925.24), SIMDE_FLOAT32_C( -1121.21), SIMDE_FLOAT32_C( 716.13), SIMDE_FLOAT32_C( -334.91), SIMDE_FLOAT32_C( -349.85)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -668.75), SIMDE_FLOAT32_C( -693.34), SIMDE_FLOAT32_C( 34.22), SIMDE_FLOAT32_C( 781.55), SIMDE_FLOAT32_C( 732.13), SIMDE_FLOAT32_C( -735.61), SIMDE_FLOAT32_C( -765.87), SIMDE_FLOAT32_C( -276.25), SIMDE_FLOAT32_C( 583.37), SIMDE_FLOAT32_C( 151.60), SIMDE_FLOAT32_C( -526.34), SIMDE_FLOAT32_C( -118.48), SIMDE_FLOAT32_C( -603.65), SIMDE_FLOAT32_C( -96.99), SIMDE_FLOAT32_C( -634.86), SIMDE_FLOAT32_C( 225.44)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 5.83), SIMDE_FLOAT32_C( 767.38), SIMDE_FLOAT32_C( 251.47), SIMDE_FLOAT32_C( -790.79), SIMDE_FLOAT32_C( 317.44), SIMDE_FLOAT32_C( 889.98), SIMDE_FLOAT32_C( 932.08), SIMDE_FLOAT32_C( 879.75), SIMDE_FLOAT32_C( 583.36), SIMDE_FLOAT32_C( 192.11), SIMDE_FLOAT32_C( 241.22), SIMDE_FLOAT32_C( -741.26), SIMDE_FLOAT32_C( 815.78), SIMDE_FLOAT32_C( -325.43), SIMDE_FLOAT32_C( 457.34), SIMDE_FLOAT32_C( 430.70)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -674.58), SIMDE_FLOAT32_C( -1460.72), SIMDE_FLOAT32_C( -217.25), SIMDE_FLOAT32_C( 1572.34), SIMDE_FLOAT32_C( 414.69), SIMDE_FLOAT32_C( -1625.59), SIMDE_FLOAT32_C( -1697.95), SIMDE_FLOAT32_C( -1156.00), SIMDE_FLOAT32_C( 0.01), SIMDE_FLOAT32_C( -40.51), SIMDE_FLOAT32_C( -767.56), SIMDE_FLOAT32_C( 622.78), SIMDE_FLOAT32_C( -1419.43), SIMDE_FLOAT32_C( 228.44), SIMDE_FLOAT32_C( -1092.20), SIMDE_FLOAT32_C( -205.26)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -679.43), SIMDE_FLOAT32_C( 282.17), SIMDE_FLOAT32_C( 993.32), SIMDE_FLOAT32_C( 821.29), SIMDE_FLOAT32_C( 165.53), SIMDE_FLOAT32_C( 519.53), SIMDE_FLOAT32_C( 873.49), SIMDE_FLOAT32_C( 728.89), SIMDE_FLOAT32_C( 317.74), SIMDE_FLOAT32_C( -77.37), SIMDE_FLOAT32_C( 975.52), SIMDE_FLOAT32_C( 188.84), SIMDE_FLOAT32_C( -557.86), SIMDE_FLOAT32_C( 759.72), SIMDE_FLOAT32_C( -874.99), SIMDE_FLOAT32_C( 10.90)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 242.15), SIMDE_FLOAT32_C( 438.99), SIMDE_FLOAT32_C( 772.28), SIMDE_FLOAT32_C( -279.74), SIMDE_FLOAT32_C( -310.93), SIMDE_FLOAT32_C( -848.99), SIMDE_FLOAT32_C( 222.85), SIMDE_FLOAT32_C( 300.16), SIMDE_FLOAT32_C( 693.31), SIMDE_FLOAT32_C( 248.74), SIMDE_FLOAT32_C( 748.13), SIMDE_FLOAT32_C( -760.98), SIMDE_FLOAT32_C( 787.06), SIMDE_FLOAT32_C( 732.48), SIMDE_FLOAT32_C( -205.98), SIMDE_FLOAT32_C( 629.02)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -921.58), SIMDE_FLOAT32_C( -156.82), SIMDE_FLOAT32_C( 221.04), SIMDE_FLOAT32_C( 1101.03), SIMDE_FLOAT32_C( 476.46), SIMDE_FLOAT32_C( 1368.52), SIMDE_FLOAT32_C( 650.64), SIMDE_FLOAT32_C( 428.73), SIMDE_FLOAT32_C( -375.57), SIMDE_FLOAT32_C( -326.11), SIMDE_FLOAT32_C( 227.39), SIMDE_FLOAT32_C( 949.82), SIMDE_FLOAT32_C( -1344.92), SIMDE_FLOAT32_C( 27.24), SIMDE_FLOAT32_C( -669.01), SIMDE_FLOAT32_C( -618.12)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 271.85), SIMDE_FLOAT32_C( 70.43), SIMDE_FLOAT32_C( 982.50), SIMDE_FLOAT32_C( 45.42), SIMDE_FLOAT32_C( 118.63), SIMDE_FLOAT32_C( -985.91), SIMDE_FLOAT32_C( 8.06), SIMDE_FLOAT32_C( 547.65), SIMDE_FLOAT32_C( -976.69), SIMDE_FLOAT32_C( -286.32), SIMDE_FLOAT32_C( 986.84), SIMDE_FLOAT32_C( 730.82), SIMDE_FLOAT32_C( -481.07), SIMDE_FLOAT32_C( 923.92), SIMDE_FLOAT32_C( 879.55), SIMDE_FLOAT32_C( 720.13)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 551.66), SIMDE_FLOAT32_C( -312.49), SIMDE_FLOAT32_C( -723.23), SIMDE_FLOAT32_C( -17.59), SIMDE_FLOAT32_C( 325.03), SIMDE_FLOAT32_C( -395.41), SIMDE_FLOAT32_C( 883.19), SIMDE_FLOAT32_C( -807.12), SIMDE_FLOAT32_C( -228.68), SIMDE_FLOAT32_C( 772.42), SIMDE_FLOAT32_C( -645.24), SIMDE_FLOAT32_C( -500.86), SIMDE_FLOAT32_C( -15.19), SIMDE_FLOAT32_C( 910.24), SIMDE_FLOAT32_C( 528.66), SIMDE_FLOAT32_C( -744.64)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -279.81), SIMDE_FLOAT32_C( 382.92), SIMDE_FLOAT32_C( 1705.73), SIMDE_FLOAT32_C( 63.01), SIMDE_FLOAT32_C( -206.40), SIMDE_FLOAT32_C( -590.50), SIMDE_FLOAT32_C( -875.13), SIMDE_FLOAT32_C( 1354.77), SIMDE_FLOAT32_C( -748.01), SIMDE_FLOAT32_C( -1058.74), SIMDE_FLOAT32_C( 1632.08), SIMDE_FLOAT32_C( 1231.68), SIMDE_FLOAT32_C( -465.88), SIMDE_FLOAT32_C( 13.68), SIMDE_FLOAT32_C( 350.89), SIMDE_FLOAT32_C( 1464.77)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 84.80), SIMDE_FLOAT32_C( -329.58), SIMDE_FLOAT32_C( 766.75), SIMDE_FLOAT32_C( -652.57), SIMDE_FLOAT32_C( -735.85), SIMDE_FLOAT32_C( 809.23), SIMDE_FLOAT32_C( 200.31), SIMDE_FLOAT32_C( -623.13), SIMDE_FLOAT32_C( -845.05), SIMDE_FLOAT32_C( 364.16), SIMDE_FLOAT32_C( 572.02), SIMDE_FLOAT32_C( 0.80), SIMDE_FLOAT32_C( -325.98), SIMDE_FLOAT32_C( -311.07), SIMDE_FLOAT32_C( 800.65), SIMDE_FLOAT32_C( -125.96)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 485.48), SIMDE_FLOAT32_C( -140.23), SIMDE_FLOAT32_C( -453.31), SIMDE_FLOAT32_C( -34.02), SIMDE_FLOAT32_C( 893.13), SIMDE_FLOAT32_C( 152.27), SIMDE_FLOAT32_C( 79.60), SIMDE_FLOAT32_C( -817.18), SIMDE_FLOAT32_C( -608.22), SIMDE_FLOAT32_C( -450.43), SIMDE_FLOAT32_C( 547.33), SIMDE_FLOAT32_C( -843.17), SIMDE_FLOAT32_C( 492.07), SIMDE_FLOAT32_C( 125.25), SIMDE_FLOAT32_C( 50.68), SIMDE_FLOAT32_C( 718.03)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -400.68), SIMDE_FLOAT32_C( -189.35), SIMDE_FLOAT32_C( 1220.06), SIMDE_FLOAT32_C( -618.55), SIMDE_FLOAT32_C( -1628.98), SIMDE_FLOAT32_C( 656.96), SIMDE_FLOAT32_C( 120.71), SIMDE_FLOAT32_C( 194.05), SIMDE_FLOAT32_C( -236.83), SIMDE_FLOAT32_C( 814.59), SIMDE_FLOAT32_C( 24.69), SIMDE_FLOAT32_C( 843.97), SIMDE_FLOAT32_C( -818.05), SIMDE_FLOAT32_C( -436.32), SIMDE_FLOAT32_C( 749.97), SIMDE_FLOAT32_C( -843.99)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -677.15), SIMDE_FLOAT32_C( 104.38), SIMDE_FLOAT32_C( -475.85), SIMDE_FLOAT32_C( 787.23), SIMDE_FLOAT32_C( 133.69), SIMDE_FLOAT32_C( -960.64), SIMDE_FLOAT32_C( 242.81), SIMDE_FLOAT32_C( -225.39), SIMDE_FLOAT32_C( 314.69), SIMDE_FLOAT32_C( 228.04), SIMDE_FLOAT32_C( -592.56), SIMDE_FLOAT32_C( 407.24), SIMDE_FLOAT32_C( -825.26), SIMDE_FLOAT32_C( -290.43), SIMDE_FLOAT32_C( 962.34), SIMDE_FLOAT32_C( 893.07)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -995.46), SIMDE_FLOAT32_C( 431.24), SIMDE_FLOAT32_C( -960.38), SIMDE_FLOAT32_C( -49.08), SIMDE_FLOAT32_C( 813.87), SIMDE_FLOAT32_C( 674.48), SIMDE_FLOAT32_C( 397.88), SIMDE_FLOAT32_C( -954.85), SIMDE_FLOAT32_C( 446.57), SIMDE_FLOAT32_C( 897.67), SIMDE_FLOAT32_C( 880.04), SIMDE_FLOAT32_C( 250.06), SIMDE_FLOAT32_C( -272.88), SIMDE_FLOAT32_C( -311.12), SIMDE_FLOAT32_C( 208.86), SIMDE_FLOAT32_C( -234.41)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 318.31), SIMDE_FLOAT32_C( -326.86), SIMDE_FLOAT32_C( 484.53), SIMDE_FLOAT32_C( 836.31), SIMDE_FLOAT32_C( -680.18), SIMDE_FLOAT32_C( -1635.12), SIMDE_FLOAT32_C( -155.07), SIMDE_FLOAT32_C( 729.46), SIMDE_FLOAT32_C( -131.88), SIMDE_FLOAT32_C( -669.63), SIMDE_FLOAT32_C( -1472.60), SIMDE_FLOAT32_C( 157.18), SIMDE_FLOAT32_C( -552.38), SIMDE_FLOAT32_C( 20.69), SIMDE_FLOAT32_C( 753.48), SIMDE_FLOAT32_C( 1127.48)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -375.37), SIMDE_FLOAT32_C( 635.19), SIMDE_FLOAT32_C( -375.80), SIMDE_FLOAT32_C( 342.82), SIMDE_FLOAT32_C( -159.29), SIMDE_FLOAT32_C( 450.42), SIMDE_FLOAT32_C( 65.30), SIMDE_FLOAT32_C( 7.10), SIMDE_FLOAT32_C( -943.32), SIMDE_FLOAT32_C( -222.67), SIMDE_FLOAT32_C( -766.83), SIMDE_FLOAT32_C( 277.09), SIMDE_FLOAT32_C( 50.31), SIMDE_FLOAT32_C( 780.30), SIMDE_FLOAT32_C( -514.83), SIMDE_FLOAT32_C( 450.20)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -353.63), SIMDE_FLOAT32_C( 190.41), SIMDE_FLOAT32_C( 122.56), SIMDE_FLOAT32_C( 371.55), SIMDE_FLOAT32_C( -453.54), SIMDE_FLOAT32_C( -448.42), SIMDE_FLOAT32_C( 943.54), SIMDE_FLOAT32_C( -548.29), SIMDE_FLOAT32_C( 313.64), SIMDE_FLOAT32_C( -524.65), SIMDE_FLOAT32_C( 682.10), SIMDE_FLOAT32_C( -220.88), SIMDE_FLOAT32_C( -36.78), SIMDE_FLOAT32_C( -595.06), SIMDE_FLOAT32_C( 283.20), SIMDE_FLOAT32_C( 943.66)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -21.74), SIMDE_FLOAT32_C( 444.78), SIMDE_FLOAT32_C( -498.36), SIMDE_FLOAT32_C( -28.73), SIMDE_FLOAT32_C( 294.25), SIMDE_FLOAT32_C( 898.84), SIMDE_FLOAT32_C( -878.24), SIMDE_FLOAT32_C( 555.39), SIMDE_FLOAT32_C( -1256.96), SIMDE_FLOAT32_C( 301.98), SIMDE_FLOAT32_C( -1448.93), SIMDE_FLOAT32_C( 497.97), SIMDE_FLOAT32_C( 87.09), SIMDE_FLOAT32_C( 1375.36), SIMDE_FLOAT32_C( -798.03), SIMDE_FLOAT32_C( -493.46)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_sub_ps(test_vec[i].a, test_vec[i].b); simde_assert_m512_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_sub_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { simde_mm512_set_pd(SIMDE_FLOAT64_C( -150.13), SIMDE_FLOAT64_C( 450.66), SIMDE_FLOAT64_C( -527.30), SIMDE_FLOAT64_C( -641.78), SIMDE_FLOAT64_C( 929.20), SIMDE_FLOAT64_C( -281.32), SIMDE_FLOAT64_C( -125.47), SIMDE_FLOAT64_C( -963.36)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 33.04), SIMDE_FLOAT64_C( 167.46), SIMDE_FLOAT64_C( -891.13), SIMDE_FLOAT64_C( 473.74), SIMDE_FLOAT64_C( -547.95), SIMDE_FLOAT64_C( 516.90), SIMDE_FLOAT64_C( -69.62), SIMDE_FLOAT64_C( -976.88)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -183.17), SIMDE_FLOAT64_C( 283.20), SIMDE_FLOAT64_C( 363.83), SIMDE_FLOAT64_C(-1115.52), SIMDE_FLOAT64_C( 1477.15), SIMDE_FLOAT64_C( -798.22), SIMDE_FLOAT64_C( -55.85), SIMDE_FLOAT64_C( 13.52)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -659.63), SIMDE_FLOAT64_C( -759.67), SIMDE_FLOAT64_C( -847.92), SIMDE_FLOAT64_C( -61.45), SIMDE_FLOAT64_C( -337.36), SIMDE_FLOAT64_C( 139.68), SIMDE_FLOAT64_C( 658.69), SIMDE_FLOAT64_C( 86.55)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -406.77), SIMDE_FLOAT64_C( -929.18), SIMDE_FLOAT64_C( 716.57), SIMDE_FLOAT64_C( 1.83), SIMDE_FLOAT64_C( 179.14), SIMDE_FLOAT64_C( 145.16), SIMDE_FLOAT64_C( -463.41), SIMDE_FLOAT64_C( -573.03)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -252.86), SIMDE_FLOAT64_C( 169.51), SIMDE_FLOAT64_C(-1564.49), SIMDE_FLOAT64_C( -63.28), SIMDE_FLOAT64_C( -516.50), SIMDE_FLOAT64_C( -5.48), SIMDE_FLOAT64_C( 1122.10), SIMDE_FLOAT64_C( 659.58)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -210.14), SIMDE_FLOAT64_C( 816.06), SIMDE_FLOAT64_C( -193.68), SIMDE_FLOAT64_C( 585.03), SIMDE_FLOAT64_C( -674.08), SIMDE_FLOAT64_C( 157.57), SIMDE_FLOAT64_C( -919.13), SIMDE_FLOAT64_C( 451.36)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -294.04), SIMDE_FLOAT64_C( -678.25), SIMDE_FLOAT64_C( 428.59), SIMDE_FLOAT64_C( -340.21), SIMDE_FLOAT64_C( 447.13), SIMDE_FLOAT64_C( -558.56), SIMDE_FLOAT64_C( -584.22), SIMDE_FLOAT64_C( 801.21)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 83.90), SIMDE_FLOAT64_C( 1494.31), SIMDE_FLOAT64_C( -622.27), SIMDE_FLOAT64_C( 925.24), SIMDE_FLOAT64_C(-1121.21), SIMDE_FLOAT64_C( 716.13), SIMDE_FLOAT64_C( -334.91), SIMDE_FLOAT64_C( -349.85)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -311.95), SIMDE_FLOAT64_C( -956.32), SIMDE_FLOAT64_C( 248.48), SIMDE_FLOAT64_C( 995.45), SIMDE_FLOAT64_C( 139.87), SIMDE_FLOAT64_C( 783.05), SIMDE_FLOAT64_C( 584.21), SIMDE_FLOAT64_C( -920.08)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -736.64), SIMDE_FLOAT64_C( 551.91), SIMDE_FLOAT64_C( -457.00), SIMDE_FLOAT64_C( -294.64), SIMDE_FLOAT64_C( -589.82), SIMDE_FLOAT64_C( 788.44), SIMDE_FLOAT64_C( -717.27), SIMDE_FLOAT64_C( 147.83)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 424.69), SIMDE_FLOAT64_C(-1508.23), SIMDE_FLOAT64_C( 705.48), SIMDE_FLOAT64_C( 1290.09), SIMDE_FLOAT64_C( 729.69), SIMDE_FLOAT64_C( -5.39), SIMDE_FLOAT64_C( 1301.48), SIMDE_FLOAT64_C(-1067.91)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 583.37), SIMDE_FLOAT64_C( 151.60), SIMDE_FLOAT64_C( -526.34), SIMDE_FLOAT64_C( -118.48), SIMDE_FLOAT64_C( -603.65), SIMDE_FLOAT64_C( -96.99), SIMDE_FLOAT64_C( -634.86), SIMDE_FLOAT64_C( 225.44)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 583.36), SIMDE_FLOAT64_C( 192.11), SIMDE_FLOAT64_C( 241.22), SIMDE_FLOAT64_C( -741.26), SIMDE_FLOAT64_C( 815.78), SIMDE_FLOAT64_C( -325.43), SIMDE_FLOAT64_C( 457.34), SIMDE_FLOAT64_C( 430.70)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.01), SIMDE_FLOAT64_C( -40.51), SIMDE_FLOAT64_C( -767.56), SIMDE_FLOAT64_C( 622.78), SIMDE_FLOAT64_C(-1419.43), SIMDE_FLOAT64_C( 228.44), SIMDE_FLOAT64_C(-1092.20), SIMDE_FLOAT64_C( -205.26)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -668.75), SIMDE_FLOAT64_C( -693.34), SIMDE_FLOAT64_C( 34.22), SIMDE_FLOAT64_C( 781.55), SIMDE_FLOAT64_C( 732.13), SIMDE_FLOAT64_C( -735.61), SIMDE_FLOAT64_C( -765.87), SIMDE_FLOAT64_C( -276.25)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 5.83), SIMDE_FLOAT64_C( 767.38), SIMDE_FLOAT64_C( 251.47), SIMDE_FLOAT64_C( -790.79), SIMDE_FLOAT64_C( 317.44), SIMDE_FLOAT64_C( 889.98), SIMDE_FLOAT64_C( 932.08), SIMDE_FLOAT64_C( 879.75)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -674.58), SIMDE_FLOAT64_C(-1460.72), SIMDE_FLOAT64_C( -217.25), SIMDE_FLOAT64_C( 1572.34), SIMDE_FLOAT64_C( 414.69), SIMDE_FLOAT64_C(-1625.59), SIMDE_FLOAT64_C(-1697.95), SIMDE_FLOAT64_C(-1156.00)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 317.74), SIMDE_FLOAT64_C( -77.37), SIMDE_FLOAT64_C( 975.52), SIMDE_FLOAT64_C( 188.84), SIMDE_FLOAT64_C( -557.86), SIMDE_FLOAT64_C( 759.72), SIMDE_FLOAT64_C( -874.99), SIMDE_FLOAT64_C( 10.90)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 693.31), SIMDE_FLOAT64_C( 248.74), SIMDE_FLOAT64_C( 748.13), SIMDE_FLOAT64_C( -760.98), SIMDE_FLOAT64_C( 787.06), SIMDE_FLOAT64_C( 732.48), SIMDE_FLOAT64_C( -205.98), SIMDE_FLOAT64_C( 629.02)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -375.57), SIMDE_FLOAT64_C( -326.11), SIMDE_FLOAT64_C( 227.39), SIMDE_FLOAT64_C( 949.82), SIMDE_FLOAT64_C(-1344.92), SIMDE_FLOAT64_C( 27.24), SIMDE_FLOAT64_C( -669.01), SIMDE_FLOAT64_C( -618.12)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -679.43), SIMDE_FLOAT64_C( 282.17), SIMDE_FLOAT64_C( 993.32), SIMDE_FLOAT64_C( 821.29), SIMDE_FLOAT64_C( 165.53), SIMDE_FLOAT64_C( 519.53), SIMDE_FLOAT64_C( 873.49), SIMDE_FLOAT64_C( 728.89)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 242.15), SIMDE_FLOAT64_C( 438.99), SIMDE_FLOAT64_C( 772.28), SIMDE_FLOAT64_C( -279.74), SIMDE_FLOAT64_C( -310.93), SIMDE_FLOAT64_C( -848.99), SIMDE_FLOAT64_C( 222.85), SIMDE_FLOAT64_C( 300.16)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -921.58), SIMDE_FLOAT64_C( -156.82), SIMDE_FLOAT64_C( 221.04), SIMDE_FLOAT64_C( 1101.03), SIMDE_FLOAT64_C( 476.46), SIMDE_FLOAT64_C( 1368.52), SIMDE_FLOAT64_C( 650.64), SIMDE_FLOAT64_C( 428.73)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_sub_pd(test_vec[i].a, test_vec[i].b); simde_assert_m512d_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_mask_sub_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i src; simde__mmask16 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi32(INT32_C( -957186609), INT32_C(-1524765283), INT32_C( 1290068568), INT32_C( 1887468775), INT32_C( -904096999), INT32_C(-1189693212), INT32_C( 221355870), INT32_C(-1952779315), INT32_C( 1347985035), INT32_C(-2063939133), INT32_C(-1602582649), INT32_C(-2096850611), INT32_C(-2084994527), INT32_C( -75386963), INT32_C( 1835417512), INT32_C(-2072964471)), UINT16_C(35396), simde_mm512_set_epi32(INT32_C( 136551409), INT32_C( 1192962314), INT32_C( 2058621765), INT32_C(-2039270859), INT32_C( -26254502), INT32_C( 733381108), INT32_C( -187934344), INT32_C( 989979336), INT32_C(-1964919382), INT32_C( 126554293), INT32_C( 254011928), INT32_C( 1490517506), INT32_C(-1065486850), INT32_C( 45941921), INT32_C(-1082899768), INT32_C( -219628031)), simde_mm512_set_epi32(INT32_C( -680185335), INT32_C( 111102276), INT32_C( 1222454066), INT32_C( -422241261), INT32_C( -78061198), INT32_C(-2084414007), INT32_C( 1367041146), INT32_C(-1471398421), INT32_C( -348147705), INT32_C( 673564238), INT32_C(-1457376577), INT32_C( 613875036), INT32_C( -859069431), INT32_C( -733638834), INT32_C(-1673403701), INT32_C( 842474288)), simde_mm512_set_epi32(INT32_C( 816736744), INT32_C(-1524765283), INT32_C( 1290068568), INT32_C( 1887468775), INT32_C( 51806696), INT32_C(-1189693212), INT32_C(-1554975490), INT32_C(-1952779315), INT32_C( 1347985035), INT32_C( -547009945), INT32_C(-1602582649), INT32_C(-2096850611), INT32_C(-2084994527), INT32_C( 779580755), INT32_C( 1835417512), INT32_C(-2072964471)) }, { simde_mm512_set_epi32(INT32_C( 2077489237), INT32_C(-2066152618), INT32_C( -825076901), INT32_C(-1372574642), INT32_C( -889460158), INT32_C( 498921453), INT32_C( 943332338), INT32_C(-1383811831), INT32_C( 1827152592), INT32_C( 1728034912), INT32_C( 1350913629), INT32_C( 868578809), INT32_C( 1368636899), INT32_C( -389235219), INT32_C( 602990700), INT32_C( -400551366)), UINT16_C(47779), simde_mm512_set_epi32(INT32_C( 1704357216), INT32_C( -538157327), INT32_C( 1370875608), INT32_C( 1508504457), INT32_C( -68294915), INT32_C(-1479685367), INT32_C( -615597542), INT32_C(-1638887359), INT32_C(-1417912572), INT32_C( 1479002949), INT32_C( -647118153), INT32_C( 1670566025), INT32_C(-1880268561), INT32_C(-1083232065), INT32_C( 2092339698), INT32_C(-1021873283)), simde_mm512_set_epi32(INT32_C( -839277498), INT32_C( 551588590), INT32_C( 1834572496), INT32_C( 1613035598), INT32_C(-1678404828), INT32_C(-1769391216), INT32_C(-1638931514), INT32_C( 156804649), INT32_C( 1764158657), INT32_C( -132604621), INT32_C( 446542816), INT32_C( 2037189710), INT32_C( 109296986), INT32_C( 257019297), INT32_C( 473079611), INT32_C( 1127076998)), simde_mm512_set_epi32(INT32_C(-1751332582), INT32_C(-2066152618), INT32_C( -463696888), INT32_C( -104531141), INT32_C( 1610109913), INT32_C( 498921453), INT32_C( 1023333972), INT32_C(-1383811831), INT32_C( 1112896067), INT32_C( 1728034912), INT32_C(-1093660969), INT32_C( 868578809), INT32_C( 1368636899), INT32_C( -389235219), INT32_C( 1619260087), INT32_C( 2146017015)) }, { simde_mm512_set_epi32(INT32_C( 307630641), INT32_C(-1560148595), INT32_C( 376284729), INT32_C( 278591183), INT32_C( -277186219), INT32_C( 1940926671), INT32_C( 662058232), INT32_C( 1091202812), INT32_C( -701136301), INT32_C( -504607320), INT32_C( -251380880), INT32_C( 1860616049), INT32_C(-1752161866), INT32_C(-1199997313), INT32_C(-1668691262), INT32_C( 1717921298)), UINT16_C( 2459), simde_mm512_set_epi32(INT32_C( 2079917891), INT32_C(-1199015072), INT32_C( -98602729), INT32_C( -930567988), INT32_C(-1256209763), INT32_C( 1068967165), INT32_C( 1289079409), INT32_C( 1251085533), INT32_C( -727360546), INT32_C(-1724797341), INT32_C( 2093813635), INT32_C( 1051617285), INT32_C( 1264716001), INT32_C( 940727836), INT32_C( 1722577424), INT32_C(-1275657732)), simde_mm512_set_epi32(INT32_C( 671797033), INT32_C(-1012795446), INT32_C( 2106088193), INT32_C( -458612579), INT32_C( -261772865), INT32_C( -550994046), INT32_C( 2105186719), INT32_C( 1074097751), INT32_C(-1251411324), INT32_C( 65867416), INT32_C(-1495248139), INT32_C( 315553116), INT32_C(-1869712369), INT32_C(-1246794510), INT32_C( 1218370652), INT32_C( -240388126)), simde_mm512_set_epi32(INT32_C( 307630641), INT32_C(-1560148595), INT32_C( 376284729), INT32_C( 278591183), INT32_C( -994436898), INT32_C( 1940926671), INT32_C( 662058232), INT32_C( 176987782), INT32_C( 524050778), INT32_C( -504607320), INT32_C( -251380880), INT32_C( 736064169), INT32_C(-1160538926), INT32_C(-1199997313), INT32_C( 504206772), INT32_C(-1035269606)) }, { simde_mm512_set_epi32(INT32_C( -789716549), INT32_C(-1932674309), INT32_C( 548470804), INT32_C( -318652401), INT32_C(-2041118423), INT32_C(-2107945718), INT32_C( -715661009), INT32_C( 1609073505), INT32_C( 1214609500), INT32_C( 283085327), INT32_C(-1633515677), INT32_C( 1697029857), INT32_C( 1976447422), INT32_C( 904412076), INT32_C( 1198927422), INT32_C(-1498026761)), UINT16_C(54315), simde_mm512_set_epi32(INT32_C( 1385182319), INT32_C( 795273310), INT32_C( 1955628796), INT32_C( -526907127), INT32_C(-2141025282), INT32_C( -931446405), INT32_C(-1422139726), INT32_C(-1101084337), INT32_C( -254080461), INT32_C( -595291883), INT32_C( 1292692652), INT32_C(-1849951866), INT32_C( -815091127), INT32_C( 370112774), INT32_C( -520479179), INT32_C( 1681391452)), simde_mm512_set_epi32(INT32_C(-1825216267), INT32_C( 1555513845), INT32_C(-2081576252), INT32_C(-1972081268), INT32_C( -563427058), INT32_C( 1922040193), INT32_C(-2102270715), INT32_C(-1257264155), INT32_C( -894851768), INT32_C( 1793334666), INT32_C( 1049305530), INT32_C(-1935379009), INT32_C( -8279361), INT32_C(-1567490719), INT32_C(-2014130513), INT32_C(-1826154506)), simde_mm512_set_epi32(INT32_C(-1084568710), INT32_C( -760240535), INT32_C( 548470804), INT32_C( 1445174141), INT32_C(-2041118423), INT32_C( 1441480698), INT32_C( -715661009), INT32_C( 1609073505), INT32_C( 1214609500), INT32_C( 283085327), INT32_C( 243387122), INT32_C( 1697029857), INT32_C( -806811766), INT32_C( 904412076), INT32_C( 1493651334), INT32_C( -787421338)) }, { simde_mm512_set_epi32(INT32_C( 997407681), INT32_C( -83308341), INT32_C( 1430458288), INT32_C( -655910274), INT32_C( 17159218), INT32_C( 197891822), INT32_C( -82165524), INT32_C( 98130061), INT32_C( -696255503), INT32_C( 616388941), INT32_C( 1383637516), INT32_C( 255219509), INT32_C(-1280964183), INT32_C(-1753221031), INT32_C( 480974923), INT32_C(-1444611560)), UINT16_C(47568), simde_mm512_set_epi32(INT32_C(-1796791424), INT32_C( 919413682), INT32_C( 907613991), INT32_C(-1471064632), INT32_C(-2017464794), INT32_C( -67778959), INT32_C(-1033884668), INT32_C( -839095279), INT32_C( -881742684), INT32_C( 1193890045), INT32_C( -817450648), INT32_C( -450889209), INT32_C(-1829442769), INT32_C( -254239276), INT32_C( 1531184539), INT32_C( 204100550)), simde_mm512_set_epi32(INT32_C(-1574624316), INT32_C( 1965632168), INT32_C( -507137262), INT32_C( 868285762), INT32_C( -287712967), INT32_C(-1275855491), INT32_C(-1948986373), INT32_C( 378189270), INT32_C( 2028975029), INT32_C( -983819985), INT32_C(-1530834794), INT32_C( -267906659), INT32_C( 2013371063), INT32_C( -972550977), INT32_C(-1345658151), INT32_C(-2001069348)), simde_mm512_set_epi32(INT32_C( -222167108), INT32_C( -83308341), INT32_C( 1414751253), INT32_C( 1955616902), INT32_C(-1729751827), INT32_C( 197891822), INT32_C( -82165524), INT32_C(-1217284549), INT32_C( 1384249583), INT32_C(-2117257266), INT32_C( 1383637516), INT32_C( -182982550), INT32_C(-1280964183), INT32_C(-1753221031), INT32_C( 480974923), INT32_C(-1444611560)) }, { simde_mm512_set_epi32(INT32_C( 1875288432), INT32_C( 1158027251), INT32_C( -303056299), INT32_C( -939396673), INT32_C( 1585003262), INT32_C( 1365783459), INT32_C( 111845672), INT32_C(-1286713478), INT32_C( 674624782), INT32_C( 2020528740), INT32_C( 497192398), INT32_C( 1112540789), INT32_C(-1764167278), INT32_C(-1540772359), INT32_C( 395629026), INT32_C( 984304916)), UINT16_C(16877), simde_mm512_set_epi32(INT32_C( -344292944), INT32_C( 1968428151), INT32_C( 2086978939), INT32_C( 1501910543), INT32_C(-1262393002), INT32_C( 2081469023), INT32_C( 2016768793), INT32_C( 1922434397), INT32_C( -253304624), INT32_C( 515280842), INT32_C(-1708348294), INT32_C( 2107558843), INT32_C( 1919035054), INT32_C( 1742835915), INT32_C( 989439209), INT32_C( 2080310116)), simde_mm512_set_epi32(INT32_C( 1560352883), INT32_C( -937050525), INT32_C( 15000953), INT32_C( 298895006), INT32_C( -255287325), INT32_C( -851082971), INT32_C( -981170631), INT32_C( 30364523), INT32_C( -626854551), INT32_C( 1776719697), INT32_C(-1286673883), INT32_C( 2134458392), INT32_C(-1884377437), INT32_C(-2042525337), INT32_C( 2143156805), INT32_C(-1045267304)), simde_mm512_set_epi32(INT32_C( 1875288432), INT32_C(-1389488620), INT32_C( -303056299), INT32_C( -939396673), INT32_C( 1585003262), INT32_C( 1365783459), INT32_C( 111845672), INT32_C( 1892069874), INT32_C( 373549927), INT32_C(-1261438855), INT32_C( -421674411), INT32_C( 1112540789), INT32_C( -491554805), INT32_C( -509606044), INT32_C( 395629026), INT32_C(-1169389876)) }, { simde_mm512_set_epi32(INT32_C( 726531409), INT32_C( -606374582), INT32_C(-1057918709), INT32_C( -811736744), INT32_C(-1460245574), INT32_C( -627872087), INT32_C( 1799586442), INT32_C(-1105519928), INT32_C(-1288829692), INT32_C(-2144392739), INT32_C( 1110910857), INT32_C( -282270116), INT32_C(-1420141426), INT32_C( 1682561587), INT32_C( 1308021682), INT32_C( 712875579)), UINT16_C(17567), simde_mm512_set_epi32(INT32_C(-1065890522), INT32_C( 1362887862), INT32_C(-1905482051), INT32_C( 174767211), INT32_C( 1968089357), INT32_C(-1207243832), INT32_C( -701927204), INT32_C(-1701909648), INT32_C(-1822821880), INT32_C(-1418686446), INT32_C( 2002979046), INT32_C( -531029674), INT32_C( -233545704), INT32_C( 1270923539), INT32_C( -515398077), INT32_C( 870828526)), simde_mm512_set_epi32(INT32_C(-1161246521), INT32_C(-1263382687), INT32_C( -761171059), INT32_C( 1052537110), INT32_C(-1225204820), INT32_C( 1299827393), INT32_C( 477328169), INT32_C( 2043159101), INT32_C( 984199920), INT32_C( 1963689737), INT32_C(-1149812166), INT32_C( -500241318), INT32_C( -953270640), INT32_C( 1180984926), INT32_C( -645305643), INT32_C( 1026486800)), simde_mm512_set_epi32(INT32_C( 726531409), INT32_C(-1668696747), INT32_C(-1057918709), INT32_C( -811736744), INT32_C(-1460245574), INT32_C( 1787896071), INT32_C( 1799586442), INT32_C(-1105519928), INT32_C( 1487945496), INT32_C(-2144392739), INT32_C( 1110910857), INT32_C( -30788356), INT32_C( 719724936), INT32_C( 89938613), INT32_C( 129907566), INT32_C( -155658274)) }, { simde_mm512_set_epi32(INT32_C( 1723004290), INT32_C( 721161302), INT32_C( 1077400739), INT32_C( 861837752), INT32_C(-1943224858), INT32_C( 2112602876), INT32_C(-1445821889), INT32_C(-2100432693), INT32_C(-1175934343), INT32_C( 805502143), INT32_C( 1163969458), INT32_C( 873642413), INT32_C( 2052720739), INT32_C(-1010971457), INT32_C( 199344228), INT32_C( 251460647)), UINT16_C(59134), simde_mm512_set_epi32(INT32_C(-1391704351), INT32_C( -847303025), INT32_C(-1711491580), INT32_C( -147993971), INT32_C(-1140349230), INT32_C( 172650828), INT32_C(-2090294261), INT32_C( -216506888), INT32_C(-1813744120), INT32_C( 1589656338), INT32_C( 1010967585), INT32_C(-2076714127), INT32_C( 1156626662), INT32_C( -264321123), INT32_C(-1099385436), INT32_C( -148901794)), simde_mm512_set_epi32(INT32_C( 1003282629), INT32_C( 1250297288), INT32_C( 26548422), INT32_C(-1100962758), INT32_C( 1934048830), INT32_C( -886200980), INT32_C( -228926178), INT32_C( 21722717), INT32_C(-1321187708), INT32_C( 904822803), INT32_C( -875700432), INT32_C(-1302414558), INT32_C( 962131440), INT32_C( -729214075), INT32_C(-1094266114), INT32_C( 1122895720)), simde_mm512_set_epi32(INT32_C( 1899980316), INT32_C(-2097600313), INT32_C(-1738040002), INT32_C( 861837752), INT32_C(-1943224858), INT32_C( 1058851808), INT32_C(-1861368083), INT32_C(-2100432693), INT32_C( -492556412), INT32_C( 684833535), INT32_C( 1886668017), INT32_C( -774299569), INT32_C( 194495222), INT32_C( 464892952), INT32_C( -5119322), INT32_C( 251460647)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_sub_epi32(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i32(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_sub_epi64(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i src; simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi64(INT64_C( 8894478799917719473), INT64_C(-7614529333518044459), INT64_C( 8458392650500739529), INT64_C( 7085639313865748967), INT64_C(-7547504459018552290), INT64_C(-8310189466716392279), INT64_C(-1750715323825344235), INT64_C(-2532781790488219528)), UINT8_C(106), simde_mm512_set_epi64(INT64_C(-7192427816606966254), INT64_C(-1619523557840103557), INT64_C( 7616061596213068646), INT64_C( -560841280842371832), INT64_C( -806373115982863580), INT64_C( -816793021936842074), INT64_C( -317565234288882547), INT64_C(-7290553309909260368)), simde_mm512_set_epi64(INT64_C(-9084839040863053259), INT64_C( 332697972184433101), INT64_C(-8959492887484217950), INT64_C( 7617292932467329680), INT64_C(-2740045277871922718), INT64_C(-3634413508032825567), INT64_C( -448440935066054877), INT64_C(-6805574594168851327)), simde_mm512_set_epi64(INT64_C( 8894478799917719473), INT64_C(-1952221530024536658), INT64_C(-1871189590012265020), INT64_C( 7085639313865748967), INT64_C( 1933672161889059138), INT64_C(-8310189466716392279), INT64_C( 130875700777172330), INT64_C(-2532781790488219528)) }, { simde_mm512_set_epi64(INT64_C(-3459089877760882917), INT64_C( 1753327656617706405), INT64_C( 3932187030396497555), INT64_C(-4341921971190139713), INT64_C(-7354864635860030437), INT64_C(-7512931671900842140), INT64_C( 7677521206664265888), INT64_C(-8008068901606036732)), UINT8_C( 1), simde_mm512_set_epi64(INT64_C(-9084086707853197365), INT64_C( 5962789269656503800), INT64_C( 6806616562165680967), INT64_C( 8724516399523474076), INT64_C( -924171789017863248), INT64_C(-2255835938032964673), INT64_C(-4560088794132063361), INT64_C(-5517329800302195238)), simde_mm512_set_epi64(INT64_C(-2849655299932577704), INT64_C( 2712991932590941674), INT64_C( 2564329750539599066), INT64_C(-4536455326234991583), INT64_C(-6477728239233614839), INT64_C(-5729565646249538826), INT64_C( 3092410715614407585), INT64_C( 7984397770129184299)), simde_mm512_set_epi64(INT64_C(-3459089877760882917), INT64_C( 1753327656617706405), INT64_C( 3932187030396497555), INT64_C(-4341921971190139713), INT64_C(-7354864635860030437), INT64_C(-7512931671900842140), INT64_C( 7677521206664265888), INT64_C( 4945016503278172079)) }, { simde_mm512_set_epi64(INT64_C( -240340334077349403), INT64_C( 5647038489743797240), INT64_C( 5171415873092064400), INT64_C(-1851380595205120917), INT64_C( -836370148956202078), INT64_C( 8425549504970400810), INT64_C( 2808549870315159479), INT64_C( 3545474415643732634)), UINT8_C(194), simde_mm512_set_epi64(INT64_C(-5877702108931305293), INT64_C(-5372639016544358566), INT64_C(-4535660820549680684), INT64_C(-6747544612783901147), INT64_C( 6705850594648382655), INT64_C(-1906321743942105225), INT64_C( -281981608123407868), INT64_C(-5990711758326206044)), simde_mm512_set_epi64(INT64_C( 8110080903340414341), INT64_C(-3598578875674169061), INT64_C( 4977285870543484474), INT64_C( 6776152673642620958), INT64_C( 4245929756722282054), INT64_C( 3649495924615361625), INT64_C( -638056186877872345), INT64_C(-8828385988165140326)), simde_mm512_set_epi64(INT64_C( 4458961061437831982), INT64_C(-1774060140870189505), INT64_C( 5171415873092064400), INT64_C(-1851380595205120917), INT64_C( -836370148956202078), INT64_C( 8425549504970400810), INT64_C( 356074578754464477), INT64_C( 3545474415643732634)) }, { simde_mm512_set_epi64(INT64_C(-6385979888474332285), INT64_C( 3716758445629922885), INT64_C( 7861010731589253148), INT64_C(-6334773111204875550), INT64_C(-5054960975820633825), INT64_C( 8639514840721539279), INT64_C(-1027366943904624518), INT64_C(-4721195859159142702)), UINT8_C(222), simde_mm512_set_epi64(INT64_C(-7001132877809342173), INT64_C( 6512733899690414848), INT64_C( 988878120815000883), INT64_C(-5994563704199492012), INT64_C( 1587634372980811194), INT64_C( -914749563856678715), INT64_C( 7495962388934953888), INT64_C(-7831181051188885332)), simde_mm512_set_epi64(INT64_C( 4229507402435677476), INT64_C( 2501842736425447642), INT64_C( 8009397189160901283), INT64_C( 3833558633773719409), INT64_C( 2852442819818074174), INT64_C(-8638015813272823849), INT64_C( 8579593880416924807), INT64_C( 2713766728753976690)), simde_mm512_set_epi64(INT64_C( 7216103793464531967), INT64_C( 4010891163264967206), INT64_C( 7861010731589253148), INT64_C( 8618621735736340195), INT64_C(-1264808446837262980), INT64_C( 7723266249416145134), INT64_C(-1083631491481970919), INT64_C(-4721195859159142702)) }, { simde_mm512_set_epi64(INT64_C( 4051614369896270101), INT64_C( 6703896128856670897), INT64_C(-5750389130785475983), INT64_C(-7878547924784098469), INT64_C( 5491867996743881624), INT64_C(-2189602113514909499), INT64_C( -887220462507309287), INT64_C(-5733898489940979010)), UINT8_C( 26), simde_mm512_set_epi64(INT64_C( -99656633840764240), INT64_C(-3479731851565468885), INT64_C(-7074577238264434881), INT64_C(-3836339826871533273), INT64_C( 4198283975631841849), INT64_C(-3829622956767240841), INT64_C( 5960966148924368684), INT64_C( -504125670847055963)), simde_mm512_set_epi64(INT64_C(-8344319212574510912), INT64_C(-3371415321000668561), INT64_C(-8338525176508042897), INT64_C( 5173420397567361383), INT64_C(-6751809518396836721), INT64_C(-8388491552134432960), INT64_C(-9161028627110906680), INT64_C( 7472048750700349549)), simde_mm512_set_epi64(INT64_C( 4051614369896270101), INT64_C( 6703896128856670897), INT64_C(-5750389130785475983), INT64_C(-9009760224438894656), INT64_C(-7496650579680873046), INT64_C(-2189602113514909499), INT64_C(-3324749297674276252), INT64_C(-5733898489940979010)) }, { simde_mm512_set_epi64(INT64_C(-6378393891104748170), INT64_C(-8478287659785501826), INT64_C(-2127236125072242134), INT64_C( 8702738982982040445), INT64_C( 645844328650761785), INT64_C(-4561773442934600720), INT64_C(-5793568656482259588), INT64_C( -379681413311801170)), UINT8_C(230), simde_mm512_set_epi64(INT64_C( -848706848545220792), INT64_C(-1124075123789220737), INT64_C(-2005439629632543252), INT64_C( 8274388146286059619), INT64_C( -261550962782015927), INT64_C(-8761037216848109215), INT64_C(-3016365966836321630), INT64_C( 2543055264688040393)), simde_mm512_set_epi64(INT64_C( 1583638370136684317), INT64_C(-1184919915070849427), INT64_C( 6948286910398693964), INT64_C( 2437457976149582578), INT64_C( 3426542754873284897), INT64_C(-7983270512780038531), INT64_C( 1779296328975282374), INT64_C(-5362999871220584978)), simde_mm512_set_epi64(INT64_C(-2432345218681905109), INT64_C( 60844791281628690), INT64_C(-8953726540031237216), INT64_C( 8702738982982040445), INT64_C( 645844328650761785), INT64_C( -777766704068070684), INT64_C(-4795662295811604004), INT64_C( -379681413311801170)) }, { simde_mm512_set_epi64(INT64_C(-2563692560784467599), INT64_C(-2764729313181954331), INT64_C( 7449793955604076666), INT64_C(-6302011830015535814), INT64_C(-5919077484698028869), INT64_C(-6127059769393124093), INT64_C( 2958642729945465911), INT64_C( 2772140786646472311)), UINT8_C(198), simde_mm512_set_epi64(INT64_C(-3934991658845807023), INT64_C( 7561755153516237296), INT64_C(-1521478373140770922), INT64_C( 6956443634033398294), INT64_C(-5307063963483146371), INT64_C( 6556039892370535969), INT64_C(-6645788521893978945), INT64_C(-6307512051127595595)), simde_mm512_set_epi64(INT64_C(-7270561721689602230), INT64_C( 8935792808270452615), INT64_C( 1984489943341614372), INT64_C( 6860868624136070257), INT64_C(-2243581398369652256), INT64_C(-6592818671779181804), INT64_C( -308663241436655846), INT64_C(-8935526257161672911)), simde_mm512_set_epi64(INT64_C( 3335570062843795207), INT64_C(-1374037654754215319), INT64_C( 7449793955604076666), INT64_C(-6302011830015535814), INT64_C(-5919077484698028869), INT64_C(-5297885509559833843), INT64_C(-6337125280457323099), INT64_C( 2772140786646472311)) }, { simde_mm512_set_epi64(INT64_C(-7511866029206584895), INT64_C( 6685003933657692663), INT64_C( 112057327023275278), INT64_C( 2785131907782223781), INT64_C( -403719025987547254), INT64_C(-5974279397850363938), INT64_C(-6601571580489345254), INT64_C( 1896379997419403836)), UINT8_C( 70), simde_mm512_set_epi64(INT64_C(-6334367433946281110), INT64_C(-5840485098030444461), INT64_C(-6383956557021185117), INT64_C(-7600398675722821668), INT64_C(-2279362749413199885), INT64_C(-8009539466982888201), INT64_C( 340327559398526723), INT64_C(-2438629088141247826)), simde_mm512_set_epi64(INT64_C( 3758222621544461478), INT64_C( 8264387002851618510), INT64_C( 5256515298231032169), INT64_C( 4555501816451377355), INT64_C(-9184304616258229288), INT64_C( 5115688705834988612), INT64_C(-3795492187184599084), INT64_C(-3221204559120447653)), simde_mm512_set_epi64(INT64_C(-7511866029206584895), INT64_C( 4341871972827488645), INT64_C( 112057327023275278), INT64_C( 2785131907782223781), INT64_C( -403719025987547254), INT64_C( 5321515900891674803), INT64_C( 4135819746583125807), INT64_C( 1896379997419403836)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_sub_epi64(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_mask_sub_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512 src; simde__mmask16 k; simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { simde_mm512_set_ps(SIMDE_FLOAT32_C( -417.79), SIMDE_FLOAT32_C( -912.83), SIMDE_FLOAT32_C( 111.29), SIMDE_FLOAT32_C( -470.87), SIMDE_FLOAT32_C( 685.45), SIMDE_FLOAT32_C( -92.85), SIMDE_FLOAT32_C( 704.55), SIMDE_FLOAT32_C( 450.79), SIMDE_FLOAT32_C( -761.01), SIMDE_FLOAT32_C( -759.35), SIMDE_FLOAT32_C( 646.77), SIMDE_FLOAT32_C( 616.33), SIMDE_FLOAT32_C( 922.76), SIMDE_FLOAT32_C( 721.94), SIMDE_FLOAT32_C( 721.78), SIMDE_FLOAT32_C( 651.66)), UINT16_C(55049), simde_mm512_set_ps(SIMDE_FLOAT32_C( 492.15), SIMDE_FLOAT32_C( 363.86), SIMDE_FLOAT32_C( -906.93), SIMDE_FLOAT32_C( -51.88), SIMDE_FLOAT32_C( 976.36), SIMDE_FLOAT32_C( 844.84), SIMDE_FLOAT32_C( 525.57), SIMDE_FLOAT32_C( 575.43), SIMDE_FLOAT32_C( -719.61), SIMDE_FLOAT32_C( 570.91), SIMDE_FLOAT32_C( -748.06), SIMDE_FLOAT32_C( 823.89), SIMDE_FLOAT32_C( -708.11), SIMDE_FLOAT32_C( -805.87), SIMDE_FLOAT32_C( 626.28), SIMDE_FLOAT32_C( 344.43)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -814.48), SIMDE_FLOAT32_C( 843.19), SIMDE_FLOAT32_C( -866.28), SIMDE_FLOAT32_C( -230.51), SIMDE_FLOAT32_C( -264.51), SIMDE_FLOAT32_C( 935.39), SIMDE_FLOAT32_C( 479.68), SIMDE_FLOAT32_C( -375.52), SIMDE_FLOAT32_C( -928.92), SIMDE_FLOAT32_C( -243.75), SIMDE_FLOAT32_C( 771.60), SIMDE_FLOAT32_C( 150.31), SIMDE_FLOAT32_C( -627.83), SIMDE_FLOAT32_C( -720.61), SIMDE_FLOAT32_C( 345.13), SIMDE_FLOAT32_C( 203.00)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 1306.63), SIMDE_FLOAT32_C( -479.33), SIMDE_FLOAT32_C( 111.29), SIMDE_FLOAT32_C( 178.63), SIMDE_FLOAT32_C( 685.45), SIMDE_FLOAT32_C( -90.55), SIMDE_FLOAT32_C( 45.89), SIMDE_FLOAT32_C( 950.95), SIMDE_FLOAT32_C( -761.01), SIMDE_FLOAT32_C( -759.35), SIMDE_FLOAT32_C( 646.77), SIMDE_FLOAT32_C( 616.33), SIMDE_FLOAT32_C( -80.28), SIMDE_FLOAT32_C( 721.94), SIMDE_FLOAT32_C( 721.78), SIMDE_FLOAT32_C( 141.43)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -594.79), SIMDE_FLOAT32_C( -68.26), SIMDE_FLOAT32_C( 772.68), SIMDE_FLOAT32_C( -615.12), SIMDE_FLOAT32_C( 489.20), SIMDE_FLOAT32_C( -609.74), SIMDE_FLOAT32_C( -297.42), SIMDE_FLOAT32_C( -701.58), SIMDE_FLOAT32_C( 71.34), SIMDE_FLOAT32_C( -811.20), SIMDE_FLOAT32_C( -44.61), SIMDE_FLOAT32_C( 172.32), SIMDE_FLOAT32_C( -336.24), SIMDE_FLOAT32_C( -959.77), SIMDE_FLOAT32_C( 896.40), SIMDE_FLOAT32_C( 321.28)), UINT16_C( 2266), simde_mm512_set_ps(SIMDE_FLOAT32_C( 136.73), SIMDE_FLOAT32_C( 408.70), SIMDE_FLOAT32_C( 907.04), SIMDE_FLOAT32_C( 175.32), SIMDE_FLOAT32_C( 125.78), SIMDE_FLOAT32_C( -176.42), SIMDE_FLOAT32_C( -192.20), SIMDE_FLOAT32_C( 636.29), SIMDE_FLOAT32_C( -812.72), SIMDE_FLOAT32_C( -295.02), SIMDE_FLOAT32_C( 426.00), SIMDE_FLOAT32_C( 348.29), SIMDE_FLOAT32_C( 859.20), SIMDE_FLOAT32_C( -28.95), SIMDE_FLOAT32_C( -637.06), SIMDE_FLOAT32_C( -450.15)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -929.87), SIMDE_FLOAT32_C( -208.53), SIMDE_FLOAT32_C( 561.71), SIMDE_FLOAT32_C( -74.05), SIMDE_FLOAT32_C( 477.79), SIMDE_FLOAT32_C( 772.49), SIMDE_FLOAT32_C( 648.48), SIMDE_FLOAT32_C( -58.61), SIMDE_FLOAT32_C( 835.38), SIMDE_FLOAT32_C( -689.00), SIMDE_FLOAT32_C( 607.03), SIMDE_FLOAT32_C( 421.78), SIMDE_FLOAT32_C( -574.15), SIMDE_FLOAT32_C( 302.76), SIMDE_FLOAT32_C( 178.11), SIMDE_FLOAT32_C( -298.57)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -594.79), SIMDE_FLOAT32_C( -68.26), SIMDE_FLOAT32_C( 772.68), SIMDE_FLOAT32_C( -615.12), SIMDE_FLOAT32_C( -352.01), SIMDE_FLOAT32_C( -609.74), SIMDE_FLOAT32_C( -297.42), SIMDE_FLOAT32_C( -701.58), SIMDE_FLOAT32_C( -1648.10), SIMDE_FLOAT32_C( 393.98), SIMDE_FLOAT32_C( -44.61), SIMDE_FLOAT32_C( -73.49), SIMDE_FLOAT32_C( 1433.35), SIMDE_FLOAT32_C( -959.77), SIMDE_FLOAT32_C( -815.17), SIMDE_FLOAT32_C( 321.28)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -914.76), SIMDE_FLOAT32_C( 285.68), SIMDE_FLOAT32_C( 695.03), SIMDE_FLOAT32_C( -235.78), SIMDE_FLOAT32_C( 90.17), SIMDE_FLOAT32_C( 891.02), SIMDE_FLOAT32_C( -456.46), SIMDE_FLOAT32_C( 952.55), SIMDE_FLOAT32_C( -153.33), SIMDE_FLOAT32_C( -533.35), SIMDE_FLOAT32_C( -130.02), SIMDE_FLOAT32_C( -580.21), SIMDE_FLOAT32_C( -857.73), SIMDE_FLOAT32_C( -362.64), SIMDE_FLOAT32_C( 808.25), SIMDE_FLOAT32_C( 908.95)), UINT16_C(53407), simde_mm512_set_ps(SIMDE_FLOAT32_C( 415.38), SIMDE_FLOAT32_C( 622.33), SIMDE_FLOAT32_C( 849.49), SIMDE_FLOAT32_C( -552.97), SIMDE_FLOAT32_C( 837.01), SIMDE_FLOAT32_C( -753.98), SIMDE_FLOAT32_C( 167.51), SIMDE_FLOAT32_C( 898.60), SIMDE_FLOAT32_C( -36.68), SIMDE_FLOAT32_C( -931.19), SIMDE_FLOAT32_C( 230.22), SIMDE_FLOAT32_C( -885.80), SIMDE_FLOAT32_C( -894.49), SIMDE_FLOAT32_C( -402.23), SIMDE_FLOAT32_C( -68.60), SIMDE_FLOAT32_C( -153.88)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 247.18), SIMDE_FLOAT32_C( 507.40), SIMDE_FLOAT32_C( -715.17), SIMDE_FLOAT32_C( 785.48), SIMDE_FLOAT32_C( -543.41), SIMDE_FLOAT32_C( 761.08), SIMDE_FLOAT32_C( 479.07), SIMDE_FLOAT32_C( -938.93), SIMDE_FLOAT32_C( -655.56), SIMDE_FLOAT32_C( 618.55), SIMDE_FLOAT32_C( 224.83), SIMDE_FLOAT32_C( -983.99), SIMDE_FLOAT32_C( -18.22), SIMDE_FLOAT32_C( -142.62), SIMDE_FLOAT32_C( 120.01), SIMDE_FLOAT32_C( 186.92)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 168.20), SIMDE_FLOAT32_C( 114.93), SIMDE_FLOAT32_C( 695.03), SIMDE_FLOAT32_C( -1338.45), SIMDE_FLOAT32_C( 90.17), SIMDE_FLOAT32_C( 891.02), SIMDE_FLOAT32_C( -456.46), SIMDE_FLOAT32_C( 952.55), SIMDE_FLOAT32_C( 618.88), SIMDE_FLOAT32_C( -533.35), SIMDE_FLOAT32_C( -130.02), SIMDE_FLOAT32_C( 98.19), SIMDE_FLOAT32_C( -876.27), SIMDE_FLOAT32_C( -259.61), SIMDE_FLOAT32_C( -188.61), SIMDE_FLOAT32_C( -340.80)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -586.97), SIMDE_FLOAT32_C( -706.71), SIMDE_FLOAT32_C( 862.31), SIMDE_FLOAT32_C( 901.76), SIMDE_FLOAT32_C( -777.23), SIMDE_FLOAT32_C( -615.23), SIMDE_FLOAT32_C( 540.06), SIMDE_FLOAT32_C( -837.05), SIMDE_FLOAT32_C( 896.68), SIMDE_FLOAT32_C( -818.79), SIMDE_FLOAT32_C( -146.21), SIMDE_FLOAT32_C( -751.20), SIMDE_FLOAT32_C( -724.86), SIMDE_FLOAT32_C( -446.10), SIMDE_FLOAT32_C( 747.21), SIMDE_FLOAT32_C( -830.22)), UINT16_C(24145), simde_mm512_set_ps(SIMDE_FLOAT32_C( 809.72), SIMDE_FLOAT32_C( -191.45), SIMDE_FLOAT32_C( -687.88), SIMDE_FLOAT32_C( -561.69), SIMDE_FLOAT32_C( 623.06), SIMDE_FLOAT32_C( -685.16), SIMDE_FLOAT32_C( 155.59), SIMDE_FLOAT32_C( -91.67), SIMDE_FLOAT32_C( -292.32), SIMDE_FLOAT32_C( 436.29), SIMDE_FLOAT32_C( 682.53), SIMDE_FLOAT32_C( -427.71), SIMDE_FLOAT32_C( -252.26), SIMDE_FLOAT32_C( -814.33), SIMDE_FLOAT32_C( -116.78), SIMDE_FLOAT32_C( -176.18)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -476.63), SIMDE_FLOAT32_C( -403.49), SIMDE_FLOAT32_C( -129.06), SIMDE_FLOAT32_C( -540.32), SIMDE_FLOAT32_C( -296.84), SIMDE_FLOAT32_C( 354.93), SIMDE_FLOAT32_C( 301.70), SIMDE_FLOAT32_C( 818.26), SIMDE_FLOAT32_C( 152.41), SIMDE_FLOAT32_C( -7.33), SIMDE_FLOAT32_C( 901.12), SIMDE_FLOAT32_C( 276.49), SIMDE_FLOAT32_C( -421.45), SIMDE_FLOAT32_C( -19.17), SIMDE_FLOAT32_C( 559.47), SIMDE_FLOAT32_C( -62.60)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -586.97), SIMDE_FLOAT32_C( 212.04), SIMDE_FLOAT32_C( 862.31), SIMDE_FLOAT32_C( -21.37), SIMDE_FLOAT32_C( 919.90), SIMDE_FLOAT32_C( -1040.09), SIMDE_FLOAT32_C( -146.11), SIMDE_FLOAT32_C( -837.05), SIMDE_FLOAT32_C( 896.68), SIMDE_FLOAT32_C( 443.62), SIMDE_FLOAT32_C( -146.21), SIMDE_FLOAT32_C( -704.20), SIMDE_FLOAT32_C( -724.86), SIMDE_FLOAT32_C( -446.10), SIMDE_FLOAT32_C( 747.21), SIMDE_FLOAT32_C( -113.58)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 853.44), SIMDE_FLOAT32_C( 804.93), SIMDE_FLOAT32_C( 753.54), SIMDE_FLOAT32_C( 129.42), SIMDE_FLOAT32_C( -911.24), SIMDE_FLOAT32_C( -795.01), SIMDE_FLOAT32_C( -264.21), SIMDE_FLOAT32_C( 110.23), SIMDE_FLOAT32_C( 779.42), SIMDE_FLOAT32_C( 756.19), SIMDE_FLOAT32_C( -61.94), SIMDE_FLOAT32_C( -845.71), SIMDE_FLOAT32_C( 522.75), SIMDE_FLOAT32_C( 703.06), SIMDE_FLOAT32_C( 989.80), SIMDE_FLOAT32_C( 594.14)), UINT16_C(58122), simde_mm512_set_ps(SIMDE_FLOAT32_C( 774.43), SIMDE_FLOAT32_C( 251.56), SIMDE_FLOAT32_C( -915.66), SIMDE_FLOAT32_C( -492.31), SIMDE_FLOAT32_C( 722.32), SIMDE_FLOAT32_C( 853.19), SIMDE_FLOAT32_C( 466.28), SIMDE_FLOAT32_C( 573.97), SIMDE_FLOAT32_C( -516.73), SIMDE_FLOAT32_C( -267.27), SIMDE_FLOAT32_C( 110.95), SIMDE_FLOAT32_C( -68.16), SIMDE_FLOAT32_C( -400.30), SIMDE_FLOAT32_C( 327.53), SIMDE_FLOAT32_C( -638.51), SIMDE_FLOAT32_C( -96.92)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 101.96), SIMDE_FLOAT32_C( -734.61), SIMDE_FLOAT32_C( 219.43), SIMDE_FLOAT32_C( -507.66), SIMDE_FLOAT32_C( -747.54), SIMDE_FLOAT32_C( 794.68), SIMDE_FLOAT32_C( -663.99), SIMDE_FLOAT32_C( -123.94), SIMDE_FLOAT32_C( -793.12), SIMDE_FLOAT32_C( 673.57), SIMDE_FLOAT32_C( -777.14), SIMDE_FLOAT32_C( 175.88), SIMDE_FLOAT32_C( -792.24), SIMDE_FLOAT32_C( -246.51), SIMDE_FLOAT32_C( 848.21), SIMDE_FLOAT32_C( -124.15)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 672.47), SIMDE_FLOAT32_C( 986.17), SIMDE_FLOAT32_C( -1135.09), SIMDE_FLOAT32_C( 129.42), SIMDE_FLOAT32_C( -911.24), SIMDE_FLOAT32_C( -795.01), SIMDE_FLOAT32_C( 1130.27), SIMDE_FLOAT32_C( 697.91), SIMDE_FLOAT32_C( 779.42), SIMDE_FLOAT32_C( 756.19), SIMDE_FLOAT32_C( -61.94), SIMDE_FLOAT32_C( -845.71), SIMDE_FLOAT32_C( 391.94), SIMDE_FLOAT32_C( 703.06), SIMDE_FLOAT32_C( -1486.72), SIMDE_FLOAT32_C( 594.14)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -670.29), SIMDE_FLOAT32_C( 821.01), SIMDE_FLOAT32_C( -293.06), SIMDE_FLOAT32_C( -56.42), SIMDE_FLOAT32_C( -163.64), SIMDE_FLOAT32_C( -919.47), SIMDE_FLOAT32_C( 636.75), SIMDE_FLOAT32_C( 555.64), SIMDE_FLOAT32_C( 630.28), SIMDE_FLOAT32_C( 798.33), SIMDE_FLOAT32_C( -536.88), SIMDE_FLOAT32_C( 256.29), SIMDE_FLOAT32_C( 834.99), SIMDE_FLOAT32_C( -678.50), SIMDE_FLOAT32_C( -716.28), SIMDE_FLOAT32_C( -235.17)), UINT16_C( 7968), simde_mm512_set_ps(SIMDE_FLOAT32_C( 575.18), SIMDE_FLOAT32_C( -655.63), SIMDE_FLOAT32_C( 986.91), SIMDE_FLOAT32_C( 710.96), SIMDE_FLOAT32_C( 921.30), SIMDE_FLOAT32_C( -96.00), SIMDE_FLOAT32_C( -68.75), SIMDE_FLOAT32_C( -119.17), SIMDE_FLOAT32_C( -795.52), SIMDE_FLOAT32_C( -851.06), SIMDE_FLOAT32_C( 982.58), SIMDE_FLOAT32_C( 432.45), SIMDE_FLOAT32_C( 834.71), SIMDE_FLOAT32_C( -931.48), SIMDE_FLOAT32_C( 421.86), SIMDE_FLOAT32_C( 549.54)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 699.42), SIMDE_FLOAT32_C( -430.21), SIMDE_FLOAT32_C( -842.83), SIMDE_FLOAT32_C( -375.32), SIMDE_FLOAT32_C( -889.13), SIMDE_FLOAT32_C( 77.46), SIMDE_FLOAT32_C( -426.32), SIMDE_FLOAT32_C( -319.52), SIMDE_FLOAT32_C( 633.46), SIMDE_FLOAT32_C( -484.05), SIMDE_FLOAT32_C( 991.09), SIMDE_FLOAT32_C( 894.84), SIMDE_FLOAT32_C( 148.17), SIMDE_FLOAT32_C( -167.11), SIMDE_FLOAT32_C( -811.87), SIMDE_FLOAT32_C( -574.29)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -670.29), SIMDE_FLOAT32_C( 821.01), SIMDE_FLOAT32_C( -293.06), SIMDE_FLOAT32_C( 1086.28), SIMDE_FLOAT32_C( 1810.43), SIMDE_FLOAT32_C( -173.46), SIMDE_FLOAT32_C( 357.57), SIMDE_FLOAT32_C( 200.35), SIMDE_FLOAT32_C( 630.28), SIMDE_FLOAT32_C( 798.33), SIMDE_FLOAT32_C( -8.51), SIMDE_FLOAT32_C( 256.29), SIMDE_FLOAT32_C( 834.99), SIMDE_FLOAT32_C( -678.50), SIMDE_FLOAT32_C( -716.28), SIMDE_FLOAT32_C( -235.17)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 640.00), SIMDE_FLOAT32_C( 440.55), SIMDE_FLOAT32_C( 793.44), SIMDE_FLOAT32_C( 554.05), SIMDE_FLOAT32_C( 245.74), SIMDE_FLOAT32_C( -388.16), SIMDE_FLOAT32_C( -27.32), SIMDE_FLOAT32_C( -923.44), SIMDE_FLOAT32_C( 109.81), SIMDE_FLOAT32_C( 855.67), SIMDE_FLOAT32_C( -513.53), SIMDE_FLOAT32_C( -921.47), SIMDE_FLOAT32_C( -410.90), SIMDE_FLOAT32_C( -404.15), SIMDE_FLOAT32_C( -502.43), SIMDE_FLOAT32_C( -674.13)), UINT16_C(34235), simde_mm512_set_ps(SIMDE_FLOAT32_C( 455.94), SIMDE_FLOAT32_C( 822.75), SIMDE_FLOAT32_C( 672.52), SIMDE_FLOAT32_C( 418.16), SIMDE_FLOAT32_C( 993.17), SIMDE_FLOAT32_C( -581.12), SIMDE_FLOAT32_C( 737.02), SIMDE_FLOAT32_C( -48.12), SIMDE_FLOAT32_C( 169.53), SIMDE_FLOAT32_C( 875.02), SIMDE_FLOAT32_C( 325.94), SIMDE_FLOAT32_C( -197.05), SIMDE_FLOAT32_C( 209.80), SIMDE_FLOAT32_C( 679.16), SIMDE_FLOAT32_C( -743.34), SIMDE_FLOAT32_C( 192.93)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -400.32), SIMDE_FLOAT32_C( 747.89), SIMDE_FLOAT32_C( -417.14), SIMDE_FLOAT32_C( -149.76), SIMDE_FLOAT32_C( -769.13), SIMDE_FLOAT32_C( 952.70), SIMDE_FLOAT32_C( 55.59), SIMDE_FLOAT32_C( -118.59), SIMDE_FLOAT32_C( -651.36), SIMDE_FLOAT32_C( 213.50), SIMDE_FLOAT32_C( 998.39), SIMDE_FLOAT32_C( 155.85), SIMDE_FLOAT32_C( 985.22), SIMDE_FLOAT32_C( -399.37), SIMDE_FLOAT32_C( -660.54), SIMDE_FLOAT32_C( -918.87)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 856.26), SIMDE_FLOAT32_C( 440.55), SIMDE_FLOAT32_C( 793.44), SIMDE_FLOAT32_C( 554.05), SIMDE_FLOAT32_C( 245.74), SIMDE_FLOAT32_C( -1533.82), SIMDE_FLOAT32_C( -27.32), SIMDE_FLOAT32_C( 70.47), SIMDE_FLOAT32_C( 820.89), SIMDE_FLOAT32_C( 855.67), SIMDE_FLOAT32_C( -672.45), SIMDE_FLOAT32_C( -352.90), SIMDE_FLOAT32_C( -775.42), SIMDE_FLOAT32_C( -404.15), SIMDE_FLOAT32_C( -82.80), SIMDE_FLOAT32_C( 1111.80)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -717.43), SIMDE_FLOAT32_C( 307.65), SIMDE_FLOAT32_C( -776.64), SIMDE_FLOAT32_C( 883.24), SIMDE_FLOAT32_C( 462.38), SIMDE_FLOAT32_C( 941.52), SIMDE_FLOAT32_C( 465.21), SIMDE_FLOAT32_C( 772.92), SIMDE_FLOAT32_C( -448.96), SIMDE_FLOAT32_C( 167.95), SIMDE_FLOAT32_C( -770.79), SIMDE_FLOAT32_C( 607.02), SIMDE_FLOAT32_C( 588.25), SIMDE_FLOAT32_C( -430.65), SIMDE_FLOAT32_C( -379.22), SIMDE_FLOAT32_C( 62.66)), UINT16_C(21184), simde_mm512_set_ps(SIMDE_FLOAT32_C( 745.31), SIMDE_FLOAT32_C( 528.47), SIMDE_FLOAT32_C( 260.56), SIMDE_FLOAT32_C( 756.92), SIMDE_FLOAT32_C( -237.78), SIMDE_FLOAT32_C( 890.33), SIMDE_FLOAT32_C( -276.66), SIMDE_FLOAT32_C( -845.25), SIMDE_FLOAT32_C( 73.01), SIMDE_FLOAT32_C( -169.10), SIMDE_FLOAT32_C( -390.26), SIMDE_FLOAT32_C( 55.87), SIMDE_FLOAT32_C( 461.32), SIMDE_FLOAT32_C( -911.03), SIMDE_FLOAT32_C( 362.01), SIMDE_FLOAT32_C( 998.06)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 177.96), SIMDE_FLOAT32_C( -105.40), SIMDE_FLOAT32_C( -516.55), SIMDE_FLOAT32_C( -62.31), SIMDE_FLOAT32_C( -757.68), SIMDE_FLOAT32_C( 665.34), SIMDE_FLOAT32_C( 689.63), SIMDE_FLOAT32_C( 938.32), SIMDE_FLOAT32_C( -408.00), SIMDE_FLOAT32_C( 998.26), SIMDE_FLOAT32_C( -263.70), SIMDE_FLOAT32_C( 807.54), SIMDE_FLOAT32_C( 485.72), SIMDE_FLOAT32_C( -74.68), SIMDE_FLOAT32_C( 725.36), SIMDE_FLOAT32_C( 301.00)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -717.43), SIMDE_FLOAT32_C( 633.87), SIMDE_FLOAT32_C( -776.64), SIMDE_FLOAT32_C( 819.23), SIMDE_FLOAT32_C( 462.38), SIMDE_FLOAT32_C( 941.52), SIMDE_FLOAT32_C( -966.29), SIMDE_FLOAT32_C( 772.92), SIMDE_FLOAT32_C( 481.01), SIMDE_FLOAT32_C( -1167.36), SIMDE_FLOAT32_C( -770.79), SIMDE_FLOAT32_C( 607.02), SIMDE_FLOAT32_C( 588.25), SIMDE_FLOAT32_C( -430.65), SIMDE_FLOAT32_C( -379.22), SIMDE_FLOAT32_C( 62.66)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_mask_sub_ps(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_mask_sub_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512d src; simde__mmask8 k; simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { simde_mm512_set_pd(SIMDE_FLOAT64_C( -621.09), SIMDE_FLOAT64_C( 350.18), SIMDE_FLOAT64_C( 873.40), SIMDE_FLOAT64_C( -136.67), SIMDE_FLOAT64_C( -484.90), SIMDE_FLOAT64_C( 672.37), SIMDE_FLOAT64_C( -983.97), SIMDE_FLOAT64_C( -747.18)), UINT8_C(213), simde_mm512_set_pd(SIMDE_FLOAT64_C( -615.22), SIMDE_FLOAT64_C( 861.93), SIMDE_FLOAT64_C( -99.63), SIMDE_FLOAT64_C( -760.72), SIMDE_FLOAT64_C( 803.54), SIMDE_FLOAT64_C( -811.65), SIMDE_FLOAT64_C( -888.48), SIMDE_FLOAT64_C( 353.19)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 451.54), SIMDE_FLOAT64_C( 490.96), SIMDE_FLOAT64_C( -563.07), SIMDE_FLOAT64_C( -968.95), SIMDE_FLOAT64_C( -964.80), SIMDE_FLOAT64_C( -259.48), SIMDE_FLOAT64_C( -97.31), SIMDE_FLOAT64_C( 696.26)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-1066.76), SIMDE_FLOAT64_C( 370.97), SIMDE_FLOAT64_C( 873.40), SIMDE_FLOAT64_C( 208.23), SIMDE_FLOAT64_C( -484.90), SIMDE_FLOAT64_C( -552.17), SIMDE_FLOAT64_C( -983.97), SIMDE_FLOAT64_C( -343.07)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 956.74), SIMDE_FLOAT64_C( 507.70), SIMDE_FLOAT64_C( 525.25), SIMDE_FLOAT64_C( -653.24), SIMDE_FLOAT64_C( -748.66), SIMDE_FLOAT64_C( 738.72), SIMDE_FLOAT64_C( 584.29), SIMDE_FLOAT64_C( -344.89)), UINT8_C(200), simde_mm512_set_pd(SIMDE_FLOAT64_C( -70.99), SIMDE_FLOAT64_C( -712.48), SIMDE_FLOAT64_C( 721.37), SIMDE_FLOAT64_C( 290.11), SIMDE_FLOAT64_C( 739.65), SIMDE_FLOAT64_C( 378.13), SIMDE_FLOAT64_C( 523.23), SIMDE_FLOAT64_C( 338.41)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -243.21), SIMDE_FLOAT64_C( 71.87), SIMDE_FLOAT64_C( 81.06), SIMDE_FLOAT64_C( 409.05), SIMDE_FLOAT64_C( -595.58), SIMDE_FLOAT64_C( 278.33), SIMDE_FLOAT64_C( -484.02), SIMDE_FLOAT64_C( -861.59)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 172.22), SIMDE_FLOAT64_C( -784.35), SIMDE_FLOAT64_C( 525.25), SIMDE_FLOAT64_C( -653.24), SIMDE_FLOAT64_C( 1335.23), SIMDE_FLOAT64_C( 738.72), SIMDE_FLOAT64_C( 584.29), SIMDE_FLOAT64_C( -344.89)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 475.39), SIMDE_FLOAT64_C( 345.93), SIMDE_FLOAT64_C( 233.76), SIMDE_FLOAT64_C( -401.11), SIMDE_FLOAT64_C( -964.57), SIMDE_FLOAT64_C( 939.13), SIMDE_FLOAT64_C( -392.63), SIMDE_FLOAT64_C( -585.02)), UINT8_C( 75), simde_mm512_set_pd(SIMDE_FLOAT64_C( 496.11), SIMDE_FLOAT64_C( -235.94), SIMDE_FLOAT64_C( -715.35), SIMDE_FLOAT64_C( 338.71), SIMDE_FLOAT64_C( -776.11), SIMDE_FLOAT64_C( 941.96), SIMDE_FLOAT64_C( 76.10), SIMDE_FLOAT64_C( -188.31)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 824.70), SIMDE_FLOAT64_C( -886.45), SIMDE_FLOAT64_C( 497.17), SIMDE_FLOAT64_C( -965.13), SIMDE_FLOAT64_C( -601.99), SIMDE_FLOAT64_C( -657.07), SIMDE_FLOAT64_C( 201.36), SIMDE_FLOAT64_C( -807.98)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 475.39), SIMDE_FLOAT64_C( 650.51), SIMDE_FLOAT64_C( 233.76), SIMDE_FLOAT64_C( -401.11), SIMDE_FLOAT64_C( -174.12), SIMDE_FLOAT64_C( 939.13), SIMDE_FLOAT64_C( -125.26), SIMDE_FLOAT64_C( 619.67)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -246.72), SIMDE_FLOAT64_C( -493.17), SIMDE_FLOAT64_C( -501.93), SIMDE_FLOAT64_C( -95.50), SIMDE_FLOAT64_C( 754.55), SIMDE_FLOAT64_C( -990.48), SIMDE_FLOAT64_C( -396.36), SIMDE_FLOAT64_C( -466.97)), UINT8_C( 69), simde_mm512_set_pd(SIMDE_FLOAT64_C( 601.28), SIMDE_FLOAT64_C( -873.85), SIMDE_FLOAT64_C( -689.96), SIMDE_FLOAT64_C( 31.77), SIMDE_FLOAT64_C( -97.11), SIMDE_FLOAT64_C( 971.94), SIMDE_FLOAT64_C( 389.02), SIMDE_FLOAT64_C( -650.79)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 136.61), SIMDE_FLOAT64_C( 436.94), SIMDE_FLOAT64_C( -777.02), SIMDE_FLOAT64_C( 166.29), SIMDE_FLOAT64_C( -377.75), SIMDE_FLOAT64_C( 71.16), SIMDE_FLOAT64_C( 481.01), SIMDE_FLOAT64_C( -926.81)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -246.72), SIMDE_FLOAT64_C(-1310.79), SIMDE_FLOAT64_C( -501.93), SIMDE_FLOAT64_C( -95.50), SIMDE_FLOAT64_C( 754.55), SIMDE_FLOAT64_C( 900.78), SIMDE_FLOAT64_C( -396.36), SIMDE_FLOAT64_C( 276.02)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -389.46), SIMDE_FLOAT64_C( -8.03), SIMDE_FLOAT64_C( -523.51), SIMDE_FLOAT64_C( 466.89), SIMDE_FLOAT64_C( 698.90), SIMDE_FLOAT64_C( -346.04), SIMDE_FLOAT64_C( -734.67), SIMDE_FLOAT64_C( 404.34)), UINT8_C(100), simde_mm512_set_pd(SIMDE_FLOAT64_C( 989.13), SIMDE_FLOAT64_C( 228.14), SIMDE_FLOAT64_C( 840.94), SIMDE_FLOAT64_C( -718.83), SIMDE_FLOAT64_C( 274.95), SIMDE_FLOAT64_C( -99.21), SIMDE_FLOAT64_C( 84.76), SIMDE_FLOAT64_C( -295.84)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -956.22), SIMDE_FLOAT64_C( 564.94), SIMDE_FLOAT64_C( -97.16), SIMDE_FLOAT64_C( -407.99), SIMDE_FLOAT64_C( 352.62), SIMDE_FLOAT64_C( 244.25), SIMDE_FLOAT64_C( 43.92), SIMDE_FLOAT64_C( 624.69)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -389.46), SIMDE_FLOAT64_C( -336.80), SIMDE_FLOAT64_C( 938.10), SIMDE_FLOAT64_C( 466.89), SIMDE_FLOAT64_C( 698.90), SIMDE_FLOAT64_C( -343.46), SIMDE_FLOAT64_C( -734.67), SIMDE_FLOAT64_C( 404.34)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -571.96), SIMDE_FLOAT64_C( 40.27), SIMDE_FLOAT64_C( 676.69), SIMDE_FLOAT64_C( -150.37), SIMDE_FLOAT64_C( 945.34), SIMDE_FLOAT64_C( 75.83), SIMDE_FLOAT64_C( 64.75), SIMDE_FLOAT64_C( 239.06)), UINT8_C(209), simde_mm512_set_pd(SIMDE_FLOAT64_C( 792.47), SIMDE_FLOAT64_C( -265.19), SIMDE_FLOAT64_C( -768.95), SIMDE_FLOAT64_C( 515.15), SIMDE_FLOAT64_C( 350.59), SIMDE_FLOAT64_C( 422.68), SIMDE_FLOAT64_C( 582.99), SIMDE_FLOAT64_C( -985.50)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 12.38), SIMDE_FLOAT64_C( -71.80), SIMDE_FLOAT64_C( 363.01), SIMDE_FLOAT64_C( -195.65), SIMDE_FLOAT64_C( 967.47), SIMDE_FLOAT64_C( -4.13), SIMDE_FLOAT64_C( -478.81), SIMDE_FLOAT64_C( 909.10)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 780.09), SIMDE_FLOAT64_C( -193.39), SIMDE_FLOAT64_C( 676.69), SIMDE_FLOAT64_C( 710.80), SIMDE_FLOAT64_C( 945.34), SIMDE_FLOAT64_C( 75.83), SIMDE_FLOAT64_C( 64.75), SIMDE_FLOAT64_C(-1894.60)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -879.88), SIMDE_FLOAT64_C( -687.95), SIMDE_FLOAT64_C( -892.89), SIMDE_FLOAT64_C( -642.85), SIMDE_FLOAT64_C( 533.08), SIMDE_FLOAT64_C( 898.29), SIMDE_FLOAT64_C( -29.99), SIMDE_FLOAT64_C( 5.58)), UINT8_C(186), simde_mm512_set_pd(SIMDE_FLOAT64_C( 649.80), SIMDE_FLOAT64_C( -257.91), SIMDE_FLOAT64_C( 356.56), SIMDE_FLOAT64_C( 567.70), SIMDE_FLOAT64_C( -80.43), SIMDE_FLOAT64_C( -499.15), SIMDE_FLOAT64_C( -866.12), SIMDE_FLOAT64_C( 639.40)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 702.45), SIMDE_FLOAT64_C( 464.79), SIMDE_FLOAT64_C( 387.80), SIMDE_FLOAT64_C( -528.10), SIMDE_FLOAT64_C( -409.82), SIMDE_FLOAT64_C( -696.40), SIMDE_FLOAT64_C( 455.43), SIMDE_FLOAT64_C( 856.81)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -52.65), SIMDE_FLOAT64_C( -687.95), SIMDE_FLOAT64_C( -31.24), SIMDE_FLOAT64_C( 1095.80), SIMDE_FLOAT64_C( 329.39), SIMDE_FLOAT64_C( 898.29), SIMDE_FLOAT64_C(-1321.55), SIMDE_FLOAT64_C( 5.58)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -750.95), SIMDE_FLOAT64_C( 203.46), SIMDE_FLOAT64_C( 194.87), SIMDE_FLOAT64_C( 667.81), SIMDE_FLOAT64_C( -258.76), SIMDE_FLOAT64_C( 897.89), SIMDE_FLOAT64_C( 571.10), SIMDE_FLOAT64_C( -320.96)), UINT8_C( 56), simde_mm512_set_pd(SIMDE_FLOAT64_C( -938.69), SIMDE_FLOAT64_C( 74.05), SIMDE_FLOAT64_C( -981.48), SIMDE_FLOAT64_C( -656.78), SIMDE_FLOAT64_C( -794.37), SIMDE_FLOAT64_C( 177.36), SIMDE_FLOAT64_C( 380.50), SIMDE_FLOAT64_C( 812.91)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -10.37), SIMDE_FLOAT64_C( -894.99), SIMDE_FLOAT64_C( -148.09), SIMDE_FLOAT64_C( 314.75), SIMDE_FLOAT64_C( -740.28), SIMDE_FLOAT64_C( -372.00), SIMDE_FLOAT64_C( -357.36), SIMDE_FLOAT64_C( -791.79)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -750.95), SIMDE_FLOAT64_C( 203.46), SIMDE_FLOAT64_C( -833.39), SIMDE_FLOAT64_C( -971.53), SIMDE_FLOAT64_C( -54.09), SIMDE_FLOAT64_C( 897.89), SIMDE_FLOAT64_C( 571.10), SIMDE_FLOAT64_C( -320.96)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_mask_sub_pd(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512d_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_maskz_sub_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask16 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT16_C(42308), simde_mm512_set_epi32(INT32_C( 1724059665), INT32_C(-1181331137), INT32_C( -956878955), INT32_C( 1254662027), INT32_C( -334196329), INT32_C( -462422656), INT32_C( 391895544), INT32_C( 1081692585), INT32_C(-1420053828), INT32_C(-1016697350), INT32_C( 1995028549), INT32_C(-2003231670), INT32_C( 1672190791), INT32_C( 255109958), INT32_C(-2019884289), INT32_C(-1398510440)), simde_mm512_set_epi32(INT32_C( 1758500044), INT32_C( 727344602), INT32_C(-1303831643), INT32_C( 1021495274), INT32_C(-2113209677), INT32_C( 1628670789), INT32_C( 684532718), INT32_C( 1920084108), INT32_C( -516238646), INT32_C( 1525557846), INT32_C( 1058541430), INT32_C( 232836803), INT32_C( 1824295576), INT32_C(-1334166784), INT32_C(-1267999587), INT32_C( 1992895333)), simde_mm512_set_epi32(INT32_C( -34440379), INT32_C( 0), INT32_C( 346952688), INT32_C( 0), INT32_C( 0), INT32_C(-2091093445), INT32_C( 0), INT32_C( -838391523), INT32_C( 0), INT32_C( 1752712100), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 1589276742), INT32_C( 0), INT32_C( 0)) }, { UINT16_C(57112), simde_mm512_set_epi32(INT32_C( 1427084198), INT32_C( 800677318), INT32_C(-1624555826), INT32_C( -189169736), INT32_C( -500462405), INT32_C( 393027187), INT32_C( -215642095), INT32_C( 1795082661), INT32_C(-1120274966), INT32_C( 1416315501), INT32_C( 2071781830), INT32_C( 1981287236), INT32_C( 1895228887), INT32_C( -102536112), INT32_C(-1592734830), INT32_C(-1858725491)), simde_mm512_set_epi32(INT32_C( -450919787), INT32_C( 1299130560), INT32_C( 1762509692), INT32_C( 310818231), INT32_C( -225659966), INT32_C(-1193662266), INT32_C( 959080993), INT32_C( -80526553), INT32_C( -695376176), INT32_C( -26080833), INT32_C( 542712435), INT32_C( 1266358760), INT32_C( 181254235), INT32_C(-2068678559), INT32_C( 1863289430), INT32_C( -269529302)), simde_mm512_set_epi32(INT32_C( 1878003985), INT32_C( -498453242), INT32_C( 0), INT32_C( -499987967), INT32_C( -274802439), INT32_C( 1586689453), INT32_C(-1174723088), INT32_C( 1875609214), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 714928476), INT32_C( 1713974652), INT32_C( 0), INT32_C( 0), INT32_C( 0)) }, { UINT16_C(45985), simde_mm512_set_epi32(INT32_C(-1997599226), INT32_C( 1542236612), INT32_C( 969579913), INT32_C(-1642088433), INT32_C( 579114801), INT32_C(-1194258935), INT32_C(-1422143462), INT32_C( 1748279001), INT32_C(-1953627340), INT32_C( 1674288033), INT32_C( 717963559), INT32_C( 34905906), INT32_C( -149768860), INT32_C( 1400155142), INT32_C( 1757125654), INT32_C(-1787496119)), simde_mm512_set_epi32(INT32_C( 11674598), INT32_C( 1849959427), INT32_C(-1203439394), INT32_C( -261642074), INT32_C(-2062167113), INT32_C( 1504166558), INT32_C( -111161554), INT32_C( -367200138), INT32_C( 1040642836), INT32_C( 378025736), INT32_C( 1031970925), INT32_C(-1474878922), INT32_C(-1560910320), INT32_C( 1296215099), INT32_C(-1595601438), INT32_C( -126839035)), simde_mm512_set_epi32(INT32_C(-2009273824), INT32_C( 0), INT32_C(-2121947989), INT32_C(-1380446359), INT32_C( 0), INT32_C( 0), INT32_C(-1310981908), INT32_C( 2115479139), INT32_C( 1300697120), INT32_C( 0), INT32_C( -314007366), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C(-1660657084)) }, { UINT16_C(21153), simde_mm512_set_epi32(INT32_C( -788633826), INT32_C( 1642420282), INT32_C( 723895008), INT32_C( 207632598), INT32_C(-2079938207), INT32_C( 1754477079), INT32_C( 1798135551), INT32_C( 23449555), INT32_C( -151172429), INT32_C( 677778908), INT32_C( 90905464), INT32_C( 1354586615), INT32_C(-1670436324), INT32_C( -505523122), INT32_C(-1519449460), INT32_C(-1685310582)), simde_mm512_set_epi32(INT32_C( 799456687), INT32_C(-1358763208), INT32_C( 737687311), INT32_C( 1515407453), INT32_C( 439395016), INT32_C( -78627541), INT32_C(-1674155016), INT32_C( 1063201251), INT32_C( -686363587), INT32_C( 742525264), INT32_C( 701319512), INT32_C( 24989685), INT32_C( -301118736), INT32_C( -785334161), INT32_C(-1489992316), INT32_C( 306022421)), simde_mm512_set_epi32(INT32_C( 0), INT32_C(-1293783806), INT32_C( 0), INT32_C(-1307774855), INT32_C( 0), INT32_C( 0), INT32_C( -822676729), INT32_C( 0), INT32_C( 535191158), INT32_C( 0), INT32_C( -610414048), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C(-1991333003)) }, { UINT16_C(12143), simde_mm512_set_epi32(INT32_C( -246629264), INT32_C( 633039851), INT32_C( 1692158737), INT32_C( 1115946871), INT32_C( 309808098), INT32_C( 1170830326), INT32_C( 1350105561), INT32_C(-1022199838), INT32_C( 654046756), INT32_C( 1807741640), INT32_C( 224020334), INT32_C( 1191767429), INT32_C( -990326759), INT32_C( 85294451), INT32_C( -252749112), INT32_C(-1788577569)), simde_mm512_set_epi32(INT32_C( 1174570840), INT32_C( 974062633), INT32_C( 983904988), INT32_C( 1803536893), INT32_C( 1164598462), INT32_C( 1777437641), INT32_C(-1475760323), INT32_C( 1833217111), INT32_C( 2013842885), INT32_C( 720911006), INT32_C(-1253744600), INT32_C( 1820529236), INT32_C( -314819268), INT32_C(-1926268921), INT32_C( 2108913431), INT32_C( 1190393502)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 708253749), INT32_C( 0), INT32_C( -854790364), INT32_C( -606607315), INT32_C(-1469101412), INT32_C( 1439550347), INT32_C( 0), INT32_C( 1086830634), INT32_C( 1477764934), INT32_C( 0), INT32_C( -675507491), INT32_C( 2011563372), INT32_C( 1933304753), INT32_C( 1315996225)) }, { UINT16_C(26005), simde_mm512_set_epi32(INT32_C( 1813548464), INT32_C( -757290941), INT32_C( 1295512986), INT32_C( 1291803276), INT32_C( 2032260868), INT32_C( 316165049), INT32_C( 1037644878), INT32_C(-1728213057), INT32_C( 231750243), INT32_C( 1220512969), INT32_C(-1711918828), INT32_C( 1618345779), INT32_C( 1444876028), INT32_C( 1881924556), INT32_C(-1672732354), INT32_C(-1497726182)), simde_mm512_set_epi32(INT32_C(-2042300804), INT32_C( -199486597), INT32_C( -290224964), INT32_C( -95049939), INT32_C( 242789967), INT32_C(-2042388049), INT32_C(-1526333573), INT32_C( -943172088), INT32_C(-1987449183), INT32_C( -802616226), INT32_C( 743071941), INT32_C( -28537087), INT32_C(-2054489846), INT32_C( 2118922267), INT32_C( 1876700525), INT32_C( 356823736)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( -557804344), INT32_C( 1585737950), INT32_C( 0), INT32_C( 0), INT32_C(-1936414198), INT32_C( 0), INT32_C( -785040969), INT32_C(-2075767870), INT32_C( 0), INT32_C( 0), INT32_C( 1646882866), INT32_C( 0), INT32_C( -236997711), INT32_C( 0), INT32_C(-1854549918)) }, { UINT16_C(22214), simde_mm512_set_epi32(INT32_C( 1255503250), INT32_C( 603134448), INT32_C( 1664652192), INT32_C( -343768171), INT32_C(-1798248429), INT32_C(-1446513257), INT32_C( 127732840), INT32_C(-1651163018), INT32_C( 741467989), INT32_C( 859412594), INT32_C( 472043835), INT32_C( 1771260096), INT32_C(-1144930983), INT32_C( 236371534), INT32_C( 1323254991), INT32_C( 1564105257)), simde_mm512_set_epi32(INT32_C( 438781482), INT32_C( 1278794690), INT32_C(-1026818029), INT32_C( 2082034838), INT32_C( -20030271), INT32_C( -682181759), INT32_C( 1547951192), INT32_C( 690567023), INT32_C( -270117367), INT32_C( -771535010), INT32_C( 916148853), INT32_C( 1687091511), INT32_C( -535908173), INT32_C( -185822843), INT32_C( -711684672), INT32_C( -424619293)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( -675660242), INT32_C( 0), INT32_C( 1869164287), INT32_C( 0), INT32_C( -764331498), INT32_C(-1420218352), INT32_C( 0), INT32_C( 1011585356), INT32_C( 1630947604), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 422194377), INT32_C( 2034939663), INT32_C( 0)) }, { UINT16_C(35591), simde_mm512_set_epi32(INT32_C( 1513047065), INT32_C( -104652818), INT32_C( 1564491564), INT32_C( -98950215), INT32_C( 631827200), INT32_C( 1322294700), INT32_C( 436005702), INT32_C( 1825722103), INT32_C( 2013933934), INT32_C( -532774987), INT32_C( 1616518393), INT32_C( 803856137), INT32_C(-1663534883), INT32_C(-2021437227), INT32_C(-1476004613), INT32_C( -899510926)), simde_mm512_set_epi32(INT32_C( -910624932), INT32_C( 209536966), INT32_C(-1923748050), INT32_C(-1520303619), INT32_C( -387141989), INT32_C( 959069600), INT32_C( 1208361371), INT32_C(-1838273096), INT32_C(-1330134815), INT32_C( 126713528), INT32_C( -150313435), INT32_C(-1972942202), INT32_C( 1666269875), INT32_C(-1750237431), INT32_C( 950405946), INT32_C( -725753907)), simde_mm512_set_epi32(INT32_C(-1871295299), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 1018969189), INT32_C( 0), INT32_C( -772355669), INT32_C( -630972097), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( -271199796), INT32_C( 1868556737), INT32_C( -173757019)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_sub_epi32(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i32(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_maskz_sub_epi64(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT8_C( 68), simde_mm512_set_epi64(INT64_C(-5073778595823407211), INT64_C( 5388732377458839959), INT64_C(-1986090184057562632), INT64_C( 4645834279775613628), INT64_C(-4366681866184837051), INT64_C(-8603814507289273529), INT64_C( 1095688928769016575), INT64_C(-6006556600469720682)), simde_mm512_set_epi64(INT64_C( 3123921281503271845), INT64_C( 4387288797030316723), INT64_C( 6995087775390049262), INT64_C( 8246698453208060618), INT64_C( 6552221057784745846), INT64_C( 1000026456014490264), INT64_C(-5730202701662528355), INT64_C( 8559420281310089233)), simde_mm512_set_epi64(INT64_C( 0), INT64_C( 1001443580428523236), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 8842903110405787823), INT64_C( 0), INT64_C( 0)) }, { UINT8_C(204), simde_mm512_set_epi64(INT64_C(-6977414139090468936), INT64_C(-2149469661959479693), INT64_C( -926175743870842459), INT64_C(-4811544340081196435), INT64_C( 8898235206278318916), INT64_C( 8139946092291910736), INT64_C(-6840744003613877875), INT64_C( 6930156028979502872)), simde_mm512_set_epi64(INT64_C( 7569921486333851063), INT64_C( -969202170885166906), INT64_C( 4119221503364645671), INT64_C(-2986617930068653633), INT64_C( 2330932160723884520), INT64_C( 778481013812787297), INT64_C( 8002767168857919274), INT64_C( 6129279959849065926)), simde_mm512_set_epi64(INT64_C( 3899408448285231617), INT64_C(-1180267491074312787), INT64_C( 0), INT64_C( 0), INT64_C( 6567303045554434396), INT64_C( 7361465078479123439), INT64_C( 0), INT64_C( 0)) }, { UINT8_C(192), simde_mm512_set_epi64(INT64_C(-7052716116295772367), INT64_C(-5129303065907965926), INT64_C( 7508801135919891252), INT64_C( 7191012346537132327), INT64_C( 149919728852448612), INT64_C( 6013620545973361686), INT64_C(-7677237369544501225), INT64_C(-4708878852454120811)), simde_mm512_set_epi64(INT64_C(-1123744148854811721), INT64_C( 6460346178530692910), INT64_C(-1577112582756044012), INT64_C( 1623608174198300781), INT64_C(-6334556732815677936), INT64_C( 5567201461485768162), INT64_C( -544769504883831290), INT64_C( 6623855812203421065)), simde_mm512_set_epi64(INT64_C(-5928971967440960646), INT64_C( 6857094829270892780), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0)) }, { UINT8_C(222), simde_mm512_set_epi64(INT64_C(-8933266575011401193), INT64_C( 7722933385343389651), INT64_C( -649280637934103076), INT64_C( 390435996262291959), INT64_C(-7174469377841015730), INT64_C(-6525985736015203446), INT64_C( 8306044009918255777), INT64_C( 50142018453906435)), simde_mm512_set_epi64(INT64_C( 1887187227961736491), INT64_C(-7190441041091155485), INT64_C(-2947909158587725488), INT64_C( 3012144368111669237), INT64_C(-1293295119823224721), INT64_C(-6399468268205275115), INT64_C(-3387156489546934214), INT64_C( 3109105385305290966)), simde_mm512_set_epi64(INT64_C( 7626290270736413932), INT64_C(-3533369647275006480), INT64_C( 0), INT64_C(-2621708371849377278), INT64_C(-5881174258017791009), INT64_C( -126517467809928331), INT64_C(-6753543574244361625), INT64_C( 0)) }, { UINT8_C( 93), simde_mm512_set_epi64(INT64_C( 5028677960685124057), INT64_C(-4390314873532451292), INT64_C( 7764191223641425774), INT64_C( 5118602135297642521), INT64_C( 366336881617492680), INT64_C(-7681882161808553379), INT64_C( 1609244596442152367), INT64_C(-5835843540630358257)), simde_mm512_set_epi64(INT64_C( 7634036541593595709), INT64_C( 7873607540226444741), INT64_C( 3096289197137682472), INT64_C( 7819113534012013884), INT64_C(-8273262016887294185), INT64_C( 5112701164509248624), INT64_C( 2718885458801871633), INT64_C( 4792955315328338914)), simde_mm512_set_epi64(INT64_C( 0), INT64_C( 6182821659950655583), INT64_C( 0), INT64_C(-2700511398714371363), INT64_C( 8639598898504786865), INT64_C( 5652160747391749613), INT64_C( 0), INT64_C( 7817945217750854445)) }, { UINT8_C(190), simde_mm512_set_epi64(INT64_C( 4456650818438664127), INT64_C( 995359715745565897), INT64_C(-7352635378048303309), INT64_C( 6205695288916304844), INT64_C(-7184330752593853670), INT64_C( 997194843856987541), INT64_C( 5044743345609311273), INT64_C( 4225839747634809341)), simde_mm512_set_epi64(INT64_C(-6555552775470033400), INT64_C(-8536029239954568098), INT64_C( 3191469689436671745), INT64_C(-8823966696415154149), INT64_C( 8060367379617854136), INT64_C( 7789131346128709699), INT64_C( 5564185907705109132), INT64_C( 8728493965316737977)), simde_mm512_set_epi64(INT64_C(-7434540479800854089), INT64_C( 0), INT64_C( 7902639006224576562), INT64_C(-3417082088378092623), INT64_C( 3202045941497843810), INT64_C(-6791936502271722158), INT64_C( -519442562095797859), INT64_C( 0)) }, { UINT8_C(175), simde_mm512_set_epi64(INT64_C(-7091691161933191339), INT64_C( 3691148985472569659), INT64_C( 7607504188179856729), INT64_C( 1015208009558607055), INT64_C( 6717780929629073882), INT64_C( 2140431133564008060), INT64_C( -856788406100589380), INT64_C( -408236379249004977)), simde_mm512_set_epi64(INT64_C( 2965962783505929737), INT64_C(-3313717634752884107), INT64_C( 7246002868863283379), INT64_C( -798103029951459904), INT64_C(-1823725975430138478), INT64_C( 2590442730915664800), INT64_C(-1476473049354016749), INT64_C(-6212727131917710232)), simde_mm512_set_epi64(INT64_C( 8389090128270430540), INT64_C( 0), INT64_C( 361501319316573350), INT64_C( 0), INT64_C( 8541506905059212360), INT64_C( -450011597351656740), INT64_C( 619684643253427369), INT64_C( 5804490752668705255)) }, { UINT8_C( 88), simde_mm512_set_epi64(INT64_C( 8649780386596814773), INT64_C( 6942893632121331465), INT64_C(-7144827915966656299), INT64_C(-6339391538184680078), INT64_C( 7515152281876400903), INT64_C( 1884552116559207362), INT64_C(-4410149851416144746), INT64_C( -86029355262231679)), simde_mm512_set_epi64(INT64_C(-5712885529569296712), INT64_C( -645591285152396666), INT64_C( 7156574621979737865), INT64_C( 4081962459563155405), INT64_C( 6498487665674100718), INT64_C( 6719440106443908025), INT64_C( 2713677162045545900), INT64_C( 1872630232785243895)), simde_mm512_set_epi64(INT64_C( 0), INT64_C( 7588484917273728131), INT64_C( 0), INT64_C( 8025390075961716133), INT64_C( 1016664616202300185), INT64_C( 0), INT64_C( 0), INT64_C( 0)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_sub_epi64(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512i_i64(r, ==, test_vec[i].r); } return 0; } static int test_simde_mm512_maskz_sub_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask16 k; simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { UINT16_C(26074), simde_mm512_set_ps(SIMDE_FLOAT32_C( -524.33), SIMDE_FLOAT32_C( -241.59), SIMDE_FLOAT32_C( -105.89), SIMDE_FLOAT32_C( -289.61), SIMDE_FLOAT32_C( -891.58), SIMDE_FLOAT32_C( 378.73), SIMDE_FLOAT32_C( -71.99), SIMDE_FLOAT32_C( 449.90), SIMDE_FLOAT32_C( -415.75), SIMDE_FLOAT32_C( 784.67), SIMDE_FLOAT32_C( -496.30), SIMDE_FLOAT32_C( 526.56), SIMDE_FLOAT32_C( 67.17), SIMDE_FLOAT32_C( -881.21), SIMDE_FLOAT32_C( 348.77), SIMDE_FLOAT32_C( 537.04)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 392.86), SIMDE_FLOAT32_C( 15.96), SIMDE_FLOAT32_C( -681.24), SIMDE_FLOAT32_C( 759.61), SIMDE_FLOAT32_C( -507.08), SIMDE_FLOAT32_C( -150.50), SIMDE_FLOAT32_C( 409.54), SIMDE_FLOAT32_C( -197.17), SIMDE_FLOAT32_C( 554.42), SIMDE_FLOAT32_C( 844.38), SIMDE_FLOAT32_C( -817.51), SIMDE_FLOAT32_C( 338.74), SIMDE_FLOAT32_C( -70.99), SIMDE_FLOAT32_C( -221.33), SIMDE_FLOAT32_C( 59.42), SIMDE_FLOAT32_C( 138.47)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -257.55), SIMDE_FLOAT32_C( 575.35), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 529.23), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 647.07), SIMDE_FLOAT32_C( -970.17), SIMDE_FLOAT32_C( -59.71), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 187.82), SIMDE_FLOAT32_C( 138.16), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 289.35), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(10432), simde_mm512_set_ps(SIMDE_FLOAT32_C( -855.26), SIMDE_FLOAT32_C( 444.16), SIMDE_FLOAT32_C( 962.50), SIMDE_FLOAT32_C( 987.86), SIMDE_FLOAT32_C( -410.31), SIMDE_FLOAT32_C( 36.70), SIMDE_FLOAT32_C( 874.49), SIMDE_FLOAT32_C( -627.16), SIMDE_FLOAT32_C( 911.91), SIMDE_FLOAT32_C( -816.98), SIMDE_FLOAT32_C( -164.10), SIMDE_FLOAT32_C( -340.48), SIMDE_FLOAT32_C( -77.39), SIMDE_FLOAT32_C( 952.25), SIMDE_FLOAT32_C( 134.46), SIMDE_FLOAT32_C( 698.09)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -179.27), SIMDE_FLOAT32_C( 894.92), SIMDE_FLOAT32_C( -553.39), SIMDE_FLOAT32_C( 676.19), SIMDE_FLOAT32_C( -747.28), SIMDE_FLOAT32_C( -915.60), SIMDE_FLOAT32_C( -132.34), SIMDE_FLOAT32_C( -335.46), SIMDE_FLOAT32_C( 243.51), SIMDE_FLOAT32_C( 766.95), SIMDE_FLOAT32_C( 899.58), SIMDE_FLOAT32_C( 478.33), SIMDE_FLOAT32_C( -35.25), SIMDE_FLOAT32_C( -117.47), SIMDE_FLOAT32_C( 258.33), SIMDE_FLOAT32_C( -248.63)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 1515.89), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 336.97), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 668.40), SIMDE_FLOAT32_C( -1583.93), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C( 9219), simde_mm512_set_ps(SIMDE_FLOAT32_C( 878.16), SIMDE_FLOAT32_C( -299.57), SIMDE_FLOAT32_C( 829.01), SIMDE_FLOAT32_C( -823.97), SIMDE_FLOAT32_C( 313.21), SIMDE_FLOAT32_C( -396.40), SIMDE_FLOAT32_C( 940.94), SIMDE_FLOAT32_C( -281.84), SIMDE_FLOAT32_C( 235.34), SIMDE_FLOAT32_C( 443.88), SIMDE_FLOAT32_C( -185.89), SIMDE_FLOAT32_C( -220.35), SIMDE_FLOAT32_C( -983.75), SIMDE_FLOAT32_C( -348.00), SIMDE_FLOAT32_C( 167.63), SIMDE_FLOAT32_C( 489.46)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 439.60), SIMDE_FLOAT32_C( 39.73), SIMDE_FLOAT32_C( 948.24), SIMDE_FLOAT32_C( -515.41), SIMDE_FLOAT32_C( -519.45), SIMDE_FLOAT32_C( 273.14), SIMDE_FLOAT32_C( 256.99), SIMDE_FLOAT32_C( 69.80), SIMDE_FLOAT32_C( -548.50), SIMDE_FLOAT32_C( -730.33), SIMDE_FLOAT32_C( 337.76), SIMDE_FLOAT32_C( 90.27), SIMDE_FLOAT32_C( -665.67), SIMDE_FLOAT32_C( 930.26), SIMDE_FLOAT32_C( -181.77), SIMDE_FLOAT32_C( 530.83)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -119.23), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -669.54), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 349.40), SIMDE_FLOAT32_C( -41.37)) }, { UINT16_C(60216), simde_mm512_set_ps(SIMDE_FLOAT32_C( -294.33), SIMDE_FLOAT32_C( 963.39), SIMDE_FLOAT32_C( -504.91), SIMDE_FLOAT32_C( -654.23), SIMDE_FLOAT32_C( -988.36), SIMDE_FLOAT32_C( 634.30), SIMDE_FLOAT32_C( -857.50), SIMDE_FLOAT32_C( -235.19), SIMDE_FLOAT32_C( -903.31), SIMDE_FLOAT32_C( -183.01), SIMDE_FLOAT32_C( -989.08), SIMDE_FLOAT32_C( -684.38), SIMDE_FLOAT32_C( -369.22), SIMDE_FLOAT32_C( 764.60), SIMDE_FLOAT32_C( 215.22), SIMDE_FLOAT32_C( -906.73)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -656.49), SIMDE_FLOAT32_C( -795.39), SIMDE_FLOAT32_C( 220.41), SIMDE_FLOAT32_C( 680.39), SIMDE_FLOAT32_C( -673.42), SIMDE_FLOAT32_C( 859.78), SIMDE_FLOAT32_C( 306.17), SIMDE_FLOAT32_C( 632.76), SIMDE_FLOAT32_C( -662.91), SIMDE_FLOAT32_C( 31.45), SIMDE_FLOAT32_C( -162.68), SIMDE_FLOAT32_C( 929.60), SIMDE_FLOAT32_C( -957.67), SIMDE_FLOAT32_C( 222.14), SIMDE_FLOAT32_C( 292.45), SIMDE_FLOAT32_C( -99.46)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 362.16), SIMDE_FLOAT32_C( 1758.78), SIMDE_FLOAT32_C( -725.32), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -314.94), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -1163.67), SIMDE_FLOAT32_C( -867.95), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -826.40), SIMDE_FLOAT32_C( -1613.98), SIMDE_FLOAT32_C( 588.45), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C( 1065), simde_mm512_set_ps(SIMDE_FLOAT32_C( -160.16), SIMDE_FLOAT32_C( -172.32), SIMDE_FLOAT32_C( -146.34), SIMDE_FLOAT32_C( -664.30), SIMDE_FLOAT32_C( -152.25), SIMDE_FLOAT32_C( 103.01), SIMDE_FLOAT32_C( -445.68), SIMDE_FLOAT32_C( -705.22), SIMDE_FLOAT32_C( -480.35), SIMDE_FLOAT32_C( -454.79), SIMDE_FLOAT32_C( 524.00), SIMDE_FLOAT32_C( -158.20), SIMDE_FLOAT32_C( -445.04), SIMDE_FLOAT32_C( -960.28), SIMDE_FLOAT32_C( 167.13), SIMDE_FLOAT32_C( -825.53)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -541.83), SIMDE_FLOAT32_C( -457.69), SIMDE_FLOAT32_C( 312.80), SIMDE_FLOAT32_C( -62.23), SIMDE_FLOAT32_C( 416.18), SIMDE_FLOAT32_C( 853.40), SIMDE_FLOAT32_C( -17.96), SIMDE_FLOAT32_C( 885.15), SIMDE_FLOAT32_C( -212.03), SIMDE_FLOAT32_C( -855.73), SIMDE_FLOAT32_C( -371.31), SIMDE_FLOAT32_C( -695.44), SIMDE_FLOAT32_C( -895.68), SIMDE_FLOAT32_C( 538.84), SIMDE_FLOAT32_C( 882.30), SIMDE_FLOAT32_C( 585.87)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -750.39), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 895.31), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 450.64), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -1411.40)) }, { UINT16_C( 4987), simde_mm512_set_ps(SIMDE_FLOAT32_C( 955.74), SIMDE_FLOAT32_C( 48.94), SIMDE_FLOAT32_C( 560.80), SIMDE_FLOAT32_C( 626.25), SIMDE_FLOAT32_C( 986.71), SIMDE_FLOAT32_C( -13.30), SIMDE_FLOAT32_C( -833.84), SIMDE_FLOAT32_C( 647.36), SIMDE_FLOAT32_C( -398.46), SIMDE_FLOAT32_C( -852.77), SIMDE_FLOAT32_C( 195.24), SIMDE_FLOAT32_C( -431.65), SIMDE_FLOAT32_C( -246.40), SIMDE_FLOAT32_C( -123.66), SIMDE_FLOAT32_C( 302.57), SIMDE_FLOAT32_C( -312.92)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 864.85), SIMDE_FLOAT32_C( -886.94), SIMDE_FLOAT32_C( 289.25), SIMDE_FLOAT32_C( 74.52), SIMDE_FLOAT32_C( -653.98), SIMDE_FLOAT32_C( 43.30), SIMDE_FLOAT32_C( -126.09), SIMDE_FLOAT32_C( -155.50), SIMDE_FLOAT32_C( -396.73), SIMDE_FLOAT32_C( -53.65), SIMDE_FLOAT32_C( -516.81), SIMDE_FLOAT32_C( -892.08), SIMDE_FLOAT32_C( 202.83), SIMDE_FLOAT32_C( -327.18), SIMDE_FLOAT32_C( 221.07), SIMDE_FLOAT32_C( -891.88)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 551.73), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -707.75), SIMDE_FLOAT32_C( 802.86), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -799.12), SIMDE_FLOAT32_C( 712.05), SIMDE_FLOAT32_C( 460.43), SIMDE_FLOAT32_C( -449.23), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 81.50), SIMDE_FLOAT32_C( 578.96)) }, { UINT16_C(56258), simde_mm512_set_ps(SIMDE_FLOAT32_C( -30.48), SIMDE_FLOAT32_C( 682.33), SIMDE_FLOAT32_C( -678.43), SIMDE_FLOAT32_C( 640.73), SIMDE_FLOAT32_C( -214.39), SIMDE_FLOAT32_C( 913.47), SIMDE_FLOAT32_C( 802.27), SIMDE_FLOAT32_C( -719.14), SIMDE_FLOAT32_C( 839.92), SIMDE_FLOAT32_C( 326.41), SIMDE_FLOAT32_C( 231.12), SIMDE_FLOAT32_C( -599.80), SIMDE_FLOAT32_C( -175.19), SIMDE_FLOAT32_C( -889.93), SIMDE_FLOAT32_C( -271.66), SIMDE_FLOAT32_C( -767.93)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 521.85), SIMDE_FLOAT32_C( 990.67), SIMDE_FLOAT32_C( -279.18), SIMDE_FLOAT32_C( 874.22), SIMDE_FLOAT32_C( -573.38), SIMDE_FLOAT32_C( 750.45), SIMDE_FLOAT32_C( 668.60), SIMDE_FLOAT32_C( -415.36), SIMDE_FLOAT32_C( -224.84), SIMDE_FLOAT32_C( 162.63), SIMDE_FLOAT32_C( -940.52), SIMDE_FLOAT32_C( -654.73), SIMDE_FLOAT32_C( -780.19), SIMDE_FLOAT32_C( 466.85), SIMDE_FLOAT32_C( -383.81), SIMDE_FLOAT32_C( 542.46)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -552.33), SIMDE_FLOAT32_C( -308.34), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -233.49), SIMDE_FLOAT32_C( 358.99), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 133.67), SIMDE_FLOAT32_C( -303.78), SIMDE_FLOAT32_C( 1064.76), SIMDE_FLOAT32_C( 163.78), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 112.15), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(18374), simde_mm512_set_ps(SIMDE_FLOAT32_C( 292.05), SIMDE_FLOAT32_C( -553.40), SIMDE_FLOAT32_C( 143.99), SIMDE_FLOAT32_C( -940.99), SIMDE_FLOAT32_C( 81.28), SIMDE_FLOAT32_C( 184.98), SIMDE_FLOAT32_C( 662.04), SIMDE_FLOAT32_C( 951.27), SIMDE_FLOAT32_C( 953.92), SIMDE_FLOAT32_C( -384.26), SIMDE_FLOAT32_C( -149.83), SIMDE_FLOAT32_C( 751.91), SIMDE_FLOAT32_C( -625.68), SIMDE_FLOAT32_C( 58.69), SIMDE_FLOAT32_C( 581.13), SIMDE_FLOAT32_C( 892.26)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 104.19), SIMDE_FLOAT32_C( 819.72), SIMDE_FLOAT32_C( -437.31), SIMDE_FLOAT32_C( 380.61), SIMDE_FLOAT32_C( 930.00), SIMDE_FLOAT32_C( -224.08), SIMDE_FLOAT32_C( -557.43), SIMDE_FLOAT32_C( -295.43), SIMDE_FLOAT32_C( -271.48), SIMDE_FLOAT32_C( -705.78), SIMDE_FLOAT32_C( -796.97), SIMDE_FLOAT32_C( -62.19), SIMDE_FLOAT32_C( -247.25), SIMDE_FLOAT32_C( 225.36), SIMDE_FLOAT32_C( 312.68), SIMDE_FLOAT32_C( -185.21)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -1373.12), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 409.06), SIMDE_FLOAT32_C( 1219.47), SIMDE_FLOAT32_C( 1246.70), SIMDE_FLOAT32_C( 1225.40), SIMDE_FLOAT32_C( 321.52), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -166.67), SIMDE_FLOAT32_C( 268.45), SIMDE_FLOAT32_C( 0.00)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_maskz_sub_ps(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512_close(r, test_vec[i].r, 1); } return 0; } static int test_simde_mm512_maskz_sub_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { UINT8_C( 63), simde_mm512_set_pd(SIMDE_FLOAT64_C( -415.75), SIMDE_FLOAT64_C( 784.67), SIMDE_FLOAT64_C( -496.30), SIMDE_FLOAT64_C( 526.56), SIMDE_FLOAT64_C( 67.17), SIMDE_FLOAT64_C( -881.21), SIMDE_FLOAT64_C( 348.77), SIMDE_FLOAT64_C( 537.04)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 554.42), SIMDE_FLOAT64_C( 844.38), SIMDE_FLOAT64_C( -817.51), SIMDE_FLOAT64_C( 338.74), SIMDE_FLOAT64_C( -70.99), SIMDE_FLOAT64_C( -221.33), SIMDE_FLOAT64_C( 59.42), SIMDE_FLOAT64_C( 138.47)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 321.21), SIMDE_FLOAT64_C( 187.82), SIMDE_FLOAT64_C( 138.16), SIMDE_FLOAT64_C( -659.88), SIMDE_FLOAT64_C( 289.35), SIMDE_FLOAT64_C( 398.57)) }, { UINT8_C(204), simde_mm512_set_pd(SIMDE_FLOAT64_C( 392.86), SIMDE_FLOAT64_C( 15.96), SIMDE_FLOAT64_C( -681.24), SIMDE_FLOAT64_C( 759.61), SIMDE_FLOAT64_C( -507.08), SIMDE_FLOAT64_C( -150.50), SIMDE_FLOAT64_C( 409.54), SIMDE_FLOAT64_C( -197.17)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -661.30), SIMDE_FLOAT64_C( -524.33), SIMDE_FLOAT64_C( -241.59), SIMDE_FLOAT64_C( -105.89), SIMDE_FLOAT64_C( -289.61), SIMDE_FLOAT64_C( -891.58), SIMDE_FLOAT64_C( 378.73), SIMDE_FLOAT64_C( -71.99)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 1054.16), SIMDE_FLOAT64_C( 540.29), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -217.47), SIMDE_FLOAT64_C( 741.08), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(198), simde_mm512_set_pd(SIMDE_FLOAT64_C( 911.91), SIMDE_FLOAT64_C( -816.98), SIMDE_FLOAT64_C( -164.10), SIMDE_FLOAT64_C( -340.48), SIMDE_FLOAT64_C( -77.39), SIMDE_FLOAT64_C( 952.25), SIMDE_FLOAT64_C( 134.46), SIMDE_FLOAT64_C( 698.09)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 243.51), SIMDE_FLOAT64_C( 766.95), SIMDE_FLOAT64_C( 899.58), SIMDE_FLOAT64_C( 478.33), SIMDE_FLOAT64_C( -35.25), SIMDE_FLOAT64_C( -117.47), SIMDE_FLOAT64_C( 258.33), SIMDE_FLOAT64_C( -248.63)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 668.40), SIMDE_FLOAT64_C(-1583.93), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 1069.72), SIMDE_FLOAT64_C( -123.87), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(149), simde_mm512_set_pd(SIMDE_FLOAT64_C( -179.27), SIMDE_FLOAT64_C( 894.92), SIMDE_FLOAT64_C( -553.39), SIMDE_FLOAT64_C( 676.19), SIMDE_FLOAT64_C( -747.28), SIMDE_FLOAT64_C( -915.60), SIMDE_FLOAT64_C( -132.34), SIMDE_FLOAT64_C( -335.46)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -395.05), SIMDE_FLOAT64_C( -855.26), SIMDE_FLOAT64_C( 444.16), SIMDE_FLOAT64_C( 962.50), SIMDE_FLOAT64_C( 987.86), SIMDE_FLOAT64_C( -410.31), SIMDE_FLOAT64_C( 36.70), SIMDE_FLOAT64_C( 874.49)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 215.78), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -286.31), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -505.29), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-1209.95)) }, { UINT8_C(196), simde_mm512_set_pd(SIMDE_FLOAT64_C( 235.34), SIMDE_FLOAT64_C( 443.88), SIMDE_FLOAT64_C( -185.89), SIMDE_FLOAT64_C( -220.35), SIMDE_FLOAT64_C( -983.75), SIMDE_FLOAT64_C( -348.00), SIMDE_FLOAT64_C( 167.63), SIMDE_FLOAT64_C( 489.46)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -548.50), SIMDE_FLOAT64_C( -730.33), SIMDE_FLOAT64_C( 337.76), SIMDE_FLOAT64_C( 90.27), SIMDE_FLOAT64_C( -665.67), SIMDE_FLOAT64_C( 930.26), SIMDE_FLOAT64_C( -181.77), SIMDE_FLOAT64_C( 530.83)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 783.84), SIMDE_FLOAT64_C( 1174.21), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C(-1278.26), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(230), simde_mm512_set_pd(SIMDE_FLOAT64_C( 439.60), SIMDE_FLOAT64_C( 39.73), SIMDE_FLOAT64_C( 948.24), SIMDE_FLOAT64_C( -515.41), SIMDE_FLOAT64_C( -519.45), SIMDE_FLOAT64_C( 273.14), SIMDE_FLOAT64_C( 256.99), SIMDE_FLOAT64_C( 69.80)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -138.55), SIMDE_FLOAT64_C( 878.16), SIMDE_FLOAT64_C( -299.57), SIMDE_FLOAT64_C( 829.01), SIMDE_FLOAT64_C( -823.97), SIMDE_FLOAT64_C( 313.21), SIMDE_FLOAT64_C( -396.40), SIMDE_FLOAT64_C( 940.94)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 578.15), SIMDE_FLOAT64_C( -838.43), SIMDE_FLOAT64_C( 1247.81), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -40.07), SIMDE_FLOAT64_C( 653.39), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C( 58), simde_mm512_set_pd(SIMDE_FLOAT64_C( -903.31), SIMDE_FLOAT64_C( -183.01), SIMDE_FLOAT64_C( -989.08), SIMDE_FLOAT64_C( -684.38), SIMDE_FLOAT64_C( -369.22), SIMDE_FLOAT64_C( 764.60), SIMDE_FLOAT64_C( 215.22), SIMDE_FLOAT64_C( -906.73)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -662.91), SIMDE_FLOAT64_C( 31.45), SIMDE_FLOAT64_C( -162.68), SIMDE_FLOAT64_C( 929.60), SIMDE_FLOAT64_C( -957.67), SIMDE_FLOAT64_C( 222.14), SIMDE_FLOAT64_C( 292.45), SIMDE_FLOAT64_C( -99.46)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -826.40), SIMDE_FLOAT64_C(-1613.98), SIMDE_FLOAT64_C( 588.45), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -77.23), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(175), simde_mm512_set_pd(SIMDE_FLOAT64_C( -656.49), SIMDE_FLOAT64_C( -795.39), SIMDE_FLOAT64_C( 220.41), SIMDE_FLOAT64_C( 680.39), SIMDE_FLOAT64_C( -673.42), SIMDE_FLOAT64_C( 859.78), SIMDE_FLOAT64_C( 306.17), SIMDE_FLOAT64_C( 632.76)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 367.28), SIMDE_FLOAT64_C( -294.33), SIMDE_FLOAT64_C( 963.39), SIMDE_FLOAT64_C( -504.91), SIMDE_FLOAT64_C( -654.23), SIMDE_FLOAT64_C( -988.36), SIMDE_FLOAT64_C( 634.30), SIMDE_FLOAT64_C( -857.50)), simde_mm512_set_pd(SIMDE_FLOAT64_C(-1023.77), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -742.98), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -19.19), SIMDE_FLOAT64_C( 1848.14), SIMDE_FLOAT64_C( -328.13), SIMDE_FLOAT64_C( 1490.26)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_maskz_sub_pd(test_vec[i].k, test_vec[i].a, test_vec[i].b); simde_assert_m512d_close(r, test_vec[i].r, 1); } return 0; } SIMDE_TEST_FUNC_LIST_BEGIN SIMDE_TEST_FUNC_LIST_ENTRY(mm512_sub_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_sub_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_sub_epi8) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_sub_epi16) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_sub_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_sub_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_sub_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_sub_epi64) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_sub_epi64) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_sub_epi64) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_sub_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_sub_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_sub_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_sub_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_sub_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_sub_pd) SIMDE_TEST_FUNC_LIST_END #include