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

@ -9,6 +9,65 @@
#include "../../../simde/arm/neon.h"
#endif
static int
test_simde_vcle_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
simde_float16_t b[4];
uint16_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 8.447), SIMDE_FLOAT16_VALUE( - 8.659), SIMDE_FLOAT16_VALUE( - 2.615), SIMDE_FLOAT16_VALUE(11.602) },
{ SIMDE_FLOAT16_VALUE(10.611), SIMDE_FLOAT16_VALUE( - 0.755), SIMDE_FLOAT16_VALUE( - 9.784), SIMDE_FLOAT16_VALUE(27.142) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE(17.098), SIMDE_FLOAT16_VALUE(10.956), SIMDE_FLOAT16_VALUE( -28.072), SIMDE_FLOAT16_VALUE(29.289) },
{ SIMDE_FLOAT16_VALUE( -19.728), SIMDE_FLOAT16_VALUE( 8.380), SIMDE_FLOAT16_VALUE( -11.126), SIMDE_FLOAT16_VALUE(16.167) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE(21.932), SIMDE_FLOAT16_VALUE( 9.638), SIMDE_FLOAT16_VALUE( 4.463), SIMDE_FLOAT16_VALUE(20.865) },
{ SIMDE_FLOAT16_VALUE( -11.698), SIMDE_FLOAT16_VALUE(18.815), SIMDE_FLOAT16_VALUE(15.699), SIMDE_FLOAT16_VALUE(13.508) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -20.159), SIMDE_FLOAT16_VALUE(12.844), SIMDE_FLOAT16_VALUE( - 8.921), SIMDE_FLOAT16_VALUE( - 7.798) },
{ SIMDE_FLOAT16_VALUE( - 1.258), SIMDE_FLOAT16_VALUE( -17.170), SIMDE_FLOAT16_VALUE(16.333), SIMDE_FLOAT16_VALUE( - 8.197) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -11.632), SIMDE_FLOAT16_VALUE( - 8.390), SIMDE_FLOAT16_VALUE(20.714), SIMDE_FLOAT16_VALUE(24.154) },
{ SIMDE_FLOAT16_VALUE(22.192), SIMDE_FLOAT16_VALUE(22.191), SIMDE_FLOAT16_VALUE( 6.143), SIMDE_FLOAT16_VALUE(20.987) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( - 2.982), SIMDE_FLOAT16_VALUE( - 4.497), SIMDE_FLOAT16_VALUE( -15.911), SIMDE_FLOAT16_VALUE( -26.749) },
{ SIMDE_FLOAT16_VALUE( 7.832), SIMDE_FLOAT16_VALUE(20.355), SIMDE_FLOAT16_VALUE( -18.865), SIMDE_FLOAT16_VALUE( - 8.786) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -19.847), SIMDE_FLOAT16_VALUE( -26.969), SIMDE_FLOAT16_VALUE( -14.823), SIMDE_FLOAT16_VALUE( -21.042) },
{ SIMDE_FLOAT16_VALUE( -28.679), SIMDE_FLOAT16_VALUE( -22.401), SIMDE_FLOAT16_VALUE( -10.468), SIMDE_FLOAT16_VALUE( 1.884) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -13.976), SIMDE_FLOAT16_VALUE(16.503), SIMDE_FLOAT16_VALUE( -18.929), SIMDE_FLOAT16_VALUE( -21.485) },
{ SIMDE_FLOAT16_VALUE(27.388), SIMDE_FLOAT16_VALUE(15.954), SIMDE_FLOAT16_VALUE( -18.157), SIMDE_FLOAT16_VALUE(27.831) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
};
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 b = simde_vld1_f16(test_vec[i].b);
simde_uint16x4_t r = simde_vcle_f16(a, b);
simde_test_arm_neon_assert_equal_u16x4(r, simde_vld1_u16(test_vec[i].r));
}
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 b = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f);
simde_uint16x4_t r = simde_vcle_f16(a, b);
simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_f16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcle_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -679,6 +738,89 @@ test_simde_vcle_u64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vcleq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
simde_float16_t b[8];
uint16_t r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 6.052), SIMDE_FLOAT16_VALUE( -21.631), SIMDE_FLOAT16_VALUE( -16.927), SIMDE_FLOAT16_VALUE(20.755),
SIMDE_FLOAT16_VALUE( -15.631), SIMDE_FLOAT16_VALUE( - 6.240), SIMDE_FLOAT16_VALUE(23.509), SIMDE_FLOAT16_VALUE( -29.481) },
{ SIMDE_FLOAT16_VALUE(16.025), SIMDE_FLOAT16_VALUE(24.334), SIMDE_FLOAT16_VALUE( - 6.508), SIMDE_FLOAT16_VALUE(17.524),
SIMDE_FLOAT16_VALUE( -15.973), SIMDE_FLOAT16_VALUE( 0.216), SIMDE_FLOAT16_VALUE( - 7.741), SIMDE_FLOAT16_VALUE( 7.130) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0),
UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( - 5.096), SIMDE_FLOAT16_VALUE( -10.602), SIMDE_FLOAT16_VALUE(27.999), SIMDE_FLOAT16_VALUE( - 1.075),
SIMDE_FLOAT16_VALUE( -23.145), SIMDE_FLOAT16_VALUE( -23.578), SIMDE_FLOAT16_VALUE(25.404), SIMDE_FLOAT16_VALUE( -25.074) },
{ SIMDE_FLOAT16_VALUE( 8.365), SIMDE_FLOAT16_VALUE( -15.037), SIMDE_FLOAT16_VALUE( -16.985), SIMDE_FLOAT16_VALUE( 0.374),
SIMDE_FLOAT16_VALUE(13.526), SIMDE_FLOAT16_VALUE( - 2.567), SIMDE_FLOAT16_VALUE(23.870), SIMDE_FLOAT16_VALUE( -27.272) },
{ UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX,
UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE(11.955), SIMDE_FLOAT16_VALUE( -21.297), SIMDE_FLOAT16_VALUE(19.909), SIMDE_FLOAT16_VALUE( 2.327),
SIMDE_FLOAT16_VALUE(10.833), SIMDE_FLOAT16_VALUE( - 0.112), SIMDE_FLOAT16_VALUE(14.899), SIMDE_FLOAT16_VALUE( - 5.837) },
{ SIMDE_FLOAT16_VALUE(11.019), SIMDE_FLOAT16_VALUE( - 3.706), SIMDE_FLOAT16_VALUE( -17.685), SIMDE_FLOAT16_VALUE( 3.519),
SIMDE_FLOAT16_VALUE( - 9.207), SIMDE_FLOAT16_VALUE(10.370), SIMDE_FLOAT16_VALUE( -11.560), SIMDE_FLOAT16_VALUE( - 2.552) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX,
UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -25.799), SIMDE_FLOAT16_VALUE( -16.301), SIMDE_FLOAT16_VALUE( -15.560), SIMDE_FLOAT16_VALUE( -12.832),
SIMDE_FLOAT16_VALUE( -18.070), SIMDE_FLOAT16_VALUE( -26.679), SIMDE_FLOAT16_VALUE(29.328), SIMDE_FLOAT16_VALUE( 5.986) },
{ SIMDE_FLOAT16_VALUE(15.847), SIMDE_FLOAT16_VALUE(27.710), SIMDE_FLOAT16_VALUE( - 7.357), SIMDE_FLOAT16_VALUE( 8.789),
SIMDE_FLOAT16_VALUE( 9.556), SIMDE_FLOAT16_VALUE(26.672), SIMDE_FLOAT16_VALUE( - 7.994), SIMDE_FLOAT16_VALUE( 7.517) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX,
UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( - 5.306), SIMDE_FLOAT16_VALUE( - 0.813), SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( -23.238),
SIMDE_FLOAT16_VALUE(29.249), SIMDE_FLOAT16_VALUE(25.928), SIMDE_FLOAT16_VALUE( -25.742), SIMDE_FLOAT16_VALUE(28.893) },
{ SIMDE_FLOAT16_VALUE(19.282), SIMDE_FLOAT16_VALUE(14.169), SIMDE_FLOAT16_VALUE( - 8.290), SIMDE_FLOAT16_VALUE(17.378),
SIMDE_FLOAT16_VALUE( - 1.797), SIMDE_FLOAT16_VALUE( 1.777), SIMDE_FLOAT16_VALUE( 5.564), SIMDE_FLOAT16_VALUE(28.078) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX,
UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -20.592), SIMDE_FLOAT16_VALUE(20.779), SIMDE_FLOAT16_VALUE(10.541), SIMDE_FLOAT16_VALUE( -21.060),
SIMDE_FLOAT16_VALUE(23.945), SIMDE_FLOAT16_VALUE(24.970), SIMDE_FLOAT16_VALUE( -28.557), SIMDE_FLOAT16_VALUE(22.210) },
{ SIMDE_FLOAT16_VALUE(23.015), SIMDE_FLOAT16_VALUE( -29.722), SIMDE_FLOAT16_VALUE( -20.947), SIMDE_FLOAT16_VALUE( -10.237),
SIMDE_FLOAT16_VALUE(14.317), SIMDE_FLOAT16_VALUE( -23.364), SIMDE_FLOAT16_VALUE( - 2.156), SIMDE_FLOAT16_VALUE( 6.988) },
{ UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX,
UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -16.548), SIMDE_FLOAT16_VALUE( -18.913), SIMDE_FLOAT16_VALUE( 5.054), SIMDE_FLOAT16_VALUE(16.187),
SIMDE_FLOAT16_VALUE(20.355), SIMDE_FLOAT16_VALUE( -12.692), SIMDE_FLOAT16_VALUE( - 8.127), SIMDE_FLOAT16_VALUE( -29.320) },
{ SIMDE_FLOAT16_VALUE( - 3.252), SIMDE_FLOAT16_VALUE( 7.592), SIMDE_FLOAT16_VALUE(14.255), SIMDE_FLOAT16_VALUE( -25.319),
SIMDE_FLOAT16_VALUE( -11.153), SIMDE_FLOAT16_VALUE(29.563), SIMDE_FLOAT16_VALUE(11.098), SIMDE_FLOAT16_VALUE( -18.346) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0),
UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 6.142), SIMDE_FLOAT16_VALUE( -16.113), SIMDE_FLOAT16_VALUE( -25.442), SIMDE_FLOAT16_VALUE(10.388),
SIMDE_FLOAT16_VALUE( 9.547), SIMDE_FLOAT16_VALUE( -26.224), SIMDE_FLOAT16_VALUE( - 2.331), SIMDE_FLOAT16_VALUE( -14.642) },
{ SIMDE_FLOAT16_VALUE( - 8.097), SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE(19.975), SIMDE_FLOAT16_VALUE(28.291),
SIMDE_FLOAT16_VALUE( 1.823), SIMDE_FLOAT16_VALUE(25.174), SIMDE_FLOAT16_VALUE(23.571), SIMDE_FLOAT16_VALUE( - 7.197) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX,
UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
};
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 b = simde_vld1q_f16(test_vec[i].b);
simde_uint16x8_t r = simde_vcleq_f16(a, b);
simde_test_arm_neon_assert_equal_u16x8(r, simde_vld1q_u16(test_vec[i].r));
}
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 b = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f);
simde_uint16x8_t r = simde_vcleq_f16(a, b);
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_f16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcleq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -1617,7 +1759,64 @@ test_simde_vcles_f32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vcleh_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a;
simde_float16_t b;
uint16_t r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE(17.427),
SIMDE_FLOAT16_VALUE( -29.394),
UINT16_C( 0) },
{ SIMDE_FLOAT16_VALUE( -19.443),
SIMDE_FLOAT16_VALUE(14.852),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE(19.083),
SIMDE_FLOAT16_VALUE(16.002),
UINT16_C( 0) },
{ SIMDE_FLOAT16_VALUE( - 2.002),
SIMDE_FLOAT16_VALUE(28.082),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE(11.500),
SIMDE_FLOAT16_VALUE( - 4.960),
UINT16_C( 0) },
{ SIMDE_FLOAT16_VALUE( 0.968),
SIMDE_FLOAT16_VALUE(14.557),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE( -25.518),
SIMDE_FLOAT16_VALUE( -16.212),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE( -26.015),
SIMDE_FLOAT16_VALUE(16.100),
UINT16_MAX },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
uint16_t r = simde_vcleh_f16(test_vec[i].a, test_vec[i].b);
simde_assert_equal_u16(r, test_vec[i].r);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float16_t a = simde_test_arm_neon_random_f16(-100.0f, 100.0f);
simde_float16_t b = simde_test_arm_neon_random_f16(-100.0f, 100.0f);
simde_uint16_t r = simde_vcleh_f16(a, b);
simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_f16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_u16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vcle_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcle_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcle_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcle_s8)
@ -1629,6 +1828,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vcle_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcle_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcle_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcleq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcleq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcleq_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcleq_s8)
@ -1644,6 +1844,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vcled_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcled_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcled_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcles_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcleh_f16)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"