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,179 @@
#include "test-neon.h"
#include "../../../simde/arm/neon/cmla_rot270.h"
static int
test_simde_vcmla_rot270_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.317), SIMDE_FLOAT16_VALUE( -5.199), SIMDE_FLOAT16_VALUE( 8.312), SIMDE_FLOAT16_VALUE( 14.285) },
{ SIMDE_FLOAT16_VALUE( 11.834), SIMDE_FLOAT16_VALUE( -4.190), SIMDE_FLOAT16_VALUE( 9.832), SIMDE_FLOAT16_VALUE( 5.399) },
{ SIMDE_FLOAT16_VALUE( 14.530), SIMDE_FLOAT16_VALUE( 14.919), SIMDE_FLOAT16_VALUE( -11.627), SIMDE_FLOAT16_VALUE( -10.592) },
{ SIMDE_FLOAT16_VALUE( 36.314), SIMDE_FLOAT16_VALUE( 76.444), SIMDE_FLOAT16_VALUE( 65.498), SIMDE_FLOAT16_VALUE(-151.042) } },
{ { SIMDE_FLOAT16_VALUE( 1.244), SIMDE_FLOAT16_VALUE( -5.154), SIMDE_FLOAT16_VALUE( -14.694), SIMDE_FLOAT16_VALUE( 6.864) },
{ SIMDE_FLOAT16_VALUE( 14.229), SIMDE_FLOAT16_VALUE( -4.812), SIMDE_FLOAT16_VALUE( -13.332), SIMDE_FLOAT16_VALUE( 11.771) },
{ SIMDE_FLOAT16_VALUE( -2.838), SIMDE_FLOAT16_VALUE( 7.614), SIMDE_FLOAT16_VALUE( 5.140), SIMDE_FLOAT16_VALUE( -10.514) },
{ SIMDE_FLOAT16_VALUE( 21.963), SIMDE_FLOAT16_VALUE( 80.950), SIMDE_FLOAT16_VALUE( 85.936), SIMDE_FLOAT16_VALUE( 80.997) } },
{ { SIMDE_FLOAT16_VALUE( -9.788), SIMDE_FLOAT16_VALUE( -1.556), SIMDE_FLOAT16_VALUE( -6.414), SIMDE_FLOAT16_VALUE( -14.446) },
{ SIMDE_FLOAT16_VALUE( -13.086), SIMDE_FLOAT16_VALUE( -6.366), SIMDE_FLOAT16_VALUE( 14.551), SIMDE_FLOAT16_VALUE( -6.804) },
{ SIMDE_FLOAT16_VALUE( -7.215), SIMDE_FLOAT16_VALUE( -11.668), SIMDE_FLOAT16_VALUE( 9.720), SIMDE_FLOAT16_VALUE( 6.214) },
{ SIMDE_FLOAT16_VALUE( 2.690), SIMDE_FLOAT16_VALUE( -32.030), SIMDE_FLOAT16_VALUE( 108.011), SIMDE_FLOAT16_VALUE( 216.500) } },
{ { SIMDE_FLOAT16_VALUE( -13.324), SIMDE_FLOAT16_VALUE( -6.533), SIMDE_FLOAT16_VALUE( 10.359), SIMDE_FLOAT16_VALUE( 5.365) },
{ SIMDE_FLOAT16_VALUE( 14.807), SIMDE_FLOAT16_VALUE( -11.312), SIMDE_FLOAT16_VALUE( -4.750), SIMDE_FLOAT16_VALUE( -3.475) },
{ SIMDE_FLOAT16_VALUE( 11.634), SIMDE_FLOAT16_VALUE( 12.197), SIMDE_FLOAT16_VALUE( 2.925), SIMDE_FLOAT16_VALUE( 13.960) },
{ SIMDE_FLOAT16_VALUE( 85.535), SIMDE_FLOAT16_VALUE( 108.931), SIMDE_FLOAT16_VALUE( -15.718), SIMDE_FLOAT16_VALUE( 39.444) } },
{ { SIMDE_FLOAT16_VALUE( -10.789), SIMDE_FLOAT16_VALUE( 13.419), SIMDE_FLOAT16_VALUE( 11.020), SIMDE_FLOAT16_VALUE( 6.510) },
{ SIMDE_FLOAT16_VALUE( -3.191), SIMDE_FLOAT16_VALUE( 8.870), SIMDE_FLOAT16_VALUE( -11.872), SIMDE_FLOAT16_VALUE( 7.492) },
{ SIMDE_FLOAT16_VALUE( 12.924), SIMDE_FLOAT16_VALUE( -7.734), SIMDE_FLOAT16_VALUE( -1.877), SIMDE_FLOAT16_VALUE( -14.023) },
{ SIMDE_FLOAT16_VALUE( 131.875), SIMDE_FLOAT16_VALUE( 35.086), SIMDE_FLOAT16_VALUE( 46.896), SIMDE_FLOAT16_VALUE( 63.264) } },
{ { SIMDE_FLOAT16_VALUE( -11.245), SIMDE_FLOAT16_VALUE( -13.091), SIMDE_FLOAT16_VALUE( -8.428), SIMDE_FLOAT16_VALUE( 0.794) },
{ SIMDE_FLOAT16_VALUE( -6.250), SIMDE_FLOAT16_VALUE( -2.007), SIMDE_FLOAT16_VALUE( -2.227), SIMDE_FLOAT16_VALUE( -13.728) },
{ SIMDE_FLOAT16_VALUE( 5.443), SIMDE_FLOAT16_VALUE( 5.694), SIMDE_FLOAT16_VALUE( 10.309), SIMDE_FLOAT16_VALUE( -6.647) },
{ SIMDE_FLOAT16_VALUE( 31.717), SIMDE_FLOAT16_VALUE( -76.125), SIMDE_FLOAT16_VALUE( -0.591), SIMDE_FLOAT16_VALUE( -4.879) } },
{ { SIMDE_FLOAT16_VALUE( 8.499), SIMDE_FLOAT16_VALUE( -4.425), SIMDE_FLOAT16_VALUE( 13.238), SIMDE_FLOAT16_VALUE( 13.506) },
{ SIMDE_FLOAT16_VALUE( 5.012), SIMDE_FLOAT16_VALUE( -8.268), SIMDE_FLOAT16_VALUE( 0.013), SIMDE_FLOAT16_VALUE( -0.851) },
{ SIMDE_FLOAT16_VALUE( -0.162), SIMDE_FLOAT16_VALUE( -12.425), SIMDE_FLOAT16_VALUE( -13.388), SIMDE_FLOAT16_VALUE( -9.498) },
{ SIMDE_FLOAT16_VALUE( 36.424), SIMDE_FLOAT16_VALUE( 9.753), SIMDE_FLOAT16_VALUE( -24.882), SIMDE_FLOAT16_VALUE( -9.674) } },
{ { SIMDE_FLOAT16_VALUE( -9.310), SIMDE_FLOAT16_VALUE( 10.283), SIMDE_FLOAT16_VALUE( 1.625), SIMDE_FLOAT16_VALUE( 10.867) },
{ SIMDE_FLOAT16_VALUE( -2.257), SIMDE_FLOAT16_VALUE( 13.683), SIMDE_FLOAT16_VALUE( 2.874), SIMDE_FLOAT16_VALUE( -11.409) },
{ SIMDE_FLOAT16_VALUE( -3.524), SIMDE_FLOAT16_VALUE( -5.018), SIMDE_FLOAT16_VALUE( 13.170), SIMDE_FLOAT16_VALUE( -10.560) },
{ SIMDE_FLOAT16_VALUE( 137.178), SIMDE_FLOAT16_VALUE( 18.191), SIMDE_FLOAT16_VALUE(-110.812), SIMDE_FLOAT16_VALUE( -41.792) } },
};
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_rot270_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_rot270_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_vcmlaq_rot270_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( 13.623), SIMDE_FLOAT16_VALUE( 4.120), SIMDE_FLOAT16_VALUE( 13.875), SIMDE_FLOAT16_VALUE( -9.445),
SIMDE_FLOAT16_VALUE( -4.267), SIMDE_FLOAT16_VALUE( -8.207), SIMDE_FLOAT16_VALUE( 3.307), SIMDE_FLOAT16_VALUE( 2.096) },
{ SIMDE_FLOAT16_VALUE( -9.948), SIMDE_FLOAT16_VALUE( 10.516), SIMDE_FLOAT16_VALUE( -10.230), SIMDE_FLOAT16_VALUE( 8.231),
SIMDE_FLOAT16_VALUE( 4.520), SIMDE_FLOAT16_VALUE( -12.639), SIMDE_FLOAT16_VALUE( -0.727), SIMDE_FLOAT16_VALUE( 4.512) },
{ SIMDE_FLOAT16_VALUE( 12.434), SIMDE_FLOAT16_VALUE( 11.682), SIMDE_FLOAT16_VALUE( 12.083), SIMDE_FLOAT16_VALUE( 3.186),
SIMDE_FLOAT16_VALUE( -1.436), SIMDE_FLOAT16_VALUE( -13.380), SIMDE_FLOAT16_VALUE( 12.726), SIMDE_FLOAT16_VALUE( 12.882) },
{ SIMDE_FLOAT16_VALUE( 55.760), SIMDE_FLOAT16_VALUE( 52.668), SIMDE_FLOAT16_VALUE( -65.659), SIMDE_FLOAT16_VALUE( -93.436),
SIMDE_FLOAT16_VALUE( 102.292), SIMDE_FLOAT16_VALUE( 23.716), SIMDE_FLOAT16_VALUE( 22.183), SIMDE_FLOAT16_VALUE( 14.406) } },
{ { SIMDE_FLOAT16_VALUE( 9.988), SIMDE_FLOAT16_VALUE( -14.412), SIMDE_FLOAT16_VALUE( -3.477), SIMDE_FLOAT16_VALUE( 14.547),
SIMDE_FLOAT16_VALUE( -13.915), SIMDE_FLOAT16_VALUE( -13.058), SIMDE_FLOAT16_VALUE( 2.627), SIMDE_FLOAT16_VALUE( -5.823) },
{ SIMDE_FLOAT16_VALUE( -0.689), SIMDE_FLOAT16_VALUE( 1.276), SIMDE_FLOAT16_VALUE( -12.021), SIMDE_FLOAT16_VALUE( -0.516),
SIMDE_FLOAT16_VALUE( -3.607), SIMDE_FLOAT16_VALUE( -2.932), SIMDE_FLOAT16_VALUE( 12.171), SIMDE_FLOAT16_VALUE( -3.619) },
{ SIMDE_FLOAT16_VALUE( -13.903), SIMDE_FLOAT16_VALUE( -1.887), SIMDE_FLOAT16_VALUE( -1.107), SIMDE_FLOAT16_VALUE( -8.997),
SIMDE_FLOAT16_VALUE( -6.419), SIMDE_FLOAT16_VALUE( -0.942), SIMDE_FLOAT16_VALUE( 11.348), SIMDE_FLOAT16_VALUE( -8.123) },
{ SIMDE_FLOAT16_VALUE( -32.293), SIMDE_FLOAT16_VALUE( -11.817), SIMDE_FLOAT16_VALUE( -8.613), SIMDE_FLOAT16_VALUE( 165.872),
SIMDE_FLOAT16_VALUE( 31.867), SIMDE_FLOAT16_VALUE( -48.042), SIMDE_FLOAT16_VALUE( 32.421), SIMDE_FLOAT16_VALUE( 62.749) } },
{ { SIMDE_FLOAT16_VALUE( -12.982), SIMDE_FLOAT16_VALUE( 9.637), SIMDE_FLOAT16_VALUE( 1.935), SIMDE_FLOAT16_VALUE( -2.294),
SIMDE_FLOAT16_VALUE( -0.379), SIMDE_FLOAT16_VALUE( 4.350), SIMDE_FLOAT16_VALUE( -9.731), SIMDE_FLOAT16_VALUE( -2.410) },
{ SIMDE_FLOAT16_VALUE( -8.187), SIMDE_FLOAT16_VALUE( 2.922), SIMDE_FLOAT16_VALUE( 0.632), SIMDE_FLOAT16_VALUE( 0.395),
SIMDE_FLOAT16_VALUE( -9.626), SIMDE_FLOAT16_VALUE( -5.573), SIMDE_FLOAT16_VALUE( -9.382), SIMDE_FLOAT16_VALUE( 11.978) },
{ SIMDE_FLOAT16_VALUE( -14.453), SIMDE_FLOAT16_VALUE( -11.938), SIMDE_FLOAT16_VALUE( -0.710), SIMDE_FLOAT16_VALUE( -10.129),
SIMDE_FLOAT16_VALUE( -12.266), SIMDE_FLOAT16_VALUE( -5.999), SIMDE_FLOAT16_VALUE( 9.135), SIMDE_FLOAT16_VALUE( 6.563) },
{ SIMDE_FLOAT16_VALUE( 13.706), SIMDE_FLOAT16_VALUE( 66.960), SIMDE_FLOAT16_VALUE( -1.616), SIMDE_FLOAT16_VALUE( -8.679),
SIMDE_FLOAT16_VALUE( -36.509), SIMDE_FLOAT16_VALUE( 35.874), SIMDE_FLOAT16_VALUE( -19.732), SIMDE_FLOAT16_VALUE( -16.048) } },
{ { SIMDE_FLOAT16_VALUE( 3.520), SIMDE_FLOAT16_VALUE( -7.325), SIMDE_FLOAT16_VALUE( 2.132), SIMDE_FLOAT16_VALUE( -10.139),
SIMDE_FLOAT16_VALUE( 10.532), SIMDE_FLOAT16_VALUE( -13.703), SIMDE_FLOAT16_VALUE( 12.814), SIMDE_FLOAT16_VALUE( 8.609) },
{ SIMDE_FLOAT16_VALUE( 13.624), SIMDE_FLOAT16_VALUE( 13.624), SIMDE_FLOAT16_VALUE( 0.059), SIMDE_FLOAT16_VALUE( -7.519),
SIMDE_FLOAT16_VALUE( -8.207), SIMDE_FLOAT16_VALUE( -5.044), SIMDE_FLOAT16_VALUE( -1.774), SIMDE_FLOAT16_VALUE( -3.925) },
{ SIMDE_FLOAT16_VALUE( 9.285), SIMDE_FLOAT16_VALUE( 6.141), SIMDE_FLOAT16_VALUE( -2.162), SIMDE_FLOAT16_VALUE( 13.757),
SIMDE_FLOAT16_VALUE( -7.557), SIMDE_FLOAT16_VALUE( 3.167), SIMDE_FLOAT16_VALUE( -6.688), SIMDE_FLOAT16_VALUE( 0.752) },
{ SIMDE_FLOAT16_VALUE( -90.511), SIMDE_FLOAT16_VALUE( 105.937), SIMDE_FLOAT16_VALUE( 74.073), SIMDE_FLOAT16_VALUE( 14.355),
SIMDE_FLOAT16_VALUE( 61.561), SIMDE_FLOAT16_VALUE(-109.294), SIMDE_FLOAT16_VALUE( -40.478), SIMDE_FLOAT16_VALUE( 16.024) } },
{ { SIMDE_FLOAT16_VALUE( -4.514), SIMDE_FLOAT16_VALUE( -9.156), SIMDE_FLOAT16_VALUE( 0.416), SIMDE_FLOAT16_VALUE( 5.447),
SIMDE_FLOAT16_VALUE( -12.228), SIMDE_FLOAT16_VALUE( -5.009), SIMDE_FLOAT16_VALUE( -7.766), SIMDE_FLOAT16_VALUE( 10.945) },
{ SIMDE_FLOAT16_VALUE( 7.411), SIMDE_FLOAT16_VALUE( 8.790), SIMDE_FLOAT16_VALUE( 12.635), SIMDE_FLOAT16_VALUE( 7.756),
SIMDE_FLOAT16_VALUE( 13.366), SIMDE_FLOAT16_VALUE( 5.483), SIMDE_FLOAT16_VALUE( -10.091), SIMDE_FLOAT16_VALUE( -0.161) },
{ SIMDE_FLOAT16_VALUE( 0.620), SIMDE_FLOAT16_VALUE( -8.567), SIMDE_FLOAT16_VALUE( -12.415), SIMDE_FLOAT16_VALUE( 2.204),
SIMDE_FLOAT16_VALUE( 1.114), SIMDE_FLOAT16_VALUE( 7.729), SIMDE_FLOAT16_VALUE( -4.641), SIMDE_FLOAT16_VALUE( 14.227) },
{ SIMDE_FLOAT16_VALUE( -79.861), SIMDE_FLOAT16_VALUE( 59.288), SIMDE_FLOAT16_VALUE( 29.832), SIMDE_FLOAT16_VALUE( -66.619),
SIMDE_FLOAT16_VALUE( -26.350), SIMDE_FLOAT16_VALUE( 74.679), SIMDE_FLOAT16_VALUE( -6.403), SIMDE_FLOAT16_VALUE( 124.673) } },
{ { SIMDE_FLOAT16_VALUE( 6.461), SIMDE_FLOAT16_VALUE( 1.109), SIMDE_FLOAT16_VALUE( 5.959), SIMDE_FLOAT16_VALUE( 2.609),
SIMDE_FLOAT16_VALUE( 12.442), SIMDE_FLOAT16_VALUE( 10.345), SIMDE_FLOAT16_VALUE( -0.602), SIMDE_FLOAT16_VALUE( 1.541) },
{ SIMDE_FLOAT16_VALUE( 11.674), SIMDE_FLOAT16_VALUE( -4.574), SIMDE_FLOAT16_VALUE( -9.239), SIMDE_FLOAT16_VALUE( -8.444),
SIMDE_FLOAT16_VALUE( 10.338), SIMDE_FLOAT16_VALUE( -11.683), SIMDE_FLOAT16_VALUE( 4.882), SIMDE_FLOAT16_VALUE( 5.109) },
{ SIMDE_FLOAT16_VALUE( 8.183), SIMDE_FLOAT16_VALUE( 6.173), SIMDE_FLOAT16_VALUE( -7.598), SIMDE_FLOAT16_VALUE( 5.817),
SIMDE_FLOAT16_VALUE( 4.348), SIMDE_FLOAT16_VALUE( 7.105), SIMDE_FLOAT16_VALUE( 3.205), SIMDE_FLOAT16_VALUE( 7.831) },
{ SIMDE_FLOAT16_VALUE( 3.110), SIMDE_FLOAT16_VALUE( -6.773), SIMDE_FLOAT16_VALUE( -29.628), SIMDE_FLOAT16_VALUE( 29.922),
SIMDE_FLOAT16_VALUE(-116.513), SIMDE_FLOAT16_VALUE( -99.842), SIMDE_FLOAT16_VALUE( 11.078), SIMDE_FLOAT16_VALUE( 0.308) } },
{ { SIMDE_FLOAT16_VALUE( -14.478), SIMDE_FLOAT16_VALUE( -9.733), SIMDE_FLOAT16_VALUE( -4.053), SIMDE_FLOAT16_VALUE( -11.648),
SIMDE_FLOAT16_VALUE( 12.374), SIMDE_FLOAT16_VALUE( 7.437), SIMDE_FLOAT16_VALUE( -11.911), SIMDE_FLOAT16_VALUE( 6.692) },
{ SIMDE_FLOAT16_VALUE( -11.245), SIMDE_FLOAT16_VALUE( 4.430), SIMDE_FLOAT16_VALUE( 9.097), SIMDE_FLOAT16_VALUE( 14.219),
SIMDE_FLOAT16_VALUE( 8.086), SIMDE_FLOAT16_VALUE( -6.536), SIMDE_FLOAT16_VALUE( 10.525), SIMDE_FLOAT16_VALUE( -5.436) },
{ SIMDE_FLOAT16_VALUE( 10.659), SIMDE_FLOAT16_VALUE( -10.646), SIMDE_FLOAT16_VALUE( -4.555), SIMDE_FLOAT16_VALUE( -11.024),
SIMDE_FLOAT16_VALUE( 1.124), SIMDE_FLOAT16_VALUE( -9.575), SIMDE_FLOAT16_VALUE( -14.516), SIMDE_FLOAT16_VALUE( 1.361) },
{ SIMDE_FLOAT16_VALUE( -32.458), SIMDE_FLOAT16_VALUE(-120.094), SIMDE_FLOAT16_VALUE(-170.178), SIMDE_FLOAT16_VALUE( 94.938),
SIMDE_FLOAT16_VALUE( -47.484), SIMDE_FLOAT16_VALUE( -69.711), SIMDE_FLOAT16_VALUE( -50.894), SIMDE_FLOAT16_VALUE( -69.072) } },
{ { SIMDE_FLOAT16_VALUE( 0.309), SIMDE_FLOAT16_VALUE( 12.714), SIMDE_FLOAT16_VALUE( -10.372), SIMDE_FLOAT16_VALUE( -10.982),
SIMDE_FLOAT16_VALUE( 4.693), SIMDE_FLOAT16_VALUE( 3.301), SIMDE_FLOAT16_VALUE( -13.101), SIMDE_FLOAT16_VALUE( -7.517) },
{ SIMDE_FLOAT16_VALUE( 13.425), SIMDE_FLOAT16_VALUE( -10.586), SIMDE_FLOAT16_VALUE( -10.615), SIMDE_FLOAT16_VALUE( -14.475),
SIMDE_FLOAT16_VALUE( -0.537), SIMDE_FLOAT16_VALUE( 12.995), SIMDE_FLOAT16_VALUE( 11.317), SIMDE_FLOAT16_VALUE( 8.693) },
{ SIMDE_FLOAT16_VALUE( -2.615), SIMDE_FLOAT16_VALUE( 9.039), SIMDE_FLOAT16_VALUE( 2.823), SIMDE_FLOAT16_VALUE( -4.982),
SIMDE_FLOAT16_VALUE( 4.859), SIMDE_FLOAT16_VALUE( -12.280), SIMDE_FLOAT16_VALUE( 8.366), SIMDE_FLOAT16_VALUE( 4.229) },
{ SIMDE_FLOAT16_VALUE(-137.125), SIMDE_FLOAT16_VALUE(-161.646), SIMDE_FLOAT16_VALUE( 161.875), SIMDE_FLOAT16_VALUE(-121.556),
SIMDE_FLOAT16_VALUE( 47.755), SIMDE_FLOAT16_VALUE( -10.507), SIMDE_FLOAT16_VALUE( -56.979), SIMDE_FLOAT16_VALUE( 89.299) } },
};
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_rot270_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_rot270_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_vcmla_rot270_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -212,7 +385,9 @@ test_simde_vcmlaq_rot270_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vcmla_rot270_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmla_rot270_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_rot270_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_rot270_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_rot270_f64)
SIMDE_TEST_FUNC_LIST_END