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,123 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/neg.h"
static int
test_simde_vnegh_f16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t a;
simde_float16_t r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE(5.08),
SIMDE_FLOAT16_VALUE(-5.08) },
{ SIMDE_FLOAT16_VALUE(-9.37),
SIMDE_FLOAT16_VALUE(9.37) },
{ SIMDE_FLOAT16_VALUE(4.40),
SIMDE_FLOAT16_VALUE(-4.40) },
{ SIMDE_FLOAT16_VALUE(7.96),
SIMDE_FLOAT16_VALUE(-7.96) },
{ SIMDE_FLOAT16_VALUE(-0.09),
SIMDE_FLOAT16_VALUE(0.09) },
{ SIMDE_FLOAT16_VALUE(-7.21),
SIMDE_FLOAT16_VALUE(7.21) },
{ SIMDE_FLOAT16_VALUE(9.94),
SIMDE_FLOAT16_VALUE(-9.94) },
{ SIMDE_FLOAT16_VALUE(9.11),
SIMDE_FLOAT16_VALUE(-9.11) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16_t r = simde_vnegh_f16(test_vec[i].a);
simde_assert_equal_f16(r, test_vec[i].r, 1);
}
return 0;
}
static int
test_simde_vneg_f16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t a[4];
simde_float16_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(3.76), SIMDE_FLOAT16_VALUE(4.26), SIMDE_FLOAT16_VALUE(0.04), SIMDE_FLOAT16_VALUE(-1.27) },
{ SIMDE_FLOAT16_VALUE(-3.76), SIMDE_FLOAT16_VALUE(-4.26), SIMDE_FLOAT16_VALUE(-0.04), SIMDE_FLOAT16_VALUE(1.27) } },
{ { SIMDE_FLOAT16_VALUE(-4.66), SIMDE_FLOAT16_VALUE(-2.63), SIMDE_FLOAT16_VALUE(4.43), SIMDE_FLOAT16_VALUE(-1.51) },
{ SIMDE_FLOAT16_VALUE(4.66), SIMDE_FLOAT16_VALUE(2.63), SIMDE_FLOAT16_VALUE(-4.43), SIMDE_FLOAT16_VALUE(1.51) } },
{ { SIMDE_FLOAT16_VALUE(0.13), SIMDE_FLOAT16_VALUE(-2.36), SIMDE_FLOAT16_VALUE(2.44), SIMDE_FLOAT16_VALUE(1.42) },
{ SIMDE_FLOAT16_VALUE(-0.13), SIMDE_FLOAT16_VALUE(2.36), SIMDE_FLOAT16_VALUE(-2.44), SIMDE_FLOAT16_VALUE(-1.42) } },
{ { SIMDE_FLOAT16_VALUE(-3.22), SIMDE_FLOAT16_VALUE(-6.50), SIMDE_FLOAT16_VALUE(-1.12), SIMDE_FLOAT16_VALUE(-7.58) },
{ SIMDE_FLOAT16_VALUE(3.22), SIMDE_FLOAT16_VALUE(6.50), SIMDE_FLOAT16_VALUE(1.12), SIMDE_FLOAT16_VALUE(7.58) } },
{ { SIMDE_FLOAT16_VALUE(3.07), SIMDE_FLOAT16_VALUE(-4.77), SIMDE_FLOAT16_VALUE(6.72), SIMDE_FLOAT16_VALUE(-2.02) },
{ SIMDE_FLOAT16_VALUE(-3.07), SIMDE_FLOAT16_VALUE(4.77), SIMDE_FLOAT16_VALUE(-6.72), SIMDE_FLOAT16_VALUE(2.02) } },
{ { SIMDE_FLOAT16_VALUE(-7.83), SIMDE_FLOAT16_VALUE(-9.99), SIMDE_FLOAT16_VALUE(-8.44), SIMDE_FLOAT16_VALUE(9.22) },
{ SIMDE_FLOAT16_VALUE(7.83), SIMDE_FLOAT16_VALUE(9.99), SIMDE_FLOAT16_VALUE(8.44), SIMDE_FLOAT16_VALUE(-9.22) } },
{ { SIMDE_FLOAT16_VALUE(7.97), SIMDE_FLOAT16_VALUE(4.72), SIMDE_FLOAT16_VALUE(0.39), SIMDE_FLOAT16_VALUE(6.01) },
{ SIMDE_FLOAT16_VALUE(-7.97), SIMDE_FLOAT16_VALUE(-4.72), SIMDE_FLOAT16_VALUE(-0.39), SIMDE_FLOAT16_VALUE(-6.01) } },
{ { SIMDE_FLOAT16_VALUE(4.00), SIMDE_FLOAT16_VALUE(7.89), SIMDE_FLOAT16_VALUE(3.62), SIMDE_FLOAT16_VALUE(-0.22) },
{ SIMDE_FLOAT16_VALUE(-4.00), SIMDE_FLOAT16_VALUE(-7.89), SIMDE_FLOAT16_VALUE(-3.62), SIMDE_FLOAT16_VALUE(0.22) } },
};
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_vneg_f16(a);
simde_test_arm_neon_assert_equal_f16x4(r, simde_vld1_f16(test_vec[i].r), 1);
}
return 0;
}
static int
test_simde_vnegq_f16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t a[8];
simde_float16_t r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(3.86), SIMDE_FLOAT16_VALUE(-7.04), SIMDE_FLOAT16_VALUE(-0.07), SIMDE_FLOAT16_VALUE(-5.19),
SIMDE_FLOAT16_VALUE(-9.22), SIMDE_FLOAT16_VALUE(-9.12), SIMDE_FLOAT16_VALUE(7.75), SIMDE_FLOAT16_VALUE(5.97) },
{ SIMDE_FLOAT16_VALUE(-3.86), SIMDE_FLOAT16_VALUE(7.04), SIMDE_FLOAT16_VALUE(0.07), SIMDE_FLOAT16_VALUE(5.19),
SIMDE_FLOAT16_VALUE(9.22), SIMDE_FLOAT16_VALUE(9.12), SIMDE_FLOAT16_VALUE(-7.75), SIMDE_FLOAT16_VALUE(-5.97) } },
{ { SIMDE_FLOAT16_VALUE(-8.27), SIMDE_FLOAT16_VALUE(-9.57), SIMDE_FLOAT16_VALUE(-5.62), SIMDE_FLOAT16_VALUE(9.12),
SIMDE_FLOAT16_VALUE(9.92), SIMDE_FLOAT16_VALUE(9.39), SIMDE_FLOAT16_VALUE(2.30), SIMDE_FLOAT16_VALUE(6.87) },
{ SIMDE_FLOAT16_VALUE(8.27), SIMDE_FLOAT16_VALUE(9.57), SIMDE_FLOAT16_VALUE(5.62), SIMDE_FLOAT16_VALUE(-9.12),
SIMDE_FLOAT16_VALUE(-9.92), SIMDE_FLOAT16_VALUE(-9.39), SIMDE_FLOAT16_VALUE(-2.30), SIMDE_FLOAT16_VALUE(-6.87) } },
{ { SIMDE_FLOAT16_VALUE(8.40), SIMDE_FLOAT16_VALUE(5.82), SIMDE_FLOAT16_VALUE(4.38), SIMDE_FLOAT16_VALUE(-5.40),
SIMDE_FLOAT16_VALUE(-6.07), SIMDE_FLOAT16_VALUE(4.66), SIMDE_FLOAT16_VALUE(0.72), SIMDE_FLOAT16_VALUE(-5.19) },
{ SIMDE_FLOAT16_VALUE(-8.40), SIMDE_FLOAT16_VALUE(-5.82), SIMDE_FLOAT16_VALUE(-4.38), SIMDE_FLOAT16_VALUE(5.40),
SIMDE_FLOAT16_VALUE(6.07), SIMDE_FLOAT16_VALUE(-4.66), SIMDE_FLOAT16_VALUE(-0.72), SIMDE_FLOAT16_VALUE(5.19) } },
{ { SIMDE_FLOAT16_VALUE(-5.48), SIMDE_FLOAT16_VALUE(-2.52), SIMDE_FLOAT16_VALUE(-7.59), SIMDE_FLOAT16_VALUE(-2.00),
SIMDE_FLOAT16_VALUE(-0.60), SIMDE_FLOAT16_VALUE(-5.50), SIMDE_FLOAT16_VALUE(-3.14), SIMDE_FLOAT16_VALUE(-7.01) },
{ SIMDE_FLOAT16_VALUE(5.48), SIMDE_FLOAT16_VALUE(2.52), SIMDE_FLOAT16_VALUE(7.59), SIMDE_FLOAT16_VALUE(2.00),
SIMDE_FLOAT16_VALUE(0.60), SIMDE_FLOAT16_VALUE(5.50), SIMDE_FLOAT16_VALUE(3.14), SIMDE_FLOAT16_VALUE(7.01) } },
{ { SIMDE_FLOAT16_VALUE(7.90), SIMDE_FLOAT16_VALUE(7.99), SIMDE_FLOAT16_VALUE(5.87), SIMDE_FLOAT16_VALUE(-5.79),
SIMDE_FLOAT16_VALUE(8.13), SIMDE_FLOAT16_VALUE(1.99), SIMDE_FLOAT16_VALUE(5.19), SIMDE_FLOAT16_VALUE(-2.41) },
{ SIMDE_FLOAT16_VALUE(-7.90), SIMDE_FLOAT16_VALUE(-7.99), SIMDE_FLOAT16_VALUE(-5.87), SIMDE_FLOAT16_VALUE(5.79),
SIMDE_FLOAT16_VALUE(-8.13), SIMDE_FLOAT16_VALUE(-1.99), SIMDE_FLOAT16_VALUE(-5.19), SIMDE_FLOAT16_VALUE(2.41) } },
{ { SIMDE_FLOAT16_VALUE(8.20), SIMDE_FLOAT16_VALUE(-4.45), SIMDE_FLOAT16_VALUE(5.77), SIMDE_FLOAT16_VALUE(3.26),
SIMDE_FLOAT16_VALUE(-8.62), SIMDE_FLOAT16_VALUE(5.18), SIMDE_FLOAT16_VALUE(-2.97), SIMDE_FLOAT16_VALUE(-6.39) },
{ SIMDE_FLOAT16_VALUE(-8.20), SIMDE_FLOAT16_VALUE(4.45), SIMDE_FLOAT16_VALUE(-5.77), SIMDE_FLOAT16_VALUE(-3.26),
SIMDE_FLOAT16_VALUE(8.62), SIMDE_FLOAT16_VALUE(-5.18), SIMDE_FLOAT16_VALUE(2.97), SIMDE_FLOAT16_VALUE(6.39) } },
{ { SIMDE_FLOAT16_VALUE(4.61), SIMDE_FLOAT16_VALUE(7.91), SIMDE_FLOAT16_VALUE(-4.45), SIMDE_FLOAT16_VALUE(4.55),
SIMDE_FLOAT16_VALUE(-7.34), SIMDE_FLOAT16_VALUE(8.67), SIMDE_FLOAT16_VALUE(6.04), SIMDE_FLOAT16_VALUE(0.69) },
{ SIMDE_FLOAT16_VALUE(-4.61), SIMDE_FLOAT16_VALUE(-7.91), SIMDE_FLOAT16_VALUE(4.45), SIMDE_FLOAT16_VALUE(-4.55),
SIMDE_FLOAT16_VALUE(7.34), SIMDE_FLOAT16_VALUE(-8.67), SIMDE_FLOAT16_VALUE(-6.04), SIMDE_FLOAT16_VALUE(-0.69) } },
{ { SIMDE_FLOAT16_VALUE(3.21), SIMDE_FLOAT16_VALUE(-0.24), SIMDE_FLOAT16_VALUE(2.01), SIMDE_FLOAT16_VALUE(-4.17),
SIMDE_FLOAT16_VALUE(-2.50), SIMDE_FLOAT16_VALUE(2.98), SIMDE_FLOAT16_VALUE(0.42), SIMDE_FLOAT16_VALUE(1.50) },
{ SIMDE_FLOAT16_VALUE(-3.21), SIMDE_FLOAT16_VALUE(0.24), SIMDE_FLOAT16_VALUE(-2.01), SIMDE_FLOAT16_VALUE(4.17),
SIMDE_FLOAT16_VALUE(2.50), SIMDE_FLOAT16_VALUE(-2.98), SIMDE_FLOAT16_VALUE(-0.42), SIMDE_FLOAT16_VALUE(-1.50) } },
};
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_vnegq_f16(a);
simde_test_arm_neon_assert_equal_f16x8(r, simde_vld1q_f16(test_vec[i].r), 1);
}
return 0;
}
static int
test_simde_vneg_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -569,6 +686,8 @@ test_simde_vnegq_s64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vnegh_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vneg_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vneg_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vneg_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vneg_s8)
@ -576,6 +695,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vneg_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vneg_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vneg_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vnegq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vnegq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vnegq_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vnegq_s8)