/* 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 and #include #include #include static int test_simde_mm512_and_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( 260.00), SIMDE_FLOAT32_C( 472.07), SIMDE_FLOAT32_C( 343.37), SIMDE_FLOAT32_C( 668.63), SIMDE_FLOAT32_C( 74.64), SIMDE_FLOAT32_C( -166.33), SIMDE_FLOAT32_C( 962.01), SIMDE_FLOAT32_C( 120.25), SIMDE_FLOAT32_C( -633.54), SIMDE_FLOAT32_C( -160.44), SIMDE_FLOAT32_C( -754.35), SIMDE_FLOAT32_C( 920.06), SIMDE_FLOAT32_C( -752.65), SIMDE_FLOAT32_C( -15.27), SIMDE_FLOAT32_C( 736.97), SIMDE_FLOAT32_C( 591.25)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 968.14), SIMDE_FLOAT32_C( 728.35), SIMDE_FLOAT32_C( -574.47), SIMDE_FLOAT32_C( 770.03), SIMDE_FLOAT32_C( -456.43), SIMDE_FLOAT32_C( 727.04), SIMDE_FLOAT32_C( -89.84), SIMDE_FLOAT32_C( 288.08), SIMDE_FLOAT32_C( -720.94), SIMDE_FLOAT32_C( -964.02), SIMDE_FLOAT32_C( 974.54), SIMDE_FLOAT32_C( -246.99), SIMDE_FLOAT32_C( -603.24), SIMDE_FLOAT32_C( -592.85), SIMDE_FLOAT32_C( -351.71), SIMDE_FLOAT32_C( 472.50)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 2.03), SIMDE_FLOAT32_C( 2.56), SIMDE_FLOAT32_C( 2.18), SIMDE_FLOAT32_C( 512.00), SIMDE_FLOAT32_C( 66.01), SIMDE_FLOAT32_C( 2.57), SIMDE_FLOAT32_C( 2.76), SIMDE_FLOAT32_C( 72.00), SIMDE_FLOAT32_C( -592.50), SIMDE_FLOAT32_C( -2.50), SIMDE_FLOAT32_C( 706.03), SIMDE_FLOAT32_C( 3.59), SIMDE_FLOAT32_C( -592.14), SIMDE_FLOAT32_C( -2.31), SIMDE_FLOAT32_C( 2.63), SIMDE_FLOAT32_C( 2.00)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -440.60), SIMDE_FLOAT32_C( 215.95), SIMDE_FLOAT32_C( -449.65), SIMDE_FLOAT32_C( 426.70), SIMDE_FLOAT32_C( 107.08), SIMDE_FLOAT32_C( -345.64), SIMDE_FLOAT32_C( 226.40), SIMDE_FLOAT32_C( 712.58), SIMDE_FLOAT32_C( -396.23), SIMDE_FLOAT32_C( -256.01), SIMDE_FLOAT32_C( 622.69), SIMDE_FLOAT32_C( -188.83), SIMDE_FLOAT32_C( 358.20), SIMDE_FLOAT32_C( -542.16), SIMDE_FLOAT32_C( 982.13), SIMDE_FLOAT32_C( 702.83)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 347.10), SIMDE_FLOAT32_C( -175.94), SIMDE_FLOAT32_C( 817.30), SIMDE_FLOAT32_C( -721.72), SIMDE_FLOAT32_C( 775.39), SIMDE_FLOAT32_C( -218.71), SIMDE_FLOAT32_C( 919.20), SIMDE_FLOAT32_C( -300.97), SIMDE_FLOAT32_C( 919.48), SIMDE_FLOAT32_C( -61.84), SIMDE_FLOAT32_C( 121.47), SIMDE_FLOAT32_C( 499.98), SIMDE_FLOAT32_C( 538.40), SIMDE_FLOAT32_C( -622.49), SIMDE_FLOAT32_C( -852.24), SIMDE_FLOAT32_C( 445.35)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 280.10), SIMDE_FLOAT32_C( 135.94), SIMDE_FLOAT32_C( 3.01), SIMDE_FLOAT32_C( 2.32), SIMDE_FLOAT32_C( 3.00), SIMDE_FLOAT32_C( -136.57), SIMDE_FLOAT32_C( 3.50), SIMDE_FLOAT32_C( 2.28), SIMDE_FLOAT32_C( 3.06), SIMDE_FLOAT32_C( -32.00), SIMDE_FLOAT32_C( 2.29), SIMDE_FLOAT32_C( 184.83), SIMDE_FLOAT32_C( 2.03), SIMDE_FLOAT32_C( -526.16), SIMDE_FLOAT32_C( 852.13), SIMDE_FLOAT32_C( 2.23)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -590.91), SIMDE_FLOAT32_C( -663.88), SIMDE_FLOAT32_C( -394.32), SIMDE_FLOAT32_C( -991.87), SIMDE_FLOAT32_C( 385.94), SIMDE_FLOAT32_C( -349.46), SIMDE_FLOAT32_C( -786.25), SIMDE_FLOAT32_C( 192.19), SIMDE_FLOAT32_C( -594.16), SIMDE_FLOAT32_C( -602.03), SIMDE_FLOAT32_C( 176.16), SIMDE_FLOAT32_C( -458.14), SIMDE_FLOAT32_C( 335.26), SIMDE_FLOAT32_C( -272.70), SIMDE_FLOAT32_C( 585.90), SIMDE_FLOAT32_C( -571.61)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 530.04), SIMDE_FLOAT32_C( -606.85), SIMDE_FLOAT32_C( 112.20), SIMDE_FLOAT32_C( -437.59), SIMDE_FLOAT32_C( -396.36), SIMDE_FLOAT32_C( -280.58), SIMDE_FLOAT32_C( 819.31), SIMDE_FLOAT32_C( -726.73), SIMDE_FLOAT32_C( -263.24), SIMDE_FLOAT32_C( -511.40), SIMDE_FLOAT32_C( -175.25), SIMDE_FLOAT32_C( 728.37), SIMDE_FLOAT32_C( 881.16), SIMDE_FLOAT32_C( -49.97), SIMDE_FLOAT32_C( 618.76), SIMDE_FLOAT32_C( -518.70)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 514.03), SIMDE_FLOAT32_C( -534.75), SIMDE_FLOAT32_C( 96.06), SIMDE_FLOAT32_C( -3.29), SIMDE_FLOAT32_C( 384.31), SIMDE_FLOAT32_C( -280.08), SIMDE_FLOAT32_C( 786.25), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( -2.01), SIMDE_FLOAT32_C( -2.35), SIMDE_FLOAT32_C( 160.00), SIMDE_FLOAT32_C( 2.56), SIMDE_FLOAT32_C( 2.06), SIMDE_FLOAT32_C( -32.06), SIMDE_FLOAT32_C( 584.76), SIMDE_FLOAT32_C( -514.56)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 515.17), SIMDE_FLOAT32_C( 324.54), SIMDE_FLOAT32_C( 91.18), SIMDE_FLOAT32_C( -165.19), SIMDE_FLOAT32_C( -882.22), SIMDE_FLOAT32_C( 833.89), SIMDE_FLOAT32_C( 476.02), SIMDE_FLOAT32_C( 887.60), SIMDE_FLOAT32_C( 229.74), SIMDE_FLOAT32_C( 342.64), SIMDE_FLOAT32_C( 541.23), SIMDE_FLOAT32_C( -642.89), SIMDE_FLOAT32_C( 701.90), SIMDE_FLOAT32_C( 393.90), SIMDE_FLOAT32_C( -103.65), SIMDE_FLOAT32_C( 243.25)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 21.91), SIMDE_FLOAT32_C( -134.28), SIMDE_FLOAT32_C( 125.14), SIMDE_FLOAT32_C( -667.85), SIMDE_FLOAT32_C( -778.80), SIMDE_FLOAT32_C( -220.75), SIMDE_FLOAT32_C( 348.36), SIMDE_FLOAT32_C( 29.88), SIMDE_FLOAT32_C( -634.89), SIMDE_FLOAT32_C( -148.88), SIMDE_FLOAT32_C( 827.50), SIMDE_FLOAT32_C( -532.87), SIMDE_FLOAT32_C( -762.33), SIMDE_FLOAT32_C( 247.69), SIMDE_FLOAT32_C( -238.64), SIMDE_FLOAT32_C( 244.40)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 130.27), SIMDE_FLOAT32_C( 89.13), SIMDE_FLOAT32_C( -2.57), SIMDE_FLOAT32_C( -770.03), SIMDE_FLOAT32_C( 3.25), SIMDE_FLOAT32_C( 348.02), SIMDE_FLOAT32_C( 3.20), SIMDE_FLOAT32_C( 2.07), SIMDE_FLOAT32_C( 128.26), SIMDE_FLOAT32_C( 537.00), SIMDE_FLOAT32_C( -512.76), SIMDE_FLOAT32_C( 696.27), SIMDE_FLOAT32_C( 196.69), SIMDE_FLOAT32_C( -51.50), SIMDE_FLOAT32_C( 240.25)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 139.73), SIMDE_FLOAT32_C( 808.22), SIMDE_FLOAT32_C( -888.67), SIMDE_FLOAT32_C( -90.81), SIMDE_FLOAT32_C( 58.51), SIMDE_FLOAT32_C( -297.55), SIMDE_FLOAT32_C( -246.77), SIMDE_FLOAT32_C( -391.18), SIMDE_FLOAT32_C( 887.15), SIMDE_FLOAT32_C( 997.52), SIMDE_FLOAT32_C( 873.12), SIMDE_FLOAT32_C( -969.73), SIMDE_FLOAT32_C( 721.30), SIMDE_FLOAT32_C( -128.28), SIMDE_FLOAT32_C( -264.35), SIMDE_FLOAT32_C( -432.42)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -80.65), SIMDE_FLOAT32_C( -15.71), SIMDE_FLOAT32_C( 54.64), SIMDE_FLOAT32_C( -420.79), SIMDE_FLOAT32_C( -573.45), SIMDE_FLOAT32_C( 578.20), SIMDE_FLOAT32_C( -393.34), SIMDE_FLOAT32_C( -79.47), SIMDE_FLOAT32_C( -837.77), SIMDE_FLOAT32_C( 169.23), SIMDE_FLOAT32_C( 110.87), SIMDE_FLOAT32_C( 428.31), SIMDE_FLOAT32_C( 944.93), SIMDE_FLOAT32_C( 222.75), SIMDE_FLOAT32_C( -792.23), SIMDE_FLOAT32_C( -269.27)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 32.26), SIMDE_FLOAT32_C( 3.16), SIMDE_FLOAT32_C( 3.41), SIMDE_FLOAT32_C( -72.01), SIMDE_FLOAT32_C( 2.16), SIMDE_FLOAT32_C( 2.26), SIMDE_FLOAT32_C( -196.50), SIMDE_FLOAT32_C( -65.28), SIMDE_FLOAT32_C( 837.02), SIMDE_FLOAT32_C( 2.64), SIMDE_FLOAT32_C( 3.38), SIMDE_FLOAT32_C( 3.28), SIMDE_FLOAT32_C( 656.30), SIMDE_FLOAT32_C( 128.25), SIMDE_FLOAT32_C( -2.06), SIMDE_FLOAT32_C( -256.25)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -807.89), SIMDE_FLOAT32_C( -195.99), SIMDE_FLOAT32_C( -460.22), SIMDE_FLOAT32_C( -214.31), SIMDE_FLOAT32_C( -242.49), SIMDE_FLOAT32_C( 293.67), SIMDE_FLOAT32_C( 209.36), SIMDE_FLOAT32_C( -28.16), SIMDE_FLOAT32_C( 861.78), SIMDE_FLOAT32_C( -349.18), SIMDE_FLOAT32_C( -840.98), SIMDE_FLOAT32_C( 667.88), SIMDE_FLOAT32_C( -431.60), SIMDE_FLOAT32_C( -312.68), SIMDE_FLOAT32_C( 469.25), SIMDE_FLOAT32_C( 584.01)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 881.42), SIMDE_FLOAT32_C( 703.51), SIMDE_FLOAT32_C( 112.91), SIMDE_FLOAT32_C( 92.78), SIMDE_FLOAT32_C( 506.44), SIMDE_FLOAT32_C( 923.94), SIMDE_FLOAT32_C( -577.40), SIMDE_FLOAT32_C( -437.14), SIMDE_FLOAT32_C( -379.29), SIMDE_FLOAT32_C( 791.05), SIMDE_FLOAT32_C( 859.09), SIMDE_FLOAT32_C( 612.11), SIMDE_FLOAT32_C( 687.78), SIMDE_FLOAT32_C( 712.98), SIMDE_FLOAT32_C( -143.15), SIMDE_FLOAT32_C( -972.86)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 801.39), SIMDE_FLOAT32_C( 2.06), SIMDE_FLOAT32_C( 112.03), SIMDE_FLOAT32_C( 36.01), SIMDE_FLOAT32_C( 240.22), SIMDE_FLOAT32_C( 2.04), SIMDE_FLOAT32_C( 2.26), SIMDE_FLOAT32_C( -24.00), SIMDE_FLOAT32_C( 2.33), SIMDE_FLOAT32_C( 2.07), SIMDE_FLOAT32_C( 840.07), SIMDE_FLOAT32_C( 512.00), SIMDE_FLOAT32_C( 2.06), SIMDE_FLOAT32_C( 2.25), SIMDE_FLOAT32_C( 138.12), SIMDE_FLOAT32_C( 584.00)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 278.01), SIMDE_FLOAT32_C( -815.62), SIMDE_FLOAT32_C( 752.91), SIMDE_FLOAT32_C( 710.22), SIMDE_FLOAT32_C( -124.40), SIMDE_FLOAT32_C( -338.82), SIMDE_FLOAT32_C( -853.49), SIMDE_FLOAT32_C( 731.62), SIMDE_FLOAT32_C( 168.07), SIMDE_FLOAT32_C( -402.61), SIMDE_FLOAT32_C( -908.62), SIMDE_FLOAT32_C( 912.24), SIMDE_FLOAT32_C( 241.90), SIMDE_FLOAT32_C( 493.82), SIMDE_FLOAT32_C( -948.44), SIMDE_FLOAT32_C( 522.79)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -401.28), SIMDE_FLOAT32_C( 383.51), SIMDE_FLOAT32_C( -854.57), SIMDE_FLOAT32_C( -237.48), SIMDE_FLOAT32_C( -426.55), SIMDE_FLOAT32_C( -605.26), SIMDE_FLOAT32_C( 140.00), SIMDE_FLOAT32_C( -626.79), SIMDE_FLOAT32_C( 473.63), SIMDE_FLOAT32_C( 968.53), SIMDE_FLOAT32_C( -767.62), SIMDE_FLOAT32_C( -339.51), SIMDE_FLOAT32_C( 144.17), SIMDE_FLOAT32_C( -47.64), SIMDE_FLOAT32_C( -130.89), SIMDE_FLOAT32_C( -19.38)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 272.01), SIMDE_FLOAT32_C( 2.18), SIMDE_FLOAT32_C( 592.50), SIMDE_FLOAT32_C( 2.52), SIMDE_FLOAT32_C( -104.13), SIMDE_FLOAT32_C( -2.02), SIMDE_FLOAT32_C( 2.06), SIMDE_FLOAT32_C( 594.54), SIMDE_FLOAT32_C( 168.07), SIMDE_FLOAT32_C( 3.00), SIMDE_FLOAT32_C( -652.62), SIMDE_FLOAT32_C( 2.50), SIMDE_FLOAT32_C( 144.13), SIMDE_FLOAT32_C( 45.63), SIMDE_FLOAT32_C( -2.00), SIMDE_FLOAT32_C( 2.03)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 491.53), SIMDE_FLOAT32_C( 985.75), SIMDE_FLOAT32_C( -390.64), SIMDE_FLOAT32_C( 517.90), SIMDE_FLOAT32_C( -725.16), SIMDE_FLOAT32_C( 9.87), SIMDE_FLOAT32_C( 943.82), SIMDE_FLOAT32_C( 279.49), SIMDE_FLOAT32_C( -942.01), SIMDE_FLOAT32_C( 63.94), SIMDE_FLOAT32_C( 920.28), SIMDE_FLOAT32_C( 132.72), SIMDE_FLOAT32_C( 502.41), SIMDE_FLOAT32_C( 855.02), SIMDE_FLOAT32_C( 610.59), SIMDE_FLOAT32_C( 860.61)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -675.66), SIMDE_FLOAT32_C( 128.22), SIMDE_FLOAT32_C( -915.29), SIMDE_FLOAT32_C( -679.65), SIMDE_FLOAT32_C( 537.51), SIMDE_FLOAT32_C( -484.11), SIMDE_FLOAT32_C( 502.40), SIMDE_FLOAT32_C( -785.39), SIMDE_FLOAT32_C( -128.17), SIMDE_FLOAT32_C( 101.31), SIMDE_FLOAT32_C( -990.73), SIMDE_FLOAT32_C( -514.82), SIMDE_FLOAT32_C( 231.21), SIMDE_FLOAT32_C( 964.21), SIMDE_FLOAT32_C( -258.81), SIMDE_FLOAT32_C( 355.88)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 2.51), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( -3.00), SIMDE_FLOAT32_C( 517.65), SIMDE_FLOAT32_C( 529.00), SIMDE_FLOAT32_C( 9.00), SIMDE_FLOAT32_C( 3.67), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( -2.00), SIMDE_FLOAT32_C( 50.63), SIMDE_FLOAT32_C( 920.01), SIMDE_FLOAT32_C( 2.01), SIMDE_FLOAT32_C( 227.20), SIMDE_FLOAT32_C( 836.02), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 2.27)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_and_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_and_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( 266.26), SIMDE_FLOAT64_C( 537.32), SIMDE_FLOAT64_C( -326.88), SIMDE_FLOAT64_C( -882.50), SIMDE_FLOAT64_C( -89.28), SIMDE_FLOAT64_C( -631.60), SIMDE_FLOAT64_C( -243.67), SIMDE_FLOAT64_C( 78.08)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -676.48), SIMDE_FLOAT64_C( -545.20), SIMDE_FLOAT64_C( 963.41), SIMDE_FLOAT64_C( 343.81), SIMDE_FLOAT64_C( -406.87), SIMDE_FLOAT64_C( -689.93), SIMDE_FLOAT64_C( -169.12), SIMDE_FLOAT64_C( -796.89)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.02), SIMDE_FLOAT64_C( 513.07), SIMDE_FLOAT64_C( 2.50), SIMDE_FLOAT64_C( 2.13), SIMDE_FLOAT64_C( -65.03), SIMDE_FLOAT64_C( -561.53), SIMDE_FLOAT64_C( -161.04), SIMDE_FLOAT64_C( 2.06)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -354.59), SIMDE_FLOAT64_C( -334.01), SIMDE_FLOAT64_C( -406.82), SIMDE_FLOAT64_C( -535.93), SIMDE_FLOAT64_C( 534.72), SIMDE_FLOAT64_C( 276.86), SIMDE_FLOAT64_C( 401.00), SIMDE_FLOAT64_C( 921.82)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -20.44), SIMDE_FLOAT64_C( -778.21), SIMDE_FLOAT64_C( -61.28), SIMDE_FLOAT64_C( 788.42), SIMDE_FLOAT64_C( 286.07), SIMDE_FLOAT64_C( 772.65), SIMDE_FLOAT64_C( -788.54), SIMDE_FLOAT64_C( 755.47)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -20.13), SIMDE_FLOAT64_C( -2.03), SIMDE_FLOAT64_C( -48.26), SIMDE_FLOAT64_C( 532.41), SIMDE_FLOAT64_C( 2.08), SIMDE_FLOAT64_C( 2.00), SIMDE_FLOAT64_C( 3.00), SIMDE_FLOAT64_C( 657.31)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 197.60), SIMDE_FLOAT64_C( -669.73), SIMDE_FLOAT64_C( 859.82), SIMDE_FLOAT64_C( -638.20), SIMDE_FLOAT64_C( -808.24), SIMDE_FLOAT64_C( 961.25), SIMDE_FLOAT64_C( 916.37), SIMDE_FLOAT64_C( -473.47)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 3.21), SIMDE_FLOAT64_C( 10.30), SIMDE_FLOAT64_C( 402.59), SIMDE_FLOAT64_C( -919.31), SIMDE_FLOAT64_C( 484.80), SIMDE_FLOAT64_C( 567.35), SIMDE_FLOAT64_C( -979.89), SIMDE_FLOAT64_C( 784.39)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 3.08), SIMDE_FLOAT64_C( 2.57), SIMDE_FLOAT64_C( 3.00), SIMDE_FLOAT64_C( -534.01), SIMDE_FLOAT64_C( 3.03), SIMDE_FLOAT64_C( 513.25), SIMDE_FLOAT64_C( 912.26), SIMDE_FLOAT64_C( 3.06)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 188.83), SIMDE_FLOAT64_C( -479.33), SIMDE_FLOAT64_C( 811.81), SIMDE_FLOAT64_C( -322.50), SIMDE_FLOAT64_C( 884.11), SIMDE_FLOAT64_C( 808.53), SIMDE_FLOAT64_C( -174.95), SIMDE_FLOAT64_C( -68.05)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -882.86), SIMDE_FLOAT64_C( -939.93), SIMDE_FLOAT64_C( -855.90), SIMDE_FLOAT64_C( 170.22), SIMDE_FLOAT64_C( 115.99), SIMDE_FLOAT64_C( 297.62), SIMDE_FLOAT64_C( -527.76), SIMDE_FLOAT64_C( 219.88)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.45), SIMDE_FLOAT64_C( -3.67), SIMDE_FLOAT64_C( 771.77), SIMDE_FLOAT64_C( 160.00), SIMDE_FLOAT64_C( 3.08), SIMDE_FLOAT64_C( 2.00), SIMDE_FLOAT64_C( -2.05), SIMDE_FLOAT64_C( 34.00)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -659.02), SIMDE_FLOAT64_C( 607.91), SIMDE_FLOAT64_C( -268.25), SIMDE_FLOAT64_C( 240.07), SIMDE_FLOAT64_C( 471.39), SIMDE_FLOAT64_C( -501.59), SIMDE_FLOAT64_C( 984.94), SIMDE_FLOAT64_C( -801.62)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -165.03), SIMDE_FLOAT64_C( 382.49), SIMDE_FLOAT64_C( -663.11), SIMDE_FLOAT64_C( 675.92), SIMDE_FLOAT64_C( -427.89), SIMDE_FLOAT64_C( -312.23), SIMDE_FLOAT64_C( 47.19), SIMDE_FLOAT64_C( -273.76)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -2.56), SIMDE_FLOAT64_C( 2.36), SIMDE_FLOAT64_C( -2.06), SIMDE_FLOAT64_C( 2.50), SIMDE_FLOAT64_C( 387.39), SIMDE_FLOAT64_C( -304.07), SIMDE_FLOAT64_C( 2.81), SIMDE_FLOAT64_C( -2.13)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -449.51), SIMDE_FLOAT64_C( -396.24), SIMDE_FLOAT64_C( -106.23), SIMDE_FLOAT64_C( -648.77), SIMDE_FLOAT64_C( 178.69), SIMDE_FLOAT64_C( -996.05), SIMDE_FLOAT64_C( 315.07), SIMDE_FLOAT64_C( -247.28)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 515.02), SIMDE_FLOAT64_C( 228.66), SIMDE_FLOAT64_C( 419.85), SIMDE_FLOAT64_C( -810.27), SIMDE_FLOAT64_C( 162.64), SIMDE_FLOAT64_C( 495.48), SIMDE_FLOAT64_C( -567.27), SIMDE_FLOAT64_C( 755.82)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.01), SIMDE_FLOAT64_C( 196.03), SIMDE_FLOAT64_C( 104.20), SIMDE_FLOAT64_C( -520.27), SIMDE_FLOAT64_C( 162.63), SIMDE_FLOAT64_C( 3.77), SIMDE_FLOAT64_C( 2.21), SIMDE_FLOAT64_C( 2.82)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -506.18), SIMDE_FLOAT64_C( 153.12), SIMDE_FLOAT64_C( -217.93), SIMDE_FLOAT64_C( 6.73), SIMDE_FLOAT64_C( 358.11), SIMDE_FLOAT64_C( -136.37), SIMDE_FLOAT64_C( 141.08), SIMDE_FLOAT64_C( -860.28)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -303.86), SIMDE_FLOAT64_C( -938.78), SIMDE_FLOAT64_C( 386.83), SIMDE_FLOAT64_C( -590.09), SIMDE_FLOAT64_C( -517.39), SIMDE_FLOAT64_C( -324.41), SIMDE_FLOAT64_C( 515.48), SIMDE_FLOAT64_C( 674.62)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -298.05), SIMDE_FLOAT64_C( 2.13), SIMDE_FLOAT64_C( 193.41), SIMDE_FLOAT64_C( 2.30), SIMDE_FLOAT64_C( 2.02), SIMDE_FLOAT64_C( -128.08), SIMDE_FLOAT64_C( 2.00), SIMDE_FLOAT64_C( 512.03)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -571.57), SIMDE_FLOAT64_C( -865.77), SIMDE_FLOAT64_C( -691.63), SIMDE_FLOAT64_C( -182.56), SIMDE_FLOAT64_C( -67.70), SIMDE_FLOAT64_C( -166.11), SIMDE_FLOAT64_C( -833.08), SIMDE_FLOAT64_C( -401.07)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 341.96), SIMDE_FLOAT64_C( 615.56), SIMDE_FLOAT64_C( 144.45), SIMDE_FLOAT64_C( 211.78), SIMDE_FLOAT64_C( -86.51), SIMDE_FLOAT64_C( 594.64), SIMDE_FLOAT64_C( 523.21), SIMDE_FLOAT64_C( -747.41)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.17), SIMDE_FLOAT64_C( 609.52), SIMDE_FLOAT64_C( 2.01), SIMDE_FLOAT64_C( 146.53), SIMDE_FLOAT64_C( -66.51), SIMDE_FLOAT64_C( 2.06), SIMDE_FLOAT64_C( 513.08), SIMDE_FLOAT64_C( -2.13)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_and_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_and_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( -343.60), SIMDE_FLOAT32_C( -192.26), SIMDE_FLOAT32_C( -375.10), SIMDE_FLOAT32_C( 810.28), SIMDE_FLOAT32_C( -388.15), SIMDE_FLOAT32_C( 15.81), SIMDE_FLOAT32_C( 547.95), SIMDE_FLOAT32_C( 151.06), SIMDE_FLOAT32_C( -920.74), SIMDE_FLOAT32_C( -676.14), SIMDE_FLOAT32_C( -545.26), SIMDE_FLOAT32_C( -14.56), SIMDE_FLOAT32_C( -393.14), SIMDE_FLOAT32_C( 768.60), SIMDE_FLOAT32_C( -177.89), SIMDE_FLOAT32_C( -467.51)), UINT16_C(45944), simde_mm512_set_ps(SIMDE_FLOAT32_C( -651.37), SIMDE_FLOAT32_C( 37.95), SIMDE_FLOAT32_C( -182.79), SIMDE_FLOAT32_C( 255.51), SIMDE_FLOAT32_C( 476.70), SIMDE_FLOAT32_C( 371.61), SIMDE_FLOAT32_C( -494.45), SIMDE_FLOAT32_C( 72.18), SIMDE_FLOAT32_C( -723.25), SIMDE_FLOAT32_C( 604.60), SIMDE_FLOAT32_C( 545.32), SIMDE_FLOAT32_C( -399.73), SIMDE_FLOAT32_C( -975.39), SIMDE_FLOAT32_C( 419.30), SIMDE_FLOAT32_C( -736.37), SIMDE_FLOAT32_C( 655.70)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -330.93), SIMDE_FLOAT32_C( 963.24), SIMDE_FLOAT32_C( -62.45), SIMDE_FLOAT32_C( 625.74), SIMDE_FLOAT32_C( -826.45), SIMDE_FLOAT32_C( -884.51), SIMDE_FLOAT32_C( 544.59), SIMDE_FLOAT32_C( -22.39), SIMDE_FLOAT32_C( 750.16), SIMDE_FLOAT32_C( -751.51), SIMDE_FLOAT32_C( -211.00), SIMDE_FLOAT32_C( 886.29), SIMDE_FLOAT32_C( 666.91), SIMDE_FLOAT32_C( 8.70), SIMDE_FLOAT32_C( -362.66), SIMDE_FLOAT32_C( -451.03)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -2.51), SIMDE_FLOAT32_C( -192.26), SIMDE_FLOAT32_C( -44.20), SIMDE_FLOAT32_C( 2.44), SIMDE_FLOAT32_C( -388.15), SIMDE_FLOAT32_C( 15.81), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 4.50), SIMDE_FLOAT32_C( -920.74), SIMDE_FLOAT32_C( 588.50), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 3.09), SIMDE_FLOAT32_C( 650.38), SIMDE_FLOAT32_C( 768.60), SIMDE_FLOAT32_C( -177.89), SIMDE_FLOAT32_C( -467.51)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -702.08), SIMDE_FLOAT32_C( 457.26), SIMDE_FLOAT32_C( 193.10), SIMDE_FLOAT32_C( 655.72), SIMDE_FLOAT32_C( 205.91), SIMDE_FLOAT32_C( 807.77), SIMDE_FLOAT32_C( -545.40), SIMDE_FLOAT32_C( -364.12), SIMDE_FLOAT32_C( -42.22), SIMDE_FLOAT32_C( -523.42), SIMDE_FLOAT32_C( -308.90), SIMDE_FLOAT32_C( 22.20), SIMDE_FLOAT32_C( -114.47), SIMDE_FLOAT32_C( -738.11), SIMDE_FLOAT32_C( 189.09), SIMDE_FLOAT32_C( -448.58)), UINT16_C(10313), simde_mm512_set_ps(SIMDE_FLOAT32_C( -177.43), SIMDE_FLOAT32_C( -28.38), SIMDE_FLOAT32_C( -846.37), SIMDE_FLOAT32_C( 912.26), SIMDE_FLOAT32_C( -370.39), SIMDE_FLOAT32_C( 988.78), SIMDE_FLOAT32_C( -359.74), SIMDE_FLOAT32_C( -281.72), SIMDE_FLOAT32_C( 166.18), SIMDE_FLOAT32_C( -100.50), SIMDE_FLOAT32_C( -909.51), SIMDE_FLOAT32_C( -85.95), SIMDE_FLOAT32_C( -710.91), SIMDE_FLOAT32_C( -813.11), SIMDE_FLOAT32_C( -799.86), SIMDE_FLOAT32_C( -823.45)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 329.92), SIMDE_FLOAT32_C( 113.21), SIMDE_FLOAT32_C( 300.37), SIMDE_FLOAT32_C( -777.20), SIMDE_FLOAT32_C( 193.77), SIMDE_FLOAT32_C( -864.32), SIMDE_FLOAT32_C( 579.99), SIMDE_FLOAT32_C( 488.59), SIMDE_FLOAT32_C( -684.28), SIMDE_FLOAT32_C( -65.28), SIMDE_FLOAT32_C( 876.26), SIMDE_FLOAT32_C( 378.65), SIMDE_FLOAT32_C( -964.10), SIMDE_FLOAT32_C( 626.06), SIMDE_FLOAT32_C( 97.19), SIMDE_FLOAT32_C( 612.33)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -702.08), SIMDE_FLOAT32_C( 457.26), SIMDE_FLOAT32_C( 2.28), SIMDE_FLOAT32_C( 655.72), SIMDE_FLOAT32_C( 129.00), SIMDE_FLOAT32_C( 807.77), SIMDE_FLOAT32_C( -545.40), SIMDE_FLOAT32_C( -364.12), SIMDE_FLOAT32_C( -42.22), SIMDE_FLOAT32_C( -64.00), SIMDE_FLOAT32_C( -308.90), SIMDE_FLOAT32_C( 22.20), SIMDE_FLOAT32_C( -708.03), SIMDE_FLOAT32_C( -738.11), SIMDE_FLOAT32_C( 189.09), SIMDE_FLOAT32_C( 548.31)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 153.13), SIMDE_FLOAT32_C( 47.64), SIMDE_FLOAT32_C( -104.37), SIMDE_FLOAT32_C( -453.36), SIMDE_FLOAT32_C( -57.32), SIMDE_FLOAT32_C( -673.06), SIMDE_FLOAT32_C( -857.97), SIMDE_FLOAT32_C( -158.69), SIMDE_FLOAT32_C( 504.22), SIMDE_FLOAT32_C( 774.61), SIMDE_FLOAT32_C( -50.26), SIMDE_FLOAT32_C( -594.62), SIMDE_FLOAT32_C( 628.86), SIMDE_FLOAT32_C( 362.00), SIMDE_FLOAT32_C( 770.65), SIMDE_FLOAT32_C( -621.70)), UINT16_C( 5674), simde_mm512_set_ps(SIMDE_FLOAT32_C( -181.31), SIMDE_FLOAT32_C( -271.84), SIMDE_FLOAT32_C( 138.26), SIMDE_FLOAT32_C( 59.10), SIMDE_FLOAT32_C( 703.12), SIMDE_FLOAT32_C( 374.71), SIMDE_FLOAT32_C( -674.86), SIMDE_FLOAT32_C( -198.23), SIMDE_FLOAT32_C( 769.31), SIMDE_FLOAT32_C( -859.16), SIMDE_FLOAT32_C( 111.69), SIMDE_FLOAT32_C( -420.38), SIMDE_FLOAT32_C( 345.23), SIMDE_FLOAT32_C( -263.27), SIMDE_FLOAT32_C( 122.33), SIMDE_FLOAT32_C( -11.31)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 13.03), SIMDE_FLOAT32_C( 510.73), SIMDE_FLOAT32_C( -6.19), SIMDE_FLOAT32_C( -107.87), SIMDE_FLOAT32_C( -441.23), SIMDE_FLOAT32_C( 120.22), SIMDE_FLOAT32_C( 331.67), SIMDE_FLOAT32_C( -661.48), SIMDE_FLOAT32_C( 626.32), SIMDE_FLOAT32_C( 505.21), SIMDE_FLOAT32_C( -161.83), SIMDE_FLOAT32_C( -671.34), SIMDE_FLOAT32_C( 514.06), SIMDE_FLOAT32_C( -807.61), SIMDE_FLOAT32_C( -556.61), SIMDE_FLOAT32_C( -451.72)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 153.13), SIMDE_FLOAT32_C( 47.64), SIMDE_FLOAT32_C( -104.37), SIMDE_FLOAT32_C( 49.04), SIMDE_FLOAT32_C( -57.32), SIMDE_FLOAT32_C( 88.16), SIMDE_FLOAT32_C( 2.51), SIMDE_FLOAT32_C( -158.69), SIMDE_FLOAT32_C( 504.22), SIMDE_FLOAT32_C( 774.61), SIMDE_FLOAT32_C( 32.31), SIMDE_FLOAT32_C( -594.62), SIMDE_FLOAT32_C( 2.01), SIMDE_FLOAT32_C( 362.00), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( -621.70)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -175.84), SIMDE_FLOAT32_C( 968.44), SIMDE_FLOAT32_C( 85.61), SIMDE_FLOAT32_C( -394.33), SIMDE_FLOAT32_C( 358.35), SIMDE_FLOAT32_C( 605.54), SIMDE_FLOAT32_C( -698.35), SIMDE_FLOAT32_C( -764.09), SIMDE_FLOAT32_C( 164.55), SIMDE_FLOAT32_C( -893.53), SIMDE_FLOAT32_C( 171.50), SIMDE_FLOAT32_C( 629.19), SIMDE_FLOAT32_C( 42.86), SIMDE_FLOAT32_C( 22.57), SIMDE_FLOAT32_C( 198.87), SIMDE_FLOAT32_C( -209.78)), UINT16_C(35386), simde_mm512_set_ps(SIMDE_FLOAT32_C( -72.35), SIMDE_FLOAT32_C( -549.59), SIMDE_FLOAT32_C( 102.63), SIMDE_FLOAT32_C( 834.67), SIMDE_FLOAT32_C( 4.81), SIMDE_FLOAT32_C( 910.94), SIMDE_FLOAT32_C( 192.67), SIMDE_FLOAT32_C( 180.42), SIMDE_FLOAT32_C( 349.29), SIMDE_FLOAT32_C( 183.58), SIMDE_FLOAT32_C( 366.06), SIMDE_FLOAT32_C( -157.87), SIMDE_FLOAT32_C( -312.42), SIMDE_FLOAT32_C( 182.79), SIMDE_FLOAT32_C( -978.11), SIMDE_FLOAT32_C( 90.48)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 175.13), SIMDE_FLOAT32_C( -712.55), SIMDE_FLOAT32_C( -809.33), SIMDE_FLOAT32_C( 698.74), SIMDE_FLOAT32_C( 142.25), SIMDE_FLOAT32_C( -727.89), SIMDE_FLOAT32_C( -520.56), SIMDE_FLOAT32_C( 353.74), SIMDE_FLOAT32_C( -705.41), SIMDE_FLOAT32_C( -196.42), SIMDE_FLOAT32_C( 407.84), SIMDE_FLOAT32_C( -285.59), SIMDE_FLOAT32_C( 496.15), SIMDE_FLOAT32_C( 800.83), SIMDE_FLOAT32_C( -740.01), SIMDE_FLOAT32_C( 769.91)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 32.03), SIMDE_FLOAT32_C( 968.44), SIMDE_FLOAT32_C( 85.61), SIMDE_FLOAT32_C( -394.33), SIMDE_FLOAT32_C( 2.13), SIMDE_FLOAT32_C( 605.54), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( -764.09), SIMDE_FLOAT32_C( 164.55), SIMDE_FLOAT32_C( -893.53), SIMDE_FLOAT32_C( 262.03), SIMDE_FLOAT32_C( -140.79), SIMDE_FLOAT32_C( 304.13), SIMDE_FLOAT32_C( 22.57), SIMDE_FLOAT32_C( -704.00), SIMDE_FLOAT32_C( -209.78)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -273.10), SIMDE_FLOAT32_C( -193.08), SIMDE_FLOAT32_C( 823.95), SIMDE_FLOAT32_C( 970.90), SIMDE_FLOAT32_C( -50.31), SIMDE_FLOAT32_C( 755.59), SIMDE_FLOAT32_C( -119.92), SIMDE_FLOAT32_C( -895.51), SIMDE_FLOAT32_C( 692.21), SIMDE_FLOAT32_C( 544.09), SIMDE_FLOAT32_C( 740.64), SIMDE_FLOAT32_C( 817.79), SIMDE_FLOAT32_C( 131.04), SIMDE_FLOAT32_C( 190.96), SIMDE_FLOAT32_C( 289.64), SIMDE_FLOAT32_C( -908.35)), UINT16_C( 1662), simde_mm512_set_ps(SIMDE_FLOAT32_C( 563.69), SIMDE_FLOAT32_C( 374.34), SIMDE_FLOAT32_C( -459.61), SIMDE_FLOAT32_C( 786.82), SIMDE_FLOAT32_C( 257.72), SIMDE_FLOAT32_C( -220.73), SIMDE_FLOAT32_C( -903.10), SIMDE_FLOAT32_C( 520.58), SIMDE_FLOAT32_C( -858.27), SIMDE_FLOAT32_C( 784.57), SIMDE_FLOAT32_C( 832.81), SIMDE_FLOAT32_C( -909.15), SIMDE_FLOAT32_C( 909.58), SIMDE_FLOAT32_C( -162.79), SIMDE_FLOAT32_C( 177.63), SIMDE_FLOAT32_C( 25.46)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 749.97), SIMDE_FLOAT32_C( -58.76), SIMDE_FLOAT32_C( 952.36), SIMDE_FLOAT32_C( 549.26), SIMDE_FLOAT32_C( 390.25), SIMDE_FLOAT32_C( -490.70), SIMDE_FLOAT32_C( 974.89), SIMDE_FLOAT32_C( 114.95), SIMDE_FLOAT32_C( 932.36), SIMDE_FLOAT32_C( -895.93), SIMDE_FLOAT32_C( -880.84), SIMDE_FLOAT32_C( -351.20), SIMDE_FLOAT32_C( -500.77), SIMDE_FLOAT32_C( 42.49), SIMDE_FLOAT32_C( 588.62), SIMDE_FLOAT32_C( 67.54)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -273.10), SIMDE_FLOAT32_C( -193.08), SIMDE_FLOAT32_C( 823.95), SIMDE_FLOAT32_C( 970.90), SIMDE_FLOAT32_C( -50.31), SIMDE_FLOAT32_C( -212.10), SIMDE_FLOAT32_C( 902.01), SIMDE_FLOAT32_C( -895.51), SIMDE_FLOAT32_C( 692.21), SIMDE_FLOAT32_C( 784.50), SIMDE_FLOAT32_C( 832.78), SIMDE_FLOAT32_C( -2.55), SIMDE_FLOAT32_C( 3.54), SIMDE_FLOAT32_C( 40.19), SIMDE_FLOAT32_C( 2.27), SIMDE_FLOAT32_C( -908.35)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 882.37), SIMDE_FLOAT32_C( -29.48), SIMDE_FLOAT32_C( 208.93), SIMDE_FLOAT32_C( -103.96), SIMDE_FLOAT32_C( -740.71), SIMDE_FLOAT32_C( -48.33), SIMDE_FLOAT32_C( -73.48), SIMDE_FLOAT32_C( 839.05), SIMDE_FLOAT32_C( -578.39), SIMDE_FLOAT32_C( -527.30), SIMDE_FLOAT32_C( 808.78), SIMDE_FLOAT32_C( 273.31), SIMDE_FLOAT32_C( -212.18), SIMDE_FLOAT32_C( 358.44), SIMDE_FLOAT32_C( -429.58), SIMDE_FLOAT32_C( 641.01)), UINT16_C(51954), simde_mm512_set_ps(SIMDE_FLOAT32_C( 159.89), SIMDE_FLOAT32_C( -431.59), SIMDE_FLOAT32_C( 692.24), SIMDE_FLOAT32_C( -189.31), SIMDE_FLOAT32_C( 84.37), SIMDE_FLOAT32_C( -971.33), SIMDE_FLOAT32_C( 50.60), SIMDE_FLOAT32_C( -980.81), SIMDE_FLOAT32_C( 362.99), SIMDE_FLOAT32_C( 722.54), SIMDE_FLOAT32_C( 564.98), SIMDE_FLOAT32_C( 242.21), SIMDE_FLOAT32_C( -393.24), SIMDE_FLOAT32_C( 738.28), SIMDE_FLOAT32_C( 192.78), SIMDE_FLOAT32_C( -360.32)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -421.96), SIMDE_FLOAT32_C( -741.98), SIMDE_FLOAT32_C( -791.19), SIMDE_FLOAT32_C( 363.28), SIMDE_FLOAT32_C( 168.15), SIMDE_FLOAT32_C( -247.26), SIMDE_FLOAT32_C( 113.19), SIMDE_FLOAT32_C( 128.76), SIMDE_FLOAT32_C( -773.73), SIMDE_FLOAT32_C( 125.25), SIMDE_FLOAT32_C( 337.69), SIMDE_FLOAT32_C( -644.22), SIMDE_FLOAT32_C( 869.52), SIMDE_FLOAT32_C( 681.99), SIMDE_FLOAT32_C( 444.36), SIMDE_FLOAT32_C( 361.44)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 146.89), SIMDE_FLOAT32_C( -2.27), SIMDE_FLOAT32_C( 208.93), SIMDE_FLOAT32_C( -103.96), SIMDE_FLOAT32_C( 42.04), SIMDE_FLOAT32_C( -48.33), SIMDE_FLOAT32_C( 48.59), SIMDE_FLOAT32_C( 839.05), SIMDE_FLOAT32_C( 2.02), SIMDE_FLOAT32_C( 2.76), SIMDE_FLOAT32_C( 2.13), SIMDE_FLOAT32_C( 2.50), SIMDE_FLOAT32_C( -212.18), SIMDE_FLOAT32_C( 358.44), SIMDE_FLOAT32_C( 192.02), SIMDE_FLOAT32_C( 641.01)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( -829.72), SIMDE_FLOAT32_C( 349.95), SIMDE_FLOAT32_C( 480.03), SIMDE_FLOAT32_C( -584.69), SIMDE_FLOAT32_C( 943.11), SIMDE_FLOAT32_C( -148.79), SIMDE_FLOAT32_C( -861.78), SIMDE_FLOAT32_C( -270.87), SIMDE_FLOAT32_C( -593.74), SIMDE_FLOAT32_C( -232.02), SIMDE_FLOAT32_C( -553.31), SIMDE_FLOAT32_C( 693.33), SIMDE_FLOAT32_C( -533.82), SIMDE_FLOAT32_C( -527.51), SIMDE_FLOAT32_C( -140.16), SIMDE_FLOAT32_C( 631.76)), UINT16_C(50263), simde_mm512_set_ps(SIMDE_FLOAT32_C( 173.33), SIMDE_FLOAT32_C( -281.34), SIMDE_FLOAT32_C( -45.38), SIMDE_FLOAT32_C( -230.23), SIMDE_FLOAT32_C( -937.39), SIMDE_FLOAT32_C( 53.86), SIMDE_FLOAT32_C( -719.43), SIMDE_FLOAT32_C( 465.60), SIMDE_FLOAT32_C( 111.60), SIMDE_FLOAT32_C( 156.01), SIMDE_FLOAT32_C( -703.23), SIMDE_FLOAT32_C( 763.33), SIMDE_FLOAT32_C( 119.12), SIMDE_FLOAT32_C( -295.56), SIMDE_FLOAT32_C( 313.51), SIMDE_FLOAT32_C( -193.21)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 396.81), SIMDE_FLOAT32_C( -330.26), SIMDE_FLOAT32_C( -500.01), SIMDE_FLOAT32_C( -117.27), SIMDE_FLOAT32_C( 805.35), SIMDE_FLOAT32_C( 722.55), SIMDE_FLOAT32_C( 274.82), SIMDE_FLOAT32_C( 32.73), SIMDE_FLOAT32_C( -564.66), SIMDE_FLOAT32_C( 180.25), SIMDE_FLOAT32_C( -307.87), SIMDE_FLOAT32_C( 888.96), SIMDE_FLOAT32_C( 806.77), SIMDE_FLOAT32_C( -526.35), SIMDE_FLOAT32_C( 889.50), SIMDE_FLOAT32_C( 196.92)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 132.27), SIMDE_FLOAT32_C( -264.26), SIMDE_FLOAT32_C( 480.03), SIMDE_FLOAT32_C( -584.69), SIMDE_FLOAT32_C( 943.11), SIMDE_FLOAT32_C( 2.31), SIMDE_FLOAT32_C( -861.78), SIMDE_FLOAT32_C( -270.87), SIMDE_FLOAT32_C( -593.74), SIMDE_FLOAT32_C( 148.00), SIMDE_FLOAT32_C( -553.31), SIMDE_FLOAT32_C( 632.33), SIMDE_FLOAT32_C( -533.82), SIMDE_FLOAT32_C( -2.06), SIMDE_FLOAT32_C( 2.44), SIMDE_FLOAT32_C( 192.13)) }, { simde_mm512_set_ps(SIMDE_FLOAT32_C( 425.40), SIMDE_FLOAT32_C( -281.85), SIMDE_FLOAT32_C( 596.53), SIMDE_FLOAT32_C( 231.55), SIMDE_FLOAT32_C( -189.24), SIMDE_FLOAT32_C( 962.54), SIMDE_FLOAT32_C( 598.72), SIMDE_FLOAT32_C( -728.82), SIMDE_FLOAT32_C( -31.34), SIMDE_FLOAT32_C( -498.28), SIMDE_FLOAT32_C( -106.48), SIMDE_FLOAT32_C( -850.40), SIMDE_FLOAT32_C( -763.83), SIMDE_FLOAT32_C( 176.55), SIMDE_FLOAT32_C( 356.84), SIMDE_FLOAT32_C( 827.17)), UINT16_C(54643), simde_mm512_set_ps(SIMDE_FLOAT32_C( 761.43), SIMDE_FLOAT32_C( 95.69), SIMDE_FLOAT32_C( 888.39), SIMDE_FLOAT32_C( -555.84), SIMDE_FLOAT32_C( 40.33), SIMDE_FLOAT32_C( 358.74), SIMDE_FLOAT32_C( -948.08), SIMDE_FLOAT32_C( 313.44), SIMDE_FLOAT32_C( -166.07), SIMDE_FLOAT32_C( -218.95), SIMDE_FLOAT32_C( 360.34), SIMDE_FLOAT32_C( 989.68), SIMDE_FLOAT32_C( 653.42), SIMDE_FLOAT32_C( 345.37), SIMDE_FLOAT32_C( 978.06), SIMDE_FLOAT32_C( 493.94)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 109.54), SIMDE_FLOAT32_C( 122.35), SIMDE_FLOAT32_C( 770.11), SIMDE_FLOAT32_C( 306.89), SIMDE_FLOAT32_C( -347.63), SIMDE_FLOAT32_C( 772.43), SIMDE_FLOAT32_C( 958.72), SIMDE_FLOAT32_C( -435.18), SIMDE_FLOAT32_C( -680.27), SIMDE_FLOAT32_C( -653.21), SIMDE_FLOAT32_C( 453.00), SIMDE_FLOAT32_C( 299.53), SIMDE_FLOAT32_C( -837.12), SIMDE_FLOAT32_C( -8.00), SIMDE_FLOAT32_C( 561.63), SIMDE_FLOAT32_C( -594.20)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 2.41), SIMDE_FLOAT32_C( 90.06), SIMDE_FLOAT32_C( 596.53), SIMDE_FLOAT32_C( 2.13), SIMDE_FLOAT32_C( -189.24), SIMDE_FLOAT32_C( 2.02), SIMDE_FLOAT32_C( 598.72), SIMDE_FLOAT32_C( 305.13), SIMDE_FLOAT32_C( -31.34), SIMDE_FLOAT32_C( -2.04), SIMDE_FLOAT32_C( 320.00), SIMDE_FLOAT32_C( 2.33), SIMDE_FLOAT32_C( -763.83), SIMDE_FLOAT32_C( 176.55), SIMDE_FLOAT32_C( 528.01), SIMDE_FLOAT32_C( 2.32)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_mask_and_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_and_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( -128.09), SIMDE_FLOAT64_C( -302.68), SIMDE_FLOAT64_C( 129.66), SIMDE_FLOAT64_C( -400.28), SIMDE_FLOAT64_C( -687.60), SIMDE_FLOAT64_C( -568.06), SIMDE_FLOAT64_C( -974.67), SIMDE_FLOAT64_C( 814.47)), UINT8_C( 92), simde_mm512_set_pd(SIMDE_FLOAT64_C( -854.57), SIMDE_FLOAT64_C( 353.06), SIMDE_FLOAT64_C( 903.81), SIMDE_FLOAT64_C( -723.16), SIMDE_FLOAT64_C( -194.97), SIMDE_FLOAT64_C( 114.89), SIMDE_FLOAT64_C( 497.66), SIMDE_FLOAT64_C( -446.09)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -876.89), SIMDE_FLOAT64_C( -283.08), SIMDE_FLOAT64_C( 642.58), SIMDE_FLOAT64_C( -973.49), SIMDE_FLOAT64_C( 853.14), SIMDE_FLOAT64_C( 647.44), SIMDE_FLOAT64_C( 237.52), SIMDE_FLOAT64_C( -333.12)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -128.09), SIMDE_FLOAT64_C( 257.02), SIMDE_FLOAT64_C( 129.66), SIMDE_FLOAT64_C( -705.16), SIMDE_FLOAT64_C( 3.00), SIMDE_FLOAT64_C( 2.53), SIMDE_FLOAT64_C( -974.67), SIMDE_FLOAT64_C( 814.47)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 61.63), SIMDE_FLOAT64_C( 987.28), SIMDE_FLOAT64_C( -845.84), SIMDE_FLOAT64_C( -822.08), SIMDE_FLOAT64_C( -946.95), SIMDE_FLOAT64_C( -157.17), SIMDE_FLOAT64_C( 808.43), SIMDE_FLOAT64_C( 716.34)), UINT8_C(128), simde_mm512_set_pd(SIMDE_FLOAT64_C( 876.49), SIMDE_FLOAT64_C( 503.33), SIMDE_FLOAT64_C( 842.44), SIMDE_FLOAT64_C( -417.76), SIMDE_FLOAT64_C( -171.61), SIMDE_FLOAT64_C( -96.79), SIMDE_FLOAT64_C( 45.73), SIMDE_FLOAT64_C( 312.19)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 54.70), SIMDE_FLOAT64_C( -228.57), SIMDE_FLOAT64_C( -133.57), SIMDE_FLOAT64_C( -803.47), SIMDE_FLOAT64_C( 821.61), SIMDE_FLOAT64_C( 198.21), SIMDE_FLOAT64_C( 476.20), SIMDE_FLOAT64_C( 925.71)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 3.41), SIMDE_FLOAT64_C( 987.28), SIMDE_FLOAT64_C( -845.84), SIMDE_FLOAT64_C( -822.08), SIMDE_FLOAT64_C( -946.95), SIMDE_FLOAT64_C( -157.17), SIMDE_FLOAT64_C( 808.43), SIMDE_FLOAT64_C( 716.34)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -24.63), SIMDE_FLOAT64_C( -758.53), SIMDE_FLOAT64_C( 216.18), SIMDE_FLOAT64_C( -869.86), SIMDE_FLOAT64_C( -556.61), SIMDE_FLOAT64_C( -869.93), SIMDE_FLOAT64_C( 935.72), SIMDE_FLOAT64_C( 467.65)), UINT8_C(132), simde_mm512_set_pd(SIMDE_FLOAT64_C( -373.41), SIMDE_FLOAT64_C( 558.94), SIMDE_FLOAT64_C( -966.64), SIMDE_FLOAT64_C( -741.87), SIMDE_FLOAT64_C( -915.12), SIMDE_FLOAT64_C( -226.56), SIMDE_FLOAT64_C( 374.42), SIMDE_FLOAT64_C( 490.85)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 143.45), SIMDE_FLOAT64_C( 16.49), SIMDE_FLOAT64_C( 323.05), SIMDE_FLOAT64_C( -564.38), SIMDE_FLOAT64_C( -932.37), SIMDE_FLOAT64_C( -126.95), SIMDE_FLOAT64_C( 46.50), SIMDE_FLOAT64_C( 812.07)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 138.19), SIMDE_FLOAT64_C( -758.53), SIMDE_FLOAT64_C( 216.18), SIMDE_FLOAT64_C( -869.86), SIMDE_FLOAT64_C( -556.61), SIMDE_FLOAT64_C( -56.13), SIMDE_FLOAT64_C( 935.72), SIMDE_FLOAT64_C( 467.65)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -587.51), SIMDE_FLOAT64_C( -331.04), SIMDE_FLOAT64_C( 711.75), SIMDE_FLOAT64_C( -149.95), SIMDE_FLOAT64_C( -625.31), SIMDE_FLOAT64_C( 387.07), SIMDE_FLOAT64_C( 510.51), SIMDE_FLOAT64_C( -791.87)), UINT8_C(197), simde_mm512_set_pd(SIMDE_FLOAT64_C( -995.18), SIMDE_FLOAT64_C( 720.96), SIMDE_FLOAT64_C( 859.59), SIMDE_FLOAT64_C( 20.65), SIMDE_FLOAT64_C( -207.40), SIMDE_FLOAT64_C( -632.30), SIMDE_FLOAT64_C( -783.67), SIMDE_FLOAT64_C( 389.24)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -619.09), SIMDE_FLOAT64_C( 681.55), SIMDE_FLOAT64_C( 914.89), SIMDE_FLOAT64_C( 240.13), SIMDE_FLOAT64_C( 14.06), SIMDE_FLOAT64_C( -669.70), SIMDE_FLOAT64_C( 554.04), SIMDE_FLOAT64_C( -602.80)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -611.02), SIMDE_FLOAT64_C( 640.52), SIMDE_FLOAT64_C( 711.75), SIMDE_FLOAT64_C( -149.95), SIMDE_FLOAT64_C( -625.31), SIMDE_FLOAT64_C( -536.00), SIMDE_FLOAT64_C( 510.51), SIMDE_FLOAT64_C( 2.04)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 28.17), SIMDE_FLOAT64_C( -545.33), SIMDE_FLOAT64_C( -993.85), SIMDE_FLOAT64_C( -636.74), SIMDE_FLOAT64_C( 315.22), SIMDE_FLOAT64_C( -560.48), SIMDE_FLOAT64_C( -264.88), SIMDE_FLOAT64_C( 866.66)), UINT8_C(152), simde_mm512_set_pd(SIMDE_FLOAT64_C( -378.42), SIMDE_FLOAT64_C( -112.43), SIMDE_FLOAT64_C( -147.85), SIMDE_FLOAT64_C( 481.16), SIMDE_FLOAT64_C( 980.68), SIMDE_FLOAT64_C( 999.62), SIMDE_FLOAT64_C( -784.92), SIMDE_FLOAT64_C( -245.05)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 838.26), SIMDE_FLOAT64_C( -863.14), SIMDE_FLOAT64_C( 336.07), SIMDE_FLOAT64_C( 237.32), SIMDE_FLOAT64_C( -803.75), SIMDE_FLOAT64_C( 816.96), SIMDE_FLOAT64_C( 217.54), SIMDE_FLOAT64_C( -660.63)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.27), SIMDE_FLOAT64_C( -545.33), SIMDE_FLOAT64_C( -993.85), SIMDE_FLOAT64_C( 224.06), SIMDE_FLOAT64_C( 768.50), SIMDE_FLOAT64_C( -560.48), SIMDE_FLOAT64_C( -264.88), SIMDE_FLOAT64_C( 866.66)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( 106.10), SIMDE_FLOAT64_C( 605.57), SIMDE_FLOAT64_C( 481.85), SIMDE_FLOAT64_C( 491.86), SIMDE_FLOAT64_C( -77.86), SIMDE_FLOAT64_C( -839.61), SIMDE_FLOAT64_C( 936.76), SIMDE_FLOAT64_C( -659.60)), UINT8_C( 7), simde_mm512_set_pd(SIMDE_FLOAT64_C( 505.82), SIMDE_FLOAT64_C( -629.98), SIMDE_FLOAT64_C( -555.91), SIMDE_FLOAT64_C( -911.21), SIMDE_FLOAT64_C( 603.24), SIMDE_FLOAT64_C( -95.72), SIMDE_FLOAT64_C( 864.74), SIMDE_FLOAT64_C( 280.80)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 570.36), SIMDE_FLOAT64_C( 765.47), SIMDE_FLOAT64_C( 327.71), SIMDE_FLOAT64_C( -605.34), SIMDE_FLOAT64_C( 509.13), SIMDE_FLOAT64_C( -583.43), SIMDE_FLOAT64_C( -208.99), SIMDE_FLOAT64_C( 835.11)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 106.10), SIMDE_FLOAT64_C( 605.57), SIMDE_FLOAT64_C( 481.85), SIMDE_FLOAT64_C( 491.86), SIMDE_FLOAT64_C( -77.86), SIMDE_FLOAT64_C( -2.27), SIMDE_FLOAT64_C( 3.25), SIMDE_FLOAT64_C( 2.00)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -925.64), SIMDE_FLOAT64_C( 122.27), SIMDE_FLOAT64_C( -971.29), SIMDE_FLOAT64_C( -200.64), SIMDE_FLOAT64_C( 268.43), SIMDE_FLOAT64_C( 995.23), SIMDE_FLOAT64_C( 958.62), SIMDE_FLOAT64_C( -530.89)), UINT8_C(252), simde_mm512_set_pd(SIMDE_FLOAT64_C( -311.17), SIMDE_FLOAT64_C( -787.17), SIMDE_FLOAT64_C( -427.34), SIMDE_FLOAT64_C( 839.17), SIMDE_FLOAT64_C( -404.83), SIMDE_FLOAT64_C( 559.72), SIMDE_FLOAT64_C( 982.82), SIMDE_FLOAT64_C( -251.36)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 643.61), SIMDE_FLOAT64_C( 953.53), SIMDE_FLOAT64_C( -469.49), SIMDE_FLOAT64_C( -8.31), SIMDE_FLOAT64_C( 325.63), SIMDE_FLOAT64_C( -753.50), SIMDE_FLOAT64_C( -462.28), SIMDE_FLOAT64_C( -779.29)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.01), SIMDE_FLOAT64_C( 785.01), SIMDE_FLOAT64_C( -385.33), SIMDE_FLOAT64_C( 2.01), SIMDE_FLOAT64_C( 260.50), SIMDE_FLOAT64_C( 545.50), SIMDE_FLOAT64_C( 958.62), SIMDE_FLOAT64_C( -530.89)) }, { simde_mm512_set_pd(SIMDE_FLOAT64_C( -62.82), SIMDE_FLOAT64_C( -95.66), SIMDE_FLOAT64_C( 484.39), SIMDE_FLOAT64_C( -736.85), SIMDE_FLOAT64_C( 893.63), SIMDE_FLOAT64_C( -173.06), SIMDE_FLOAT64_C( 113.69), SIMDE_FLOAT64_C( 198.15)), UINT8_C(239), simde_mm512_set_pd(SIMDE_FLOAT64_C( 440.07), SIMDE_FLOAT64_C( 639.74), SIMDE_FLOAT64_C( 566.84), SIMDE_FLOAT64_C( 207.87), SIMDE_FLOAT64_C( -578.31), SIMDE_FLOAT64_C( -772.29), SIMDE_FLOAT64_C( 70.78), SIMDE_FLOAT64_C( 181.63)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -750.95), SIMDE_FLOAT64_C( 172.27), SIMDE_FLOAT64_C( -538.71), SIMDE_FLOAT64_C( -512.10), SIMDE_FLOAT64_C( -406.87), SIMDE_FLOAT64_C( -470.10), SIMDE_FLOAT64_C( -652.40), SIMDE_FLOAT64_C( -121.85)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.38), SIMDE_FLOAT64_C( 2.19), SIMDE_FLOAT64_C( 530.58), SIMDE_FLOAT64_C( -736.85), SIMDE_FLOAT64_C( -2.00), SIMDE_FLOAT64_C( -3.02), SIMDE_FLOAT64_C( 2.02), SIMDE_FLOAT64_C( 44.41)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_mask_and_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_and_ps(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask16 k; simde__m512 a; simde__m512 b; simde__m512 r; } test_vec[8] = { { UINT16_C(57131), simde_mm512_set_ps(SIMDE_FLOAT32_C( 399.48), SIMDE_FLOAT32_C( -238.06), SIMDE_FLOAT32_C( -893.32), SIMDE_FLOAT32_C( -435.26), SIMDE_FLOAT32_C( 522.86), SIMDE_FLOAT32_C( -612.44), SIMDE_FLOAT32_C( 652.00), SIMDE_FLOAT32_C( 895.17), SIMDE_FLOAT32_C( -820.93), SIMDE_FLOAT32_C( 533.04), SIMDE_FLOAT32_C( 403.71), SIMDE_FLOAT32_C( 282.24), SIMDE_FLOAT32_C( 883.67), SIMDE_FLOAT32_C( 22.67), SIMDE_FLOAT32_C( 804.53), SIMDE_FLOAT32_C( 307.97)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 932.69), SIMDE_FLOAT32_C( 912.86), SIMDE_FLOAT32_C( 409.21), SIMDE_FLOAT32_C( 585.68), SIMDE_FLOAT32_C( -59.99), SIMDE_FLOAT32_C( -146.01), SIMDE_FLOAT32_C( 160.06), SIMDE_FLOAT32_C( -248.23), SIMDE_FLOAT32_C( 780.27), SIMDE_FLOAT32_C( -642.04), SIMDE_FLOAT32_C( -94.76), SIMDE_FLOAT32_C( 563.52), SIMDE_FLOAT32_C( -953.85), SIMDE_FLOAT32_C( -735.06), SIMDE_FLOAT32_C( 312.07), SIMDE_FLOAT32_C( -630.77)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 3.02), SIMDE_FLOAT32_C( 3.56), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.25), SIMDE_FLOAT32_C( 2.04), SIMDE_FLOAT32_C( -2.25), SIMDE_FLOAT32_C( 2.50), SIMDE_FLOAT32_C( 3.38), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 68.75), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 817.54), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.13), SIMDE_FLOAT32_C( 2.40)) }, { UINT16_C(37107), simde_mm512_set_ps(SIMDE_FLOAT32_C( 145.79), SIMDE_FLOAT32_C( -588.79), SIMDE_FLOAT32_C( 895.99), SIMDE_FLOAT32_C( -454.35), SIMDE_FLOAT32_C( 444.71), SIMDE_FLOAT32_C( 343.63), SIMDE_FLOAT32_C( -33.93), SIMDE_FLOAT32_C( -461.47), SIMDE_FLOAT32_C( -87.51), SIMDE_FLOAT32_C( -587.34), SIMDE_FLOAT32_C( -54.40), SIMDE_FLOAT32_C( -339.84), SIMDE_FLOAT32_C( -976.14), SIMDE_FLOAT32_C( 850.15), SIMDE_FLOAT32_C( -700.02), SIMDE_FLOAT32_C( -579.46)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 720.42), SIMDE_FLOAT32_C( -585.67), SIMDE_FLOAT32_C( -388.81), SIMDE_FLOAT32_C( 165.49), SIMDE_FLOAT32_C( 525.65), SIMDE_FLOAT32_C( 441.42), SIMDE_FLOAT32_C( 424.69), SIMDE_FLOAT32_C( 567.94), SIMDE_FLOAT32_C( -243.26), SIMDE_FLOAT32_C( 977.37), SIMDE_FLOAT32_C( -705.87), SIMDE_FLOAT32_C( 365.97), SIMDE_FLOAT32_C( -511.37), SIMDE_FLOAT32_C( 335.33), SIMDE_FLOAT32_C( -871.52), SIMDE_FLOAT32_C( -805.60)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 2.25), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 161.17), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -40.75), SIMDE_FLOAT32_C( 577.34), SIMDE_FLOAT32_C( -2.25), SIMDE_FLOAT32_C( 321.81), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -548.02), SIMDE_FLOAT32_C( -513.07)) }, { UINT16_C(56908), simde_mm512_set_ps(SIMDE_FLOAT32_C( 813.26), SIMDE_FLOAT32_C( -716.74), SIMDE_FLOAT32_C( -548.55), SIMDE_FLOAT32_C( -83.12), SIMDE_FLOAT32_C( 301.84), SIMDE_FLOAT32_C( -843.69), SIMDE_FLOAT32_C( -236.76), SIMDE_FLOAT32_C( -34.42), SIMDE_FLOAT32_C( -591.83), SIMDE_FLOAT32_C( 11.80), SIMDE_FLOAT32_C( 521.39), SIMDE_FLOAT32_C( -937.14), SIMDE_FLOAT32_C( -662.16), SIMDE_FLOAT32_C( -974.03), SIMDE_FLOAT32_C( 576.46), SIMDE_FLOAT32_C( 704.69)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 914.44), SIMDE_FLOAT32_C( -904.34), SIMDE_FLOAT32_C( -4.84), SIMDE_FLOAT32_C( -59.72), SIMDE_FLOAT32_C( -523.01), SIMDE_FLOAT32_C( 236.78), SIMDE_FLOAT32_C( 88.72), SIMDE_FLOAT32_C( -251.99), SIMDE_FLOAT32_C( -782.65), SIMDE_FLOAT32_C( -38.86), SIMDE_FLOAT32_C( 670.53), SIMDE_FLOAT32_C( 706.52), SIMDE_FLOAT32_C( 990.40), SIMDE_FLOAT32_C( -812.48), SIMDE_FLOAT32_C( -152.33), SIMDE_FLOAT32_C( 172.86)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 768.25), SIMDE_FLOAT32_C( -648.08), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -41.53), SIMDE_FLOAT32_C( 2.04), SIMDE_FLOAT32_C( 3.01), SIMDE_FLOAT32_C( 40.06), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.38), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 662.13), SIMDE_FLOAT32_C( -780.01), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(13045), simde_mm512_set_ps(SIMDE_FLOAT32_C( -696.33), SIMDE_FLOAT32_C( -640.98), SIMDE_FLOAT32_C( -234.04), SIMDE_FLOAT32_C( 691.30), SIMDE_FLOAT32_C( 422.16), SIMDE_FLOAT32_C( -0.53), SIMDE_FLOAT32_C( 150.98), SIMDE_FLOAT32_C( -727.93), SIMDE_FLOAT32_C( -292.95), SIMDE_FLOAT32_C( -168.48), SIMDE_FLOAT32_C( 430.75), SIMDE_FLOAT32_C( 298.75), SIMDE_FLOAT32_C( -938.39), SIMDE_FLOAT32_C( 166.50), SIMDE_FLOAT32_C( 295.10), SIMDE_FLOAT32_C( -66.94)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 725.67), SIMDE_FLOAT32_C( 691.57), SIMDE_FLOAT32_C( 408.92), SIMDE_FLOAT32_C( -190.91), SIMDE_FLOAT32_C( 682.56), SIMDE_FLOAT32_C( 311.99), SIMDE_FLOAT32_C( -213.61), SIMDE_FLOAT32_C( -160.20), SIMDE_FLOAT32_C( -421.91), SIMDE_FLOAT32_C( 600.12), SIMDE_FLOAT32_C( 657.47), SIMDE_FLOAT32_C( 816.91), SIMDE_FLOAT32_C( 267.68), SIMDE_FLOAT32_C( 898.52), SIMDE_FLOAT32_C( -80.12), SIMDE_FLOAT32_C( -724.23)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 200.00), SIMDE_FLOAT32_C( 2.70), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 148.59), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -292.88), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 2.07), SIMDE_FLOAT32_C( 2.06), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.51), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -2.08)) }, { UINT16_C(11913), simde_mm512_set_ps(SIMDE_FLOAT32_C( 315.17), SIMDE_FLOAT32_C( -863.78), SIMDE_FLOAT32_C( 344.73), SIMDE_FLOAT32_C( -570.00), SIMDE_FLOAT32_C( -265.79), SIMDE_FLOAT32_C( 403.67), SIMDE_FLOAT32_C( -62.80), SIMDE_FLOAT32_C( 251.47), SIMDE_FLOAT32_C( 143.15), SIMDE_FLOAT32_C( 960.55), SIMDE_FLOAT32_C( -156.81), SIMDE_FLOAT32_C( 258.89), SIMDE_FLOAT32_C( 14.13), SIMDE_FLOAT32_C( 117.08), SIMDE_FLOAT32_C( -266.20), SIMDE_FLOAT32_C( 383.43)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -568.28), SIMDE_FLOAT32_C( -745.49), SIMDE_FLOAT32_C( -964.75), SIMDE_FLOAT32_C( 259.38), SIMDE_FLOAT32_C( 750.99), SIMDE_FLOAT32_C( -521.20), SIMDE_FLOAT32_C( 513.21), SIMDE_FLOAT32_C( 787.79), SIMDE_FLOAT32_C( 316.72), SIMDE_FLOAT32_C( -19.08), SIMDE_FLOAT32_C( -845.60), SIMDE_FLOAT32_C( 815.31), SIMDE_FLOAT32_C( -301.01), SIMDE_FLOAT32_C( 479.36), SIMDE_FLOAT32_C( -159.67), SIMDE_FLOAT32_C( -155.94)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.50), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.01), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 142.02), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 8.13), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 155.69)) }, { UINT16_C(38742), simde_mm512_set_ps(SIMDE_FLOAT32_C( -500.21), SIMDE_FLOAT32_C( -899.42), SIMDE_FLOAT32_C( 770.51), SIMDE_FLOAT32_C( 777.58), SIMDE_FLOAT32_C( 547.07), SIMDE_FLOAT32_C( 747.18), SIMDE_FLOAT32_C( 16.17), SIMDE_FLOAT32_C( 859.01), SIMDE_FLOAT32_C( 78.72), SIMDE_FLOAT32_C( -378.16), SIMDE_FLOAT32_C( -980.04), SIMDE_FLOAT32_C( 143.56), SIMDE_FLOAT32_C( -706.63), SIMDE_FLOAT32_C( -986.84), SIMDE_FLOAT32_C( -673.32), SIMDE_FLOAT32_C( -774.96)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -321.38), SIMDE_FLOAT32_C( -244.51), SIMDE_FLOAT32_C( 579.94), SIMDE_FLOAT32_C( 895.47), SIMDE_FLOAT32_C( -321.30), SIMDE_FLOAT32_C( 92.97), SIMDE_FLOAT32_C( -270.40), SIMDE_FLOAT32_C( -439.43), SIMDE_FLOAT32_C( 971.85), SIMDE_FLOAT32_C( 799.33), SIMDE_FLOAT32_C( -17.61), SIMDE_FLOAT32_C( -762.15), SIMDE_FLOAT32_C( -813.48), SIMDE_FLOAT32_C( 494.42), SIMDE_FLOAT32_C( 374.64), SIMDE_FLOAT32_C( -744.47)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -320.13), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 777.06), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.89), SIMDE_FLOAT32_C( 16.13), SIMDE_FLOAT32_C( 3.29), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.08), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.23), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 3.85), SIMDE_FLOAT32_C( 2.63), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(53846), simde_mm512_set_ps(SIMDE_FLOAT32_C( 400.20), SIMDE_FLOAT32_C( 275.50), SIMDE_FLOAT32_C( 916.86), SIMDE_FLOAT32_C( -531.67), SIMDE_FLOAT32_C( -909.37), SIMDE_FLOAT32_C( 993.65), SIMDE_FLOAT32_C( 633.64), SIMDE_FLOAT32_C( -178.42), SIMDE_FLOAT32_C( 412.35), SIMDE_FLOAT32_C( -571.03), SIMDE_FLOAT32_C( 345.26), SIMDE_FLOAT32_C( 493.12), SIMDE_FLOAT32_C( -719.68), SIMDE_FLOAT32_C( 769.35), SIMDE_FLOAT32_C( -373.84), SIMDE_FLOAT32_C( -540.22)), simde_mm512_set_ps(SIMDE_FLOAT32_C( -282.19), SIMDE_FLOAT32_C( -584.18), SIMDE_FLOAT32_C( 433.06), SIMDE_FLOAT32_C( 752.23), SIMDE_FLOAT32_C( -792.10), SIMDE_FLOAT32_C( 940.65), SIMDE_FLOAT32_C( -237.54), SIMDE_FLOAT32_C( -796.45), SIMDE_FLOAT32_C( 821.11), SIMDE_FLOAT32_C( -769.48), SIMDE_FLOAT32_C( 951.19), SIMDE_FLOAT32_C( 526.89), SIMDE_FLOAT32_C( 481.01), SIMDE_FLOAT32_C( -678.70), SIMDE_FLOAT32_C( 690.79), SIMDE_FLOAT32_C( -617.07)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 272.19), SIMDE_FLOAT32_C( 2.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 528.17), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.19), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -513.01), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.04), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 512.07), SIMDE_FLOAT32_C( 2.63), SIMDE_FLOAT32_C( 0.00)) }, { UINT16_C(45516), simde_mm512_set_ps(SIMDE_FLOAT32_C( -637.18), SIMDE_FLOAT32_C( 934.54), SIMDE_FLOAT32_C( 112.29), SIMDE_FLOAT32_C( 139.60), SIMDE_FLOAT32_C( -371.31), SIMDE_FLOAT32_C( -676.65), SIMDE_FLOAT32_C( -607.44), SIMDE_FLOAT32_C( -108.80), SIMDE_FLOAT32_C( -631.32), SIMDE_FLOAT32_C( 553.47), SIMDE_FLOAT32_C( -653.07), SIMDE_FLOAT32_C( -272.71), SIMDE_FLOAT32_C( -438.05), SIMDE_FLOAT32_C( -69.28), SIMDE_FLOAT32_C( 220.30), SIMDE_FLOAT32_C( -879.60)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 695.29), SIMDE_FLOAT32_C( -288.10), SIMDE_FLOAT32_C( 8.22), SIMDE_FLOAT32_C( 267.50), SIMDE_FLOAT32_C( -160.08), SIMDE_FLOAT32_C( 251.69), SIMDE_FLOAT32_C( 416.95), SIMDE_FLOAT32_C( 429.19), SIMDE_FLOAT32_C( -938.09), SIMDE_FLOAT32_C( -996.83), SIMDE_FLOAT32_C( 772.01), SIMDE_FLOAT32_C( -88.73), SIMDE_FLOAT32_C( -661.22), SIMDE_FLOAT32_C( -945.44), SIMDE_FLOAT32_C( 528.59), SIMDE_FLOAT32_C( 677.63)), simde_mm512_set_ps(SIMDE_FLOAT32_C( 565.04), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.01), SIMDE_FLOAT32_C( 129.50), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 104.30), SIMDE_FLOAT32_C( -546.07), SIMDE_FLOAT32_C( 544.31), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -2.02), SIMDE_FLOAT32_C( -2.13), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512 r = simde_mm512_maskz_and_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_and_pd(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512d a; simde__m512d b; simde__m512d r; } test_vec[8] = { { UINT8_C( 62), simde_mm512_set_pd(SIMDE_FLOAT64_C( 337.23), SIMDE_FLOAT64_C( -706.51), SIMDE_FLOAT64_C( -51.03), SIMDE_FLOAT64_C( -11.12), SIMDE_FLOAT64_C( 780.39), SIMDE_FLOAT64_C( 482.32), SIMDE_FLOAT64_C( -313.20), SIMDE_FLOAT64_C( 986.27)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -459.33), SIMDE_FLOAT64_C( 566.75), SIMDE_FLOAT64_C( 454.16), SIMDE_FLOAT64_C( -566.29), SIMDE_FLOAT64_C( 217.01), SIMDE_FLOAT64_C( -444.68), SIMDE_FLOAT64_C( 725.53), SIMDE_FLOAT64_C( -673.17)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 48.02), SIMDE_FLOAT64_C( -2.02), SIMDE_FLOAT64_C( 3.02), SIMDE_FLOAT64_C( 416.00), SIMDE_FLOAT64_C( 2.31), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(178), simde_mm512_set_pd(SIMDE_FLOAT64_C( 988.70), SIMDE_FLOAT64_C( 952.56), SIMDE_FLOAT64_C( -917.57), SIMDE_FLOAT64_C( -161.93), SIMDE_FLOAT64_C( 553.05), SIMDE_FLOAT64_C( 358.83), SIMDE_FLOAT64_C( -335.21), SIMDE_FLOAT64_C( 243.33)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 368.67), SIMDE_FLOAT64_C( -326.68), SIMDE_FLOAT64_C( -767.44), SIMDE_FLOAT64_C( -965.45), SIMDE_FLOAT64_C( 160.34), SIMDE_FLOAT64_C( -153.49), SIMDE_FLOAT64_C( 842.87), SIMDE_FLOAT64_C( -959.77)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.75), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -661.06), SIMDE_FLOAT64_C( -2.52), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 2.04), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(233), simde_mm512_set_pd(SIMDE_FLOAT64_C( 789.99), SIMDE_FLOAT64_C( -0.83), SIMDE_FLOAT64_C( -595.87), SIMDE_FLOAT64_C( -556.04), SIMDE_FLOAT64_C( -673.58), SIMDE_FLOAT64_C( 820.52), SIMDE_FLOAT64_C( 763.24), SIMDE_FLOAT64_C( 747.54)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -863.51), SIMDE_FLOAT64_C( 297.93), SIMDE_FLOAT64_C( 664.70), SIMDE_FLOAT64_C( 43.00), SIMDE_FLOAT64_C( 283.69), SIMDE_FLOAT64_C( -882.73), SIMDE_FLOAT64_C( 56.70), SIMDE_FLOAT64_C( -683.31)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 789.50), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 528.57), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 2.13), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 683.04)) }, { UINT8_C( 29), simde_mm512_set_pd(SIMDE_FLOAT64_C( -942.62), SIMDE_FLOAT64_C( 810.42), SIMDE_FLOAT64_C( -781.08), SIMDE_FLOAT64_C( 565.31), SIMDE_FLOAT64_C( -528.23), SIMDE_FLOAT64_C( -642.03), SIMDE_FLOAT64_C( -124.04), SIMDE_FLOAT64_C( -13.65)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 20.85), SIMDE_FLOAT64_C( -517.24), SIMDE_FLOAT64_C( -21.32), SIMDE_FLOAT64_C( 729.98), SIMDE_FLOAT64_C( -763.15), SIMDE_FLOAT64_C( 885.38), SIMDE_FLOAT64_C( 783.63), SIMDE_FLOAT64_C( 470.19)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 529.29), SIMDE_FLOAT64_C( -528.13), SIMDE_FLOAT64_C( 512.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 12.63)) }, { UINT8_C(102), simde_mm512_set_pd(SIMDE_FLOAT64_C( -36.60), SIMDE_FLOAT64_C( -71.02), SIMDE_FLOAT64_C( 654.55), SIMDE_FLOAT64_C( -335.18), SIMDE_FLOAT64_C( -889.86), SIMDE_FLOAT64_C( -624.64), SIMDE_FLOAT64_C( 369.01), SIMDE_FLOAT64_C( 798.90)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -217.14), SIMDE_FLOAT64_C( -334.27), SIMDE_FLOAT64_C( 522.28), SIMDE_FLOAT64_C( 754.78), SIMDE_FLOAT64_C( -987.63), SIMDE_FLOAT64_C( 746.58), SIMDE_FLOAT64_C( 358.61), SIMDE_FLOAT64_C( -154.14)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -67.00), SIMDE_FLOAT64_C( 522.02), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 608.50), SIMDE_FLOAT64_C( 352.00), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(126), simde_mm512_set_pd(SIMDE_FLOAT64_C( -16.31), SIMDE_FLOAT64_C( -95.18), SIMDE_FLOAT64_C( 860.06), SIMDE_FLOAT64_C( 464.41), SIMDE_FLOAT64_C( 822.39), SIMDE_FLOAT64_C( 185.79), SIMDE_FLOAT64_C( 959.83), SIMDE_FLOAT64_C( -98.41)), simde_mm512_set_pd(SIMDE_FLOAT64_C( -560.42), SIMDE_FLOAT64_C( -521.57), SIMDE_FLOAT64_C( -947.45), SIMDE_FLOAT64_C( 99.55), SIMDE_FLOAT64_C( 108.53), SIMDE_FLOAT64_C( 194.26), SIMDE_FLOAT64_C( 449.89), SIMDE_FLOAT64_C( 718.27)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( -2.04), SIMDE_FLOAT64_C( 784.01), SIMDE_FLOAT64_C( 96.03), SIMDE_FLOAT64_C( 3.14), SIMDE_FLOAT64_C( 128.26), SIMDE_FLOAT64_C( 3.51), SIMDE_FLOAT64_C( 0.00)) }, { UINT8_C(231), simde_mm512_set_pd(SIMDE_FLOAT64_C( -343.46), SIMDE_FLOAT64_C( 643.05), SIMDE_FLOAT64_C( 758.23), SIMDE_FLOAT64_C( 243.41), SIMDE_FLOAT64_C( -569.27), SIMDE_FLOAT64_C( 62.99), SIMDE_FLOAT64_C( 403.36), SIMDE_FLOAT64_C( -111.26)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 594.69), SIMDE_FLOAT64_C( 416.92), SIMDE_FLOAT64_C( 294.94), SIMDE_FLOAT64_C( -386.69), SIMDE_FLOAT64_C( 444.27), SIMDE_FLOAT64_C( 112.48), SIMDE_FLOAT64_C( 775.25), SIMDE_FLOAT64_C( 973.66)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.01), SIMDE_FLOAT64_C( 2.00), SIMDE_FLOAT64_C( 2.27), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 56.24), SIMDE_FLOAT64_C( 3.02), SIMDE_FLOAT64_C( 3.28)) }, { UINT8_C(248), simde_mm512_set_pd(SIMDE_FLOAT64_C( 559.94), SIMDE_FLOAT64_C( -177.36), SIMDE_FLOAT64_C( 459.52), SIMDE_FLOAT64_C( 151.00), SIMDE_FLOAT64_C( -261.20), SIMDE_FLOAT64_C( 619.75), SIMDE_FLOAT64_C( -541.43), SIMDE_FLOAT64_C( -420.37)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 279.51), SIMDE_FLOAT64_C( 143.05), SIMDE_FLOAT64_C( 835.37), SIMDE_FLOAT64_C( -486.11), SIMDE_FLOAT64_C( 461.53), SIMDE_FLOAT64_C( 410.57), SIMDE_FLOAT64_C( -362.30), SIMDE_FLOAT64_C( -345.54)), simde_mm512_set_pd(SIMDE_FLOAT64_C( 2.18), SIMDE_FLOAT64_C( 129.05), SIMDE_FLOAT64_C( 3.01), SIMDE_FLOAT64_C( 147.00), SIMDE_FLOAT64_C( 261.01), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00), SIMDE_FLOAT64_C( 0.00)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512d r = simde_mm512_maskz_and_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; } static int test_simde_mm512_and_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( 2103907232), INT32_C(-1995421302), INT32_C( 1328084931), INT32_C( -379562245), INT32_C( 1144599747), INT32_C(-1418414219), INT32_C( 1379143176), INT32_C(-2075387410), INT32_C(-1152868472), INT32_C( 1425101887), INT32_C(-1626225579), INT32_C( 2014677400), INT32_C( 1108777022), INT32_C( 877429697), INT32_C( 1558575022), INT32_C( 651318578)), simde_mm512_set_epi32(INT32_C( -803993576), INT32_C( 163813867), INT32_C(-1017884831), INT32_C(-1258992440), INT32_C( 1182354404), INT32_C(-1425047283), INT32_C( 1708628167), INT32_C(-2051115159), INT32_C( 143410800), INT32_C(-1041180848), INT32_C(-1023702255), INT32_C( -240255997), INT32_C( 978107452), INT32_C(-1343783755), INT32_C( -880122145), INT32_C( 1183808039)), simde_mm512_set_epi32(INT32_C( 1342439424), INT32_C( 150997386), INT32_C( 1124091713), INT32_C(-1604303672), INT32_C( 1144586432), INT32_C(-1425768187), INT32_C( 1075054592), INT32_C(-2079583896), INT32_C( 134743552), INT32_C( 1089491984), INT32_C(-2112782319), INT32_C( 1879410688), INT32_C( 33855548), INT32_C( 608436353), INT32_C( 1216374414), INT32_C( 109203490)) }, { simde_mm512_set_epi32(INT32_C( 1231278072), INT32_C( 832865002), INT32_C(-1694490420), INT32_C( -466764866), INT32_C( 1702721236), INT32_C( 2092439418), INT32_C( 611933067), INT32_C(-1184445720), INT32_C(-1689922195), INT32_C(-1140532352), INT32_C( 158346875), INT32_C( 1089717474), INT32_C( 1230253618), INT32_C( 1504968720), INT32_C( 653725328), INT32_C( 1822881045)), simde_mm512_set_epi32(INT32_C(-1605590998), INT32_C( 1810066171), INT32_C( -10167007), INT32_C( 1359569321), INT32_C(-1430119757), INT32_C( 256064867), INT32_C( 788618356), INT32_C( -392789188), INT32_C( -613873031), INT32_C( 773158597), INT32_C( -194106681), INT32_C( 165465349), INT32_C(-1346434037), INT32_C(-1412186885), INT32_C( -632750822), INT32_C( 1966832804)), simde_mm512_set_epi32(INT32_C( 4227112), INT32_C( 564134634), INT32_C(-1694498816), INT32_C( 1074340264), INT32_C( 541069968), INT32_C( 201332066), INT32_C( 604067840), INT32_C(-1475968472), INT32_C(-1690238871), INT32_C( 738480768), INT32_C( 6302275), INT32_C( 13681664), INT32_C( 152308738), INT32_C( 160432144), INT32_C( 37751824), INT32_C( 1679979524)) }, { simde_mm512_set_epi32(INT32_C(-1888865381), INT32_C( 15541452), INT32_C( -670396349), INT32_C(-1090081489), INT32_C( 116025329), INT32_C( 130963716), INT32_C( 230354364), INT32_C( 1174065929), INT32_C( 1971493681), INT32_C(-1343257591), INT32_C(-1419733408), INT32_C( 659096905), INT32_C( 183711411), INT32_C( -298263182), INT32_C(-1286938208), INT32_C( 537660993)), simde_mm512_set_epi32(INT32_C( 1616282233), INT32_C(-2132390836), INT32_C( -153917613), INT32_C( 736513734), INT32_C(-1311057544), INT32_C( 505476811), INT32_C( 1767695145), INT32_C( 157469724), INT32_C( -371725260), INT32_C( 1996701751), INT32_C(-1377678442), INT32_C( -132601652), INT32_C( -903948497), INT32_C( -794660034), INT32_C( 173952757), INT32_C( 1507611872)), simde_mm512_set_epi32(INT32_C( 4325913), INT32_C( 14943308), INT32_C( -805175229), INT32_C( 721816582), INT32_C( 13255024), INT32_C( 100683776), INT32_C( 152625448), INT32_C( 23248904), INT32_C( 1635944496), INT32_C( 654508033), INT32_C(-1453325824), INT32_C( 537395272), INT32_C( 168957475), INT32_C(-1071623886), INT32_C( 38420640), INT32_C( 787520)) }, { simde_mm512_set_epi32(INT32_C( -748350470), INT32_C( 1755197901), INT32_C( 1090059253), INT32_C( 1329426651), INT32_C(-1604442789), INT32_C( 878047098), INT32_C(-1682276633), INT32_C( -78811559), INT32_C( -973139496), INT32_C( 91517188), INT32_C( 37440120), INT32_C( 829401648), INT32_C( 860279707), INT32_C( 218373799), INT32_C( -362113249), INT32_C( -694086277)), simde_mm512_set_epi32(INT32_C( 892006932), INT32_C(-1158010747), INT32_C( -700127305), INT32_C(-1058033333), INT32_C( 2135825335), INT32_C( -510043422), INT32_C( -139544800), INT32_C( 95748631), INT32_C( 1671238992), INT32_C( 1305915968), INT32_C( -582790199), INT32_C( 1758236157), INT32_C( 986405639), INT32_C( 1121234438), INT32_C( -731393712), INT32_C( -784753228)), simde_mm512_set_epi32(INT32_C( 287314448), INT32_C( 681189509), INT32_C( 1077994421), INT32_C( 1076703307), INT32_C( 541982995), INT32_C( 538004066), INT32_C(-1817561568), INT32_C( 17105425), INT32_C( 1100812624), INT32_C( 89403392), INT32_C( 213576), INT32_C( 541886512), INT32_C( 843207427), INT32_C( 265734), INT32_C(-1067282160), INT32_C( -803138256)) }, { simde_mm512_set_epi32(INT32_C( 1347900829), INT32_C(-1792354715), INT32_C( -371177698), INT32_C( 255088013), INT32_C( 1961231505), INT32_C( -659343095), INT32_C( 1620234692), INT32_C( 843561067), INT32_C( 1265300992), INT32_C(-1675104490), INT32_C( -873664156), INT32_C(-2045109653), INT32_C( 2057630636), INT32_C( 335188274), INT32_C( 1272591061), INT32_C( -327494197)), simde_mm512_set_epi32(INT32_C(-2095740678), INT32_C(-1857753563), INT32_C(-1236342636), INT32_C( 1439297909), INT32_C( -576201057), INT32_C( 1488873085), INT32_C(-1369304746), INT32_C( 567848046), INT32_C( 1335236564), INT32_C( -942680632), INT32_C(-1512916560), INT32_C( -697747292), INT32_C(-1779695782), INT32_C( 491327584), INT32_C( -563681080), INT32_C( 1527319596)), simde_mm512_set_epi32(INT32_C( 1376408), INT32_C(-1862220251), INT32_C(-1606402028), INT32_C( 83906821), INT32_C( 1420166289), INT32_C( 1488068617), INT32_C( 537006404), INT32_C( 541108330), INT32_C( 1258427904), INT32_C(-2079865600), INT32_C(-2118078176), INT32_C(-2046289888), INT32_C( 278983432), INT32_C( 289935392), INT32_C( 1245847744), INT32_C( 1208484872)) }, { simde_mm512_set_epi32(INT32_C( 131205926), INT32_C( 2061955170), INT32_C( 37003574), INT32_C( 1649229141), INT32_C( 612060260), INT32_C(-1402263233), INT32_C( -513572270), INT32_C( 701923816), INT32_C( 511549547), INT32_C( 969083331), INT32_C( 1364542630), INT32_C( -822209230), INT32_C(-1549704264), INT32_C(-1157339218), INT32_C(-2025137124), INT32_C(-1631723043)), simde_mm512_set_epi32(INT32_C( 424825857), INT32_C( 434716327), INT32_C( 1663095683), INT32_C( 1730428966), INT32_C( -252943126), INT32_C( 373990324), INT32_C( 2100741912), INT32_C(-1005385937), INT32_C(-1470990839), INT32_C(-1200692008), INT32_C(-2098508971), INT32_C( 488824783), INT32_C( 1647236603), INT32_C(-1221154150), INT32_C(-1012750616), INT32_C( 1849794587)), simde_mm512_set_epi32(INT32_C( 22151168), INT32_C( 417345570), INT32_C( 35684610), INT32_C( 1644429316), INT32_C( 543704160), INT32_C( 71967028), INT32_C( 1629651472), INT32_C( 1179944), INT32_C( 139468809), INT32_C( 943849664), INT32_C( 4276228), INT32_C( 203560194), INT32_C( 572539320), INT32_C(-1291574646), INT32_C(-2096987128), INT32_C( 234987545)) }, { simde_mm512_set_epi32(INT32_C(-2080136983), INT32_C( -623547588), INT32_C( 1015056564), INT32_C(-1333355305), INT32_C( 1925062912), INT32_C( 330138155), INT32_C( -444195598), INT32_C( 874806560), INT32_C( 319126943), INT32_C( 475403370), INT32_C( -873396634), INT32_C(-1835948135), INT32_C(-1570208244), INT32_C( -244400530), INT32_C( 1126824505), INT32_C( 1036340167)), simde_mm512_set_epi32(INT32_C(-1989715102), INT32_C( 1785805415), INT32_C( 1739507553), INT32_C(-1932540399), INT32_C( -641363523), INT32_C( 72499486), INT32_C(-2005610208), INT32_C( -497730582), INT32_C( 312611747), INT32_C( 793357988), INT32_C( 607421194), INT32_C(-1375787856), INT32_C( 1799684145), INT32_C( -551549754), INT32_C( 1249951615), INT32_C( 1447553529)), simde_mm512_set_epi32(INT32_C(-2147286944), INT32_C( 1246833188), INT32_C( 612401184), INT32_C(-2138668015), INT32_C( 1350828288), INT32_C( 10), INT32_C(-2147217376), INT32_C( 537147680), INT32_C( 301994371), INT32_C( 205521952), INT32_C( 3146242), INT32_C(-2137971568), INT32_C( 574619648), INT32_C( -786430906), INT32_C( 1107343929), INT32_C( 340085185)) }, { simde_mm512_set_epi32(INT32_C( 423295425), INT32_C( -460615607), INT32_C( 1208771148), INT32_C(-2128303155), INT32_C( -738338972), INT32_C( 2110676823), INT32_C(-1405320678), INT32_C(-2007459833), INT32_C( 1043638626), INT32_C( -542891463), INT32_C( 629803756), INT32_C(-1216921331), INT32_C( -301860714), INT32_C( 317296385), INT32_C( 1833800187), INT32_C( -645353377)), simde_mm512_set_epi32(INT32_C( -257851255), INT32_C( -479522767), INT32_C( 745275629), INT32_C(-1783480446), INT32_C(-1431666964), INT32_C( -422291816), INT32_C( -309252994), INT32_C(-2112946871), INT32_C(-2123521230), INT32_C( -883174176), INT32_C( -332498316), INT32_C( 142889340), INT32_C( 1231002435), INT32_C( 1681334055), INT32_C( 138372594), INT32_C( -878588971)), simde_mm512_set_epi32(INT32_C( 270565505), INT32_C( -536145919), INT32_C( 135004236), INT32_C(-2128598144), INT32_C(-2102897052), INT32_C( 1690588688), INT32_C(-1408237542), INT32_C(-2146920447), INT32_C( 2400546), INT32_C( -889192416), INT32_C( 604637796), INT32_C( 278796), INT32_C( 1208064002), INT32_C( 2166529), INT32_C( 135070194), INT32_C( -914325419)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_and_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_mask_and_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( 2103907232), INT32_C(-1995421302), INT32_C( 1328084931), INT32_C( -379562245), INT32_C( 1144599747), INT32_C(-1418414219), INT32_C( 1379143176), INT32_C(-2075387410), INT32_C(-1152868472), INT32_C( 1425101887), INT32_C(-1626225579), INT32_C( 2014677400), INT32_C( 1108777022), INT32_C( 877429697), INT32_C( 1558575022), INT32_C( 651318578)), UINT16_C(31271), simde_mm512_set_epi32(INT32_C( 1822881045), INT32_C( -803993576), INT32_C( 163813867), INT32_C(-1017884831), INT32_C(-1258992440), INT32_C( 1182354404), INT32_C(-1425047283), INT32_C( 1708628167), INT32_C(-2051115159), INT32_C( 143410800), INT32_C(-1041180848), INT32_C(-1023702255), INT32_C( -240255997), INT32_C( 978107452), INT32_C(-1343783755), INT32_C( -880122145)), simde_mm512_set_epi32(INT32_C( 1966832804), INT32_C( 1231278072), INT32_C( 832865002), INT32_C(-1694490420), INT32_C( -466764866), INT32_C( 1702721236), INT32_C( 2092439418), INT32_C( 611933067), INT32_C(-1184445720), INT32_C(-1689922195), INT32_C(-1140532352), INT32_C( 158346875), INT32_C( 1089717474), INT32_C( 1230253618), INT32_C( 1504968720), INT32_C( 653725328)), simde_mm512_set_epi32(INT32_C( 2103907232), INT32_C( 1073743896), INT32_C( 25198826), INT32_C(-2097151936), INT32_C(-1541076856), INT32_C(-1418414219), INT32_C( 671613192), INT32_C(-2075387410), INT32_C(-1152868472), INT32_C( 1425101887), INT32_C(-2147429632), INT32_C( 2014677400), INT32_C( 1108777022), INT32_C( 138685488), INT32_C( 161742864), INT32_C( 42075792)) }, { simde_mm512_set_epi32(INT32_C( 537660993), INT32_C(-1605590998), INT32_C( 1810066171), INT32_C( -10167007), INT32_C( 1359569321), INT32_C(-1430119757), INT32_C( 256064867), INT32_C( 788618356), INT32_C( -392789188), INT32_C( -613873031), INT32_C( 773158597), INT32_C( -194106681), INT32_C( 165465349), INT32_C(-1346434037), INT32_C(-1412186885), INT32_C( -632750822)), UINT16_C(57760), simde_mm512_set_epi32(INT32_C( 173952757), INT32_C( 1507611872), INT32_C(-1888865381), INT32_C( 15541452), INT32_C( -670396349), INT32_C(-1090081489), INT32_C( 116025329), INT32_C( 130963716), INT32_C( 230354364), INT32_C( 1174065929), INT32_C( 1971493681), INT32_C(-1343257591), INT32_C(-1419733408), INT32_C( 659096905), INT32_C( 183711411), INT32_C( -298263182)), simde_mm512_set_epi32(INT32_C( -362113249), INT32_C( -694086277), INT32_C( 1616282233), INT32_C(-2132390836), INT32_C( -153917613), INT32_C( 736513734), INT32_C(-1311057544), INT32_C( 505476811), INT32_C( 1767695145), INT32_C( 157469724), INT32_C( -371725260), INT32_C( 1996701751), INT32_C(-1377678442), INT32_C( -132601652), INT32_C( -903948497), INT32_C( -794660034)), simde_mm512_set_epi32(INT32_C( 172623381), INT32_C( 1350571104), INT32_C( 4325913), INT32_C( -10167007), INT32_C( 1359569321), INT32_C(-1430119757), INT32_C( 256064867), INT32_C( 100683776), INT32_C( 152625448), INT32_C( -613873031), INT32_C( 1635944496), INT32_C( -194106681), INT32_C( 165465349), INT32_C(-1346434037), INT32_C(-1412186885), INT32_C( -632750822)) }, { simde_mm512_set_epi32(INT32_C( -731393712), INT32_C( -784753228), INT32_C( -748350470), INT32_C( 1755197901), INT32_C( 1090059253), INT32_C( 1329426651), INT32_C(-1604442789), INT32_C( 878047098), INT32_C(-1682276633), INT32_C( -78811559), INT32_C( -973139496), INT32_C( 91517188), INT32_C( 37440120), INT32_C( 829401648), INT32_C( 860279707), INT32_C( 218373799)), UINT16_C(44550), simde_mm512_set_epi32(INT32_C( 335188274), INT32_C( 1272591061), INT32_C( -327494197), INT32_C( 892006932), INT32_C(-1158010747), INT32_C( -700127305), INT32_C(-1058033333), INT32_C( 2135825335), INT32_C( -510043422), INT32_C( -139544800), INT32_C( 95748631), INT32_C( 1671238992), INT32_C( 1305915968), INT32_C( -582790199), INT32_C( 1758236157), INT32_C( 986405639)), simde_mm512_set_epi32(INT32_C( 491327584), INT32_C( -563681080), INT32_C( 1527319596), INT32_C( 1347900829), INT32_C(-1792354715), INT32_C( -371177698), INT32_C( 255088013), INT32_C( 1961231505), INT32_C( -659343095), INT32_C( 1620234692), INT32_C( 843561067), INT32_C( 1265300992), INT32_C(-1675104490), INT32_C( -873664156), INT32_C(-2045109653), INT32_C( 2057630636)), simde_mm512_set_epi32(INT32_C( 289935392), INT32_C( -784753228), INT32_C( 1208484872), INT32_C( 1755197901), INT32_C(-1876295675), INT32_C(-1069529322), INT32_C( 2363657), INT32_C( 878047098), INT32_C(-1682276633), INT32_C( -78811559), INT32_C( -973139496), INT32_C( 91517188), INT32_C( 37440120), INT32_C( -918531776), INT32_C( 526441), INT32_C( 218373799)) }, { simde_mm512_set_epi32(INT32_C(-1157339218), INT32_C(-2025137124), INT32_C(-1631723043), INT32_C(-2095740678), INT32_C(-1857753563), INT32_C(-1236342636), INT32_C( 1439297909), INT32_C( -576201057), INT32_C( 1488873085), INT32_C(-1369304746), INT32_C( 567848046), INT32_C( 1335236564), INT32_C( -942680632), INT32_C(-1512916560), INT32_C( -697747292), INT32_C(-1779695782)), UINT16_C(25528), simde_mm512_set_epi32(INT32_C( 1647236603), INT32_C(-1221154150), INT32_C(-1012750616), INT32_C( 1849794587), INT32_C( 131205926), INT32_C( 2061955170), INT32_C( 37003574), INT32_C( 1649229141), INT32_C( 612060260), INT32_C(-1402263233), INT32_C( -513572270), INT32_C( 701923816), INT32_C( 511549547), INT32_C( 969083331), INT32_C( 1364542630), INT32_C( -822209230)), simde_mm512_set_epi32(INT32_C(-1570208244), INT32_C( -244400530), INT32_C( 1126824505), INT32_C( 1036340167), INT32_C( 424825857), INT32_C( 434716327), INT32_C( 1663095683), INT32_C( 1730428966), INT32_C( -252943126), INT32_C( 373990324), INT32_C( 2100741912), INT32_C(-1005385937), INT32_C(-1470990839), INT32_C(-1200692008), INT32_C(-2098508971), INT32_C( 488824783)), simde_mm512_set_epi32(INT32_C(-1157339218), INT32_C(-1322866166), INT32_C( 1126212136), INT32_C(-2095740678), INT32_C(-1857753563), INT32_C(-1236342636), INT32_C( 35684610), INT32_C( 1644429316), INT32_C( 543704160), INT32_C(-1369304746), INT32_C( 1629651472), INT32_C( 1179944), INT32_C( 139468809), INT32_C(-1512916560), INT32_C( -697747292), INT32_C(-1779695782)) }, { simde_mm512_set_epi32(INT32_C( 1799684145), INT32_C( -551549754), INT32_C( 1249951615), INT32_C( 1447553529), INT32_C(-2080136983), INT32_C( -623547588), INT32_C( 1015056564), INT32_C(-1333355305), INT32_C( 1925062912), INT32_C( 330138155), INT32_C( -444195598), INT32_C( 874806560), INT32_C( 319126943), INT32_C( 475403370), INT32_C( -873396634), INT32_C(-1835948135)), UINT16_C( 9392), simde_mm512_set_epi32(INT32_C(-1216921331), INT32_C( -301860714), INT32_C( 317296385), INT32_C( 1833800187), INT32_C( -645353377), INT32_C(-1989715102), INT32_C( 1785805415), INT32_C( 1739507553), INT32_C(-1932540399), INT32_C( -641363523), INT32_C( 72499486), INT32_C(-2005610208), INT32_C( -497730582), INT32_C( 312611747), INT32_C( 793357988), INT32_C( 607421194)), simde_mm512_set_epi32(INT32_C( 142889340), INT32_C( 1231002435), INT32_C( 1681334055), INT32_C( 138372594), INT32_C( -878588971), INT32_C( 423295425), INT32_C( -460615607), INT32_C( 1208771148), INT32_C(-2128303155), INT32_C( -738338972), INT32_C( 2110676823), INT32_C(-1405320678), INT32_C(-2007459833), INT32_C( 1043638626), INT32_C( -542891463), INT32_C( 629803756)), simde_mm512_set_epi32(INT32_C( 1799684145), INT32_C( -551549754), INT32_C( 2166529), INT32_C( 1447553529), INT32_C(-2080136983), INT32_C( 153246016), INT32_C( 1015056564), INT32_C(-1333355305), INT32_C(-2147188223), INT32_C( 330138155), INT32_C( 71450902), INT32_C(-2009825280), INT32_C( 319126943), INT32_C( 475403370), INT32_C( -873396634), INT32_C(-1835948135)) }, { simde_mm512_set_epi32(INT32_C( 861635987), INT32_C( 1823839521), INT32_C( 1391000031), INT32_C( 73229946), INT32_C( -53693878), INT32_C( -257851255), INT32_C( -479522767), INT32_C( 745275629), INT32_C(-1783480446), INT32_C(-1431666964), INT32_C( -422291816), INT32_C( -309252994), INT32_C(-2112946871), INT32_C(-2123521230), INT32_C( -883174176), INT32_C( -332498316)), UINT16_C(31381), simde_mm512_set_epi32(INT32_C( -410707923), INT32_C( -804790801), INT32_C( -675940069), INT32_C( 717543141), INT32_C( 1610339352), INT32_C( 785451213), INT32_C( -67248356), INT32_C(-1147482606), INT32_C( 877778312), INT32_C( 1833609670), INT32_C( 1105011960), INT32_C(-1909564752), INT32_C(-2137129603), INT32_C(-1991115340), INT32_C( -941377596), INT32_C(-1151664921)), simde_mm512_set_epi32(INT32_C( -605598510), INT32_C( 1332169075), INT32_C( 829771204), INT32_C( 806631323), INT32_C( -62111889), INT32_C( 1452741835), INT32_C( 921236435), INT32_C(-1348081811), INT32_C( -883327193), INT32_C(-1324808596), INT32_C(-2119312832), INT32_C(-1371509978), INT32_C(-1887676953), INT32_C( 42335263), INT32_C( 818544934), INT32_C(-1864687690)), simde_mm512_set_epi32(INT32_C( 861635987), INT32_C( 1074219363), INT32_C( 288704768), INT32_C( 537138817), INT32_C( 1548227592), INT32_C( -257851255), INT32_C( 854119184), INT32_C( 745275629), INT32_C( 5330176), INT32_C(-1431666964), INT32_C( -422291816), INT32_C(-1912583648), INT32_C(-2112946871), INT32_C( 130068), INT32_C( -883174176), INT32_C(-1873142618)) }, { simde_mm512_set_epi32(INT32_C( 1456151906), INT32_C( -346366427), INT32_C( 534496658), INT32_C( 1981510934), INT32_C( -935678271), INT32_C( 1523008579), INT32_C( -6105095), INT32_C( 2115600842), INT32_C( -420343454), INT32_C( 652783640), INT32_C( -871055383), INT32_C( 142253075), INT32_C( 557825344), INT32_C( 707825888), INT32_C( 944883191), INT32_C( 1704858885)), UINT16_C(19039), simde_mm512_set_epi32(INT32_C( 1893303454), INT32_C( 1567616976), INT32_C( 1190892677), INT32_C( 1594451864), INT32_C(-1033342432), INT32_C( -738674203), INT32_C(-1847547828), INT32_C( 1893640833), INT32_C( 26320713), INT32_C( 1830669951), INT32_C( 1304924639), INT32_C( -277717409), INT32_C(-1566722863), INT32_C( 1534951086), INT32_C( -925669609), INT32_C( 359322092)), simde_mm512_set_epi32(INT32_C( 1160904262), INT32_C( 732990033), INT32_C( 138388028), INT32_C( 1168180194), INT32_C( 1057944486), INT32_C( 1875512725), INT32_C( -910818137), INT32_C( -743685110), INT32_C( -947775444), INT32_C( 1458691146), INT32_C( 1273454073), INT32_C( 927814838), INT32_C(-1840329583), INT32_C( -789758267), INT32_C( -870216121), INT32_C( 449327093)), simde_mm512_set_epi32(INT32_C( 1456151906), INT32_C( 153127504), INT32_C( 534496658), INT32_C( 1981510934), INT32_C( 34107936), INT32_C( 1523008579), INT32_C(-2120220668), INT32_C( 2115600842), INT32_C( -420343454), INT32_C( 1142017098), INT32_C( -871055383), INT32_C( 658527254), INT32_C(-2113108847), INT32_C( 1349336708), INT32_C( -939457017), INT32_C( 273154532)) }, { simde_mm512_set_epi32(INT32_C(-1055194531), INT32_C( 1846727705), INT32_C( 335680535), INT32_C( -610713755), INT32_C( 944256620), INT32_C( 697979892), INT32_C( 49552843), INT32_C( -460412596), INT32_C(-2060335241), INT32_C( 135497979), INT32_C( -331098630), INT32_C( -140680021), INT32_C(-1676162464), INT32_C( 626483741), INT32_C( 170885439), INT32_C( 230851400)), UINT16_C(10528), simde_mm512_set_epi32(INT32_C(-1447071985), INT32_C( -310464227), INT32_C( -679161042), INT32_C( -527096592), INT32_C( 1833269922), INT32_C(-1164990327), INT32_C( 1955493691), INT32_C( 1263046717), INT32_C( 1122048689), INT32_C( 2074234443), INT32_C( 723669938), INT32_C( 284884896), INT32_C( -458264538), INT32_C( 514387150), INT32_C(-1369468153), INT32_C( 1859652102)), simde_mm512_set_epi32(INT32_C(-1315612420), INT32_C( -330188185), INT32_C( 890374), INT32_C( -958458643), INT32_C( 2023887571), INT32_C( 226435011), INT32_C( 1929100), INT32_C(-1975437469), INT32_C( 871389437), INT32_C(-2041059805), INT32_C( 636566673), INT32_C( -485819928), INT32_C( 904524629), INT32_C(-1963695561), INT32_C( -297278672), INT32_C(-1666020030)), simde_mm512_set_epi32(INT32_C(-1055194531), INT32_C( 1846727705), INT32_C( 299526), INT32_C( -610713755), INT32_C( 1744835202), INT32_C( 697979892), INT32_C( 49552843), INT32_C( 171970593), INT32_C(-2060335241), INT32_C( 135497979), INT32_C( 555749520), INT32_C( -140680021), INT32_C(-1676162464), INT32_C( 626483741), INT32_C( 170885439), INT32_C( 230851400)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_and_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_maskz_and_epi32(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask16 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT16_C(21810), simde_mm512_set_epi32(INT32_C( 1183808039), INT32_C( 2103907232), INT32_C(-1995421302), INT32_C( 1328084931), INT32_C( -379562245), INT32_C( 1144599747), INT32_C(-1418414219), INT32_C( 1379143176), INT32_C(-2075387410), INT32_C(-1152868472), INT32_C( 1425101887), INT32_C(-1626225579), INT32_C( 2014677400), INT32_C( 1108777022), INT32_C( 877429697), INT32_C( 1558575022)), simde_mm512_set_epi32(INT32_C( 1822881045), INT32_C( -803993576), INT32_C( 163813867), INT32_C(-1017884831), INT32_C(-1258992440), INT32_C( 1182354404), INT32_C(-1425047283), INT32_C( 1708628167), INT32_C(-2051115159), INT32_C( 143410800), INT32_C(-1041180848), INT32_C(-1023702255), INT32_C( -240255997), INT32_C( 978107452), INT32_C(-1343783755), INT32_C( -880122145)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( 1342439424), INT32_C( 0), INT32_C( 1124091713), INT32_C( 0), INT32_C( 1144586432), INT32_C( 0), INT32_C( 1075054592), INT32_C( 0), INT32_C( 0), INT32_C( 1089491984), INT32_C(-2112782319), INT32_C( 0), INT32_C( 0), INT32_C( 608436353), INT32_C( 0)) }, { UINT16_C( 3728), simde_mm512_set_epi32(INT32_C( -632750822), INT32_C( 1966832804), INT32_C( 1231278072), INT32_C( 832865002), INT32_C(-1694490420), INT32_C( -466764866), INT32_C( 1702721236), INT32_C( 2092439418), INT32_C( 611933067), INT32_C(-1184445720), INT32_C(-1689922195), INT32_C(-1140532352), INT32_C( 158346875), INT32_C( 1089717474), INT32_C( 1230253618), INT32_C( 1504968720)), simde_mm512_set_epi32(INT32_C(-1286938208), INT32_C( 537660993), INT32_C(-1605590998), INT32_C( 1810066171), INT32_C( -10167007), INT32_C( 1359569321), INT32_C(-1430119757), INT32_C( 256064867), INT32_C( 788618356), INT32_C( -392789188), INT32_C( -613873031), INT32_C( 773158597), INT32_C( -194106681), INT32_C( 165465349), INT32_C(-1346434037), INT32_C(-1412186885)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C(-1694498816), INT32_C( 1074340264), INT32_C( 541069968), INT32_C( 0), INT32_C( 604067840), INT32_C( 0), INT32_C( 0), INT32_C( 738480768), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0)) }, { UINT16_C(56690), simde_mm512_set_epi32(INT32_C( -794660034), INT32_C( 173952757), INT32_C( 1507611872), INT32_C(-1888865381), INT32_C( 15541452), INT32_C( -670396349), INT32_C(-1090081489), INT32_C( 116025329), INT32_C( 130963716), INT32_C( 230354364), INT32_C( 1174065929), INT32_C( 1971493681), INT32_C(-1343257591), INT32_C(-1419733408), INT32_C( 659096905), INT32_C( 183711411)), simde_mm512_set_epi32(INT32_C( 218373799), INT32_C( -362113249), INT32_C( -694086277), INT32_C( 1616282233), INT32_C(-2132390836), INT32_C( -153917613), INT32_C( 736513734), INT32_C(-1311057544), INT32_C( 505476811), INT32_C( 1767695145), INT32_C( 157469724), INT32_C( -371725260), INT32_C( 1996701751), INT32_C(-1377678442), INT32_C( -132601652), INT32_C( -903948497)), simde_mm512_set_epi32(INT32_C( 4646), INT32_C( 172623381), INT32_C( 0), INT32_C( 4325913), INT32_C( 14943308), INT32_C( -805175229), INT32_C( 0), INT32_C( 13255024), INT32_C( 0), INT32_C( 152625448), INT32_C( 23248904), INT32_C( 1635944496), INT32_C( 0), INT32_C( 0), INT32_C( 537395272), INT32_C( 0)) }, { UINT16_C(54171), simde_mm512_set_epi32(INT32_C( 986405639), INT32_C( 1121234438), INT32_C( -731393712), INT32_C( -784753228), INT32_C( -748350470), INT32_C( 1755197901), INT32_C( 1090059253), INT32_C( 1329426651), INT32_C(-1604442789), INT32_C( 878047098), INT32_C(-1682276633), INT32_C( -78811559), INT32_C( -973139496), INT32_C( 91517188), INT32_C( 37440120), INT32_C( 829401648)), simde_mm512_set_epi32(INT32_C( 2057630636), INT32_C( 335188274), INT32_C( 1272591061), INT32_C( -327494197), INT32_C( 892006932), INT32_C(-1158010747), INT32_C( -700127305), INT32_C(-1058033333), INT32_C( 2135825335), INT32_C( -510043422), INT32_C( -139544800), INT32_C( 95748631), INT32_C( 1671238992), INT32_C( 1305915968), INT32_C( -582790199), INT32_C( 1758236157)), simde_mm512_set_epi32(INT32_C( 981488388), INT32_C( 47218690), INT32_C( 0), INT32_C(-1070033536), INT32_C( 0), INT32_C( 0), INT32_C( 1077994421), INT32_C( 1076703307), INT32_C( 541982995), INT32_C( 0), INT32_C( 0), INT32_C( 17105425), INT32_C( 1100812624), INT32_C( 0), INT32_C( 213576), INT32_C( 541886512)) }, { UINT16_C( 6763), simde_mm512_set_epi32(INT32_C( -697747292), INT32_C(-1779695782), INT32_C( 491327584), INT32_C( -563681080), INT32_C( 1527319596), INT32_C( 1347900829), INT32_C(-1792354715), INT32_C( -371177698), INT32_C( 255088013), INT32_C( 1961231505), INT32_C( -659343095), INT32_C( 1620234692), INT32_C( 843561067), INT32_C( 1265300992), INT32_C(-1675104490), INT32_C( -873664156)), simde_mm512_set_epi32(INT32_C( -822209230), INT32_C(-1549704264), INT32_C(-1157339218), INT32_C(-2025137124), INT32_C(-1631723043), INT32_C(-2095740678), INT32_C(-1857753563), INT32_C(-1236342636), INT32_C( 1439297909), INT32_C( -576201057), INT32_C( 1488873085), INT32_C(-1369304746), INT32_C( 567848046), INT32_C( 1335236564), INT32_C( -942680632), INT32_C(-1512916560)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C(-2042443768), INT32_C( 436797452), INT32_C( 0), INT32_C(-1862220251), INT32_C( 0), INT32_C( 0), INT32_C( 1420166289), INT32_C( 1488068617), INT32_C( 0), INT32_C( 541108330), INT32_C( 0), INT32_C(-2079865600), INT32_C(-2118078176)) }, { UINT16_C(17574), simde_mm512_set_epi32(INT32_C(-2098508971), INT32_C( 488824783), INT32_C( 1647236603), INT32_C(-1221154150), INT32_C(-1012750616), INT32_C( 1849794587), INT32_C( 131205926), INT32_C( 2061955170), INT32_C( 37003574), INT32_C( 1649229141), INT32_C( 612060260), INT32_C(-1402263233), INT32_C( -513572270), INT32_C( 701923816), INT32_C( 511549547), INT32_C( 969083331)), simde_mm512_set_epi32(INT32_C( -873396634), INT32_C(-1835948135), INT32_C(-1570208244), INT32_C( -244400530), INT32_C( 1126824505), INT32_C( 1036340167), INT32_C( 424825857), INT32_C( 434716327), INT32_C( 1663095683), INT32_C( 1730428966), INT32_C( -252943126), INT32_C( 373990324), INT32_C( 2100741912), INT32_C(-1005385937), INT32_C(-1470990839), INT32_C(-1200692008)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( 268470153), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 742457347), INT32_C( 0), INT32_C( 0), INT32_C( 35684610), INT32_C( 0), INT32_C( 543704160), INT32_C( 0), INT32_C( 0), INT32_C( 1179944), INT32_C( 139468809), INT32_C( 0)) }, { UINT16_C( 5226), simde_mm512_set_epi32(INT32_C( 793357988), INT32_C( 607421194), INT32_C(-1375787856), INT32_C( 1799684145), INT32_C( -551549754), INT32_C( 1249951615), INT32_C( 1447553529), INT32_C(-2080136983), INT32_C( -623547588), INT32_C( 1015056564), INT32_C(-1333355305), INT32_C( 1925062912), INT32_C( 330138155), INT32_C( -444195598), INT32_C( 874806560), INT32_C( 319126943)), simde_mm512_set_epi32(INT32_C( -542891463), INT32_C( 629803756), INT32_C(-1216921331), INT32_C( -301860714), INT32_C( 317296385), INT32_C( 1833800187), INT32_C( -645353377), INT32_C(-1989715102), INT32_C( 1785805415), INT32_C( 1739507553), INT32_C(-1932540399), INT32_C( -641363523), INT32_C( 72499486), INT32_C(-2005610208), INT32_C( -497730582), INT32_C( 312611747)), simde_mm512_set_epi32(INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 1778450448), INT32_C( 0), INT32_C( 1207996795), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 612401184), INT32_C(-2138668015), INT32_C( 0), INT32_C( 10), INT32_C( 0), INT32_C( 537147680), INT32_C( 0)) }, { UINT16_C(43362), simde_mm512_set_epi32(INT32_C(-2123521230), INT32_C( -883174176), INT32_C( -332498316), INT32_C( 142889340), INT32_C( 1231002435), INT32_C( 1681334055), INT32_C( 138372594), INT32_C( -878588971), INT32_C( 423295425), INT32_C( -460615607), INT32_C( 1208771148), INT32_C(-2128303155), INT32_C( -738338972), INT32_C( 2110676823), INT32_C(-1405320678), INT32_C(-2007459833)), simde_mm512_set_epi32(INT32_C( -941377596), INT32_C(-1151664921), INT32_C( -656770411), INT32_C( 861635987), INT32_C( 1823839521), INT32_C( 1391000031), INT32_C( 73229946), INT32_C( -53693878), INT32_C( -257851255), INT32_C( -479522767), INT32_C( 745275629), INT32_C(-1783480446), INT32_C(-1431666964), INT32_C( -422291816), INT32_C( -309252994), INT32_C(-2112946871)), simde_mm512_set_epi32(INT32_C(-2124307712), INT32_C( 0), INT32_C( -938837484), INT32_C( 0), INT32_C( 1209372929), INT32_C( 0), INT32_C( 0), INT32_C( -931102144), INT32_C( 0), INT32_C( -536145919), INT32_C( 135004236), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C(-1408237542), INT32_C( 0)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_and_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_and_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( 9036212757557430666), INT64_C( 5704081348870821627), INT64_C( 4916018483251427189), INT64_C( 5923374839641151982), INT64_C(-4951532382404389825), INT64_C(-6984585675708986984), INT64_C( 4762161048923702209), INT64_C( 6694028748503799090)), simde_mm512_set_epi64(INT64_C(-3453126114950276629), INT64_C(-4371782057203512120), INT64_C( 5078173500331491597), INT64_C( 7338502100533278569), INT64_C( 615944699146983248), INT64_C(-4396767702011741181), INT64_C( 4200939521265073333), INT64_C(-3780095828076561881)), simde_mm512_set_epi64(INT64_C( 5765733423092074890), INT64_C( 4827937147730281672), INT64_C( 4915961295754526981), INT64_C( 4617324316270006632), INT64_C( 578719150276367376), INT64_C(-9074330961792628736), INT64_C( 145408472056594561), INT64_C( 5224288327930368034)) }, { simde_mm512_set_epi64(INT64_C( 5288299052354798314), INT64_C(-7277780933457101890), INT64_C( 7313132024917137274), INT64_C( 2628232513216498408), INT64_C(-7258160557155099776), INT64_C( 680094650638517474), INT64_C( 5283899056600645648), INT64_C( 2807728906149754133)), simde_mm512_set_epi64(INT64_C(-6895960825351935237), INT64_C( -43666961203633751), INT64_C(-6142317585422402205), INT64_C( 3387090051947463484), INT64_C(-2636564591268235579), INT64_C( -833681846664639227), INT64_C(-5782890152253473541), INT64_C(-2717644085040284508)), simde_mm512_set_epi64(INT64_C( 18155308360663786), INT64_C(-7277816996756381272), INT64_C( 2323877817609098594), INT64_C( 2594451620184359464), INT64_C(-7259520672634482048), INT64_C( 27068065029080064), INT64_C( 654161048765464592), INT64_C( 162142851124327428)) }, { simde_mm512_set_epi64(INT64_C(-8112615037926038324), INT64_C(-2879330391107916497), INT64_C( 498324993693604100), INT64_C( 989364461044945673), INT64_C( 8467500887117366281), INT64_C(-6097708555739527863), INT64_C( 789034506143718770), INT64_C(-5527357514795184575)), simde_mm512_set_epi64(INT64_C( 6941879334003428428), INT64_C( -661071113376870714), INT64_C(-5630949274148604213), INT64_C( 7592192837230447644), INT64_C(-1596547832800395209), INT64_C(-5917083848631867188), INT64_C(-3882429228383046850), INT64_C( 747121403871646944)), simde_mm512_set_epi64(INT64_C( 18579654875284556), INT64_C(-3458201275382494202), INT64_C( 56929894688378880), INT64_C( 655521307720597512), INT64_C( 7026328109045710849), INT64_C(-6241986883974856632), INT64_C( 725666832763081010), INT64_C( 165015392292176960)) }, { simde_mm512_set_epi64(INT64_C(-3214140792841031219), INT64_C( 4681768843666616539), INT64_C(-6891029306179981446), INT64_C(-7225323117343838631), INT64_C(-4179602309674405628), INT64_C( 160804091787717168), INT64_C( 3694873207195836071), INT64_C(-1555264558302423685)), simde_mm512_set_epi64(INT64_C( 3831140603882252421), INT64_C(-3007023874774683317), INT64_C( 9173299967578168034), INT64_C( -599340352231112169), INT64_C( 7177916815745921600), INT64_C(-2503064843376095747), INT64_C( 4236579961216216582), INT64_C(-3141312070029828684)), simde_mm512_set_epi64(INT64_C( 1234006158509482117), INT64_C( 4629950784542158923), INT64_C( 2327799239051135586), INT64_C(-7806367493009374703), INT64_C( 4727954219193348096), INT64_C( 917302477097008), INT64_C( 3621548322709573126), INT64_C(-4583941969312410320)) }, { simde_mm512_set_epi64(INT64_C( 5789189981308900965), INT64_C(-1594196073659476595), INT64_C( 8423425177495484681), INT64_C( 6958855014828193899), INT64_C( 5434426382856220438), INT64_C(-3752358975457584533), INT64_C( 8837456289202868530), INT64_C( 5465736992144414155)), simde_mm512_set_epi64(INT64_C(-9001137670469652955), INT64_C(-5310051186831134347), INT64_C(-2474764694246758787), INT64_C(-5881119101759738770), INT64_C( 5734797378155697608), INT64_C(-6497927143179601756), INT64_C(-7643735180027817888), INT64_C(-2420991802446640084)), simde_mm512_set_epi64(INT64_C( 5911629778699813), INT64_C(-6899444174404169467), INT64_C( 6099567767624753161), INT64_C( 2306424943463671914), INT64_C( 5404906694268929280), INT64_C(-9097076494042654688), INT64_C( 1198224716855775264), INT64_C( 5350875317483865096)) }, { simde_mm512_set_epi64(INT64_C( 563525163273351266), INT64_C( 158929141814345045), INT64_C( 2628778802773961023), INT64_C(-2205776103080558104), INT64_C( 2197088575617698243), INT64_C( 5860665973320586546), INT64_C(-6655929129214122066), INT64_C(-8697897714832252451)), simde_mm512_set_epi64(INT64_C( 1824613162744888999), INT64_C( 7142941570334212134), INT64_C(-1086382453544016972), INT64_C( 9022617812666091311), INT64_C(-6317857543126326056), INT64_C(-9013027400318787633), INT64_C( 7074827341732948634), INT64_C(-4349730772874059749)), simde_mm512_set_epi64(INT64_C( 95138542545547298), INT64_C( 153264234564943876), INT64_C( 2335191585971118388), INT64_C( 6999299776119439656), INT64_C( 599013974410920128), INT64_C( 18366259613799682), INT64_C( 2459037658077471370), INT64_C(-9006491134657978343)) }, { simde_mm512_set_epi64(INT64_C(-8934120309513688260), INT64_C( 4359634748931742935), INT64_C( 8268082250112664107), INT64_C(-1907805565562356448), INT64_C( 1370639783932859498), INT64_C(-3751209977007462503), INT64_C(-6743993051839021458), INT64_C( 4839674398342728647)), simde_mm512_set_epi64(INT64_C(-8545761289661498777), INT64_C( 7471128053642413585), INT64_C(-2754635356059844322), INT64_C(-8614030248086520854), INT64_C( 1342657230503784100), INT64_C( 2608854166046450864), INT64_C( 7729584549648139462), INT64_C( 5368501309454936569)), simde_mm512_set_epi64(INT64_C(-9222527198360950236), INT64_C( 2630243059467977745), INT64_C( 5801763319471669258), INT64_C(-9222228406785787616), INT64_C( 1297055947226612768), INT64_C( 13513008652297360), INT64_C( 2467972599307568198), INT64_C( 4756005960819231169)) }, { simde_mm512_set_epi64(INT64_C( 1818040010755772489), INT64_C( 5191632551175039949), INT64_C(-3171141735991582889), INT64_C(-6035806350115039225), INT64_C( 4482393771264451129), INT64_C( 2704986537996009741), INT64_C(-1296481894259912959), INT64_C( 7876111834213298271)), simde_mm512_set_epi64(INT64_C(-1107462703642111951), INT64_C( 3200934455572316034), INT64_C(-6148962785270933864), INT64_C(-1328231493238063799), INT64_C(-9120454231799900960), INT64_C(-1428069393052184196), INT64_C( 5287115201302699815), INT64_C( 594305769309064149)), simde_mm512_set_epi64(INT64_C( 1162069999159545857), INT64_C( 579838780607835008), INT64_C(-9031874063504222704), INT64_C(-6048334185741379583), INT64_C( 10310269968318496), INT64_C( 2596899559745798412), INT64_C( 5188595380067045121), INT64_C( 580122069275017301)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_and_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_mask_and_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( 9036212757557430666), INT64_C( 5704081348870821627), INT64_C( 4916018483251427189), INT64_C( 5923374839641151982), INT64_C(-4951532382404389825), INT64_C(-6984585675708986984), INT64_C( 4762161048923702209), INT64_C( 6694028748503799090)), UINT8_C( 39), simde_mm512_set_epi64(INT64_C( 7829214476264278040), INT64_C( 703575204673376097), INT64_C(-5407331354528887836), INT64_C(-6120531474030028601), INT64_C(-8809472528091429264), INT64_C(-4471837688110281967), INT64_C(-1031891648804766660), INT64_C(-5771507277206231329)), simde_mm512_set_epi64(INT64_C( 8447482571111256056), INT64_C( 3577127948173451468), INT64_C(-2004739832689101100), INT64_C( 8986958869783206795), INT64_C(-5087155628682128019), INT64_C(-4898549151711613317), INT64_C( 4680300913939983922), INT64_C( 6463791434556706448)), simde_mm512_set_epi64(INT64_C( 9036212757557430666), INT64_C( 5704081348870821627), INT64_C(-6618874695993703740), INT64_C( 5923374839641151982), INT64_C(-4951532382404389825), INT64_C(-9223140039893972463), INT64_C( 4657219002685467696), INT64_C( 694680311283451536)) }, { simde_mm512_set_epi64(INT64_C( 2309236383959261226), INT64_C( 7774175012325743905), INT64_C( 5839305773204773555), INT64_C( 1099790230208207988), INT64_C(-1687016713001301383), INT64_C( 3320690892837104327), INT64_C( 710668265524759563), INT64_C(-6065296483252896486)), UINT8_C(160), simde_mm512_set_epi64(INT64_C( 747121403871646944), INT64_C(-8112615037926038324), INT64_C(-2879330391107916497), INT64_C( 498324993693604100), INT64_C( 989364461044945673), INT64_C( 8467500887117366281), INT64_C(-6097708555739527863), INT64_C( 789034506143718770)), simde_mm512_set_epi64(INT64_C(-1555264558302423685), INT64_C( 6941879334003428428), INT64_C( -661071113376870714), INT64_C(-5630949274148604213), INT64_C( 7592192837230447644), INT64_C(-1596547832800395209), INT64_C(-5917083848631867188), INT64_C(-3882429228383046850)), simde_mm512_set_epi64(INT64_C( 741411777270518880), INT64_C( 7774175012325743905), INT64_C(-3458201275382494202), INT64_C( 1099790230208207988), INT64_C(-1687016713001301383), INT64_C( 3320690892837104327), INT64_C( 710668265524759563), INT64_C(-6065296483252896486)) }, { simde_mm512_set_epi64(INT64_C(-3141312070029828684), INT64_C(-3214140792841031219), INT64_C( 4681768843666616539), INT64_C(-6891029306179981446), INT64_C(-7225323117343838631), INT64_C(-4179602309674405628), INT64_C( 160804091787717168), INT64_C( 3694873207195836071)), UINT8_C( 6), simde_mm512_set_epi64(INT64_C( 1439622676105278165), INT64_C(-1406576864852774380), INT64_C(-4973618283186690121), INT64_C(-4544218561177052233), INT64_C(-2190619812874504416), INT64_C( 411237240453010768), INT64_C( 5608866377596359625), INT64_C( 7551566793946127111)), simde_mm512_set_epi64(INT64_C( 2110235908633979080), INT64_C( 6559787716707833245), INT64_C(-7698104879832611042), INT64_C( 1095594675397854353), INT64_C(-2831857028248186428), INT64_C( 3623067196209165824), INT64_C(-7194518998511455900), INT64_C(-8783679074311277652)), simde_mm512_set_epi64(INT64_C(-3141312070029828684), INT64_C(-3214140792841031219), INT64_C( 4681768843666616539), INT64_C(-6891029306179981446), INT64_C(-7225323117343838631), INT64_C( 1407388893058048), INT64_C( 866558102575534400), INT64_C( 3694873207195836071)) }, { simde_mm512_set_epi64(INT64_C(-4970734089418384356), INT64_C(-7008197103615375110), INT64_C(-7978990794053850988), INT64_C( 6181737452074950303), INT64_C( 6394661210895290710), INT64_C( 2438888788002740180), INT64_C(-4048782482230560336), INT64_C(-2996801797497290918)), UINT8_C(184), simde_mm512_set_epi64(INT64_C( 7074827341732948634), INT64_C(-4349730772874059749), INT64_C( 563525163273351266), INT64_C( 158929141814345045), INT64_C( 2628778802773961023), INT64_C(-2205776103080558104), INT64_C( 2197088575617698243), INT64_C( 5860665973320586546)), simde_mm512_set_epi64(INT64_C(-6743993051839021458), INT64_C( 4839674398342728647), INT64_C( 1824613162744888999), INT64_C( 7142941570334212134), INT64_C(-1086382453544016972), INT64_C( 9022617812666091311), INT64_C(-6317857543126326056), INT64_C(-9013027400318787633)), simde_mm512_set_epi64(INT64_C( 2461362369224681994), INT64_C(-7008197103615375110), INT64_C( 95138542545547298), INT64_C( 153264234564943876), INT64_C( 2335191585971118388), INT64_C( 2438888788002740180), INT64_C(-4048782482230560336), INT64_C(-2996801797497290918)) }, { simde_mm512_set_epi64(INT64_C( 7729584549648139462), INT64_C( 5368501309454936569), INT64_C(-8934120309513688260), INT64_C( 4359634748931742935), INT64_C( 8268082250112664107), INT64_C(-1907805565562356448), INT64_C( 1370639783932859498), INT64_C(-3751209977007462503)), UINT8_C(176), simde_mm512_set_epi64(INT64_C(-5226637314456684394), INT64_C( 1362777598547825147), INT64_C(-2771771646272906398), INT64_C( 7669975856184215393), INT64_C(-8300197808250187331), INT64_C( 311382923636166944), INT64_C(-2137736571596434525), INT64_C( 3407446613087781642)), simde_mm512_set_epi64(INT64_C( 613705043478027075), INT64_C( 7221274780014437874), INT64_C(-3773510896647996991), INT64_C(-1978328966883417524), INT64_C(-9140992443141990556), INT64_C( 9065287930099827226), INT64_C(-8621974329724982942), INT64_C(-2331701078232790292)), simde_mm512_set_epi64(INT64_C( 1197420910319618), INT64_C( 5368501309454936569), INT64_C(-3926997772353251008), INT64_C( 6917828375051256384), INT64_C( 8268082250112664107), INT64_C(-1907805565562356448), INT64_C( 1370639783932859498), INT64_C(-3751209977007462503)) }, { simde_mm512_set_epi64(INT64_C( 3700698387045520673), INT64_C( 5974299641953216122), INT64_C( -230613445968297847), INT64_C(-2059534601207152403), INT64_C(-7659990185762193684), INT64_C(-1813729535102735234), INT64_C(-9075037706959084750), INT64_C(-3793204198629279116)), UINT8_C(149), simde_mm512_set_epi64(INT64_C(-1763977094002909713), INT64_C(-2903140489693440283), INT64_C( 6916354853087283405), INT64_C( -288829486582280686), INT64_C( 3770029145011694022), INT64_C( 4745990232274262704), INT64_C(-9178901749894611532), INT64_C(-4043185984863798041)), simde_mm512_set_epi64(INT64_C(-2601025793624159885), INT64_C( 3563840185149175707), INT64_C( -266768530495040309), INT64_C( 3956680363155515245), INT64_C(-3793861402632321428), INT64_C(-9102379300509684954), INT64_C(-8107510778505593825), INT64_C( 3515623724266758070)), simde_mm512_set_epi64(INT64_C(-4358068267243845277), INT64_C( 5974299641953216122), INT64_C( -230613445968297847), INT64_C( 3668413965043549696), INT64_C(-7659990185762193684), INT64_C( 111745843014421024), INT64_C(-9075037706959084750), INT64_C( 54607264595188902)) }, { simde_mm512_set_epi64(INT64_C( 6254124818226667045), INT64_C( 2295645667912807702), INT64_C(-4018707571999816637), INT64_C( -26221181248372278), INT64_C(-1805361387364896744), INT64_C(-3741154382847501293), INT64_C( 2395841610067775712), INT64_C( 4058242405589980421)), UINT8_C( 95), simde_mm512_set_epi64(INT64_C( 8131676417901457360), INT64_C( 5114845102355343256), INT64_C(-4438171947452810779), INT64_C(-7935157497162192255), INT64_C( 113046603373071999), INT64_C( 5604608652266856031), INT64_C(-6729023456945537362), INT64_C(-3975720697196785172)), simde_mm512_set_epi64(INT64_C( 4986045839810005585), INT64_C( 594372055586112482), INT64_C( 4543836970229042581), INT64_C(-3911934107467365366), INT64_C(-4070664534473188278), INT64_C( 5469443597420811446), INT64_C(-7904155369341108539), INT64_C(-3737549779697651723)), simde_mm512_set_epi64(INT64_C( 6254124818226667045), INT64_C( 16747779451847552), INT64_C(-4018707571999816637), INT64_C(-9106278428011921408), INT64_C( 108112814837713994), INT64_C( 5316237509498262550), INT64_C(-9075733389403931004), INT64_C(-4034937163739561500)) }, { simde_mm512_set_epi64(INT64_C(-4532025999716330471), INT64_C( 1441736923413036901), INT64_C( 4055551302629479412), INT64_C( 212827843943377228), INT64_C(-8849072478755780357), INT64_C(-1422057783446117205), INT64_C(-7199062965036293603), INT64_C( 733947372098454344)), UINT8_C( 32), simde_mm512_set_epi64(INT64_C(-6215126846548299491), INT64_C(-2916974460339411728), INT64_C( 7873834362860447881), INT64_C( 8398781451642376253), INT64_C( 4819162425848909387), INT64_C( 3108138717093232544), INT64_C(-1968231203112162098), INT64_C(-5881820928188872186)), simde_mm512_set_epi64(INT64_C(-5650512314146637209), INT64_C( 3824130547717357), INT64_C( 8692530928452313027), INT64_C( 8285423730243427), INT64_C( 3742589136248759843), INT64_C( 2734033046067673576), INT64_C( 3884903702312804919), INT64_C(-1276802171409363646)), simde_mm512_set_epi64(INT64_C(-4532025999716330471), INT64_C( 1441736923413036901), INT64_C( 7494010129634756737), INT64_C( 212827843943377228), INT64_C(-8849072478755780357), INT64_C(-1422057783446117205), INT64_C(-7199062965036293603), INT64_C( 733947372098454344)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_mask_and_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_maskz_and_epi64(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__mmask8 k; simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { UINT8_C( 50), simde_mm512_set_epi64(INT64_C( 5084416814350799776), INT64_C(-8570269232503654461), INT64_C(-1630207427926739773), INT64_C(-6092042681407238648), INT64_C(-8913721049338044536), INT64_C( 6120766000801629269), INT64_C( 8652973546099087422), INT64_C( 3768531854712764334)), simde_mm512_set_epi64(INT64_C( 7829214476264278040), INT64_C( 703575204673376097), INT64_C(-5407331354528887836), INT64_C(-6120531474030028601), INT64_C(-8809472528091429264), INT64_C(-4471837688110281967), INT64_C(-1031891648804766660), INT64_C(-5771507277206231329)), simde_mm512_set_epi64(INT64_C( 0), INT64_C( 0), INT64_C(-6890431802948124480), INT64_C(-6123627733767157760), INT64_C( 0), INT64_C( 0), INT64_C( 8072007440746715196), INT64_C( 0)) }, { UINT8_C(144), simde_mm512_set_epi64(INT64_C(-2717644085040284508), INT64_C( 5288299052354798314), INT64_C(-7277780933457101890), INT64_C( 7313132024917137274), INT64_C( 2628232513216498408), INT64_C(-7258160557155099776), INT64_C( 680094650638517474), INT64_C( 5283899056600645648)), simde_mm512_set_epi64(INT64_C(-5527357514795184575), INT64_C(-6895960825351935237), INT64_C( -43666961203633751), INT64_C(-6142317585422402205), INT64_C( 3387090051947463484), INT64_C(-2636564591268235579), INT64_C( -833681846664639227), INT64_C(-5782890152253473541)), simde_mm512_set_epi64(INT64_C(-7905821755195257856), INT64_C( 0), INT64_C( 0), INT64_C( 2323877817609098594), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0)) }, { UINT8_C(114), simde_mm512_set_epi64(INT64_C(-3413038857294295307), INT64_C( 6475143687707440027), INT64_C( 66750031696924739), INT64_C(-4681864345113958415), INT64_C( 562484877412986300), INT64_C( 5042574770374351665), INT64_C(-5769247420573510048), INT64_C( 2830799652053530291)), simde_mm512_set_epi64(INT64_C( 937908328941131551), INT64_C(-2981077858701114759), INT64_C(-9158548898769049773), INT64_C( 3163302403568753016), INT64_C( 2171006373899068201), INT64_C( 676327318613388340), INT64_C( 8575768723328224150), INT64_C( -569519755344554193)), simde_mm512_set_epi64(INT64_C( 0), INT64_C( 5800658722606940697), INT64_C( 64181022643847235), INT64_C( 3100178613413757296), INT64_C( 0), INT64_C( 0), INT64_C( 2811090599545930240), INT64_C( 0)) }, { UINT8_C(155), simde_mm512_set_epi64(INT64_C( 4236579961216216582), INT64_C(-3141312070029828684), INT64_C(-3214140792841031219), INT64_C( 4681768843666616539), INT64_C(-6891029306179981446), INT64_C(-7225323117343838631), INT64_C(-4179602309674405628), INT64_C( 160804091787717168)), simde_mm512_set_epi64(INT64_C( 8837456289202868530), INT64_C( 5465736992144414155), INT64_C( 3831140603882252421), INT64_C(-3007023874774683317), INT64_C( 9173299967578168034), INT64_C( -599340352231112169), INT64_C( 7177916815745921600), INT64_C(-2503064843376095747)), simde_mm512_set_epi64(INT64_C( 4215460527910977538), INT64_C( 0), INT64_C( 0), INT64_C( 4629950784542158923), INT64_C( 2327799239051135586), INT64_C( 0), INT64_C( 4727954219193348096), INT64_C( 917302477097008)) }, { UINT8_C(107), simde_mm512_set_epi64(INT64_C(-2996801797497290918), INT64_C( 2110235908633979080), INT64_C( 6559787716707833245), INT64_C(-7698104879832611042), INT64_C( 1095594675397854353), INT64_C(-2831857028248186428), INT64_C( 3623067196209165824), INT64_C(-7194518998511455900)), simde_mm512_set_epi64(INT64_C(-3531361750574079048), INT64_C(-4970734089418384356), INT64_C(-7008197103615375110), INT64_C(-7978990794053850988), INT64_C( 6181737452074950303), INT64_C( 6394661210895290710), INT64_C( 2438888788002740180), INT64_C(-4048782482230560336)), simde_mm512_set_epi64(INT64_C( 0), INT64_C( 1801439990639675400), INT64_C( 1876030771317506200), INT64_C( 0), INT64_C( 360377053526492305), INT64_C( 0), INT64_C( 2324042582201603584), INT64_C(-8932954729898528480)) }, { UINT8_C(166), simde_mm512_set_epi64(INT64_C(-9013027400318787633), INT64_C( 7074827341732948634), INT64_C(-4349730772874059749), INT64_C( 563525163273351266), INT64_C( 158929141814345045), INT64_C( 2628778802773961023), INT64_C(-2205776103080558104), INT64_C( 2197088575617698243)), simde_mm512_set_epi64(INT64_C(-3751209977007462503), INT64_C(-6743993051839021458), INT64_C( 4839674398342728647), INT64_C( 1824613162744888999), INT64_C( 7142941570334212134), INT64_C(-1086382453544016972), INT64_C( 9022617812666091311), INT64_C(-6317857543126326056)), simde_mm512_set_epi64(INT64_C(-9015922487669520503), INT64_C( 0), INT64_C( 4837044293220761603), INT64_C( 0), INT64_C( 0), INT64_C( 2335191585971118388), INT64_C( 6999299776119439656), INT64_C( 0)) }, { UINT8_C(106), simde_mm512_set_epi64(INT64_C( 3407446613087781642), INT64_C(-5908963845954273231), INT64_C(-2368888154296893569), INT64_C( 6217195068479217897), INT64_C(-2678116496944625484), INT64_C(-5726717426998042368), INT64_C( 1417932582737550578), INT64_C( 3757265565845388703)), simde_mm512_set_epi64(INT64_C(-2331701078232790292), INT64_C(-5226637314456684394), INT64_C( 1362777598547825147), INT64_C(-2771771646272906398), INT64_C( 7669975856184215393), INT64_C(-8300197808250187331), INT64_C( 311382923636166944), INT64_C(-2137736571596434525)), simde_mm512_set_epi64(INT64_C( 0), INT64_C(-6523745533444423664), INT64_C( 1306048291191951739), INT64_C( 0), INT64_C( 5355107766639820832), INT64_C( 0), INT64_C( 45097422880), INT64_C( 0)) }, { UINT8_C( 98), simde_mm512_set_epi64(INT64_C(-9120454231799900960), INT64_C(-1428069393052184196), INT64_C( 5287115201302699815), INT64_C( 594305769309064149), INT64_C( 1818040010755772489), INT64_C( 5191632551175039949), INT64_C(-3171141735991582889), INT64_C(-6035806350115039225)), simde_mm512_set_epi64(INT64_C(-4043185984863798041), INT64_C(-2820807435363842669), INT64_C( 7833331097238305247), INT64_C( 314520227399119434), INT64_C(-1107462703642111951), INT64_C( 3200934455572316034), INT64_C(-6148962785270933864), INT64_C(-1328231493238063799)), simde_mm512_set_epi64(INT64_C( 0), INT64_C(-4032276290038922992), INT64_C( 5194217179798575367), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C(-9031874063504222704), INT64_C( 0)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_maskz_and_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_and_si512(SIMDE_MUNIT_TEST_ARGS) { const struct { simde__m512i a; simde__m512i b; simde__m512i r; } test_vec[8] = { { simde_mm512_set_epi32(INT32_C( 1762603276), INT32_C(-1316946536), INT32_C( -409636803), INT32_C(-1096492450), INT32_C( 1487241173), INT32_C(-1940071138), INT32_C( 1116126146), INT32_C( -916337722), INT32_C( 52488417), INT32_C( 1044081507), INT32_C(-1035184013), INT32_C(-1384518181), INT32_C(-1687535487), INT32_C(-1003450758), INT32_C( 131212491), INT32_C(-1389162000)), simde_mm512_set_epi32(INT32_C(-1226890085), INT32_C( 294090078), INT32_C( 1993383303), INT32_C( 2117895966), INT32_C( -579088274), INT32_C( 1336927221), INT32_C( 43647960), INT32_C( 1458493074), INT32_C( -558283956), INT32_C( 428402022), INT32_C( 974860288), INT32_C( -624769004), INT32_C(-1594949458), INT32_C( -55819000), INT32_C( 423209449), INT32_C( -449605661)), simde_mm512_set_epi32(INT32_C( 537862152), INT32_C( 293631256), INT32_C( 1720717317), INT32_C( 1042579998), INT32_C( 1478578244), INT32_C( 202162452), INT32_C( 42075072), INT32_C( 1080083074), INT32_C( 35668032), INT32_C( 403202402), INT32_C( 34082816), INT32_C(-2009020400), INT32_C(-2140536704), INT32_C(-1004534776), INT32_C( 17834185), INT32_C(-1523383840)) }, { simde_mm512_set_epi32(INT32_C(-1226448376), INT32_C( 1927095485), INT32_C( 1303264402), INT32_C( 926300607), INT32_C( 2116494628), INT32_C(-1100758331), INT32_C( 853434891), INT32_C( 1856581548), INT32_C( 1730450085), INT32_C(-1233336711), INT32_C( 410802607), INT32_C(-1458345357), INT32_C(-1414257532), INT32_C(-1908909941), INT32_C( 216004947), INT32_C(-1153616267)), simde_mm512_set_epi32(INT32_C(-1170743204), INT32_C( 1817377482), INT32_C( 934231558), INT32_C( -128119768), INT32_C( 674694491), INT32_C( 1902405145), INT32_C(-1438313883), INT32_C( -508947384), INT32_C( -334819615), INT32_C(-1499616800), INT32_C( -300643115), INT32_C(-1687918613), INT32_C( 204696129), INT32_C( -790552335), INT32_C( -837803722), INT32_C(-1569322126)), simde_mm512_set_epi32(INT32_C(-1306140664), INT32_C( 1615863944), INT32_C( 95304706), INT32_C( 806619176), INT32_C( 673645824), INT32_C( 811614721), INT32_C( 574882305), INT32_C( 1621623816), INT32_C( 1677722273), INT32_C(-1508081568), INT32_C( 135530629), INT32_C(-1996463517), INT32_C( 137371648), INT32_C(-2145386367), INT32_C( 202383634), INT32_C(-1573649808)) }, { simde_mm512_set_epi32(INT32_C( -967914791), INT32_C( 1028004547), INT32_C( 1106145634), INT32_C(-2126623640), INT32_C( -6485699), INT32_C( -256904631), INT32_C(-1220204919), INT32_C( 917835787), INT32_C( 1623427491), INT32_C( -222464855), INT32_C( -472879958), INT32_C( -762982604), INT32_C(-1085405824), INT32_C( 1812599478), INT32_C( -613988136), INT32_C( 621554720)), simde_mm512_set_epi32(INT32_C( 1377438428), INT32_C( 1201451322), INT32_C( 619734582), INT32_C(-1992526637), INT32_C( -868585296), INT32_C( 1439924174), INT32_C( 1656419868), INT32_C(-1390170089), INT32_C( 1058692615), INT32_C( -836785520), INT32_C(-1830636694), INT32_C( 554982917), INT32_C(-1514534388), INT32_C( -747673601), INT32_C( -692811287), INT32_C(-1799571639)), simde_mm512_set_epi32(INT32_C( 1107954392), INT32_C( 84152322), INT32_C( 14704674), INT32_C(-2126756800), INT32_C( -870842320), INT32_C( 1350791752), INT32_C( 570435080), INT32_C( 606146563), INT32_C( 537004035), INT32_C(-1038278528), INT32_C(-2101338070), INT32_C( 282116), INT32_C(-1526071296), INT32_C( 1074397878), INT32_C( -769390392), INT32_C( 67904512)) }, { simde_mm512_set_epi32(INT32_C(-1436950998), INT32_C(-1742059387), INT32_C( 1377677769), INT32_C(-2097193192), INT32_C( 1556973207), INT32_C( 58040738), INT32_C(-1875805492), INT32_C( -452882923), INT32_C(-2070651162), INT32_C(-1417594324), INT32_C( -990171302), INT32_C( 444234765), INT32_C( -651701039), INT32_C( -296257488), INT32_C( 1302666953), INT32_C( 1243668562)), simde_mm512_set_epi32(INT32_C( -228023402), INT32_C( 1737651280), INT32_C( 890037909), INT32_C( 822465192), INT32_C( 1525557148), INT32_C( 1672658803), INT32_C( 1808682106), INT32_C( 1316739447), INT32_C( 903813947), INT32_C( 221590740), INT32_C( 1668581990), INT32_C(-1092503304), INT32_C( 1369460064), INT32_C( 1353181098), INT32_C( 652356799), INT32_C( -684439573)), simde_mm512_set_epi32(INT32_C(-1572306430), INT32_C( 147456), INT32_C( 269262977), INT32_C( 348680), INT32_C( 1489766036), INT32_C( 53518626), INT32_C( 18504), INT32_C( 1140951061), INT32_C( 76814882), INT32_C( 151072772), INT32_C( 1081084482), INT32_C( 442513416), INT32_C( 1361069120), INT32_C( 1074225184), INT32_C( 77597833), INT32_C( 1109409858)) }, { simde_mm512_set_epi32(INT32_C(-1043054173), INT32_C( -396216896), INT32_C(-1145802326), INT32_C( -804000246), INT32_C( -145399860), INT32_C( -890427310), INT32_C( -401401997), INT32_C( 802016776), INT32_C( 1929893502), INT32_C( 73827769), INT32_C(-1971097644), INT32_C(-1831682098), INT32_C( 546355465), INT32_C( -199725455), INT32_C( 931867413), INT32_C(-1496909535)), simde_mm512_set_epi32(INT32_C(-1796636811), INT32_C(-1576316556), INT32_C( 1080356179), INT32_C(-1830141457), INT32_C(-1444813077), INT32_C( 1282909316), INT32_C( 814589845), INT32_C( 563073613), INT32_C( -161574330), INT32_C( 1115054069), INT32_C(-1922096352), INT32_C( 1283172543), INT32_C( 1028016376), INT32_C( 1652445236), INT32_C( 1602581177), INT32_C(-1986713581)), simde_mm512_set_epi32(INT32_C(-2134884063), INT32_C(-1610477248), INT32_C( 2384130), INT32_C(-1878900726), INT32_C(-1589557560), INT32_C( 1214586880), INT32_C( 536938257), INT32_C( 562938376), INT32_C( 1913033286), INT32_C( 6686129), INT32_C(-2013060352), INT32_C( 5417102), INT32_C( 536872968), INT32_C( 1612202032), INT32_C( 394338833), INT32_C(-2138822655)) }, { simde_mm512_set_epi32(INT32_C( 213329535), INT32_C( -522060385), INT32_C( -710729699), INT32_C( 911515198), INT32_C(-1475915599), INT32_C(-1846311235), INT32_C(-1624654725), INT32_C( -496488954), INT32_C(-2105881976), INT32_C( -863113580), INT32_C( -870973395), INT32_C(-2135017149), INT32_C( 1179500895), INT32_C( 102238134), INT32_C( 1890546920), INT32_C( 1651955955)), simde_mm512_set_epi32(INT32_C(-1460720620), INT32_C(-1283988079), INT32_C( 2139823103), INT32_C(-2058406982), INT32_C( -677653135), INT32_C( 526832430), INT32_C( 918576849), INT32_C(-1987609349), INT32_C( -819905099), INT32_C( 2043707434), INT32_C( 1005516756), INT32_C( 646673888), INT32_C( -792085599), INT32_C( 923333390), INT32_C( 549762390), INT32_C( 1063027034)), simde_mm512_set_epi32(INT32_C( 145171476), INT32_C(-1604196975), INT32_C( 1434648605), INT32_C( 71569978), INT32_C(-2147266511), INT32_C( 291668524), INT32_C( 369106001), INT32_C(-2147472382), INT32_C(-2111829888), INT32_C( 1216380928), INT32_C( 134610948), INT32_C( 9056576), INT32_C( 1078558977), INT32_C( 101188358), INT32_C( 545535040), INT32_C( 575963218)) }, { simde_mm512_set_epi32(INT32_C(-1614227898), INT32_C(-1072924213), INT32_C(-2048516742), INT32_C(-1735505047), INT32_C( 409846045), INT32_C( -501166301), INT32_C( 385735082), INT32_C(-1379445210), INT32_C( 1301699864), INT32_C( -237316746), INT32_C( -173549926), INT32_C(-1638681430), INT32_C( 1204990643), INT32_C( -623938106), INT32_C( 621663116), INT32_C(-2139715294)), simde_mm512_set_epi32(INT32_C( 1168648208), INT32_C( 679514223), INT32_C(-1255159953), INT32_C(-2016174737), INT32_C( -817087094), INT32_C( 1605116212), INT32_C( 684814447), INT32_C( 1274003485), INT32_C( 1881744290), INT32_C( 579021373), INT32_C( -658206082), INT32_C( 1152351107), INT32_C( -539739024), INT32_C( 1438387923), INT32_C( -569943597), INT32_C( -79238784)), simde_mm512_set_epi32(INT32_C( 92798976), INT32_C( 4171), INT32_C(-2061105814), INT32_C(-2138961559), INT32_C( 139198728), INT32_C( 1109393696), INT32_C( 13717546), INT32_C( 164052996), INT32_C( 1073742080), INT32_C( 545390644), INT32_C( -796618214), INT32_C( 67317890), INT32_C( 1204826160), INT32_C( 1351353538), INT32_C( 67457408), INT32_C(-2142861056)) }, { simde_mm512_set_epi32(INT32_C( -593800358), INT32_C( -124181915), INT32_C( 2110561848), INT32_C( 1255401496), INT32_C( -282522813), INT32_C( -286538666), INT32_C(-2011412362), INT32_C(-1839527164), INT32_C(-1330408299), INT32_C( 1769934774), INT32_C( -358481155), INT32_C( -123958768), INT32_C( 1676106379), INT32_C(-1305862521), INT32_C( 1797940107), INT32_C( 653525737)), simde_mm512_set_epi32(INT32_C(-1432835313), INT32_C( 1661538833), INT32_C( 1372337273), INT32_C(-1604084834), INT32_C( -921184393), INT32_C(-1395990480), INT32_C( 1258870002), INT32_C( -947895097), INT32_C(-1351881935), INT32_C( 99634026), INT32_C( 2033361976), INT32_C( 1231716550), INT32_C( -228173591), INT32_C(-1552770129), INT32_C( -338049103), INT32_C(-1393391283)), simde_mm512_set_epi32(INT32_C(-2003303670), INT32_C( 1611203073), INT32_C( 1372329016), INT32_C( 4425752), INT32_C( -922680509), INT32_C(-1395998704), INT32_C( 134758514), INT32_C(-2113929212), INT32_C(-1608286191), INT32_C( 24120098), INT32_C( 1747058744), INT32_C( 1208516608), INT32_C( 1650874505), INT32_C(-1574823289), INT32_C( 1795703681), INT32_C( 619708489)) } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { simde__m512i r = simde_mm512_and_si512(test_vec[i].a, test_vec[i].b); simde_assert_m512i_i32(r, ==, test_vec[i].r); } return 0; } SIMDE_TEST_FUNC_LIST_BEGIN SIMDE_TEST_FUNC_LIST_ENTRY(mm512_and_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_and_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_and_ps) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_and_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_and_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_and_pd) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_and_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_and_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_and_epi32) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_and_epi64) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_and_epi64) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_and_epi64) SIMDE_TEST_FUNC_LIST_ENTRY(mm512_and_si512) SIMDE_TEST_FUNC_LIST_END #include