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,77 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/cmla.h"
static int
test_simde_vcmla_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
simde_float16 b[4];
simde_float16 r[4];
simde_float16 r_[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -14.580), SIMDE_FLOAT16_VALUE( 2.381), SIMDE_FLOAT16_VALUE( 6.429), SIMDE_FLOAT16_VALUE( -5.674) },
{ SIMDE_FLOAT16_VALUE( -9.705), SIMDE_FLOAT16_VALUE( 9.555), SIMDE_FLOAT16_VALUE( -6.899), SIMDE_FLOAT16_VALUE( 11.776) },
{ SIMDE_FLOAT16_VALUE( 3.272), SIMDE_FLOAT16_VALUE( 6.858), SIMDE_FLOAT16_VALUE( 7.996), SIMDE_FLOAT16_VALUE( 14.266) },
{ SIMDE_FLOAT16_VALUE( 144.771), SIMDE_FLOAT16_VALUE(-132.375), SIMDE_FLOAT16_VALUE( -36.358), SIMDE_FLOAT16_VALUE( 89.974) } },
{ { SIMDE_FLOAT16_VALUE( 6.479), SIMDE_FLOAT16_VALUE( -10.551), SIMDE_FLOAT16_VALUE( 5.370), SIMDE_FLOAT16_VALUE( 7.647) },
{ SIMDE_FLOAT16_VALUE( 7.155), SIMDE_FLOAT16_VALUE( -8.084), SIMDE_FLOAT16_VALUE( -7.527), SIMDE_FLOAT16_VALUE( 14.352) },
{ SIMDE_FLOAT16_VALUE( -9.566), SIMDE_FLOAT16_VALUE( -2.051), SIMDE_FLOAT16_VALUE( -0.646), SIMDE_FLOAT16_VALUE( 14.658) },
{ SIMDE_FLOAT16_VALUE( 36.791), SIMDE_FLOAT16_VALUE( -54.427), SIMDE_FLOAT16_VALUE( -41.066), SIMDE_FLOAT16_VALUE( 91.728) } },
{ { SIMDE_FLOAT16_VALUE( 14.902), SIMDE_FLOAT16_VALUE( 5.583), SIMDE_FLOAT16_VALUE( -0.964), SIMDE_FLOAT16_VALUE( -3.595) },
{ SIMDE_FLOAT16_VALUE( 8.258), SIMDE_FLOAT16_VALUE( -8.017), SIMDE_FLOAT16_VALUE( -0.371), SIMDE_FLOAT16_VALUE( 11.306) },
{ SIMDE_FLOAT16_VALUE( 1.689), SIMDE_FLOAT16_VALUE( 3.958), SIMDE_FLOAT16_VALUE( 4.635), SIMDE_FLOAT16_VALUE( 5.936) },
{ SIMDE_FLOAT16_VALUE( 124.750), SIMDE_FLOAT16_VALUE(-115.511), SIMDE_FLOAT16_VALUE( 4.993), SIMDE_FLOAT16_VALUE( -4.963) } },
{ { SIMDE_FLOAT16_VALUE( 12.690), SIMDE_FLOAT16_VALUE( -5.992), SIMDE_FLOAT16_VALUE( 13.634), SIMDE_FLOAT16_VALUE( 10.995) },
{ SIMDE_FLOAT16_VALUE( 9.694), SIMDE_FLOAT16_VALUE( -4.324), SIMDE_FLOAT16_VALUE( -13.875), SIMDE_FLOAT16_VALUE( -10.074) },
{ SIMDE_FLOAT16_VALUE( -8.517), SIMDE_FLOAT16_VALUE( 0.071), SIMDE_FLOAT16_VALUE( 14.890), SIMDE_FLOAT16_VALUE( -6.765) },
{ SIMDE_FLOAT16_VALUE( 114.500), SIMDE_FLOAT16_VALUE( -54.801), SIMDE_FLOAT16_VALUE(-174.282), SIMDE_FLOAT16_VALUE(-144.000) } },
{ { SIMDE_FLOAT16_VALUE( -2.913), SIMDE_FLOAT16_VALUE( 1.285), SIMDE_FLOAT16_VALUE( -5.910), SIMDE_FLOAT16_VALUE( -7.043) },
{ SIMDE_FLOAT16_VALUE( 6.508), SIMDE_FLOAT16_VALUE( -0.206), SIMDE_FLOAT16_VALUE( 8.282), SIMDE_FLOAT16_VALUE( -5.635) },
{ SIMDE_FLOAT16_VALUE( 4.193), SIMDE_FLOAT16_VALUE( 8.883), SIMDE_FLOAT16_VALUE( 1.038), SIMDE_FLOAT16_VALUE( 2.650) },
{ SIMDE_FLOAT16_VALUE( -14.765), SIMDE_FLOAT16_VALUE( 9.483), SIMDE_FLOAT16_VALUE( -47.909), SIMDE_FLOAT16_VALUE( 35.953) } },
{ { SIMDE_FLOAT16_VALUE( -8.667), SIMDE_FLOAT16_VALUE( -9.058), SIMDE_FLOAT16_VALUE( 0.413), SIMDE_FLOAT16_VALUE( -6.915) },
{ SIMDE_FLOAT16_VALUE( -9.594), SIMDE_FLOAT16_VALUE( -4.142), SIMDE_FLOAT16_VALUE( -13.624), SIMDE_FLOAT16_VALUE( 3.616) },
{ SIMDE_FLOAT16_VALUE( 9.875), SIMDE_FLOAT16_VALUE( 13.498), SIMDE_FLOAT16_VALUE( -10.113), SIMDE_FLOAT16_VALUE( -8.469) },
{ SIMDE_FLOAT16_VALUE( 93.026), SIMDE_FLOAT16_VALUE( 49.397), SIMDE_FLOAT16_VALUE( -15.740), SIMDE_FLOAT16_VALUE( -6.976) } },
{ { SIMDE_FLOAT16_VALUE( 10.926), SIMDE_FLOAT16_VALUE( 9.739), SIMDE_FLOAT16_VALUE( 1.593), SIMDE_FLOAT16_VALUE( 9.358) },
{ SIMDE_FLOAT16_VALUE( -9.690), SIMDE_FLOAT16_VALUE( -14.054), SIMDE_FLOAT16_VALUE( -11.425), SIMDE_FLOAT16_VALUE( -9.229) },
{ SIMDE_FLOAT16_VALUE( -12.442), SIMDE_FLOAT16_VALUE( 9.777), SIMDE_FLOAT16_VALUE( 7.931), SIMDE_FLOAT16_VALUE( -0.352) },
{ SIMDE_FLOAT16_VALUE(-118.315), SIMDE_FLOAT16_VALUE(-143.875), SIMDE_FLOAT16_VALUE( -10.269), SIMDE_FLOAT16_VALUE( -15.054) } },
{ { SIMDE_FLOAT16_VALUE( -4.708), SIMDE_FLOAT16_VALUE( -9.401), SIMDE_FLOAT16_VALUE( 10.464), SIMDE_FLOAT16_VALUE( -2.625) },
{ SIMDE_FLOAT16_VALUE( 10.591), SIMDE_FLOAT16_VALUE( -9.143), SIMDE_FLOAT16_VALUE( -10.033), SIMDE_FLOAT16_VALUE( -14.441) },
{ SIMDE_FLOAT16_VALUE( 14.550), SIMDE_FLOAT16_VALUE( 12.138), SIMDE_FLOAT16_VALUE( 5.496), SIMDE_FLOAT16_VALUE( -3.696) },
{ SIMDE_FLOAT16_VALUE( -35.312), SIMDE_FLOAT16_VALUE( 55.183), SIMDE_FLOAT16_VALUE( -99.489), SIMDE_FLOAT16_VALUE(-154.807) } },
};
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_float16x4_t r = simde_vld1_f16(test_vec[i].r);
simde_float16x4_t r_ = simde_vcmla_f16(r, 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_float16x4_t b = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f);
simde_float16x4_t r = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f);
simde_float16x4_t r_ = simde_vcmla_f16(a, b, r);
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_f16x4(2, r, 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_vcmla_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -73,6 +144,108 @@ test_simde_vcmla_f32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vcmlaq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
simde_float16 b[8];
simde_float16 r[8];
simde_float16 r_[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 2.660), SIMDE_FLOAT16_VALUE( -0.125), SIMDE_FLOAT16_VALUE( -11.136), SIMDE_FLOAT16_VALUE( 13.855),
SIMDE_FLOAT16_VALUE( 8.555), SIMDE_FLOAT16_VALUE( -9.847), SIMDE_FLOAT16_VALUE( -5.094), SIMDE_FLOAT16_VALUE( 13.275) },
{ SIMDE_FLOAT16_VALUE( 9.062), SIMDE_FLOAT16_VALUE( 12.419), SIMDE_FLOAT16_VALUE( 14.777), SIMDE_FLOAT16_VALUE( -11.186),
SIMDE_FLOAT16_VALUE( 2.568), SIMDE_FLOAT16_VALUE( 11.524), SIMDE_FLOAT16_VALUE( -5.565), SIMDE_FLOAT16_VALUE( 8.693) },
{ SIMDE_FLOAT16_VALUE( -14.151), SIMDE_FLOAT16_VALUE( 13.346), SIMDE_FLOAT16_VALUE( 7.830), SIMDE_FLOAT16_VALUE( 12.618),
SIMDE_FLOAT16_VALUE( -14.338), SIMDE_FLOAT16_VALUE( -7.896), SIMDE_FLOAT16_VALUE( -4.686), SIMDE_FLOAT16_VALUE( -8.748) },
{ SIMDE_FLOAT16_VALUE( 9.954), SIMDE_FLOAT16_VALUE( 46.381), SIMDE_FLOAT16_VALUE(-156.625), SIMDE_FLOAT16_VALUE( 137.185),
SIMDE_FLOAT16_VALUE( 7.631), SIMDE_FLOAT16_VALUE( 90.692), SIMDE_FLOAT16_VALUE( 23.662), SIMDE_FLOAT16_VALUE( -53.030) } },
{ { SIMDE_FLOAT16_VALUE( -12.047), SIMDE_FLOAT16_VALUE( -1.499), SIMDE_FLOAT16_VALUE( 10.278), SIMDE_FLOAT16_VALUE( -7.319),
SIMDE_FLOAT16_VALUE( -14.738), SIMDE_FLOAT16_VALUE( 3.708), SIMDE_FLOAT16_VALUE( -5.660), SIMDE_FLOAT16_VALUE( 13.023) },
{ SIMDE_FLOAT16_VALUE( 11.315), SIMDE_FLOAT16_VALUE( 10.815), SIMDE_FLOAT16_VALUE( -13.083), SIMDE_FLOAT16_VALUE( -7.453),
SIMDE_FLOAT16_VALUE( -8.416), SIMDE_FLOAT16_VALUE( 12.161), SIMDE_FLOAT16_VALUE( -13.028), SIMDE_FLOAT16_VALUE( 13.979) },
{ SIMDE_FLOAT16_VALUE( -10.629), SIMDE_FLOAT16_VALUE( -11.813), SIMDE_FLOAT16_VALUE( 2.147), SIMDE_FLOAT16_VALUE( -1.617),
SIMDE_FLOAT16_VALUE( -14.156), SIMDE_FLOAT16_VALUE( 0.763), SIMDE_FLOAT16_VALUE( -10.355), SIMDE_FLOAT16_VALUE( -8.688) },
{ SIMDE_FLOAT16_VALUE(-146.875), SIMDE_FLOAT16_VALUE(-142.101), SIMDE_FLOAT16_VALUE(-132.320), SIMDE_FLOAT16_VALUE( -78.219),
SIMDE_FLOAT16_VALUE( 109.879), SIMDE_FLOAT16_VALUE(-178.466), SIMDE_FLOAT16_VALUE( 63.383), SIMDE_FLOAT16_VALUE( -87.809) } },
{ { SIMDE_FLOAT16_VALUE( 13.462), SIMDE_FLOAT16_VALUE( 13.564), SIMDE_FLOAT16_VALUE( 0.387), SIMDE_FLOAT16_VALUE( -5.852),
SIMDE_FLOAT16_VALUE( -6.617), SIMDE_FLOAT16_VALUE( 6.807), SIMDE_FLOAT16_VALUE( 6.317), SIMDE_FLOAT16_VALUE( 5.651) },
{ SIMDE_FLOAT16_VALUE( -14.262), SIMDE_FLOAT16_VALUE( -1.927), SIMDE_FLOAT16_VALUE( -2.843), SIMDE_FLOAT16_VALUE( -1.056),
SIMDE_FLOAT16_VALUE( 13.280), SIMDE_FLOAT16_VALUE( -10.463), SIMDE_FLOAT16_VALUE( -2.439), SIMDE_FLOAT16_VALUE( 9.177) },
{ SIMDE_FLOAT16_VALUE( -10.779), SIMDE_FLOAT16_VALUE( 3.828), SIMDE_FLOAT16_VALUE( -10.057), SIMDE_FLOAT16_VALUE( 11.249),
SIMDE_FLOAT16_VALUE( 3.804), SIMDE_FLOAT16_VALUE( 12.748), SIMDE_FLOAT16_VALUE( -4.565), SIMDE_FLOAT16_VALUE( -1.800) },
{ SIMDE_FLOAT16_VALUE(-202.774), SIMDE_FLOAT16_VALUE( -22.113), SIMDE_FLOAT16_VALUE( -11.157), SIMDE_FLOAT16_VALUE( 10.840),
SIMDE_FLOAT16_VALUE( -84.070), SIMDE_FLOAT16_VALUE( 81.982), SIMDE_FLOAT16_VALUE( -19.972), SIMDE_FLOAT16_VALUE( 56.171) } },
{ { SIMDE_FLOAT16_VALUE( -0.769), SIMDE_FLOAT16_VALUE( 5.730), SIMDE_FLOAT16_VALUE( -10.003), SIMDE_FLOAT16_VALUE( -9.301),
SIMDE_FLOAT16_VALUE( 10.283), SIMDE_FLOAT16_VALUE( 11.235), SIMDE_FLOAT16_VALUE( 0.729), SIMDE_FLOAT16_VALUE( 9.599) },
{ SIMDE_FLOAT16_VALUE( 7.422), SIMDE_FLOAT16_VALUE( -1.447), SIMDE_FLOAT16_VALUE( 11.320), SIMDE_FLOAT16_VALUE( -9.983),
SIMDE_FLOAT16_VALUE( 6.695), SIMDE_FLOAT16_VALUE( 9.049), SIMDE_FLOAT16_VALUE( -14.700), SIMDE_FLOAT16_VALUE( -4.056) },
{ SIMDE_FLOAT16_VALUE( 11.993), SIMDE_FLOAT16_VALUE( -6.320), SIMDE_FLOAT16_VALUE( -1.870), SIMDE_FLOAT16_VALUE( 5.734),
SIMDE_FLOAT16_VALUE( 13.703), SIMDE_FLOAT16_VALUE( 1.444), SIMDE_FLOAT16_VALUE( 3.544), SIMDE_FLOAT16_VALUE( 10.590) },
{ SIMDE_FLOAT16_VALUE( 6.285), SIMDE_FLOAT16_VALUE( -5.207), SIMDE_FLOAT16_VALUE(-115.104), SIMDE_FLOAT16_VALUE( 105.594),
SIMDE_FLOAT16_VALUE( 82.548), SIMDE_FLOAT16_VALUE( 94.495), SIMDE_FLOAT16_VALUE( -7.172), SIMDE_FLOAT16_VALUE( 7.633) } },
{ { SIMDE_FLOAT16_VALUE( -14.819), SIMDE_FLOAT16_VALUE( -13.424), SIMDE_FLOAT16_VALUE( -14.285), SIMDE_FLOAT16_VALUE( -1.952),
SIMDE_FLOAT16_VALUE( -12.797), SIMDE_FLOAT16_VALUE( 2.774), SIMDE_FLOAT16_VALUE( 12.656), SIMDE_FLOAT16_VALUE( 14.733) },
{ SIMDE_FLOAT16_VALUE( 11.577), SIMDE_FLOAT16_VALUE( -5.697), SIMDE_FLOAT16_VALUE( -14.071), SIMDE_FLOAT16_VALUE( 5.989),
SIMDE_FLOAT16_VALUE( -0.981), SIMDE_FLOAT16_VALUE( 14.537), SIMDE_FLOAT16_VALUE( 0.749), SIMDE_FLOAT16_VALUE( -13.564) },
{ SIMDE_FLOAT16_VALUE( 10.165), SIMDE_FLOAT16_VALUE( 2.393), SIMDE_FLOAT16_VALUE( -4.059), SIMDE_FLOAT16_VALUE( -12.754),
SIMDE_FLOAT16_VALUE( -5.329), SIMDE_FLOAT16_VALUE( -5.615), SIMDE_FLOAT16_VALUE( 4.648), SIMDE_FLOAT16_VALUE( 3.512) },
{ SIMDE_FLOAT16_VALUE(-161.395), SIMDE_FLOAT16_VALUE( 86.817), SIMDE_FLOAT16_VALUE( 196.875), SIMDE_FLOAT16_VALUE( -98.307),
SIMDE_FLOAT16_VALUE( 7.225), SIMDE_FLOAT16_VALUE(-191.645), SIMDE_FLOAT16_VALUE( 14.127), SIMDE_FLOAT16_VALUE(-168.154) } },
{ { SIMDE_FLOAT16_VALUE( 12.104), SIMDE_FLOAT16_VALUE( 14.127), SIMDE_FLOAT16_VALUE( -12.810), SIMDE_FLOAT16_VALUE( 13.261),
SIMDE_FLOAT16_VALUE( 0.594), SIMDE_FLOAT16_VALUE( 13.117), SIMDE_FLOAT16_VALUE( 14.321), SIMDE_FLOAT16_VALUE( -8.977) },
{ SIMDE_FLOAT16_VALUE( 6.318), SIMDE_FLOAT16_VALUE( -6.941), SIMDE_FLOAT16_VALUE( -1.574), SIMDE_FLOAT16_VALUE( 9.272),
SIMDE_FLOAT16_VALUE( 5.292), SIMDE_FLOAT16_VALUE( -3.907), SIMDE_FLOAT16_VALUE( 2.096), SIMDE_FLOAT16_VALUE( -2.906) },
{ SIMDE_FLOAT16_VALUE( -9.903), SIMDE_FLOAT16_VALUE( 14.229), SIMDE_FLOAT16_VALUE( -13.996), SIMDE_FLOAT16_VALUE( -1.765),
SIMDE_FLOAT16_VALUE( -10.959), SIMDE_FLOAT16_VALUE( -4.766), SIMDE_FLOAT16_VALUE( 7.253), SIMDE_FLOAT16_VALUE( -12.000) },
{ SIMDE_FLOAT16_VALUE( 66.570), SIMDE_FLOAT16_VALUE( -69.785), SIMDE_FLOAT16_VALUE( 6.167), SIMDE_FLOAT16_VALUE(-120.539),
SIMDE_FLOAT16_VALUE( -7.816), SIMDE_FLOAT16_VALUE( -7.087), SIMDE_FLOAT16_VALUE( 37.270), SIMDE_FLOAT16_VALUE( -53.617) } },
{ { SIMDE_FLOAT16_VALUE( -9.081), SIMDE_FLOAT16_VALUE( -6.627), SIMDE_FLOAT16_VALUE( 9.325), SIMDE_FLOAT16_VALUE( 12.985),
SIMDE_FLOAT16_VALUE( 10.502), SIMDE_FLOAT16_VALUE( -2.384), SIMDE_FLOAT16_VALUE( -1.044), SIMDE_FLOAT16_VALUE( 7.203) },
{ SIMDE_FLOAT16_VALUE( 1.061), SIMDE_FLOAT16_VALUE( -4.808), SIMDE_FLOAT16_VALUE( -3.896), SIMDE_FLOAT16_VALUE( 13.617),
SIMDE_FLOAT16_VALUE( 1.253), SIMDE_FLOAT16_VALUE( 1.269), SIMDE_FLOAT16_VALUE( 12.637), SIMDE_FLOAT16_VALUE( 7.841) },
{ SIMDE_FLOAT16_VALUE( -13.392), SIMDE_FLOAT16_VALUE( 2.028), SIMDE_FLOAT16_VALUE( 9.657), SIMDE_FLOAT16_VALUE( 8.654),
SIMDE_FLOAT16_VALUE( 5.011), SIMDE_FLOAT16_VALUE( 11.006), SIMDE_FLOAT16_VALUE( 6.390), SIMDE_FLOAT16_VALUE( -5.339) },
{ SIMDE_FLOAT16_VALUE( -23.027), SIMDE_FLOAT16_VALUE( 45.689), SIMDE_FLOAT16_VALUE( -26.673), SIMDE_FLOAT16_VALUE( 135.633),
SIMDE_FLOAT16_VALUE( 18.170), SIMDE_FLOAT16_VALUE( 24.333), SIMDE_FLOAT16_VALUE( -6.803), SIMDE_FLOAT16_VALUE( -13.525) } },
{ { SIMDE_FLOAT16_VALUE( -9.044), SIMDE_FLOAT16_VALUE( 4.997), SIMDE_FLOAT16_VALUE( -3.491), SIMDE_FLOAT16_VALUE( 8.835),
SIMDE_FLOAT16_VALUE( 6.493), SIMDE_FLOAT16_VALUE( -14.148), SIMDE_FLOAT16_VALUE( -9.377), SIMDE_FLOAT16_VALUE( 0.898) },
{ SIMDE_FLOAT16_VALUE( -1.146), SIMDE_FLOAT16_VALUE( -8.006), SIMDE_FLOAT16_VALUE( 2.743), SIMDE_FLOAT16_VALUE( -4.727),
SIMDE_FLOAT16_VALUE( 4.020), SIMDE_FLOAT16_VALUE( -14.476), SIMDE_FLOAT16_VALUE( -4.336), SIMDE_FLOAT16_VALUE( 0.841) },
{ SIMDE_FLOAT16_VALUE( 10.704), SIMDE_FLOAT16_VALUE( 5.885), SIMDE_FLOAT16_VALUE( -2.906), SIMDE_FLOAT16_VALUE( 2.583),
SIMDE_FLOAT16_VALUE( -10.201), SIMDE_FLOAT16_VALUE( -12.433), SIMDE_FLOAT16_VALUE( 3.257), SIMDE_FLOAT16_VALUE( 4.737) },
{ SIMDE_FLOAT16_VALUE( 21.068), SIMDE_FLOAT16_VALUE( 78.291), SIMDE_FLOAT16_VALUE( -12.482), SIMDE_FLOAT16_VALUE( 19.085),
SIMDE_FLOAT16_VALUE( 15.901), SIMDE_FLOAT16_VALUE(-106.426), SIMDE_FLOAT16_VALUE( 43.916), SIMDE_FLOAT16_VALUE( -3.149) } },
};
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_float16x8_t r = simde_vld1q_f16(test_vec[i].r);
simde_float16x8_t r_ = simde_vcmlaq_f16(r, a, 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_float16x8_t b = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f);
simde_float16x8_t r = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f);
simde_float16x8_t r_ = simde_vcmlaq_f16(a, b, r);
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_f16x8(2, r, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_f16x8(2, r_, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vcmlaq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -212,7 +385,9 @@ test_simde_vcmlaq_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vcmla_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmla_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_f64)
SIMDE_TEST_FUNC_LIST_END