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,100 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/rndp.h"
static int
test_simde_vrndph_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a;
simde_float16 r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE( 13.699),
SIMDE_FLOAT16_VALUE( 14.000) },
{ SIMDE_FLOAT16_VALUE( 10.961),
SIMDE_FLOAT16_VALUE( 11.000) },
{ SIMDE_FLOAT16_VALUE( 8.443),
SIMDE_FLOAT16_VALUE( 9.000) },
{ SIMDE_FLOAT16_VALUE( 14.244),
SIMDE_FLOAT16_VALUE( 15.000) },
{ SIMDE_FLOAT16_VALUE( -3.626),
SIMDE_FLOAT16_VALUE( -3.000) },
{ SIMDE_FLOAT16_VALUE( 2.616),
SIMDE_FLOAT16_VALUE( 3.000) },
{ SIMDE_FLOAT16_VALUE( -5.669),
SIMDE_FLOAT16_VALUE( -5.000) },
{ SIMDE_FLOAT16_VALUE( 9.033),
SIMDE_FLOAT16_VALUE( 10.000) },
};
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_vrndph_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_vrndph_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_vrndp_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
simde_float16 r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 6.717), SIMDE_FLOAT16_VALUE( -13.297), SIMDE_FLOAT16_VALUE( 6.929), SIMDE_FLOAT16_VALUE( -3.646) },
{ SIMDE_FLOAT16_VALUE( 7.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( 7.000), SIMDE_FLOAT16_VALUE( -3.000) } },
{ { SIMDE_FLOAT16_VALUE( 8.929), SIMDE_FLOAT16_VALUE( 7.866), SIMDE_FLOAT16_VALUE( 2.516), SIMDE_FLOAT16_VALUE( 11.143) },
{ SIMDE_FLOAT16_VALUE( 9.000), SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( 3.000), SIMDE_FLOAT16_VALUE( 12.000) } },
{ { SIMDE_FLOAT16_VALUE( -14.174), SIMDE_FLOAT16_VALUE( 14.271), SIMDE_FLOAT16_VALUE( -0.698), SIMDE_FLOAT16_VALUE( -3.547) },
{ SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( 15.000), SIMDE_FLOAT16_VALUE( -0.000), SIMDE_FLOAT16_VALUE( -3.000) } },
{ { SIMDE_FLOAT16_VALUE( 7.138), SIMDE_FLOAT16_VALUE( -10.505), SIMDE_FLOAT16_VALUE( 3.104), SIMDE_FLOAT16_VALUE( 7.103) },
{ SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( -10.000), SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( 8.000) } },
{ { SIMDE_FLOAT16_VALUE( -14.104), SIMDE_FLOAT16_VALUE( 2.375), SIMDE_FLOAT16_VALUE( -4.731), SIMDE_FLOAT16_VALUE( -10.601) },
{ SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( 3.000), SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( -10.000) } },
{ { SIMDE_FLOAT16_VALUE( 3.645), SIMDE_FLOAT16_VALUE( 10.469), SIMDE_FLOAT16_VALUE( -5.192), SIMDE_FLOAT16_VALUE( 9.930) },
{ SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( 11.000), SIMDE_FLOAT16_VALUE( -5.000), SIMDE_FLOAT16_VALUE( 10.000) } },
{ { SIMDE_FLOAT16_VALUE( 7.032), SIMDE_FLOAT16_VALUE( 11.286), SIMDE_FLOAT16_VALUE( -0.225), SIMDE_FLOAT16_VALUE( -10.137) },
{ SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( -0.000), SIMDE_FLOAT16_VALUE( -10.000) } },
{ { SIMDE_FLOAT16_VALUE( 11.206), SIMDE_FLOAT16_VALUE( -6.390), SIMDE_FLOAT16_VALUE( 10.822), SIMDE_FLOAT16_VALUE( -2.851) },
{ SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( -6.000), SIMDE_FLOAT16_VALUE( 11.000), SIMDE_FLOAT16_VALUE( -2.000) } },
};
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_vrndp_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_vrndp_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_vrndp_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -117,6 +211,68 @@ test_simde_vrndp_f64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrndpq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
simde_float16 r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -7.924), SIMDE_FLOAT16_VALUE( 2.632), SIMDE_FLOAT16_VALUE( -9.810), SIMDE_FLOAT16_VALUE( 5.831),
SIMDE_FLOAT16_VALUE( -8.178), SIMDE_FLOAT16_VALUE( 10.867), SIMDE_FLOAT16_VALUE( -6.220), SIMDE_FLOAT16_VALUE( -5.727) },
{ SIMDE_FLOAT16_VALUE( -7.000), SIMDE_FLOAT16_VALUE( 3.000), SIMDE_FLOAT16_VALUE( -9.000), SIMDE_FLOAT16_VALUE( 6.000),
SIMDE_FLOAT16_VALUE( -8.000), SIMDE_FLOAT16_VALUE( 11.000), SIMDE_FLOAT16_VALUE( -6.000), SIMDE_FLOAT16_VALUE( -5.000) } },
{ { SIMDE_FLOAT16_VALUE( 3.564), SIMDE_FLOAT16_VALUE( -1.060), SIMDE_FLOAT16_VALUE( 11.303), SIMDE_FLOAT16_VALUE( 7.547),
SIMDE_FLOAT16_VALUE( -10.595), SIMDE_FLOAT16_VALUE( -10.988), SIMDE_FLOAT16_VALUE( -13.432), SIMDE_FLOAT16_VALUE( -5.051) },
{ SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( -1.000), SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( 8.000),
SIMDE_FLOAT16_VALUE( -10.000), SIMDE_FLOAT16_VALUE( -10.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( -5.000) } },
{ { SIMDE_FLOAT16_VALUE( -1.145), SIMDE_FLOAT16_VALUE( 7.363), SIMDE_FLOAT16_VALUE( -13.035), SIMDE_FLOAT16_VALUE( 9.578),
SIMDE_FLOAT16_VALUE( 12.201), SIMDE_FLOAT16_VALUE( -14.985), SIMDE_FLOAT16_VALUE( -12.300), SIMDE_FLOAT16_VALUE( 14.859) },
{ SIMDE_FLOAT16_VALUE( -1.000), SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( 10.000),
SIMDE_FLOAT16_VALUE( 13.000), SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( 15.000) } },
{ { SIMDE_FLOAT16_VALUE( -4.900), SIMDE_FLOAT16_VALUE( 9.880), SIMDE_FLOAT16_VALUE( 11.910), SIMDE_FLOAT16_VALUE( -10.149),
SIMDE_FLOAT16_VALUE( -7.535), SIMDE_FLOAT16_VALUE( -4.791), SIMDE_FLOAT16_VALUE( -13.899), SIMDE_FLOAT16_VALUE( 3.757) },
{ SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( 10.000), SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( -10.000),
SIMDE_FLOAT16_VALUE( -7.000), SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( 4.000) } },
{ { SIMDE_FLOAT16_VALUE( 3.773), SIMDE_FLOAT16_VALUE( 11.407), SIMDE_FLOAT16_VALUE( -7.408), SIMDE_FLOAT16_VALUE( 5.810),
SIMDE_FLOAT16_VALUE( -12.507), SIMDE_FLOAT16_VALUE( -6.971), SIMDE_FLOAT16_VALUE( 5.818), SIMDE_FLOAT16_VALUE( -8.647) },
{ SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( -7.000), SIMDE_FLOAT16_VALUE( 6.000),
SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( -6.000), SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( -8.000) } },
{ { SIMDE_FLOAT16_VALUE( -4.250), SIMDE_FLOAT16_VALUE( -9.666), SIMDE_FLOAT16_VALUE( 8.468), SIMDE_FLOAT16_VALUE( 3.401),
SIMDE_FLOAT16_VALUE( 1.555), SIMDE_FLOAT16_VALUE( -14.607), SIMDE_FLOAT16_VALUE( -9.800), SIMDE_FLOAT16_VALUE( -12.727) },
{ SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( -9.000), SIMDE_FLOAT16_VALUE( 9.000), SIMDE_FLOAT16_VALUE( 4.000),
SIMDE_FLOAT16_VALUE( 2.000), SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( -9.000), SIMDE_FLOAT16_VALUE( -12.000) } },
{ { SIMDE_FLOAT16_VALUE( -10.550), SIMDE_FLOAT16_VALUE( 11.362), SIMDE_FLOAT16_VALUE( 5.544), SIMDE_FLOAT16_VALUE( 13.708),
SIMDE_FLOAT16_VALUE( 1.001), SIMDE_FLOAT16_VALUE( 9.226), SIMDE_FLOAT16_VALUE( -7.096), SIMDE_FLOAT16_VALUE( -1.654) },
{ SIMDE_FLOAT16_VALUE( -10.000), SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( 14.000),
SIMDE_FLOAT16_VALUE( 2.000), SIMDE_FLOAT16_VALUE( 10.000), SIMDE_FLOAT16_VALUE( -7.000), SIMDE_FLOAT16_VALUE( -1.000) } },
{ { SIMDE_FLOAT16_VALUE( 10.828), SIMDE_FLOAT16_VALUE( 14.951), SIMDE_FLOAT16_VALUE( -9.527), SIMDE_FLOAT16_VALUE( 12.350),
SIMDE_FLOAT16_VALUE( -14.444), SIMDE_FLOAT16_VALUE( -14.570), SIMDE_FLOAT16_VALUE( -4.505), SIMDE_FLOAT16_VALUE( 5.240) },
{ SIMDE_FLOAT16_VALUE( 11.000), SIMDE_FLOAT16_VALUE( 15.000), SIMDE_FLOAT16_VALUE( -9.000), SIMDE_FLOAT16_VALUE( 13.000),
SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( 6.000) } },
};
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_vrndpq_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_vrndpq_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_vrndpq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -223,9 +379,12 @@ test_simde_vrndpq_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vrndph_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndp_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndp_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndp_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndpq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndpq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndpq_f64)
SIMDE_TEST_FUNC_LIST_END