libdpf/thirdparty/simde/test/arm/neon/ld1q_x2.c

1142 lines
85 KiB
C
Raw Normal View History

#define SIMDE_TEST_ARM_NEON_INSN ld1q_x2
#include "test/test.h"
#include "test-neon.h"
#include "../../../simde/arm/neon/ld1q_x2.h"
#include "../../../simde/arm/neon/ld1_lane.h"
#if !defined(SIMDE_BUG_INTEL_857088)
static int
test_simde_vld1q_f16_x2 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t buf[16];
simde_float16_t expected[2][8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(8.77), SIMDE_FLOAT16_VALUE(-8.18), SIMDE_FLOAT16_VALUE(0.29), SIMDE_FLOAT16_VALUE(-5.13),
SIMDE_FLOAT16_VALUE(-0.49), SIMDE_FLOAT16_VALUE(-5.46), SIMDE_FLOAT16_VALUE(-5.01), SIMDE_FLOAT16_VALUE(9.21),
SIMDE_FLOAT16_VALUE(-5.50), SIMDE_FLOAT16_VALUE(0.96), SIMDE_FLOAT16_VALUE(-8.88), SIMDE_FLOAT16_VALUE(-3.56),
SIMDE_FLOAT16_VALUE(-7.57), SIMDE_FLOAT16_VALUE(4.59), SIMDE_FLOAT16_VALUE(2.11), SIMDE_FLOAT16_VALUE(-8.34) },
{ { SIMDE_FLOAT16_VALUE(8.77), SIMDE_FLOAT16_VALUE(-8.18), SIMDE_FLOAT16_VALUE(0.29), SIMDE_FLOAT16_VALUE(-5.13),
SIMDE_FLOAT16_VALUE(-0.49), SIMDE_FLOAT16_VALUE(-5.46), SIMDE_FLOAT16_VALUE(-5.01), SIMDE_FLOAT16_VALUE(9.21) },
{ SIMDE_FLOAT16_VALUE(-5.50), SIMDE_FLOAT16_VALUE(0.96), SIMDE_FLOAT16_VALUE(-8.88), SIMDE_FLOAT16_VALUE(-3.56),
SIMDE_FLOAT16_VALUE(-7.57), SIMDE_FLOAT16_VALUE(4.59), SIMDE_FLOAT16_VALUE(2.11), SIMDE_FLOAT16_VALUE(-8.34) } } },
{ { SIMDE_FLOAT16_VALUE(-2.41), SIMDE_FLOAT16_VALUE(-4.05), SIMDE_FLOAT16_VALUE(-2.12), SIMDE_FLOAT16_VALUE(8.76),
SIMDE_FLOAT16_VALUE(-9.05), SIMDE_FLOAT16_VALUE(-9.20), SIMDE_FLOAT16_VALUE(-9.36), SIMDE_FLOAT16_VALUE(7.44),
SIMDE_FLOAT16_VALUE(-0.56), SIMDE_FLOAT16_VALUE(-0.19), SIMDE_FLOAT16_VALUE(2.69), SIMDE_FLOAT16_VALUE(-3.86),
SIMDE_FLOAT16_VALUE(8.27), SIMDE_FLOAT16_VALUE(7.78), SIMDE_FLOAT16_VALUE(5.32), SIMDE_FLOAT16_VALUE(8.78) },
{ { SIMDE_FLOAT16_VALUE(-2.41), SIMDE_FLOAT16_VALUE(-4.05), SIMDE_FLOAT16_VALUE(-2.12), SIMDE_FLOAT16_VALUE(8.76),
SIMDE_FLOAT16_VALUE(-9.05), SIMDE_FLOAT16_VALUE(-9.20), SIMDE_FLOAT16_VALUE(-9.36), SIMDE_FLOAT16_VALUE(7.44) },
{ SIMDE_FLOAT16_VALUE(-0.56), SIMDE_FLOAT16_VALUE(-0.19), SIMDE_FLOAT16_VALUE(2.69), SIMDE_FLOAT16_VALUE(-3.86),
SIMDE_FLOAT16_VALUE(8.27), SIMDE_FLOAT16_VALUE(7.78), SIMDE_FLOAT16_VALUE(5.32), SIMDE_FLOAT16_VALUE(8.78) } } },
{ { SIMDE_FLOAT16_VALUE(9.59), SIMDE_FLOAT16_VALUE(-4.45), SIMDE_FLOAT16_VALUE(-4.44), SIMDE_FLOAT16_VALUE(-3.80),
SIMDE_FLOAT16_VALUE(8.02), SIMDE_FLOAT16_VALUE(-6.86), SIMDE_FLOAT16_VALUE(3.22), SIMDE_FLOAT16_VALUE(7.96),
SIMDE_FLOAT16_VALUE(2.96), SIMDE_FLOAT16_VALUE(9.81), SIMDE_FLOAT16_VALUE(-2.28), SIMDE_FLOAT16_VALUE(2.25),
SIMDE_FLOAT16_VALUE(6.08), SIMDE_FLOAT16_VALUE(-2.65), SIMDE_FLOAT16_VALUE(5.79), SIMDE_FLOAT16_VALUE(2.07) },
{ { SIMDE_FLOAT16_VALUE(9.59), SIMDE_FLOAT16_VALUE(-4.45), SIMDE_FLOAT16_VALUE(-4.44), SIMDE_FLOAT16_VALUE(-3.80),
SIMDE_FLOAT16_VALUE(8.02), SIMDE_FLOAT16_VALUE(-6.86), SIMDE_FLOAT16_VALUE(3.22), SIMDE_FLOAT16_VALUE(7.96) },
{ SIMDE_FLOAT16_VALUE(2.96), SIMDE_FLOAT16_VALUE(9.81), SIMDE_FLOAT16_VALUE(-2.28), SIMDE_FLOAT16_VALUE(2.25),
SIMDE_FLOAT16_VALUE(6.08), SIMDE_FLOAT16_VALUE(-2.65), SIMDE_FLOAT16_VALUE(5.79), SIMDE_FLOAT16_VALUE(2.07) } } },
{ { SIMDE_FLOAT16_VALUE(-8.12), SIMDE_FLOAT16_VALUE(-8.56), SIMDE_FLOAT16_VALUE(-3.17), SIMDE_FLOAT16_VALUE(7.97),
SIMDE_FLOAT16_VALUE(-6.75), SIMDE_FLOAT16_VALUE(-7.91), SIMDE_FLOAT16_VALUE(-3.52), SIMDE_FLOAT16_VALUE(4.08),
SIMDE_FLOAT16_VALUE(-7.33), SIMDE_FLOAT16_VALUE(4.96), SIMDE_FLOAT16_VALUE(2.30), SIMDE_FLOAT16_VALUE(4.35),
SIMDE_FLOAT16_VALUE(6.65), SIMDE_FLOAT16_VALUE(-9.83), SIMDE_FLOAT16_VALUE(4.16), SIMDE_FLOAT16_VALUE(-9.32) },
{ { SIMDE_FLOAT16_VALUE(-8.12), SIMDE_FLOAT16_VALUE(-8.56), SIMDE_FLOAT16_VALUE(-3.17), SIMDE_FLOAT16_VALUE(7.97),
SIMDE_FLOAT16_VALUE(-6.75), SIMDE_FLOAT16_VALUE(-7.91), SIMDE_FLOAT16_VALUE(-3.52), SIMDE_FLOAT16_VALUE(4.08) },
{ SIMDE_FLOAT16_VALUE(-7.33), SIMDE_FLOAT16_VALUE(4.96), SIMDE_FLOAT16_VALUE(2.30), SIMDE_FLOAT16_VALUE(4.35),
SIMDE_FLOAT16_VALUE(6.65), SIMDE_FLOAT16_VALUE(-9.83), SIMDE_FLOAT16_VALUE(4.16), SIMDE_FLOAT16_VALUE(-9.32) } } },
{ { SIMDE_FLOAT16_VALUE(-8.89), SIMDE_FLOAT16_VALUE(2.64), SIMDE_FLOAT16_VALUE(8.88), SIMDE_FLOAT16_VALUE(8.92),
SIMDE_FLOAT16_VALUE(1.05), SIMDE_FLOAT16_VALUE(-5.69), SIMDE_FLOAT16_VALUE(1.66), SIMDE_FLOAT16_VALUE(-3.57),
SIMDE_FLOAT16_VALUE(-0.96), SIMDE_FLOAT16_VALUE(2.24), SIMDE_FLOAT16_VALUE(6.98), SIMDE_FLOAT16_VALUE(1.03),
SIMDE_FLOAT16_VALUE(7.90), SIMDE_FLOAT16_VALUE(9.00), SIMDE_FLOAT16_VALUE(-0.34), SIMDE_FLOAT16_VALUE(9.82) },
{ { SIMDE_FLOAT16_VALUE(-8.89), SIMDE_FLOAT16_VALUE(2.64), SIMDE_FLOAT16_VALUE(8.88), SIMDE_FLOAT16_VALUE(8.92),
SIMDE_FLOAT16_VALUE(1.05), SIMDE_FLOAT16_VALUE(-5.69), SIMDE_FLOAT16_VALUE(1.66), SIMDE_FLOAT16_VALUE(-3.57) },
{ SIMDE_FLOAT16_VALUE(-0.96), SIMDE_FLOAT16_VALUE(2.24), SIMDE_FLOAT16_VALUE(6.98), SIMDE_FLOAT16_VALUE(1.03),
SIMDE_FLOAT16_VALUE(7.90), SIMDE_FLOAT16_VALUE(9.00), SIMDE_FLOAT16_VALUE(-0.34), SIMDE_FLOAT16_VALUE(9.82) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float16x8x2_t r = simde_vld1q_f16_x2(test_vec[i].buf);
simde_float16x8x2_t expected = {{
simde_vld1q_f16(test_vec[i].expected[0]),
simde_vld1q_f16(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_f16x8x2(r, expected, 1);
}
return 0;
}
static int
test_simde_vld1q_f32_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 buf[8];
simde_float32 expected[2][4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -519.75), SIMDE_FLOAT32_C( 458.27), SIMDE_FLOAT32_C( -666.84), SIMDE_FLOAT32_C( 30.63),
SIMDE_FLOAT32_C( 204.13), SIMDE_FLOAT32_C( 924.39), SIMDE_FLOAT32_C( 273.99), SIMDE_FLOAT32_C( -46.96) },
{ { SIMDE_FLOAT32_C( -519.75), SIMDE_FLOAT32_C( 458.27), SIMDE_FLOAT32_C( -666.84), SIMDE_FLOAT32_C( 30.63) },
{ SIMDE_FLOAT32_C( 204.13), SIMDE_FLOAT32_C( 924.39), SIMDE_FLOAT32_C( 273.99), SIMDE_FLOAT32_C( -46.96) } },
},
{ { SIMDE_FLOAT32_C( -699.34), SIMDE_FLOAT32_C( -33.06), SIMDE_FLOAT32_C( -647.44), SIMDE_FLOAT32_C( 127.96),
SIMDE_FLOAT32_C( 609.99), SIMDE_FLOAT32_C( 520.83), SIMDE_FLOAT32_C( -592.58), SIMDE_FLOAT32_C( 923.15) },
{ { SIMDE_FLOAT32_C( -699.34), SIMDE_FLOAT32_C( -33.06), SIMDE_FLOAT32_C( -647.44), SIMDE_FLOAT32_C( 127.96) },
{ SIMDE_FLOAT32_C( 609.99), SIMDE_FLOAT32_C( 520.83), SIMDE_FLOAT32_C( -592.58), SIMDE_FLOAT32_C( 923.15) } },
},
{ { SIMDE_FLOAT32_C( -372.27), SIMDE_FLOAT32_C( 210.58), SIMDE_FLOAT32_C( -652.94), SIMDE_FLOAT32_C( -104.58),
SIMDE_FLOAT32_C( -217.08), SIMDE_FLOAT32_C( 293.97), SIMDE_FLOAT32_C( -646.43), SIMDE_FLOAT32_C( -437.15) },
{ { SIMDE_FLOAT32_C( -372.27), SIMDE_FLOAT32_C( 210.58), SIMDE_FLOAT32_C( -652.94), SIMDE_FLOAT32_C( -104.58) },
{ SIMDE_FLOAT32_C( -217.08), SIMDE_FLOAT32_C( 293.97), SIMDE_FLOAT32_C( -646.43), SIMDE_FLOAT32_C( -437.15) } },
},
{ { SIMDE_FLOAT32_C( -88.48), SIMDE_FLOAT32_C( 163.64), SIMDE_FLOAT32_C( -966.50), SIMDE_FLOAT32_C( 798.22),
SIMDE_FLOAT32_C( 997.21), SIMDE_FLOAT32_C( 40.31), SIMDE_FLOAT32_C( 338.70), SIMDE_FLOAT32_C( -522.54) },
{ { SIMDE_FLOAT32_C( -88.48), SIMDE_FLOAT32_C( 163.64), SIMDE_FLOAT32_C( -966.50), SIMDE_FLOAT32_C( 798.22) },
{ SIMDE_FLOAT32_C( 997.21), SIMDE_FLOAT32_C( 40.31), SIMDE_FLOAT32_C( 338.70), SIMDE_FLOAT32_C( -522.54) } },
},
{ { SIMDE_FLOAT32_C( -501.41), SIMDE_FLOAT32_C( 671.87), SIMDE_FLOAT32_C( 508.09), SIMDE_FLOAT32_C( 702.72),
SIMDE_FLOAT32_C( 596.26), SIMDE_FLOAT32_C( -217.91), SIMDE_FLOAT32_C( -344.24), SIMDE_FLOAT32_C( 896.92) },
{ { SIMDE_FLOAT32_C( -501.41), SIMDE_FLOAT32_C( 671.87), SIMDE_FLOAT32_C( 508.09), SIMDE_FLOAT32_C( 702.72) },
{ SIMDE_FLOAT32_C( 596.26), SIMDE_FLOAT32_C( -217.91), SIMDE_FLOAT32_C( -344.24), SIMDE_FLOAT32_C( 896.92) } },
},
{ { SIMDE_FLOAT32_C( 749.03), SIMDE_FLOAT32_C( 8.31), SIMDE_FLOAT32_C( 24.89), SIMDE_FLOAT32_C( 359.02),
SIMDE_FLOAT32_C( -470.86), SIMDE_FLOAT32_C( 432.30), SIMDE_FLOAT32_C( 282.17), SIMDE_FLOAT32_C( 156.87) },
{ { SIMDE_FLOAT32_C( 749.03), SIMDE_FLOAT32_C( 8.31), SIMDE_FLOAT32_C( 24.89), SIMDE_FLOAT32_C( 359.02) },
{ SIMDE_FLOAT32_C( -470.86), SIMDE_FLOAT32_C( 432.30), SIMDE_FLOAT32_C( 282.17), SIMDE_FLOAT32_C( 156.87) } },
},
{ { SIMDE_FLOAT32_C( -357.11), SIMDE_FLOAT32_C( 629.23), SIMDE_FLOAT32_C( -947.72), SIMDE_FLOAT32_C( 425.80),
SIMDE_FLOAT32_C( -76.80), SIMDE_FLOAT32_C( -594.15), SIMDE_FLOAT32_C( 988.65), SIMDE_FLOAT32_C( 834.72) },
{ { SIMDE_FLOAT32_C( -357.11), SIMDE_FLOAT32_C( 629.23), SIMDE_FLOAT32_C( -947.72), SIMDE_FLOAT32_C( 425.80) },
{ SIMDE_FLOAT32_C( -76.80), SIMDE_FLOAT32_C( -594.15), SIMDE_FLOAT32_C( 988.65), SIMDE_FLOAT32_C( 834.72) } },
},
{ { SIMDE_FLOAT32_C( 569.49), SIMDE_FLOAT32_C( -977.85), SIMDE_FLOAT32_C( 632.94), SIMDE_FLOAT32_C( 566.70),
SIMDE_FLOAT32_C( 62.47), SIMDE_FLOAT32_C( -28.35), SIMDE_FLOAT32_C( -955.84), SIMDE_FLOAT32_C( 561.05) },
{ { SIMDE_FLOAT32_C( 569.49), SIMDE_FLOAT32_C( -977.85), SIMDE_FLOAT32_C( 632.94), SIMDE_FLOAT32_C( 566.70) },
{ SIMDE_FLOAT32_C( 62.47), SIMDE_FLOAT32_C( -28.35), SIMDE_FLOAT32_C( -955.84), SIMDE_FLOAT32_C( 561.05) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float32x4x2_t r = simde_vld1q_f32_x2(test_vec[i].buf);
simde_float32x4x2_t expected = {{
simde_vld1q_f32(test_vec[i].expected[0]),
simde_vld1q_f32(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_f32x4x2(r, expected, 1);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_float32 buf[8];
for (int j = 0 ; j < 8 ; j++) {
buf[j] = simde_test_codegen_random_f32(-1000.0f, 1000.0f);
}
simde_test_codegen_write_vf32(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_float32x4x2_t val = simde_vld1q_f32_x2(buf);
simde_test_arm_neon_write_f32x4x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_f64_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 buf[4];
simde_float64 expected[2][2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -356.49), SIMDE_FLOAT64_C( 552.25), SIMDE_FLOAT64_C( 263.77), SIMDE_FLOAT64_C( -760.23) },
{ { SIMDE_FLOAT64_C( -356.49), SIMDE_FLOAT64_C( 552.25) },
{ SIMDE_FLOAT64_C( 263.77), SIMDE_FLOAT64_C( -760.23) } },
},
{ { SIMDE_FLOAT64_C( -665.66), SIMDE_FLOAT64_C( 919.53), SIMDE_FLOAT64_C( -863.30), SIMDE_FLOAT64_C( -916.63) },
{ { SIMDE_FLOAT64_C( -665.66), SIMDE_FLOAT64_C( 919.53) },
{ SIMDE_FLOAT64_C( -863.30), SIMDE_FLOAT64_C( -916.63) } },
},
{ { SIMDE_FLOAT64_C( -72.16), SIMDE_FLOAT64_C( 161.58), SIMDE_FLOAT64_C( 442.39), SIMDE_FLOAT64_C( 456.98) },
{ { SIMDE_FLOAT64_C( -72.16), SIMDE_FLOAT64_C( 161.58) },
{ SIMDE_FLOAT64_C( 442.39), SIMDE_FLOAT64_C( 456.98) } },
},
{ { SIMDE_FLOAT64_C( -406.11), SIMDE_FLOAT64_C( -275.44), SIMDE_FLOAT64_C( -386.15), SIMDE_FLOAT64_C( 236.77) },
{ { SIMDE_FLOAT64_C( -406.11), SIMDE_FLOAT64_C( -275.44) },
{ SIMDE_FLOAT64_C( -386.15), SIMDE_FLOAT64_C( 236.77) } },
},
{ { SIMDE_FLOAT64_C( -646.21), SIMDE_FLOAT64_C( -333.87), SIMDE_FLOAT64_C( -337.42), SIMDE_FLOAT64_C( 276.99) },
{ { SIMDE_FLOAT64_C( -646.21), SIMDE_FLOAT64_C( -333.87) },
{ SIMDE_FLOAT64_C( -337.42), SIMDE_FLOAT64_C( 276.99) } },
},
{ { SIMDE_FLOAT64_C( 71.98), SIMDE_FLOAT64_C( -348.77), SIMDE_FLOAT64_C( 111.71), SIMDE_FLOAT64_C( -358.53) },
{ { SIMDE_FLOAT64_C( 71.98), SIMDE_FLOAT64_C( -348.77) },
{ SIMDE_FLOAT64_C( 111.71), SIMDE_FLOAT64_C( -358.53) } },
},
{ { SIMDE_FLOAT64_C( -326.61), SIMDE_FLOAT64_C( -255.35), SIMDE_FLOAT64_C( -791.83), SIMDE_FLOAT64_C( 735.85) },
{ { SIMDE_FLOAT64_C( -326.61), SIMDE_FLOAT64_C( -255.35) },
{ SIMDE_FLOAT64_C( -791.83), SIMDE_FLOAT64_C( 735.85) } },
},
{ { SIMDE_FLOAT64_C( 716.30), SIMDE_FLOAT64_C( -747.68), SIMDE_FLOAT64_C( 296.91), SIMDE_FLOAT64_C( -640.19) },
{ { SIMDE_FLOAT64_C( 716.30), SIMDE_FLOAT64_C( -747.68) },
{ SIMDE_FLOAT64_C( 296.91), SIMDE_FLOAT64_C( -640.19) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float64x2x2_t r = simde_vld1q_f64_x2(test_vec[i].buf);
simde_float64x2x2_t expected = {{
simde_vld1q_f64(test_vec[i].expected[0]),
simde_vld1q_f64(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_f64x2x2(r, expected, 1);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_float64 buf[4];
for (int j = 0 ; j < 4 ; j++) {
buf[j] = simde_test_codegen_random_f64(-1000.0, 1000.0);
}
simde_test_codegen_write_vf64(2, 4, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_float64x2x2_t val = simde_vld1q_f64_x2(buf);
simde_test_arm_neon_write_f64x2x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s8_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t buf[32];
int8_t expected[2][16];
} test_vec[] = {
{ { INT8_C( 87), INT8_C( 13), INT8_C( 111), -INT8_C( 93), -INT8_C( 38), INT8_C( 103), INT8_C( 59), -INT8_C( 94),
-INT8_C( 85), INT8_C( 66), INT8_C( 92), INT8_C( 66), INT8_C( 13), INT8_C( 68), -INT8_C( 61), -INT8_C( 3),
INT8_C( 106), -INT8_C( 58), -INT8_C( 56), INT8_C( 19), INT8_C( 12), INT8_C( 53), INT8_C( 65), -INT8_C( 50),
-INT8_C( 34), INT8_C( 14), -INT8_C( 90), INT8_C( 86), INT8_C( 59), INT8_C( 47), -INT8_C( 124), -INT8_C( 109) },
{ { INT8_C( 87), INT8_C( 13), INT8_C( 111), -INT8_C( 93), -INT8_C( 38), INT8_C( 103), INT8_C( 59), -INT8_C( 94),
-INT8_C( 85), INT8_C( 66), INT8_C( 92), INT8_C( 66), INT8_C( 13), INT8_C( 68), -INT8_C( 61), -INT8_C( 3) },
{ INT8_C( 106), -INT8_C( 58), -INT8_C( 56), INT8_C( 19), INT8_C( 12), INT8_C( 53), INT8_C( 65), -INT8_C( 50),
-INT8_C( 34), INT8_C( 14), -INT8_C( 90), INT8_C( 86), INT8_C( 59), INT8_C( 47), -INT8_C( 124), -INT8_C( 109) } },
},
{ { INT8_C( 61), -INT8_C( 13), INT8_C( 54), INT8_C( 23), INT8_C( 90), INT8_C( 113), -INT8_C( 71), INT8_C( 5),
-INT8_C( 77), INT8_C( 22), INT8_C( 71), -INT8_C( 63), INT8_C( 90), INT8_C( 10), -INT8_C( 66), -INT8_C( 59),
-INT8_C( 48), -INT8_C( 122), -INT8_C( 40), -INT8_C( 35), -INT8_C( 69), INT8_C( 25), -INT8_C( 85), -INT8_C( 103),
INT8_C( 40), INT8_C( 82), -INT8_C( 16), INT8_C( 99), -INT8_C( 127), INT8_C( 116), -INT8_C( 10), -INT8_C( 66) },
{ { INT8_C( 61), -INT8_C( 13), INT8_C( 54), INT8_C( 23), INT8_C( 90), INT8_C( 113), -INT8_C( 71), INT8_C( 5),
-INT8_C( 77), INT8_C( 22), INT8_C( 71), -INT8_C( 63), INT8_C( 90), INT8_C( 10), -INT8_C( 66), -INT8_C( 59) },
{ -INT8_C( 48), -INT8_C( 122), -INT8_C( 40), -INT8_C( 35), -INT8_C( 69), INT8_C( 25), -INT8_C( 85), -INT8_C( 103),
INT8_C( 40), INT8_C( 82), -INT8_C( 16), INT8_C( 99), -INT8_C( 127), INT8_C( 116), -INT8_C( 10), -INT8_C( 66) } },
},
{ { INT8_C( 103), INT8_C( 44), -INT8_C( 42), -INT8_C( 62), -INT8_C( 98), -INT8_C( 113), -INT8_C( 57), INT8_C( 81),
-INT8_C( 91), INT8_C( 15), INT8_C( 18), INT8_C( 0), INT8_C( 25), -INT8_C( 48), -INT8_C( 59), -INT8_C( 22),
INT8_C( 86), -INT8_C( 99), -INT8_C( 57), INT8_C( 17), -INT8_C( 73), INT8_C( 114), -INT8_C( 85), -INT8_C( 33),
-INT8_C( 60), -INT8_C( 101), INT8_C( 66), INT8_C( 70), INT8_C( 15), INT8_C( 57), INT8_C( 4), INT8_C( 118) },
{ { INT8_C( 103), INT8_C( 44), -INT8_C( 42), -INT8_C( 62), -INT8_C( 98), -INT8_C( 113), -INT8_C( 57), INT8_C( 81),
-INT8_C( 91), INT8_C( 15), INT8_C( 18), INT8_C( 0), INT8_C( 25), -INT8_C( 48), -INT8_C( 59), -INT8_C( 22) },
{ INT8_C( 86), -INT8_C( 99), -INT8_C( 57), INT8_C( 17), -INT8_C( 73), INT8_C( 114), -INT8_C( 85), -INT8_C( 33),
-INT8_C( 60), -INT8_C( 101), INT8_C( 66), INT8_C( 70), INT8_C( 15), INT8_C( 57), INT8_C( 4), INT8_C( 118) } },
},
{ { INT8_C( 101), -INT8_C( 38), INT8_C( 56), INT8_C( 3), INT8_C( 106), INT8_C( 0), INT8_C( 85), INT8_C( 15),
INT8_C( 15), INT8_C( 103), INT8_C( 15), INT8_C( 40), INT8_C( 56), -INT8_C( 44), INT8_C( 18), -INT8_C( 114),
INT8_C( 114), -INT8_C( 39), -INT8_C( 96), INT8_C( 41), INT8_C( 76), INT8_C( 75), INT8_C( 8), INT8_C( 16),
-INT8_C( 26), INT8_C( 74), INT8_C( 86), -INT8_C( 11), -INT8_C( 125), INT8_C( 91), INT8_C( 107), -INT8_C( 23) },
{ { INT8_C( 101), -INT8_C( 38), INT8_C( 56), INT8_C( 3), INT8_C( 106), INT8_C( 0), INT8_C( 85), INT8_C( 15),
INT8_C( 15), INT8_C( 103), INT8_C( 15), INT8_C( 40), INT8_C( 56), -INT8_C( 44), INT8_C( 18), -INT8_C( 114) },
{ INT8_C( 114), -INT8_C( 39), -INT8_C( 96), INT8_C( 41), INT8_C( 76), INT8_C( 75), INT8_C( 8), INT8_C( 16),
-INT8_C( 26), INT8_C( 74), INT8_C( 86), -INT8_C( 11), -INT8_C( 125), INT8_C( 91), INT8_C( 107), -INT8_C( 23) } },
},
{ { INT8_C( 53), -INT8_C( 92), -INT8_C( 20), -INT8_C( 97), -INT8_C( 92), INT8_C( 65), -INT8_C( 81), -INT8_C( 77),
-INT8_C( 87), -INT8_C( 66), -INT8_C( 37), -INT8_C( 31), -INT8_C( 109), -INT8_C( 18), INT8_C( 111), INT8_C( 5),
-INT8_C( 57), INT8_C( 15), INT8_C( 46), INT8_C( 19), INT8_C( 90), INT8_C( 54), INT8_C( 36), INT8_C( 64),
INT8_MIN, INT8_C( 122), INT8_C( 53), INT8_C( 4), -INT8_C( 43), -INT8_C( 95), -INT8_C( 19), INT8_C( 11) },
{ { INT8_C( 53), -INT8_C( 92), -INT8_C( 20), -INT8_C( 97), -INT8_C( 92), INT8_C( 65), -INT8_C( 81), -INT8_C( 77),
-INT8_C( 87), -INT8_C( 66), -INT8_C( 37), -INT8_C( 31), -INT8_C( 109), -INT8_C( 18), INT8_C( 111), INT8_C( 5) },
{ -INT8_C( 57), INT8_C( 15), INT8_C( 46), INT8_C( 19), INT8_C( 90), INT8_C( 54), INT8_C( 36), INT8_C( 64),
INT8_MIN, INT8_C( 122), INT8_C( 53), INT8_C( 4), -INT8_C( 43), -INT8_C( 95), -INT8_C( 19), INT8_C( 11) } },
},
{ { INT8_C( 69), -INT8_C( 39), -INT8_C( 86), -INT8_C( 23), INT8_C( 27), INT8_C( 89), -INT8_C( 100), -INT8_C( 60),
INT8_C( 24), INT8_C( 119), -INT8_C( 91), -INT8_C( 85), INT8_C( 101), INT8_C( 20), -INT8_C( 80), INT8_C( 45),
INT8_C( 36), -INT8_C( 34), INT8_C( 64), INT8_C( 126), INT8_C( 20), INT8_C( 100), -INT8_C( 65), -INT8_C( 108),
-INT8_C( 33), -INT8_C( 12), -INT8_C( 104), -INT8_C( 76), -INT8_C( 107), -INT8_C( 123), -INT8_C( 65), -INT8_C( 38) },
{ { INT8_C( 69), -INT8_C( 39), -INT8_C( 86), -INT8_C( 23), INT8_C( 27), INT8_C( 89), -INT8_C( 100), -INT8_C( 60),
INT8_C( 24), INT8_C( 119), -INT8_C( 91), -INT8_C( 85), INT8_C( 101), INT8_C( 20), -INT8_C( 80), INT8_C( 45) },
{ INT8_C( 36), -INT8_C( 34), INT8_C( 64), INT8_C( 126), INT8_C( 20), INT8_C( 100), -INT8_C( 65), -INT8_C( 108),
-INT8_C( 33), -INT8_C( 12), -INT8_C( 104), -INT8_C( 76), -INT8_C( 107), -INT8_C( 123), -INT8_C( 65), -INT8_C( 38) } },
},
{ { INT8_C( 95), INT8_C( 106), -INT8_C( 61), INT8_C( 122), -INT8_C( 61), INT8_C( 95), INT8_C( 62), -INT8_C( 37),
-INT8_C( 41), -INT8_C( 29), -INT8_C( 122), INT8_C( 60), -INT8_C( 9), INT8_C( 54), INT8_C( 105), INT8_C( 27),
INT8_C( 20), -INT8_C( 86), -INT8_C( 102), INT8_C( 40), INT8_C( 14), INT8_C( 89), -INT8_C( 67), -INT8_C( 19),
INT8_C( 77), INT8_C( 85), -INT8_C( 94), -INT8_C( 29), -INT8_C( 37), INT8_C( 97), -INT8_C( 67), INT8_C( 58) },
{ { INT8_C( 95), INT8_C( 106), -INT8_C( 61), INT8_C( 122), -INT8_C( 61), INT8_C( 95), INT8_C( 62), -INT8_C( 37),
-INT8_C( 41), -INT8_C( 29), -INT8_C( 122), INT8_C( 60), -INT8_C( 9), INT8_C( 54), INT8_C( 105), INT8_C( 27) },
{ INT8_C( 20), -INT8_C( 86), -INT8_C( 102), INT8_C( 40), INT8_C( 14), INT8_C( 89), -INT8_C( 67), -INT8_C( 19),
INT8_C( 77), INT8_C( 85), -INT8_C( 94), -INT8_C( 29), -INT8_C( 37), INT8_C( 97), -INT8_C( 67), INT8_C( 58) } },
},
{ { -INT8_C( 53), -INT8_C( 127), -INT8_C( 76), -INT8_C( 113), -INT8_C( 32), -INT8_C( 14), INT8_C( 106), -INT8_C( 73),
-INT8_C( 43), -INT8_C( 15), -INT8_C( 12), -INT8_C( 52), INT8_C( 39), INT8_C( 93), -INT8_C( 24), INT8_C( 60),
INT8_C( 7), -INT8_C( 126), INT8_C( 100), INT8_C( 22), -INT8_C( 37), INT8_C( 33), INT8_C( 3), INT8_C( 40),
INT8_C( 119), -INT8_C( 91), INT8_C( 11), INT8_C( 82), INT8_C( 7), -INT8_C( 55), -INT8_C( 116), -INT8_C( 46) },
{ { -INT8_C( 53), -INT8_C( 127), -INT8_C( 76), -INT8_C( 113), -INT8_C( 32), -INT8_C( 14), INT8_C( 106), -INT8_C( 73),
-INT8_C( 43), -INT8_C( 15), -INT8_C( 12), -INT8_C( 52), INT8_C( 39), INT8_C( 93), -INT8_C( 24), INT8_C( 60) },
{ INT8_C( 7), -INT8_C( 126), INT8_C( 100), INT8_C( 22), -INT8_C( 37), INT8_C( 33), INT8_C( 3), INT8_C( 40),
INT8_C( 119), -INT8_C( 91), INT8_C( 11), INT8_C( 82), INT8_C( 7), -INT8_C( 55), -INT8_C( 116), -INT8_C( 46) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int8x16x2_t r = simde_vld1q_s8_x2(test_vec[i].buf);
simde_int8x16x2_t expected = {{
simde_vld1q_s8(test_vec[i].expected[0]),
simde_vld1q_s8(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_i8x16x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int8_t buf[32];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vi8(2, 32, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int8x16x2_t val = simde_vld1q_s8_x2(buf);
simde_test_arm_neon_write_i8x16x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s16_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t buf[16];
int16_t expected[2][8];
} test_vec[] = {
{ { -INT16_C( 32100), -INT16_C( 19381), INT16_C( 2960), -INT16_C( 11469), INT16_C( 18628), -INT16_C( 20611), INT16_C( 28063), -INT16_C( 14327),
INT16_C( 20098), INT16_C( 29533), INT16_C( 27675), -INT16_C( 5529), INT16_C( 3588), INT16_C( 3984), -INT16_C( 30383), -INT16_C( 4699) },
{ { -INT16_C( 32100), -INT16_C( 19381), INT16_C( 2960), -INT16_C( 11469), INT16_C( 18628), -INT16_C( 20611), INT16_C( 28063), -INT16_C( 14327) },
{ INT16_C( 20098), INT16_C( 29533), INT16_C( 27675), -INT16_C( 5529), INT16_C( 3588), INT16_C( 3984), -INT16_C( 30383), -INT16_C( 4699) } },
},
{ { -INT16_C( 4085), -INT16_C( 25439), -INT16_C( 11012), -INT16_C( 16273), -INT16_C( 5092), -INT16_C( 17296), INT16_C( 31065), -INT16_C( 9340),
-INT16_C( 7737), -INT16_C( 7345), -INT16_C( 18867), INT16_C( 21197), INT16_C( 24260), INT16_C( 5473), INT16_C( 1767), -INT16_C( 3326) },
{ { -INT16_C( 4085), -INT16_C( 25439), -INT16_C( 11012), -INT16_C( 16273), -INT16_C( 5092), -INT16_C( 17296), INT16_C( 31065), -INT16_C( 9340) },
{ -INT16_C( 7737), -INT16_C( 7345), -INT16_C( 18867), INT16_C( 21197), INT16_C( 24260), INT16_C( 5473), INT16_C( 1767), -INT16_C( 3326) } },
},
{ { -INT16_C( 23561), -INT16_C( 3185), -INT16_C( 392), -INT16_C( 27469), INT16_C( 9194), INT16_C( 17488), -INT16_C( 11108), INT16_C( 25631),
INT16_C( 28341), INT16_C( 839), INT16_C( 5157), -INT16_C( 5803), -INT16_C( 18830), INT16_C( 23295), INT16_C( 445), -INT16_C( 19379) },
{ { -INT16_C( 23561), -INT16_C( 3185), -INT16_C( 392), -INT16_C( 27469), INT16_C( 9194), INT16_C( 17488), -INT16_C( 11108), INT16_C( 25631) },
{ INT16_C( 28341), INT16_C( 839), INT16_C( 5157), -INT16_C( 5803), -INT16_C( 18830), INT16_C( 23295), INT16_C( 445), -INT16_C( 19379) } },
},
{ { -INT16_C( 9051), INT16_C( 7591), INT16_C( 23258), -INT16_C( 15183), INT16_C( 638), INT16_C( 6664), INT16_C( 10454), -INT16_C( 29570),
-INT16_C( 14954), -INT16_C( 17521), -INT16_C( 6950), INT16_C( 19621), -INT16_C( 23398), INT16_C( 22438), -INT16_C( 3163), INT16_C( 18955) },
{ { -INT16_C( 9051), INT16_C( 7591), INT16_C( 23258), -INT16_C( 15183), INT16_C( 638), INT16_C( 6664), INT16_C( 10454), -INT16_C( 29570) },
{ -INT16_C( 14954), -INT16_C( 17521), -INT16_C( 6950), INT16_C( 19621), -INT16_C( 23398), INT16_C( 22438), -INT16_C( 3163), INT16_C( 18955) } },
},
{ { -INT16_C( 19761), -INT16_C( 22169), INT16_C( 6413), -INT16_C( 29842), INT16_C( 30235), -INT16_C( 3675), INT16_C( 9374), INT16_C( 13693),
INT16_C( 3305), -INT16_C( 15376), -INT16_C( 27152), -INT16_C( 29936), -INT16_C( 18887), -INT16_C( 8222), -INT16_C( 4438), INT16_C( 31017) },
{ { -INT16_C( 19761), -INT16_C( 22169), INT16_C( 6413), -INT16_C( 29842), INT16_C( 30235), -INT16_C( 3675), INT16_C( 9374), INT16_C( 13693) },
{ INT16_C( 3305), -INT16_C( 15376), -INT16_C( 27152), -INT16_C( 29936), -INT16_C( 18887), -INT16_C( 8222), -INT16_C( 4438), INT16_C( 31017) } },
},
{ { -INT16_C( 28256), -INT16_C( 21213), -INT16_C( 28246), -INT16_C( 15048), -INT16_C( 8697), -INT16_C( 22858), INT16_C( 13314), -INT16_C( 5157),
-INT16_C( 13504), INT16_C( 12719), -INT16_C( 16543), -INT16_C( 25924), -INT16_C( 24971), INT16_C( 8057), -INT16_C( 23668), INT16_C( 11673) },
{ { -INT16_C( 28256), -INT16_C( 21213), -INT16_C( 28246), -INT16_C( 15048), -INT16_C( 8697), -INT16_C( 22858), INT16_C( 13314), -INT16_C( 5157) },
{ -INT16_C( 13504), INT16_C( 12719), -INT16_C( 16543), -INT16_C( 25924), -INT16_C( 24971), INT16_C( 8057), -INT16_C( 23668), INT16_C( 11673) } },
},
{ { -INT16_C( 17356), -INT16_C( 8486), INT16_C( 4941), INT16_C( 21667), INT16_C( 23025), -INT16_C( 3078), -INT16_C( 10867), -INT16_C( 12578),
-INT16_C( 29279), INT16_C( 767), -INT16_C( 17588), -INT16_C( 15716), INT16_C( 5721), -INT16_C( 6431), INT16_C( 31417), -INT16_C( 4845) },
{ { -INT16_C( 17356), -INT16_C( 8486), INT16_C( 4941), INT16_C( 21667), INT16_C( 23025), -INT16_C( 3078), -INT16_C( 10867), -INT16_C( 12578) },
{ -INT16_C( 29279), INT16_C( 767), -INT16_C( 17588), -INT16_C( 15716), INT16_C( 5721), -INT16_C( 6431), INT16_C( 31417), -INT16_C( 4845) } },
},
{ { -INT16_C( 4810), -INT16_C( 31797), INT16_C( 28160), -INT16_C( 3624), -INT16_C( 11577), INT16_C( 21988), -INT16_C( 15448), INT16_C( 18723),
INT16_C( 8784), -INT16_C( 25269), -INT16_C( 6179), INT16_C( 13919), INT16_C( 16637), -INT16_C( 18916), INT16_C( 12219), -INT16_C( 3677) },
{ { -INT16_C( 4810), -INT16_C( 31797), INT16_C( 28160), -INT16_C( 3624), -INT16_C( 11577), INT16_C( 21988), -INT16_C( 15448), INT16_C( 18723) },
{ INT16_C( 8784), -INT16_C( 25269), -INT16_C( 6179), INT16_C( 13919), INT16_C( 16637), -INT16_C( 18916), INT16_C( 12219), -INT16_C( 3677) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int16x8x2_t r = simde_vld1q_s16_x2(test_vec[i].buf);
simde_int16x8x2_t expected = {{
simde_vld1q_s16(test_vec[i].expected[0]),
simde_vld1q_s16(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_i16x8x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int16_t buf[16];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vi16(2, 16, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int16x8x2_t val = simde_vld1q_s16_x2(buf);
simde_test_arm_neon_write_i16x8x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s32_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t buf[8];
int32_t expected[2][4];
} test_vec[] = {
{ { -INT32_C( 762919624), INT32_C( 149692731), -INT32_C( 296545614), INT32_C( 1267844380), -INT32_C( 1550454676), -INT32_C( 1798459241), -INT32_C( 2008421263), -INT32_C( 1030084726) },
{ { -INT32_C( 762919624), INT32_C( 149692731), -INT32_C( 296545614), INT32_C( 1267844380) },
{ -INT32_C( 1550454676), -INT32_C( 1798459241), -INT32_C( 2008421263), -INT32_C( 1030084726) } },
},
{ { INT32_C( 680796397), -INT32_C( 198148030), -INT32_C( 1344109421), -INT32_C( 1241877431), -INT32_C( 61239196), -INT32_C( 1299175872), -INT32_C( 1673864942), -INT32_C( 295775231) },
{ { INT32_C( 680796397), -INT32_C( 198148030), -INT32_C( 1344109421), -INT32_C( 1241877431) },
{ -INT32_C( 61239196), -INT32_C( 1299175872), -INT32_C( 1673864942), -INT32_C( 295775231) } },
},
{ { INT32_C( 924250869), INT32_C( 103499635), INT32_C( 347410123), -INT32_C( 422989694), -INT32_C( 2132663744), INT32_C( 1530032969), INT32_C( 1308126284), INT32_C( 909858369) },
{ { INT32_C( 924250869), INT32_C( 103499635), INT32_C( 347410123), -INT32_C( 422989694) },
{ -INT32_C( 2132663744), INT32_C( 1530032969), INT32_C( 1308126284), INT32_C( 909858369) } },
},
{ { -INT32_C( 1133686199), INT32_C( 1690474649), INT32_C( 678983590), INT32_C( 1729052967), -INT32_C( 1377242780), -INT32_C( 1324869020), -INT32_C( 922877817), -INT32_C( 1593951657) },
{ { -INT32_C( 1133686199), INT32_C( 1690474649), INT32_C( 678983590), INT32_C( 1729052967) },
{ -INT32_C( 1377242780), -INT32_C( 1324869020), -INT32_C( 922877817), -INT32_C( 1593951657) } },
},
{ { INT32_C( 626813836), -INT32_C( 1433854461), -INT32_C( 1110310507), -INT32_C( 1507532478), INT32_C( 928189651), -INT32_C( 1360503769), -INT32_C( 1284053156), -INT32_C( 1387039711) },
{ { INT32_C( 626813836), -INT32_C( 1433854461), -INT32_C( 1110310507), -INT32_C( 1507532478) },
{ INT32_C( 928189651), -INT32_C( 1360503769), -INT32_C( 1284053156), -INT32_C( 1387039711) } },
},
{ { -INT32_C( 489508897), INT32_C( 1670142925), -INT32_C( 1642045604), INT32_C( 323306560), INT32_C( 2018220113), INT32_C( 1361458164), INT32_C( 990157850), -INT32_C( 269985776) },
{ { -INT32_C( 489508897), INT32_C( 1670142925), -INT32_C( 1642045604), INT32_C( 323306560) },
{ INT32_C( 2018220113), INT32_C( 1361458164), INT32_C( 990157850), -INT32_C( 269985776) } },
},
{ { -INT32_C( 707675641), INT32_C( 1899519509), -INT32_C( 49260355), -INT32_C( 317631076), -INT32_C( 496673555), -INT32_C( 1439462513), INT32_C( 937768743), -INT32_C( 1759064433) },
{ { -INT32_C( 707675641), INT32_C( 1899519509), -INT32_C( 49260355), -INT32_C( 317631076) },
{ -INT32_C( 496673555), -INT32_C( 1439462513), INT32_C( 937768743), -INT32_C( 1759064433) } },
},
{ { -INT32_C( 1637025656), INT32_C( 319792214), -INT32_C( 1743773700), INT32_C( 1652957556), INT32_C( 222620541), -INT32_C( 1632143497), INT32_C( 1054252206), -INT32_C( 204080022) },
{ { -INT32_C( 1637025656), INT32_C( 319792214), -INT32_C( 1743773700), INT32_C( 1652957556) },
{ INT32_C( 222620541), -INT32_C( 1632143497), INT32_C( 1054252206), -INT32_C( 204080022) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int32x4x2_t r = simde_vld1q_s32_x2(test_vec[i].buf);
simde_int32x4x2_t expected = {{
simde_vld1q_s32(test_vec[i].expected[0]),
simde_vld1q_s32(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_i32x4x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int32_t buf[8];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vi32(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int32x4x2_t val = simde_vld1q_s32_x2(buf);
simde_test_arm_neon_write_i32x4x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s64_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t buf[4];
int64_t expected[2][2];
} test_vec[] = {
{ { -INT64_C( 2207431335682686476), INT64_C( 979250959525441216), INT64_C( 230147468483307), -INT64_C( 4050121639302605203) },
{ { -INT64_C( 2207431335682686476), INT64_C( 979250959525441216) },
{ INT64_C( 230147468483307), -INT64_C( 4050121639302605203) } },
},
{ { -INT64_C( 4892474916104676268), INT64_C( 9113745863212110813), -INT64_C( 3264018577499319198), INT64_C( 6363996410817999287) },
{ { -INT64_C( 4892474916104676268), INT64_C( 9113745863212110813) },
{ -INT64_C( 3264018577499319198), INT64_C( 6363996410817999287) } },
},
{ { -INT64_C( 5725575050056080431), INT64_C( 7300501038633417535), -INT64_C( 4079192465958490069), INT64_C( 6060336034876558781) },
{ { -INT64_C( 5725575050056080431), INT64_C( 7300501038633417535) },
{ -INT64_C( 4079192465958490069), INT64_C( 6060336034876558781) } },
},
{ { -INT64_C( 7599070828417602554), INT64_C( 7678839946117424936), INT64_C( 3657026758223047144), -INT64_C( 4953097891104943509) },
{ { -INT64_C( 7599070828417602554), INT64_C( 7678839946117424936) },
{ INT64_C( 3657026758223047144), -INT64_C( 4953097891104943509) } },
},
{ { INT64_C( 4299001481783502267), -INT64_C( 5588694690520755770), INT64_C( 3767099224226491296), INT64_C( 499449081851231358) },
{ { INT64_C( 4299001481783502267), -INT64_C( 5588694690520755770) },
{ INT64_C( 3767099224226491296), INT64_C( 499449081851231358) } },
},
{ { INT64_C( 7573297153655210955), INT64_C( 1607748193023328211), -INT64_C( 1925443429153899703), -INT64_C( 7277809503211853137) },
{ { INT64_C( 7573297153655210955), INT64_C( 1607748193023328211) },
{ -INT64_C( 1925443429153899703), -INT64_C( 7277809503211853137) } },
},
{ { -INT64_C( 5938679067871471478), INT64_C( 3215457857194034194), -INT64_C( 1377954984720676204), -INT64_C( 8548985481522120465) },
{ { -INT64_C( 5938679067871471478), INT64_C( 3215457857194034194) },
{ -INT64_C( 1377954984720676204), -INT64_C( 8548985481522120465) } },
},
{ { INT64_C( 8756769434874795263), -INT64_C( 117761641587552177), INT64_C( 1267158708278369387), INT64_C( 7014967073009859538) },
{ { INT64_C( 8756769434874795263), -INT64_C( 117761641587552177) },
{ INT64_C( 1267158708278369387), INT64_C( 7014967073009859538) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int64x2x2_t r = simde_vld1q_s64_x2(test_vec[i].buf);
simde_int64x2x2_t expected = {{
simde_vld1q_s64(test_vec[i].expected[0]),
simde_vld1q_s64(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_i64x2x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int64_t buf[4];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vi64(2, 4, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int64x2x2_t val = simde_vld1q_s64_x2(buf);
simde_test_arm_neon_write_i64x2x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u8_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t buf[32];
uint8_t expected[2][16];
} test_vec[] = {
{ { UINT8_C( 1), UINT8_C(207), UINT8_C( 90), UINT8_C( 91), UINT8_C( 1), UINT8_C(120), UINT8_C(244), UINT8_C( 26),
UINT8_C( 39), UINT8_C( 61), UINT8_C( 30), UINT8_C(124), UINT8_C(117), UINT8_C(182), UINT8_C(248), UINT8_C(134),
UINT8_C(103), UINT8_C(254), UINT8_C(116), UINT8_C(200), UINT8_C( 4), UINT8_C(177), UINT8_C(119), UINT8_C(104),
UINT8_C(147), UINT8_C( 37), UINT8_C(120), UINT8_C( 21), UINT8_C(213), UINT8_C( 20), UINT8_C(135), UINT8_C(214) },
{ { UINT8_C( 1), UINT8_C(207), UINT8_C( 90), UINT8_C( 91), UINT8_C( 1), UINT8_C(120), UINT8_C(244), UINT8_C( 26),
UINT8_C( 39), UINT8_C( 61), UINT8_C( 30), UINT8_C(124), UINT8_C(117), UINT8_C(182), UINT8_C(248), UINT8_C(134) },
{ UINT8_C(103), UINT8_C(254), UINT8_C(116), UINT8_C(200), UINT8_C( 4), UINT8_C(177), UINT8_C(119), UINT8_C(104),
UINT8_C(147), UINT8_C( 37), UINT8_C(120), UINT8_C( 21), UINT8_C(213), UINT8_C( 20), UINT8_C(135), UINT8_C(214) } },
},
{ { UINT8_C(227), UINT8_C(225), UINT8_C( 50), UINT8_C(229), UINT8_C( 89), UINT8_C( 38), UINT8_MAX, UINT8_C(128),
UINT8_C(100), UINT8_C( 29), UINT8_C(252), UINT8_C(217), UINT8_C(211), UINT8_C(244), UINT8_C( 95), UINT8_C( 59),
UINT8_C(242), UINT8_C(212), UINT8_C( 3), UINT8_C(246), UINT8_C(133), UINT8_C(122), UINT8_C( 94), UINT8_C( 25),
UINT8_C(159), UINT8_C(215), UINT8_C( 46), UINT8_C(117), UINT8_C(235), UINT8_C(181), UINT8_C( 75), UINT8_C(206) },
{ { UINT8_C(227), UINT8_C(225), UINT8_C( 50), UINT8_C(229), UINT8_C( 89), UINT8_C( 38), UINT8_MAX, UINT8_C(128),
UINT8_C(100), UINT8_C( 29), UINT8_C(252), UINT8_C(217), UINT8_C(211), UINT8_C(244), UINT8_C( 95), UINT8_C( 59) },
{ UINT8_C(242), UINT8_C(212), UINT8_C( 3), UINT8_C(246), UINT8_C(133), UINT8_C(122), UINT8_C( 94), UINT8_C( 25),
UINT8_C(159), UINT8_C(215), UINT8_C( 46), UINT8_C(117), UINT8_C(235), UINT8_C(181), UINT8_C( 75), UINT8_C(206) } },
},
{ { UINT8_C(150), UINT8_C(125), UINT8_C(179), UINT8_C(239), UINT8_C(164), UINT8_C(178), UINT8_C(111), UINT8_C( 8),
UINT8_C(208), UINT8_C(107), UINT8_C(225), UINT8_C(163), UINT8_C( 95), UINT8_C( 64), UINT8_C(222), UINT8_C( 81),
UINT8_C( 20), UINT8_C(226), UINT8_C( 71), UINT8_C(154), UINT8_C( 92), UINT8_C(166), UINT8_C(179), UINT8_C(252),
UINT8_C(125), UINT8_C(225), UINT8_C(113), UINT8_C(104), UINT8_C(150), UINT8_C(188), UINT8_C( 54), UINT8_C( 44) },
{ { UINT8_C(150), UINT8_C(125), UINT8_C(179), UINT8_C(239), UINT8_C(164), UINT8_C(178), UINT8_C(111), UINT8_C( 8),
UINT8_C(208), UINT8_C(107), UINT8_C(225), UINT8_C(163), UINT8_C( 95), UINT8_C( 64), UINT8_C(222), UINT8_C( 81) },
{ UINT8_C( 20), UINT8_C(226), UINT8_C( 71), UINT8_C(154), UINT8_C( 92), UINT8_C(166), UINT8_C(179), UINT8_C(252),
UINT8_C(125), UINT8_C(225), UINT8_C(113), UINT8_C(104), UINT8_C(150), UINT8_C(188), UINT8_C( 54), UINT8_C( 44) } },
},
{ { UINT8_C( 58), UINT8_C(234), UINT8_C( 27), UINT8_C(222), UINT8_C(156), UINT8_C(138), UINT8_C(230), UINT8_C(108),
UINT8_C(245), UINT8_C(199), UINT8_C( 16), UINT8_C( 84), UINT8_C( 7), UINT8_C(238), UINT8_C(165), UINT8_C( 28),
UINT8_C(208), UINT8_C(236), UINT8_C(182), UINT8_C( 45), UINT8_C(146), UINT8_C(105), UINT8_C( 41), UINT8_C( 15),
UINT8_C( 74), UINT8_C(154), UINT8_C(119), UINT8_C(224), UINT8_C( 86), UINT8_C(174), UINT8_C( 12), UINT8_C(144) },
{ { UINT8_C( 58), UINT8_C(234), UINT8_C( 27), UINT8_C(222), UINT8_C(156), UINT8_C(138), UINT8_C(230), UINT8_C(108),
UINT8_C(245), UINT8_C(199), UINT8_C( 16), UINT8_C( 84), UINT8_C( 7), UINT8_C(238), UINT8_C(165), UINT8_C( 28) },
{ UINT8_C(208), UINT8_C(236), UINT8_C(182), UINT8_C( 45), UINT8_C(146), UINT8_C(105), UINT8_C( 41), UINT8_C( 15),
UINT8_C( 74), UINT8_C(154), UINT8_C(119), UINT8_C(224), UINT8_C( 86), UINT8_C(174), UINT8_C( 12), UINT8_C(144) } },
},
{ { UINT8_C(152), UINT8_C( 39), UINT8_C(110), UINT8_C( 52), UINT8_C(177), UINT8_C( 84), UINT8_C(161), UINT8_C(166),
UINT8_C( 27), UINT8_C(177), UINT8_C(250), UINT8_C( 35), UINT8_C(159), UINT8_C(159), UINT8_C( 63), UINT8_C(112),
UINT8_C(139), UINT8_C(245), UINT8_C(157), UINT8_C( 30), UINT8_C( 94), UINT8_C(198), UINT8_C( 45), UINT8_C(168),
UINT8_C( 96), UINT8_C(165), UINT8_C(136), UINT8_C(182), UINT8_C( 83), UINT8_C(148), UINT8_C( 71), UINT8_C(235) },
{ { UINT8_C(152), UINT8_C( 39), UINT8_C(110), UINT8_C( 52), UINT8_C(177), UINT8_C( 84), UINT8_C(161), UINT8_C(166),
UINT8_C( 27), UINT8_C(177), UINT8_C(250), UINT8_C( 35), UINT8_C(159), UINT8_C(159), UINT8_C( 63), UINT8_C(112) },
{ UINT8_C(139), UINT8_C(245), UINT8_C(157), UINT8_C( 30), UINT8_C( 94), UINT8_C(198), UINT8_C( 45), UINT8_C(168),
UINT8_C( 96), UINT8_C(165), UINT8_C(136), UINT8_C(182), UINT8_C( 83), UINT8_C(148), UINT8_C( 71), UINT8_C(235) } },
},
{ { UINT8_C(187), UINT8_C(181), UINT8_C( 31), UINT8_C(108), UINT8_C( 10), UINT8_C(192), UINT8_C( 18), UINT8_C( 37),
UINT8_C(113), UINT8_C( 12), UINT8_C( 72), UINT8_C( 17), UINT8_C(171), UINT8_C(135), UINT8_C(129), UINT8_C( 54),
UINT8_C(124), UINT8_C( 30), UINT8_C( 84), UINT8_C(218), UINT8_C(228), UINT8_C(130), UINT8_C(130), UINT8_C( 68),
UINT8_C( 39), UINT8_C( 10), UINT8_C(250), UINT8_C(122), UINT8_C(158), UINT8_C( 65), UINT8_C(101), UINT8_C( 89) },
{ { UINT8_C(187), UINT8_C(181), UINT8_C( 31), UINT8_C(108), UINT8_C( 10), UINT8_C(192), UINT8_C( 18), UINT8_C( 37),
UINT8_C(113), UINT8_C( 12), UINT8_C( 72), UINT8_C( 17), UINT8_C(171), UINT8_C(135), UINT8_C(129), UINT8_C( 54) },
{ UINT8_C(124), UINT8_C( 30), UINT8_C( 84), UINT8_C(218), UINT8_C(228), UINT8_C(130), UINT8_C(130), UINT8_C( 68),
UINT8_C( 39), UINT8_C( 10), UINT8_C(250), UINT8_C(122), UINT8_C(158), UINT8_C( 65), UINT8_C(101), UINT8_C( 89) } },
},
{ { UINT8_C(247), UINT8_C(132), UINT8_C(197), UINT8_C( 1), UINT8_C( 69), UINT8_C(215), UINT8_C( 38), UINT8_C(182),
UINT8_C(227), UINT8_C(111), UINT8_C(199), UINT8_C(142), UINT8_C(246), UINT8_C( 72), UINT8_C(197), UINT8_C(115),
UINT8_C(102), UINT8_C( 25), UINT8_C( 77), UINT8_C( 74), UINT8_C(155), UINT8_C(208), UINT8_C(142), UINT8_C(194),
UINT8_C(218), UINT8_C(137), UINT8_C( 60), UINT8_C(121), UINT8_C(202), UINT8_C(161), UINT8_C(210), UINT8_C(193) },
{ { UINT8_C(247), UINT8_C(132), UINT8_C(197), UINT8_C( 1), UINT8_C( 69), UINT8_C(215), UINT8_C( 38), UINT8_C(182),
UINT8_C(227), UINT8_C(111), UINT8_C(199), UINT8_C(142), UINT8_C(246), UINT8_C( 72), UINT8_C(197), UINT8_C(115) },
{ UINT8_C(102), UINT8_C( 25), UINT8_C( 77), UINT8_C( 74), UINT8_C(155), UINT8_C(208), UINT8_C(142), UINT8_C(194),
UINT8_C(218), UINT8_C(137), UINT8_C( 60), UINT8_C(121), UINT8_C(202), UINT8_C(161), UINT8_C(210), UINT8_C(193) } },
},
{ { UINT8_C( 38), UINT8_C(152), UINT8_C(194), UINT8_C(107), UINT8_C(111), UINT8_C(233), UINT8_C( 33), UINT8_C( 83),
UINT8_C( 88), UINT8_C(233), UINT8_C(225), UINT8_C( 78), UINT8_C( 49), UINT8_C(166), UINT8_C(193), UINT8_C(152),
UINT8_C(192), UINT8_C( 15), UINT8_C(226), UINT8_C( 91), UINT8_C(223), UINT8_C(113), UINT8_C( 30), UINT8_C(185),
UINT8_C(250), UINT8_C( 90), UINT8_C( 50), UINT8_C(196), UINT8_C(252), UINT8_C( 5), UINT8_C(134), UINT8_C( 34) },
{ { UINT8_C( 38), UINT8_C(152), UINT8_C(194), UINT8_C(107), UINT8_C(111), UINT8_C(233), UINT8_C( 33), UINT8_C( 83),
UINT8_C( 88), UINT8_C(233), UINT8_C(225), UINT8_C( 78), UINT8_C( 49), UINT8_C(166), UINT8_C(193), UINT8_C(152) },
{ UINT8_C(192), UINT8_C( 15), UINT8_C(226), UINT8_C( 91), UINT8_C(223), UINT8_C(113), UINT8_C( 30), UINT8_C(185),
UINT8_C(250), UINT8_C( 90), UINT8_C( 50), UINT8_C(196), UINT8_C(252), UINT8_C( 5), UINT8_C(134), UINT8_C( 34) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint8x16x2_t r = simde_vld1q_u8_x2(test_vec[i].buf);
simde_uint8x16x2_t expected = {{
simde_vld1q_u8(test_vec[i].expected[0]),
simde_vld1q_u8(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_u8x16x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint8_t buf[32];
simde_test_codegen_random_memory(32, buf);
simde_test_codegen_write_vu8(2, 32, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint8x16x2_t val = simde_vld1q_u8_x2(buf);
simde_test_arm_neon_write_u8x16x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u16_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t buf[16];
uint16_t expected[2][8];
} test_vec[] = {
{ { UINT16_C( 825), UINT16_C(10210), UINT16_C( 3731), UINT16_C( 5598), UINT16_C(24657), UINT16_C(20451), UINT16_C(21382), UINT16_C(34867),
UINT16_C(63322), UINT16_C(32517), UINT16_C(49700), UINT16_C(46516), UINT16_C(37728), UINT16_C(62645), UINT16_C(14775), UINT16_C(61520) },
{ { UINT16_C( 825), UINT16_C(10210), UINT16_C( 3731), UINT16_C( 5598), UINT16_C(24657), UINT16_C(20451), UINT16_C(21382), UINT16_C(34867) },
{ UINT16_C(63322), UINT16_C(32517), UINT16_C(49700), UINT16_C(46516), UINT16_C(37728), UINT16_C(62645), UINT16_C(14775), UINT16_C(61520) } },
},
{ { UINT16_C(12860), UINT16_C(53016), UINT16_C(63040), UINT16_C(37348), UINT16_C(51030), UINT16_C(56544), UINT16_C( 4890), UINT16_C(29796),
UINT16_C(26890), UINT16_C(12276), UINT16_C(43052), UINT16_C(36068), UINT16_C(39228), UINT16_C(62336), UINT16_C(53458), UINT16_C( 3811) },
{ { UINT16_C(12860), UINT16_C(53016), UINT16_C(63040), UINT16_C(37348), UINT16_C(51030), UINT16_C(56544), UINT16_C( 4890), UINT16_C(29796) },
{ UINT16_C(26890), UINT16_C(12276), UINT16_C(43052), UINT16_C(36068), UINT16_C(39228), UINT16_C(62336), UINT16_C(53458), UINT16_C( 3811) } },
},
{ { UINT16_C(64258), UINT16_C(17118), UINT16_C(49905), UINT16_C(18643), UINT16_C(46218), UINT16_C(42020), UINT16_C(35271), UINT16_C(53785),
UINT16_C( 3570), UINT16_C( 7681), UINT16_C(58805), UINT16_C(61867), UINT16_C(11134), UINT16_C(20964), UINT16_C(51452), UINT16_C(65119) },
{ { UINT16_C(64258), UINT16_C(17118), UINT16_C(49905), UINT16_C(18643), UINT16_C(46218), UINT16_C(42020), UINT16_C(35271), UINT16_C(53785) },
{ UINT16_C( 3570), UINT16_C( 7681), UINT16_C(58805), UINT16_C(61867), UINT16_C(11134), UINT16_C(20964), UINT16_C(51452), UINT16_C(65119) } },
},
{ { UINT16_C(15811), UINT16_C(46401), UINT16_C( 5120), UINT16_C(35581), UINT16_C( 8648), UINT16_C(36910), UINT16_C(18346), UINT16_C(40290),
UINT16_C(25428), UINT16_C( 2747), UINT16_C(26184), UINT16_C(50939), UINT16_C(57490), UINT16_C(36375), UINT16_C(30632), UINT16_C(27532) },
{ { UINT16_C(15811), UINT16_C(46401), UINT16_C( 5120), UINT16_C(35581), UINT16_C( 8648), UINT16_C(36910), UINT16_C(18346), UINT16_C(40290) },
{ UINT16_C(25428), UINT16_C( 2747), UINT16_C(26184), UINT16_C(50939), UINT16_C(57490), UINT16_C(36375), UINT16_C(30632), UINT16_C(27532) } },
},
{ { UINT16_C(52660), UINT16_C(46112), UINT16_C( 7650), UINT16_C(43582), UINT16_C(27967), UINT16_C(59706), UINT16_C(40116), UINT16_C( 2438),
UINT16_C(17151), UINT16_C(18195), UINT16_C( 3752), UINT16_C(14862), UINT16_C( 9710), UINT16_C(38600), UINT16_C(21916), UINT16_C(20738) },
{ { UINT16_C(52660), UINT16_C(46112), UINT16_C( 7650), UINT16_C(43582), UINT16_C(27967), UINT16_C(59706), UINT16_C(40116), UINT16_C( 2438) },
{ UINT16_C(17151), UINT16_C(18195), UINT16_C( 3752), UINT16_C(14862), UINT16_C( 9710), UINT16_C(38600), UINT16_C(21916), UINT16_C(20738) } },
},
{ { UINT16_C( 8738), UINT16_C( 1029), UINT16_C(17472), UINT16_C(32687), UINT16_C(59825), UINT16_C(25960), UINT16_C(61318), UINT16_C(34158),
UINT16_C(33073), UINT16_C(55757), UINT16_C(56208), UINT16_C(32276), UINT16_C(56320), UINT16_C(40213), UINT16_C( 5937), UINT16_C(21742) },
{ { UINT16_C( 8738), UINT16_C( 1029), UINT16_C(17472), UINT16_C(32687), UINT16_C(59825), UINT16_C(25960), UINT16_C(61318), UINT16_C(34158) },
{ UINT16_C(33073), UINT16_C(55757), UINT16_C(56208), UINT16_C(32276), UINT16_C(56320), UINT16_C(40213), UINT16_C( 5937), UINT16_C(21742) } },
},
{ { UINT16_C(62265), UINT16_C(31064), UINT16_C( 1847), UINT16_C(59640), UINT16_C(25073), UINT16_C(30542), UINT16_C(48208), UINT16_C(33276),
UINT16_C(51518), UINT16_C(52826), UINT16_C(28324), UINT16_C(42316), UINT16_C(24907), UINT16_C(31810), UINT16_C(12408), UINT16_C(45776) },
{ { UINT16_C(62265), UINT16_C(31064), UINT16_C( 1847), UINT16_C(59640), UINT16_C(25073), UINT16_C(30542), UINT16_C(48208), UINT16_C(33276) },
{ UINT16_C(51518), UINT16_C(52826), UINT16_C(28324), UINT16_C(42316), UINT16_C(24907), UINT16_C(31810), UINT16_C(12408), UINT16_C(45776) } },
},
{ { UINT16_C(10531), UINT16_C(23339), UINT16_C( 9264), UINT16_C( 8515), UINT16_C(37253), UINT16_C(54680), UINT16_C(38222), UINT16_C(35926),
UINT16_C(45150), UINT16_C( 858), UINT16_C(42527), UINT16_C(27304), UINT16_C(59912), UINT16_C(32998), UINT16_C(46874), UINT16_C(15666) },
{ { UINT16_C(10531), UINT16_C(23339), UINT16_C( 9264), UINT16_C( 8515), UINT16_C(37253), UINT16_C(54680), UINT16_C(38222), UINT16_C(35926) },
{ UINT16_C(45150), UINT16_C( 858), UINT16_C(42527), UINT16_C(27304), UINT16_C(59912), UINT16_C(32998), UINT16_C(46874), UINT16_C(15666) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint16x8x2_t r = simde_vld1q_u16_x2(test_vec[i].buf);
simde_uint16x8x2_t expected = {{
simde_vld1q_u16(test_vec[i].expected[0]),
simde_vld1q_u16(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_u16x8x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint16_t buf[16];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vu16(2, 16, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint16x8x2_t val = simde_vld1q_u16_x2(buf);
simde_test_arm_neon_write_u16x8x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u32_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t buf[8];
uint32_t expected[2][4];
} test_vec[] = {
{ { UINT32_C(1731858432), UINT32_C(2866856027), UINT32_C(4191936912), UINT32_C(3992402306), UINT32_C(4137021909), UINT32_C(2634492619), UINT32_C( 141547686), UINT32_C( 57264387) },
{ { UINT32_C(1731858432), UINT32_C(2866856027), UINT32_C(4191936912), UINT32_C(3992402306) },
{ UINT32_C(4137021909), UINT32_C(2634492619), UINT32_C( 141547686), UINT32_C( 57264387) } },
},
{ { UINT32_C( 879403993), UINT32_C(4091431523), UINT32_C(2934749740), UINT32_C(3365659891), UINT32_C(2696818901), UINT32_C( 20825691), UINT32_C(2701765790), UINT32_C(1336242806) },
{ { UINT32_C( 879403993), UINT32_C(4091431523), UINT32_C(2934749740), UINT32_C(3365659891) },
{ UINT32_C(2696818901), UINT32_C( 20825691), UINT32_C(2701765790), UINT32_C(1336242806) } },
},
{ { UINT32_C(2021920533), UINT32_C(2255184474), UINT32_C( 255088412), UINT32_C( 282578747), UINT32_C(1521522431), UINT32_C(4200328796), UINT32_C( 278619290), UINT32_C(3948953814) },
{ { UINT32_C(2021920533), UINT32_C(2255184474), UINT32_C( 255088412), UINT32_C( 282578747) },
{ UINT32_C(1521522431), UINT32_C(4200328796), UINT32_C( 278619290), UINT32_C(3948953814) } },
},
{ { UINT32_C(2858673232), UINT32_C(1664142918), UINT32_C(1634886694), UINT32_C( 846350899), UINT32_C(1015882464), UINT32_C(2872502288), UINT32_C( 599511373), UINT32_C(1645157138) },
{ { UINT32_C(2858673232), UINT32_C(1664142918), UINT32_C(1634886694), UINT32_C( 846350899) },
{ UINT32_C(1015882464), UINT32_C(2872502288), UINT32_C( 599511373), UINT32_C(1645157138) } },
},
{ { UINT32_C(1175220991), UINT32_C(1739144257), UINT32_C(3553106848), UINT32_C(1157970533), UINT32_C(1837208157), UINT32_C(3357063035), UINT32_C(2615923849), UINT32_C(4026399471) },
{ { UINT32_C(1175220991), UINT32_C(1739144257), UINT32_C(3553106848), UINT32_C(1157970533) },
{ UINT32_C(1837208157), UINT32_C(3357063035), UINT32_C(2615923849), UINT32_C(4026399471) } },
},
{ { UINT32_C(2922711405), UINT32_C(3843415621), UINT32_C(1605950969), UINT32_C(1973730584), UINT32_C(3420595792), UINT32_C(1720974301), UINT32_C(3187769039), UINT32_C(3870162553) },
{ { UINT32_C(2922711405), UINT32_C(3843415621), UINT32_C(1605950969), UINT32_C(1973730584) },
{ UINT32_C(3420595792), UINT32_C(1720974301), UINT32_C(3187769039), UINT32_C(3870162553) } },
},
{ { UINT32_C(1284825607), UINT32_C(3123816896), UINT32_C(2652498310), UINT32_C(4145266087), UINT32_C(3250779875), UINT32_C(3223803377), UINT32_C(1283336659), UINT32_C( 791817255) },
{ { UINT32_C(1284825607), UINT32_C(3123816896), UINT32_C(2652498310), UINT32_C(4145266087) },
{ UINT32_C(3250779875), UINT32_C(3223803377), UINT32_C(1283336659), UINT32_C( 791817255) } },
},
{ { UINT32_C(3480995342), UINT32_C(4136217967), UINT32_C(1033151126), UINT32_C(1127524447), UINT32_C(2399467166), UINT32_C( 525282123), UINT32_C(2087439700), UINT32_C( 145465081) },
{ { UINT32_C(3480995342), UINT32_C(4136217967), UINT32_C(1033151126), UINT32_C(1127524447) },
{ UINT32_C(2399467166), UINT32_C( 525282123), UINT32_C(2087439700), UINT32_C( 145465081) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint32x4x2_t r = simde_vld1q_u32_x2(test_vec[i].buf);
simde_uint32x4x2_t expected = {{
simde_vld1q_u32(test_vec[i].expected[0]),
simde_vld1q_u32(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_u32x4x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint32_t buf[8];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vu32(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint32x4x2_t val = simde_vld1q_u32_x2(buf);
simde_test_arm_neon_write_u32x4x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u64_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t buf[4];
uint64_t expected[2][2];
} test_vec[] = {
{ { UINT64_C( 7695069376241149540), UINT64_C(11863849238367002114), UINT64_C( 2899617582647847122), UINT64_C(12344735216901072976) },
{ { UINT64_C( 7695069376241149540), UINT64_C(11863849238367002114) },
{ UINT64_C( 2899617582647847122), UINT64_C(12344735216901072976) } },
},
{ { UINT64_C( 9994412847762712694), UINT64_C( 671757863263951783), UINT64_C( 6356096434846533177), UINT64_C(11528919454937438733) },
{ { UINT64_C( 9994412847762712694), UINT64_C( 671757863263951783) },
{ UINT64_C( 6356096434846533177), UINT64_C(11528919454937438733) } },
},
{ { UINT64_C( 7939737045061696796), UINT64_C(16445015720835423223), UINT64_C(15084006253974872052), UINT64_C( 561300596492400385) },
{ { UINT64_C( 7939737045061696796), UINT64_C(16445015720835423223) },
{ UINT64_C(15084006253974872052), UINT64_C( 561300596492400385) } },
},
{ { UINT64_C( 5176283381308830624), UINT64_C( 6090464697330823669), UINT64_C(11502939599304488717), UINT64_C( 9984643005128754846) },
{ { UINT64_C( 5176283381308830624), UINT64_C( 6090464697330823669) },
{ UINT64_C(11502939599304488717), UINT64_C( 9984643005128754846) } },
},
{ { UINT64_C( 855057304594234182), UINT64_C( 966640045986173623), UINT64_C( 64880404244380585), UINT64_C( 9924272505232142150) },
{ { UINT64_C( 855057304594234182), UINT64_C( 966640045986173623) },
{ UINT64_C( 64880404244380585), UINT64_C( 9924272505232142150) } },
},
{ { UINT64_C( 2915795372810939220), UINT64_C(18256653169024967247), UINT64_C( 55779027067353700), UINT64_C(13665867852189552602) },
{ { UINT64_C( 2915795372810939220), UINT64_C(18256653169024967247) },
{ UINT64_C( 55779027067353700), UINT64_C(13665867852189552602) } },
},
{ { UINT64_C( 1238100404225951381), UINT64_C( 8796299825225166272), UINT64_C( 6607070381918476022), UINT64_C( 7024523383525663063) },
{ { UINT64_C( 1238100404225951381), UINT64_C( 8796299825225166272) },
{ UINT64_C( 6607070381918476022), UINT64_C( 7024523383525663063) } },
},
{ { UINT64_C( 124014198478382308), UINT64_C(14741452376004499715), UINT64_C( 3700320471040710014), UINT64_C(15365279113249280527) },
{ { UINT64_C( 124014198478382308), UINT64_C(14741452376004499715) },
{ UINT64_C( 3700320471040710014), UINT64_C(15365279113249280527) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint64x2x2_t r = simde_vld1q_u64_x2(test_vec[i].buf);
simde_uint64x2x2_t expected = {{
simde_vld1q_u64(test_vec[i].expected[0]),
simde_vld1q_u64(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_u64x2x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint64_t buf[4];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vu64(2, 4, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint64x2x2_t val = simde_vld1q_u64_x2(buf);
simde_test_arm_neon_write_u64x2x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_p8_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
SIMDE_ALIGN_TO_16 simde_poly8_t buf[32];
SIMDE_ALIGN_TO_16 simde_poly8_t expected[2][16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 1), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 1), SIMDE_POLY8_C(120), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 26),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(124), SIMDE_POLY8_C(117), SIMDE_POLY8_C(182), SIMDE_POLY8_C(248), SIMDE_POLY8_C(134),
SIMDE_POLY8_C(103), SIMDE_POLY8_C(254), SIMDE_POLY8_C(116), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(177), SIMDE_POLY8_C(119), SIMDE_POLY8_C(104),
SIMDE_POLY8_C(147), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(135), SIMDE_POLY8_C(214) },
{ { SIMDE_POLY8_C( 1), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 1), SIMDE_POLY8_C(120), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 26),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(124), SIMDE_POLY8_C(117), SIMDE_POLY8_C(182), SIMDE_POLY8_C(248), SIMDE_POLY8_C(134) },
{ SIMDE_POLY8_C(103), SIMDE_POLY8_C(254), SIMDE_POLY8_C(116), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(177), SIMDE_POLY8_C(119), SIMDE_POLY8_C(104),
SIMDE_POLY8_C(147), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(135), SIMDE_POLY8_C(214) } },
},
{ { SIMDE_POLY8_C(227), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(128),
SIMDE_POLY8_C(100), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(252), SIMDE_POLY8_C(217), SIMDE_POLY8_C(211), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 59),
SIMDE_POLY8_C(242), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(246), SIMDE_POLY8_C(133), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 25),
SIMDE_POLY8_C(159), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(117), SIMDE_POLY8_C(235), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(206) },
{ { SIMDE_POLY8_C(227), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(128),
SIMDE_POLY8_C(100), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(252), SIMDE_POLY8_C(217), SIMDE_POLY8_C(211), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 59) },
{ SIMDE_POLY8_C(242), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(246), SIMDE_POLY8_C(133), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 25),
SIMDE_POLY8_C(159), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(117), SIMDE_POLY8_C(235), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(206) } },
},
{ { SIMDE_POLY8_C(150), SIMDE_POLY8_C(125), SIMDE_POLY8_C(179), SIMDE_POLY8_C(239), SIMDE_POLY8_C(164), SIMDE_POLY8_C(178), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C(208), SIMDE_POLY8_C(107), SIMDE_POLY8_C(225), SIMDE_POLY8_C(163), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C( 20), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(154), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(166), SIMDE_POLY8_C(179), SIMDE_POLY8_C(252),
SIMDE_POLY8_C(125), SIMDE_POLY8_C(225), SIMDE_POLY8_C(113), SIMDE_POLY8_C(104), SIMDE_POLY8_C(150), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 44) },
{ { SIMDE_POLY8_C(150), SIMDE_POLY8_C(125), SIMDE_POLY8_C(179), SIMDE_POLY8_C(239), SIMDE_POLY8_C(164), SIMDE_POLY8_C(178), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C(208), SIMDE_POLY8_C(107), SIMDE_POLY8_C(225), SIMDE_POLY8_C(163), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 81) },
{ SIMDE_POLY8_C( 20), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(154), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(166), SIMDE_POLY8_C(179), SIMDE_POLY8_C(252),
SIMDE_POLY8_C(125), SIMDE_POLY8_C(225), SIMDE_POLY8_C(113), SIMDE_POLY8_C(104), SIMDE_POLY8_C(150), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 44) } },
},
{ { SIMDE_POLY8_C( 58), SIMDE_POLY8_C(234), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(222), SIMDE_POLY8_C(156), SIMDE_POLY8_C(138), SIMDE_POLY8_C(230), SIMDE_POLY8_C(108),
SIMDE_POLY8_C(245), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(238), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 28),
SIMDE_POLY8_C(208), SIMDE_POLY8_C(236), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(146), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 15),
SIMDE_POLY8_C( 74), SIMDE_POLY8_C(154), SIMDE_POLY8_C(119), SIMDE_POLY8_C(224), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(144) },
{ { SIMDE_POLY8_C( 58), SIMDE_POLY8_C(234), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(222), SIMDE_POLY8_C(156), SIMDE_POLY8_C(138), SIMDE_POLY8_C(230), SIMDE_POLY8_C(108),
SIMDE_POLY8_C(245), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(238), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 28) },
{ SIMDE_POLY8_C(208), SIMDE_POLY8_C(236), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(146), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 15),
SIMDE_POLY8_C( 74), SIMDE_POLY8_C(154), SIMDE_POLY8_C(119), SIMDE_POLY8_C(224), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(144) } },
},
{ { SIMDE_POLY8_C(152), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 52), SIMDE_POLY8_C(177), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(161), SIMDE_POLY8_C(166),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C(177), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(159), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(112),
SIMDE_POLY8_C(139), SIMDE_POLY8_C(245), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(168),
SIMDE_POLY8_C( 96), SIMDE_POLY8_C(165), SIMDE_POLY8_C(136), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(235) },
{ { SIMDE_POLY8_C(152), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 52), SIMDE_POLY8_C(177), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(161), SIMDE_POLY8_C(166),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C(177), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(159), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(112) },
{ SIMDE_POLY8_C(139), SIMDE_POLY8_C(245), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(168),
SIMDE_POLY8_C( 96), SIMDE_POLY8_C(165), SIMDE_POLY8_C(136), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(235) } },
},
{ { SIMDE_POLY8_C(187), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 37),
SIMDE_POLY8_C(113), SIMDE_POLY8_C( 12), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(171), SIMDE_POLY8_C(135), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 54),
SIMDE_POLY8_C(124), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(218), SIMDE_POLY8_C(228), SIMDE_POLY8_C(130), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 68),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(250), SIMDE_POLY8_C(122), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 89) },
{ { SIMDE_POLY8_C(187), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 37),
SIMDE_POLY8_C(113), SIMDE_POLY8_C( 12), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(171), SIMDE_POLY8_C(135), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 54) },
{ SIMDE_POLY8_C(124), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(218), SIMDE_POLY8_C(228), SIMDE_POLY8_C(130), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 68),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(250), SIMDE_POLY8_C(122), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 89) } },
},
{ { SIMDE_POLY8_C(247), SIMDE_POLY8_C(132), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(182),
SIMDE_POLY8_C(227), SIMDE_POLY8_C(111), SIMDE_POLY8_C(199), SIMDE_POLY8_C(142), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(197), SIMDE_POLY8_C(115),
SIMDE_POLY8_C(102), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(155), SIMDE_POLY8_C(208), SIMDE_POLY8_C(142), SIMDE_POLY8_C(194),
SIMDE_POLY8_C(218), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(121), SIMDE_POLY8_C(202), SIMDE_POLY8_C(161), SIMDE_POLY8_C(210), SIMDE_POLY8_C(193) },
{ { SIMDE_POLY8_C(247), SIMDE_POLY8_C(132), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(182),
SIMDE_POLY8_C(227), SIMDE_POLY8_C(111), SIMDE_POLY8_C(199), SIMDE_POLY8_C(142), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(197), SIMDE_POLY8_C(115) },
{ SIMDE_POLY8_C(102), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(155), SIMDE_POLY8_C(208), SIMDE_POLY8_C(142), SIMDE_POLY8_C(194),
SIMDE_POLY8_C(218), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(121), SIMDE_POLY8_C(202), SIMDE_POLY8_C(161), SIMDE_POLY8_C(210), SIMDE_POLY8_C(193) } },
},
{ { SIMDE_POLY8_C( 38), SIMDE_POLY8_C(152), SIMDE_POLY8_C(194), SIMDE_POLY8_C(107), SIMDE_POLY8_C(111), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 83),
SIMDE_POLY8_C( 88), SIMDE_POLY8_C(233), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(166), SIMDE_POLY8_C(193), SIMDE_POLY8_C(152),
SIMDE_POLY8_C(192), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(223), SIMDE_POLY8_C(113), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(185),
SIMDE_POLY8_C(250), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(196), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 34) },
{ { SIMDE_POLY8_C( 38), SIMDE_POLY8_C(152), SIMDE_POLY8_C(194), SIMDE_POLY8_C(107), SIMDE_POLY8_C(111), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 83),
SIMDE_POLY8_C( 88), SIMDE_POLY8_C(233), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(166), SIMDE_POLY8_C(193), SIMDE_POLY8_C(152) },
{ SIMDE_POLY8_C(192), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(223), SIMDE_POLY8_C(113), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(185),
SIMDE_POLY8_C(250), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(196), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 34) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
SIMDE_ALIGN_TO_16 simde_poly8x16x2_t r = simde_vld1q_p8_x2(test_vec[i].buf);
SIMDE_ALIGN_TO_16 simde_poly8x16x2_t expected = {{
simde_vld1q_p8(test_vec[i].expected[0]),
simde_vld1q_p8(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_p8x16x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_poly8_t buf[32];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vp8(2, 32, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_poly8x16x2_t val = simde_vld1q_p8_x2(buf);
simde_test_arm_neon_write_p8x16x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_p16_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
SIMDE_ALIGN_TO_16 simde_poly16_t buf[16];
SIMDE_ALIGN_TO_16 simde_poly16_t expected[2][8];
} test_vec[] = {
{ { SIMDE_POLY16_C( 825), SIMDE_POLY16_C(10210), SIMDE_POLY16_C( 3731), SIMDE_POLY16_C( 5598), SIMDE_POLY16_C(24657), SIMDE_POLY16_C(20451), SIMDE_POLY16_C(21382), SIMDE_POLY16_C(34867),
SIMDE_POLY16_C(63322), SIMDE_POLY16_C(32517), SIMDE_POLY16_C(49700), SIMDE_POLY16_C(46516), SIMDE_POLY16_C(37728), SIMDE_POLY16_C(62645), SIMDE_POLY16_C(14775), SIMDE_POLY16_C(61520) },
{ { SIMDE_POLY16_C( 825), SIMDE_POLY16_C(10210), SIMDE_POLY16_C( 3731), SIMDE_POLY16_C( 5598), SIMDE_POLY16_C(24657), SIMDE_POLY16_C(20451), SIMDE_POLY16_C(21382), SIMDE_POLY16_C(34867) },
{ SIMDE_POLY16_C(63322), SIMDE_POLY16_C(32517), SIMDE_POLY16_C(49700), SIMDE_POLY16_C(46516), SIMDE_POLY16_C(37728), SIMDE_POLY16_C(62645), SIMDE_POLY16_C(14775), SIMDE_POLY16_C(61520) } },
},
{ { SIMDE_POLY16_C(12860), SIMDE_POLY16_C(53016), SIMDE_POLY16_C(63040), SIMDE_POLY16_C(37348), SIMDE_POLY16_C(51030), SIMDE_POLY16_C(56544), SIMDE_POLY16_C( 4890), SIMDE_POLY16_C(29796),
SIMDE_POLY16_C(26890), SIMDE_POLY16_C(12276), SIMDE_POLY16_C(43052), SIMDE_POLY16_C(36068), SIMDE_POLY16_C(39228), SIMDE_POLY16_C(62336), SIMDE_POLY16_C(53458), SIMDE_POLY16_C( 3811) },
{ { SIMDE_POLY16_C(12860), SIMDE_POLY16_C(53016), SIMDE_POLY16_C(63040), SIMDE_POLY16_C(37348), SIMDE_POLY16_C(51030), SIMDE_POLY16_C(56544), SIMDE_POLY16_C( 4890), SIMDE_POLY16_C(29796) },
{ SIMDE_POLY16_C(26890), SIMDE_POLY16_C(12276), SIMDE_POLY16_C(43052), SIMDE_POLY16_C(36068), SIMDE_POLY16_C(39228), SIMDE_POLY16_C(62336), SIMDE_POLY16_C(53458), SIMDE_POLY16_C( 3811) } },
},
{ { SIMDE_POLY16_C(64258), SIMDE_POLY16_C(17118), SIMDE_POLY16_C(49905), SIMDE_POLY16_C(18643), SIMDE_POLY16_C(46218), SIMDE_POLY16_C(42020), SIMDE_POLY16_C(35271), SIMDE_POLY16_C(53785),
SIMDE_POLY16_C( 3570), SIMDE_POLY16_C( 7681), SIMDE_POLY16_C(58805), SIMDE_POLY16_C(61867), SIMDE_POLY16_C(11134), SIMDE_POLY16_C(20964), SIMDE_POLY16_C(51452), SIMDE_POLY16_C(65119) },
{ { SIMDE_POLY16_C(64258), SIMDE_POLY16_C(17118), SIMDE_POLY16_C(49905), SIMDE_POLY16_C(18643), SIMDE_POLY16_C(46218), SIMDE_POLY16_C(42020), SIMDE_POLY16_C(35271), SIMDE_POLY16_C(53785) },
{ SIMDE_POLY16_C( 3570), SIMDE_POLY16_C( 7681), SIMDE_POLY16_C(58805), SIMDE_POLY16_C(61867), SIMDE_POLY16_C(11134), SIMDE_POLY16_C(20964), SIMDE_POLY16_C(51452), SIMDE_POLY16_C(65119) } },
},
{ { SIMDE_POLY16_C(15811), SIMDE_POLY16_C(46401), SIMDE_POLY16_C( 5120), SIMDE_POLY16_C(35581), SIMDE_POLY16_C( 8648), SIMDE_POLY16_C(36910), SIMDE_POLY16_C(18346), SIMDE_POLY16_C(40290),
SIMDE_POLY16_C(25428), SIMDE_POLY16_C( 2747), SIMDE_POLY16_C(26184), SIMDE_POLY16_C(50939), SIMDE_POLY16_C(57490), SIMDE_POLY16_C(36375), SIMDE_POLY16_C(30632), SIMDE_POLY16_C(27532) },
{ { SIMDE_POLY16_C(15811), SIMDE_POLY16_C(46401), SIMDE_POLY16_C( 5120), SIMDE_POLY16_C(35581), SIMDE_POLY16_C( 8648), SIMDE_POLY16_C(36910), SIMDE_POLY16_C(18346), SIMDE_POLY16_C(40290) },
{ SIMDE_POLY16_C(25428), SIMDE_POLY16_C( 2747), SIMDE_POLY16_C(26184), SIMDE_POLY16_C(50939), SIMDE_POLY16_C(57490), SIMDE_POLY16_C(36375), SIMDE_POLY16_C(30632), SIMDE_POLY16_C(27532) } },
},
{ { SIMDE_POLY16_C(52660), SIMDE_POLY16_C(46112), SIMDE_POLY16_C( 7650), SIMDE_POLY16_C(43582), SIMDE_POLY16_C(27967), SIMDE_POLY16_C(59706), SIMDE_POLY16_C(40116), SIMDE_POLY16_C( 2438),
SIMDE_POLY16_C(17151), SIMDE_POLY16_C(18195), SIMDE_POLY16_C( 3752), SIMDE_POLY16_C(14862), SIMDE_POLY16_C( 9710), SIMDE_POLY16_C(38600), SIMDE_POLY16_C(21916), SIMDE_POLY16_C(20738) },
{ { SIMDE_POLY16_C(52660), SIMDE_POLY16_C(46112), SIMDE_POLY16_C( 7650), SIMDE_POLY16_C(43582), SIMDE_POLY16_C(27967), SIMDE_POLY16_C(59706), SIMDE_POLY16_C(40116), SIMDE_POLY16_C( 2438) },
{ SIMDE_POLY16_C(17151), SIMDE_POLY16_C(18195), SIMDE_POLY16_C( 3752), SIMDE_POLY16_C(14862), SIMDE_POLY16_C( 9710), SIMDE_POLY16_C(38600), SIMDE_POLY16_C(21916), SIMDE_POLY16_C(20738) } },
},
{ { SIMDE_POLY16_C( 8738), SIMDE_POLY16_C( 1029), SIMDE_POLY16_C(17472), SIMDE_POLY16_C(32687), SIMDE_POLY16_C(59825), SIMDE_POLY16_C(25960), SIMDE_POLY16_C(61318), SIMDE_POLY16_C(34158),
SIMDE_POLY16_C(33073), SIMDE_POLY16_C(55757), SIMDE_POLY16_C(56208), SIMDE_POLY16_C(32276), SIMDE_POLY16_C(56320), SIMDE_POLY16_C(40213), SIMDE_POLY16_C( 5937), SIMDE_POLY16_C(21742) },
{ { SIMDE_POLY16_C( 8738), SIMDE_POLY16_C( 1029), SIMDE_POLY16_C(17472), SIMDE_POLY16_C(32687), SIMDE_POLY16_C(59825), SIMDE_POLY16_C(25960), SIMDE_POLY16_C(61318), SIMDE_POLY16_C(34158) },
{ SIMDE_POLY16_C(33073), SIMDE_POLY16_C(55757), SIMDE_POLY16_C(56208), SIMDE_POLY16_C(32276), SIMDE_POLY16_C(56320), SIMDE_POLY16_C(40213), SIMDE_POLY16_C( 5937), SIMDE_POLY16_C(21742) } },
},
{ { SIMDE_POLY16_C(62265), SIMDE_POLY16_C(31064), SIMDE_POLY16_C( 1847), SIMDE_POLY16_C(59640), SIMDE_POLY16_C(25073), SIMDE_POLY16_C(30542), SIMDE_POLY16_C(48208), SIMDE_POLY16_C(33276),
SIMDE_POLY16_C(51518), SIMDE_POLY16_C(52826), SIMDE_POLY16_C(28324), SIMDE_POLY16_C(42316), SIMDE_POLY16_C(24907), SIMDE_POLY16_C(31810), SIMDE_POLY16_C(12408), SIMDE_POLY16_C(45776) },
{ { SIMDE_POLY16_C(62265), SIMDE_POLY16_C(31064), SIMDE_POLY16_C( 1847), SIMDE_POLY16_C(59640), SIMDE_POLY16_C(25073), SIMDE_POLY16_C(30542), SIMDE_POLY16_C(48208), SIMDE_POLY16_C(33276) },
{ SIMDE_POLY16_C(51518), SIMDE_POLY16_C(52826), SIMDE_POLY16_C(28324), SIMDE_POLY16_C(42316), SIMDE_POLY16_C(24907), SIMDE_POLY16_C(31810), SIMDE_POLY16_C(12408), SIMDE_POLY16_C(45776) } },
},
{ { SIMDE_POLY16_C(10531), SIMDE_POLY16_C(23339), SIMDE_POLY16_C( 9264), SIMDE_POLY16_C( 8515), SIMDE_POLY16_C(37253), SIMDE_POLY16_C(54680), SIMDE_POLY16_C(38222), SIMDE_POLY16_C(35926),
SIMDE_POLY16_C(45150), SIMDE_POLY16_C( 858), SIMDE_POLY16_C(42527), SIMDE_POLY16_C(27304), SIMDE_POLY16_C(59912), SIMDE_POLY16_C(32998), SIMDE_POLY16_C(46874), SIMDE_POLY16_C(15666) },
{ { SIMDE_POLY16_C(10531), SIMDE_POLY16_C(23339), SIMDE_POLY16_C( 9264), SIMDE_POLY16_C( 8515), SIMDE_POLY16_C(37253), SIMDE_POLY16_C(54680), SIMDE_POLY16_C(38222), SIMDE_POLY16_C(35926) },
{ SIMDE_POLY16_C(45150), SIMDE_POLY16_C( 858), SIMDE_POLY16_C(42527), SIMDE_POLY16_C(27304), SIMDE_POLY16_C(59912), SIMDE_POLY16_C(32998), SIMDE_POLY16_C(46874), SIMDE_POLY16_C(15666) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
SIMDE_ALIGN_TO_16 simde_poly16x8x2_t r = simde_vld1q_p16_x2(test_vec[i].buf);
SIMDE_ALIGN_TO_16 simde_poly16x8x2_t expected = {{
simde_vld1q_p16(test_vec[i].expected[0]),
simde_vld1q_p16(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_p16x8x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_poly16_t buf[16];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vp16(2, 16, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_poly16x8x2_t val = simde_vld1q_p16_x2(buf);
simde_test_arm_neon_write_p16x8x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_p64_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t buf[4];
simde_poly64_t expected[2][2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 7695069376241149540), SIMDE_POLY64_C(11863849238367002114), SIMDE_POLY64_C( 2899617582647847122), SIMDE_POLY64_C(12344735216901072976) },
{ { SIMDE_POLY64_C( 7695069376241149540), SIMDE_POLY64_C(11863849238367002114) },
{ SIMDE_POLY64_C( 2899617582647847122), SIMDE_POLY64_C(12344735216901072976) } },
},
{ { SIMDE_POLY64_C( 9994412847762712694), SIMDE_POLY64_C( 671757863263951783), SIMDE_POLY64_C( 6356096434846533177), SIMDE_POLY64_C(11528919454937438733) },
{ { SIMDE_POLY64_C( 9994412847762712694), SIMDE_POLY64_C( 671757863263951783) },
{ SIMDE_POLY64_C( 6356096434846533177), SIMDE_POLY64_C(11528919454937438733) } },
},
{ { SIMDE_POLY64_C( 7939737045061696796), SIMDE_POLY64_C(16445015720835423223), SIMDE_POLY64_C(15084006253974872052), SIMDE_POLY64_C( 561300596492400385) },
{ { SIMDE_POLY64_C( 7939737045061696796), SIMDE_POLY64_C(16445015720835423223) },
{ SIMDE_POLY64_C(15084006253974872052), SIMDE_POLY64_C( 561300596492400385) } },
},
{ { SIMDE_POLY64_C( 5176283381308830624), SIMDE_POLY64_C( 6090464697330823669), SIMDE_POLY64_C(11502939599304488717), SIMDE_POLY64_C( 9984643005128754846) },
{ { SIMDE_POLY64_C( 5176283381308830624), SIMDE_POLY64_C( 6090464697330823669) },
{ SIMDE_POLY64_C(11502939599304488717), SIMDE_POLY64_C( 9984643005128754846) } },
},
{ { SIMDE_POLY64_C( 855057304594234182), SIMDE_POLY64_C( 966640045986173623), SIMDE_POLY64_C( 64880404244380585), SIMDE_POLY64_C( 9924272505232142150) },
{ { SIMDE_POLY64_C( 855057304594234182), SIMDE_POLY64_C( 966640045986173623) },
{ SIMDE_POLY64_C( 64880404244380585), SIMDE_POLY64_C( 9924272505232142150) } },
},
{ { SIMDE_POLY64_C( 2915795372810939220), SIMDE_POLY64_C(18256653169024967247), SIMDE_POLY64_C( 55779027067353700), SIMDE_POLY64_C(13665867852189552602) },
{ { SIMDE_POLY64_C( 2915795372810939220), SIMDE_POLY64_C(18256653169024967247) },
{ SIMDE_POLY64_C( 55779027067353700), SIMDE_POLY64_C(13665867852189552602) } },
},
{ { SIMDE_POLY64_C( 1238100404225951381), SIMDE_POLY64_C( 8796299825225166272), SIMDE_POLY64_C( 6607070381918476022), SIMDE_POLY64_C( 7024523383525663063) },
{ { SIMDE_POLY64_C( 1238100404225951381), SIMDE_POLY64_C( 8796299825225166272) },
{ SIMDE_POLY64_C( 6607070381918476022), SIMDE_POLY64_C( 7024523383525663063) } },
},
{ { SIMDE_POLY64_C( 124014198478382308), SIMDE_POLY64_C(14741452376004499715), SIMDE_POLY64_C( 3700320471040710014), SIMDE_POLY64_C(15365279113249280527) },
{ { SIMDE_POLY64_C( 124014198478382308), SIMDE_POLY64_C(14741452376004499715) },
{ SIMDE_POLY64_C( 3700320471040710014), SIMDE_POLY64_C(15365279113249280527) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_poly64x2x2_t r = simde_vld1q_p64_x2(test_vec[i].buf);
simde_poly64x2x2_t expected = {{
simde_vld1q_p64(test_vec[i].expected[0]),
simde_vld1q_p64(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_p64x2x2(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_poly64_t buf[4];
simde_test_codegen_random_memory(32, (uint8_t*)buf);
simde_test_codegen_write_vp16(2, 4, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_poly64x2x2_t val = simde_vld1q_p64_x2(buf);
simde_test_arm_neon_write_p64x2x2(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_bf16_x2 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_bfloat16 buf[16];
simde_bfloat16 expected[2][8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE(8.77), SIMDE_BFLOAT16_VALUE(-8.18), SIMDE_BFLOAT16_VALUE(0.29), SIMDE_BFLOAT16_VALUE(-5.13),
SIMDE_BFLOAT16_VALUE(-0.49), SIMDE_BFLOAT16_VALUE(-5.46), SIMDE_BFLOAT16_VALUE(-5.01), SIMDE_BFLOAT16_VALUE(9.21),
SIMDE_BFLOAT16_VALUE(-5.50), SIMDE_BFLOAT16_VALUE(0.96), SIMDE_BFLOAT16_VALUE(-8.88), SIMDE_BFLOAT16_VALUE(-3.56),
SIMDE_BFLOAT16_VALUE(-7.57), SIMDE_BFLOAT16_VALUE(4.59), SIMDE_BFLOAT16_VALUE(2.11), SIMDE_BFLOAT16_VALUE(-8.34) },
{ { SIMDE_BFLOAT16_VALUE(8.77), SIMDE_BFLOAT16_VALUE(-8.18), SIMDE_BFLOAT16_VALUE(0.29), SIMDE_BFLOAT16_VALUE(-5.13),
SIMDE_BFLOAT16_VALUE(-0.49), SIMDE_BFLOAT16_VALUE(-5.46), SIMDE_BFLOAT16_VALUE(-5.01), SIMDE_BFLOAT16_VALUE(9.21) },
{ SIMDE_BFLOAT16_VALUE(-5.50), SIMDE_BFLOAT16_VALUE(0.96), SIMDE_BFLOAT16_VALUE(-8.88), SIMDE_BFLOAT16_VALUE(-3.56),
SIMDE_BFLOAT16_VALUE(-7.57), SIMDE_BFLOAT16_VALUE(4.59), SIMDE_BFLOAT16_VALUE(2.11), SIMDE_BFLOAT16_VALUE(-8.34) } } },
{ { SIMDE_BFLOAT16_VALUE(-2.41), SIMDE_BFLOAT16_VALUE(-4.05), SIMDE_BFLOAT16_VALUE(-2.12), SIMDE_BFLOAT16_VALUE(8.76),
SIMDE_BFLOAT16_VALUE(-9.05), SIMDE_BFLOAT16_VALUE(-9.20), SIMDE_BFLOAT16_VALUE(-9.36), SIMDE_BFLOAT16_VALUE(7.44),
SIMDE_BFLOAT16_VALUE(-0.56), SIMDE_BFLOAT16_VALUE(-0.19), SIMDE_BFLOAT16_VALUE(2.69), SIMDE_BFLOAT16_VALUE(-3.86),
SIMDE_BFLOAT16_VALUE(8.27), SIMDE_BFLOAT16_VALUE(7.78), SIMDE_BFLOAT16_VALUE(5.32), SIMDE_BFLOAT16_VALUE(8.78) },
{ { SIMDE_BFLOAT16_VALUE(-2.41), SIMDE_BFLOAT16_VALUE(-4.05), SIMDE_BFLOAT16_VALUE(-2.12), SIMDE_BFLOAT16_VALUE(8.76),
SIMDE_BFLOAT16_VALUE(-9.05), SIMDE_BFLOAT16_VALUE(-9.20), SIMDE_BFLOAT16_VALUE(-9.36), SIMDE_BFLOAT16_VALUE(7.44) },
{ SIMDE_BFLOAT16_VALUE(-0.56), SIMDE_BFLOAT16_VALUE(-0.19), SIMDE_BFLOAT16_VALUE(2.69), SIMDE_BFLOAT16_VALUE(-3.86),
SIMDE_BFLOAT16_VALUE(8.27), SIMDE_BFLOAT16_VALUE(7.78), SIMDE_BFLOAT16_VALUE(5.32), SIMDE_BFLOAT16_VALUE(8.78) } } },
{ { SIMDE_BFLOAT16_VALUE(9.59), SIMDE_BFLOAT16_VALUE(-4.45), SIMDE_BFLOAT16_VALUE(-4.44), SIMDE_BFLOAT16_VALUE(-3.80),
SIMDE_BFLOAT16_VALUE(8.02), SIMDE_BFLOAT16_VALUE(-6.86), SIMDE_BFLOAT16_VALUE(3.22), SIMDE_BFLOAT16_VALUE(7.96),
SIMDE_BFLOAT16_VALUE(2.96), SIMDE_BFLOAT16_VALUE(9.81), SIMDE_BFLOAT16_VALUE(-2.28), SIMDE_BFLOAT16_VALUE(2.25),
SIMDE_BFLOAT16_VALUE(6.08), SIMDE_BFLOAT16_VALUE(-2.65), SIMDE_BFLOAT16_VALUE(5.79), SIMDE_BFLOAT16_VALUE(2.07) },
{ { SIMDE_BFLOAT16_VALUE(9.59), SIMDE_BFLOAT16_VALUE(-4.45), SIMDE_BFLOAT16_VALUE(-4.44), SIMDE_BFLOAT16_VALUE(-3.80),
SIMDE_BFLOAT16_VALUE(8.02), SIMDE_BFLOAT16_VALUE(-6.86), SIMDE_BFLOAT16_VALUE(3.22), SIMDE_BFLOAT16_VALUE(7.96) },
{ SIMDE_BFLOAT16_VALUE(2.96), SIMDE_BFLOAT16_VALUE(9.81), SIMDE_BFLOAT16_VALUE(-2.28), SIMDE_BFLOAT16_VALUE(2.25),
SIMDE_BFLOAT16_VALUE(6.08), SIMDE_BFLOAT16_VALUE(-2.65), SIMDE_BFLOAT16_VALUE(5.79), SIMDE_BFLOAT16_VALUE(2.07) } } },
{ { SIMDE_BFLOAT16_VALUE(-8.12), SIMDE_BFLOAT16_VALUE(-8.56), SIMDE_BFLOAT16_VALUE(-3.17), SIMDE_BFLOAT16_VALUE(7.97),
SIMDE_BFLOAT16_VALUE(-6.75), SIMDE_BFLOAT16_VALUE(-7.91), SIMDE_BFLOAT16_VALUE(-3.52), SIMDE_BFLOAT16_VALUE(4.08),
SIMDE_BFLOAT16_VALUE(-7.33), SIMDE_BFLOAT16_VALUE(4.96), SIMDE_BFLOAT16_VALUE(2.30), SIMDE_BFLOAT16_VALUE(4.35),
SIMDE_BFLOAT16_VALUE(6.65), SIMDE_BFLOAT16_VALUE(-9.83), SIMDE_BFLOAT16_VALUE(4.16), SIMDE_BFLOAT16_VALUE(-9.32) },
{ { SIMDE_BFLOAT16_VALUE(-8.12), SIMDE_BFLOAT16_VALUE(-8.56), SIMDE_BFLOAT16_VALUE(-3.17), SIMDE_BFLOAT16_VALUE(7.97),
SIMDE_BFLOAT16_VALUE(-6.75), SIMDE_BFLOAT16_VALUE(-7.91), SIMDE_BFLOAT16_VALUE(-3.52), SIMDE_BFLOAT16_VALUE(4.08) },
{ SIMDE_BFLOAT16_VALUE(-7.33), SIMDE_BFLOAT16_VALUE(4.96), SIMDE_BFLOAT16_VALUE(2.30), SIMDE_BFLOAT16_VALUE(4.35),
SIMDE_BFLOAT16_VALUE(6.65), SIMDE_BFLOAT16_VALUE(-9.83), SIMDE_BFLOAT16_VALUE(4.16), SIMDE_BFLOAT16_VALUE(-9.32) } } },
{ { SIMDE_BFLOAT16_VALUE(-8.89), SIMDE_BFLOAT16_VALUE(2.64), SIMDE_BFLOAT16_VALUE(8.88), SIMDE_BFLOAT16_VALUE(8.92),
SIMDE_BFLOAT16_VALUE(1.05), SIMDE_BFLOAT16_VALUE(-5.69), SIMDE_BFLOAT16_VALUE(1.66), SIMDE_BFLOAT16_VALUE(-3.57),
SIMDE_BFLOAT16_VALUE(-0.96), SIMDE_BFLOAT16_VALUE(2.24), SIMDE_BFLOAT16_VALUE(6.98), SIMDE_BFLOAT16_VALUE(1.03),
SIMDE_BFLOAT16_VALUE(7.90), SIMDE_BFLOAT16_VALUE(9.00), SIMDE_BFLOAT16_VALUE(-0.34), SIMDE_BFLOAT16_VALUE(9.82) },
{ { SIMDE_BFLOAT16_VALUE(-8.89), SIMDE_BFLOAT16_VALUE(2.64), SIMDE_BFLOAT16_VALUE(8.88), SIMDE_BFLOAT16_VALUE(8.92),
SIMDE_BFLOAT16_VALUE(1.05), SIMDE_BFLOAT16_VALUE(-5.69), SIMDE_BFLOAT16_VALUE(1.66), SIMDE_BFLOAT16_VALUE(-3.57) },
{ SIMDE_BFLOAT16_VALUE(-0.96), SIMDE_BFLOAT16_VALUE(2.24), SIMDE_BFLOAT16_VALUE(6.98), SIMDE_BFLOAT16_VALUE(1.03),
SIMDE_BFLOAT16_VALUE(7.90), SIMDE_BFLOAT16_VALUE(9.00), SIMDE_BFLOAT16_VALUE(-0.34), SIMDE_BFLOAT16_VALUE(9.82) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_bfloat16x8x2_t r = simde_vld1q_bf16_x2(test_vec[i].buf);
simde_bfloat16x8x2_t expected = {{
simde_vld1q_bf16(test_vec[i].expected[0]),
simde_vld1q_bf16(test_vec[i].expected[1]),
}};
simde_test_arm_neon_assert_equal_bf16x8x2(r, expected, 1);
}
return 0;
}
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
SIMDE_TEST_FUNC_LIST_BEGIN
#if !defined(SIMDE_BUG_INTEL_857088)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_f16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_f32_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_f64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s8_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s32_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u8_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u32_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_p8_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_p16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_p64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_bf16_x2)
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"