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

@ -4,6 +4,44 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/rsqrte.h"
static int
test_simde_vrsqrteh_f16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t a;
simde_float16_t r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE(5.50),
SIMDE_FLOAT16_VALUE(0.43) },
{ SIMDE_FLOAT16_VALUE(1.00),
SIMDE_FLOAT16_VALUE(1.00) },
{ SIMDE_FLOAT16_VALUE(9.20),
SIMDE_FLOAT16_VALUE(0.33) },
{ SIMDE_FLOAT16_VALUE(8.40),
SIMDE_FLOAT16_VALUE(0.35) },
{ SIMDE_FLOAT16_VALUE(19.59),
SIMDE_FLOAT16_VALUE(0.23) },
{ SIMDE_FLOAT16_VALUE(11.80),
SIMDE_FLOAT16_VALUE(0.29) },
{ SIMDE_FLOAT16_VALUE(7.50),
SIMDE_FLOAT16_VALUE(0.37) },
{ SIMDE_FLOAT16_VALUE(13.90),
SIMDE_FLOAT16_VALUE(0.27) },
{ SIMDE_FLOAT16_VALUE(11.50),
SIMDE_FLOAT16_VALUE(0.29) },
{ SIMDE_FLOAT16_VALUE(17.41),
SIMDE_FLOAT16_VALUE(0.24) },
};
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_vrsqrteh_f16(a);
simde_assert_equal_f16(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_vrsqrtes_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -96,6 +134,44 @@ test_simde_vrsqrted_f64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrsqrte_f16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t a[4];
simde_float16_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(15.80), SIMDE_FLOAT16_VALUE(5.01), SIMDE_FLOAT16_VALUE(5.52) },
{ SIMDE_FLOAT16_VALUE(1.92), SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.45), SIMDE_FLOAT16_VALUE(0.43) } },
{ { SIMDE_FLOAT16_VALUE(7.54), SIMDE_FLOAT16_VALUE(6.66), SIMDE_FLOAT16_VALUE(6.05), SIMDE_FLOAT16_VALUE(16.09) },
{ SIMDE_FLOAT16_VALUE(0.36), SIMDE_FLOAT16_VALUE(0.39), SIMDE_FLOAT16_VALUE(0.41), SIMDE_FLOAT16_VALUE(0.25) } },
{ { SIMDE_FLOAT16_VALUE(19.90), SIMDE_FLOAT16_VALUE(2.34), SIMDE_FLOAT16_VALUE(3.67), SIMDE_FLOAT16_VALUE(3.92) },
{ SIMDE_FLOAT16_VALUE(0.22), SIMDE_FLOAT16_VALUE(0.65), SIMDE_FLOAT16_VALUE(0.52), SIMDE_FLOAT16_VALUE(0.51) } },
{ { SIMDE_FLOAT16_VALUE(14.50), SIMDE_FLOAT16_VALUE(16.47), SIMDE_FLOAT16_VALUE(11.05), SIMDE_FLOAT16_VALUE(4.20) },
{ SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.30), SIMDE_FLOAT16_VALUE(0.49) } },
{ { SIMDE_FLOAT16_VALUE(18.15), SIMDE_FLOAT16_VALUE(1.15), SIMDE_FLOAT16_VALUE(2.20), SIMDE_FLOAT16_VALUE(3.21) },
{ SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.93), SIMDE_FLOAT16_VALUE(0.67), SIMDE_FLOAT16_VALUE(0.56) } },
{ { SIMDE_FLOAT16_VALUE(16.58), SIMDE_FLOAT16_VALUE(18.76), SIMDE_FLOAT16_VALUE(12.15), SIMDE_FLOAT16_VALUE(18.22) },
{ SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.29), SIMDE_FLOAT16_VALUE(0.23) } },
{ { SIMDE_FLOAT16_VALUE(17.57), SIMDE_FLOAT16_VALUE(0.46), SIMDE_FLOAT16_VALUE(15.00), SIMDE_FLOAT16_VALUE(2.88) },
{ SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(1.47), SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.59) } },
{ { SIMDE_FLOAT16_VALUE(4.86), SIMDE_FLOAT16_VALUE(8.30), SIMDE_FLOAT16_VALUE(8.66), SIMDE_FLOAT16_VALUE(4.23) },
{ SIMDE_FLOAT16_VALUE(0.45), SIMDE_FLOAT16_VALUE(0.35), SIMDE_FLOAT16_VALUE(0.34), SIMDE_FLOAT16_VALUE(0.49) } },
{ { SIMDE_FLOAT16_VALUE(8.89), SIMDE_FLOAT16_VALUE(6.56), SIMDE_FLOAT16_VALUE(4.22), SIMDE_FLOAT16_VALUE(17.29) },
{ SIMDE_FLOAT16_VALUE(0.34), SIMDE_FLOAT16_VALUE(0.39), SIMDE_FLOAT16_VALUE(0.49), SIMDE_FLOAT16_VALUE(0.24) } },
{ { SIMDE_FLOAT16_VALUE(9.95), SIMDE_FLOAT16_VALUE(6.08), SIMDE_FLOAT16_VALUE(7.59), SIMDE_FLOAT16_VALUE(0.41) },
{ SIMDE_FLOAT16_VALUE(0.32), SIMDE_FLOAT16_VALUE(0.41), SIMDE_FLOAT16_VALUE(0.36), SIMDE_FLOAT16_VALUE(1.55) } },
};
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_vrsqrte_f16(a);
simde_test_arm_neon_assert_equal_f16x4(r, simde_vld1_f16(test_vec[i].r), 1);
}
return 0;
}
static int
test_simde_vrsqrte_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -234,6 +310,43 @@ test_simde_vrsqrte_u32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrsqrteq_f16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t a[8];
simde_float16_t r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(3.00), SIMDE_FLOAT16_VALUE(13.00), SIMDE_FLOAT16_VALUE(17.80), SIMDE_FLOAT16_VALUE(3.50), SIMDE_FLOAT16_VALUE(13.20), SIMDE_FLOAT16_VALUE(3.80), SIMDE_FLOAT16_VALUE(9.30), SIMDE_FLOAT16_VALUE(12.70) },
{ SIMDE_FLOAT16_VALUE(0.58), SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.53), SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.51), SIMDE_FLOAT16_VALUE(0.33), SIMDE_FLOAT16_VALUE(0.28) } },
{ { SIMDE_FLOAT16_VALUE(1.20), SIMDE_FLOAT16_VALUE(16.09), SIMDE_FLOAT16_VALUE(16.91), SIMDE_FLOAT16_VALUE(3.50), SIMDE_FLOAT16_VALUE(19.91), SIMDE_FLOAT16_VALUE(15.40), SIMDE_FLOAT16_VALUE(13.90), SIMDE_FLOAT16_VALUE(15.00) },
{ SIMDE_FLOAT16_VALUE(0.91), SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.53), SIMDE_FLOAT16_VALUE(0.22), SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(0.26) } },
{ { SIMDE_FLOAT16_VALUE(3.40), SIMDE_FLOAT16_VALUE(14.60), SIMDE_FLOAT16_VALUE(6.90), SIMDE_FLOAT16_VALUE(18.00), SIMDE_FLOAT16_VALUE(6.00), SIMDE_FLOAT16_VALUE(9.00), SIMDE_FLOAT16_VALUE(19.91), SIMDE_FLOAT16_VALUE(1.50) },
{ SIMDE_FLOAT16_VALUE(0.54), SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.38), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.41), SIMDE_FLOAT16_VALUE(0.33), SIMDE_FLOAT16_VALUE(0.22), SIMDE_FLOAT16_VALUE(0.82) } },
{ { SIMDE_FLOAT16_VALUE(18.20), SIMDE_FLOAT16_VALUE(7.10), SIMDE_FLOAT16_VALUE(6.50), SIMDE_FLOAT16_VALUE(2.20), SIMDE_FLOAT16_VALUE(9.40), SIMDE_FLOAT16_VALUE(13.00), SIMDE_FLOAT16_VALUE(13.40), SIMDE_FLOAT16_VALUE(9.40) },
{ SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.38), SIMDE_FLOAT16_VALUE(0.39), SIMDE_FLOAT16_VALUE(0.67), SIMDE_FLOAT16_VALUE(0.33), SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(0.33) } },
{ { SIMDE_FLOAT16_VALUE(12.80), SIMDE_FLOAT16_VALUE(14.40), SIMDE_FLOAT16_VALUE(19.09), SIMDE_FLOAT16_VALUE(14.60), SIMDE_FLOAT16_VALUE(4.20), SIMDE_FLOAT16_VALUE(5.30), SIMDE_FLOAT16_VALUE(15.90), SIMDE_FLOAT16_VALUE(3.60) },
{ SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.49), SIMDE_FLOAT16_VALUE(0.43), SIMDE_FLOAT16_VALUE(0.25), SIMDE_FLOAT16_VALUE(0.53) } },
{ { SIMDE_FLOAT16_VALUE(19.70), SIMDE_FLOAT16_VALUE(19.80), SIMDE_FLOAT16_VALUE(8.10), SIMDE_FLOAT16_VALUE(11.90), SIMDE_FLOAT16_VALUE(4.90), SIMDE_FLOAT16_VALUE(14.00), SIMDE_FLOAT16_VALUE(12.60), SIMDE_FLOAT16_VALUE(14.70) },
{ SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.22), SIMDE_FLOAT16_VALUE(0.35), SIMDE_FLOAT16_VALUE(0.29), SIMDE_FLOAT16_VALUE(0.45), SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.26) } },
{ { SIMDE_FLOAT16_VALUE(13.90), SIMDE_FLOAT16_VALUE(3.00), SIMDE_FLOAT16_VALUE(19.59), SIMDE_FLOAT16_VALUE(12.30), SIMDE_FLOAT16_VALUE(10.60), SIMDE_FLOAT16_VALUE(2.70), SIMDE_FLOAT16_VALUE(15.00), SIMDE_FLOAT16_VALUE(5.30) },
{ SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(0.58), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.29), SIMDE_FLOAT16_VALUE(0.31), SIMDE_FLOAT16_VALUE(0.61), SIMDE_FLOAT16_VALUE(0.26), SIMDE_FLOAT16_VALUE(0.43) } },
{ { SIMDE_FLOAT16_VALUE(7.60), SIMDE_FLOAT16_VALUE(13.20), SIMDE_FLOAT16_VALUE(14.20), SIMDE_FLOAT16_VALUE(17.59), SIMDE_FLOAT16_VALUE(16.91), SIMDE_FLOAT16_VALUE(4.80), SIMDE_FLOAT16_VALUE(4.70), SIMDE_FLOAT16_VALUE(14.50) },
{ SIMDE_FLOAT16_VALUE(0.36), SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.27), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.46), SIMDE_FLOAT16_VALUE(0.46), SIMDE_FLOAT16_VALUE(0.26) } },
{ { SIMDE_FLOAT16_VALUE(17.80), SIMDE_FLOAT16_VALUE(5.80), SIMDE_FLOAT16_VALUE(1.60), SIMDE_FLOAT16_VALUE(5.50), SIMDE_FLOAT16_VALUE(11.30), SIMDE_FLOAT16_VALUE(8.20), SIMDE_FLOAT16_VALUE(10.10), SIMDE_FLOAT16_VALUE(11.90) },
{ SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.42), SIMDE_FLOAT16_VALUE(0.79), SIMDE_FLOAT16_VALUE(0.43), SIMDE_FLOAT16_VALUE(0.30), SIMDE_FLOAT16_VALUE(0.35), SIMDE_FLOAT16_VALUE(0.31), SIMDE_FLOAT16_VALUE(0.29) } },
{ { SIMDE_FLOAT16_VALUE(0.90), SIMDE_FLOAT16_VALUE(19.41), SIMDE_FLOAT16_VALUE(3.70), SIMDE_FLOAT16_VALUE(17.59), SIMDE_FLOAT16_VALUE(13.00), SIMDE_FLOAT16_VALUE(9.90), SIMDE_FLOAT16_VALUE(9.90), SIMDE_FLOAT16_VALUE(13.80) },
{ SIMDE_FLOAT16_VALUE(1.05), SIMDE_FLOAT16_VALUE(0.23), SIMDE_FLOAT16_VALUE(0.52), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(0.28), SIMDE_FLOAT16_VALUE(0.32), SIMDE_FLOAT16_VALUE(0.32), SIMDE_FLOAT16_VALUE(0.27) } },
};
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_vrsqrteq_f16(a);
simde_test_arm_neon_assert_equal_f16x8(r, simde_vld1q_f16(test_vec[i].r), 1);
}
return 0;
}
static int
test_simde_vrsqrteq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -372,13 +485,16 @@ test_simde_vrsqrteq_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrteh_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrtes_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrted_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrte_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrte_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrte_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrte_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrteq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrteq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrteq_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrsqrteq_f64)