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/rndm.h"
static int
test_simde_vrndmh_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a;
simde_float16 r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE( -9.173),
SIMDE_FLOAT16_VALUE( -10.000) },
{ SIMDE_FLOAT16_VALUE( 11.447),
SIMDE_FLOAT16_VALUE( 11.000) },
{ SIMDE_FLOAT16_VALUE( -12.280),
SIMDE_FLOAT16_VALUE( -13.000) },
{ SIMDE_FLOAT16_VALUE( -3.306),
SIMDE_FLOAT16_VALUE( -4.000) },
{ SIMDE_FLOAT16_VALUE( 11.735),
SIMDE_FLOAT16_VALUE( 11.000) },
{ SIMDE_FLOAT16_VALUE( -10.946),
SIMDE_FLOAT16_VALUE( -11.000) },
{ SIMDE_FLOAT16_VALUE( 9.931),
SIMDE_FLOAT16_VALUE( 9.000) },
{ SIMDE_FLOAT16_VALUE( -12.979),
SIMDE_FLOAT16_VALUE( -13.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_vrndmh_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_vrndmh_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_vrndm_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
simde_float16 r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -2.379), SIMDE_FLOAT16_VALUE( 4.542), SIMDE_FLOAT16_VALUE( -7.585), SIMDE_FLOAT16_VALUE( 6.519) },
{ SIMDE_FLOAT16_VALUE( -3.000), SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( -8.000), SIMDE_FLOAT16_VALUE( 6.000) } },
{ { SIMDE_FLOAT16_VALUE( -11.393), SIMDE_FLOAT16_VALUE( 13.886), SIMDE_FLOAT16_VALUE( -1.843), SIMDE_FLOAT16_VALUE( -10.969) },
{ SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( 13.000), SIMDE_FLOAT16_VALUE( -2.000), SIMDE_FLOAT16_VALUE( -11.000) } },
{ { SIMDE_FLOAT16_VALUE( 2.602), SIMDE_FLOAT16_VALUE( -0.236), SIMDE_FLOAT16_VALUE( 4.740), SIMDE_FLOAT16_VALUE( -12.796) },
{ SIMDE_FLOAT16_VALUE( 2.000), SIMDE_FLOAT16_VALUE( -1.000), SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( -13.000) } },
{ { SIMDE_FLOAT16_VALUE( -11.112), SIMDE_FLOAT16_VALUE( -2.740), SIMDE_FLOAT16_VALUE( 11.841), SIMDE_FLOAT16_VALUE( -11.292) },
{ SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( -3.000), SIMDE_FLOAT16_VALUE( 11.000), SIMDE_FLOAT16_VALUE( -12.000) } },
{ { SIMDE_FLOAT16_VALUE( -14.513), SIMDE_FLOAT16_VALUE( -12.480), SIMDE_FLOAT16_VALUE( 7.073), SIMDE_FLOAT16_VALUE( -0.692) },
{ SIMDE_FLOAT16_VALUE( -15.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( 7.000), SIMDE_FLOAT16_VALUE( -1.000) } },
{ { SIMDE_FLOAT16_VALUE( 8.690), SIMDE_FLOAT16_VALUE( 0.633), SIMDE_FLOAT16_VALUE( -6.096), SIMDE_FLOAT16_VALUE( -5.570) },
{ SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( 0.000), SIMDE_FLOAT16_VALUE( -7.000), SIMDE_FLOAT16_VALUE( -6.000) } },
{ { SIMDE_FLOAT16_VALUE( 10.356), SIMDE_FLOAT16_VALUE( 11.634), SIMDE_FLOAT16_VALUE( 1.680), SIMDE_FLOAT16_VALUE( -3.994) },
{ SIMDE_FLOAT16_VALUE( 10.000), SIMDE_FLOAT16_VALUE( 11.000), SIMDE_FLOAT16_VALUE( 1.000), SIMDE_FLOAT16_VALUE( -4.000) } },
{ { SIMDE_FLOAT16_VALUE( 6.787), SIMDE_FLOAT16_VALUE( 0.691), SIMDE_FLOAT16_VALUE( 0.723), SIMDE_FLOAT16_VALUE( -2.915) },
{ SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( 0.000), SIMDE_FLOAT16_VALUE( 0.000), SIMDE_FLOAT16_VALUE( -3.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_vrndm_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_vrndm_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_vrndm_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -119,6 +213,68 @@ test_simde_vrndm_f64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vrndmq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
simde_float16 r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 12.316), SIMDE_FLOAT16_VALUE( 6.207), SIMDE_FLOAT16_VALUE( -7.010), SIMDE_FLOAT16_VALUE( -2.756),
SIMDE_FLOAT16_VALUE( 3.880), SIMDE_FLOAT16_VALUE( -4.529), SIMDE_FLOAT16_VALUE( -1.830), SIMDE_FLOAT16_VALUE( 7.099) },
{ SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( -8.000), SIMDE_FLOAT16_VALUE( -3.000),
SIMDE_FLOAT16_VALUE( 3.000), SIMDE_FLOAT16_VALUE( -5.000), SIMDE_FLOAT16_VALUE( -2.000), SIMDE_FLOAT16_VALUE( 7.000) } },
{ { SIMDE_FLOAT16_VALUE( 0.069), SIMDE_FLOAT16_VALUE( -13.074), SIMDE_FLOAT16_VALUE( 4.743), SIMDE_FLOAT16_VALUE( -7.822),
SIMDE_FLOAT16_VALUE( 6.738), SIMDE_FLOAT16_VALUE( 3.987), SIMDE_FLOAT16_VALUE( 8.981), SIMDE_FLOAT16_VALUE( 6.574) },
{ SIMDE_FLOAT16_VALUE( 0.000), SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( -8.000),
SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( 3.000), SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( 6.000) } },
{ { SIMDE_FLOAT16_VALUE( -12.115), SIMDE_FLOAT16_VALUE( -9.219), SIMDE_FLOAT16_VALUE( -11.847), SIMDE_FLOAT16_VALUE( -0.519),
SIMDE_FLOAT16_VALUE( -12.974), SIMDE_FLOAT16_VALUE( 3.431), SIMDE_FLOAT16_VALUE( -13.006), SIMDE_FLOAT16_VALUE( -3.632) },
{ SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( -10.000), SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( -1.000),
SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( 3.000), SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( -4.000) } },
{ { SIMDE_FLOAT16_VALUE( 5.561), SIMDE_FLOAT16_VALUE( 4.862), SIMDE_FLOAT16_VALUE( -2.777), SIMDE_FLOAT16_VALUE( -1.666),
SIMDE_FLOAT16_VALUE( -14.182), SIMDE_FLOAT16_VALUE( 10.188), SIMDE_FLOAT16_VALUE( -12.497), SIMDE_FLOAT16_VALUE( 7.534) },
{ SIMDE_FLOAT16_VALUE( 5.000), SIMDE_FLOAT16_VALUE( 4.000), SIMDE_FLOAT16_VALUE( -3.000), SIMDE_FLOAT16_VALUE( -2.000),
SIMDE_FLOAT16_VALUE( -15.000), SIMDE_FLOAT16_VALUE( 10.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( 7.000) } },
{ { SIMDE_FLOAT16_VALUE( 10.757), SIMDE_FLOAT16_VALUE( 5.534), SIMDE_FLOAT16_VALUE( 0.216), SIMDE_FLOAT16_VALUE( -0.573),
SIMDE_FLOAT16_VALUE( -3.911), SIMDE_FLOAT16_VALUE( -14.799), SIMDE_FLOAT16_VALUE( -6.012), SIMDE_FLOAT16_VALUE( -0.565) },
{ SIMDE_FLOAT16_VALUE( 10.000), SIMDE_FLOAT16_VALUE( 5.000), SIMDE_FLOAT16_VALUE( 0.000), SIMDE_FLOAT16_VALUE( -1.000),
SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( -15.000), SIMDE_FLOAT16_VALUE( -7.000), SIMDE_FLOAT16_VALUE( -1.000) } },
{ { SIMDE_FLOAT16_VALUE( 8.949), SIMDE_FLOAT16_VALUE( -11.439), SIMDE_FLOAT16_VALUE( 14.844), SIMDE_FLOAT16_VALUE( -6.808),
SIMDE_FLOAT16_VALUE( 14.334), SIMDE_FLOAT16_VALUE( -9.234), SIMDE_FLOAT16_VALUE( -2.210), SIMDE_FLOAT16_VALUE( 8.783) },
{ SIMDE_FLOAT16_VALUE( 8.000), SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( 14.000), SIMDE_FLOAT16_VALUE( -7.000),
SIMDE_FLOAT16_VALUE( 14.000), SIMDE_FLOAT16_VALUE( -10.000), SIMDE_FLOAT16_VALUE( -3.000), SIMDE_FLOAT16_VALUE( 8.000) } },
{ { SIMDE_FLOAT16_VALUE( 2.023), SIMDE_FLOAT16_VALUE( -13.690), SIMDE_FLOAT16_VALUE( -3.775), SIMDE_FLOAT16_VALUE( -3.677),
SIMDE_FLOAT16_VALUE( -1.737), SIMDE_FLOAT16_VALUE( -0.698), SIMDE_FLOAT16_VALUE( -12.550), SIMDE_FLOAT16_VALUE( -3.609) },
{ SIMDE_FLOAT16_VALUE( 2.000), SIMDE_FLOAT16_VALUE( -14.000), SIMDE_FLOAT16_VALUE( -4.000), SIMDE_FLOAT16_VALUE( -4.000),
SIMDE_FLOAT16_VALUE( -2.000), SIMDE_FLOAT16_VALUE( -1.000), SIMDE_FLOAT16_VALUE( -13.000), SIMDE_FLOAT16_VALUE( -4.000) } },
{ { SIMDE_FLOAT16_VALUE( -10.790), SIMDE_FLOAT16_VALUE( 7.928), SIMDE_FLOAT16_VALUE( -4.525), SIMDE_FLOAT16_VALUE( -2.016),
SIMDE_FLOAT16_VALUE( 9.566), SIMDE_FLOAT16_VALUE( -11.880), SIMDE_FLOAT16_VALUE( 12.959), SIMDE_FLOAT16_VALUE( -6.830) },
{ SIMDE_FLOAT16_VALUE( -11.000), SIMDE_FLOAT16_VALUE( 7.000), SIMDE_FLOAT16_VALUE( -5.000), SIMDE_FLOAT16_VALUE( -3.000),
SIMDE_FLOAT16_VALUE( 9.000), SIMDE_FLOAT16_VALUE( -12.000), SIMDE_FLOAT16_VALUE( 12.000), SIMDE_FLOAT16_VALUE( -7.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_vrndmq_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_vrndmq_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_vrndmq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -227,9 +383,12 @@ test_simde_vrndmq_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vrndmh_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndm_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndm_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndm_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndmq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndmq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vrndmq_f64)
SIMDE_TEST_FUNC_LIST_END