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_rot90.h"
static int
test_simde_vcmla_rot90_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( -0.140), SIMDE_FLOAT16_VALUE( 2.682), SIMDE_FLOAT16_VALUE( 8.308), SIMDE_FLOAT16_VALUE( -2.440) },
{ SIMDE_FLOAT16_VALUE( 1.452), SIMDE_FLOAT16_VALUE( -1.687), SIMDE_FLOAT16_VALUE( 7.937), SIMDE_FLOAT16_VALUE( -14.923) },
{ SIMDE_FLOAT16_VALUE( 1.684), SIMDE_FLOAT16_VALUE( 1.687), SIMDE_FLOAT16_VALUE( 8.182), SIMDE_FLOAT16_VALUE( 2.520) },
{ SIMDE_FLOAT16_VALUE( 6.209), SIMDE_FLOAT16_VALUE( 5.581), SIMDE_FLOAT16_VALUE( -28.230), SIMDE_FLOAT16_VALUE( -16.846) } },
{ { SIMDE_FLOAT16_VALUE( 9.611), SIMDE_FLOAT16_VALUE( -13.506), SIMDE_FLOAT16_VALUE( 0.094), SIMDE_FLOAT16_VALUE( 2.441) },
{ SIMDE_FLOAT16_VALUE( 2.416), SIMDE_FLOAT16_VALUE( 8.976), SIMDE_FLOAT16_VALUE( -7.384), SIMDE_FLOAT16_VALUE( 5.362) },
{ SIMDE_FLOAT16_VALUE( 1.179), SIMDE_FLOAT16_VALUE( 13.865), SIMDE_FLOAT16_VALUE( 0.001), SIMDE_FLOAT16_VALUE( -0.585) },
{ SIMDE_FLOAT16_VALUE( 122.409), SIMDE_FLOAT16_VALUE( -18.765), SIMDE_FLOAT16_VALUE( -13.088), SIMDE_FLOAT16_VALUE( -18.609) } },
{ { SIMDE_FLOAT16_VALUE( -12.513), SIMDE_FLOAT16_VALUE( -12.991), SIMDE_FLOAT16_VALUE( -13.513), SIMDE_FLOAT16_VALUE( -8.631) },
{ SIMDE_FLOAT16_VALUE( 6.419), SIMDE_FLOAT16_VALUE( 8.364), SIMDE_FLOAT16_VALUE( -14.860), SIMDE_FLOAT16_VALUE( 13.580) },
{ SIMDE_FLOAT16_VALUE( -10.080), SIMDE_FLOAT16_VALUE( 6.990), SIMDE_FLOAT16_VALUE( 14.752), SIMDE_FLOAT16_VALUE( -4.531) },
{ SIMDE_FLOAT16_VALUE( 98.577), SIMDE_FLOAT16_VALUE( -76.399), SIMDE_FLOAT16_VALUE( 131.961), SIMDE_FLOAT16_VALUE( 123.726) } },
{ { SIMDE_FLOAT16_VALUE( -4.502), SIMDE_FLOAT16_VALUE( 14.053), SIMDE_FLOAT16_VALUE( 10.374), SIMDE_FLOAT16_VALUE( -5.527) },
{ SIMDE_FLOAT16_VALUE( -0.420), SIMDE_FLOAT16_VALUE( 11.441), SIMDE_FLOAT16_VALUE( -0.134), SIMDE_FLOAT16_VALUE( -3.783) },
{ SIMDE_FLOAT16_VALUE( -5.296), SIMDE_FLOAT16_VALUE( 3.781), SIMDE_FLOAT16_VALUE( 3.276), SIMDE_FLOAT16_VALUE( -5.049) },
{ SIMDE_FLOAT16_VALUE(-166.000), SIMDE_FLOAT16_VALUE( -2.121), SIMDE_FLOAT16_VALUE( -17.633), SIMDE_FLOAT16_VALUE( -4.308) } },
{ { SIMDE_FLOAT16_VALUE( 6.607), SIMDE_FLOAT16_VALUE( 10.572), SIMDE_FLOAT16_VALUE( -0.346), SIMDE_FLOAT16_VALUE( -1.252) },
{ SIMDE_FLOAT16_VALUE( -14.280), SIMDE_FLOAT16_VALUE( 6.335), SIMDE_FLOAT16_VALUE( 4.912), SIMDE_FLOAT16_VALUE( -4.071) },
{ SIMDE_FLOAT16_VALUE( -1.537), SIMDE_FLOAT16_VALUE( -4.261), SIMDE_FLOAT16_VALUE( -14.972), SIMDE_FLOAT16_VALUE( -7.073) },
{ SIMDE_FLOAT16_VALUE( -68.511), SIMDE_FLOAT16_VALUE(-155.229), SIMDE_FLOAT16_VALUE( -20.069), SIMDE_FLOAT16_VALUE( -13.223) } },
{ { SIMDE_FLOAT16_VALUE( 3.036), SIMDE_FLOAT16_VALUE( -13.840), SIMDE_FLOAT16_VALUE( -13.745), SIMDE_FLOAT16_VALUE( 2.964) },
{ SIMDE_FLOAT16_VALUE( -1.657), SIMDE_FLOAT16_VALUE( 7.236), SIMDE_FLOAT16_VALUE( 7.380), SIMDE_FLOAT16_VALUE( -12.084) },
{ SIMDE_FLOAT16_VALUE( -9.699), SIMDE_FLOAT16_VALUE( -4.265), SIMDE_FLOAT16_VALUE( -14.259), SIMDE_FLOAT16_VALUE( -0.411) },
{ SIMDE_FLOAT16_VALUE( 90.447), SIMDE_FLOAT16_VALUE( 18.668), SIMDE_FLOAT16_VALUE( 21.558), SIMDE_FLOAT16_VALUE( 21.463) } },
{ { SIMDE_FLOAT16_VALUE( -4.940), SIMDE_FLOAT16_VALUE( 3.013), SIMDE_FLOAT16_VALUE( 10.180), SIMDE_FLOAT16_VALUE( 2.386) },
{ SIMDE_FLOAT16_VALUE( 10.569), SIMDE_FLOAT16_VALUE( -13.814), SIMDE_FLOAT16_VALUE( -11.551), SIMDE_FLOAT16_VALUE( -11.815) },
{ SIMDE_FLOAT16_VALUE( 6.386), SIMDE_FLOAT16_VALUE( -2.869), SIMDE_FLOAT16_VALUE( 11.024), SIMDE_FLOAT16_VALUE( -5.318) },
{ SIMDE_FLOAT16_VALUE( 48.008), SIMDE_FLOAT16_VALUE( 28.975), SIMDE_FLOAT16_VALUE( 39.215), SIMDE_FLOAT16_VALUE( -32.879) } },
{ { SIMDE_FLOAT16_VALUE( 4.137), SIMDE_FLOAT16_VALUE( 12.116), SIMDE_FLOAT16_VALUE( -12.032), SIMDE_FLOAT16_VALUE( 1.708) },
{ SIMDE_FLOAT16_VALUE( -6.426), SIMDE_FLOAT16_VALUE( 3.480), SIMDE_FLOAT16_VALUE( -2.981), SIMDE_FLOAT16_VALUE( 10.936) },
{ SIMDE_FLOAT16_VALUE( -7.426), SIMDE_FLOAT16_VALUE( 5.276), SIMDE_FLOAT16_VALUE( 7.479), SIMDE_FLOAT16_VALUE( -4.686) },
{ SIMDE_FLOAT16_VALUE( -49.590), SIMDE_FLOAT16_VALUE( -72.581), SIMDE_FLOAT16_VALUE( -11.200), SIMDE_FLOAT16_VALUE( -9.778) } },
};
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_rot90_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_rot90_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_rot90_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -73,6 +144,108 @@ test_simde_vcmla_rot90_f32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vcmlaq_rot90_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( -5.925), SIMDE_FLOAT16_VALUE( -3.510), SIMDE_FLOAT16_VALUE( -6.431), SIMDE_FLOAT16_VALUE( 2.890),
SIMDE_FLOAT16_VALUE( 3.018), SIMDE_FLOAT16_VALUE( 7.405), SIMDE_FLOAT16_VALUE( -1.492), SIMDE_FLOAT16_VALUE( 4.525) },
{ SIMDE_FLOAT16_VALUE( -8.925), SIMDE_FLOAT16_VALUE( 14.973), SIMDE_FLOAT16_VALUE( 8.675), SIMDE_FLOAT16_VALUE( 0.624),
SIMDE_FLOAT16_VALUE( 4.096), SIMDE_FLOAT16_VALUE( 12.735), SIMDE_FLOAT16_VALUE( 6.636), SIMDE_FLOAT16_VALUE( 0.664) },
{ SIMDE_FLOAT16_VALUE( 6.282), SIMDE_FLOAT16_VALUE( 12.052), SIMDE_FLOAT16_VALUE( -0.562), SIMDE_FLOAT16_VALUE( -9.385),
SIMDE_FLOAT16_VALUE( -12.117), SIMDE_FLOAT16_VALUE( -12.088), SIMDE_FLOAT16_VALUE( -6.433), SIMDE_FLOAT16_VALUE( 14.202) },
{ SIMDE_FLOAT16_VALUE( 58.837), SIMDE_FLOAT16_VALUE( 43.379), SIMDE_FLOAT16_VALUE( -2.365), SIMDE_FLOAT16_VALUE( 15.686),
SIMDE_FLOAT16_VALUE(-106.420), SIMDE_FLOAT16_VALUE( 18.243), SIMDE_FLOAT16_VALUE( -9.438), SIMDE_FLOAT16_VALUE( 44.230) } },
{ { SIMDE_FLOAT16_VALUE( 14.689), SIMDE_FLOAT16_VALUE( -3.433), SIMDE_FLOAT16_VALUE( 2.276), SIMDE_FLOAT16_VALUE( -8.421),
SIMDE_FLOAT16_VALUE( -4.940), SIMDE_FLOAT16_VALUE( 14.830), SIMDE_FLOAT16_VALUE( -2.450), SIMDE_FLOAT16_VALUE( 14.766) },
{ SIMDE_FLOAT16_VALUE( 7.693), SIMDE_FLOAT16_VALUE( 8.578), SIMDE_FLOAT16_VALUE( 4.095), SIMDE_FLOAT16_VALUE( -5.754),
SIMDE_FLOAT16_VALUE( 2.906), SIMDE_FLOAT16_VALUE( 9.133), SIMDE_FLOAT16_VALUE( 8.908), SIMDE_FLOAT16_VALUE( 3.409) },
{ SIMDE_FLOAT16_VALUE( 3.003), SIMDE_FLOAT16_VALUE( 1.975), SIMDE_FLOAT16_VALUE( -1.403), SIMDE_FLOAT16_VALUE( -11.537),
SIMDE_FLOAT16_VALUE( 0.297), SIMDE_FLOAT16_VALUE( 4.306), SIMDE_FLOAT16_VALUE( -8.942), SIMDE_FLOAT16_VALUE( 5.547) },
{ SIMDE_FLOAT16_VALUE( 32.451), SIMDE_FLOAT16_VALUE( -24.435), SIMDE_FLOAT16_VALUE( -49.857), SIMDE_FLOAT16_VALUE( -46.021),
SIMDE_FLOAT16_VALUE(-135.145), SIMDE_FLOAT16_VALUE( 47.402), SIMDE_FLOAT16_VALUE( -59.279), SIMDE_FLOAT16_VALUE( 137.000) } },
{ { SIMDE_FLOAT16_VALUE( -14.688), SIMDE_FLOAT16_VALUE( 12.418), SIMDE_FLOAT16_VALUE( -5.602), SIMDE_FLOAT16_VALUE( 0.779),
SIMDE_FLOAT16_VALUE( -11.066), SIMDE_FLOAT16_VALUE( 12.978), SIMDE_FLOAT16_VALUE( 0.393), SIMDE_FLOAT16_VALUE( 13.606) },
{ SIMDE_FLOAT16_VALUE( 13.286), SIMDE_FLOAT16_VALUE( 11.914), SIMDE_FLOAT16_VALUE( 8.388), SIMDE_FLOAT16_VALUE( 9.571),
SIMDE_FLOAT16_VALUE( -7.982), SIMDE_FLOAT16_VALUE( 0.274), SIMDE_FLOAT16_VALUE( -0.335), SIMDE_FLOAT16_VALUE( 5.778) },
{ SIMDE_FLOAT16_VALUE( 11.050), SIMDE_FLOAT16_VALUE( 1.433), SIMDE_FLOAT16_VALUE( 8.886), SIMDE_FLOAT16_VALUE( -2.642),
SIMDE_FLOAT16_VALUE( 10.621), SIMDE_FLOAT16_VALUE( -6.140), SIMDE_FLOAT16_VALUE( -1.531), SIMDE_FLOAT16_VALUE( 1.137) },
{ SIMDE_FLOAT16_VALUE(-137.000), SIMDE_FLOAT16_VALUE( 166.500), SIMDE_FLOAT16_VALUE( 1.430), SIMDE_FLOAT16_VALUE( 3.892),
SIMDE_FLOAT16_VALUE( 7.065), SIMDE_FLOAT16_VALUE(-109.730), SIMDE_FLOAT16_VALUE( -80.146), SIMDE_FLOAT16_VALUE( -3.421) } },
{ { SIMDE_FLOAT16_VALUE( -6.191), SIMDE_FLOAT16_VALUE( -14.110), SIMDE_FLOAT16_VALUE( 11.419), SIMDE_FLOAT16_VALUE( 5.375),
SIMDE_FLOAT16_VALUE( 0.801), SIMDE_FLOAT16_VALUE( 6.866), SIMDE_FLOAT16_VALUE( 6.863), SIMDE_FLOAT16_VALUE( 13.601) },
{ SIMDE_FLOAT16_VALUE( -8.403), SIMDE_FLOAT16_VALUE( 3.728), SIMDE_FLOAT16_VALUE( 9.655), SIMDE_FLOAT16_VALUE( 12.345),
SIMDE_FLOAT16_VALUE( -10.872), SIMDE_FLOAT16_VALUE( -3.296), SIMDE_FLOAT16_VALUE( -13.548), SIMDE_FLOAT16_VALUE( 2.545) },
{ SIMDE_FLOAT16_VALUE( 13.268), SIMDE_FLOAT16_VALUE( 3.257), SIMDE_FLOAT16_VALUE( 3.408), SIMDE_FLOAT16_VALUE( -13.158),
SIMDE_FLOAT16_VALUE( -11.069), SIMDE_FLOAT16_VALUE( -2.783), SIMDE_FLOAT16_VALUE( 10.415), SIMDE_FLOAT16_VALUE( -0.034) },
{ SIMDE_FLOAT16_VALUE( 65.870), SIMDE_FLOAT16_VALUE( 121.823), SIMDE_FLOAT16_VALUE( -62.946), SIMDE_FLOAT16_VALUE( 38.738),
SIMDE_FLOAT16_VALUE( 11.561), SIMDE_FLOAT16_VALUE( -77.430), SIMDE_FLOAT16_VALUE( -24.200), SIMDE_FLOAT16_VALUE(-184.300) } },
{ { SIMDE_FLOAT16_VALUE( 1.785), SIMDE_FLOAT16_VALUE( -8.301), SIMDE_FLOAT16_VALUE( -8.460), SIMDE_FLOAT16_VALUE( 0.609),
SIMDE_FLOAT16_VALUE( -10.735), SIMDE_FLOAT16_VALUE( 6.056), SIMDE_FLOAT16_VALUE( -11.417), SIMDE_FLOAT16_VALUE( -13.397) },
{ SIMDE_FLOAT16_VALUE( -8.773), SIMDE_FLOAT16_VALUE( -8.168), SIMDE_FLOAT16_VALUE( -11.868), SIMDE_FLOAT16_VALUE( -7.367),
SIMDE_FLOAT16_VALUE( -4.913), SIMDE_FLOAT16_VALUE( -13.320), SIMDE_FLOAT16_VALUE( -10.840), SIMDE_FLOAT16_VALUE( 11.860) },
{ SIMDE_FLOAT16_VALUE( -6.123), SIMDE_FLOAT16_VALUE( -3.489), SIMDE_FLOAT16_VALUE( -8.537), SIMDE_FLOAT16_VALUE( -10.453),
SIMDE_FLOAT16_VALUE( -4.821), SIMDE_FLOAT16_VALUE( -4.835), SIMDE_FLOAT16_VALUE( -10.946), SIMDE_FLOAT16_VALUE( 6.131) },
{ SIMDE_FLOAT16_VALUE( -73.926), SIMDE_FLOAT16_VALUE( 69.336), SIMDE_FLOAT16_VALUE( -4.050), SIMDE_FLOAT16_VALUE( -17.681),
SIMDE_FLOAT16_VALUE( 75.845), SIMDE_FLOAT16_VALUE( -34.588), SIMDE_FLOAT16_VALUE( 147.942), SIMDE_FLOAT16_VALUE( 151.354) } },
{ { SIMDE_FLOAT16_VALUE( 14.647), SIMDE_FLOAT16_VALUE( -2.045), SIMDE_FLOAT16_VALUE( 10.220), SIMDE_FLOAT16_VALUE( -8.348),
SIMDE_FLOAT16_VALUE( 6.587), SIMDE_FLOAT16_VALUE( -3.305), SIMDE_FLOAT16_VALUE( -9.557), SIMDE_FLOAT16_VALUE( 2.332) },
{ SIMDE_FLOAT16_VALUE( 8.919), SIMDE_FLOAT16_VALUE( 4.558), SIMDE_FLOAT16_VALUE( 5.005), SIMDE_FLOAT16_VALUE( -5.625),
SIMDE_FLOAT16_VALUE( 12.715), SIMDE_FLOAT16_VALUE( -12.113), SIMDE_FLOAT16_VALUE( 13.247), SIMDE_FLOAT16_VALUE( 2.094) },
{ SIMDE_FLOAT16_VALUE( 9.285), SIMDE_FLOAT16_VALUE( 14.178), SIMDE_FLOAT16_VALUE( 5.845), SIMDE_FLOAT16_VALUE( 9.424),
SIMDE_FLOAT16_VALUE( -2.782), SIMDE_FLOAT16_VALUE( 10.683), SIMDE_FLOAT16_VALUE( 14.862), SIMDE_FLOAT16_VALUE( 3.444) },
{ SIMDE_FLOAT16_VALUE( 18.606), SIMDE_FLOAT16_VALUE( -4.061), SIMDE_FLOAT16_VALUE( -41.113), SIMDE_FLOAT16_VALUE( -32.358),
SIMDE_FLOAT16_VALUE( -42.815), SIMDE_FLOAT16_VALUE( -31.340), SIMDE_FLOAT16_VALUE( 9.979), SIMDE_FLOAT16_VALUE( 34.336) } },
{ { SIMDE_FLOAT16_VALUE( 8.817), SIMDE_FLOAT16_VALUE( -7.043), SIMDE_FLOAT16_VALUE( -12.649), SIMDE_FLOAT16_VALUE( -12.671),
SIMDE_FLOAT16_VALUE( 2.329), SIMDE_FLOAT16_VALUE( 2.135), SIMDE_FLOAT16_VALUE( 4.207), SIMDE_FLOAT16_VALUE( -9.721) },
{ SIMDE_FLOAT16_VALUE( 5.220), SIMDE_FLOAT16_VALUE( 8.807), SIMDE_FLOAT16_VALUE( 12.339), SIMDE_FLOAT16_VALUE( 10.207),
SIMDE_FLOAT16_VALUE( 9.658), SIMDE_FLOAT16_VALUE( -9.868), SIMDE_FLOAT16_VALUE( -2.763), SIMDE_FLOAT16_VALUE( 5.120) },
{ SIMDE_FLOAT16_VALUE( 4.632), SIMDE_FLOAT16_VALUE( -10.959), SIMDE_FLOAT16_VALUE( 0.167), SIMDE_FLOAT16_VALUE( 3.886),
SIMDE_FLOAT16_VALUE( -0.714), SIMDE_FLOAT16_VALUE( -9.076), SIMDE_FLOAT16_VALUE( 13.927), SIMDE_FLOAT16_VALUE( -13.445) },
{ SIMDE_FLOAT16_VALUE( 66.660), SIMDE_FLOAT16_VALUE( -47.723), SIMDE_FLOAT16_VALUE( 129.500), SIMDE_FLOAT16_VALUE(-152.375),
SIMDE_FLOAT16_VALUE( 20.354), SIMDE_FLOAT16_VALUE( 11.544), SIMDE_FLOAT16_VALUE( 63.699), SIMDE_FLOAT16_VALUE( 13.414) } },
{ { SIMDE_FLOAT16_VALUE( 2.576), SIMDE_FLOAT16_VALUE( 13.801), SIMDE_FLOAT16_VALUE( -3.165), SIMDE_FLOAT16_VALUE( -0.554),
SIMDE_FLOAT16_VALUE( -10.579), SIMDE_FLOAT16_VALUE( -13.579), SIMDE_FLOAT16_VALUE( -11.855), SIMDE_FLOAT16_VALUE( 14.822) },
{ SIMDE_FLOAT16_VALUE( 2.564), SIMDE_FLOAT16_VALUE( -0.754), SIMDE_FLOAT16_VALUE( 5.758), SIMDE_FLOAT16_VALUE( -9.606),
SIMDE_FLOAT16_VALUE( 14.397), SIMDE_FLOAT16_VALUE( 9.319), SIMDE_FLOAT16_VALUE( -13.317), SIMDE_FLOAT16_VALUE( 0.681) },
{ SIMDE_FLOAT16_VALUE( 10.154), SIMDE_FLOAT16_VALUE( -7.029), SIMDE_FLOAT16_VALUE( 2.341), SIMDE_FLOAT16_VALUE( -14.960),
SIMDE_FLOAT16_VALUE( -3.460), SIMDE_FLOAT16_VALUE( 2.394), SIMDE_FLOAT16_VALUE( -2.692), SIMDE_FLOAT16_VALUE( -14.327) },
{ SIMDE_FLOAT16_VALUE( 20.560), SIMDE_FLOAT16_VALUE( 28.357), SIMDE_FLOAT16_VALUE( -2.981), SIMDE_FLOAT16_VALUE( -18.150),
SIMDE_FLOAT16_VALUE( 123.083), SIMDE_FLOAT16_VALUE(-193.103), SIMDE_FLOAT16_VALUE( -12.786), SIMDE_FLOAT16_VALUE(-211.712) } },
};
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_rot90_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_rot90_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_rot90_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -212,7 +385,9 @@ test_simde_vcmlaq_rot90_f64 (SIMDE_MUNIT_TEST_ARGS) {
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vcmla_rot90_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmla_rot90_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_rot90_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_rot90_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vcmlaq_rot90_f64)
SIMDE_TEST_FUNC_LIST_END