Update googletest to 1.18.0 and SIMDe to 0.8.2.
Googletest 1.18 asks for CMake 3.13 or newer, so configuring the tests no longer warns that CMake compatibility below 3.10 is deprecated. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
e4e666f459
commit
3f10e05176
912 changed files with 224964 additions and 11502 deletions
691
thirdparty/simde/test/arm/neon/ld2.c
vendored
691
thirdparty/simde/test/arm/neon/ld2.c
vendored
|
|
@ -601,6 +601,72 @@ test_simde_vld2_u64 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16_t a[8];
|
||||
simde_float16_t r[2][4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE(-9.278), SIMDE_FLOAT16_VALUE(-6.969), SIMDE_FLOAT16_VALUE(1.663), SIMDE_FLOAT16_VALUE(-2.545),
|
||||
SIMDE_FLOAT16_VALUE(-2.609), SIMDE_FLOAT16_VALUE(6.118), SIMDE_FLOAT16_VALUE(2.903), SIMDE_FLOAT16_VALUE(-6.328) },
|
||||
{ { SIMDE_FLOAT16_VALUE(-9.278), SIMDE_FLOAT16_VALUE(1.663), SIMDE_FLOAT16_VALUE(-2.609), SIMDE_FLOAT16_VALUE(2.903) },
|
||||
{ SIMDE_FLOAT16_VALUE(-6.969), SIMDE_FLOAT16_VALUE(-2.545), SIMDE_FLOAT16_VALUE(6.118), SIMDE_FLOAT16_VALUE(-6.328) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(-1.322), SIMDE_FLOAT16_VALUE(-3.593), SIMDE_FLOAT16_VALUE(-1.637), SIMDE_FLOAT16_VALUE(3.347),
|
||||
SIMDE_FLOAT16_VALUE(-9.161), SIMDE_FLOAT16_VALUE(-9.575), SIMDE_FLOAT16_VALUE(7.821), SIMDE_FLOAT16_VALUE(3.600) },
|
||||
{ { SIMDE_FLOAT16_VALUE(-1.322), SIMDE_FLOAT16_VALUE(-1.637), SIMDE_FLOAT16_VALUE(-9.161), SIMDE_FLOAT16_VALUE(7.821) },
|
||||
{ SIMDE_FLOAT16_VALUE(-3.593), SIMDE_FLOAT16_VALUE(3.347), SIMDE_FLOAT16_VALUE(-9.575), SIMDE_FLOAT16_VALUE(3.600) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(-8.482), SIMDE_FLOAT16_VALUE(-4.579), SIMDE_FLOAT16_VALUE(-0.542), SIMDE_FLOAT16_VALUE(-6.415),
|
||||
SIMDE_FLOAT16_VALUE(-4.808), SIMDE_FLOAT16_VALUE(-0.746), SIMDE_FLOAT16_VALUE(6.877), SIMDE_FLOAT16_VALUE(-9.631) },
|
||||
{ { SIMDE_FLOAT16_VALUE(-8.482), SIMDE_FLOAT16_VALUE(-0.542), SIMDE_FLOAT16_VALUE(-4.808), SIMDE_FLOAT16_VALUE(6.877) },
|
||||
{ SIMDE_FLOAT16_VALUE(-4.579), SIMDE_FLOAT16_VALUE(-6.415), SIMDE_FLOAT16_VALUE(-0.746), SIMDE_FLOAT16_VALUE(-9.631) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(-7.341), SIMDE_FLOAT16_VALUE(-3.836), SIMDE_FLOAT16_VALUE(-0.189), SIMDE_FLOAT16_VALUE(-2.384),
|
||||
SIMDE_FLOAT16_VALUE(2.127), SIMDE_FLOAT16_VALUE(1.646), SIMDE_FLOAT16_VALUE(7.168), SIMDE_FLOAT16_VALUE(-5.215) },
|
||||
{ { SIMDE_FLOAT16_VALUE(-7.341), SIMDE_FLOAT16_VALUE(-0.189), SIMDE_FLOAT16_VALUE(2.127), SIMDE_FLOAT16_VALUE(7.168) },
|
||||
{ SIMDE_FLOAT16_VALUE(-3.836), SIMDE_FLOAT16_VALUE(-2.384), SIMDE_FLOAT16_VALUE(1.646), SIMDE_FLOAT16_VALUE(-5.215) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(-2.854), SIMDE_FLOAT16_VALUE(-6.178), SIMDE_FLOAT16_VALUE(6.962), SIMDE_FLOAT16_VALUE(2.037),
|
||||
SIMDE_FLOAT16_VALUE(-2.141), SIMDE_FLOAT16_VALUE(1.682), SIMDE_FLOAT16_VALUE(-8.167), SIMDE_FLOAT16_VALUE(-2.859) },
|
||||
{ { SIMDE_FLOAT16_VALUE(-2.854), SIMDE_FLOAT16_VALUE(6.962), SIMDE_FLOAT16_VALUE(-2.141), SIMDE_FLOAT16_VALUE(-8.167) },
|
||||
{ SIMDE_FLOAT16_VALUE(-6.178), SIMDE_FLOAT16_VALUE(2.037), SIMDE_FLOAT16_VALUE(1.682), SIMDE_FLOAT16_VALUE(-2.859) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(1.069), SIMDE_FLOAT16_VALUE(6.073), SIMDE_FLOAT16_VALUE(-7.430), SIMDE_FLOAT16_VALUE(5.842),
|
||||
SIMDE_FLOAT16_VALUE(0.741), SIMDE_FLOAT16_VALUE(-7.806), SIMDE_FLOAT16_VALUE(-1.530), SIMDE_FLOAT16_VALUE(5.652) },
|
||||
{ { SIMDE_FLOAT16_VALUE(1.069), SIMDE_FLOAT16_VALUE(-7.430), SIMDE_FLOAT16_VALUE(0.741), SIMDE_FLOAT16_VALUE(-1.530) },
|
||||
{ SIMDE_FLOAT16_VALUE(6.073), SIMDE_FLOAT16_VALUE(5.842), SIMDE_FLOAT16_VALUE(-7.806), SIMDE_FLOAT16_VALUE(5.652) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(2.665), SIMDE_FLOAT16_VALUE(-0.358), SIMDE_FLOAT16_VALUE(4.267), SIMDE_FLOAT16_VALUE(6.043),
|
||||
SIMDE_FLOAT16_VALUE(4.497), SIMDE_FLOAT16_VALUE(2.667), SIMDE_FLOAT16_VALUE(7.972), SIMDE_FLOAT16_VALUE(-6.815) },
|
||||
{ { SIMDE_FLOAT16_VALUE(2.665), SIMDE_FLOAT16_VALUE(4.267), SIMDE_FLOAT16_VALUE(4.497), SIMDE_FLOAT16_VALUE(7.972) },
|
||||
{ SIMDE_FLOAT16_VALUE(-0.358), SIMDE_FLOAT16_VALUE(6.043), SIMDE_FLOAT16_VALUE(2.667), SIMDE_FLOAT16_VALUE(-6.815) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE(1.068), SIMDE_FLOAT16_VALUE(3.596), SIMDE_FLOAT16_VALUE(-8.704), SIMDE_FLOAT16_VALUE(5.005),
|
||||
SIMDE_FLOAT16_VALUE(4.827), SIMDE_FLOAT16_VALUE(4.545), SIMDE_FLOAT16_VALUE(0.047), SIMDE_FLOAT16_VALUE(2.680) },
|
||||
{ { SIMDE_FLOAT16_VALUE(1.068), SIMDE_FLOAT16_VALUE(-8.704), SIMDE_FLOAT16_VALUE(4.827), SIMDE_FLOAT16_VALUE(0.047) },
|
||||
{ SIMDE_FLOAT16_VALUE(3.596), SIMDE_FLOAT16_VALUE(5.005), SIMDE_FLOAT16_VALUE(4.545), SIMDE_FLOAT16_VALUE(2.680) } } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_float16x4x2_t r = simde_vld2_f16(test_vec[i].a);
|
||||
|
||||
simde_float16x4x2_t expected = {
|
||||
{simde_vld1_f16(test_vec[i].r[0]), simde_vld1_f16(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_f16x4(r.val[0], expected.val[0], 1);
|
||||
simde_test_arm_neon_assert_equal_f16x4(r.val[1], expected.val[1], 1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_float16x8_t a = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f);
|
||||
simde_float16x2_t r[2] = simde_vld2_f16(a);
|
||||
|
||||
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
|
|
@ -1456,6 +1522,72 @@ test_simde_vld2q_u64 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2q_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16_t a[16];
|
||||
simde_float16_t r[2][8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE( 793.71), SIMDE_FLOAT16_VALUE( 221.62), SIMDE_FLOAT16_VALUE( 781.57), SIMDE_FLOAT16_VALUE( -525.52),
|
||||
SIMDE_FLOAT16_VALUE( 800.99), SIMDE_FLOAT16_VALUE( -411.87), SIMDE_FLOAT16_VALUE( 483.99), SIMDE_FLOAT16_VALUE( 852.73),
|
||||
SIMDE_FLOAT16_VALUE( -433.25), SIMDE_FLOAT16_VALUE( -811.76), SIMDE_FLOAT16_VALUE( -463.04), SIMDE_FLOAT16_VALUE( 671.94),
|
||||
SIMDE_FLOAT16_VALUE( -60.94), SIMDE_FLOAT16_VALUE( -434.20), SIMDE_FLOAT16_VALUE( -263.89), SIMDE_FLOAT16_VALUE( 754.63) },
|
||||
{ { SIMDE_FLOAT16_VALUE( 793.71), SIMDE_FLOAT16_VALUE( 781.57), SIMDE_FLOAT16_VALUE( 800.99), SIMDE_FLOAT16_VALUE( 483.99),
|
||||
SIMDE_FLOAT16_VALUE( -433.25), SIMDE_FLOAT16_VALUE( -463.04), SIMDE_FLOAT16_VALUE( -60.94), SIMDE_FLOAT16_VALUE( -263.89) },
|
||||
{ SIMDE_FLOAT16_VALUE( 221.62), SIMDE_FLOAT16_VALUE( -525.52), SIMDE_FLOAT16_VALUE( -411.87), SIMDE_FLOAT16_VALUE( 852.73),
|
||||
SIMDE_FLOAT16_VALUE( -811.76), SIMDE_FLOAT16_VALUE( 671.94), SIMDE_FLOAT16_VALUE( -434.20), SIMDE_FLOAT16_VALUE( 754.63) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -877.85), SIMDE_FLOAT16_VALUE( -225.98), SIMDE_FLOAT16_VALUE( -292.03), SIMDE_FLOAT16_VALUE( 932.32),
|
||||
SIMDE_FLOAT16_VALUE( -463.10), SIMDE_FLOAT16_VALUE( 171.18), SIMDE_FLOAT16_VALUE( -115.23), SIMDE_FLOAT16_VALUE( -867.52),
|
||||
SIMDE_FLOAT16_VALUE( -182.14), SIMDE_FLOAT16_VALUE( 874.57), SIMDE_FLOAT16_VALUE( -306.44), SIMDE_FLOAT16_VALUE( 180.87),
|
||||
SIMDE_FLOAT16_VALUE( -827.59), SIMDE_FLOAT16_VALUE( -449.53), SIMDE_FLOAT16_VALUE( -593.39), SIMDE_FLOAT16_VALUE( 966.11) },
|
||||
{ { SIMDE_FLOAT16_VALUE( -877.85), SIMDE_FLOAT16_VALUE( -292.03), SIMDE_FLOAT16_VALUE( -463.10), SIMDE_FLOAT16_VALUE( -115.23),
|
||||
SIMDE_FLOAT16_VALUE( -182.14), SIMDE_FLOAT16_VALUE( -306.44), SIMDE_FLOAT16_VALUE( -827.59), SIMDE_FLOAT16_VALUE( -593.39) },
|
||||
{ SIMDE_FLOAT16_VALUE( -225.98), SIMDE_FLOAT16_VALUE( 932.32), SIMDE_FLOAT16_VALUE( 171.18), SIMDE_FLOAT16_VALUE( -867.52),
|
||||
SIMDE_FLOAT16_VALUE( 874.57), SIMDE_FLOAT16_VALUE( 180.87), SIMDE_FLOAT16_VALUE( -449.53), SIMDE_FLOAT16_VALUE( 966.11) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 772.09), SIMDE_FLOAT16_VALUE( -811.82), SIMDE_FLOAT16_VALUE( -559.40), SIMDE_FLOAT16_VALUE( 573.08),
|
||||
SIMDE_FLOAT16_VALUE( -223.69), SIMDE_FLOAT16_VALUE( 924.59), SIMDE_FLOAT16_VALUE( 425.81), SIMDE_FLOAT16_VALUE( 343.06),
|
||||
SIMDE_FLOAT16_VALUE( -887.17), SIMDE_FLOAT16_VALUE( 962.76), SIMDE_FLOAT16_VALUE( 15.01), SIMDE_FLOAT16_VALUE( 51.89),
|
||||
SIMDE_FLOAT16_VALUE( -471.44), SIMDE_FLOAT16_VALUE( 751.11), SIMDE_FLOAT16_VALUE( -193.48), SIMDE_FLOAT16_VALUE( -349.29) },
|
||||
{ { SIMDE_FLOAT16_VALUE( 772.09), SIMDE_FLOAT16_VALUE( -559.40), SIMDE_FLOAT16_VALUE( -223.69), SIMDE_FLOAT16_VALUE( 425.81),
|
||||
SIMDE_FLOAT16_VALUE( -887.17), SIMDE_FLOAT16_VALUE( 15.01), SIMDE_FLOAT16_VALUE( -471.44), SIMDE_FLOAT16_VALUE( -193.48) },
|
||||
{ SIMDE_FLOAT16_VALUE( -811.82), SIMDE_FLOAT16_VALUE( 573.08), SIMDE_FLOAT16_VALUE( 924.59), SIMDE_FLOAT16_VALUE( 343.06),
|
||||
SIMDE_FLOAT16_VALUE( 962.76), SIMDE_FLOAT16_VALUE( 51.89), SIMDE_FLOAT16_VALUE( 751.11), SIMDE_FLOAT16_VALUE( -349.29) } } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -474.87), SIMDE_FLOAT16_VALUE( 514.49), SIMDE_FLOAT16_VALUE( -416.97), SIMDE_FLOAT16_VALUE( 62.03),
|
||||
SIMDE_FLOAT16_VALUE( -314.33), SIMDE_FLOAT16_VALUE( 467.80), SIMDE_FLOAT16_VALUE( 194.51), SIMDE_FLOAT16_VALUE( 503.53),
|
||||
SIMDE_FLOAT16_VALUE( 342.37), SIMDE_FLOAT16_VALUE( 888.07), SIMDE_FLOAT16_VALUE( -315.60), SIMDE_FLOAT16_VALUE( 514.77),
|
||||
SIMDE_FLOAT16_VALUE( -561.46), SIMDE_FLOAT16_VALUE( 91.01), SIMDE_FLOAT16_VALUE( 480.89), SIMDE_FLOAT16_VALUE( -789.37) },
|
||||
{ { SIMDE_FLOAT16_VALUE( -474.87), SIMDE_FLOAT16_VALUE( -416.97), SIMDE_FLOAT16_VALUE( -314.33), SIMDE_FLOAT16_VALUE( 194.51),
|
||||
SIMDE_FLOAT16_VALUE( 342.37), SIMDE_FLOAT16_VALUE( -315.60), SIMDE_FLOAT16_VALUE( -561.46), SIMDE_FLOAT16_VALUE( 480.89) },
|
||||
{ SIMDE_FLOAT16_VALUE( 514.49), SIMDE_FLOAT16_VALUE( 62.03), SIMDE_FLOAT16_VALUE( 467.80), SIMDE_FLOAT16_VALUE( 503.53),
|
||||
SIMDE_FLOAT16_VALUE( 888.07), SIMDE_FLOAT16_VALUE( 514.77), SIMDE_FLOAT16_VALUE( 91.01), SIMDE_FLOAT16_VALUE( -789.37) } } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_float16x8x2_t r = simde_vld2q_f16(test_vec[i].a);
|
||||
|
||||
simde_float16x8x2_t expected = {
|
||||
{simde_vld1q_f16(test_vec[i].r[0]), simde_vld1q_f16(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_f16x8(r.val[0], expected.val[0], INT_MAX);
|
||||
simde_test_arm_neon_assert_equal_f16x8(r.val[1], expected.val[1], INT_MAX);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_float16x16_t a = simde_test_arm_neon_random_f16x16(-100.0f, 100.0f);
|
||||
simde_float16x2_t r[2] = simde_vld2q_f16(a);
|
||||
|
||||
simde_test_arm_neon_write_f16x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2q_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
|
|
@ -1614,6 +1746,555 @@ test_simde_vld2q_f64 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2_p8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly8_t a[16];
|
||||
simde_poly8_t r[2][8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY8_C(253), SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(241), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 94),
|
||||
SIMDE_POLY8_C( 57), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 65) },
|
||||
{ { SIMDE_POLY8_C(253), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(241), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 62) },
|
||||
{ SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(227), SIMDE_POLY8_C(133), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 65) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C( 2), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(134), SIMDE_POLY8_C(218), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 37),
|
||||
SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(124), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 79) },
|
||||
{ { SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(218) },
|
||||
{ SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(134), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(170), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 79) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C(127), SIMDE_POLY8_C(223), SIMDE_POLY8_C(160), SIMDE_POLY8_C(113), SIMDE_POLY8_C(175), SIMDE_POLY8_C(161), SIMDE_POLY8_C(207), SIMDE_POLY8_C(233),
|
||||
SIMDE_POLY8_C(132), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(110), SIMDE_POLY8_C(138), SIMDE_POLY8_C(195), SIMDE_POLY8_C(172), SIMDE_POLY8_C(203), SIMDE_POLY8_C(198) },
|
||||
{ { SIMDE_POLY8_C(127), SIMDE_POLY8_C(160), SIMDE_POLY8_C(175), SIMDE_POLY8_C(207), SIMDE_POLY8_C(132), SIMDE_POLY8_C(110), SIMDE_POLY8_C(195), SIMDE_POLY8_C(203) },
|
||||
{ SIMDE_POLY8_C(223), SIMDE_POLY8_C(113), SIMDE_POLY8_C(161), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(138), SIMDE_POLY8_C(172), SIMDE_POLY8_C(198) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C(171), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(173), SIMDE_POLY8_C(171), SIMDE_POLY8_C(113),
|
||||
SIMDE_POLY8_C(205), SIMDE_POLY8_C(245), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(113), SIMDE_POLY8_C(245), SIMDE_POLY8_C(109), SIMDE_POLY8_C(241) },
|
||||
{ { SIMDE_POLY8_C(171), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(171), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(113), SIMDE_POLY8_C(109) },
|
||||
{ SIMDE_POLY8_C(207), SIMDE_POLY8_C(134), SIMDE_POLY8_C(173), SIMDE_POLY8_C(113), SIMDE_POLY8_C(245), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(245), SIMDE_POLY8_C(241) } },
|
||||
},
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly8x8x2_t r = simde_vld2_p8(test_vec[i].a);
|
||||
|
||||
simde_poly8x8x2_t expected = {
|
||||
{simde_vld1_p8(test_vec[i].r[0]), simde_vld1_p8(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_p8x8(r.val[0], expected.val[0]);
|
||||
simde_test_arm_neon_assert_equal_p8x8(r.val[1], expected.val[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_poly8_t a[16];
|
||||
simde_poly8x8x2_t r;
|
||||
simde_test_codegen_random_memory(16, HEDLEY_REINTERPRET_CAST(uint8_t*, a));
|
||||
r = simde_vld2_p8(a);
|
||||
|
||||
simde_test_codegen_write_vp8(2, 16, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p8x8x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2_p16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly16_t a[8];
|
||||
simde_poly16_t r[2][4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY16_C(42664), SIMDE_POLY16_C(53887), SIMDE_POLY16_C(10958), SIMDE_POLY16_C(61123),
|
||||
SIMDE_POLY16_C( 7800), SIMDE_POLY16_C(15834), SIMDE_POLY16_C(36089), SIMDE_POLY16_C(22799) },
|
||||
{ { SIMDE_POLY16_C(42664), SIMDE_POLY16_C(10958), SIMDE_POLY16_C( 7800), SIMDE_POLY16_C(36089) },
|
||||
{ SIMDE_POLY16_C(53887), SIMDE_POLY16_C(61123), SIMDE_POLY16_C(15834), SIMDE_POLY16_C(22799) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(62795), SIMDE_POLY16_C(22857), SIMDE_POLY16_C(11632), SIMDE_POLY16_C(39934),
|
||||
SIMDE_POLY16_C(56742), SIMDE_POLY16_C(64150), SIMDE_POLY16_C( 8095), SIMDE_POLY16_C(18414) },
|
||||
{ { SIMDE_POLY16_C(62795), SIMDE_POLY16_C(11632), SIMDE_POLY16_C(56742), SIMDE_POLY16_C( 8095) },
|
||||
{ SIMDE_POLY16_C(22857), SIMDE_POLY16_C(39934), SIMDE_POLY16_C(64150), SIMDE_POLY16_C(18414) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(28101), SIMDE_POLY16_C(37914), SIMDE_POLY16_C(56727), SIMDE_POLY16_C( 3970),
|
||||
SIMDE_POLY16_C(23803), SIMDE_POLY16_C(62797), SIMDE_POLY16_C(23784), SIMDE_POLY16_C(13390) },
|
||||
{ { SIMDE_POLY16_C(28101), SIMDE_POLY16_C(56727), SIMDE_POLY16_C(23803), SIMDE_POLY16_C(23784) },
|
||||
{ SIMDE_POLY16_C(37914), SIMDE_POLY16_C( 3970), SIMDE_POLY16_C(62797), SIMDE_POLY16_C(13390) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(38737), SIMDE_POLY16_C(49549), SIMDE_POLY16_C(36037), SIMDE_POLY16_C(27485),
|
||||
SIMDE_POLY16_C(62313), SIMDE_POLY16_C( 2149), SIMDE_POLY16_C(21522), SIMDE_POLY16_C(55375) },
|
||||
{ { SIMDE_POLY16_C(38737), SIMDE_POLY16_C(36037), SIMDE_POLY16_C(62313), SIMDE_POLY16_C(21522) },
|
||||
{ SIMDE_POLY16_C(49549), SIMDE_POLY16_C(27485), SIMDE_POLY16_C( 2149), SIMDE_POLY16_C(55375) } },
|
||||
},
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly16x4x2_t r = simde_vld2_p16(test_vec[i].a);
|
||||
|
||||
simde_poly16x4x2_t expected = {
|
||||
{simde_vld1_p16(test_vec[i].r[0]), simde_vld1_p16(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_p16x4(r.val[0], expected.val[0]);
|
||||
simde_test_arm_neon_assert_equal_p16x4(r.val[1], expected.val[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_poly16_t a[8];
|
||||
simde_poly16x4x2_t r;
|
||||
simde_test_codegen_random_memory(16, HEDLEY_REINTERPRET_CAST(uint8_t*, a));
|
||||
r = simde_vld2_p16(a);
|
||||
|
||||
simde_test_codegen_write_vp16(2, 8, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p16x4x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2_p64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly64_t a[2];
|
||||
simde_poly64_t r[2][1];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY64_C( 9544671133075875798),
|
||||
SIMDE_POLY64_C(10026771010818587806) },
|
||||
{ { SIMDE_POLY64_C( 9544671133075875798) },
|
||||
{ SIMDE_POLY64_C(10026771010818587806) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C(11716502022888129015),
|
||||
SIMDE_POLY64_C( 9207447440231071203) },
|
||||
{ { SIMDE_POLY64_C(11716502022888129015) },
|
||||
{ SIMDE_POLY64_C( 9207447440231071203) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C(14585844370014973971),
|
||||
SIMDE_POLY64_C(12085455436694909200) },
|
||||
{ { SIMDE_POLY64_C(14585844370014973971) },
|
||||
{ SIMDE_POLY64_C(12085455436694909200) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 6976248983748549802),
|
||||
SIMDE_POLY64_C( 6648178682459053338) },
|
||||
{ { SIMDE_POLY64_C( 6976248983748549802) },
|
||||
{ SIMDE_POLY64_C( 6648178682459053338) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 9780321370926949059),
|
||||
SIMDE_POLY64_C(10409627327296486687) },
|
||||
{ { SIMDE_POLY64_C( 9780321370926949059) },
|
||||
{ SIMDE_POLY64_C(10409627327296486687) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 3559687685519800969),
|
||||
SIMDE_POLY64_C( 9804398810564506218) },
|
||||
{ { SIMDE_POLY64_C( 3559687685519800969) },
|
||||
{ SIMDE_POLY64_C( 9804398810564506218) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 2403006863864517466),
|
||||
SIMDE_POLY64_C( 244715532034575855) },
|
||||
{ { SIMDE_POLY64_C( 2403006863864517466) },
|
||||
{ SIMDE_POLY64_C( 244715532034575855) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 1885442199874249441),
|
||||
SIMDE_POLY64_C(12785682336243916577) },
|
||||
{ { SIMDE_POLY64_C( 1885442199874249441) },
|
||||
{ SIMDE_POLY64_C(12785682336243916577) } },
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly64x1x2_t r = simde_vld2_p64(test_vec[i].a);
|
||||
|
||||
simde_poly64x1x2_t expected = {
|
||||
{simde_vld1_p64(test_vec[i].r[0]), simde_vld1_p64(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_p64x1(r.val[0], expected.val[0]);
|
||||
simde_test_arm_neon_assert_equal_p64x1(r.val[1], expected.val[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_poly64_t a[8];
|
||||
simde_poly64x1x2_t r;
|
||||
simde_test_codegen_random_memory(64, HEDLEY_REINTERPRET_CAST(uint8_t*, a));
|
||||
r = simde_vld2_p64(a);
|
||||
|
||||
simde_test_codegen_write_vp64(2, 8, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p64x1x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2q_p8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly8_t a[32];
|
||||
simde_poly8_t r[2][16];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY8_C( 56), SIMDE_POLY8_C(119), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(221), SIMDE_POLY8_C(126), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 94),
|
||||
SIMDE_POLY8_C( 0), SIMDE_POLY8_C(203), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(187),
|
||||
SIMDE_POLY8_C(173), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(243), SIMDE_POLY8_C(166),
|
||||
SIMDE_POLY8_C( 51), SIMDE_POLY8_C(149), SIMDE_POLY8_C(128), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(176), SIMDE_POLY8_C(195), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(232) },
|
||||
{ { SIMDE_POLY8_C( 56), SIMDE_POLY8_C(167), SIMDE_POLY8_C(221), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 0), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 2),
|
||||
SIMDE_POLY8_C(173), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(133), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(128), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 30) },
|
||||
{ SIMDE_POLY8_C(119), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(126), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(152), SIMDE_POLY8_C(187),
|
||||
SIMDE_POLY8_C(251), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(166), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(195), SIMDE_POLY8_C(232) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C( 58), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(214), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 68),
|
||||
SIMDE_POLY8_C(161), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(145), SIMDE_POLY8_C(240), SIMDE_POLY8_C(231), SIMDE_POLY8_C(148), SIMDE_POLY8_C(172), SIMDE_POLY8_C(148),
|
||||
SIMDE_POLY8_C(143), SIMDE_POLY8_C(235), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(192), SIMDE_POLY8_C(186), SIMDE_POLY8_C( 65),
|
||||
SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(164), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(254), SIMDE_POLY8_C(195), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 56) },
|
||||
{ { SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(118), SIMDE_POLY8_C(161), SIMDE_POLY8_C(145), SIMDE_POLY8_C(231), SIMDE_POLY8_C(172),
|
||||
SIMDE_POLY8_C(143), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(186), SIMDE_POLY8_C( 85), SIMDE_POLY8_C(164), SIMDE_POLY8_C(254), SIMDE_POLY8_C(237) },
|
||||
{ SIMDE_POLY8_C(198), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(240), SIMDE_POLY8_C(148), SIMDE_POLY8_C(148),
|
||||
SIMDE_POLY8_C(235), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(195), SIMDE_POLY8_C( 56) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C(137), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 18), SIMDE_POLY8_C(176),
|
||||
SIMDE_POLY8_C( 21), SIMDE_POLY8_C(163), SIMDE_POLY8_C(161), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(144), SIMDE_POLY8_C(198),
|
||||
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(219), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(149), SIMDE_POLY8_C(135), SIMDE_POLY8_C(115),
|
||||
SIMDE_POLY8_C(208), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(120), SIMDE_POLY8_C(206), SIMDE_POLY8_C(238), SIMDE_POLY8_C(102), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(119) },
|
||||
{ { SIMDE_POLY8_C(137), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(161), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(144),
|
||||
SIMDE_POLY8_C( 56), SIMDE_POLY8_C(219), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(135), SIMDE_POLY8_C(208), SIMDE_POLY8_C(120), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 6) },
|
||||
{ SIMDE_POLY8_C( 56), SIMDE_POLY8_C(205), SIMDE_POLY8_C(199), SIMDE_POLY8_C(176), SIMDE_POLY8_C(163), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(198),
|
||||
SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(149), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(206), SIMDE_POLY8_C(102), SIMDE_POLY8_C(119) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C(158), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 51),
|
||||
SIMDE_POLY8_C(250), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(192), SIMDE_POLY8_C(248), SIMDE_POLY8_C(132),
|
||||
SIMDE_POLY8_C( 30), SIMDE_POLY8_C(211), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 57),
|
||||
SIMDE_POLY8_C(124), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(107), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 43) },
|
||||
{ { SIMDE_POLY8_C(158), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(248),
|
||||
SIMDE_POLY8_C( 30), SIMDE_POLY8_C(202), SIMDE_POLY8_C(105), SIMDE_POLY8_C(174), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(141), SIMDE_POLY8_C(226) },
|
||||
{ SIMDE_POLY8_C( 87), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(192), SIMDE_POLY8_C(132),
|
||||
SIMDE_POLY8_C(211), SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 43) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C(100), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(217), SIMDE_POLY8_C(130), SIMDE_POLY8_C(126), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(182), SIMDE_POLY8_C(121),
|
||||
SIMDE_POLY8_C( 54), SIMDE_POLY8_C(230), SIMDE_POLY8_C(171), SIMDE_POLY8_C(130), SIMDE_POLY8_C(166), SIMDE_POLY8_C(163), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(196),
|
||||
SIMDE_POLY8_C(119), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 0), SIMDE_POLY8_C(224), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(157),
|
||||
SIMDE_POLY8_C(213), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(235), SIMDE_POLY8_C(142), SIMDE_POLY8_C(146) },
|
||||
{ { SIMDE_POLY8_C(100), SIMDE_POLY8_C(217), SIMDE_POLY8_C(126), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(171), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 6),
|
||||
SIMDE_POLY8_C(119), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(142) },
|
||||
{ SIMDE_POLY8_C( 39), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(121), SIMDE_POLY8_C(230), SIMDE_POLY8_C(130), SIMDE_POLY8_C(163), SIMDE_POLY8_C(196),
|
||||
SIMDE_POLY8_C(208), SIMDE_POLY8_C(224), SIMDE_POLY8_C(174), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(235), SIMDE_POLY8_C(146) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C( 18), SIMDE_POLY8_C(103), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(145), SIMDE_POLY8_C(158), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(212),
|
||||
SIMDE_POLY8_C(176), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 92), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(207),
|
||||
SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(202), SIMDE_POLY8_C(200), SIMDE_POLY8_C(234), SIMDE_POLY8_C(159),
|
||||
SIMDE_POLY8_C(232), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(222), SIMDE_POLY8_C(144), SIMDE_POLY8_C(168), SIMDE_POLY8_C(240) },
|
||||
{ { SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 27),
|
||||
SIMDE_POLY8_C( 44), SIMDE_POLY8_C(175), SIMDE_POLY8_C(202), SIMDE_POLY8_C(234), SIMDE_POLY8_C(232), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(222), SIMDE_POLY8_C(168) },
|
||||
{ SIMDE_POLY8_C(103), SIMDE_POLY8_C(145), SIMDE_POLY8_C(202), SIMDE_POLY8_C(212), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(207),
|
||||
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(200), SIMDE_POLY8_C(159), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(144), SIMDE_POLY8_C(240) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C(247), SIMDE_POLY8_C(188), SIMDE_POLY8_C(129), SIMDE_POLY8_C(149), SIMDE_POLY8_C(135), SIMDE_POLY8_C(139), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 55),
|
||||
SIMDE_POLY8_C( 64), SIMDE_POLY8_C(191), SIMDE_POLY8_C(142), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(170), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 71),
|
||||
SIMDE_POLY8_C(197), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(148), SIMDE_POLY8_C(143), SIMDE_POLY8_C(224), SIMDE_POLY8_C(126), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(201),
|
||||
SIMDE_POLY8_C(113), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(223), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(193), SIMDE_POLY8_C(135), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(184) },
|
||||
{ { SIMDE_POLY8_C(247), SIMDE_POLY8_C(129), SIMDE_POLY8_C(135), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(104),
|
||||
SIMDE_POLY8_C(197), SIMDE_POLY8_C(148), SIMDE_POLY8_C(224), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(113), SIMDE_POLY8_C(223), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 64) },
|
||||
{ SIMDE_POLY8_C(188), SIMDE_POLY8_C(149), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(191), SIMDE_POLY8_C(153), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 71),
|
||||
SIMDE_POLY8_C( 24), SIMDE_POLY8_C(143), SIMDE_POLY8_C(126), SIMDE_POLY8_C(201), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(135), SIMDE_POLY8_C(184) } },
|
||||
},
|
||||
{ { SIMDE_POLY8_C( 67), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(141),
|
||||
SIMDE_POLY8_C(117), SIMDE_POLY8_C(144), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(144), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(143), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 0),
|
||||
SIMDE_POLY8_C(167), SIMDE_POLY8_C(107), SIMDE_POLY8_C(143), SIMDE_POLY8_C(135), SIMDE_POLY8_C(233), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 91),
|
||||
SIMDE_POLY8_C(239), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(170), SIMDE_POLY8_C(176), SIMDE_POLY8_C(182), SIMDE_POLY8_C(234), SIMDE_POLY8_C(104), SIMDE_POLY8_C(250) },
|
||||
{ { SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(117), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(215),
|
||||
SIMDE_POLY8_C(167), SIMDE_POLY8_C(143), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(239), SIMDE_POLY8_C(170), SIMDE_POLY8_C(182), SIMDE_POLY8_C(104) },
|
||||
{ SIMDE_POLY8_C(193), SIMDE_POLY8_C(202), SIMDE_POLY8_C(182), SIMDE_POLY8_C(141), SIMDE_POLY8_C(144), SIMDE_POLY8_C(144), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 0),
|
||||
SIMDE_POLY8_C(107), SIMDE_POLY8_C(135), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(176), SIMDE_POLY8_C(234), SIMDE_POLY8_C(250) } },
|
||||
},
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly8x16x2_t r = simde_vld2q_p8(test_vec[i].a);
|
||||
|
||||
simde_poly8x16x2_t expected = {
|
||||
{simde_vld1q_p8(test_vec[i].r[0]), simde_vld1q_p8(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_p8x16(r.val[0], expected.val[0]);
|
||||
simde_test_arm_neon_assert_equal_p8x16(r.val[1], expected.val[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_poly8_t a[32];
|
||||
simde_poly8x16x2_t r;
|
||||
simde_test_codegen_random_memory(32, HEDLEY_REINTERPRET_CAST(uint8_t*, a));
|
||||
r = simde_vld2q_p8(a);
|
||||
|
||||
simde_test_codegen_write_vp8(2, 32, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p8x16x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2q_p16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly16_t a[16];
|
||||
simde_poly16_t r[2][8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY16_C( 5263), SIMDE_POLY16_C(46704), SIMDE_POLY16_C(17324), SIMDE_POLY16_C( 435), SIMDE_POLY16_C(22826), SIMDE_POLY16_C(35226), SIMDE_POLY16_C( 4289), SIMDE_POLY16_C(14289),
|
||||
SIMDE_POLY16_C(15842), SIMDE_POLY16_C(32624), SIMDE_POLY16_C( 9166), SIMDE_POLY16_C(50530), SIMDE_POLY16_C(15251), SIMDE_POLY16_C(37458), SIMDE_POLY16_C(64003), SIMDE_POLY16_C(37377) },
|
||||
{ { SIMDE_POLY16_C( 5263), SIMDE_POLY16_C(17324), SIMDE_POLY16_C(22826), SIMDE_POLY16_C( 4289), SIMDE_POLY16_C(15842), SIMDE_POLY16_C( 9166), SIMDE_POLY16_C(15251), SIMDE_POLY16_C(64003) },
|
||||
{ SIMDE_POLY16_C(46704), SIMDE_POLY16_C( 435), SIMDE_POLY16_C(35226), SIMDE_POLY16_C(14289), SIMDE_POLY16_C(32624), SIMDE_POLY16_C(50530), SIMDE_POLY16_C(37458), SIMDE_POLY16_C(37377) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(28943), SIMDE_POLY16_C(47944), SIMDE_POLY16_C(64436), SIMDE_POLY16_C(57020), SIMDE_POLY16_C(22100), SIMDE_POLY16_C( 5480), SIMDE_POLY16_C(14695), SIMDE_POLY16_C(18765),
|
||||
SIMDE_POLY16_C(48502), SIMDE_POLY16_C(17865), SIMDE_POLY16_C(11232), SIMDE_POLY16_C(29450), SIMDE_POLY16_C(23654), SIMDE_POLY16_C(26886), SIMDE_POLY16_C( 1879), SIMDE_POLY16_C(26363) },
|
||||
{ { SIMDE_POLY16_C(28943), SIMDE_POLY16_C(64436), SIMDE_POLY16_C(22100), SIMDE_POLY16_C(14695), SIMDE_POLY16_C(48502), SIMDE_POLY16_C(11232), SIMDE_POLY16_C(23654), SIMDE_POLY16_C( 1879) },
|
||||
{ SIMDE_POLY16_C(47944), SIMDE_POLY16_C(57020), SIMDE_POLY16_C( 5480), SIMDE_POLY16_C(18765), SIMDE_POLY16_C(17865), SIMDE_POLY16_C(29450), SIMDE_POLY16_C(26886), SIMDE_POLY16_C(26363) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(17528), SIMDE_POLY16_C(11297), SIMDE_POLY16_C(56639), SIMDE_POLY16_C(37899), SIMDE_POLY16_C(29491), SIMDE_POLY16_C(39593), SIMDE_POLY16_C(63148), SIMDE_POLY16_C( 8932),
|
||||
SIMDE_POLY16_C(44468), SIMDE_POLY16_C(37991), SIMDE_POLY16_C(29144), SIMDE_POLY16_C(16136), SIMDE_POLY16_C( 3790), SIMDE_POLY16_C( 9640), SIMDE_POLY16_C(42005), SIMDE_POLY16_C(36235) },
|
||||
{ { SIMDE_POLY16_C(17528), SIMDE_POLY16_C(56639), SIMDE_POLY16_C(29491), SIMDE_POLY16_C(63148), SIMDE_POLY16_C(44468), SIMDE_POLY16_C(29144), SIMDE_POLY16_C( 3790), SIMDE_POLY16_C(42005) },
|
||||
{ SIMDE_POLY16_C(11297), SIMDE_POLY16_C(37899), SIMDE_POLY16_C(39593), SIMDE_POLY16_C( 8932), SIMDE_POLY16_C(37991), SIMDE_POLY16_C(16136), SIMDE_POLY16_C( 9640), SIMDE_POLY16_C(36235) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(44264), SIMDE_POLY16_C(10169), SIMDE_POLY16_C(50313), SIMDE_POLY16_C(48315), SIMDE_POLY16_C(25911), SIMDE_POLY16_C(58199), SIMDE_POLY16_C(15195), SIMDE_POLY16_C( 3846),
|
||||
SIMDE_POLY16_C(28136), SIMDE_POLY16_C(49316), SIMDE_POLY16_C(44255), SIMDE_POLY16_C(44543), SIMDE_POLY16_C(43194), SIMDE_POLY16_C(53202), SIMDE_POLY16_C(23884), SIMDE_POLY16_C(13404) },
|
||||
{ { SIMDE_POLY16_C(44264), SIMDE_POLY16_C(50313), SIMDE_POLY16_C(25911), SIMDE_POLY16_C(15195), SIMDE_POLY16_C(28136), SIMDE_POLY16_C(44255), SIMDE_POLY16_C(43194), SIMDE_POLY16_C(23884) },
|
||||
{ SIMDE_POLY16_C(10169), SIMDE_POLY16_C(48315), SIMDE_POLY16_C(58199), SIMDE_POLY16_C( 3846), SIMDE_POLY16_C(49316), SIMDE_POLY16_C(44543), SIMDE_POLY16_C(53202), SIMDE_POLY16_C(13404) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C( 5385), SIMDE_POLY16_C(37467), SIMDE_POLY16_C( 6106), SIMDE_POLY16_C( 4430), SIMDE_POLY16_C(42364), SIMDE_POLY16_C(55285), SIMDE_POLY16_C(64480), SIMDE_POLY16_C(51431),
|
||||
SIMDE_POLY16_C(35688), SIMDE_POLY16_C(18313), SIMDE_POLY16_C(34871), SIMDE_POLY16_C(61940), SIMDE_POLY16_C(50736), SIMDE_POLY16_C(31936), SIMDE_POLY16_C( 7203), SIMDE_POLY16_C(11440) },
|
||||
{ { SIMDE_POLY16_C( 5385), SIMDE_POLY16_C( 6106), SIMDE_POLY16_C(42364), SIMDE_POLY16_C(64480), SIMDE_POLY16_C(35688), SIMDE_POLY16_C(34871), SIMDE_POLY16_C(50736), SIMDE_POLY16_C( 7203) },
|
||||
{ SIMDE_POLY16_C(37467), SIMDE_POLY16_C( 4430), SIMDE_POLY16_C(55285), SIMDE_POLY16_C(51431), SIMDE_POLY16_C(18313), SIMDE_POLY16_C(61940), SIMDE_POLY16_C(31936), SIMDE_POLY16_C(11440) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C( 3121), SIMDE_POLY16_C( 3006), SIMDE_POLY16_C( 3363), SIMDE_POLY16_C(40733), SIMDE_POLY16_C( 4786), SIMDE_POLY16_C(37750), SIMDE_POLY16_C(23821), SIMDE_POLY16_C(30043),
|
||||
SIMDE_POLY16_C(58600), SIMDE_POLY16_C( 8125), SIMDE_POLY16_C(45421), SIMDE_POLY16_C(40208), SIMDE_POLY16_C(53368), SIMDE_POLY16_C(39706), SIMDE_POLY16_C(51948), SIMDE_POLY16_C( 7880) },
|
||||
{ { SIMDE_POLY16_C( 3121), SIMDE_POLY16_C( 3363), SIMDE_POLY16_C( 4786), SIMDE_POLY16_C(23821), SIMDE_POLY16_C(58600), SIMDE_POLY16_C(45421), SIMDE_POLY16_C(53368), SIMDE_POLY16_C(51948) },
|
||||
{ SIMDE_POLY16_C( 3006), SIMDE_POLY16_C(40733), SIMDE_POLY16_C(37750), SIMDE_POLY16_C(30043), SIMDE_POLY16_C( 8125), SIMDE_POLY16_C(40208), SIMDE_POLY16_C(39706), SIMDE_POLY16_C( 7880) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(34518), SIMDE_POLY16_C(63785), SIMDE_POLY16_C(18067), SIMDE_POLY16_C(18072), SIMDE_POLY16_C( 3928), SIMDE_POLY16_C(26073), SIMDE_POLY16_C(13420), SIMDE_POLY16_C(21979),
|
||||
SIMDE_POLY16_C(38937), SIMDE_POLY16_C(34420), SIMDE_POLY16_C(34121), SIMDE_POLY16_C(49443), SIMDE_POLY16_C(15701), SIMDE_POLY16_C(16989), SIMDE_POLY16_C( 9480), SIMDE_POLY16_C(56928) },
|
||||
{ { SIMDE_POLY16_C(34518), SIMDE_POLY16_C(18067), SIMDE_POLY16_C( 3928), SIMDE_POLY16_C(13420), SIMDE_POLY16_C(38937), SIMDE_POLY16_C(34121), SIMDE_POLY16_C(15701), SIMDE_POLY16_C( 9480) },
|
||||
{ SIMDE_POLY16_C(63785), SIMDE_POLY16_C(18072), SIMDE_POLY16_C(26073), SIMDE_POLY16_C(21979), SIMDE_POLY16_C(34420), SIMDE_POLY16_C(49443), SIMDE_POLY16_C(16989), SIMDE_POLY16_C(56928) } },
|
||||
},
|
||||
{ { SIMDE_POLY16_C(35243), SIMDE_POLY16_C(16344), SIMDE_POLY16_C(28880), SIMDE_POLY16_C(10373), SIMDE_POLY16_C(24191), SIMDE_POLY16_C(60558), SIMDE_POLY16_C(27026), SIMDE_POLY16_C(43841),
|
||||
SIMDE_POLY16_C(46337), SIMDE_POLY16_C(18993), SIMDE_POLY16_C(21818), SIMDE_POLY16_C(36876), SIMDE_POLY16_C(27026), SIMDE_POLY16_C(39634), SIMDE_POLY16_C(12942), SIMDE_POLY16_C(14713) },
|
||||
{ { SIMDE_POLY16_C(35243), SIMDE_POLY16_C(28880), SIMDE_POLY16_C(24191), SIMDE_POLY16_C(27026), SIMDE_POLY16_C(46337), SIMDE_POLY16_C(21818), SIMDE_POLY16_C(27026), SIMDE_POLY16_C(12942) },
|
||||
{ SIMDE_POLY16_C(16344), SIMDE_POLY16_C(10373), SIMDE_POLY16_C(60558), SIMDE_POLY16_C(43841), SIMDE_POLY16_C(18993), SIMDE_POLY16_C(36876), SIMDE_POLY16_C(39634), SIMDE_POLY16_C(14713) } },
|
||||
},
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly16x8x2_t r = simde_vld2q_p16(test_vec[i].a);
|
||||
|
||||
simde_poly16x8x2_t expected = {
|
||||
{simde_vld1q_p16(test_vec[i].r[0]), simde_vld1q_p16(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_p16x8(r.val[0], expected.val[0]);
|
||||
simde_test_arm_neon_assert_equal_p16x8(r.val[1], expected.val[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_poly16_t a[16];
|
||||
simde_poly16x8x2_t r;
|
||||
simde_test_codegen_random_memory(32, HEDLEY_REINTERPRET_CAST(uint8_t*, a));
|
||||
r = simde_vld2q_p16(a);
|
||||
|
||||
simde_test_codegen_write_vp16(2, 16, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p16x8x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2q_p64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly64_t a[4];
|
||||
simde_poly64_t r[2][2];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY64_C( 3020762151839533812), SIMDE_POLY64_C(17954495856467081562),
|
||||
SIMDE_POLY64_C(14288482954718013222), SIMDE_POLY64_C( 3819020876812341264) },
|
||||
{ { SIMDE_POLY64_C( 3020762151839533812), SIMDE_POLY64_C(14288482954718013222) },
|
||||
{ SIMDE_POLY64_C(17954495856467081562), SIMDE_POLY64_C( 3819020876812341264) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C(10899347977887241965), SIMDE_POLY64_C( 9840223772233446588),
|
||||
SIMDE_POLY64_C(12950102532167286886), SIMDE_POLY64_C(13530663546384542545) },
|
||||
{ { SIMDE_POLY64_C(10899347977887241965), SIMDE_POLY64_C(12950102532167286886) },
|
||||
{ SIMDE_POLY64_C( 9840223772233446588), SIMDE_POLY64_C(13530663546384542545) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 2070555630402543080), SIMDE_POLY64_C(17741159496252854347),
|
||||
SIMDE_POLY64_C( 4492799045846756354), SIMDE_POLY64_C( 7500346603649101196) },
|
||||
{ { SIMDE_POLY64_C( 2070555630402543080), SIMDE_POLY64_C( 4492799045846756354) },
|
||||
{ SIMDE_POLY64_C(17741159496252854347), SIMDE_POLY64_C( 7500346603649101196) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 5489969314248125107), SIMDE_POLY64_C( 2945686371667927898),
|
||||
SIMDE_POLY64_C(17745633243074316570), SIMDE_POLY64_C( 6772400822477133076) },
|
||||
{ { SIMDE_POLY64_C( 5489969314248125107), SIMDE_POLY64_C(17745633243074316570) },
|
||||
{ SIMDE_POLY64_C( 2945686371667927898), SIMDE_POLY64_C( 6772400822477133076) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C( 3359581776035023185), SIMDE_POLY64_C(16272061564597082244),
|
||||
SIMDE_POLY64_C(15790516151494746051), SIMDE_POLY64_C( 3119705754931524419) },
|
||||
{ { SIMDE_POLY64_C( 3359581776035023185), SIMDE_POLY64_C(15790516151494746051) },
|
||||
{ SIMDE_POLY64_C(16272061564597082244), SIMDE_POLY64_C( 3119705754931524419) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C(16282232691925826805), SIMDE_POLY64_C(14653969954052444085),
|
||||
SIMDE_POLY64_C(13303100541911975676), SIMDE_POLY64_C( 7968260244002705039) },
|
||||
{ { SIMDE_POLY64_C(16282232691925826805), SIMDE_POLY64_C(13303100541911975676) },
|
||||
{ SIMDE_POLY64_C(14653969954052444085), SIMDE_POLY64_C( 7968260244002705039) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C(16423833091886748078), SIMDE_POLY64_C(15064748377732249660),
|
||||
SIMDE_POLY64_C(12911875263894391043), SIMDE_POLY64_C( 8586307070039217984) },
|
||||
{ { SIMDE_POLY64_C(16423833091886748078), SIMDE_POLY64_C(12911875263894391043) },
|
||||
{ SIMDE_POLY64_C(15064748377732249660), SIMDE_POLY64_C( 8586307070039217984) } },
|
||||
},
|
||||
{ { SIMDE_POLY64_C(14543092476148932546), SIMDE_POLY64_C(17406166195061535465),
|
||||
SIMDE_POLY64_C(10808808801129014056), SIMDE_POLY64_C(10354190940655066225) },
|
||||
{ { SIMDE_POLY64_C(14543092476148932546), SIMDE_POLY64_C(10808808801129014056) },
|
||||
{ SIMDE_POLY64_C(17406166195061535465), SIMDE_POLY64_C(10354190940655066225) } },
|
||||
}
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly64x2x2_t r = simde_vld2q_p64(test_vec[i].a);
|
||||
|
||||
simde_poly64x2x2_t expected = {
|
||||
{simde_vld1q_p64(test_vec[i].r[0]), simde_vld1q_p64(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_p64x2(r.val[0], expected.val[0]);
|
||||
simde_test_arm_neon_assert_equal_p64x2(r.val[1], expected.val[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_poly64_t a[4];
|
||||
simde_poly64x2x2_t r;
|
||||
simde_test_codegen_random_memory(32, HEDLEY_REINTERPRET_CAST(uint8_t*, a));
|
||||
r = simde_vld2q_p64(a);
|
||||
|
||||
simde_test_codegen_write_vp64(2, 4, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p64x2x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2_bf16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
struct {
|
||||
simde_bfloat16_t a[8];
|
||||
simde_bfloat16_t r[2][4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_BFLOAT16_VALUE(-9.278), SIMDE_BFLOAT16_VALUE(-6.969), SIMDE_BFLOAT16_VALUE(1.663), SIMDE_BFLOAT16_VALUE(-2.545),
|
||||
SIMDE_BFLOAT16_VALUE(-2.609), SIMDE_BFLOAT16_VALUE(6.118), SIMDE_BFLOAT16_VALUE(2.903), SIMDE_BFLOAT16_VALUE(-6.328) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-9.278), SIMDE_BFLOAT16_VALUE(1.663), SIMDE_BFLOAT16_VALUE(-2.609), SIMDE_BFLOAT16_VALUE(2.903) },
|
||||
{ SIMDE_BFLOAT16_VALUE(-6.969), SIMDE_BFLOAT16_VALUE(-2.545), SIMDE_BFLOAT16_VALUE(6.118), SIMDE_BFLOAT16_VALUE(-6.328) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-1.322), SIMDE_BFLOAT16_VALUE(-3.593), SIMDE_BFLOAT16_VALUE(-1.637), SIMDE_BFLOAT16_VALUE(3.347),
|
||||
SIMDE_BFLOAT16_VALUE(-9.161), SIMDE_BFLOAT16_VALUE(-9.575), SIMDE_BFLOAT16_VALUE(7.821), SIMDE_BFLOAT16_VALUE(3.600) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-1.322), SIMDE_BFLOAT16_VALUE(-1.637), SIMDE_BFLOAT16_VALUE(-9.161), SIMDE_BFLOAT16_VALUE(7.821) },
|
||||
{ SIMDE_BFLOAT16_VALUE(-3.593), SIMDE_BFLOAT16_VALUE(3.347), SIMDE_BFLOAT16_VALUE(-9.575), SIMDE_BFLOAT16_VALUE(3.600) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-8.482), SIMDE_BFLOAT16_VALUE(-4.579), SIMDE_BFLOAT16_VALUE(-0.542), SIMDE_BFLOAT16_VALUE(-6.415),
|
||||
SIMDE_BFLOAT16_VALUE(-4.808), SIMDE_BFLOAT16_VALUE(-0.746), SIMDE_BFLOAT16_VALUE(6.877), SIMDE_BFLOAT16_VALUE(-9.631) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-8.482), SIMDE_BFLOAT16_VALUE(-0.542), SIMDE_BFLOAT16_VALUE(-4.808), SIMDE_BFLOAT16_VALUE(6.877) },
|
||||
{ SIMDE_BFLOAT16_VALUE(-4.579), SIMDE_BFLOAT16_VALUE(-6.415), SIMDE_BFLOAT16_VALUE(-0.746), SIMDE_BFLOAT16_VALUE(-9.631) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-7.341), SIMDE_BFLOAT16_VALUE(-3.836), SIMDE_BFLOAT16_VALUE(-0.189), SIMDE_BFLOAT16_VALUE(-2.384),
|
||||
SIMDE_BFLOAT16_VALUE(2.127), SIMDE_BFLOAT16_VALUE(1.646), SIMDE_BFLOAT16_VALUE(7.168), SIMDE_BFLOAT16_VALUE(-5.215) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-7.341), SIMDE_BFLOAT16_VALUE(-0.189), SIMDE_BFLOAT16_VALUE(2.127), SIMDE_BFLOAT16_VALUE(7.168) },
|
||||
{ SIMDE_BFLOAT16_VALUE(-3.836), SIMDE_BFLOAT16_VALUE(-2.384), SIMDE_BFLOAT16_VALUE(1.646), SIMDE_BFLOAT16_VALUE(-5.215) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-2.854), SIMDE_BFLOAT16_VALUE(-6.178), SIMDE_BFLOAT16_VALUE(6.962), SIMDE_BFLOAT16_VALUE(2.037),
|
||||
SIMDE_BFLOAT16_VALUE(-2.141), SIMDE_BFLOAT16_VALUE(1.682), SIMDE_BFLOAT16_VALUE(-8.167), SIMDE_BFLOAT16_VALUE(-2.859) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(-2.854), SIMDE_BFLOAT16_VALUE(6.962), SIMDE_BFLOAT16_VALUE(-2.141), SIMDE_BFLOAT16_VALUE(-8.167) },
|
||||
{ SIMDE_BFLOAT16_VALUE(-6.178), SIMDE_BFLOAT16_VALUE(2.037), SIMDE_BFLOAT16_VALUE(1.682), SIMDE_BFLOAT16_VALUE(-2.859) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(1.069), SIMDE_BFLOAT16_VALUE(6.073), SIMDE_BFLOAT16_VALUE(-7.430), SIMDE_BFLOAT16_VALUE(5.842),
|
||||
SIMDE_BFLOAT16_VALUE(0.741), SIMDE_BFLOAT16_VALUE(-7.806), SIMDE_BFLOAT16_VALUE(-1.530), SIMDE_BFLOAT16_VALUE(5.652) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(1.069), SIMDE_BFLOAT16_VALUE(-7.430), SIMDE_BFLOAT16_VALUE(0.741), SIMDE_BFLOAT16_VALUE(-1.530) },
|
||||
{ SIMDE_BFLOAT16_VALUE(6.073), SIMDE_BFLOAT16_VALUE(5.842), SIMDE_BFLOAT16_VALUE(-7.806), SIMDE_BFLOAT16_VALUE(5.652) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(2.665), SIMDE_BFLOAT16_VALUE(-0.358), SIMDE_BFLOAT16_VALUE(4.267), SIMDE_BFLOAT16_VALUE(6.043),
|
||||
SIMDE_BFLOAT16_VALUE(4.497), SIMDE_BFLOAT16_VALUE(2.667), SIMDE_BFLOAT16_VALUE(7.972), SIMDE_BFLOAT16_VALUE(-6.815) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(2.665), SIMDE_BFLOAT16_VALUE(4.267), SIMDE_BFLOAT16_VALUE(4.497), SIMDE_BFLOAT16_VALUE(7.972) },
|
||||
{ SIMDE_BFLOAT16_VALUE(-0.358), SIMDE_BFLOAT16_VALUE(6.043), SIMDE_BFLOAT16_VALUE(2.667), SIMDE_BFLOAT16_VALUE(-6.815) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE(1.068), SIMDE_BFLOAT16_VALUE(3.596), SIMDE_BFLOAT16_VALUE(-8.704), SIMDE_BFLOAT16_VALUE(5.005),
|
||||
SIMDE_BFLOAT16_VALUE(4.827), SIMDE_BFLOAT16_VALUE(4.545), SIMDE_BFLOAT16_VALUE(0.047), SIMDE_BFLOAT16_VALUE(2.680) },
|
||||
{ { SIMDE_BFLOAT16_VALUE(1.068), SIMDE_BFLOAT16_VALUE(-8.704), SIMDE_BFLOAT16_VALUE(4.827), SIMDE_BFLOAT16_VALUE(0.047) },
|
||||
{ SIMDE_BFLOAT16_VALUE(3.596), SIMDE_BFLOAT16_VALUE(5.005), SIMDE_BFLOAT16_VALUE(4.545), SIMDE_BFLOAT16_VALUE(2.680) } } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_bfloat16x4x2_t r = simde_vld2_bf16(test_vec[i].a);
|
||||
|
||||
simde_bfloat16x4x2_t expected = {
|
||||
{simde_vld1_bf16(test_vec[i].r[0]), simde_vld1_bf16(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_bf16x4(r.val[0], expected.val[0], 1);
|
||||
simde_test_arm_neon_assert_equal_bf16x4(r.val[1], expected.val[1], 1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vld2q_bf16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
struct {
|
||||
simde_bfloat16_t a[16];
|
||||
simde_bfloat16_t r[2][8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_BFLOAT16_VALUE( 793.71), SIMDE_BFLOAT16_VALUE( 221.62), SIMDE_BFLOAT16_VALUE( 781.57), SIMDE_BFLOAT16_VALUE( -525.52),
|
||||
SIMDE_BFLOAT16_VALUE( 800.99), SIMDE_BFLOAT16_VALUE( -411.87), SIMDE_BFLOAT16_VALUE( 483.99), SIMDE_BFLOAT16_VALUE( 852.73),
|
||||
SIMDE_BFLOAT16_VALUE( -433.25), SIMDE_BFLOAT16_VALUE( -811.76), SIMDE_BFLOAT16_VALUE( -463.04), SIMDE_BFLOAT16_VALUE( 671.94),
|
||||
SIMDE_BFLOAT16_VALUE( -60.94), SIMDE_BFLOAT16_VALUE( -434.20), SIMDE_BFLOAT16_VALUE( -263.89), SIMDE_BFLOAT16_VALUE( 754.63) },
|
||||
{ { SIMDE_BFLOAT16_VALUE( 793.71), SIMDE_BFLOAT16_VALUE( 781.57), SIMDE_BFLOAT16_VALUE( 800.99), SIMDE_BFLOAT16_VALUE( 483.99),
|
||||
SIMDE_BFLOAT16_VALUE( -433.25), SIMDE_BFLOAT16_VALUE( -463.04), SIMDE_BFLOAT16_VALUE( -60.94), SIMDE_BFLOAT16_VALUE( -263.89) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 221.62), SIMDE_BFLOAT16_VALUE( -525.52), SIMDE_BFLOAT16_VALUE( -411.87), SIMDE_BFLOAT16_VALUE( 852.73),
|
||||
SIMDE_BFLOAT16_VALUE( -811.76), SIMDE_BFLOAT16_VALUE( 671.94), SIMDE_BFLOAT16_VALUE( -434.20), SIMDE_BFLOAT16_VALUE( 754.63) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE( -877.85), SIMDE_BFLOAT16_VALUE( -225.98), SIMDE_BFLOAT16_VALUE( -292.03), SIMDE_BFLOAT16_VALUE( 932.32),
|
||||
SIMDE_BFLOAT16_VALUE( -463.10), SIMDE_BFLOAT16_VALUE( 171.18), SIMDE_BFLOAT16_VALUE( -115.23), SIMDE_BFLOAT16_VALUE( -867.52),
|
||||
SIMDE_BFLOAT16_VALUE( -182.14), SIMDE_BFLOAT16_VALUE( 874.57), SIMDE_BFLOAT16_VALUE( -306.44), SIMDE_BFLOAT16_VALUE( 180.87),
|
||||
SIMDE_BFLOAT16_VALUE( -827.59), SIMDE_BFLOAT16_VALUE( -449.53), SIMDE_BFLOAT16_VALUE( -593.39), SIMDE_BFLOAT16_VALUE( 966.11) },
|
||||
{ { SIMDE_BFLOAT16_VALUE( -877.85), SIMDE_BFLOAT16_VALUE( -292.03), SIMDE_BFLOAT16_VALUE( -463.10), SIMDE_BFLOAT16_VALUE( -115.23),
|
||||
SIMDE_BFLOAT16_VALUE( -182.14), SIMDE_BFLOAT16_VALUE( -306.44), SIMDE_BFLOAT16_VALUE( -827.59), SIMDE_BFLOAT16_VALUE( -593.39) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -225.98), SIMDE_BFLOAT16_VALUE( 932.32), SIMDE_BFLOAT16_VALUE( 171.18), SIMDE_BFLOAT16_VALUE( -867.52),
|
||||
SIMDE_BFLOAT16_VALUE( 874.57), SIMDE_BFLOAT16_VALUE( 180.87), SIMDE_BFLOAT16_VALUE( -449.53), SIMDE_BFLOAT16_VALUE( 966.11) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE( 772.09), SIMDE_BFLOAT16_VALUE( -811.82), SIMDE_BFLOAT16_VALUE( -559.40), SIMDE_BFLOAT16_VALUE( 573.08),
|
||||
SIMDE_BFLOAT16_VALUE( -223.69), SIMDE_BFLOAT16_VALUE( 924.59), SIMDE_BFLOAT16_VALUE( 425.81), SIMDE_BFLOAT16_VALUE( 343.06),
|
||||
SIMDE_BFLOAT16_VALUE( -887.17), SIMDE_BFLOAT16_VALUE( 962.76), SIMDE_BFLOAT16_VALUE( 15.01), SIMDE_BFLOAT16_VALUE( 51.89),
|
||||
SIMDE_BFLOAT16_VALUE( -471.44), SIMDE_BFLOAT16_VALUE( 751.11), SIMDE_BFLOAT16_VALUE( -193.48), SIMDE_BFLOAT16_VALUE( -349.29) },
|
||||
{ { SIMDE_BFLOAT16_VALUE( 772.09), SIMDE_BFLOAT16_VALUE( -559.40), SIMDE_BFLOAT16_VALUE( -223.69), SIMDE_BFLOAT16_VALUE( 425.81),
|
||||
SIMDE_BFLOAT16_VALUE( -887.17), SIMDE_BFLOAT16_VALUE( 15.01), SIMDE_BFLOAT16_VALUE( -471.44), SIMDE_BFLOAT16_VALUE( -193.48) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -811.82), SIMDE_BFLOAT16_VALUE( 573.08), SIMDE_BFLOAT16_VALUE( 924.59), SIMDE_BFLOAT16_VALUE( 343.06),
|
||||
SIMDE_BFLOAT16_VALUE( 962.76), SIMDE_BFLOAT16_VALUE( 51.89), SIMDE_BFLOAT16_VALUE( 751.11), SIMDE_BFLOAT16_VALUE( -349.29) } } },
|
||||
{ { SIMDE_BFLOAT16_VALUE( -474.87), SIMDE_BFLOAT16_VALUE( 514.49), SIMDE_BFLOAT16_VALUE( -416.97), SIMDE_BFLOAT16_VALUE( 62.03),
|
||||
SIMDE_BFLOAT16_VALUE( -314.33), SIMDE_BFLOAT16_VALUE( 467.80), SIMDE_BFLOAT16_VALUE( 194.51), SIMDE_BFLOAT16_VALUE( 503.53),
|
||||
SIMDE_BFLOAT16_VALUE( 342.37), SIMDE_BFLOAT16_VALUE( 888.07), SIMDE_BFLOAT16_VALUE( -315.60), SIMDE_BFLOAT16_VALUE( 514.77),
|
||||
SIMDE_BFLOAT16_VALUE( -561.46), SIMDE_BFLOAT16_VALUE( 91.01), SIMDE_BFLOAT16_VALUE( 480.89), SIMDE_BFLOAT16_VALUE( -789.37) },
|
||||
{ { SIMDE_BFLOAT16_VALUE( -474.87), SIMDE_BFLOAT16_VALUE( -416.97), SIMDE_BFLOAT16_VALUE( -314.33), SIMDE_BFLOAT16_VALUE( 194.51),
|
||||
SIMDE_BFLOAT16_VALUE( 342.37), SIMDE_BFLOAT16_VALUE( -315.60), SIMDE_BFLOAT16_VALUE( -561.46), SIMDE_BFLOAT16_VALUE( 480.89) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 514.49), SIMDE_BFLOAT16_VALUE( 62.03), SIMDE_BFLOAT16_VALUE( 467.80), SIMDE_BFLOAT16_VALUE( 503.53),
|
||||
SIMDE_BFLOAT16_VALUE( 888.07), SIMDE_BFLOAT16_VALUE( 514.77), SIMDE_BFLOAT16_VALUE( 91.01), SIMDE_BFLOAT16_VALUE( -789.37) } } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_bfloat16x8x2_t r = simde_vld2q_bf16(test_vec[i].a);
|
||||
|
||||
simde_bfloat16x8x2_t expected = {
|
||||
{simde_vld1q_bf16(test_vec[i].r[0]), simde_vld1q_bf16(test_vec[i].r[1])}};
|
||||
|
||||
simde_test_arm_neon_assert_equal_bf16x8(r.val[0], expected.val[0], INT_MAX);
|
||||
simde_test_arm_neon_assert_equal_bf16x8(r.val[1], expected.val[1], INT_MAX);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_BEGIN
|
||||
|
|
@ -1626,6 +2307,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vld2_u8)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_u32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_u64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_f64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_u8)
|
||||
|
|
@ -1636,8 +2318,17 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_s64)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_u32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_u64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_f64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_p8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_p16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_p64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_p8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_p16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_p64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2_bf16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vld2q_bf16)
|
||||
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
|
||||
SIMDE_TEST_FUNC_LIST_END
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue