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

@ -4,8 +4,56 @@
#include "../../../simde/arm/neon/cltz.h"
#include "../../../simde/arm/neon/reinterpret.h"
static int
test_simde_vcltz_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
uint16_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 9.414), SIMDE_FLOAT16_VALUE( -22.697), SIMDE_FLOAT16_VALUE( - 2.044), SIMDE_FLOAT16_VALUE(10.309) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( - 0.842), SIMDE_FLOAT16_VALUE( -24.135), SIMDE_FLOAT16_VALUE( 4.853), SIMDE_FLOAT16_VALUE( -25.116) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE(15.876), SIMDE_FLOAT16_VALUE(14.021), SIMDE_FLOAT16_VALUE( -20.571), SIMDE_FLOAT16_VALUE( -16.980) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE(20.714), SIMDE_FLOAT16_VALUE( - 9.050), SIMDE_FLOAT16_VALUE(22.773), SIMDE_FLOAT16_VALUE( -25.134) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -10.853), SIMDE_FLOAT16_VALUE( -13.065), SIMDE_FLOAT16_VALUE( -19.550), SIMDE_FLOAT16_VALUE(25.965) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -18.329), SIMDE_FLOAT16_VALUE(16.423), SIMDE_FLOAT16_VALUE( - 2.286), SIMDE_FLOAT16_VALUE( -27.386) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -21.617), SIMDE_FLOAT16_VALUE( -20.611), SIMDE_FLOAT16_VALUE(11.553), SIMDE_FLOAT16_VALUE(10.292) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE(27.032), SIMDE_FLOAT16_VALUE( -20.587), SIMDE_FLOAT16_VALUE(20.330), SIMDE_FLOAT16_VALUE(23.132) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
};
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_uint16x4_t r = simde_vcltz_f16(a);
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_uint16x4_t r = simde_vcltz_f16(a);
simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltz_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 a[2];
uint32_t r[2];
@ -36,10 +84,23 @@ test_simde_vcltz_f32 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float32x2_t a = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f);
simde_uint32x2_t r = simde_vcltz_f32(a);
simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltz_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 a[1];
uint64_t r[1];
@ -70,10 +131,23 @@ test_simde_vcltz_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float64x1_t a = simde_test_arm_neon_random_f64x1(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
simde_uint64x1_t r = simde_vcltz_f64(a);
simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u64x1(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltz_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t a[8];
uint8_t r[8];
@ -104,10 +178,23 @@ test_simde_vcltz_s8 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_uint8x8_t r = simde_vcltz_s8(a);
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltz_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t a[4];
uint16_t r[4];
@ -138,10 +225,23 @@ test_simde_vcltz_s16 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_uint16x4_t r = simde_vcltz_s16(a);
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltz_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t a[2];
uint32_t r[2];
@ -172,10 +272,23 @@ test_simde_vcltz_s32 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_uint32x2_t r = simde_vcltz_s32(a);
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltz_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a[1];
uint64_t r[1];
@ -206,10 +319,85 @@ test_simde_vcltz_s64 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_uint64x1_t r = simde_vcltz_s64(a);
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u64x1(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
uint16_t r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( - 1.527), SIMDE_FLOAT16_VALUE( - 7.156), SIMDE_FLOAT16_VALUE( 0.644), SIMDE_FLOAT16_VALUE( 5.397),
SIMDE_FLOAT16_VALUE(20.270), SIMDE_FLOAT16_VALUE( 7.110), SIMDE_FLOAT16_VALUE(22.060), SIMDE_FLOAT16_VALUE( -28.149) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0),
UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -23.412), SIMDE_FLOAT16_VALUE(26.697), SIMDE_FLOAT16_VALUE( -19.659), SIMDE_FLOAT16_VALUE( 7.755),
SIMDE_FLOAT16_VALUE( -18.384), SIMDE_FLOAT16_VALUE( 2.923), SIMDE_FLOAT16_VALUE( -25.086), SIMDE_FLOAT16_VALUE( -16.079) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0),
UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( - 1.734), SIMDE_FLOAT16_VALUE( 9.920), SIMDE_FLOAT16_VALUE(15.824), SIMDE_FLOAT16_VALUE( 1.851),
SIMDE_FLOAT16_VALUE( 8.740), SIMDE_FLOAT16_VALUE(28.782), SIMDE_FLOAT16_VALUE(24.278), SIMDE_FLOAT16_VALUE(20.947) },
{ UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0),
UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( 2.211), SIMDE_FLOAT16_VALUE( - 2.949), SIMDE_FLOAT16_VALUE(28.515), SIMDE_FLOAT16_VALUE( -11.428),
SIMDE_FLOAT16_VALUE( -17.855), SIMDE_FLOAT16_VALUE( - 2.077), SIMDE_FLOAT16_VALUE( 8.552), SIMDE_FLOAT16_VALUE( - 6.580) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX,
UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 3.912), SIMDE_FLOAT16_VALUE( -13.497), SIMDE_FLOAT16_VALUE( 6.232), SIMDE_FLOAT16_VALUE( 0.255),
SIMDE_FLOAT16_VALUE( 5.858), SIMDE_FLOAT16_VALUE( - 2.388), SIMDE_FLOAT16_VALUE( -13.003), SIMDE_FLOAT16_VALUE( - 2.953) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0),
UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -13.006), SIMDE_FLOAT16_VALUE( - 6.291), SIMDE_FLOAT16_VALUE(25.169), SIMDE_FLOAT16_VALUE(20.013),
SIMDE_FLOAT16_VALUE( -19.562), SIMDE_FLOAT16_VALUE(11.841), SIMDE_FLOAT16_VALUE( - 0.035), SIMDE_FLOAT16_VALUE( 3.541) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0),
UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -14.891), SIMDE_FLOAT16_VALUE(19.771), SIMDE_FLOAT16_VALUE( -18.229), SIMDE_FLOAT16_VALUE( -15.832),
SIMDE_FLOAT16_VALUE( - 7.117), SIMDE_FLOAT16_VALUE( - 6.054), SIMDE_FLOAT16_VALUE( -16.799), SIMDE_FLOAT16_VALUE( -13.868) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX,
UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 5.872), SIMDE_FLOAT16_VALUE( - 3.436), SIMDE_FLOAT16_VALUE(29.629), SIMDE_FLOAT16_VALUE(14.318),
SIMDE_FLOAT16_VALUE( -20.699), SIMDE_FLOAT16_VALUE( -26.955), SIMDE_FLOAT16_VALUE( - 6.992), SIMDE_FLOAT16_VALUE( -22.497) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0),
UINT16_MAX, 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_uint16x8_t r = simde_vcltzq_f16(a);
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_uint16x8_t r = simde_vcltzq_f16(a);
simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 a[4];
uint32_t r[4];
@ -239,10 +427,23 @@ test_simde_vcltzq_f32 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float32x4_t a = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
simde_uint32x4_t r = simde_vcltzq_f32(a);
simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 a[2];
uint64_t r[2];
@ -273,10 +474,23 @@ test_simde_vcltzq_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float64x2_t a = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
simde_uint64x2_t r = simde_vcltzq_f64(a);
simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t a[16];
uint8_t r[16];
@ -323,10 +537,23 @@ test_simde_vcltzq_s8 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_uint8x16_t r = simde_vcltzq_s8(a);
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t a[8];
uint16_t r[8];
@ -357,10 +584,23 @@ test_simde_vcltzq_s16 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_uint16x8_t r = simde_vcltzq_s16(a);
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t a[4];
uint32_t r[4];
@ -390,10 +630,23 @@ test_simde_vcltzq_s32 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_uint32x4_t r = simde_vcltzq_s32(a);
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcltzq_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a[2];
uint64_t r[2];
@ -423,6 +676,18 @@ test_simde_vcltzq_s64 (SIMDE_MUNIT_TEST_ARGS) {
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_uint64x2_t r = simde_vcltzq_s64(a);
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
@ -557,7 +822,53 @@ test_simde_vcltzs_f32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vcltzh_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a;
uint16_t r;
} test_vec[] = {
{ SIMDE_FLOAT16_VALUE( -10.632),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE(21.069),
UINT16_C( 0) },
{ SIMDE_FLOAT16_VALUE( - 6.106),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE(18.507),
UINT16_C( 0) },
{ SIMDE_FLOAT16_VALUE( -15.011),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE( -25.511),
UINT16_MAX },
{ SIMDE_FLOAT16_VALUE(22.656),
UINT16_C( 0) },
{ SIMDE_FLOAT16_VALUE(29.863),
UINT16_C( 0) },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
uint16_t r = simde_vcltzh_f16(test_vec[i].a);
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_uint16_t r = simde_vcltzh_f16(a);
simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST);
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(vcltz_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltz_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltz_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltz_s8)
@ -565,6 +876,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vcltz_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltz_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltz_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzq_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzq_s8)
@ -575,6 +887,7 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vcltzq_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzd_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzd_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzs_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcltzh_f16)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"