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
396
thirdparty/simde/test/arm/neon/padd.c
vendored
396
thirdparty/simde/test/arm/neon/padd.c
vendored
|
|
@ -3,8 +3,65 @@
|
|||
#include "test-neon.h"
|
||||
#include "../../../simde/arm/neon/padd.h"
|
||||
|
||||
static int
|
||||
test_simde_vpadd_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( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) },
|
||||
{ SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) },
|
||||
{ SIMDE_FLOAT16_VALUE(-158.28), SIMDE_FLOAT16_VALUE(-1193.50), SIMDE_FLOAT16_VALUE(-168.66), SIMDE_FLOAT16_VALUE(945.31) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -200.50) },
|
||||
{ SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -407.50), SIMDE_FLOAT16_VALUE( -450.75) },
|
||||
{ SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 972.50) },
|
||||
{ SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( 871.50), SIMDE_FLOAT16_VALUE( -919.50) },
|
||||
{ SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 488.00), SIMDE_FLOAT16_VALUE( 129.00), SIMDE_FLOAT16_VALUE( -858.50), SIMDE_FLOAT16_VALUE( 112.56) },
|
||||
{ SIMDE_FLOAT16_VALUE( 58.66), SIMDE_FLOAT16_VALUE( -133.88), SIMDE_FLOAT16_VALUE( 879.50), SIMDE_FLOAT16_VALUE( -920.50) },
|
||||
{ SIMDE_FLOAT16_VALUE( 617.00), SIMDE_FLOAT16_VALUE( -746.00), SIMDE_FLOAT16_VALUE( -75.25), SIMDE_FLOAT16_VALUE( -41.00) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 32.59), SIMDE_FLOAT16_VALUE( -750.50), SIMDE_FLOAT16_VALUE( -510.75), SIMDE_FLOAT16_VALUE( 239.50) },
|
||||
{ SIMDE_FLOAT16_VALUE( -487.50), SIMDE_FLOAT16_VALUE( -177.50), SIMDE_FLOAT16_VALUE( 853.50), SIMDE_FLOAT16_VALUE( 23.77) },
|
||||
{ SIMDE_FLOAT16_VALUE( -718.00), SIMDE_FLOAT16_VALUE( -271.25), SIMDE_FLOAT16_VALUE( -665.00), SIMDE_FLOAT16_VALUE( 877.50) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -537.50), SIMDE_FLOAT16_VALUE( -992.00), SIMDE_FLOAT16_VALUE( -964.50), SIMDE_FLOAT16_VALUE( 707.00) },
|
||||
{ SIMDE_FLOAT16_VALUE( -592.00), SIMDE_FLOAT16_VALUE( 386.00), SIMDE_FLOAT16_VALUE( 305.50), SIMDE_FLOAT16_VALUE( 496.00) },
|
||||
{ SIMDE_FLOAT16_VALUE( -1530.00), SIMDE_FLOAT16_VALUE( -257.50), SIMDE_FLOAT16_VALUE( -206.00), SIMDE_FLOAT16_VALUE( 801.50) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -180.50), SIMDE_FLOAT16_VALUE( -413.75), SIMDE_FLOAT16_VALUE( -555.50), SIMDE_FLOAT16_VALUE( -758.50) },
|
||||
{ SIMDE_FLOAT16_VALUE( 375.50), SIMDE_FLOAT16_VALUE( -972.00), SIMDE_FLOAT16_VALUE( 948.50), SIMDE_FLOAT16_VALUE( 619.00) },
|
||||
{ SIMDE_FLOAT16_VALUE( -594.00), SIMDE_FLOAT16_VALUE( -1314.00), SIMDE_FLOAT16_VALUE( -596.50), SIMDE_FLOAT16_VALUE( 1568.00) } }
|
||||
};
|
||||
|
||||
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_vpadd_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_vpadd_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_vpadd_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float32 a[2];
|
||||
simde_float32 b[2];
|
||||
|
|
@ -45,10 +102,25 @@ test_simde_vpadd_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_vpadd_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_vpadd_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int8_t a[8];
|
||||
int8_t b[8];
|
||||
|
|
@ -89,10 +161,25 @@ test_simde_vpadd_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_vpadd_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_vpadd_s16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int16_t a[4];
|
||||
int16_t b[4];
|
||||
|
|
@ -133,10 +220,25 @@ test_simde_vpadd_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_vpadd_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_vpadd_s32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int32_t a[2];
|
||||
int32_t b[2];
|
||||
|
|
@ -177,10 +279,25 @@ test_simde_vpadd_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_vpadd_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_vpadd_u8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint8_t a[16];
|
||||
uint8_t b[16];
|
||||
|
|
@ -221,10 +338,25 @@ test_simde_vpadd_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_vpadd_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_vpadd_u16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint16_t a[4];
|
||||
uint16_t b[4];
|
||||
|
|
@ -264,10 +396,25 @@ test_simde_vpadd_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_vpadd_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_vpadd_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint32_t a[2];
|
||||
uint32_t b[2];
|
||||
|
|
@ -307,10 +454,108 @@ test_simde_vpadd_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_vpadd_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_vpaddq_f16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float16 a[8];
|
||||
simde_float16 b[8];
|
||||
simde_float16 r[8];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT16_VALUE( 4.517), SIMDE_FLOAT16_VALUE( 7.762), SIMDE_FLOAT16_VALUE( 11.032), SIMDE_FLOAT16_VALUE( 7.890),
|
||||
SIMDE_FLOAT16_VALUE( 14.791), SIMDE_FLOAT16_VALUE( 4.657), SIMDE_FLOAT16_VALUE( 10.785), SIMDE_FLOAT16_VALUE( 8.311) },
|
||||
{ SIMDE_FLOAT16_VALUE( -10.653), SIMDE_FLOAT16_VALUE( 2.967), SIMDE_FLOAT16_VALUE( -11.261), SIMDE_FLOAT16_VALUE( 11.597),
|
||||
SIMDE_FLOAT16_VALUE( -14.411), SIMDE_FLOAT16_VALUE( -1.069), SIMDE_FLOAT16_VALUE( -12.095), SIMDE_FLOAT16_VALUE( -8.498) },
|
||||
{ SIMDE_FLOAT16_VALUE( 12.279), SIMDE_FLOAT16_VALUE( 18.922), SIMDE_FLOAT16_VALUE( 19.448), SIMDE_FLOAT16_VALUE( 19.096),
|
||||
SIMDE_FLOAT16_VALUE( -7.686), SIMDE_FLOAT16_VALUE( 0.336), SIMDE_FLOAT16_VALUE( -15.480), SIMDE_FLOAT16_VALUE( -20.593) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 9.117), SIMDE_FLOAT16_VALUE( -11.361), SIMDE_FLOAT16_VALUE( 6.088), SIMDE_FLOAT16_VALUE( -6.660),
|
||||
SIMDE_FLOAT16_VALUE( 9.922), SIMDE_FLOAT16_VALUE( 1.435), SIMDE_FLOAT16_VALUE( -5.778), SIMDE_FLOAT16_VALUE( -6.871) },
|
||||
{ SIMDE_FLOAT16_VALUE( -10.081), SIMDE_FLOAT16_VALUE( 5.191), SIMDE_FLOAT16_VALUE( -10.231), SIMDE_FLOAT16_VALUE( 13.438),
|
||||
SIMDE_FLOAT16_VALUE( 12.632), SIMDE_FLOAT16_VALUE( -10.540), SIMDE_FLOAT16_VALUE( -1.602), SIMDE_FLOAT16_VALUE( 4.886) },
|
||||
{ SIMDE_FLOAT16_VALUE( -2.244), SIMDE_FLOAT16_VALUE( -0.572), SIMDE_FLOAT16_VALUE( 11.357), SIMDE_FLOAT16_VALUE( -12.649),
|
||||
SIMDE_FLOAT16_VALUE( -4.890), SIMDE_FLOAT16_VALUE( 3.207), SIMDE_FLOAT16_VALUE( 2.092), SIMDE_FLOAT16_VALUE( 3.284) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -5.241), SIMDE_FLOAT16_VALUE( 10.357), SIMDE_FLOAT16_VALUE( 12.266), SIMDE_FLOAT16_VALUE( 1.479),
|
||||
SIMDE_FLOAT16_VALUE( 13.141), SIMDE_FLOAT16_VALUE( -0.792), SIMDE_FLOAT16_VALUE( 2.378), SIMDE_FLOAT16_VALUE( 4.368) },
|
||||
{ SIMDE_FLOAT16_VALUE( -7.648), SIMDE_FLOAT16_VALUE( 6.779), SIMDE_FLOAT16_VALUE( 3.813), SIMDE_FLOAT16_VALUE( -2.521),
|
||||
SIMDE_FLOAT16_VALUE( 13.688), SIMDE_FLOAT16_VALUE( -2.971), SIMDE_FLOAT16_VALUE( 13.412), SIMDE_FLOAT16_VALUE( 10.076) },
|
||||
{ SIMDE_FLOAT16_VALUE( 5.116), SIMDE_FLOAT16_VALUE( 13.745), SIMDE_FLOAT16_VALUE( 12.349), SIMDE_FLOAT16_VALUE( 6.746),
|
||||
SIMDE_FLOAT16_VALUE( -0.869), SIMDE_FLOAT16_VALUE( 1.292), SIMDE_FLOAT16_VALUE( 10.717), SIMDE_FLOAT16_VALUE( 23.488) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 8.807), SIMDE_FLOAT16_VALUE( 12.204), SIMDE_FLOAT16_VALUE( -2.012), SIMDE_FLOAT16_VALUE( 4.510),
|
||||
SIMDE_FLOAT16_VALUE( -6.403), SIMDE_FLOAT16_VALUE( 0.297), SIMDE_FLOAT16_VALUE( 5.211), SIMDE_FLOAT16_VALUE( -13.505) },
|
||||
{ SIMDE_FLOAT16_VALUE( 3.754), SIMDE_FLOAT16_VALUE( -13.306), SIMDE_FLOAT16_VALUE( -8.695), SIMDE_FLOAT16_VALUE( -0.671),
|
||||
SIMDE_FLOAT16_VALUE( -2.528), SIMDE_FLOAT16_VALUE( 8.668), SIMDE_FLOAT16_VALUE( 9.983), SIMDE_FLOAT16_VALUE( 12.867) },
|
||||
{ SIMDE_FLOAT16_VALUE( 21.011), SIMDE_FLOAT16_VALUE( 2.498), SIMDE_FLOAT16_VALUE( -6.106), SIMDE_FLOAT16_VALUE( -8.294),
|
||||
SIMDE_FLOAT16_VALUE( -9.552), SIMDE_FLOAT16_VALUE( -9.366), SIMDE_FLOAT16_VALUE( 6.140), SIMDE_FLOAT16_VALUE( 22.850) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -2.065), SIMDE_FLOAT16_VALUE( -0.269), SIMDE_FLOAT16_VALUE( -10.355), SIMDE_FLOAT16_VALUE( 0.897),
|
||||
SIMDE_FLOAT16_VALUE( 7.554), SIMDE_FLOAT16_VALUE( -12.463), SIMDE_FLOAT16_VALUE( 2.427), SIMDE_FLOAT16_VALUE( 1.260) },
|
||||
{ SIMDE_FLOAT16_VALUE( 14.216), SIMDE_FLOAT16_VALUE( -7.207), SIMDE_FLOAT16_VALUE( -6.253), SIMDE_FLOAT16_VALUE( 5.138),
|
||||
SIMDE_FLOAT16_VALUE( 2.588), SIMDE_FLOAT16_VALUE( -12.986), SIMDE_FLOAT16_VALUE( 10.042), SIMDE_FLOAT16_VALUE( 2.705) },
|
||||
{ SIMDE_FLOAT16_VALUE( -2.334), SIMDE_FLOAT16_VALUE( -9.458), SIMDE_FLOAT16_VALUE( -4.909), SIMDE_FLOAT16_VALUE( 3.687),
|
||||
SIMDE_FLOAT16_VALUE( 7.009), SIMDE_FLOAT16_VALUE( -1.115), SIMDE_FLOAT16_VALUE( -10.398), SIMDE_FLOAT16_VALUE( 12.747) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -1.567), SIMDE_FLOAT16_VALUE( -8.622), SIMDE_FLOAT16_VALUE( -13.166), SIMDE_FLOAT16_VALUE( -9.757),
|
||||
SIMDE_FLOAT16_VALUE( -3.865), SIMDE_FLOAT16_VALUE( -0.755), SIMDE_FLOAT16_VALUE( -12.178), SIMDE_FLOAT16_VALUE( -8.354) },
|
||||
{ SIMDE_FLOAT16_VALUE( -11.621), SIMDE_FLOAT16_VALUE( 0.853), SIMDE_FLOAT16_VALUE( -6.108), SIMDE_FLOAT16_VALUE( 12.675),
|
||||
SIMDE_FLOAT16_VALUE( 11.730), SIMDE_FLOAT16_VALUE( -4.661), SIMDE_FLOAT16_VALUE( -6.564), SIMDE_FLOAT16_VALUE( -14.729) },
|
||||
{ SIMDE_FLOAT16_VALUE( -10.189), SIMDE_FLOAT16_VALUE( -22.923), SIMDE_FLOAT16_VALUE( -4.620), SIMDE_FLOAT16_VALUE( -20.532),
|
||||
SIMDE_FLOAT16_VALUE( -10.768), SIMDE_FLOAT16_VALUE( 6.567), SIMDE_FLOAT16_VALUE( 7.069), SIMDE_FLOAT16_VALUE( -21.293) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( -1.335), SIMDE_FLOAT16_VALUE( -13.783), SIMDE_FLOAT16_VALUE( -1.457), SIMDE_FLOAT16_VALUE( -14.303),
|
||||
SIMDE_FLOAT16_VALUE( 11.517), SIMDE_FLOAT16_VALUE( 9.676), SIMDE_FLOAT16_VALUE( 13.285), SIMDE_FLOAT16_VALUE( -13.303) },
|
||||
{ SIMDE_FLOAT16_VALUE( -11.891), SIMDE_FLOAT16_VALUE( -6.653), SIMDE_FLOAT16_VALUE( 1.167), SIMDE_FLOAT16_VALUE( -11.185),
|
||||
SIMDE_FLOAT16_VALUE( -1.890), SIMDE_FLOAT16_VALUE( 2.194), SIMDE_FLOAT16_VALUE( -2.764), SIMDE_FLOAT16_VALUE( 8.339) },
|
||||
{ SIMDE_FLOAT16_VALUE( -15.118), SIMDE_FLOAT16_VALUE( -15.760), SIMDE_FLOAT16_VALUE( 21.193), SIMDE_FLOAT16_VALUE( -0.018),
|
||||
SIMDE_FLOAT16_VALUE( -18.544), SIMDE_FLOAT16_VALUE( -10.018), SIMDE_FLOAT16_VALUE( 0.304), SIMDE_FLOAT16_VALUE( 5.575) } },
|
||||
{ { SIMDE_FLOAT16_VALUE( 5.421), SIMDE_FLOAT16_VALUE( -3.674), SIMDE_FLOAT16_VALUE( 6.240), SIMDE_FLOAT16_VALUE( 5.002),
|
||||
SIMDE_FLOAT16_VALUE( 14.105), SIMDE_FLOAT16_VALUE( -9.096), SIMDE_FLOAT16_VALUE( 3.433), SIMDE_FLOAT16_VALUE( -14.067) },
|
||||
{ SIMDE_FLOAT16_VALUE( 10.973), SIMDE_FLOAT16_VALUE( 11.168), SIMDE_FLOAT16_VALUE( -14.657), SIMDE_FLOAT16_VALUE( 2.140),
|
||||
SIMDE_FLOAT16_VALUE( -9.101), SIMDE_FLOAT16_VALUE( -14.379), SIMDE_FLOAT16_VALUE( -9.564), SIMDE_FLOAT16_VALUE( 7.497) },
|
||||
{ SIMDE_FLOAT16_VALUE( 1.747), SIMDE_FLOAT16_VALUE( 11.242), SIMDE_FLOAT16_VALUE( 5.009), SIMDE_FLOAT16_VALUE( -10.634),
|
||||
SIMDE_FLOAT16_VALUE( 22.141), SIMDE_FLOAT16_VALUE( -12.517), SIMDE_FLOAT16_VALUE( -23.480), SIMDE_FLOAT16_VALUE( -2.067) } },
|
||||
};
|
||||
|
||||
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_vpaddq_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_vpaddq_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_vpaddq_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float32 a[4];
|
||||
simde_float32 b[4];
|
||||
|
|
@ -350,10 +595,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_f64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float64 a[2];
|
||||
simde_float64 b[2];
|
||||
|
|
@ -394,10 +654,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_s8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int8_t a[16];
|
||||
int8_t b[16];
|
||||
|
|
@ -462,10 +737,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_s16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int16_t a[8];
|
||||
int16_t b[8];
|
||||
|
|
@ -506,10 +796,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_s32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int32_t a[4];
|
||||
int32_t b[4];
|
||||
|
|
@ -549,10 +854,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_s64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
int64_t a[2];
|
||||
int64_t b[2];
|
||||
|
|
@ -592,10 +912,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_u8 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint8_t a[16];
|
||||
uint8_t b[16];
|
||||
|
|
@ -660,10 +995,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_u16 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint16_t a[8];
|
||||
uint16_t b[8];
|
||||
|
|
@ -703,10 +1053,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint32_t a[4];
|
||||
uint32_t b[4];
|
||||
|
|
@ -747,10 +1112,25 @@ test_simde_vpaddq_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_vpaddq_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_vpaddq_u64 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
uint64_t a[2];
|
||||
uint64_t b[2];
|
||||
|
|
@ -790,6 +1170,20 @@ test_simde_vpaddq_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_vpaddq_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
|
||||
|
|
@ -973,6 +1367,7 @@ test_simde_vpadds_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
}
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_BEGIN
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_s8)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_s16)
|
||||
|
|
@ -981,6 +1376,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_u8)
|
|||
SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_u16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpadd_u32)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpaddq_f16)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpaddq_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpaddq_f64)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vpaddq_s8)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue