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,6 +3,53 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/recpe.h"
static int
test_simde_vrecpeh_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a;
simde_float16 r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE( 12.162),
SIMDE_FLOAT16_VALUE( 0.082) },
{ SIMDE_FLOAT16_VALUE( -8.396),
SIMDE_FLOAT16_VALUE( -0.119) },
{ SIMDE_FLOAT16_VALUE( 8.495),
SIMDE_FLOAT16_VALUE( 0.118) },
{ SIMDE_FLOAT16_VALUE( -3.825),
SIMDE_FLOAT16_VALUE( -0.261) },
{ SIMDE_FLOAT16_VALUE( -3.074),
SIMDE_FLOAT16_VALUE( -0.325) },
{ SIMDE_FLOAT16_VALUE( 2.898),
SIMDE_FLOAT16_VALUE( 0.345) },
{ SIMDE_FLOAT16_VALUE( -12.082),
SIMDE_FLOAT16_VALUE( -0.083) },
{ SIMDE_FLOAT16_VALUE( -7.771),
SIMDE_FLOAT16_VALUE( -0.129) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16_t a = test_vec[i].a;
simde_float16_t r = simde_vrecpeh_f16(a);
simde_assert_equal_f16(r, test_vec[i].r, 1);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float16_t a = simde_test_codegen_random_f16(-100.0f, 100.0f);
simde_float16_t r = simde_vrecpeh_f16(a);
simde_test_codegen_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vrecpes_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -97,6 +144,57 @@ test_simde_vrecped_f64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrecpe_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
simde_float16_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(-3.50), SIMDE_FLOAT16_VALUE(-3.90), SIMDE_FLOAT16_VALUE(5.70), SIMDE_FLOAT16_VALUE(-7.70) },
{ SIMDE_FLOAT16_VALUE(-0.29), SIMDE_FLOAT16_VALUE(-0.26), SIMDE_FLOAT16_VALUE(0.18), SIMDE_FLOAT16_VALUE(-0.13) } },
{ { SIMDE_FLOAT16_VALUE(3.70), SIMDE_FLOAT16_VALUE(3.40), SIMDE_FLOAT16_VALUE(-7.20), SIMDE_FLOAT16_VALUE(-7.50) },
{ SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(0.29), SIMDE_FLOAT16_VALUE(-0.14), SIMDE_FLOAT16_VALUE(-0.13) } },
{ { SIMDE_FLOAT16_VALUE(-9.70), SIMDE_FLOAT16_VALUE(7.30), SIMDE_FLOAT16_VALUE(7.80), SIMDE_FLOAT16_VALUE(8.90) },
{ SIMDE_FLOAT16_VALUE(-0.10), SIMDE_FLOAT16_VALUE(0.14), SIMDE_FLOAT16_VALUE(0.13), SIMDE_FLOAT16_VALUE(0.11) } },
{ { SIMDE_FLOAT16_VALUE(5.10), SIMDE_FLOAT16_VALUE(-8.90), SIMDE_FLOAT16_VALUE(-4.90), SIMDE_FLOAT16_VALUE(-1.50) },
{ SIMDE_FLOAT16_VALUE(0.20), SIMDE_FLOAT16_VALUE(-0.11), SIMDE_FLOAT16_VALUE(-0.20), SIMDE_FLOAT16_VALUE(-0.67) } },
{ { SIMDE_FLOAT16_VALUE(10.00), SIMDE_FLOAT16_VALUE(7.00), SIMDE_FLOAT16_VALUE(-0.20), SIMDE_FLOAT16_VALUE(-5.20) },
{ SIMDE_FLOAT16_VALUE(0.10), SIMDE_FLOAT16_VALUE(0.14), SIMDE_FLOAT16_VALUE(-5.00), SIMDE_FLOAT16_VALUE(-0.19) } },
{ { SIMDE_FLOAT16_VALUE(-6.40), SIMDE_FLOAT16_VALUE(2.40), SIMDE_FLOAT16_VALUE(8.90), SIMDE_FLOAT16_VALUE(-0.90) },
{ SIMDE_FLOAT16_VALUE(-0.16), SIMDE_FLOAT16_VALUE(0.42), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(-1.11) } },
{ { SIMDE_FLOAT16_VALUE(2.10), SIMDE_FLOAT16_VALUE(7.50), SIMDE_FLOAT16_VALUE(0.60), SIMDE_FLOAT16_VALUE(-2.50) },
{ SIMDE_FLOAT16_VALUE(0.48), SIMDE_FLOAT16_VALUE(0.13), SIMDE_FLOAT16_VALUE(1.67), SIMDE_FLOAT16_VALUE(-0.40) } },
{ { SIMDE_FLOAT16_VALUE(-3.50), SIMDE_FLOAT16_VALUE(-9.40), SIMDE_FLOAT16_VALUE(-3.00), SIMDE_FLOAT16_VALUE(7.00) },
{ SIMDE_FLOAT16_VALUE(-0.29), SIMDE_FLOAT16_VALUE(-0.11), SIMDE_FLOAT16_VALUE(-0.33), SIMDE_FLOAT16_VALUE(0.14) } },
{ { SIMDE_FLOAT16_VALUE(-6.10), SIMDE_FLOAT16_VALUE(9.00), SIMDE_FLOAT16_VALUE(-2.00), SIMDE_FLOAT16_VALUE(2.20) },
{ SIMDE_FLOAT16_VALUE(-0.16), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(-0.50), SIMDE_FLOAT16_VALUE(0.45) } },
{ { SIMDE_FLOAT16_VALUE(4.00), SIMDE_FLOAT16_VALUE(4.20), SIMDE_FLOAT16_VALUE(-4.90), SIMDE_FLOAT16_VALUE(1.60) },
{ SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(-0.20), SIMDE_FLOAT16_VALUE(0.63) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16x4_t a = simde_vld1_f16(test_vec[i].a);
simde_float16x4_t r = simde_vrecpe_f16(a);
simde_test_arm_neon_assert_equal_f16x4(r, simde_vld1_f16(test_vec[i].r), 1);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float16x4_t a = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f);
simde_float16x4_t r = simde_vrecpe_f16(a);
simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_f16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vrecpe_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -284,6 +382,56 @@ test_simde_vrecpeq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrecpeq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
simde_float16_t r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(7.50), SIMDE_FLOAT16_VALUE(-9.30), SIMDE_FLOAT16_VALUE(7.50), SIMDE_FLOAT16_VALUE(-3.10), SIMDE_FLOAT16_VALUE(5.00), SIMDE_FLOAT16_VALUE(-3.50), SIMDE_FLOAT16_VALUE(-3.70), SIMDE_FLOAT16_VALUE(9.10) },
{ SIMDE_FLOAT16_VALUE(0.13), SIMDE_FLOAT16_VALUE(-0.11), SIMDE_FLOAT16_VALUE(0.13), SIMDE_FLOAT16_VALUE(-0.32), SIMDE_FLOAT16_VALUE(0.20), SIMDE_FLOAT16_VALUE(-0.29), SIMDE_FLOAT16_VALUE(-0.27), SIMDE_FLOAT16_VALUE(0.11) } },
{ { SIMDE_FLOAT16_VALUE(5.50), SIMDE_FLOAT16_VALUE(-9.60), SIMDE_FLOAT16_VALUE(3.80), SIMDE_FLOAT16_VALUE(9.10), SIMDE_FLOAT16_VALUE(4.80), SIMDE_FLOAT16_VALUE(-9.30), SIMDE_FLOAT16_VALUE(6.60), SIMDE_FLOAT16_VALUE(-5.20) },
{ SIMDE_FLOAT16_VALUE(0.18), SIMDE_FLOAT16_VALUE(-0.10), SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(0.21), SIMDE_FLOAT16_VALUE(-0.11), SIMDE_FLOAT16_VALUE(0.15), SIMDE_FLOAT16_VALUE(-0.19) } },
{ { SIMDE_FLOAT16_VALUE(-4.20), SIMDE_FLOAT16_VALUE(-3.20), SIMDE_FLOAT16_VALUE(7.60), SIMDE_FLOAT16_VALUE(5.30), SIMDE_FLOAT16_VALUE(2.60), SIMDE_FLOAT16_VALUE(-3.40), SIMDE_FLOAT16_VALUE(9.40), SIMDE_FLOAT16_VALUE(-8.60) },
{ SIMDE_FLOAT16_VALUE(-0.24), SIMDE_FLOAT16_VALUE(-0.31), SIMDE_FLOAT16_VALUE(0.13), SIMDE_FLOAT16_VALUE(0.19), SIMDE_FLOAT16_VALUE(0.38), SIMDE_FLOAT16_VALUE(-0.29), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(-0.12) } },
{ { SIMDE_FLOAT16_VALUE(-3.40), SIMDE_FLOAT16_VALUE(-0.70), SIMDE_FLOAT16_VALUE(1.50), SIMDE_FLOAT16_VALUE(4.50), SIMDE_FLOAT16_VALUE(8.60), SIMDE_FLOAT16_VALUE(6.60), SIMDE_FLOAT16_VALUE(4.30), SIMDE_FLOAT16_VALUE(9.10) },
{ SIMDE_FLOAT16_VALUE(-0.29), SIMDE_FLOAT16_VALUE(-1.43), SIMDE_FLOAT16_VALUE(0.67), SIMDE_FLOAT16_VALUE(0.22), SIMDE_FLOAT16_VALUE(0.12), SIMDE_FLOAT16_VALUE(0.15), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.11) } },
{ { SIMDE_FLOAT16_VALUE(-5.80), SIMDE_FLOAT16_VALUE(6.00), SIMDE_FLOAT16_VALUE(-9.00), SIMDE_FLOAT16_VALUE(1.00), SIMDE_FLOAT16_VALUE(-2.70), SIMDE_FLOAT16_VALUE(4.90), SIMDE_FLOAT16_VALUE(0.30), SIMDE_FLOAT16_VALUE(-9.30) },
{ SIMDE_FLOAT16_VALUE(-0.17), SIMDE_FLOAT16_VALUE(0.17), SIMDE_FLOAT16_VALUE(-0.11), SIMDE_FLOAT16_VALUE(1.00), SIMDE_FLOAT16_VALUE(-0.37), SIMDE_FLOAT16_VALUE(0.20), SIMDE_FLOAT16_VALUE(3.33), SIMDE_FLOAT16_VALUE(-0.11) } },
{ { SIMDE_FLOAT16_VALUE(-2.70), SIMDE_FLOAT16_VALUE(8.80), SIMDE_FLOAT16_VALUE(-6.10), SIMDE_FLOAT16_VALUE(6.70), SIMDE_FLOAT16_VALUE(-3.90), SIMDE_FLOAT16_VALUE(8.40), SIMDE_FLOAT16_VALUE(4.40), SIMDE_FLOAT16_VALUE(4.10) },
{ SIMDE_FLOAT16_VALUE(-0.37), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(-0.16), SIMDE_FLOAT16_VALUE(0.15), SIMDE_FLOAT16_VALUE(-0.26), SIMDE_FLOAT16_VALUE(0.12), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.24) } },
{ { SIMDE_FLOAT16_VALUE(-1.40), SIMDE_FLOAT16_VALUE(-9.20), SIMDE_FLOAT16_VALUE(9.00), SIMDE_FLOAT16_VALUE(7.20), SIMDE_FLOAT16_VALUE(-4.30), SIMDE_FLOAT16_VALUE(8.60), SIMDE_FLOAT16_VALUE(1.70), SIMDE_FLOAT16_VALUE(6.70) },
{ SIMDE_FLOAT16_VALUE(-0.71), SIMDE_FLOAT16_VALUE(-0.11), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(0.14), SIMDE_FLOAT16_VALUE(-0.23), SIMDE_FLOAT16_VALUE(0.12), SIMDE_FLOAT16_VALUE(0.59), SIMDE_FLOAT16_VALUE(0.15) } },
{ { SIMDE_FLOAT16_VALUE(-7.20), SIMDE_FLOAT16_VALUE(1.00), SIMDE_FLOAT16_VALUE(-3.10), SIMDE_FLOAT16_VALUE(6.00), SIMDE_FLOAT16_VALUE(1.70), SIMDE_FLOAT16_VALUE(7.20), SIMDE_FLOAT16_VALUE(-9.80), SIMDE_FLOAT16_VALUE(9.90) },
{ SIMDE_FLOAT16_VALUE(-0.14), SIMDE_FLOAT16_VALUE(1.00), SIMDE_FLOAT16_VALUE(-0.32), SIMDE_FLOAT16_VALUE(0.17), SIMDE_FLOAT16_VALUE(0.59), SIMDE_FLOAT16_VALUE(0.14), SIMDE_FLOAT16_VALUE(-0.10), SIMDE_FLOAT16_VALUE(0.10) } },
{ { SIMDE_FLOAT16_VALUE(1.40), SIMDE_FLOAT16_VALUE(-4.00), SIMDE_FLOAT16_VALUE(-6.20), SIMDE_FLOAT16_VALUE(6.00), SIMDE_FLOAT16_VALUE(6.90), SIMDE_FLOAT16_VALUE(2.40), SIMDE_FLOAT16_VALUE(6.60), SIMDE_FLOAT16_VALUE(3.00) },
{ SIMDE_FLOAT16_VALUE(0.71), SIMDE_FLOAT16_VALUE(-0.25), SIMDE_FLOAT16_VALUE(-0.16), SIMDE_FLOAT16_VALUE(0.17), SIMDE_FLOAT16_VALUE(0.14), SIMDE_FLOAT16_VALUE(0.42), SIMDE_FLOAT16_VALUE(0.15), SIMDE_FLOAT16_VALUE(0.33) } },
{ { SIMDE_FLOAT16_VALUE(-0.70), SIMDE_FLOAT16_VALUE(-0.40), SIMDE_FLOAT16_VALUE(9.50), SIMDE_FLOAT16_VALUE(-4.70), SIMDE_FLOAT16_VALUE(7.10), SIMDE_FLOAT16_VALUE(4.30), SIMDE_FLOAT16_VALUE(3.00), SIMDE_FLOAT16_VALUE(-7.70) },
{ SIMDE_FLOAT16_VALUE(-1.43), SIMDE_FLOAT16_VALUE(-2.50), SIMDE_FLOAT16_VALUE(0.11), SIMDE_FLOAT16_VALUE(-0.21), SIMDE_FLOAT16_VALUE(0.14), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.33), SIMDE_FLOAT16_VALUE(-0.13) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16x8_t a = simde_vld1q_f16(test_vec[i].a);
simde_float16x8_t r = simde_vrecpeq_f16(a);
simde_test_arm_neon_assert_equal_f16x8(r, simde_vld1q_f16(test_vec[i].r), 1);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float16x8_t a = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f);
simde_float16x8_t r = simde_vrecpeq_f16(a);
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vrecpe_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -379,9 +527,11 @@ test_simde_vrecpeq_u32 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpeh_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpes_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecped_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpe_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpe_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpe_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpeq_f64)
@ -389,6 +539,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vrecpe_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpeq_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpeq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrecpeq_f16)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"