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,99 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/rndn.h"
static int
test_simde_vrndnh_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a;
simde_float16_t r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE( -1.50),
SIMDE_FLOAT16_VALUE( -2.00)},
{ SIMDE_FLOAT16_VALUE( -2.50),
SIMDE_FLOAT16_VALUE( -2.00)},
{ SIMDE_FLOAT16_VALUE( -593.90),
SIMDE_FLOAT16_VALUE( -594.00)},
{ SIMDE_FLOAT16_VALUE( 569.79),
SIMDE_FLOAT16_VALUE( 570.00)},
{ SIMDE_FLOAT16_VALUE( -670.11),
SIMDE_FLOAT16_VALUE( -670.00)},
{ SIMDE_FLOAT16_VALUE( -4.27),
SIMDE_FLOAT16_VALUE( -4.00)},
{ SIMDE_FLOAT16_VALUE( -389.20),
SIMDE_FLOAT16_VALUE( -389.00)},
{ SIMDE_FLOAT16_VALUE( 172.22),
SIMDE_FLOAT16_VALUE( 172.00)},
{ SIMDE_FLOAT16_VALUE( 13.87),
SIMDE_FLOAT16_VALUE( 14.00)}
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16_t _r = simde_vrndnh_f16(test_vec[i].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_vrndnh_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_vrndn_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
simde_float16_t r[4];
} test_vec[] = {
#if !defined(SIMDE_FAST_NANS)
{ { SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF },
{ SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF } },
#endif
{ { SIMDE_FLOAT16_VALUE( -1.50), SIMDE_FLOAT16_VALUE( 1.50), SIMDE_FLOAT16_VALUE( -2.50), SIMDE_FLOAT16_VALUE( 2.50) },
{ SIMDE_FLOAT16_VALUE( -2.00), SIMDE_FLOAT16_VALUE( 2.00), SIMDE_FLOAT16_VALUE( -2.00), SIMDE_FLOAT16_VALUE( 2.00) } },
{ { SIMDE_FLOAT16_VALUE( -593.90), SIMDE_FLOAT16_VALUE( 196.84), SIMDE_FLOAT16_VALUE( 569.79), SIMDE_FLOAT16_VALUE( 336.27) },
{ SIMDE_FLOAT16_VALUE( -594.00), SIMDE_FLOAT16_VALUE( 197.00), SIMDE_FLOAT16_VALUE( 570.00), SIMDE_FLOAT16_VALUE( 336.00) } },
{ { SIMDE_FLOAT16_VALUE( -670.11), SIMDE_FLOAT16_VALUE( 299.96), SIMDE_FLOAT16_VALUE( -4.27), SIMDE_FLOAT16_VALUE( -333.31) },
{ SIMDE_FLOAT16_VALUE( -670.00), SIMDE_FLOAT16_VALUE( 300.00), SIMDE_FLOAT16_VALUE( -4.00), SIMDE_FLOAT16_VALUE( -333.00) } },
{ { SIMDE_FLOAT16_VALUE( -389.20), SIMDE_FLOAT16_VALUE( 338.21), SIMDE_FLOAT16_VALUE( 172.22), SIMDE_FLOAT16_VALUE( 64.71) },
{ SIMDE_FLOAT16_VALUE( -389.00), SIMDE_FLOAT16_VALUE( 338.00), SIMDE_FLOAT16_VALUE( 172.00), SIMDE_FLOAT16_VALUE( 65.00) } },
{ { SIMDE_FLOAT16_VALUE( 89.38), SIMDE_FLOAT16_VALUE( -40.62), SIMDE_FLOAT16_VALUE( 13.87), SIMDE_FLOAT16_VALUE( -75.96) },
{ SIMDE_FLOAT16_VALUE( 89.00), SIMDE_FLOAT16_VALUE( -41.00), SIMDE_FLOAT16_VALUE( 14.00), SIMDE_FLOAT16_VALUE( -76.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 r = simde_vrndn_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_vrndn_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_vrndn_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -117,6 +210,44 @@ test_simde_vrndn_f64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrndnq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
simde_float16_t r[8];
} test_vec[] = {
#if !defined(SIMDE_FAST_NANS)
{ { SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF },
{ SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF, SIMDE_NANHF } },
#endif
{ { SIMDE_FLOAT16_VALUE( -1.50), SIMDE_FLOAT16_VALUE( 1.50), SIMDE_FLOAT16_VALUE( -2.50), SIMDE_FLOAT16_VALUE( 2.50), SIMDE_FLOAT16_VALUE( -593.90), SIMDE_FLOAT16_VALUE( 196.84), SIMDE_FLOAT16_VALUE( 569.79), SIMDE_FLOAT16_VALUE( 336.27) },
{ SIMDE_FLOAT16_VALUE( -2.00), SIMDE_FLOAT16_VALUE( 2.00), SIMDE_FLOAT16_VALUE( -2.00), SIMDE_FLOAT16_VALUE( 2.00), SIMDE_FLOAT16_VALUE( -594.00), SIMDE_FLOAT16_VALUE( 197.00), SIMDE_FLOAT16_VALUE( 570.00), SIMDE_FLOAT16_VALUE( 336.00) } },
{ { SIMDE_FLOAT16_VALUE( -670.11), SIMDE_FLOAT16_VALUE( 299.96), SIMDE_FLOAT16_VALUE( -4.27), SIMDE_FLOAT16_VALUE( -333.31), SIMDE_FLOAT16_VALUE( -389.20), SIMDE_FLOAT16_VALUE( 338.21), SIMDE_FLOAT16_VALUE( 172.22), SIMDE_FLOAT16_VALUE( 64.71) },
{ SIMDE_FLOAT16_VALUE( -670.00), SIMDE_FLOAT16_VALUE( 300.00), SIMDE_FLOAT16_VALUE( -4.00), SIMDE_FLOAT16_VALUE( -333.00), SIMDE_FLOAT16_VALUE( -389.00), SIMDE_FLOAT16_VALUE( 338.00), SIMDE_FLOAT16_VALUE( 172.00), SIMDE_FLOAT16_VALUE( 65.00) } },
};
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_vrndnq_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_vrndnq_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_vrndnq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -223,9 +354,13 @@ test_simde_vrndnq_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vrndnh_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndn_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndn_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndn_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndnq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndnq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndnq_f64)
SIMDE_TEST_FUNC_LIST_END