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

143
thirdparty/simde/test/arm/neon/mulx_n.c vendored Normal file
View file

@ -0,0 +1,143 @@
#define SIMDE_TEST_ARM_NEON_INSN mulx_n
#include "test-neon.h"
#include "../../../simde/arm/neon/mulx_n.h"
static int
test_simde_vmulx_n_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
simde_float16 b;
simde_float16 r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 6.147), SIMDE_FLOAT16_VALUE( 8.026), SIMDE_FLOAT16_VALUE( 8.205), SIMDE_FLOAT16_VALUE( -4.372) },
SIMDE_FLOAT16_VALUE( 10.677),
{ SIMDE_FLOAT16_VALUE( 65.632), SIMDE_FLOAT16_VALUE( 85.694), SIMDE_FLOAT16_VALUE( 87.605), SIMDE_FLOAT16_VALUE( -46.680) } },
{ { SIMDE_FLOAT16_VALUE( -8.080), SIMDE_FLOAT16_VALUE( -2.013), SIMDE_FLOAT16_VALUE( -2.635), SIMDE_FLOAT16_VALUE( 9.062) },
SIMDE_FLOAT16_VALUE( -8.726),
{ SIMDE_FLOAT16_VALUE( 70.506), SIMDE_FLOAT16_VALUE( 17.565), SIMDE_FLOAT16_VALUE( 22.993), SIMDE_FLOAT16_VALUE( -79.075) } },
{ { SIMDE_FLOAT16_VALUE( -2.635), SIMDE_FLOAT16_VALUE( -5.732), SIMDE_FLOAT16_VALUE( -12.813), SIMDE_FLOAT16_VALUE( 14.355) },
SIMDE_FLOAT16_VALUE( -7.538),
{ SIMDE_FLOAT16_VALUE( 19.863), SIMDE_FLOAT16_VALUE( 43.208), SIMDE_FLOAT16_VALUE( 96.584), SIMDE_FLOAT16_VALUE( -108.208) } },
{ { SIMDE_FLOAT16_VALUE( 9.770), SIMDE_FLOAT16_VALUE( 3.322), SIMDE_FLOAT16_VALUE( 14.353), SIMDE_FLOAT16_VALUE( -10.374) },
SIMDE_FLOAT16_VALUE( -1.829),
{ SIMDE_FLOAT16_VALUE( -17.869), SIMDE_FLOAT16_VALUE( -6.076), SIMDE_FLOAT16_VALUE( -26.252), SIMDE_FLOAT16_VALUE( 18.974) } },
{ { SIMDE_FLOAT16_VALUE( 12.353), SIMDE_FLOAT16_VALUE( 4.352), SIMDE_FLOAT16_VALUE( 9.042), SIMDE_FLOAT16_VALUE( -8.456) },
SIMDE_FLOAT16_VALUE( 0.593),
{ SIMDE_FLOAT16_VALUE( 7.325), SIMDE_FLOAT16_VALUE( 2.581), SIMDE_FLOAT16_VALUE( 5.362), SIMDE_FLOAT16_VALUE( -5.014) } },
{ { SIMDE_FLOAT16_VALUE( 10.085), SIMDE_FLOAT16_VALUE( 5.073), SIMDE_FLOAT16_VALUE( -13.995), SIMDE_FLOAT16_VALUE( -3.692) },
SIMDE_FLOAT16_VALUE( -6.356),
{ SIMDE_FLOAT16_VALUE( -64.100), SIMDE_FLOAT16_VALUE( -32.244), SIMDE_FLOAT16_VALUE( 88.952), SIMDE_FLOAT16_VALUE( 23.466) } },
{ { SIMDE_FLOAT16_VALUE( 2.616), SIMDE_FLOAT16_VALUE( 13.510), SIMDE_FLOAT16_VALUE( -10.555), SIMDE_FLOAT16_VALUE( 5.012) },
SIMDE_FLOAT16_VALUE( 3.524),
{ SIMDE_FLOAT16_VALUE( 9.219), SIMDE_FLOAT16_VALUE( 47.609), SIMDE_FLOAT16_VALUE( -37.196), SIMDE_FLOAT16_VALUE( 17.662) } },
{ { SIMDE_FLOAT16_VALUE( 1.775), SIMDE_FLOAT16_VALUE( -14.567), SIMDE_FLOAT16_VALUE( 0.614), SIMDE_FLOAT16_VALUE( -11.430) },
SIMDE_FLOAT16_VALUE( 7.777),
{ SIMDE_FLOAT16_VALUE( 13.804), SIMDE_FLOAT16_VALUE( -113.288), SIMDE_FLOAT16_VALUE( 4.775), SIMDE_FLOAT16_VALUE( -88.891) } },
};
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_float16 b = test_vec[i].b;
simde_float16x4_t r = simde_vmulx_n_f16(a, b);
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_float16_t b = simde_test_codegen_random_f16(-100.0f, 100.0f);
simde_float16x4_t r = simde_vmulx_n_f16(a, b);
simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_f16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_f16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vmulxq_n_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
simde_float16 b;
simde_float16 r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -0.208), SIMDE_FLOAT16_VALUE( 9.608), SIMDE_FLOAT16_VALUE( -10.786), SIMDE_FLOAT16_VALUE( -4.477),
SIMDE_FLOAT16_VALUE( -5.752), SIMDE_FLOAT16_VALUE( 0.158), SIMDE_FLOAT16_VALUE( -0.915), SIMDE_FLOAT16_VALUE( -2.118) },
SIMDE_FLOAT16_VALUE( 13.403),
{ SIMDE_FLOAT16_VALUE( -2.788), SIMDE_FLOAT16_VALUE( 128.875), SIMDE_FLOAT16_VALUE( -144.565), SIMDE_FLOAT16_VALUE( -60.005),
SIMDE_FLOAT16_VALUE( -77.094), SIMDE_FLOAT16_VALUE( 2.118), SIMDE_FLOAT16_VALUE( -12.264), SIMDE_FLOAT16_VALUE( -28.388) } },
{ { SIMDE_FLOAT16_VALUE( -1.086), SIMDE_FLOAT16_VALUE( 9.971), SIMDE_FLOAT16_VALUE( 4.082), SIMDE_FLOAT16_VALUE( 1.330),
SIMDE_FLOAT16_VALUE( -6.446), SIMDE_FLOAT16_VALUE( -9.402), SIMDE_FLOAT16_VALUE( 1.195), SIMDE_FLOAT16_VALUE( 9.305) },
SIMDE_FLOAT16_VALUE( 2.399),
{ SIMDE_FLOAT16_VALUE( -2.605), SIMDE_FLOAT16_VALUE( 23.920), SIMDE_FLOAT16_VALUE( 9.793), SIMDE_FLOAT16_VALUE( 3.191),
SIMDE_FLOAT16_VALUE( -15.464), SIMDE_FLOAT16_VALUE( -22.555), SIMDE_FLOAT16_VALUE( 2.867), SIMDE_FLOAT16_VALUE( 22.323) } },
{ { SIMDE_FLOAT16_VALUE( -13.930), SIMDE_FLOAT16_VALUE( -1.967), SIMDE_FLOAT16_VALUE( -10.269), SIMDE_FLOAT16_VALUE( 7.466),
SIMDE_FLOAT16_VALUE( 5.053), SIMDE_FLOAT16_VALUE( -6.886), SIMDE_FLOAT16_VALUE( -3.365), SIMDE_FLOAT16_VALUE( -1.955) },
SIMDE_FLOAT16_VALUE( -11.395),
{ SIMDE_FLOAT16_VALUE( 158.732), SIMDE_FLOAT16_VALUE( 22.414), SIMDE_FLOAT16_VALUE( 117.015), SIMDE_FLOAT16_VALUE( -85.075),
SIMDE_FLOAT16_VALUE( -57.579), SIMDE_FLOAT16_VALUE( 78.466), SIMDE_FLOAT16_VALUE( 38.344), SIMDE_FLOAT16_VALUE( 22.277) } },
{ { SIMDE_FLOAT16_VALUE( 1.599), SIMDE_FLOAT16_VALUE( -5.262), SIMDE_FLOAT16_VALUE( 10.110), SIMDE_FLOAT16_VALUE( 6.774),
SIMDE_FLOAT16_VALUE( 11.013), SIMDE_FLOAT16_VALUE( -9.229), SIMDE_FLOAT16_VALUE( -4.293), SIMDE_FLOAT16_VALUE( 13.202) },
SIMDE_FLOAT16_VALUE( -8.516),
{ SIMDE_FLOAT16_VALUE( -13.617), SIMDE_FLOAT16_VALUE( 44.811), SIMDE_FLOAT16_VALUE( -86.097), SIMDE_FLOAT16_VALUE( -57.687),
SIMDE_FLOAT16_VALUE( -93.787), SIMDE_FLOAT16_VALUE( 78.594), SIMDE_FLOAT16_VALUE( 36.559), SIMDE_FLOAT16_VALUE( -112.428) } },
{ { SIMDE_FLOAT16_VALUE( -4.086), SIMDE_FLOAT16_VALUE( -8.122), SIMDE_FLOAT16_VALUE( -6.214), SIMDE_FLOAT16_VALUE( -0.827),
SIMDE_FLOAT16_VALUE( 10.931), SIMDE_FLOAT16_VALUE( -4.143), SIMDE_FLOAT16_VALUE( 12.376), SIMDE_FLOAT16_VALUE( 13.925) },
SIMDE_FLOAT16_VALUE( -0.114),
{ SIMDE_FLOAT16_VALUE( 0.466), SIMDE_FLOAT16_VALUE( 0.926), SIMDE_FLOAT16_VALUE( 0.708), SIMDE_FLOAT16_VALUE( 0.094),
SIMDE_FLOAT16_VALUE( -1.246), SIMDE_FLOAT16_VALUE( 0.472), SIMDE_FLOAT16_VALUE( -1.411), SIMDE_FLOAT16_VALUE( -1.587) } },
{ { SIMDE_FLOAT16_VALUE( 1.958), SIMDE_FLOAT16_VALUE( 2.298), SIMDE_FLOAT16_VALUE( -4.675), SIMDE_FLOAT16_VALUE( -13.009),
SIMDE_FLOAT16_VALUE( 7.319), SIMDE_FLOAT16_VALUE( 0.171), SIMDE_FLOAT16_VALUE( 2.135), SIMDE_FLOAT16_VALUE( -3.966) },
SIMDE_FLOAT16_VALUE( -4.928),
{ SIMDE_FLOAT16_VALUE( -9.649), SIMDE_FLOAT16_VALUE( -11.325), SIMDE_FLOAT16_VALUE( 23.038), SIMDE_FLOAT16_VALUE( 64.108),
SIMDE_FLOAT16_VALUE( -36.068), SIMDE_FLOAT16_VALUE( -0.843), SIMDE_FLOAT16_VALUE( -10.521), SIMDE_FLOAT16_VALUE( 19.544) } },
{ { SIMDE_FLOAT16_VALUE( 13.718), SIMDE_FLOAT16_VALUE( -10.061), SIMDE_FLOAT16_VALUE( 2.857), SIMDE_FLOAT16_VALUE( 3.005),
SIMDE_FLOAT16_VALUE( 6.442), SIMDE_FLOAT16_VALUE( -2.565), SIMDE_FLOAT16_VALUE( -14.003), SIMDE_FLOAT16_VALUE( -4.137) },
SIMDE_FLOAT16_VALUE( -0.792),
{ SIMDE_FLOAT16_VALUE( -10.865), SIMDE_FLOAT16_VALUE( 7.968), SIMDE_FLOAT16_VALUE( -2.263), SIMDE_FLOAT16_VALUE( -2.380),
SIMDE_FLOAT16_VALUE( -5.102), SIMDE_FLOAT16_VALUE( 2.031), SIMDE_FLOAT16_VALUE( 11.090), SIMDE_FLOAT16_VALUE( 3.277) } },
{ { SIMDE_FLOAT16_VALUE( 6.022), SIMDE_FLOAT16_VALUE( -5.553), SIMDE_FLOAT16_VALUE( 0.441), SIMDE_FLOAT16_VALUE( -3.958),
SIMDE_FLOAT16_VALUE( -4.461), SIMDE_FLOAT16_VALUE( 3.670), SIMDE_FLOAT16_VALUE( 5.103), SIMDE_FLOAT16_VALUE( 5.566) },
SIMDE_FLOAT16_VALUE( -7.034),
{ SIMDE_FLOAT16_VALUE( -42.359), SIMDE_FLOAT16_VALUE( 39.060), SIMDE_FLOAT16_VALUE( -3.102), SIMDE_FLOAT16_VALUE( 27.841),
SIMDE_FLOAT16_VALUE( 31.379), SIMDE_FLOAT16_VALUE( -25.815), SIMDE_FLOAT16_VALUE( -35.895), SIMDE_FLOAT16_VALUE( -39.151) } },
};
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_vmulxq_n_f16(a, test_vec[i].b);
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_float16_t b = simde_test_codegen_random_f16(-100.0f, 100.0f);
simde_float16x8_t r = simde_vmulxq_n_f16(a, b);
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_f16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vmulx_n_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vmulxq_n_f16)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"