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
323
thirdparty/simde/test/arm/neon/rev64.c
vendored
323
thirdparty/simde/test/arm/neon/rev64.c
vendored
|
|
@ -9,9 +9,6 @@
|
|||
#include "../../../simde/arm/neon.h"
|
||||
#endif
|
||||
|
||||
/* N.B. CM: vrev64_f16 and vrev64q_f16 are omitted as
|
||||
* SIMDe has no 16-bit floating point support. */
|
||||
|
||||
static int
|
||||
test_simde_vrev64_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
|
|
@ -286,6 +283,53 @@ test_simde_vrev64_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16_t a[4];
|
||||
simde_float16_t r[4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE( - 73.456), SIMDE_FLOAT16_VALUE( - 25.018), SIMDE_FLOAT16_VALUE( 37.020), SIMDE_FLOAT16_VALUE( 60.928) },
|
||||
{ SIMDE_FLOAT16_VALUE( 60.928), SIMDE_FLOAT16_VALUE( 37.020), SIMDE_FLOAT16_VALUE( - 25.018), SIMDE_FLOAT16_VALUE( - 73.456) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 53.291), SIMDE_FLOAT16_VALUE( 85.800), SIMDE_FLOAT16_VALUE( - 72.734), SIMDE_FLOAT16_VALUE( 43.151) },
|
||||
{ SIMDE_FLOAT16_VALUE( 43.151), SIMDE_FLOAT16_VALUE( - 72.734), SIMDE_FLOAT16_VALUE( 85.800), SIMDE_FLOAT16_VALUE( - 53.291) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 40.886), SIMDE_FLOAT16_VALUE( - 28.870), SIMDE_FLOAT16_VALUE( 14.218), SIMDE_FLOAT16_VALUE( 9.978) },
|
||||
{ SIMDE_FLOAT16_VALUE( 9.978), SIMDE_FLOAT16_VALUE( 14.218), SIMDE_FLOAT16_VALUE( - 28.870), SIMDE_FLOAT16_VALUE( - 40.886) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 70.008), SIMDE_FLOAT16_VALUE( - 19.874), SIMDE_FLOAT16_VALUE( - 54.506), SIMDE_FLOAT16_VALUE( 52.049) },
|
||||
{ SIMDE_FLOAT16_VALUE( 52.049), SIMDE_FLOAT16_VALUE( - 54.506), SIMDE_FLOAT16_VALUE( - 19.874), SIMDE_FLOAT16_VALUE( 70.008) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 66.107), SIMDE_FLOAT16_VALUE( - 68.033), SIMDE_FLOAT16_VALUE( 26.334), SIMDE_FLOAT16_VALUE( - 33.368) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 33.368), SIMDE_FLOAT16_VALUE( 26.334), SIMDE_FLOAT16_VALUE( - 68.033), SIMDE_FLOAT16_VALUE( 66.107) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 20.783), SIMDE_FLOAT16_VALUE( 6.506), SIMDE_FLOAT16_VALUE( 94.787), SIMDE_FLOAT16_VALUE( 39.080) },
|
||||
{ SIMDE_FLOAT16_VALUE( 39.080), SIMDE_FLOAT16_VALUE( 94.787), SIMDE_FLOAT16_VALUE( 6.506), SIMDE_FLOAT16_VALUE( 20.783) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 85.876), SIMDE_FLOAT16_VALUE( - 43.674), SIMDE_FLOAT16_VALUE( 80.017), SIMDE_FLOAT16_VALUE( 92.475) },
|
||||
{ SIMDE_FLOAT16_VALUE( 92.475), SIMDE_FLOAT16_VALUE( 80.017), SIMDE_FLOAT16_VALUE( - 43.674), SIMDE_FLOAT16_VALUE( - 85.876) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 43.483), SIMDE_FLOAT16_VALUE( 42.449), SIMDE_FLOAT16_VALUE( 78.227), SIMDE_FLOAT16_VALUE( 19.386) },
|
||||
{ SIMDE_FLOAT16_VALUE( 19.386), SIMDE_FLOAT16_VALUE( 78.227), SIMDE_FLOAT16_VALUE( 42.449), SIMDE_FLOAT16_VALUE( - 43.483) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_float16x4_t a = simde_vld1_f16(test_vec[i].a);
|
||||
simde_float16x4_t r = simde_vrev64_f16(a);
|
||||
|
||||
simde_test_arm_neon_assert_equal_f16x4(r, simde_vld1_f16(test_vec[i].r), 1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_float16x4_t a = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f);
|
||||
simde_float16x4_t r = simde_vrev64_f16(a);
|
||||
|
||||
simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
|
|
@ -638,6 +682,68 @@ test_simde_vrev64q_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64q_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16_t a[8];
|
||||
simde_float16_t r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE( 22.973), SIMDE_FLOAT16_VALUE( 82.785), SIMDE_FLOAT16_VALUE( - 87.788), SIMDE_FLOAT16_VALUE( 54.222),
|
||||
SIMDE_FLOAT16_VALUE( - 79.878), SIMDE_FLOAT16_VALUE( 61.120), SIMDE_FLOAT16_VALUE( - 1.496), SIMDE_FLOAT16_VALUE( 87.003) },
|
||||
{ SIMDE_FLOAT16_VALUE( 54.222), SIMDE_FLOAT16_VALUE( - 87.788), SIMDE_FLOAT16_VALUE( 82.785), SIMDE_FLOAT16_VALUE( 22.973),
|
||||
SIMDE_FLOAT16_VALUE( 87.003), SIMDE_FLOAT16_VALUE( - 1.496), SIMDE_FLOAT16_VALUE( 61.120), SIMDE_FLOAT16_VALUE( - 79.878) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 47.119), SIMDE_FLOAT16_VALUE( - 0.580), SIMDE_FLOAT16_VALUE( 95.794), SIMDE_FLOAT16_VALUE( - 97.960),
|
||||
SIMDE_FLOAT16_VALUE( - 80.926), SIMDE_FLOAT16_VALUE( - 97.842), SIMDE_FLOAT16_VALUE( 16.229), SIMDE_FLOAT16_VALUE( 73.027) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 97.960), SIMDE_FLOAT16_VALUE( 95.794), SIMDE_FLOAT16_VALUE( - 0.580), SIMDE_FLOAT16_VALUE( 47.119),
|
||||
SIMDE_FLOAT16_VALUE( 73.027), SIMDE_FLOAT16_VALUE( 16.229), SIMDE_FLOAT16_VALUE( - 97.842), SIMDE_FLOAT16_VALUE( - 80.926) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 75.505), SIMDE_FLOAT16_VALUE( - 43.371), SIMDE_FLOAT16_VALUE( 75.338), SIMDE_FLOAT16_VALUE( - 74.826),
|
||||
SIMDE_FLOAT16_VALUE( 63.128), SIMDE_FLOAT16_VALUE( 68.089), SIMDE_FLOAT16_VALUE( 68.500), SIMDE_FLOAT16_VALUE( - 98.789) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 74.826), SIMDE_FLOAT16_VALUE( 75.338), SIMDE_FLOAT16_VALUE( - 43.371), SIMDE_FLOAT16_VALUE( 75.505),
|
||||
SIMDE_FLOAT16_VALUE( - 98.789), SIMDE_FLOAT16_VALUE( 68.500), SIMDE_FLOAT16_VALUE( 68.089), SIMDE_FLOAT16_VALUE( 63.128) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 7.539), SIMDE_FLOAT16_VALUE( 5.867), SIMDE_FLOAT16_VALUE( 59.154), SIMDE_FLOAT16_VALUE( - 32.053),
|
||||
SIMDE_FLOAT16_VALUE( - 73.720), SIMDE_FLOAT16_VALUE( 35.809), SIMDE_FLOAT16_VALUE( - 55.954), SIMDE_FLOAT16_VALUE( 35.526) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 32.053), SIMDE_FLOAT16_VALUE( 59.154), SIMDE_FLOAT16_VALUE( 5.867), SIMDE_FLOAT16_VALUE( 7.539),
|
||||
SIMDE_FLOAT16_VALUE( 35.526), SIMDE_FLOAT16_VALUE( - 55.954), SIMDE_FLOAT16_VALUE( 35.809), SIMDE_FLOAT16_VALUE( - 73.720) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 39.271), SIMDE_FLOAT16_VALUE( 97.957), SIMDE_FLOAT16_VALUE( 84.789), SIMDE_FLOAT16_VALUE( - 41.728),
|
||||
SIMDE_FLOAT16_VALUE( 93.209), SIMDE_FLOAT16_VALUE( - 50.250), SIMDE_FLOAT16_VALUE( 72.873), SIMDE_FLOAT16_VALUE( - 13.690) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 41.728), SIMDE_FLOAT16_VALUE( 84.789), SIMDE_FLOAT16_VALUE( 97.957), SIMDE_FLOAT16_VALUE( - 39.271),
|
||||
SIMDE_FLOAT16_VALUE( - 13.690), SIMDE_FLOAT16_VALUE( 72.873), SIMDE_FLOAT16_VALUE( - 50.250), SIMDE_FLOAT16_VALUE( 93.209) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 18.105), SIMDE_FLOAT16_VALUE( - 27.704), SIMDE_FLOAT16_VALUE( 34.737), SIMDE_FLOAT16_VALUE( - 86.956),
|
||||
SIMDE_FLOAT16_VALUE( 49.374), SIMDE_FLOAT16_VALUE( 11.743), SIMDE_FLOAT16_VALUE( - 98.777), SIMDE_FLOAT16_VALUE( 42.229) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 86.956), SIMDE_FLOAT16_VALUE( 34.737), SIMDE_FLOAT16_VALUE( - 27.704), SIMDE_FLOAT16_VALUE( - 18.105),
|
||||
SIMDE_FLOAT16_VALUE( 42.229), SIMDE_FLOAT16_VALUE( - 98.777), SIMDE_FLOAT16_VALUE( 11.743), SIMDE_FLOAT16_VALUE( 49.374) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 80.882), SIMDE_FLOAT16_VALUE( 87.435), SIMDE_FLOAT16_VALUE( 55.813), SIMDE_FLOAT16_VALUE( - 68.226),
|
||||
SIMDE_FLOAT16_VALUE( - 69.733), SIMDE_FLOAT16_VALUE( 94.941), SIMDE_FLOAT16_VALUE( 24.856), SIMDE_FLOAT16_VALUE( 44.375) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 68.226), SIMDE_FLOAT16_VALUE( 55.813), SIMDE_FLOAT16_VALUE( 87.435), SIMDE_FLOAT16_VALUE( 80.882),
|
||||
SIMDE_FLOAT16_VALUE( 44.375), SIMDE_FLOAT16_VALUE( 24.856), SIMDE_FLOAT16_VALUE( 94.941), SIMDE_FLOAT16_VALUE( - 69.733) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 48.888), SIMDE_FLOAT16_VALUE( - 56.159), SIMDE_FLOAT16_VALUE( 7.183), SIMDE_FLOAT16_VALUE( - 75.051),
|
||||
SIMDE_FLOAT16_VALUE( 67.973), SIMDE_FLOAT16_VALUE( 13.410), SIMDE_FLOAT16_VALUE( - 45.628), SIMDE_FLOAT16_VALUE( 45.377) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 75.051), SIMDE_FLOAT16_VALUE( 7.183), SIMDE_FLOAT16_VALUE( - 56.159), SIMDE_FLOAT16_VALUE( 48.888),
|
||||
SIMDE_FLOAT16_VALUE( 45.377), SIMDE_FLOAT16_VALUE( - 45.628), SIMDE_FLOAT16_VALUE( 13.410), SIMDE_FLOAT16_VALUE( 67.973) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_float16x8_t a = simde_vld1q_f16(test_vec[i].a);
|
||||
simde_float16x8_t r = simde_vrev64q_f16(a);
|
||||
simde_test_arm_neon_assert_equal_f16x8(r, simde_vld1q_f16(test_vec[i].r), 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_float16x8_t r = simde_vrev64q_f16(a);
|
||||
|
||||
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64q_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
|
|
@ -683,6 +789,208 @@ test_simde_vrev64q_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64_p8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly8_t a[8];
|
||||
simde_poly8_t r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY8_C(179), SIMDE_POLY8_C(177), SIMDE_POLY8_C(132), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(173), SIMDE_POLY8_C(243) },
|
||||
{ SIMDE_POLY8_C(243), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(204), SIMDE_POLY8_C(132), SIMDE_POLY8_C(177), SIMDE_POLY8_C(179) } },
|
||||
{ { SIMDE_POLY8_C(192), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(198), SIMDE_POLY8_C(132) },
|
||||
{ SIMDE_POLY8_C(132), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(222), SIMDE_POLY8_C(192) } },
|
||||
{ { SIMDE_POLY8_C(236), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(104), SIMDE_POLY8_C(146), SIMDE_POLY8_C(132), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 72) },
|
||||
{ SIMDE_POLY8_C( 72), SIMDE_POLY8_C(149), SIMDE_POLY8_C(132), SIMDE_POLY8_C(146), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(188), SIMDE_POLY8_C(236) } },
|
||||
{ { SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(240), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(135), SIMDE_POLY8_C(245), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 58) },
|
||||
{ SIMDE_POLY8_C( 58), SIMDE_POLY8_C(178), SIMDE_POLY8_C(245), SIMDE_POLY8_C(135), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(240), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 23) } },
|
||||
{ { SIMDE_POLY8_C(166), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(180), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 24) },
|
||||
{ SIMDE_POLY8_C( 24), SIMDE_POLY8_C(166), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(166) } },
|
||||
{ { SIMDE_POLY8_C(146), SIMDE_POLY8_C(189), SIMDE_POLY8_C(102), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(109), SIMDE_POLY8_C( 3) },
|
||||
{ SIMDE_POLY8_C( 3), SIMDE_POLY8_C(109), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(233), SIMDE_POLY8_C(102), SIMDE_POLY8_C(189), SIMDE_POLY8_C(146) } },
|
||||
{ { SIMDE_POLY8_C(233), SIMDE_POLY8_C(202), SIMDE_POLY8_C(107), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 1), SIMDE_POLY8_C(196), SIMDE_POLY8_C(101) },
|
||||
{ SIMDE_POLY8_C(101), SIMDE_POLY8_C(196), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(124), SIMDE_POLY8_C(107), SIMDE_POLY8_C(202), SIMDE_POLY8_C(233) } },
|
||||
{ { SIMDE_POLY8_C( 77), SIMDE_POLY8_C(180), SIMDE_POLY8_C(121), SIMDE_POLY8_C(212), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 80) },
|
||||
{ SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(170), SIMDE_POLY8_C(212), SIMDE_POLY8_C(121), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 77) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly8x8_t a = simde_vld1_p8(test_vec[i].a);
|
||||
simde_poly8x8_t r = simde_vrev64_p8(a);
|
||||
|
||||
simde_test_arm_neon_assert_equal_p8x8(r, simde_vld1_p8(test_vec[i].r));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
|
||||
simde_poly8x8_t r = simde_vrev64_p8(a);
|
||||
|
||||
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p8x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64_p16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly16_t a[4];
|
||||
simde_poly16_t r[4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY16_C(59270), SIMDE_POLY16_C(33972), SIMDE_POLY16_C(12613), SIMDE_POLY16_C( 118) },
|
||||
{ SIMDE_POLY16_C( 118), SIMDE_POLY16_C(12613), SIMDE_POLY16_C(33972), SIMDE_POLY16_C(59270) } },
|
||||
{ { SIMDE_POLY16_C(52123), SIMDE_POLY16_C( 9798), SIMDE_POLY16_C(57227), SIMDE_POLY16_C(52269) },
|
||||
{ SIMDE_POLY16_C(52269), SIMDE_POLY16_C(57227), SIMDE_POLY16_C( 9798), SIMDE_POLY16_C(52123) } },
|
||||
{ { SIMDE_POLY16_C(32029), SIMDE_POLY16_C( 8590), SIMDE_POLY16_C(40992), SIMDE_POLY16_C(60985) },
|
||||
{ SIMDE_POLY16_C(60985), SIMDE_POLY16_C(40992), SIMDE_POLY16_C( 8590), SIMDE_POLY16_C(32029) } },
|
||||
{ { SIMDE_POLY16_C(60666), SIMDE_POLY16_C(13202), SIMDE_POLY16_C(21293), SIMDE_POLY16_C(46056) },
|
||||
{ SIMDE_POLY16_C(46056), SIMDE_POLY16_C(21293), SIMDE_POLY16_C(13202), SIMDE_POLY16_C(60666) } },
|
||||
{ { SIMDE_POLY16_C(39995), SIMDE_POLY16_C(32824), SIMDE_POLY16_C(44750), SIMDE_POLY16_C(27008) },
|
||||
{ SIMDE_POLY16_C(27008), SIMDE_POLY16_C(44750), SIMDE_POLY16_C(32824), SIMDE_POLY16_C(39995) } },
|
||||
{ { SIMDE_POLY16_C(51065), SIMDE_POLY16_C( 1167), SIMDE_POLY16_C(48294), SIMDE_POLY16_C(50129) },
|
||||
{ SIMDE_POLY16_C(50129), SIMDE_POLY16_C(48294), SIMDE_POLY16_C( 1167), SIMDE_POLY16_C(51065) } },
|
||||
{ { SIMDE_POLY16_C(24377), SIMDE_POLY16_C(23012), SIMDE_POLY16_C( 7679), SIMDE_POLY16_C(63815) },
|
||||
{ SIMDE_POLY16_C(63815), SIMDE_POLY16_C( 7679), SIMDE_POLY16_C(23012), SIMDE_POLY16_C(24377) } },
|
||||
{ { SIMDE_POLY16_C(55562), SIMDE_POLY16_C(14124), SIMDE_POLY16_C( 5165), SIMDE_POLY16_C(26858) },
|
||||
{ SIMDE_POLY16_C(26858), SIMDE_POLY16_C( 5165), SIMDE_POLY16_C(14124), SIMDE_POLY16_C(55562) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
|
||||
simde_poly16x4_t r = simde_vrev64_p16(a);
|
||||
simde_test_arm_neon_assert_equal_p16x4(r, simde_vld1_p16(test_vec[i].r));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
|
||||
simde_poly16x4_t r = simde_vrev64_p16(a);
|
||||
|
||||
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64q_p8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly8_t a[16];
|
||||
simde_poly8_t r[16];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY8_C(105), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(116), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 54),
|
||||
SIMDE_POLY8_C(215), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(195) },
|
||||
{ SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 1), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(116), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(105),
|
||||
SIMDE_POLY8_C(195), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(206), SIMDE_POLY8_C(215) } },
|
||||
{ { SIMDE_POLY8_C( 19), SIMDE_POLY8_C(118), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(134),
|
||||
SIMDE_POLY8_C( 54), SIMDE_POLY8_C(199), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(237), SIMDE_POLY8_C(174), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 87) },
|
||||
{ SIMDE_POLY8_C(134), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(243), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 19),
|
||||
SIMDE_POLY8_C( 87), SIMDE_POLY8_C(137), SIMDE_POLY8_C(174), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(158), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 54) } },
|
||||
{ { SIMDE_POLY8_C( 1), SIMDE_POLY8_C(143), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(248), SIMDE_POLY8_C(204), SIMDE_POLY8_C(109), SIMDE_POLY8_C(207),
|
||||
SIMDE_POLY8_C(155), SIMDE_POLY8_C(198), SIMDE_POLY8_C(169), SIMDE_POLY8_C(196), SIMDE_POLY8_C(112), SIMDE_POLY8_C(191), SIMDE_POLY8_C(136), SIMDE_POLY8_C(131) },
|
||||
{ SIMDE_POLY8_C(207), SIMDE_POLY8_C(109), SIMDE_POLY8_C(204), SIMDE_POLY8_C(248), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(203), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 1),
|
||||
SIMDE_POLY8_C(131), SIMDE_POLY8_C(136), SIMDE_POLY8_C(191), SIMDE_POLY8_C(112), SIMDE_POLY8_C(196), SIMDE_POLY8_C(169), SIMDE_POLY8_C(198), SIMDE_POLY8_C(155) } },
|
||||
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C(123), SIMDE_POLY8_C(181), SIMDE_POLY8_C(154), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 1),
|
||||
SIMDE_POLY8_C(215), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(197), SIMDE_POLY8_C(109), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 28), SIMDE_POLY8_C(110) },
|
||||
{ SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(203), SIMDE_POLY8_C(154), SIMDE_POLY8_C(181), SIMDE_POLY8_C(123), SIMDE_POLY8_C( 53),
|
||||
SIMDE_POLY8_C(110), SIMDE_POLY8_C( 28), SIMDE_POLY8_C(206), SIMDE_POLY8_C(109), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(190), SIMDE_POLY8_C(215) } },
|
||||
{ { SIMDE_POLY8_C( 94), SIMDE_POLY8_C(231), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 79),
|
||||
SIMDE_POLY8_C(217), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(142), SIMDE_POLY8_C(155), SIMDE_POLY8_C(205), SIMDE_POLY8_C(195) },
|
||||
{ SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(165), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 94),
|
||||
SIMDE_POLY8_C(195), SIMDE_POLY8_C(205), SIMDE_POLY8_C(155), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(207), SIMDE_POLY8_C(217) } },
|
||||
{ { SIMDE_POLY8_C( 22), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(225), SIMDE_POLY8_C(146), SIMDE_POLY8_C(125), SIMDE_POLY8_C(226), SIMDE_POLY8_C(106),
|
||||
SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(169), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 84) },
|
||||
{ SIMDE_POLY8_C(106), SIMDE_POLY8_C(226), SIMDE_POLY8_C(125), SIMDE_POLY8_C(146), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 22),
|
||||
SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(246), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 60) } },
|
||||
{ { SIMDE_POLY8_C( 50), SIMDE_POLY8_C(188), SIMDE_POLY8_C(170), SIMDE_POLY8_C(230), SIMDE_POLY8_C(207), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(169),
|
||||
SIMDE_POLY8_C(159), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(228), SIMDE_POLY8_C(192), SIMDE_POLY8_C(240), SIMDE_POLY8_C(251) },
|
||||
{ SIMDE_POLY8_C(169), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(208), SIMDE_POLY8_C(207), SIMDE_POLY8_C(230), SIMDE_POLY8_C(170), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 50),
|
||||
SIMDE_POLY8_C(251), SIMDE_POLY8_C(240), SIMDE_POLY8_C(192), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(159) } },
|
||||
{ { SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(220), SIMDE_POLY8_C(213), SIMDE_POLY8_C(202), SIMDE_POLY8_C(191), SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 6),
|
||||
SIMDE_POLY8_C(231), SIMDE_POLY8_C(110), SIMDE_POLY8_C(175), SIMDE_POLY8_C(221), SIMDE_POLY8_C(185), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(236) },
|
||||
{ SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(191), SIMDE_POLY8_C(202), SIMDE_POLY8_C(213), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 67),
|
||||
SIMDE_POLY8_C(236), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(198), SIMDE_POLY8_C(185), SIMDE_POLY8_C(221), SIMDE_POLY8_C(175), SIMDE_POLY8_C(110), SIMDE_POLY8_C(231) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly8x16_t a = simde_vld1q_p8(test_vec[i].a);
|
||||
simde_poly8x16_t r = simde_vrev64q_p8(a);
|
||||
|
||||
simde_test_arm_neon_assert_equal_p8x16(r, simde_vld1q_p8(test_vec[i].r));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
|
||||
simde_poly8x16_t r = simde_vrev64q_p8(a);
|
||||
|
||||
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p8x16(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vrev64q_p16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
static const struct {
|
||||
simde_poly16_t a[8];
|
||||
simde_poly16_t r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY16_C(23729), SIMDE_POLY16_C(35203), SIMDE_POLY16_C(54806), SIMDE_POLY16_C(21539), SIMDE_POLY16_C(50954), SIMDE_POLY16_C(24064), SIMDE_POLY16_C(21898), SIMDE_POLY16_C(26296) },
|
||||
{ SIMDE_POLY16_C(21539), SIMDE_POLY16_C(54806), SIMDE_POLY16_C(35203), SIMDE_POLY16_C(23729), SIMDE_POLY16_C(26296), SIMDE_POLY16_C(21898), SIMDE_POLY16_C(24064), SIMDE_POLY16_C(50954) } },
|
||||
{ { SIMDE_POLY16_C(49935), SIMDE_POLY16_C(59261), SIMDE_POLY16_C(59617), SIMDE_POLY16_C(46782), SIMDE_POLY16_C(57390), SIMDE_POLY16_C(44550), SIMDE_POLY16_C(19947), SIMDE_POLY16_C(40107) },
|
||||
{ SIMDE_POLY16_C(46782), SIMDE_POLY16_C(59617), SIMDE_POLY16_C(59261), SIMDE_POLY16_C(49935), SIMDE_POLY16_C(40107), SIMDE_POLY16_C(19947), SIMDE_POLY16_C(44550), SIMDE_POLY16_C(57390) } },
|
||||
{ { SIMDE_POLY16_C(11946), SIMDE_POLY16_C(49189), SIMDE_POLY16_C(18436), SIMDE_POLY16_C( 3860), SIMDE_POLY16_C( 5136), SIMDE_POLY16_C(39533), SIMDE_POLY16_C( 9577), SIMDE_POLY16_C(30977) },
|
||||
{ SIMDE_POLY16_C( 3860), SIMDE_POLY16_C(18436), SIMDE_POLY16_C(49189), SIMDE_POLY16_C(11946), SIMDE_POLY16_C(30977), SIMDE_POLY16_C( 9577), SIMDE_POLY16_C(39533), SIMDE_POLY16_C( 5136) } },
|
||||
{ { SIMDE_POLY16_C(32488), SIMDE_POLY16_C(51552), SIMDE_POLY16_C( 7783), SIMDE_POLY16_C(38271), SIMDE_POLY16_C(34558), SIMDE_POLY16_C(59716), SIMDE_POLY16_C(61395), SIMDE_POLY16_C(32133) },
|
||||
{ SIMDE_POLY16_C(38271), SIMDE_POLY16_C( 7783), SIMDE_POLY16_C(51552), SIMDE_POLY16_C(32488), SIMDE_POLY16_C(32133), SIMDE_POLY16_C(61395), SIMDE_POLY16_C(59716), SIMDE_POLY16_C(34558) } },
|
||||
{ { SIMDE_POLY16_C(43805), SIMDE_POLY16_C( 8509), SIMDE_POLY16_C(21235), SIMDE_POLY16_C( 816), SIMDE_POLY16_C(40294), SIMDE_POLY16_C(53406), SIMDE_POLY16_C(40898), SIMDE_POLY16_C(43593) },
|
||||
{ SIMDE_POLY16_C( 816), SIMDE_POLY16_C(21235), SIMDE_POLY16_C( 8509), SIMDE_POLY16_C(43805), SIMDE_POLY16_C(43593), SIMDE_POLY16_C(40898), SIMDE_POLY16_C(53406), SIMDE_POLY16_C(40294) } },
|
||||
{ { SIMDE_POLY16_C(43293), SIMDE_POLY16_C(33907), SIMDE_POLY16_C(62407), SIMDE_POLY16_C(50714), SIMDE_POLY16_C(24185), SIMDE_POLY16_C(19631), SIMDE_POLY16_C(13645), SIMDE_POLY16_C(27338) },
|
||||
{ SIMDE_POLY16_C(50714), SIMDE_POLY16_C(62407), SIMDE_POLY16_C(33907), SIMDE_POLY16_C(43293), SIMDE_POLY16_C(27338), SIMDE_POLY16_C(13645), SIMDE_POLY16_C(19631), SIMDE_POLY16_C(24185) } },
|
||||
{ { SIMDE_POLY16_C( 2016), SIMDE_POLY16_C(54155), SIMDE_POLY16_C(48217), SIMDE_POLY16_C(49367), SIMDE_POLY16_C(30041), SIMDE_POLY16_C( 7312), SIMDE_POLY16_C(55572), SIMDE_POLY16_C(12742) },
|
||||
{ SIMDE_POLY16_C(49367), SIMDE_POLY16_C(48217), SIMDE_POLY16_C(54155), SIMDE_POLY16_C( 2016), SIMDE_POLY16_C(12742), SIMDE_POLY16_C(55572), SIMDE_POLY16_C( 7312), SIMDE_POLY16_C(30041) } },
|
||||
{ { SIMDE_POLY16_C(14978), SIMDE_POLY16_C(18870), SIMDE_POLY16_C(53293), SIMDE_POLY16_C(42511), SIMDE_POLY16_C(48942), SIMDE_POLY16_C(31730), SIMDE_POLY16_C(48372), SIMDE_POLY16_C(54501) },
|
||||
{ SIMDE_POLY16_C(42511), SIMDE_POLY16_C(53293), SIMDE_POLY16_C(18870), SIMDE_POLY16_C(14978), SIMDE_POLY16_C(54501), SIMDE_POLY16_C(48372), SIMDE_POLY16_C(31730), SIMDE_POLY16_C(48942) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
|
||||
simde_poly16x8_t r = simde_vrev64q_p16(a);
|
||||
simde_test_arm_neon_assert_equal_p16x8(r, simde_vld1q_p16(test_vec[i].r));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
|
||||
simde_poly16x8_t r = simde_vrev64q_p16(a);
|
||||
|
||||
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_BEGIN
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_s8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_s16)
|
||||
|
|
@ -690,7 +998,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_s32)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_u8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_u32)
|
||||
//SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_f32)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_s8)
|
||||
|
|
@ -699,8 +1007,13 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_s32)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_u8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_u32)
|
||||
//SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_f32)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_p8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64_p16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_p8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vrev64q_p16)
|
||||
SIMDE_TEST_FUNC_LIST_END
|
||||
|
||||
#include "test-neon-footer.h"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue