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:
Ryan Henry 2026-09-24 14:30:19 -06:00
parent e4e666f459
commit 3f10e05176
912 changed files with 224964 additions and 11502 deletions

View file

@ -3,8 +3,56 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/pmax.h"
static int
test_simde_vpmax_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( 441.00), SIMDE_FLOAT16_VALUE( 684.00), SIMDE_FLOAT16_VALUE( 861.50), SIMDE_FLOAT16_VALUE( 563.00) },
{ SIMDE_FLOAT16_VALUE( 98.06), SIMDE_FLOAT16_VALUE( 15.31), SIMDE_FLOAT16_VALUE( 896.00), SIMDE_FLOAT16_VALUE( -786.50) },
{ SIMDE_FLOAT16_VALUE( 684.00), SIMDE_FLOAT16_VALUE( 861.50), SIMDE_FLOAT16_VALUE( 98.06), SIMDE_FLOAT16_VALUE( 896.00) } },
{ { SIMDE_FLOAT16_VALUE( -6.45), SIMDE_FLOAT16_VALUE( -848.00), SIMDE_FLOAT16_VALUE( 29.20), SIMDE_FLOAT16_VALUE( 815.50) },
{ SIMDE_FLOAT16_VALUE( -856.00), SIMDE_FLOAT16_VALUE( -672.50), SIMDE_FLOAT16_VALUE( 267.25), SIMDE_FLOAT16_VALUE( 274.50) },
{ SIMDE_FLOAT16_VALUE( -6.45), SIMDE_FLOAT16_VALUE( 815.50), SIMDE_FLOAT16_VALUE( -672.50), SIMDE_FLOAT16_VALUE( 274.50) } },
{ { SIMDE_FLOAT16_VALUE( 909.00), SIMDE_FLOAT16_VALUE( 9.56), SIMDE_FLOAT16_VALUE( -475.75), SIMDE_FLOAT16_VALUE( 425.25) },
{ SIMDE_FLOAT16_VALUE( 269.75), SIMDE_FLOAT16_VALUE( -294.75), SIMDE_FLOAT16_VALUE( 991.00), SIMDE_FLOAT16_VALUE( -99.19) },
{ SIMDE_FLOAT16_VALUE( 909.00), SIMDE_FLOAT16_VALUE( 425.25), SIMDE_FLOAT16_VALUE( 269.75), SIMDE_FLOAT16_VALUE( 991.00) } },
{ { SIMDE_FLOAT16_VALUE( 121.69), SIMDE_FLOAT16_VALUE( 73.81), SIMDE_FLOAT16_VALUE( 14.28), SIMDE_FLOAT16_VALUE( 132.25) },
{ SIMDE_FLOAT16_VALUE( 545.00), SIMDE_FLOAT16_VALUE( 967.50), SIMDE_FLOAT16_VALUE( 819.50), SIMDE_FLOAT16_VALUE( 6.60) },
{ SIMDE_FLOAT16_VALUE( 121.69), SIMDE_FLOAT16_VALUE( 132.25), SIMDE_FLOAT16_VALUE( 967.50), SIMDE_FLOAT16_VALUE( 819.50) } }
};
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_vpmax_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_vpmax_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_vpmax_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
simde_float32 b[2];
@ -45,10 +93,25 @@ test_simde_vpmax_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_vpmax_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_vpmax_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
int8_t b[8];
@ -89,10 +152,25 @@ test_simde_vpmax_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_vpmax_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_vpmax_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
int16_t b[4];
@ -133,10 +211,25 @@ test_simde_vpmax_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_vpmax_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_vpmax_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
int32_t b[2];
@ -177,10 +270,25 @@ test_simde_vpmax_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_vpmax_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_vpmax_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
uint8_t b[8];
@ -221,10 +329,25 @@ test_simde_vpmax_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_vpmax_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_vpmax_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
uint16_t b[4];
@ -264,10 +387,25 @@ test_simde_vpmax_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_vpmax_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_vpmax_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
uint32_t b[2];
@ -307,10 +445,108 @@ test_simde_vpmax_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_vpmax_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_vpmaxq_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( 29.303), SIMDE_FLOAT16_VALUE( -15.473), SIMDE_FLOAT16_VALUE( 1.006), SIMDE_FLOAT16_VALUE( -21.583),
SIMDE_FLOAT16_VALUE( 22.970), SIMDE_FLOAT16_VALUE( -5.299), SIMDE_FLOAT16_VALUE( -14.205), SIMDE_FLOAT16_VALUE( -15.176) },
{ SIMDE_FLOAT16_VALUE( 17.990), SIMDE_FLOAT16_VALUE( 11.602), SIMDE_FLOAT16_VALUE( -20.495), SIMDE_FLOAT16_VALUE( -8.082),
SIMDE_FLOAT16_VALUE( -27.004), SIMDE_FLOAT16_VALUE( -11.946), SIMDE_FLOAT16_VALUE( 25.843), SIMDE_FLOAT16_VALUE( 6.779) },
{ SIMDE_FLOAT16_VALUE( 29.303), SIMDE_FLOAT16_VALUE( 1.006), SIMDE_FLOAT16_VALUE( 22.970), SIMDE_FLOAT16_VALUE( -14.205),
SIMDE_FLOAT16_VALUE( 17.990), SIMDE_FLOAT16_VALUE( -8.082), SIMDE_FLOAT16_VALUE( -11.946), SIMDE_FLOAT16_VALUE( 25.843) } },
{ { SIMDE_FLOAT16_VALUE( -25.501), SIMDE_FLOAT16_VALUE( -24.669), SIMDE_FLOAT16_VALUE( -29.118), SIMDE_FLOAT16_VALUE( -5.219),
SIMDE_FLOAT16_VALUE( 28.104), SIMDE_FLOAT16_VALUE( 0.654), SIMDE_FLOAT16_VALUE( -27.808), SIMDE_FLOAT16_VALUE( -18.743) },
{ SIMDE_FLOAT16_VALUE( -20.813), SIMDE_FLOAT16_VALUE( -26.402), SIMDE_FLOAT16_VALUE( 13.606), SIMDE_FLOAT16_VALUE( 10.476),
SIMDE_FLOAT16_VALUE( 29.613), SIMDE_FLOAT16_VALUE( 19.062), SIMDE_FLOAT16_VALUE( 27.849), SIMDE_FLOAT16_VALUE( 9.536) },
{ SIMDE_FLOAT16_VALUE( -24.669), SIMDE_FLOAT16_VALUE( -5.219), SIMDE_FLOAT16_VALUE( 28.104), SIMDE_FLOAT16_VALUE( -18.743),
SIMDE_FLOAT16_VALUE( -20.813), SIMDE_FLOAT16_VALUE( 13.606), SIMDE_FLOAT16_VALUE( 29.613), SIMDE_FLOAT16_VALUE( 27.849) } },
{ { SIMDE_FLOAT16_VALUE( 16.289), SIMDE_FLOAT16_VALUE( -19.184), SIMDE_FLOAT16_VALUE( -22.617), SIMDE_FLOAT16_VALUE( -15.017),
SIMDE_FLOAT16_VALUE( -27.645), SIMDE_FLOAT16_VALUE( 29.031), SIMDE_FLOAT16_VALUE( 26.470), SIMDE_FLOAT16_VALUE( -26.000) },
{ SIMDE_FLOAT16_VALUE( -12.853), SIMDE_FLOAT16_VALUE( -3.232), SIMDE_FLOAT16_VALUE( 4.567), SIMDE_FLOAT16_VALUE( -26.692),
SIMDE_FLOAT16_VALUE( 24.562), SIMDE_FLOAT16_VALUE( -29.933), SIMDE_FLOAT16_VALUE( 21.969), SIMDE_FLOAT16_VALUE( 7.783) },
{ SIMDE_FLOAT16_VALUE( 16.289), SIMDE_FLOAT16_VALUE( -15.017), SIMDE_FLOAT16_VALUE( 29.031), SIMDE_FLOAT16_VALUE( 26.470),
SIMDE_FLOAT16_VALUE( -3.232), SIMDE_FLOAT16_VALUE( 4.567), SIMDE_FLOAT16_VALUE( 24.562), SIMDE_FLOAT16_VALUE( 21.969) } },
{ { SIMDE_FLOAT16_VALUE( 0.999), SIMDE_FLOAT16_VALUE( -29.129), SIMDE_FLOAT16_VALUE( 27.988), SIMDE_FLOAT16_VALUE( -19.096),
SIMDE_FLOAT16_VALUE( 13.789), SIMDE_FLOAT16_VALUE( 8.234), SIMDE_FLOAT16_VALUE( 24.437), SIMDE_FLOAT16_VALUE( 21.721) },
{ SIMDE_FLOAT16_VALUE( 26.278), SIMDE_FLOAT16_VALUE( 16.547), SIMDE_FLOAT16_VALUE( 10.034), SIMDE_FLOAT16_VALUE( -25.632),
SIMDE_FLOAT16_VALUE( -21.337), SIMDE_FLOAT16_VALUE( 22.587), SIMDE_FLOAT16_VALUE( 2.778), SIMDE_FLOAT16_VALUE( 4.957) },
{ SIMDE_FLOAT16_VALUE( 0.999), SIMDE_FLOAT16_VALUE( 27.988), SIMDE_FLOAT16_VALUE( 13.789), SIMDE_FLOAT16_VALUE( 24.437),
SIMDE_FLOAT16_VALUE( 26.278), SIMDE_FLOAT16_VALUE( 10.034), SIMDE_FLOAT16_VALUE( 22.587), SIMDE_FLOAT16_VALUE( 4.957) } },
{ { SIMDE_FLOAT16_VALUE( -13.860), SIMDE_FLOAT16_VALUE( 26.535), SIMDE_FLOAT16_VALUE( 8.539), SIMDE_FLOAT16_VALUE( 12.470),
SIMDE_FLOAT16_VALUE( -24.032), SIMDE_FLOAT16_VALUE( 21.137), SIMDE_FLOAT16_VALUE( 14.371), SIMDE_FLOAT16_VALUE( 5.670) },
{ SIMDE_FLOAT16_VALUE( 26.851), SIMDE_FLOAT16_VALUE( -13.040), SIMDE_FLOAT16_VALUE( 3.688), SIMDE_FLOAT16_VALUE( -9.966),
SIMDE_FLOAT16_VALUE( 6.679), SIMDE_FLOAT16_VALUE( -25.728), SIMDE_FLOAT16_VALUE( -16.073), SIMDE_FLOAT16_VALUE( 1.650) },
{ SIMDE_FLOAT16_VALUE( 26.535), SIMDE_FLOAT16_VALUE( 12.470), SIMDE_FLOAT16_VALUE( 21.137), SIMDE_FLOAT16_VALUE( 14.371),
SIMDE_FLOAT16_VALUE( 26.851), SIMDE_FLOAT16_VALUE( 3.688), SIMDE_FLOAT16_VALUE( 6.679), SIMDE_FLOAT16_VALUE( 1.650) } },
{ { SIMDE_FLOAT16_VALUE( -19.296), SIMDE_FLOAT16_VALUE( -18.339), SIMDE_FLOAT16_VALUE( -13.951), SIMDE_FLOAT16_VALUE( 23.736),
SIMDE_FLOAT16_VALUE( 21.581), SIMDE_FLOAT16_VALUE( 4.304), SIMDE_FLOAT16_VALUE( 1.910), SIMDE_FLOAT16_VALUE( 10.399) },
{ SIMDE_FLOAT16_VALUE( 25.274), SIMDE_FLOAT16_VALUE( -28.803), SIMDE_FLOAT16_VALUE( -20.109), SIMDE_FLOAT16_VALUE( -22.088),
SIMDE_FLOAT16_VALUE( 20.071), SIMDE_FLOAT16_VALUE( 15.667), SIMDE_FLOAT16_VALUE( -24.469), SIMDE_FLOAT16_VALUE( 18.492) },
{ SIMDE_FLOAT16_VALUE( -18.339), SIMDE_FLOAT16_VALUE( 23.736), SIMDE_FLOAT16_VALUE( 21.581), SIMDE_FLOAT16_VALUE( 10.399),
SIMDE_FLOAT16_VALUE( 25.274), SIMDE_FLOAT16_VALUE( -20.109), SIMDE_FLOAT16_VALUE( 20.071), SIMDE_FLOAT16_VALUE( 18.492) } },
{ { SIMDE_FLOAT16_VALUE( -3.637), SIMDE_FLOAT16_VALUE( 3.472), SIMDE_FLOAT16_VALUE( 14.644), SIMDE_FLOAT16_VALUE( -16.247),
SIMDE_FLOAT16_VALUE( 1.467), SIMDE_FLOAT16_VALUE( -9.306), SIMDE_FLOAT16_VALUE( 9.252), SIMDE_FLOAT16_VALUE( 18.437) },
{ SIMDE_FLOAT16_VALUE( -2.944), SIMDE_FLOAT16_VALUE( -1.079), SIMDE_FLOAT16_VALUE( -18.689), SIMDE_FLOAT16_VALUE( 24.492),
SIMDE_FLOAT16_VALUE( -25.720), SIMDE_FLOAT16_VALUE( 26.654), SIMDE_FLOAT16_VALUE( 12.162), SIMDE_FLOAT16_VALUE( -11.528) },
{ SIMDE_FLOAT16_VALUE( 3.472), SIMDE_FLOAT16_VALUE( 14.644), SIMDE_FLOAT16_VALUE( 1.467), SIMDE_FLOAT16_VALUE( 18.437),
SIMDE_FLOAT16_VALUE( -1.079), SIMDE_FLOAT16_VALUE( 24.492), SIMDE_FLOAT16_VALUE( 26.654), SIMDE_FLOAT16_VALUE( 12.162) } },
{ { SIMDE_FLOAT16_VALUE( 7.740), SIMDE_FLOAT16_VALUE( 19.127), SIMDE_FLOAT16_VALUE( 11.877), SIMDE_FLOAT16_VALUE( -25.942),
SIMDE_FLOAT16_VALUE( 7.124), SIMDE_FLOAT16_VALUE( 12.554), SIMDE_FLOAT16_VALUE( 28.406), SIMDE_FLOAT16_VALUE( -5.830) },
{ SIMDE_FLOAT16_VALUE( -22.509), SIMDE_FLOAT16_VALUE( -22.856), SIMDE_FLOAT16_VALUE( 9.728), SIMDE_FLOAT16_VALUE( -17.513),
SIMDE_FLOAT16_VALUE( 0.430), SIMDE_FLOAT16_VALUE( 18.796), SIMDE_FLOAT16_VALUE( -17.154), SIMDE_FLOAT16_VALUE( -2.826) },
{ SIMDE_FLOAT16_VALUE( 19.127), SIMDE_FLOAT16_VALUE( 11.877), SIMDE_FLOAT16_VALUE( 12.554), SIMDE_FLOAT16_VALUE( 28.406),
SIMDE_FLOAT16_VALUE( -22.509), SIMDE_FLOAT16_VALUE( 9.728), SIMDE_FLOAT16_VALUE( 18.796), SIMDE_FLOAT16_VALUE( -2.826) } },
};
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_vpmaxq_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_vpmaxq_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_vpmaxq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
simde_float32 b[4];
@ -350,10 +586,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
simde_float64 b[2];
@ -394,10 +645,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
int8_t b[16];
@ -462,10 +728,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
int16_t b[8];
@ -506,10 +787,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
int32_t b[4];
@ -549,10 +845,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
uint8_t b[16];
@ -617,10 +928,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
uint16_t b[8];
@ -660,10 +986,25 @@ test_simde_vpmaxq_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_vpmaxq_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_vpmaxq_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
uint32_t b[4];
@ -704,6 +1045,20 @@ test_simde_vpmaxq_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_vpmaxq_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
@ -797,6 +1152,7 @@ test_simde_vpmaxqd_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_s16)
@ -805,6 +1161,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmax_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmaxq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmaxq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmaxq_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vpmaxq_s8)