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
720
thirdparty/simde/test/arm/neon/trn1.c
vendored
720
thirdparty/simde/test/arm/neon/trn1.c
vendored
|
|
@ -3,8 +3,68 @@
|
|||
#include <test/arm/neon/test-neon.h>
|
||||
#include <simde/arm/neon/trn1.h>
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16_t a[4];
|
||||
simde_float16_t b[4];
|
||||
simde_float16_t r[4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE( 11.105), SIMDE_FLOAT16_VALUE( - 63.267), SIMDE_FLOAT16_VALUE( - 15.443), SIMDE_FLOAT16_VALUE( - 77.497) },
|
||||
{ SIMDE_FLOAT16_VALUE( 99.692), SIMDE_FLOAT16_VALUE( - 68.474), SIMDE_FLOAT16_VALUE( - 55.887), SIMDE_FLOAT16_VALUE( - 21.106) },
|
||||
{ SIMDE_FLOAT16_VALUE( 11.105), SIMDE_FLOAT16_VALUE( 99.692), SIMDE_FLOAT16_VALUE( - 15.443), SIMDE_FLOAT16_VALUE( - 55.887) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 52.862), SIMDE_FLOAT16_VALUE( - 88.095), SIMDE_FLOAT16_VALUE( 55.948), SIMDE_FLOAT16_VALUE( - 84.989) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 27.479), SIMDE_FLOAT16_VALUE( - 14.155), SIMDE_FLOAT16_VALUE( 73.644), SIMDE_FLOAT16_VALUE( - 71.624) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 52.862), SIMDE_FLOAT16_VALUE( - 27.479), SIMDE_FLOAT16_VALUE( 55.948), SIMDE_FLOAT16_VALUE( 73.644) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 57.467), SIMDE_FLOAT16_VALUE( - 90.025), SIMDE_FLOAT16_VALUE( 11.725), SIMDE_FLOAT16_VALUE( 82.468) },
|
||||
{ SIMDE_FLOAT16_VALUE( 85.913), SIMDE_FLOAT16_VALUE( - 65.687), SIMDE_FLOAT16_VALUE( - 18.534), SIMDE_FLOAT16_VALUE( - 19.093) },
|
||||
{ SIMDE_FLOAT16_VALUE( 57.467), SIMDE_FLOAT16_VALUE( 85.913), SIMDE_FLOAT16_VALUE( 11.725), SIMDE_FLOAT16_VALUE( - 18.534) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 27.762), SIMDE_FLOAT16_VALUE( 58.179), SIMDE_FLOAT16_VALUE( - 53.292), SIMDE_FLOAT16_VALUE( - 33.595) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 49.071), SIMDE_FLOAT16_VALUE( - 66.212), SIMDE_FLOAT16_VALUE( - 65.087), SIMDE_FLOAT16_VALUE( 86.615) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 27.762), SIMDE_FLOAT16_VALUE( - 49.071), SIMDE_FLOAT16_VALUE( - 53.292), SIMDE_FLOAT16_VALUE( - 65.087) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 38.277), SIMDE_FLOAT16_VALUE( - 95.558), SIMDE_FLOAT16_VALUE( 26.475), SIMDE_FLOAT16_VALUE( - 96.782) },
|
||||
{ SIMDE_FLOAT16_VALUE( 68.464), SIMDE_FLOAT16_VALUE( - 65.232), SIMDE_FLOAT16_VALUE( 26.296), SIMDE_FLOAT16_VALUE( 11.376) },
|
||||
{ SIMDE_FLOAT16_VALUE( 38.277), SIMDE_FLOAT16_VALUE( 68.464), SIMDE_FLOAT16_VALUE( 26.475), SIMDE_FLOAT16_VALUE( 26.296) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 48.285), SIMDE_FLOAT16_VALUE( 24.604), SIMDE_FLOAT16_VALUE( 69.617), SIMDE_FLOAT16_VALUE( 66.002) },
|
||||
{ SIMDE_FLOAT16_VALUE( 0.920), SIMDE_FLOAT16_VALUE( - 90.358), SIMDE_FLOAT16_VALUE( 2.468), SIMDE_FLOAT16_VALUE( - 37.903) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 48.285), SIMDE_FLOAT16_VALUE( 0.920), SIMDE_FLOAT16_VALUE( 69.617), SIMDE_FLOAT16_VALUE( 2.468) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 46.735), SIMDE_FLOAT16_VALUE( - 76.326), SIMDE_FLOAT16_VALUE( - 33.544), SIMDE_FLOAT16_VALUE( 0.423) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 37.682), SIMDE_FLOAT16_VALUE( - 51.421), SIMDE_FLOAT16_VALUE( 98.911), SIMDE_FLOAT16_VALUE( 97.679) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 46.735), SIMDE_FLOAT16_VALUE( - 37.682), SIMDE_FLOAT16_VALUE( - 33.544), SIMDE_FLOAT16_VALUE( 98.911) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 98.472), SIMDE_FLOAT16_VALUE( - 2.386), SIMDE_FLOAT16_VALUE( - 66.666), SIMDE_FLOAT16_VALUE( 27.183) },
|
||||
{ SIMDE_FLOAT16_VALUE( 23.202), SIMDE_FLOAT16_VALUE( 1.710), SIMDE_FLOAT16_VALUE( 58.950), SIMDE_FLOAT16_VALUE( - 44.528) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 98.472), SIMDE_FLOAT16_VALUE( 23.202), SIMDE_FLOAT16_VALUE( - 66.666), SIMDE_FLOAT16_VALUE( 58.950) } },
|
||||
};
|
||||
|
||||
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 b = simde_vld1_f16(test_vec[i].b);
|
||||
simde_float16x4_t r = simde_vtrn1_f16(a, b);
|
||||
|
||||
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 b = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f);
|
||||
simde_float16x4_t r = simde_vtrn1_f16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float32 a[2];
|
||||
simde_float32 b[2];
|
||||
|
|
@ -45,10 +105,25 @@ test_simde_vtrn1_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_float32x2_t a = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f);
|
||||
simde_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f);
|
||||
simde_float32x2_t r = simde_vtrn1_f32(a, b);
|
||||
|
||||
simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f32x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int8_t a[8];
|
||||
int8_t b[8];
|
||||
|
|
@ -89,10 +164,25 @@ test_simde_vtrn1_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
|
||||
simde_int8x8_t b = simde_test_arm_neon_random_i8x8();
|
||||
simde_int8x8_t r = simde_vtrn1_s8(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_s16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int16_t a[4];
|
||||
int16_t b[4];
|
||||
|
|
@ -133,10 +223,25 @@ test_simde_vtrn1_s16 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
|
||||
simde_int16x4_t b = simde_test_arm_neon_random_i16x4();
|
||||
simde_int16x4_t r = simde_vtrn1_s16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_s32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int32_t a[2];
|
||||
int32_t b[2];
|
||||
|
|
@ -177,10 +282,25 @@ test_simde_vtrn1_s32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
|
||||
simde_int32x2_t b = simde_test_arm_neon_random_i32x2();
|
||||
simde_int32x2_t r = simde_vtrn1_s32(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_u8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint8_t a[8];
|
||||
uint8_t b[8];
|
||||
|
|
@ -221,10 +341,25 @@ test_simde_vtrn1_u8 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
|
||||
simde_uint8x8_t b = simde_test_arm_neon_random_u8x8();
|
||||
simde_uint8x8_t r = simde_vtrn1_u8(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_u16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint16_t a[4];
|
||||
uint16_t b[4];
|
||||
|
|
@ -264,10 +399,25 @@ test_simde_vtrn1_u16 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
|
||||
simde_uint16x4_t b = simde_test_arm_neon_random_u16x4();
|
||||
simde_uint16x4_t r = simde_vtrn1_u16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint32_t a[2];
|
||||
uint32_t b[2];
|
||||
|
|
@ -307,10 +457,107 @@ test_simde_vtrn1_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
|
||||
simde_uint32x2_t b = simde_test_arm_neon_random_u32x2();
|
||||
simde_uint32x2_t r = simde_vtrn1_u32(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16_t a[8];
|
||||
simde_float16_t b[8];
|
||||
simde_float16_t r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE( - 50.625), SIMDE_FLOAT16_VALUE( 30.747), SIMDE_FLOAT16_VALUE( 18.487), SIMDE_FLOAT16_VALUE( 57.491),
|
||||
SIMDE_FLOAT16_VALUE( - 21.129), SIMDE_FLOAT16_VALUE( 15.440), SIMDE_FLOAT16_VALUE( - 52.593), SIMDE_FLOAT16_VALUE( - 4.727) },
|
||||
{ SIMDE_FLOAT16_VALUE( 44.277), SIMDE_FLOAT16_VALUE( - 25.789), SIMDE_FLOAT16_VALUE( - 25.136), SIMDE_FLOAT16_VALUE( 33.647),
|
||||
SIMDE_FLOAT16_VALUE( - 95.841), SIMDE_FLOAT16_VALUE( 52.244), SIMDE_FLOAT16_VALUE( - 21.627), SIMDE_FLOAT16_VALUE( 66.122) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 50.625), SIMDE_FLOAT16_VALUE( 44.277), SIMDE_FLOAT16_VALUE( 18.487), SIMDE_FLOAT16_VALUE( - 25.136),
|
||||
SIMDE_FLOAT16_VALUE( - 21.129), SIMDE_FLOAT16_VALUE( - 95.841), SIMDE_FLOAT16_VALUE( - 52.593), SIMDE_FLOAT16_VALUE( - 21.627) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 6.913), SIMDE_FLOAT16_VALUE( - 94.272), SIMDE_FLOAT16_VALUE( 11.297), SIMDE_FLOAT16_VALUE( 3.058),
|
||||
SIMDE_FLOAT16_VALUE( - 5.001), SIMDE_FLOAT16_VALUE( - 7.243), SIMDE_FLOAT16_VALUE( 48.542), SIMDE_FLOAT16_VALUE( - 21.366) },
|
||||
{ SIMDE_FLOAT16_VALUE( 18.542), SIMDE_FLOAT16_VALUE( 92.836), SIMDE_FLOAT16_VALUE( - 53.782), SIMDE_FLOAT16_VALUE( - 54.711),
|
||||
SIMDE_FLOAT16_VALUE( 46.595), SIMDE_FLOAT16_VALUE( 50.270), SIMDE_FLOAT16_VALUE( 64.443), SIMDE_FLOAT16_VALUE( - 32.873) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 6.913), SIMDE_FLOAT16_VALUE( 18.542), SIMDE_FLOAT16_VALUE( 11.297), SIMDE_FLOAT16_VALUE( - 53.782),
|
||||
SIMDE_FLOAT16_VALUE( - 5.001), SIMDE_FLOAT16_VALUE( 46.595), SIMDE_FLOAT16_VALUE( 48.542), SIMDE_FLOAT16_VALUE( 64.443) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 92.715), SIMDE_FLOAT16_VALUE( 49.477), SIMDE_FLOAT16_VALUE( 85.205), SIMDE_FLOAT16_VALUE( 90.565),
|
||||
SIMDE_FLOAT16_VALUE( - 47.228), SIMDE_FLOAT16_VALUE( - 61.293), SIMDE_FLOAT16_VALUE( 80.419), SIMDE_FLOAT16_VALUE( 32.831) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 59.790), SIMDE_FLOAT16_VALUE( 90.991), SIMDE_FLOAT16_VALUE( 9.151), SIMDE_FLOAT16_VALUE( 81.903),
|
||||
SIMDE_FLOAT16_VALUE( 36.535), SIMDE_FLOAT16_VALUE( - 5.406), SIMDE_FLOAT16_VALUE( - 73.592), SIMDE_FLOAT16_VALUE( 52.041) },
|
||||
{ SIMDE_FLOAT16_VALUE( 92.715), SIMDE_FLOAT16_VALUE( - 59.790), SIMDE_FLOAT16_VALUE( 85.205), SIMDE_FLOAT16_VALUE( 9.151),
|
||||
SIMDE_FLOAT16_VALUE( - 47.228), SIMDE_FLOAT16_VALUE( 36.535), SIMDE_FLOAT16_VALUE( 80.419), SIMDE_FLOAT16_VALUE( - 73.592) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 5.048), SIMDE_FLOAT16_VALUE( - 15.367), SIMDE_FLOAT16_VALUE( - 85.673), SIMDE_FLOAT16_VALUE( 94.930),
|
||||
SIMDE_FLOAT16_VALUE( 82.348), SIMDE_FLOAT16_VALUE( - 3.141), SIMDE_FLOAT16_VALUE( 83.294), SIMDE_FLOAT16_VALUE( 25.936) },
|
||||
{ SIMDE_FLOAT16_VALUE( 96.385), SIMDE_FLOAT16_VALUE( - 79.579), SIMDE_FLOAT16_VALUE( - 4.256), SIMDE_FLOAT16_VALUE( - 34.022),
|
||||
SIMDE_FLOAT16_VALUE( 82.922), SIMDE_FLOAT16_VALUE( - 1.174), SIMDE_FLOAT16_VALUE( 40.213), SIMDE_FLOAT16_VALUE( 55.100) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 5.048), SIMDE_FLOAT16_VALUE( 96.385), SIMDE_FLOAT16_VALUE( - 85.673), SIMDE_FLOAT16_VALUE( - 4.256),
|
||||
SIMDE_FLOAT16_VALUE( 82.348), SIMDE_FLOAT16_VALUE( 82.922), SIMDE_FLOAT16_VALUE( 83.294), SIMDE_FLOAT16_VALUE( 40.213) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 19.062), SIMDE_FLOAT16_VALUE( 43.816), SIMDE_FLOAT16_VALUE( - 30.166), SIMDE_FLOAT16_VALUE( - 39.978),
|
||||
SIMDE_FLOAT16_VALUE( - 39.433), SIMDE_FLOAT16_VALUE( 11.691), SIMDE_FLOAT16_VALUE( 7.837), SIMDE_FLOAT16_VALUE( 17.290) },
|
||||
{ SIMDE_FLOAT16_VALUE( 8.433), SIMDE_FLOAT16_VALUE( 16.426), SIMDE_FLOAT16_VALUE( - 43.558), SIMDE_FLOAT16_VALUE( 96.327),
|
||||
SIMDE_FLOAT16_VALUE( - 25.953), SIMDE_FLOAT16_VALUE( - 22.456), SIMDE_FLOAT16_VALUE( - 81.824), SIMDE_FLOAT16_VALUE( 87.942) },
|
||||
{ SIMDE_FLOAT16_VALUE( 19.062), SIMDE_FLOAT16_VALUE( 8.433), SIMDE_FLOAT16_VALUE( - 30.166), SIMDE_FLOAT16_VALUE( - 43.558),
|
||||
SIMDE_FLOAT16_VALUE( - 39.433), SIMDE_FLOAT16_VALUE( - 25.953), SIMDE_FLOAT16_VALUE( 7.837), SIMDE_FLOAT16_VALUE( - 81.824) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( - 11.648), SIMDE_FLOAT16_VALUE( - 29.171), SIMDE_FLOAT16_VALUE( 80.053), SIMDE_FLOAT16_VALUE( - 68.578),
|
||||
SIMDE_FLOAT16_VALUE( - 48.654), SIMDE_FLOAT16_VALUE( - 99.755), SIMDE_FLOAT16_VALUE( - 90.352), SIMDE_FLOAT16_VALUE( 89.383) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 33.866), SIMDE_FLOAT16_VALUE( - 47.474), SIMDE_FLOAT16_VALUE( - 66.626), SIMDE_FLOAT16_VALUE( - 97.760),
|
||||
SIMDE_FLOAT16_VALUE( - 84.997), SIMDE_FLOAT16_VALUE( 67.434), SIMDE_FLOAT16_VALUE( - 97.087), SIMDE_FLOAT16_VALUE( - 32.962) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 11.648), SIMDE_FLOAT16_VALUE( - 33.866), SIMDE_FLOAT16_VALUE( 80.053), SIMDE_FLOAT16_VALUE( - 66.626),
|
||||
SIMDE_FLOAT16_VALUE( - 48.654), SIMDE_FLOAT16_VALUE( - 84.997), SIMDE_FLOAT16_VALUE( - 90.352), SIMDE_FLOAT16_VALUE( - 97.087) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 99.618), SIMDE_FLOAT16_VALUE( - 77.016), SIMDE_FLOAT16_VALUE( - 80.554), SIMDE_FLOAT16_VALUE( - 81.723),
|
||||
SIMDE_FLOAT16_VALUE( 10.169), SIMDE_FLOAT16_VALUE( 23.695), SIMDE_FLOAT16_VALUE( - 19.190), SIMDE_FLOAT16_VALUE( 95.941) },
|
||||
{ SIMDE_FLOAT16_VALUE( - 51.304), SIMDE_FLOAT16_VALUE( - 96.429), SIMDE_FLOAT16_VALUE( 13.144), SIMDE_FLOAT16_VALUE( - 7.245),
|
||||
SIMDE_FLOAT16_VALUE( 29.744), SIMDE_FLOAT16_VALUE( 29.133), SIMDE_FLOAT16_VALUE( 74.282), SIMDE_FLOAT16_VALUE( - 74.127) },
|
||||
{ SIMDE_FLOAT16_VALUE( 99.618), SIMDE_FLOAT16_VALUE( - 51.304), SIMDE_FLOAT16_VALUE( - 80.554), SIMDE_FLOAT16_VALUE( 13.144),
|
||||
SIMDE_FLOAT16_VALUE( 10.169), SIMDE_FLOAT16_VALUE( 29.744), SIMDE_FLOAT16_VALUE( - 19.190), SIMDE_FLOAT16_VALUE( 74.282) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 83.161), SIMDE_FLOAT16_VALUE( - 1.215), SIMDE_FLOAT16_VALUE( 78.312), SIMDE_FLOAT16_VALUE( - 84.448),
|
||||
SIMDE_FLOAT16_VALUE( 81.889), SIMDE_FLOAT16_VALUE( 3.516), SIMDE_FLOAT16_VALUE( 29.221), SIMDE_FLOAT16_VALUE( - 43.978) },
|
||||
{ SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE( - 80.158), SIMDE_FLOAT16_VALUE( - 16.019), SIMDE_FLOAT16_VALUE( 94.441),
|
||||
SIMDE_FLOAT16_VALUE( 76.241), SIMDE_FLOAT16_VALUE( 17.818), SIMDE_FLOAT16_VALUE( - 76.931), SIMDE_FLOAT16_VALUE( 91.708) },
|
||||
{ SIMDE_FLOAT16_VALUE( 83.161), SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE( 78.312), SIMDE_FLOAT16_VALUE( - 16.019),
|
||||
SIMDE_FLOAT16_VALUE( 81.889), SIMDE_FLOAT16_VALUE( 76.241), SIMDE_FLOAT16_VALUE( 29.221), SIMDE_FLOAT16_VALUE( - 76.931) } },
|
||||
};
|
||||
|
||||
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 b = simde_vld1q_f16(test_vec[i].b);
|
||||
simde_float16x8_t r = simde_vtrn1q_f16(a, b);
|
||||
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 b = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f);
|
||||
simde_float16x8_t r = simde_vtrn1q_f16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float32 a[4];
|
||||
simde_float32 b[4];
|
||||
|
|
@ -350,10 +597,25 @@ test_simde_vtrn1q_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_float32x4_t a = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
|
||||
simde_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
|
||||
simde_float32x4_t r = simde_vtrn1q_f32(a, b);
|
||||
|
||||
simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_f64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float64 a[2];
|
||||
simde_float64 b[2];
|
||||
|
|
@ -394,10 +656,25 @@ test_simde_vtrn1q_f64 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_float64x2_t a = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
|
||||
simde_float64x2_t b = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
|
||||
simde_float64x2_t r = simde_vtrn1q_f64(a, b);
|
||||
|
||||
simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_f64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int8_t a[16];
|
||||
int8_t b[16];
|
||||
|
|
@ -462,10 +739,25 @@ test_simde_vtrn1q_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
|
||||
simde_int8x16_t b = simde_test_arm_neon_random_i8x16();
|
||||
simde_int8x16_t r = simde_vtrn1q_s8(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_s16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int16_t a[8];
|
||||
int16_t b[8];
|
||||
|
|
@ -506,10 +798,25 @@ test_simde_vtrn1q_s16 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
|
||||
simde_int16x8_t b = simde_test_arm_neon_random_i16x8();
|
||||
simde_int16x8_t r = simde_vtrn1q_s16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_s32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int32_t a[4];
|
||||
int32_t b[4];
|
||||
|
|
@ -549,10 +856,25 @@ test_simde_vtrn1q_s32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
|
||||
simde_int32x4_t b = simde_test_arm_neon_random_i32x4();
|
||||
simde_int32x4_t r = simde_vtrn1q_s32(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_s64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int64_t a[2];
|
||||
int64_t b[2];
|
||||
|
|
@ -592,10 +914,25 @@ test_simde_vtrn1q_s64 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
|
||||
simde_int64x2_t b = simde_test_arm_neon_random_i64x2();
|
||||
simde_int64x2_t r = simde_vtrn1q_s64(a, b);
|
||||
|
||||
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_u8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint8_t a[16];
|
||||
uint8_t b[16];
|
||||
|
|
@ -660,10 +997,25 @@ test_simde_vtrn1q_u8 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
|
||||
simde_uint8x16_t b = simde_test_arm_neon_random_u8x16();
|
||||
simde_uint8x16_t r = simde_vtrn1q_u8(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_u16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint16_t a[8];
|
||||
uint16_t b[8];
|
||||
|
|
@ -703,10 +1055,25 @@ test_simde_vtrn1q_u16 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
|
||||
simde_uint16x8_t b = simde_test_arm_neon_random_u16x8();
|
||||
simde_uint16x8_t r = simde_vtrn1q_u16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint32_t a[4];
|
||||
uint32_t b[4];
|
||||
|
|
@ -747,10 +1114,25 @@ test_simde_vtrn1q_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
|
||||
simde_uint32x4_t b = simde_test_arm_neon_random_u32x4();
|
||||
simde_uint32x4_t r = simde_vtrn1q_u32(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_u64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint64_t a[2];
|
||||
uint64_t b[2];
|
||||
|
|
@ -790,9 +1172,340 @@ test_simde_vtrn1q_u64 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
|
||||
simde_uint64x2_t b = simde_test_arm_neon_random_u64x2();
|
||||
simde_uint64x2_t r = simde_vtrn1q_u64(a, b);
|
||||
|
||||
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_p8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_poly8_t a[8];
|
||||
simde_poly8_t b[8];
|
||||
simde_poly8_t r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY8_C(180), SIMDE_POLY8_C(234), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(184), SIMDE_POLY8_C(112), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 20) },
|
||||
{ SIMDE_POLY8_C( 30), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(166), SIMDE_POLY8_C(229), SIMDE_POLY8_C(128), SIMDE_POLY8_C(117) },
|
||||
{ SIMDE_POLY8_C(180), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(112), SIMDE_POLY8_C(166), SIMDE_POLY8_C(124), SIMDE_POLY8_C(128) } },
|
||||
{ { SIMDE_POLY8_C( 51), SIMDE_POLY8_C(233), SIMDE_POLY8_C(232), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(182), SIMDE_POLY8_C(252) },
|
||||
{ SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(212), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 12) },
|
||||
{ SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(232), SIMDE_POLY8_C(212), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 94) } },
|
||||
{ { SIMDE_POLY8_C( 28), SIMDE_POLY8_C(133), SIMDE_POLY8_C(196), SIMDE_POLY8_C(140), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(161), SIMDE_POLY8_C(204) },
|
||||
{ SIMDE_POLY8_C( 59), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(225), SIMDE_POLY8_C(225), SIMDE_POLY8_C(154), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 21) },
|
||||
{ SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(196), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(173), SIMDE_POLY8_C(225), SIMDE_POLY8_C(161), SIMDE_POLY8_C( 86) } },
|
||||
{ { SIMDE_POLY8_C(132), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(164) },
|
||||
{ SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(145), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(240), SIMDE_POLY8_C(171), SIMDE_POLY8_C(127) },
|
||||
{ SIMDE_POLY8_C(132), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(145), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(171) } },
|
||||
{ { SIMDE_POLY8_C(117), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 12), SIMDE_POLY8_C( 34), SIMDE_POLY8_C(176), SIMDE_POLY8_C(173), SIMDE_POLY8_C(238), SIMDE_POLY8_C(235) },
|
||||
{ SIMDE_POLY8_C(169), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(204), SIMDE_POLY8_C(138), SIMDE_POLY8_C(163), SIMDE_POLY8_C( 34), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 39) },
|
||||
{ SIMDE_POLY8_C(117), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(204), SIMDE_POLY8_C(176), SIMDE_POLY8_C(163), SIMDE_POLY8_C(238), SIMDE_POLY8_C(159) } },
|
||||
{ { SIMDE_POLY8_C( 97), SIMDE_POLY8_C(240), SIMDE_POLY8_C(136), SIMDE_POLY8_C(186), SIMDE_POLY8_C(247), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 62) },
|
||||
{ SIMDE_POLY8_C( 21), SIMDE_POLY8_C(240), SIMDE_POLY8_C(221), SIMDE_POLY8_C(120), SIMDE_POLY8_C(224), SIMDE_POLY8_C(136), SIMDE_POLY8_C(248), SIMDE_POLY8_C( 85) },
|
||||
{ SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(136), SIMDE_POLY8_C(221), SIMDE_POLY8_C(247), SIMDE_POLY8_C(224), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(248) } },
|
||||
{ { SIMDE_POLY8_C(248), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(120), SIMDE_POLY8_C(168), SIMDE_POLY8_C(177), SIMDE_POLY8_C(102), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 90) },
|
||||
{ SIMDE_POLY8_C(111), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(129), SIMDE_POLY8_C(132), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(226) },
|
||||
{ SIMDE_POLY8_C(248), SIMDE_POLY8_C(111), SIMDE_POLY8_C(120), SIMDE_POLY8_C(228), SIMDE_POLY8_C(177), SIMDE_POLY8_C(129), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 58) } },
|
||||
{ { SIMDE_POLY8_C(116), SIMDE_POLY8_C(194), SIMDE_POLY8_C(157), SIMDE_POLY8_C(108), SIMDE_POLY8_C(167), SIMDE_POLY8_C(252), SIMDE_POLY8_C(170), SIMDE_POLY8_C(188) },
|
||||
{ SIMDE_POLY8_C(236), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 8) },
|
||||
{ SIMDE_POLY8_C(116), SIMDE_POLY8_C(236), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 34) } },
|
||||
};
|
||||
|
||||
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 b = simde_vld1_p8(test_vec[i].b);
|
||||
simde_poly8x8_t r = simde_vtrn1_p8(a, b);
|
||||
|
||||
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 b = simde_test_arm_neon_random_p8x8();
|
||||
simde_poly8x8_t r = simde_vtrn1_p8(a, b);
|
||||
|
||||
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_p8x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1_p16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_poly16_t a[4];
|
||||
simde_poly16_t b[4];
|
||||
simde_poly16_t r[4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY16_C(60788), SIMDE_POLY16_C(40466), SIMDE_POLY16_C(30557), SIMDE_POLY16_C(47308) },
|
||||
{ SIMDE_POLY16_C(27512), SIMDE_POLY16_C( 3061), SIMDE_POLY16_C(41915), SIMDE_POLY16_C(15633) },
|
||||
{ SIMDE_POLY16_C(60788), SIMDE_POLY16_C(27512), SIMDE_POLY16_C(30557), SIMDE_POLY16_C(41915) } },
|
||||
{ { SIMDE_POLY16_C(31826), SIMDE_POLY16_C(40911), SIMDE_POLY16_C(11794), SIMDE_POLY16_C( 5983) },
|
||||
{ SIMDE_POLY16_C(15515), SIMDE_POLY16_C(15720), SIMDE_POLY16_C(44460), SIMDE_POLY16_C( 8198) },
|
||||
{ SIMDE_POLY16_C(31826), SIMDE_POLY16_C(15515), SIMDE_POLY16_C(11794), SIMDE_POLY16_C(44460) } },
|
||||
{ { SIMDE_POLY16_C( 6298), SIMDE_POLY16_C(63678), SIMDE_POLY16_C(35471), SIMDE_POLY16_C( 1968) },
|
||||
{ SIMDE_POLY16_C(42485), SIMDE_POLY16_C(45331), SIMDE_POLY16_C( 9289), SIMDE_POLY16_C(39918) },
|
||||
{ SIMDE_POLY16_C( 6298), SIMDE_POLY16_C(42485), SIMDE_POLY16_C(35471), SIMDE_POLY16_C( 9289) } },
|
||||
{ { SIMDE_POLY16_C(48544), SIMDE_POLY16_C(45627), SIMDE_POLY16_C(39659), SIMDE_POLY16_C(34762) },
|
||||
{ SIMDE_POLY16_C(13015), SIMDE_POLY16_C(33732), SIMDE_POLY16_C(51936), SIMDE_POLY16_C(31395) },
|
||||
{ SIMDE_POLY16_C(48544), SIMDE_POLY16_C(13015), SIMDE_POLY16_C(39659), SIMDE_POLY16_C(51936) } },
|
||||
{ { SIMDE_POLY16_C(25058), SIMDE_POLY16_C(29298), SIMDE_POLY16_C( 8940), SIMDE_POLY16_C(57721) },
|
||||
{ SIMDE_POLY16_C(36040), SIMDE_POLY16_C( 4498), SIMDE_POLY16_C(32944), SIMDE_POLY16_C(20908) },
|
||||
{ SIMDE_POLY16_C(25058), SIMDE_POLY16_C(36040), SIMDE_POLY16_C( 8940), SIMDE_POLY16_C(32944) } },
|
||||
{ { SIMDE_POLY16_C(59197), SIMDE_POLY16_C(10499), SIMDE_POLY16_C(52610), SIMDE_POLY16_C(22960) },
|
||||
{ SIMDE_POLY16_C(29696), SIMDE_POLY16_C(57564), SIMDE_POLY16_C(32575), SIMDE_POLY16_C( 8538) },
|
||||
{ SIMDE_POLY16_C(59197), SIMDE_POLY16_C(29696), SIMDE_POLY16_C(52610), SIMDE_POLY16_C(32575) } },
|
||||
{ { SIMDE_POLY16_C(52704), SIMDE_POLY16_C(52371), SIMDE_POLY16_C( 3567), SIMDE_POLY16_C(47022) },
|
||||
{ SIMDE_POLY16_C(16537), SIMDE_POLY16_C(19144), SIMDE_POLY16_C(30145), SIMDE_POLY16_C(65179) },
|
||||
{ SIMDE_POLY16_C(52704), SIMDE_POLY16_C(16537), SIMDE_POLY16_C( 3567), SIMDE_POLY16_C(30145) } },
|
||||
{ { SIMDE_POLY16_C(40540), SIMDE_POLY16_C(56871), SIMDE_POLY16_C(55148), SIMDE_POLY16_C(27703) },
|
||||
{ SIMDE_POLY16_C( 4940), SIMDE_POLY16_C(35660), SIMDE_POLY16_C(42642), SIMDE_POLY16_C(29612) },
|
||||
{ SIMDE_POLY16_C(40540), SIMDE_POLY16_C( 4940), SIMDE_POLY16_C(55148), SIMDE_POLY16_C(42642) } },
|
||||
};
|
||||
|
||||
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 b = simde_vld1_p16(test_vec[i].b);
|
||||
simde_poly16x4_t r = simde_vtrn1_p16(a, b);
|
||||
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 b = simde_test_arm_neon_random_p16x4();
|
||||
simde_poly16x4_t r = simde_vtrn1_p16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_p16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_p8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_poly8_t a[16];
|
||||
simde_poly8_t b[16];
|
||||
simde_poly8_t r[16];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY8_C( 32), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(121), SIMDE_POLY8_C(145), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(135),
|
||||
SIMDE_POLY8_C(225), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(200), SIMDE_POLY8_C(213), SIMDE_POLY8_C(147), SIMDE_POLY8_C(151) },
|
||||
{ SIMDE_POLY8_C(177), SIMDE_POLY8_C(122), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(245), SIMDE_POLY8_C(244), SIMDE_POLY8_C(140), SIMDE_POLY8_C(165),
|
||||
SIMDE_POLY8_C(180), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 12), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 45) },
|
||||
{ SIMDE_POLY8_C( 32), SIMDE_POLY8_C(177), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(147), SIMDE_POLY8_C(121), SIMDE_POLY8_C(245), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(140),
|
||||
SIMDE_POLY8_C(225), SIMDE_POLY8_C(180), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 53) } },
|
||||
{ { SIMDE_POLY8_C(196), SIMDE_POLY8_C(113), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(108), SIMDE_POLY8_C(196), SIMDE_POLY8_C(228),
|
||||
SIMDE_POLY8_C(146), SIMDE_POLY8_C(168), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(126), SIMDE_POLY8_C(207), SIMDE_POLY8_C(241), SIMDE_POLY8_C( 47) },
|
||||
{ SIMDE_POLY8_C( 73), SIMDE_POLY8_C(133), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(121), SIMDE_POLY8_C(251), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 45),
|
||||
SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(128), SIMDE_POLY8_C( 80) },
|
||||
{ SIMDE_POLY8_C(196), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(121), SIMDE_POLY8_C(196), SIMDE_POLY8_C(227),
|
||||
SIMDE_POLY8_C(146), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(126), SIMDE_POLY8_C(140), SIMDE_POLY8_C(241), SIMDE_POLY8_C(128) } },
|
||||
{ { SIMDE_POLY8_C(204), SIMDE_POLY8_C(191), SIMDE_POLY8_C(141), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(178), SIMDE_POLY8_C(189),
|
||||
SIMDE_POLY8_C(250), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(120), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 7) },
|
||||
{ SIMDE_POLY8_C(142), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 87),
|
||||
SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(171), SIMDE_POLY8_C(230), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(129) },
|
||||
{ SIMDE_POLY8_C(204), SIMDE_POLY8_C(142), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 52),
|
||||
SIMDE_POLY8_C(250), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(171), SIMDE_POLY8_C(189), SIMDE_POLY8_C(181), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 54) } },
|
||||
{ { SIMDE_POLY8_C(234), SIMDE_POLY8_C(195), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(210), SIMDE_POLY8_C( 14),
|
||||
SIMDE_POLY8_C(240), SIMDE_POLY8_C(234), SIMDE_POLY8_C(134), SIMDE_POLY8_C(174), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(181), SIMDE_POLY8_C(129) },
|
||||
{ SIMDE_POLY8_C( 67), SIMDE_POLY8_C(250), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(188), SIMDE_POLY8_C(171), SIMDE_POLY8_C(125),
|
||||
SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(203), SIMDE_POLY8_C(129), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(108) },
|
||||
{ SIMDE_POLY8_C(234), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(210), SIMDE_POLY8_C(171),
|
||||
SIMDE_POLY8_C(240), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(243), SIMDE_POLY8_C(129), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 76) } },
|
||||
{ { SIMDE_POLY8_C( 92), SIMDE_POLY8_C(155), SIMDE_POLY8_C(129), SIMDE_POLY8_C(113), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(127), SIMDE_POLY8_C(142),
|
||||
SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(241), SIMDE_POLY8_C(178), SIMDE_POLY8_C(118) },
|
||||
{ SIMDE_POLY8_C(235), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(246), SIMDE_POLY8_C(117), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 12),
|
||||
SIMDE_POLY8_C(203), SIMDE_POLY8_C(240), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(184), SIMDE_POLY8_C(230) },
|
||||
{ SIMDE_POLY8_C( 92), SIMDE_POLY8_C(235), SIMDE_POLY8_C(129), SIMDE_POLY8_C(202), SIMDE_POLY8_C(157), SIMDE_POLY8_C(246), SIMDE_POLY8_C(127), SIMDE_POLY8_C(140),
|
||||
SIMDE_POLY8_C( 62), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(137), SIMDE_POLY8_C(178), SIMDE_POLY8_C(184) } },
|
||||
{ { SIMDE_POLY8_C(190), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(142), SIMDE_POLY8_C(214), SIMDE_POLY8_C(234), SIMDE_POLY8_C(204),
|
||||
SIMDE_POLY8_C(220), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(175), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 2) },
|
||||
{ SIMDE_POLY8_C(233), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(223), SIMDE_POLY8_C(197), SIMDE_POLY8_C(158), SIMDE_POLY8_C(235), SIMDE_POLY8_C(144),
|
||||
SIMDE_POLY8_C(142), SIMDE_POLY8_C(194), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(229), SIMDE_POLY8_C(149), SIMDE_POLY8_C(253), SIMDE_POLY8_C(163) },
|
||||
{ SIMDE_POLY8_C(190), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(142), SIMDE_POLY8_C(197), SIMDE_POLY8_C(234), SIMDE_POLY8_C(235),
|
||||
SIMDE_POLY8_C(220), SIMDE_POLY8_C(142), SIMDE_POLY8_C(253), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(229), SIMDE_POLY8_C(134), SIMDE_POLY8_C(253) } },
|
||||
{ { SIMDE_POLY8_C(207), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 7),
|
||||
SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(213), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(190) },
|
||||
{ SIMDE_POLY8_C(238), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(157), SIMDE_POLY8_C(180), SIMDE_POLY8_C(216), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(102),
|
||||
SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(126), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(183), SIMDE_POLY8_C(123), SIMDE_POLY8_C(211), SIMDE_POLY8_C(134) },
|
||||
{ SIMDE_POLY8_C(207), SIMDE_POLY8_C(238), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 68),
|
||||
SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(126), SIMDE_POLY8_C(213), SIMDE_POLY8_C(183), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(211) } },
|
||||
{ { SIMDE_POLY8_C(208), SIMDE_POLY8_C(210), SIMDE_POLY8_C(228), SIMDE_POLY8_C(251), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(203),
|
||||
SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(200), SIMDE_POLY8_C(166) },
|
||||
{ SIMDE_POLY8_C( 85), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(238), SIMDE_POLY8_C(159), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 56),
|
||||
SIMDE_POLY8_C(192), SIMDE_POLY8_C( 18), SIMDE_POLY8_C(104), SIMDE_POLY8_C(119), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(254), SIMDE_POLY8_C( 94) },
|
||||
{ SIMDE_POLY8_C(208), SIMDE_POLY8_C( 85), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(188), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(148),
|
||||
SIMDE_POLY8_C( 52), SIMDE_POLY8_C(192), SIMDE_POLY8_C(242), SIMDE_POLY8_C(104), SIMDE_POLY8_C(184), SIMDE_POLY8_C(142), SIMDE_POLY8_C(200), SIMDE_POLY8_C(254) } },
|
||||
};
|
||||
|
||||
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 b = simde_vld1q_p8(test_vec[i].b);
|
||||
simde_poly8x16_t r = simde_vtrn1q_p8(a, b);
|
||||
|
||||
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 b = simde_test_arm_neon_random_p8x16();
|
||||
simde_poly8x16_t r = simde_vtrn1q_p8(a, b);
|
||||
|
||||
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_p8x16(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_p16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_poly16_t a[8];
|
||||
simde_poly16_t b[8];
|
||||
simde_poly16_t r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY16_C(14167), SIMDE_POLY16_C(21279), SIMDE_POLY16_C(48551), SIMDE_POLY16_C(14943), SIMDE_POLY16_C(56959), SIMDE_POLY16_C( 3699), SIMDE_POLY16_C(63440), SIMDE_POLY16_C(55030) },
|
||||
{ SIMDE_POLY16_C(40429), SIMDE_POLY16_C(42656), SIMDE_POLY16_C(10703), SIMDE_POLY16_C(50757), SIMDE_POLY16_C(39485), SIMDE_POLY16_C(24810), SIMDE_POLY16_C(45053), SIMDE_POLY16_C(22004) },
|
||||
{ SIMDE_POLY16_C(14167), SIMDE_POLY16_C(40429), SIMDE_POLY16_C(48551), SIMDE_POLY16_C(10703), SIMDE_POLY16_C(56959), SIMDE_POLY16_C(39485), SIMDE_POLY16_C(63440), SIMDE_POLY16_C(45053) } },
|
||||
{ { SIMDE_POLY16_C( 5094), SIMDE_POLY16_C(36264), SIMDE_POLY16_C( 2001), SIMDE_POLY16_C(20680), SIMDE_POLY16_C(15333), SIMDE_POLY16_C(46430), SIMDE_POLY16_C(21555), SIMDE_POLY16_C( 8331) },
|
||||
{ SIMDE_POLY16_C(11505), SIMDE_POLY16_C(49351), SIMDE_POLY16_C( 3157), SIMDE_POLY16_C(37510), SIMDE_POLY16_C(28839), SIMDE_POLY16_C(42226), SIMDE_POLY16_C(59167), SIMDE_POLY16_C( 1785) },
|
||||
{ SIMDE_POLY16_C( 5094), SIMDE_POLY16_C(11505), SIMDE_POLY16_C( 2001), SIMDE_POLY16_C( 3157), SIMDE_POLY16_C(15333), SIMDE_POLY16_C(28839), SIMDE_POLY16_C(21555), SIMDE_POLY16_C(59167) } },
|
||||
{ { SIMDE_POLY16_C(41466), SIMDE_POLY16_C(52115), SIMDE_POLY16_C(23464), SIMDE_POLY16_C(36124), SIMDE_POLY16_C(31383), SIMDE_POLY16_C(51778), SIMDE_POLY16_C(52943), SIMDE_POLY16_C(49386) },
|
||||
{ SIMDE_POLY16_C(45562), SIMDE_POLY16_C(20353), SIMDE_POLY16_C( 1982), SIMDE_POLY16_C(26082), SIMDE_POLY16_C(54392), SIMDE_POLY16_C(38665), SIMDE_POLY16_C( 955), SIMDE_POLY16_C(46749) },
|
||||
{ SIMDE_POLY16_C(41466), SIMDE_POLY16_C(45562), SIMDE_POLY16_C(23464), SIMDE_POLY16_C( 1982), SIMDE_POLY16_C(31383), SIMDE_POLY16_C(54392), SIMDE_POLY16_C(52943), SIMDE_POLY16_C( 955) } },
|
||||
{ { SIMDE_POLY16_C(12708), SIMDE_POLY16_C(19841), SIMDE_POLY16_C(40332), SIMDE_POLY16_C( 9178), SIMDE_POLY16_C( 7448), SIMDE_POLY16_C(59373), SIMDE_POLY16_C(55531), SIMDE_POLY16_C(58791) },
|
||||
{ SIMDE_POLY16_C(10377), SIMDE_POLY16_C(18228), SIMDE_POLY16_C( 5680), SIMDE_POLY16_C(43180), SIMDE_POLY16_C(46827), SIMDE_POLY16_C(42559), SIMDE_POLY16_C(56761), SIMDE_POLY16_C(23900) },
|
||||
{ SIMDE_POLY16_C(12708), SIMDE_POLY16_C(10377), SIMDE_POLY16_C(40332), SIMDE_POLY16_C( 5680), SIMDE_POLY16_C( 7448), SIMDE_POLY16_C(46827), SIMDE_POLY16_C(55531), SIMDE_POLY16_C(56761) } },
|
||||
{ { SIMDE_POLY16_C(56846), SIMDE_POLY16_C(39594), SIMDE_POLY16_C(34171), SIMDE_POLY16_C(37822), SIMDE_POLY16_C(43938), SIMDE_POLY16_C(36218), SIMDE_POLY16_C( 8835), SIMDE_POLY16_C( 3442) },
|
||||
{ SIMDE_POLY16_C(42570), SIMDE_POLY16_C(31316), SIMDE_POLY16_C( 445), SIMDE_POLY16_C(43042), SIMDE_POLY16_C(25271), SIMDE_POLY16_C(28750), SIMDE_POLY16_C(43839), SIMDE_POLY16_C(19917) },
|
||||
{ SIMDE_POLY16_C(56846), SIMDE_POLY16_C(42570), SIMDE_POLY16_C(34171), SIMDE_POLY16_C( 445), SIMDE_POLY16_C(43938), SIMDE_POLY16_C(25271), SIMDE_POLY16_C( 8835), SIMDE_POLY16_C(43839) } },
|
||||
{ { SIMDE_POLY16_C(30857), SIMDE_POLY16_C( 1255), SIMDE_POLY16_C(42493), SIMDE_POLY16_C(40856), SIMDE_POLY16_C( 4689), SIMDE_POLY16_C(54316), SIMDE_POLY16_C(40500), SIMDE_POLY16_C(32737) },
|
||||
{ SIMDE_POLY16_C(13892), SIMDE_POLY16_C( 505), SIMDE_POLY16_C( 7223), SIMDE_POLY16_C(61097), SIMDE_POLY16_C(63614), SIMDE_POLY16_C(48478), SIMDE_POLY16_C(11171), SIMDE_POLY16_C(11274) },
|
||||
{ SIMDE_POLY16_C(30857), SIMDE_POLY16_C(13892), SIMDE_POLY16_C(42493), SIMDE_POLY16_C( 7223), SIMDE_POLY16_C( 4689), SIMDE_POLY16_C(63614), SIMDE_POLY16_C(40500), SIMDE_POLY16_C(11171) } },
|
||||
{ { SIMDE_POLY16_C(61859), SIMDE_POLY16_C(41008), SIMDE_POLY16_C(51351), SIMDE_POLY16_C(59455), SIMDE_POLY16_C(27611), SIMDE_POLY16_C( 4028), SIMDE_POLY16_C(40457), SIMDE_POLY16_C(20110) },
|
||||
{ SIMDE_POLY16_C(35028), SIMDE_POLY16_C( 2895), SIMDE_POLY16_C(63908), SIMDE_POLY16_C( 8953), SIMDE_POLY16_C(22513), SIMDE_POLY16_C(38111), SIMDE_POLY16_C(59778), SIMDE_POLY16_C( 9920) },
|
||||
{ SIMDE_POLY16_C(61859), SIMDE_POLY16_C(35028), SIMDE_POLY16_C(51351), SIMDE_POLY16_C(63908), SIMDE_POLY16_C(27611), SIMDE_POLY16_C(22513), SIMDE_POLY16_C(40457), SIMDE_POLY16_C(59778) } },
|
||||
{ { SIMDE_POLY16_C(61658), SIMDE_POLY16_C(29126), SIMDE_POLY16_C( 1721), SIMDE_POLY16_C(37977), SIMDE_POLY16_C( 5745), SIMDE_POLY16_C(31651), SIMDE_POLY16_C(12980), SIMDE_POLY16_C(35017) },
|
||||
{ SIMDE_POLY16_C( 6330), SIMDE_POLY16_C(24211), SIMDE_POLY16_C(35857), SIMDE_POLY16_C( 640), SIMDE_POLY16_C(24547), SIMDE_POLY16_C(26006), SIMDE_POLY16_C(22088), SIMDE_POLY16_C( 8843) },
|
||||
{ SIMDE_POLY16_C(61658), SIMDE_POLY16_C( 6330), SIMDE_POLY16_C( 1721), SIMDE_POLY16_C(35857), SIMDE_POLY16_C( 5745), SIMDE_POLY16_C(24547), SIMDE_POLY16_C(12980), SIMDE_POLY16_C(22088) } },
|
||||
};
|
||||
|
||||
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 b = simde_vld1q_p16(test_vec[i].b);
|
||||
simde_poly16x8_t r = simde_vtrn1q_p16(a, b);
|
||||
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 b = simde_test_arm_neon_random_p16x8();
|
||||
simde_poly16x8_t r = simde_vtrn1q_p16(a, b);
|
||||
|
||||
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_p16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vtrn1q_p64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_poly64_t a[2];
|
||||
simde_poly64_t b[2];
|
||||
simde_poly64_t r[2];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_POLY64_C( 4815427970974768462), SIMDE_POLY64_C( 6946629186605919678) },
|
||||
{ SIMDE_POLY64_C(17577554379567712573), SIMDE_POLY64_C( 9507926976227586244) },
|
||||
{ SIMDE_POLY64_C( 4815427970974768462), SIMDE_POLY64_C(17577554379567712573) } },
|
||||
{ { SIMDE_POLY64_C(17783107680982229326), SIMDE_POLY64_C( 7694430944701500407) },
|
||||
{ SIMDE_POLY64_C(14946435657532704485), SIMDE_POLY64_C( 1392019949421056920) },
|
||||
{ SIMDE_POLY64_C(17783107680982229326), SIMDE_POLY64_C(14946435657532704485) } },
|
||||
{ { SIMDE_POLY64_C( 720685969029384403), SIMDE_POLY64_C(13170277731653498159) },
|
||||
{ SIMDE_POLY64_C( 4546836441613680191), SIMDE_POLY64_C(15944534928651032686) },
|
||||
{ SIMDE_POLY64_C( 720685969029384403), SIMDE_POLY64_C( 4546836441613680191) } },
|
||||
{ { SIMDE_POLY64_C( 8377513640867717158), SIMDE_POLY64_C( 3252891876890621085) },
|
||||
{ SIMDE_POLY64_C( 6754432899425457110), SIMDE_POLY64_C( 5553173804405016872) },
|
||||
{ SIMDE_POLY64_C( 8377513640867717158), SIMDE_POLY64_C( 6754432899425457110) } },
|
||||
{ { SIMDE_POLY64_C( 9111002919100414135), SIMDE_POLY64_C(12652601303620206972) },
|
||||
{ SIMDE_POLY64_C(14317480457102167653), SIMDE_POLY64_C(14926910591795282610) },
|
||||
{ SIMDE_POLY64_C( 9111002919100414135), SIMDE_POLY64_C(14317480457102167653) } },
|
||||
{ { SIMDE_POLY64_C(17465588781926821122), SIMDE_POLY64_C(14197020995446656893) },
|
||||
{ SIMDE_POLY64_C(14728401471583891713), SIMDE_POLY64_C( 7779348683327627021) },
|
||||
{ SIMDE_POLY64_C(17465588781926821122), SIMDE_POLY64_C(14728401471583891713) } },
|
||||
{ { SIMDE_POLY64_C( 8854554042291961977), SIMDE_POLY64_C( 3541753660244507904) },
|
||||
{ SIMDE_POLY64_C( 1724092549986008839), SIMDE_POLY64_C(15666108166636934036) },
|
||||
{ SIMDE_POLY64_C( 8854554042291961977), SIMDE_POLY64_C( 1724092549986008839) } },
|
||||
{ { SIMDE_POLY64_C( 7595788518996621554), SIMDE_POLY64_C( 1677572234304633318) },
|
||||
{ SIMDE_POLY64_C(16235800240466695983), SIMDE_POLY64_C(12894166098514972345) },
|
||||
{ SIMDE_POLY64_C( 7595788518996621554), SIMDE_POLY64_C(16235800240466695983) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_poly64x2_t a = simde_vld1q_p64(test_vec[i].a);
|
||||
simde_poly64x2_t b = simde_vld1q_p64(test_vec[i].b);
|
||||
simde_poly64x2_t r = simde_vtrn1q_p64(a, b);
|
||||
simde_test_arm_neon_assert_equal_p64x2(r, simde_vld1q_p64(test_vec[i].r));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 8 ; i++) {
|
||||
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
|
||||
simde_poly64x2_t b = simde_test_arm_neon_random_p64x2();
|
||||
simde_poly64x2_t r = simde_vtrn1q_p64(a, b);
|
||||
|
||||
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_p64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_p64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_BEGIN
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_s8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_s16)
|
||||
|
|
@ -801,6 +1514,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_u8)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_u32)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_f64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_s8)
|
||||
|
|
@ -811,6 +1525,12 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_u8)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_u32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_u64)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_p8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1_p16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_p8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_p16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vtrn1q_p64)
|
||||
SIMDE_TEST_FUNC_LIST_END
|
||||
|
||||
#include <test/arm/neon/test-neon-footer.h>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue