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:
parent
e4e666f459
commit
3f10e05176
912 changed files with 224964 additions and 11502 deletions
135
thirdparty/simde/test/arm/neon/dot.c
vendored
135
thirdparty/simde/test/arm/neon/dot.c
vendored
|
|
@ -318,12 +318,147 @@ test_simde_vdotq_u32 (SIMDE_MUNIT_TEST_ARGS) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vbfdot_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float32_t a[2];
|
||||
simde_bfloat16_t b[4];
|
||||
simde_bfloat16_t c[4];
|
||||
simde_float32_t r[2];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT32_C( 252.14), SIMDE_FLOAT32_C( -907.02) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -4.81), SIMDE_BFLOAT16_VALUE( 63.25), SIMDE_BFLOAT16_VALUE( -33.00), SIMDE_BFLOAT16_VALUE( 85.00) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 69.00), SIMDE_BFLOAT16_VALUE( -92.00), SIMDE_BFLOAT16_VALUE( 42.00), SIMDE_BFLOAT16_VALUE( -15.00) },
|
||||
{ SIMDE_FLOAT32_C( -5898.92), SIMDE_FLOAT32_C( -3568.02) } },
|
||||
{ { SIMDE_FLOAT32_C( 913.22), SIMDE_FLOAT32_C( 129.13) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -33.75), SIMDE_BFLOAT16_VALUE( -81.00), SIMDE_BFLOAT16_VALUE( -74.00), SIMDE_BFLOAT16_VALUE( -32.50) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -34.00), SIMDE_BFLOAT16_VALUE( 90.00), SIMDE_BFLOAT16_VALUE( -85.00), SIMDE_BFLOAT16_VALUE( 6.16) },
|
||||
{ SIMDE_FLOAT32_C( -5229.28), SIMDE_FLOAT32_C( 6219.05) } },
|
||||
{ { SIMDE_FLOAT32_C( 570.92), SIMDE_FLOAT32_C( -274.51) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -71.50), SIMDE_BFLOAT16_VALUE( -39.25), SIMDE_BFLOAT16_VALUE( 31.00), SIMDE_BFLOAT16_VALUE( 9.12) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -15.44), SIMDE_BFLOAT16_VALUE( 32.75), SIMDE_BFLOAT16_VALUE( -88.50), SIMDE_BFLOAT16_VALUE( 89.00) },
|
||||
{ SIMDE_FLOAT32_C( 389.26), SIMDE_FLOAT32_C( -2205.89) } },
|
||||
{ { SIMDE_FLOAT32_C( 968.24), SIMDE_FLOAT32_C( 363.85) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 98.50), SIMDE_BFLOAT16_VALUE( -8.00), SIMDE_BFLOAT16_VALUE( -0.28), SIMDE_BFLOAT16_VALUE( -34.25) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -23.00), SIMDE_BFLOAT16_VALUE( -31.25), SIMDE_BFLOAT16_VALUE( -26.62), SIMDE_BFLOAT16_VALUE( -80.50) },
|
||||
{ SIMDE_FLOAT32_C( -1047.26), SIMDE_FLOAT32_C( 3128.41) } },
|
||||
{ { SIMDE_FLOAT32_C( 536.43), SIMDE_FLOAT32_C( -353.12) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 32.00), SIMDE_BFLOAT16_VALUE( -80.00), SIMDE_BFLOAT16_VALUE( -16.75), SIMDE_BFLOAT16_VALUE( 57.75) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -12.88), SIMDE_BFLOAT16_VALUE( 49.00), SIMDE_BFLOAT16_VALUE( 47.75), SIMDE_BFLOAT16_VALUE( 1.81) },
|
||||
{ SIMDE_FLOAT32_C( -3795.57), SIMDE_FLOAT32_C( -1048.26) } },
|
||||
{ { SIMDE_FLOAT32_C( -446.13), SIMDE_FLOAT32_C( 50.80) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 74.00), SIMDE_BFLOAT16_VALUE( -16.25), SIMDE_BFLOAT16_VALUE( 65.50), SIMDE_BFLOAT16_VALUE( 5.41) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( -61.75), SIMDE_BFLOAT16_VALUE( -95.50) },
|
||||
{ SIMDE_FLOAT32_C( 7207.31), SIMDE_FLOAT32_C( -4510.12) } },
|
||||
{ { SIMDE_FLOAT32_C( -603.46), SIMDE_FLOAT32_C( -649.21) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 40.25), SIMDE_BFLOAT16_VALUE( -61.50), SIMDE_BFLOAT16_VALUE( 27.00), SIMDE_BFLOAT16_VALUE( -59.75) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 4.09), SIMDE_BFLOAT16_VALUE( -95.50), SIMDE_BFLOAT16_VALUE( 8.81), SIMDE_BFLOAT16_VALUE( 77.00) },
|
||||
{ SIMDE_FLOAT32_C( 5434.56), SIMDE_FLOAT32_C( -5012.02) } },
|
||||
{ { SIMDE_FLOAT32_C( -768.71), SIMDE_FLOAT32_C( -375.04) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -57.75), SIMDE_BFLOAT16_VALUE( 55.00), SIMDE_BFLOAT16_VALUE( -17.62), SIMDE_BFLOAT16_VALUE( 25.38) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 13.00), SIMDE_BFLOAT16_VALUE( 69.00), SIMDE_BFLOAT16_VALUE( -25.38), SIMDE_BFLOAT16_VALUE( -38.75) },
|
||||
{ SIMDE_FLOAT32_C( 2275.54), SIMDE_FLOAT32_C( -911.09) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_float32x2_t a = simde_vld1_f32(test_vec[i].a);
|
||||
simde_bfloat16x4_t b = simde_vld1_bf16(test_vec[i].b);
|
||||
simde_bfloat16x4_t c = simde_vld1_bf16(test_vec[i].c);
|
||||
simde_float32x2_t r = simde_vbfdot_f32(a, b, c);
|
||||
|
||||
simde_test_arm_neon_assert_equal_f32x2(r, simde_vld1_f32(test_vec[i].r), 1);
|
||||
}
|
||||
|
||||
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_bfloat16x4_t b = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
|
||||
simde_bfloat16x4_t c = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
|
||||
simde_float32x2_t r = simde_vbfdot_f32(a, b, c);
|
||||
|
||||
simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_bf16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_bf16x4(2, c, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f32x2(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
test_simde_vbfdotq_f32 (SIMDE_MUNIT_TEST_ARGS) {
|
||||
#if 1
|
||||
struct {
|
||||
simde_float32_t a[4];
|
||||
simde_bfloat16_t b[8];
|
||||
simde_bfloat16_t c[8];
|
||||
simde_float32_t r[4];
|
||||
} test_vec[] = {
|
||||
{ { SIMDE_FLOAT32_C( 702.57), SIMDE_FLOAT32_C( -400.04), SIMDE_FLOAT32_C( 887.18), SIMDE_FLOAT32_C( 555.97) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -1.57), SIMDE_BFLOAT16_VALUE( 8.56), SIMDE_BFLOAT16_VALUE( 5.94), SIMDE_BFLOAT16_VALUE( -69.50),
|
||||
SIMDE_BFLOAT16_VALUE( 56.50), SIMDE_BFLOAT16_VALUE( 66.00), SIMDE_BFLOAT16_VALUE( -1.67), SIMDE_BFLOAT16_VALUE( 25.62) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -23.75), SIMDE_BFLOAT16_VALUE( 0.36), SIMDE_BFLOAT16_VALUE( -3.33), SIMDE_BFLOAT16_VALUE( -2.45),
|
||||
SIMDE_BFLOAT16_VALUE( -90.00), SIMDE_BFLOAT16_VALUE( -0.43), SIMDE_BFLOAT16_VALUE( -80.00), SIMDE_BFLOAT16_VALUE( -47.50) },
|
||||
{ SIMDE_FLOAT32_C( 742.94), SIMDE_FLOAT32_C( -249.31), SIMDE_FLOAT32_C( -4226.18), SIMDE_FLOAT32_C( -527.47) } },
|
||||
{ { SIMDE_FLOAT32_C( -849.68), SIMDE_FLOAT32_C( -39.59), SIMDE_FLOAT32_C( -943.04), SIMDE_FLOAT32_C( -354.67) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 20.62), SIMDE_BFLOAT16_VALUE( 67.50), SIMDE_BFLOAT16_VALUE( -16.88), SIMDE_BFLOAT16_VALUE( -63.00),
|
||||
SIMDE_BFLOAT16_VALUE( -59.00), SIMDE_BFLOAT16_VALUE( 84.50), SIMDE_BFLOAT16_VALUE( -10.12), SIMDE_BFLOAT16_VALUE( -88.50) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -55.75), SIMDE_BFLOAT16_VALUE( -21.38), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 42.75),
|
||||
SIMDE_BFLOAT16_VALUE( 87.00), SIMDE_BFLOAT16_VALUE( -27.25), SIMDE_BFLOAT16_VALUE( 73.00), SIMDE_BFLOAT16_VALUE( 43.75) },
|
||||
{ SIMDE_FLOAT32_C( -3442.34), SIMDE_FLOAT32_C( -3863.46), SIMDE_FLOAT32_C( -8378.67), SIMDE_FLOAT32_C( -4965.67) } },
|
||||
{ { SIMDE_FLOAT32_C( -611.39), SIMDE_FLOAT32_C( -286.15), SIMDE_FLOAT32_C( -307.09), SIMDE_FLOAT32_C( 151.25) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 72.00), SIMDE_BFLOAT16_VALUE( 66.00), SIMDE_BFLOAT16_VALUE( -87.50), SIMDE_BFLOAT16_VALUE( 81.50),
|
||||
SIMDE_BFLOAT16_VALUE( -34.50), SIMDE_BFLOAT16_VALUE( -67.00), SIMDE_BFLOAT16_VALUE( -65.50), SIMDE_BFLOAT16_VALUE( -19.38) },
|
||||
{ SIMDE_BFLOAT16_VALUE( 28.88), SIMDE_BFLOAT16_VALUE( -60.00), SIMDE_BFLOAT16_VALUE( 45.00), SIMDE_BFLOAT16_VALUE( -50.50),
|
||||
SIMDE_BFLOAT16_VALUE( -92.50), SIMDE_BFLOAT16_VALUE( -72.00), SIMDE_BFLOAT16_VALUE( -13.31), SIMDE_BFLOAT16_VALUE( -51.50) },
|
||||
{ SIMDE_FLOAT32_C( -2492.39), SIMDE_FLOAT32_C( -8339.40), SIMDE_FLOAT32_C( 7708.16), SIMDE_FLOAT32_C( 2021.03) } },
|
||||
{ { SIMDE_FLOAT32_C( -875.40), SIMDE_FLOAT32_C( 765.80), SIMDE_FLOAT32_C( -401.45), SIMDE_FLOAT32_C( -432.53) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -44.75), SIMDE_BFLOAT16_VALUE( -73.50), SIMDE_BFLOAT16_VALUE( 99.50), SIMDE_BFLOAT16_VALUE( -57.75),
|
||||
SIMDE_BFLOAT16_VALUE( -0.49), SIMDE_BFLOAT16_VALUE( 72.50), SIMDE_BFLOAT16_VALUE( 86.00), SIMDE_BFLOAT16_VALUE( 38.25) },
|
||||
{ SIMDE_BFLOAT16_VALUE( -56.00), SIMDE_BFLOAT16_VALUE( -44.75), SIMDE_BFLOAT16_VALUE( -46.50), SIMDE_BFLOAT16_VALUE( -84.50),
|
||||
SIMDE_BFLOAT16_VALUE( -79.00), SIMDE_BFLOAT16_VALUE( -33.75), SIMDE_BFLOAT16_VALUE( 97.50), SIMDE_BFLOAT16_VALUE( -13.25) },
|
||||
{ SIMDE_FLOAT32_C( 4919.73), SIMDE_FLOAT32_C( 1018.93), SIMDE_FLOAT32_C( -2809.60), SIMDE_FLOAT32_C( 7445.66) } },
|
||||
};
|
||||
|
||||
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
||||
simde_float32x4_t a = simde_vld1q_f32(test_vec[i].a);
|
||||
simde_bfloat16x8_t b = simde_vld1q_bf16(test_vec[i].b);
|
||||
simde_bfloat16x8_t c = simde_vld1q_bf16(test_vec[i].c);
|
||||
simde_float32x4_t r = simde_vbfdotq_f32(a, b, c);
|
||||
|
||||
simde_test_arm_neon_assert_equal_f32x4(r, simde_vld1q_f32(test_vec[i].r), 1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
fputc('\n', stdout);
|
||||
for (int i = 0 ; i < 4 ; i++) {
|
||||
simde_float32x4_t a = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
|
||||
simde_bfloat16x8_t b = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
|
||||
simde_bfloat16x8_t c = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
|
||||
simde_float32x4_t r = simde_vbfdotq_f32(a, b, c);
|
||||
|
||||
simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
|
||||
simde_test_arm_neon_write_bf16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_bf16x8(2, c, SIMDE_TEST_VEC_POS_MIDDLE);
|
||||
simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_BEGIN
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vdot_s32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vdot_u32)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vdotq_s32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vdotq_u32)
|
||||
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vbfdot_f32)
|
||||
SIMDE_TEST_FUNC_LIST_ENTRY(vbfdotq_f32)
|
||||
SIMDE_TEST_FUNC_LIST_END
|
||||
|
||||
#include "test-neon-footer.h"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue