From cadfb945266db542a25ed592be56e162841a9569 Mon Sep 17 00:00:00 2001 From: yyctw Date: Wed, 18 Oct 2023 16:09:51 +0800 Subject: [PATCH] [Fix] Fix bugs --- simde/arm/neon/abd.h | 12 +- simde/arm/neon/addhn_high.h | 12 +- simde/arm/neon/cgez.h | 8 +- simde/arm/neon/cgtz.h | 8 +- simde/arm/neon/cle.h | 8 +- simde/arm/neon/cltz.h | 8 +- simde/arm/neon/cvt.h | 152 ++- simde/arm/neon/cvt_n.h | 166 +-- simde/arm/neon/cvtm.h | 120 +- simde/arm/neon/cvtp.h | 100 +- simde/arm/neon/fms_n.h | 8 +- simde/arm/neon/ld3.h | 2 +- simde/arm/neon/ld4.h | 2 +- simde/arm/neon/qrshl.h | 4 +- simde/arm/neon/qrshrn_high_n.h | 7 +- simde/arm/neon/qrshrun_high_n.h | 8 +- simde/arm/neon/qshl_n.h | 24 +- simde/arm/neon/raddhn.h | 20 +- simde/arm/neon/reinterpret.h | 2 +- simde/arm/neon/rev64.h | 7 +- simde/arm/neon/rsubhn.h | 20 +- simde/arm/neon/st1_lane.h | 2 +- simde/arm/neon/st2_lane.h | 4 +- simde/arm/neon/st3.h | 4 +- simde/arm/neon/st3_lane.h | 4 +- simde/arm/neon/st4.h | 4 +- simde/arm/neon/st4_lane.h | 4 +- simde/arm/neon/trn.h | 4 +- simde/arm/neon/trn1.h | 4 +- simde/arm/neon/trn2.h | 4 +- simde/arm/neon/uzp.h | 4 +- simde/arm/neon/uzp1.h | 4 +- simde/arm/neon/uzp2.h | 4 +- test/arm/neon/abd.c | 185 ++- test/arm/neon/abdl_high.c | 90 ++ test/arm/neon/abs.c | 205 ++- test/arm/neon/add_testgen.py | 114 -- test/arm/neon/addhn_high.c | 102 ++ test/arm/neon/cgez.c | 97 +- test/arm/neon/cgtz.c | 97 +- test/arm/neon/cle.c | 157 ++- test/arm/neon/cltz.c | 255 +++- test/arm/neon/cvt.c | 1140 ++++++++++++----- test/arm/neon/cvt_n.c | 2118 ++++++++++++++++++++++++------- test/arm/neon/cvtm.c | 761 +++++++---- test/arm/neon/cvtp.c | 720 +++++++---- test/arm/neon/ld3.c | 231 ++-- test/arm/neon/ld4.c | 282 ++-- test/arm/neon/qrshl.c | 360 ++++++ test/arm/neon/raddhn.c | 90 ++ test/arm/neon/raddhn_high.c | 102 ++ test/arm/neon/reinterpret.c | 215 ++++ test/arm/neon/rev64.c | 129 +- test/arm/neon/rsubhn.c | 90 ++ test/arm/neon/rsubhn_high.c | 102 ++ test/arm/neon/st1_lane.c | 84 +- test/arm/neon/st1_x2.c | 61 +- test/arm/neon/st1_x3.c | 91 +- test/arm/neon/st1_x4.c | 139 +- test/arm/neon/st1q_x2.c | 127 +- test/arm/neon/st1q_x3.c | 203 +-- test/arm/neon/st1q_x4.c | 259 ++-- test/arm/neon/st2_lane.c | 132 +- test/arm/neon/st3.c | 326 ++--- test/arm/neon/st3_lane.c | 180 +-- test/arm/neon/st4.c | 426 ++++--- test/arm/neon/st4_lane.c | 228 ++-- test/arm/neon/trn.c | 432 +++++-- test/arm/neon/trn1.c | 429 +++++-- test/arm/neon/trn2.c | 429 +++++-- test/arm/neon/uzp.c | 432 +++++-- test/arm/neon/uzp1.c | 381 +++++- test/arm/neon/uzp2.c | 381 +++++- 73 files changed, 9383 insertions(+), 3743 deletions(-) delete mode 100644 test/arm/neon/add_testgen.py diff --git a/simde/arm/neon/abd.h b/simde/arm/neon/abd.h index 6f5d37953..6880634cc 100644 --- a/simde/arm/neon/abd.h +++ b/simde/arm/neon/abd.h @@ -41,11 +41,13 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vabdh_f16(simde_float16_t a, simde_float16_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vabdh_f16(a, b); #else - simde_float16_t r = a - b; - return r < 0 ? -r : r; + simde_float32_t a_ = simde_float16_to_float32(a); + simde_float32_t b_ = simde_float16_to_float32(b); + simde_float32_t r_ = a_ - b_; + return r_ < 0 ? simde_float16_from_float32(-r_) : simde_float16_from_float32(r_); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -86,7 +88,7 @@ simde_vabdd_f64(simde_float64_t a, simde_float64_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x4_t simde_vabd_f16(simde_float16x4_t a, simde_float16x4_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vabd_f16(a, b); #else return simde_vabs_f16(simde_vsub_f16(a, b)); @@ -253,7 +255,7 @@ simde_vabd_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8_t simde_vabdq_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vabdq_f16(a, b); #else return simde_vabsq_f16(simde_vsubq_f16(a, b)); diff --git a/simde/arm/neon/addhn_high.h b/simde/arm/neon/addhn_high.h index babc117c4..0c96a24d4 100644 --- a/simde/arm/neon/addhn_high.h +++ b/simde/arm/neon/addhn_high.h @@ -40,7 +40,7 @@ simde_vaddhn_high_s16(simde_int8x8_t r, simde_int16x8_t a, simde_int16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddhn_high_s16(r, a, b); #else - return simde_vcombine_s16(r, simde_vaddhn_s16(a, b)); + return simde_vcombine_s8(r, simde_vaddhn_s16(a, b)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -54,7 +54,7 @@ simde_vaddhn_high_s32(simde_int16x4_t r, simde_int32x4_t a, simde_int32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddhn_high_s32(r, a, b); #else - return simde_vcombine_s32(r, simde_vaddhn_s32(a, b)); + return simde_vcombine_s16(r, simde_vaddhn_s32(a, b)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -68,7 +68,7 @@ simde_vaddhn_high_s64(simde_int32x2_t r, simde_int64x2_t a, simde_int64x2_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddhn_high_s64(r, a, b); #else - return simde_vcombine_s64(r, simde_vaddhn_s64(a, b)); + return simde_vcombine_s32(r, simde_vaddhn_s64(a, b)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -82,7 +82,7 @@ simde_vaddhn_high_u16(simde_uint8x8_t r, simde_uint16x8_t a, simde_uint16x8_t b) #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddhn_high_u16(r, a, b); #else - return simde_vcombine_u16(r, simde_vaddhn_u16(a, b)); + return simde_vcombine_u8(r, simde_vaddhn_u16(a, b)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -96,7 +96,7 @@ simde_vaddhn_high_u32(simde_uint16x4_t r, simde_uint32x4_t a, simde_uint32x4_t b #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddhn_high_u32(r, a, b); #else - return simde_vcombine_u32(r, simde_vaddhn_u32(a, b)); + return simde_vcombine_u16(r, simde_vaddhn_u32(a, b)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -110,7 +110,7 @@ simde_vaddhn_high_u64(simde_uint32x2_t r, simde_uint64x2_t a, simde_uint64x2_t b #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddhn_high_u64(r, a, b); #else - return simde_vcombine_u64(r, simde_vaddhn_u64(a, b)); + return simde_vcombine_u32(r, simde_vaddhn_u64(a, b)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) diff --git a/simde/arm/neon/cgez.h b/simde/arm/neon/cgez.h index 20f4b217c..04024c48e 100644 --- a/simde/arm/neon/cgez.h +++ b/simde/arm/neon/cgez.h @@ -82,10 +82,10 @@ simde_vcgezs_f32(simde_float32_t a) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcgezh_f16(simde_float16_t a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return HEDLEY_STATIC_CAST(uint16_t, vcgezh_f16(a)); #else - return (a >= SIMDE_FLOAT16_C(0.0)) ? UINT16_MAX : 0; + return (simde_float16_to_float32(a) >= SIMDE_FLOAT32_C(0.0)) ? UINT16_MAX : 0; #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -96,7 +96,7 @@ simde_vcgezh_f16(simde_float16_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x8_t simde_vcgezq_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcgezq_f16(a); #else simde_float16x8_private a_ = simde_float16x8_to_private(a); @@ -286,7 +286,7 @@ simde_vcgezq_s64(simde_int64x2_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x4_t simde_vcgez_f16(simde_float16x4_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcgez_f16(a); #else simde_float16x4_private a_ = simde_float16x4_to_private(a); diff --git a/simde/arm/neon/cgtz.h b/simde/arm/neon/cgtz.h index 5149ace68..30c6e5dd0 100644 --- a/simde/arm/neon/cgtz.h +++ b/simde/arm/neon/cgtz.h @@ -70,10 +70,10 @@ simde_vcgtzd_f64(simde_float64_t a) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcgtzh_f16(simde_float16_t a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return HEDLEY_STATIC_CAST(uint16_t, vcgtzh_f16(a)); #else - return (a > SIMDE_FLOAT16_C(0.0)) ? UINT16_MAX : 0; + return (simde_float16_to_float32(a) > SIMDE_FLOAT32_C(0.0)) ? UINT16_MAX : 0; #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -84,7 +84,7 @@ simde_vcgtzh_f16(simde_float16_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x8_t simde_vcgtzq_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcgtzq_f16(a); #else simde_float16x8_private a_ = simde_float16x8_to_private(a); @@ -288,7 +288,7 @@ simde_vcgtzq_s64(simde_int64x2_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x4_t simde_vcgtz_f16(simde_float16x4_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcgtz_f16(a); #else simde_float16x4_private a_ = simde_float16x4_to_private(a); diff --git a/simde/arm/neon/cle.h b/simde/arm/neon/cle.h index 7089adce3..fedfcc522 100644 --- a/simde/arm/neon/cle.h +++ b/simde/arm/neon/cle.h @@ -94,10 +94,10 @@ simde_vcles_f32(simde_float32_t a, simde_float32_t b) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcleh_f16(simde_float16_t a, simde_float16_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return HEDLEY_STATIC_CAST(uint16_t, vcleh_f16(a, b)); #else - return (a <= b) ? UINT16_MAX : 0; + return (simde_float16_to_float32(a) <= simde_float16_to_float32(b)) ? UINT16_MAX : 0; #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -108,7 +108,7 @@ simde_vcleh_f16(simde_float16_t a, simde_float16_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x8_t simde_vcleq_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcleq_f16(a, b); #else simde_float16x8_private @@ -517,7 +517,7 @@ simde_vcleq_u64(simde_uint64x2_t a, simde_uint64x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x4_t simde_vcle_f16(simde_float16x4_t a, simde_float16x4_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcle_f16(a, b); #else simde_float16x4_private diff --git a/simde/arm/neon/cltz.h b/simde/arm/neon/cltz.h index 8b075de2a..2c61d1a16 100644 --- a/simde/arm/neon/cltz.h +++ b/simde/arm/neon/cltz.h @@ -85,10 +85,10 @@ simde_vcltzs_f32(simde_float32_t a) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcltzh_f16(simde_float16_t a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return HEDLEY_STATIC_CAST(uint16_t, vcltzh_f16(a)); #else - return (a < SIMDE_FLOAT16_C(0.0)) ? UINT16_MAX : 0; + return (simde_float16_to_float32(a) < SIMDE_FLOAT32_C(0.0)) ? UINT16_MAX : 0; #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -99,7 +99,7 @@ simde_vcltzh_f16(simde_float16_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x4_t simde_vcltz_f16(simde_float16x4_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcltz_f16(a); #else simde_float16x4_private a_ = simde_float16x4_to_private(a); @@ -241,7 +241,7 @@ simde_vcltz_s64(simde_int64x1_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x8_t simde_vcltzq_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcltzq_f16(a); #else simde_float16x8_private a_ = simde_float16x8_to_private(a); diff --git a/simde/arm/neon/cvt.h b/simde/arm/neon/cvt.h index c70ffebe5..d3771a940 100644 --- a/simde/arm/neon/cvt.h +++ b/simde/arm/neon/cvt.h @@ -144,11 +144,14 @@ int16_t simde_vcvth_s16_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvth_s16_f16(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(int16_t, + simde_float16_to_float32(a)); #else simde_float32 af = simde_float16_to_float32(a); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT16_MIN))) { + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT16_MIN))) { return INT16_MIN; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT16_MAX))) { return INT16_MAX; } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; @@ -167,11 +170,14 @@ uint16_t simde_vcvth_u16_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvth_u16_f16(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(uint16_t, + simde_float16_to_float32(a)); #else simde_float32 af = simde_float16_to_float32(a); - if (HEDLEY_UNLIKELY(af < SIMDE_FLOAT32_C(0.0))) { + if (HEDLEY_UNLIKELY(af <= SIMDE_FLOAT32_C(0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX))) { return UINT16_MAX; } else if (simde_math_isnanf(af)) { return 0; @@ -188,13 +194,16 @@ simde_vcvth_u16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES int32_t simde_vcvth_s32_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvth_s32_f16(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(int32_t, + simde_float16_to_float32(a)); #else simde_float32 af = simde_float16_to_float32(a); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT32_MAX))) { return INT32_MAX; } else if (HEDLEY_UNLIKELY(simde_math_isnan(af))) { return 0; @@ -211,13 +220,16 @@ simde_vcvth_s32_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvth_u32_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvth_u32_f16(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(uint32_t, + simde_float16_to_float32(a)); #else simde_float32 af = simde_float16_to_float32(a); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0.0))) { + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX))) { return UINT32_MAX; } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; @@ -234,13 +246,16 @@ simde_vcvth_u32_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES int64_t simde_vcvth_s64_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvth_s64_f16(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(int64_t, + simde_float16_to_float32(a)); #else simde_float32 af = simde_float16_to_float32(a); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT64_MIN))) { + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT64_MIN))) { return INT64_MIN; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT64_MAX))) { return INT64_MAX; } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; @@ -257,13 +272,16 @@ simde_vcvth_s64_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint64_t simde_vcvth_u64_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvth_u64_f16(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(uint64_t, + simde_float16_to_float32(a)); #else simde_float32 af = simde_float16_to_float32(a); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0))) { + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX))) { return UINT64_MAX; } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; @@ -454,7 +472,7 @@ simde_vcvth_f16_u64(uint64_t a) { #elif SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI return HEDLEY_STATIC_CAST(simde_float16_t, a); #else - return simde_float16_from_float64(HEDLEY_STATIC_CAST(simde_float64_t, a)); + return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, a)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -486,7 +504,7 @@ simde_vcvth_f16_s64(int64_t a) { #elif SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI return HEDLEY_STATIC_CAST(simde_float16_t, a); #else - return simde_float16_from_float64(HEDLEY_STATIC_CAST(simde_float64_t, a)); + return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, a)); #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -1368,17 +1386,18 @@ simde_vcvtq_f64_u64(simde_uint64x2_t a) { SIMDE_FUNCTION_ATTRIBUTES int16_t simde_vcvtah_s16_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtah_s16_f16(a); #else - if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float16, INT16_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT16_MIN))) { return INT16_MIN; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, INT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT16_MAX))) { return INT16_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int16_t, simde_math_round(a)); + return HEDLEY_STATIC_CAST(int16_t, simde_math_roundf(af)); } #endif } @@ -1390,19 +1409,18 @@ simde_vcvtah_s16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcvtah_u16_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) && defined(SIMDE_ARM_NEON_FP16) return vcvtah_u16_f16(a); - #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint16_t, a); #else - if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, UINT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX))) { return UINT16_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint16_t, simde_math_round(a)); + return HEDLEY_STATIC_CAST(uint16_t, simde_math_roundf(af)); } #endif } @@ -1414,17 +1432,18 @@ simde_vcvtah_u16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES int32_t simde_vcvtah_s32_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtah_s32_f16(a); #else - if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float16, INT32_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, INT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT32_MAX))) { return INT32_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int32_t, simde_math_round(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_roundf(af)); } #endif } @@ -1436,19 +1455,18 @@ simde_vcvtah_s32_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvtah_u32_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) && defined(SIMDE_ARM_NEON_FP16) return vcvtah_u32_f16(a); - #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint32_t, a); #else - if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, UINT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX))) { return UINT32_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint32_t, simde_math_round(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_roundf(af)); } #endif } @@ -1460,17 +1478,18 @@ simde_vcvtah_u32_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES int64_t simde_vcvtah_s64_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtah_s64_f16(a); #else - if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float16, INT64_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT64_MIN))) { return INT64_MIN; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, INT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT64_MAX))) { return INT64_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int64_t, simde_math_round(a)); + return HEDLEY_STATIC_CAST(int64_t, simde_math_roundf(af)); } #endif } @@ -1482,19 +1501,18 @@ simde_vcvtah_s64_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint64_t simde_vcvtah_u64_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) && defined(SIMDE_ARM_NEON_FP16) return vcvtah_u64_f16(a); - #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint64_t, a); #else - if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, UINT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX))) { return UINT64_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint64_t, simde_math_round(a)); + return HEDLEY_STATIC_CAST(uint64_t, simde_math_roundf(af)); } #endif } @@ -1508,12 +1526,14 @@ int64_t simde_vcvtad_s64_f64(simde_float64 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtad_s64_f64(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(int64_t, simde_math_round(a)); #else - if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float64, INT64_MIN))) { + if (HEDLEY_UNLIKELY(a <= HEDLEY_STATIC_CAST(simde_float64, INT64_MIN))) { return INT64_MIN; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float64, INT64_MAX))) { + } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float64, INT64_MAX))) { return INT64_MAX; - } else if (HEDLEY_UNLIKELY(simde_math_isnanf(a))) { + } else if (HEDLEY_UNLIKELY(simde_math_isnan(a))) { return 0; } else { return HEDLEY_STATIC_CAST(int64_t, simde_math_round(a)); @@ -1531,11 +1551,11 @@ simde_vcvtad_u64_f64(simde_float64 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_46844) return vcvtad_u64_f64(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint64_t, a); + return HEDLEY_STATIC_CAST(uint64_t, simde_math_round(a)); #else - if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT64_C(0.0))) { + if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT64_C(0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float64, UINT64_MAX))) { + } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float64, UINT64_MAX))) { return UINT64_MAX; } else if (simde_math_isnan(a)) { return 0; @@ -1554,6 +1574,8 @@ int32_t simde_vcvtas_s32_f32(simde_float32 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtas_s32_f32(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(int32_t, simde_math_roundf(a)); #else if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; @@ -1576,6 +1598,8 @@ uint32_t simde_vcvtas_u32_f32(simde_float32 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtas_u32_f32(a); + #elif defined(SIMDE_FAST_CONVERSION_RANGE) + return HEDLEY_STATIC_CAST(uint32_t, simde_math_roundf(a)); #else if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT32_C(0.0))) { return 0; @@ -1597,7 +1621,7 @@ simde_vcvtas_u32_f32(simde_float32 a) { SIMDE_FUNCTION_ATTRIBUTES simde_int16x4_t simde_vcvta_s16_f16(simde_float16x4_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvta_s16_f16(a); #else simde_float16x4_private a_ = simde_float16x4_to_private(a); @@ -1619,7 +1643,7 @@ simde_vcvta_s16_f16(simde_float16x4_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x4_t simde_vcvta_u16_f16(simde_float16x4_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvta_u16_f16(a); #else simde_float16x4_private a_ = simde_float16x4_to_private(a); @@ -1707,7 +1731,7 @@ simde_vcvta_s32_f32(simde_float32x2_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_int16x8_t simde_vcvtaq_s16_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtaq_s16_f16(a); #else simde_float16x8_private a_ = simde_float16x8_to_private(a); @@ -1730,7 +1754,7 @@ simde_vcvtaq_s16_f16(simde_float16x8_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint16x8_t simde_vcvtaq_u16_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtaq_u16_f16(a); #else simde_float16x8_private a_ = simde_float16x8_to_private(a); diff --git a/simde/arm/neon/cvt_n.h b/simde/arm/neon/cvt_n.h index b0a58512d..23b7f3dfd 100644 --- a/simde/arm/neon/cvt_n.h +++ b/simde/arm/neon/cvt_n.h @@ -38,7 +38,9 @@ SIMDE_FUNCTION_ATTRIBUTES int16_t simde_vcvth_n_s16_f16(simde_float16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - return simde_vcvth_s16_f16(a * pow(2, n)); + return simde_vcvth_s16_f16( + simde_float16_from_float32( + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_s16_f16(a, n) vcvth_n_s16_f16(a, n) @@ -52,17 +54,9 @@ SIMDE_FUNCTION_ATTRIBUTES int32_t simde_vcvth_n_s32_f16(simde_float16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - simde_float32 af = simde_float16_to_float32(a); - af = af * pow(2, n); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { - return INT32_MIN; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT32_MAX))) { - return INT32_MAX; - } else if (HEDLEY_UNLIKELY(simde_math_isnan(af))) { - return 0; - } else { - return HEDLEY_STATIC_CAST(int32_t, af); - } + return simde_vcvth_s32_f16( + simde_float16_from_float32( + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_s32_f16(a, n) vcvth_n_s32_f16(a, n) @@ -76,17 +70,9 @@ SIMDE_FUNCTION_ATTRIBUTES int64_t simde_vcvth_n_s64_f16(simde_float16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - simde_float32 af = simde_float16_to_float32(a); - af = af * pow(2, n); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, INT64_MIN))) { - return INT64_MIN; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, INT64_MAX))) { - return INT64_MAX; - } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { - return 0; - } else { - return HEDLEY_STATIC_CAST(int64_t, af); - } + return simde_vcvth_s64_f16( + simde_float16_from_float32( + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_s64_f16(a, n) vcvth_n_s64_f16(a, n) @@ -100,7 +86,9 @@ SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcvth_n_u16_f16(simde_float16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - return simde_vcvth_u16_f16(a * pow(2, n)); + return simde_vcvth_u16_f16( + simde_float16_from_float32( + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_u16_f16(a, n) vcvth_n_u16_f16(a, n) @@ -114,17 +102,9 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvth_n_u32_f16(simde_float16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - simde_float32 af = simde_float16_to_float32(a); - af = af * pow(2, n); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0.0))) { - return 0; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX))) { - return UINT32_MAX; - } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { - return 0; - } else { - return HEDLEY_STATIC_CAST(uint32_t, af); - } + return simde_vcvth_u32_f16( + simde_float16_from_float32( + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_u32_f16(a, n) vcvth_n_u32_f16(a, n) @@ -138,17 +118,9 @@ SIMDE_FUNCTION_ATTRIBUTES uint64_t simde_vcvth_n_u64_f16(simde_float16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - simde_float32 af = simde_float16_to_float32(a); - af = af * pow(2, n); - if (HEDLEY_UNLIKELY(af < HEDLEY_STATIC_CAST(simde_float32, 0))) { - return 0; - } else if (HEDLEY_UNLIKELY(af > HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX))) { - return UINT64_MAX; - } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { - return 0; - } else { - return HEDLEY_STATIC_CAST(uint64_t, af); - } + return simde_vcvth_u64_f16( + simde_float16_from_float32( + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_u64_f16(a, n) vcvth_n_u64_f16(a, n) @@ -162,11 +134,9 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vcvth_n_f16_s16(int16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - return HEDLEY_STATIC_CAST(simde_float16_t, (a / pow(2, n))); - #else - return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a / pow(2, n)))); - #endif + return simde_float16_from_float32( + HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_s16(a, n) vcvth_n_f16_s16(a, n) @@ -180,11 +150,9 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vcvth_n_f16_s32(int32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - return HEDLEY_STATIC_CAST(simde_float16_t, (a / pow(2, n))); - #else - return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a / pow(2, n)))); - #endif + return simde_float16_from_float32( + HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); } #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_s32(a, n) vcvth_n_f16_s32(a, n) @@ -198,11 +166,9 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vcvth_n_f16_s64(int64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - return HEDLEY_STATIC_CAST(simde_float16_t, (a / pow(2, n))); - #else - return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a / pow(2, n)))); - #endif + return simde_float16_from_float32( + HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_s64(a, n) vcvth_n_f16_s64(a, n) @@ -216,11 +182,9 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vcvth_n_f16_u16(uint16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - return HEDLEY_STATIC_CAST(simde_float16_t, (a / pow(2, n))); - #else - return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a / pow(2, n)))); - #endif + return simde_float16_from_float32( + HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_u16(a, n) vcvth_n_f16_u16(a, n) @@ -234,11 +198,9 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vcvth_n_f16_u32(uint32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - return HEDLEY_STATIC_CAST(simde_float16_t, (a / pow(2, n))); - #else - return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a / pow(2, n)))); - #endif + return simde_float16_from_float32( + HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); } #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_u32(a, n) vcvth_n_f16_u32(a, n) @@ -252,11 +214,9 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float16_t simde_vcvth_n_f16_u64(uint64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - return HEDLEY_STATIC_CAST(simde_float16_t, (a / pow(2, n))); - #else - return simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a / pow(2, n)))); - #endif + return simde_float16_from_float32( + HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_u64(a, n) vcvth_n_f16_u64(a, n) @@ -270,7 +230,7 @@ SIMDE_FUNCTION_ATTRIBUTES int32_t simde_vcvts_n_s32_f32(simde_float32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { - return simde_vcvts_s32_f32(a * pow(2, n)); + return simde_vcvts_s32_f32(a * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_s32_f32(a, n) vcvts_n_s32_f32(a, n) @@ -284,7 +244,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvts_n_u32_f32(simde_float32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { - return simde_vcvts_u32_f32(a * pow(2, n)); + return simde_vcvts_u32_f32(a * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_u32_f32(a, n) vcvts_n_u32_f32(a, n) @@ -298,7 +258,8 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float32_t simde_vcvts_n_f32_s32(int32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { - return HEDLEY_STATIC_CAST(simde_float32, a / pow(2, n)); + return HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_f32_s32(a, n) vcvts_n_f32_s32(a, n) @@ -312,7 +273,8 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float32_t simde_vcvts_n_f32_u32(uint32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { - return HEDLEY_STATIC_CAST(simde_float32, a / pow(2, n)); + return HEDLEY_STATIC_CAST(simde_float32_t, + HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_f32_u32(a, n) vcvts_n_f32_u32(a, n) @@ -354,7 +316,7 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float64_t simde_vcvtd_n_f64_s64(int64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 64) { - return HEDLEY_STATIC_CAST(simde_float64, a / pow(2, n)); + return HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvtd_n_f64_s64(a, n) vcvtd_n_f64_s64(a, n) @@ -368,7 +330,7 @@ SIMDE_FUNCTION_ATTRIBUTES simde_float64_t simde_vcvtd_n_f64_u64(uint64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 64) { - return HEDLEY_STATIC_CAST(simde_float64, a / pow(2, n)); + return HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvtd_n_f64_u64(a, n) vcvtd_n_f64_u64(a, n) @@ -389,7 +351,7 @@ simde_vcvt_n_s16_f16(simde_float16x4_t a, const int n) for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = simde_vcvth_s16_f16(simde_float16_from_float32( simde_float16_to_float32(a_.values[i]) * - HEDLEY_STATIC_CAST(float, pow(2, n)))); + HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } return simde_int16x4_from_private(r_); @@ -411,7 +373,7 @@ simde_vcvt_n_s32_f32(simde_float32x2_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(float, pow(2, n))); + r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); } return simde_int32x2_from_private(r_); @@ -457,7 +419,7 @@ simde_vcvt_n_u16_f16(simde_float16x4_t a, const int n) for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = simde_vcvth_u16_f16(simde_float16_from_float32( simde_float16_to_float32(a_.values[i]) * - HEDLEY_STATIC_CAST(float, pow(2, n)))); + HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } return simde_uint16x4_from_private(r_); @@ -479,7 +441,7 @@ simde_vcvt_n_u32_f32(simde_float32x2_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(float, pow(2, n))); + r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); } return simde_uint32x2_from_private(r_); @@ -525,7 +487,7 @@ simde_vcvtq_n_s16_f16(simde_float16x8_t a, const int n) for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = simde_vcvth_s16_f16(simde_float16_from_float32( simde_float16_to_float32(a_.values[i]) * - HEDLEY_STATIC_CAST(float, pow(2, n)))); + HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } return simde_int16x8_from_private(r_); @@ -547,7 +509,7 @@ simde_vcvtq_n_s32_f32(simde_float32x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(float, pow(2, n))); + r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); } return simde_int32x4_from_private(r_); @@ -593,7 +555,7 @@ simde_vcvtq_n_u16_f16(simde_float16x8_t a, const int n) for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = simde_vcvth_u16_f16(simde_float16_from_float32( simde_float16_to_float32(a_.values[i]) * - HEDLEY_STATIC_CAST(float, pow(2, n)))); + HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); } return simde_uint16x8_from_private(r_); @@ -615,7 +577,7 @@ simde_vcvtq_n_u32_f32(simde_float32x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(float, pow(2, n))); + r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); } return simde_uint32x4_from_private(r_); @@ -659,7 +621,7 @@ simde_vcvt_n_f16_u16(simde_uint16x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n))); } return simde_float16x4_from_private(r_); @@ -681,7 +643,7 @@ simde_vcvt_n_f16_s16(simde_int16x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n))); } return simde_float16x4_from_private(r_); @@ -703,7 +665,7 @@ simde_vcvtq_n_f16_u16(simde_uint16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n))); } return simde_float16x8_from_private(r_); @@ -725,7 +687,7 @@ simde_vcvtq_n_f16_s16(simde_int16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, (a_.values[i] / pow(2, n)))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a_.values[i] / pow(2, n)))); } return simde_float16x8_from_private(r_); @@ -747,7 +709,7 @@ simde_vcvt_n_f32_u32(simde_uint32x2_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float32x2_from_private(r_); @@ -769,7 +731,7 @@ simde_vcvt_n_f32_s32(simde_int32x2_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float32x2_from_private(r_); @@ -791,7 +753,7 @@ simde_vcvt_n_f64_u64(simde_uint64x1_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float64x1_from_private(r_); @@ -814,7 +776,7 @@ simde_vcvtq_n_f64_u64(simde_uint64x2_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float64x2_from_private(r_); @@ -837,7 +799,7 @@ simde_vcvt_n_f64_s64(simde_int64x1_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float64x1_from_private(r_); @@ -859,7 +821,7 @@ simde_vcvtq_n_f64_s64(simde_int64x2_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float64x2_from_private(r_); @@ -881,7 +843,7 @@ simde_vcvtq_n_f32_s32(simde_int32x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float32x4_from_private(r_); @@ -903,7 +865,7 @@ simde_vcvtq_n_f32_u32(simde_uint32x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); } return simde_float32x4_from_private(r_); diff --git a/simde/arm/neon/cvtm.h b/simde/arm/neon/cvtm.h index 44ea77c33..4a34b98c4 100644 --- a/simde/arm/neon/cvtm.h +++ b/simde/arm/neon/cvtm.h @@ -40,16 +40,19 @@ simde_vcvtmh_s64_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtmh_s64_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int64_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int64_t, + simde_math_floorf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= HEDLEY_STATIC_CAST(simde_float16, INT64_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT64_MIN))) { return INT64_MIN; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, INT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT64_MAX))) { return INT64_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int64_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int64_t, simde_math_floorf(af)); } #endif } @@ -64,16 +67,19 @@ simde_vcvtmh_s32_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtmh_s32_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int32_t, + simde_math_floorf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= HEDLEY_STATIC_CAST(simde_float16, INT32_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, INT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT32_MAX))) { return INT32_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_floorf(af)); } #endif } @@ -88,14 +94,19 @@ simde_vcvtmh_s16_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtmh_s16_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int16_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int16_t, + simde_math_floorf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float16, INT16_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT16_MIN))) { return INT16_MIN; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, INT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT16_MAX))) { return INT16_MAX; + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { + return 0; } else { - return HEDLEY_STATIC_CAST(int16_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int16_t, simde_math_floorf(af)); } #endif } @@ -107,19 +118,22 @@ simde_vcvtmh_s16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint64_t simde_vcvtmh_u64_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtmh_u64_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint64_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint64_t, + simde_math_floorf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, UINT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX))) { return UINT64_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint64_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint64_t, simde_math_floorf(af)); } #endif } @@ -131,19 +145,22 @@ simde_vcvtmh_u64_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvtmh_u32_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtmh_u32_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint32_t, + simde_math_floorf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, UINT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX))) { return UINT32_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_floorf(af)); } #endif } @@ -155,19 +172,22 @@ simde_vcvtmh_u32_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcvtmh_u16_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtmh_u16_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint16_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint16_t, + simde_math_floorf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, UINT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX))) { return UINT16_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint16_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint16_t, simde_math_floorf(af)); } #endif } @@ -179,10 +199,10 @@ simde_vcvtmh_u16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES int32_t simde_vcvtms_s32_f32(simde_float32 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtms_s32_f32(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_floorf(a)); #else if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; @@ -191,11 +211,11 @@ simde_vcvtms_s32_f32(simde_float32 a) { } else if (HEDLEY_UNLIKELY(simde_math_isnanf(a))) { return 0; } else { - return HEDLEY_STATIC_CAST(int32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_floorf(a)); } #endif } -#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) +#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vcvtms_s32_f32 #define vcvtms_s32_f32(a) simde_vcvtms_s32_f32(a) #endif @@ -203,10 +223,10 @@ simde_vcvtms_s32_f32(simde_float32 a) { SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvtms_u32_f32(simde_float32 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtms_u32_f32(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_floorf(a)); #else if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT32_C(0.0))) { return 0; @@ -215,11 +235,11 @@ simde_vcvtms_u32_f32(simde_float32 a) { } else if (HEDLEY_UNLIKELY(simde_math_isnanf(a))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint32_t, simde_math_floor(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_floorf(a)); } #endif } -#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) +#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vcvtms_u32_f32 #define vcvtms_u32_f32(a) simde_vcvtms_u32_f32(a) #endif @@ -256,9 +276,9 @@ simde_vcvtmd_u64_f64(simde_float64 a) { #elif defined(SIMDE_FAST_CONVERSION_RANGE) return HEDLEY_STATIC_CAST(uint64_t, simde_math_floor(a)); #else - if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT64_C(0.0))) { + if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT64_C(0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float64, UINT64_MAX))) { + } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float64, UINT64_MAX))) { return UINT64_MAX; } else if (simde_math_isnan(a)) { return 0; @@ -291,7 +311,7 @@ simde_vcvtmq_s16_f16(simde_float16x8_t a) { } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcvtmq_s16_f16 - #define vcvtmq_s16_f16(a, n) simde_vcvtmq_s16_f16(a, n) + #define vcvtmq_s16_f16(a) simde_vcvtmq_s16_f16(a) #endif SIMDE_FUNCTION_ATTRIBUTES @@ -357,7 +377,7 @@ simde_vcvtmq_u16_f16(simde_float16x8_t a) { } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcvtmq_u16_f16 - #define vcvtmq_u16_f16(a, n) simde_vcvtmq_u16_f16(a, n) + #define vcvtmq_u16_f16(a) simde_vcvtmq_u16_f16(a) #endif @@ -449,7 +469,7 @@ simde_vcvtm_s16_f16(simde_float16x4_t a) { } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcvtm_s16_f16 - #define vcvtm_s16_f16(a, n) simde_vcvtm_s16_f16(a, n) + #define vcvtm_s16_f16(a) simde_vcvtm_s16_f16(a) #endif SIMDE_FUNCTION_ATTRIBUTES @@ -471,7 +491,7 @@ simde_vcvtm_u16_f16(simde_float16x4_t a) { } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcvtm_u16_f16 - #define vcvtm_u16_f16(a, n) simde_vcvtm_u16_f16(a, n) + #define vcvtm_u16_f16(a) simde_vcvtm_u16_f16(a) #endif SIMDE_FUNCTION_ATTRIBUTES @@ -493,7 +513,7 @@ simde_vcvtm_u32_f32(simde_float32x2_t a) { } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcvtm_u32_f32 - #define vcvtm_u32_f32(a, n) simde_vcvtm_u32_f32(a, n) + #define vcvtm_u32_f32(a) simde_vcvtm_u32_f32(a) #endif SIMDE_FUNCTION_ATTRIBUTES @@ -515,7 +535,7 @@ simde_vcvtm_s32_f32(simde_float32x2_t a) { } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcvtm_s32_f32 - #define vcvtm_s32_f32(a, n) simde_vcvtm_s32_f32(a, n) + #define vcvtm_s32_f32(a) simde_vcvtm_s32_f32(a) #endif SIMDE_FUNCTION_ATTRIBUTES @@ -537,7 +557,7 @@ simde_vcvtm_s64_f64(simde_float64x1_t a) { } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vcvtm_s64_f64 - #define vcvtm_s64_f64(a, n) simde_vcvtm_s64_f64(a, n) + #define vcvtm_s64_f64(a) simde_vcvtm_s64_f64(a) #endif SIMDE_FUNCTION_ATTRIBUTES @@ -559,7 +579,7 @@ simde_vcvtm_u64_f64(simde_float64x1_t a) { } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vcvtm_u64_f64 - #define vcvtm_u64_f64(a, n) simde_vcvtm_u64_f64(a, n) + #define vcvtm_u64_f64(a) simde_vcvtm_u64_f64(a) #endif SIMDE_END_DECLS_ diff --git a/simde/arm/neon/cvtp.h b/simde/arm/neon/cvtp.h index 0460c6313..3dabcfe80 100644 --- a/simde/arm/neon/cvtp.h +++ b/simde/arm/neon/cvtp.h @@ -40,16 +40,19 @@ simde_vcvtph_s64_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtph_s64_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int64_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int64_t, + simde_math_ceilf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= HEDLEY_STATIC_CAST(simde_float16, INT64_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT64_MIN))) { return INT64_MIN; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, INT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT64_MAX))) { return INT64_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int64_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int64_t, simde_math_ceilf(af)); } #endif } @@ -64,16 +67,19 @@ simde_vcvtph_s32_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtph_s32_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int32_t, + simde_math_ceilf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= HEDLEY_STATIC_CAST(simde_float16, INT32_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, INT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT32_MAX))) { return INT32_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(int32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_ceilf(af)); } #endif } @@ -88,14 +94,19 @@ simde_vcvtph_s16_f16(simde_float16 a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtph_s16_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int16_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int16_t, + simde_math_ceilf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float16, INT16_MIN))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, INT16_MIN))) { return INT16_MIN; - } else if (HEDLEY_UNLIKELY(a > HEDLEY_STATIC_CAST(simde_float16, INT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, INT16_MAX))) { return INT16_MAX; + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { + return 0; } else { - return HEDLEY_STATIC_CAST(int16_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int16_t, simde_math_ceilf(af)); } #endif } @@ -107,19 +118,22 @@ simde_vcvtph_s16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint64_t simde_vcvtph_u64_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtph_u64_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint64_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint64_t, + simde_math_ceilf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, UINT64_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX))) { return UINT64_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint64_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint64_t, simde_math_ceilf(af)); } #endif } @@ -131,19 +145,22 @@ simde_vcvtph_u64_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvtph_u32_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtph_u32_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint32_t, + simde_math_ceilf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, UINT32_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX))) { return UINT32_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceilf(af)); } #endif } @@ -155,19 +172,22 @@ simde_vcvtph_u32_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vcvtph_u16_f16(simde_float16 a) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vcvtph_u16_f16(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint16_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint16_t, + simde_math_ceilf( + simde_float16_to_float32(a))); #else - if (HEDLEY_UNLIKELY(a <= SIMDE_FLOAT16_C(0.0))) { + simde_float32 af = simde_float16_to_float32(a); + if (HEDLEY_UNLIKELY(af <= HEDLEY_STATIC_CAST(simde_float32, 0.0))) { return 0; - } else if (HEDLEY_UNLIKELY(a >= HEDLEY_STATIC_CAST(simde_float16, UINT16_MAX))) { + } else if (HEDLEY_UNLIKELY(af >= HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX))) { return UINT16_MAX; - } else if (simde_math_isnan(a)) { + } else if (HEDLEY_UNLIKELY(simde_math_isnanf(af))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint16_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint16_t, simde_math_ceilf(af)); } #endif } @@ -179,10 +199,10 @@ simde_vcvtph_u16_f16(simde_float16 a) { SIMDE_FUNCTION_ATTRIBUTES int32_t simde_vcvtps_s32_f32(simde_float32 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtps_s32_f32(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(int32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_ceilf(a)); #else if (HEDLEY_UNLIKELY(a < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))) { return INT32_MIN; @@ -191,11 +211,11 @@ simde_vcvtps_s32_f32(simde_float32 a) { } else if (HEDLEY_UNLIKELY(simde_math_isnanf(a))) { return 0; } else { - return HEDLEY_STATIC_CAST(int32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(int32_t, simde_math_ceilf(a)); } #endif } -#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) +#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vcvtps_s32_f32 #define vcvtps_s32_f32(a) simde_vcvtps_s32_f32(a) #endif @@ -203,10 +223,10 @@ simde_vcvtps_s32_f32(simde_float32 a) { SIMDE_FUNCTION_ATTRIBUTES uint32_t simde_vcvtps_u32_f32(simde_float32 a) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtps_u32_f32(a); #elif defined(SIMDE_FAST_CONVERSION_RANGE) - return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceilf(a)); #else if (HEDLEY_UNLIKELY(a < SIMDE_FLOAT32_C(0.0))) { return 0; @@ -215,11 +235,11 @@ simde_vcvtps_u32_f32(simde_float32 a) { } else if (HEDLEY_UNLIKELY(simde_math_isnanf(a))) { return 0; } else { - return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceil(a)); + return HEDLEY_STATIC_CAST(uint32_t, simde_math_ceilf(a)); } #endif } -#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) +#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vcvtps_u32_f32 #define vcvtps_u32_f32(a) simde_vcvtps_u32_f32(a) #endif diff --git a/simde/arm/neon/fms_n.h b/simde/arm/neon/fms_n.h index eb95818f8..6011ae415 100644 --- a/simde/arm/neon/fms_n.h +++ b/simde/arm/neon/fms_n.h @@ -66,13 +66,13 @@ simde_vfmsq_n_f16(simde_float16x8_t a, simde_float16x8_t b, simde_float16_t c) { SIMDE_FUNCTION_ATTRIBUTES simde_float32x2_t simde_vfms_n_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32_t c) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) return vfms_n_f32(a, b, c); #else return simde_vfms_f32(a, b, simde_vdup_n_f32(c)); #endif } -#if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) +#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vfms_n_f32 #define vfms_n_f32(a, b, c) simde_vfms_n_f32(a, b, c) #endif @@ -94,13 +94,13 @@ simde_vfms_n_f64(simde_float64x1_t a, simde_float64x1_t b, simde_float64_t c) { SIMDE_FUNCTION_ATTRIBUTES simde_float32x4_t simde_vfmsq_n_f32(simde_float32x4_t a, simde_float32x4_t b, simde_float32_t c) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) return vfmsq_n_f32(a, b, c); #else return simde_vfmsq_f32(a, b, simde_vdupq_n_f32(c)); #endif } -#if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) +#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vfmsq_n_f32 #define vfmsq_n_f32(a, b, c) simde_vfmsq_n_f32(a, b, c) #endif diff --git a/simde/arm/neon/ld3.h b/simde/arm/neon/ld3.h index 6d325561a..c5fdc762c 100644 --- a/simde/arm/neon/ld3.h +++ b/simde/arm/neon/ld3.h @@ -352,7 +352,7 @@ simde_vld3_u64(uint64_t const *ptr) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8x3_t simde_vld3q_f16(simde_float16 const *ptr) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vld3q_f16(ptr); #else simde_float16x8_private r_[3]; diff --git a/simde/arm/neon/ld4.h b/simde/arm/neon/ld4.h index 4fcb83891..676cd2712 100644 --- a/simde/arm/neon/ld4.h +++ b/simde/arm/neon/ld4.h @@ -263,7 +263,7 @@ simde_vld4_u64(uint64_t const ptr[HEDLEY_ARRAY_PARAM(4)]) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8x4_t simde_vld4q_f16(simde_float16 const ptr[HEDLEY_ARRAY_PARAM(32)]) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vld4q_f16(ptr); #else simde_float16x8_private a_[4]; diff --git a/simde/arm/neon/qrshl.h b/simde/arm/neon/qrshl.h index e0058e54d..b3b5f9ced 100644 --- a/simde/arm/neon/qrshl.h +++ b/simde/arm/neon/qrshl.h @@ -82,7 +82,7 @@ simde_vqrshlb_s8(int8_t a, int8_t b) { if (b < -8) { r = 0; } else if (b < 0) { - r = ((a + (1 << (-b - 1))) >> -b); + r = HEDLEY_STATIC_CAST(int8_t, ((a + (1 << (-b - 1))) >> -b)); } else if (b == 0) { r = a; } else if (b < 7) { @@ -117,7 +117,7 @@ simde_vqrshlh_s16(int16_t a, int16_t b) { if (b8 <= -16) { r = 0; } else if (b8 < 0) { - r = ((a + (1 << (-b8 - 1))) >> -b8); + r = HEDLEY_STATIC_CAST(int16_t, ((a + (1 << (-b8 - 1))) >> -b8)); } else if (b8 == 0) { r = a; } else if (b8 < 15) { diff --git a/simde/arm/neon/qrshrn_high_n.h b/simde/arm/neon/qrshrn_high_n.h index 839654de2..0080e739a 100644 --- a/simde/arm/neon/qrshrn_high_n.h +++ b/simde/arm/neon/qrshrn_high_n.h @@ -45,7 +45,7 @@ simde_vqrshrn_high_n_s16(simde_int8x8_t r, simde_int16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - int16_t tmp = (a_.values[i] + (1 << (n - 1))) >> n; + int16_t tmp = HEDLEY_STATIC_CAST(int16_t, (a_.values[i] + (1 << (n - 1))) >> n); if (tmp > INT8_MAX) tmp = INT8_MAX; else if (tmp < INT8_MIN) tmp = INT8_MIN; r_.values[i] = HEDLEY_STATIC_CAST(int8_t, tmp); @@ -120,9 +120,8 @@ simde_vqrshrn_high_n_u16(simde_uint8x8_t r, simde_uint16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - uint16_t tmp = (a_.values[i] + (1 << (n - 1))) >> n; + uint16_t tmp = HEDLEY_STATIC_CAST(uint16_t, (a_.values[i] + (1 << (n - 1))) >> n); if (tmp > UINT8_MAX) tmp = UINT8_MAX; - else if (tmp < 0) tmp = 0; r_.values[i] = HEDLEY_STATIC_CAST(uint8_t, tmp); } return simde_vcombine_u8(r, simde_vqmovn_u16(simde_uint16x8_from_private(r_))); @@ -147,7 +146,6 @@ simde_vqrshrn_high_n_u32(simde_uint16x4_t r, simde_uint32x4_t a, const int n) for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { uint32_t tmp = (a_.values[i] >> ((n == 32) ? 31 : n)) + ((a_.values[i] & HEDLEY_STATIC_CAST(uint32_t, UINT32_C(1) << (n - 1))) != 0); if (tmp > UINT16_MAX) tmp = UINT16_MAX; - else if (tmp < 0) tmp = 0; r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, tmp); } return simde_vcombine_u16(r, simde_vqmovn_u32(simde_uint32x4_from_private(r_))); @@ -172,7 +170,6 @@ simde_vqrshrn_high_n_u64(simde_uint32x2_t r, simde_uint64x2_t a, const int n) for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { uint64_t tmp = (a_.values[i] >> ((n == 64) ? 63 : n)) + ((a_.values[i] & HEDLEY_STATIC_CAST(uint64_t, UINT64_C(1) << (n - 1))) != 0); if (tmp > UINT32_MAX) tmp = UINT32_MAX; - else if (tmp < 0) tmp = 0; r_.values[i] = HEDLEY_STATIC_CAST(uint32_t, tmp); } return simde_vcombine_u32(r, simde_vqmovn_u64(simde_uint64x2_from_private(r_))); diff --git a/simde/arm/neon/qrshrun_high_n.h b/simde/arm/neon/qrshrun_high_n.h index f7dada7ab..b035681c3 100644 --- a/simde/arm/neon/qrshrun_high_n.h +++ b/simde/arm/neon/qrshrun_high_n.h @@ -44,14 +44,14 @@ simde_vqrshrun_high_n_s16(simde_uint8x8_t r, simde_int16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - int16_t tmp = (a_.values[i] + (1 << (n - 1))) >> n; + int16_t tmp = HEDLEY_STATIC_CAST(int16_t, (a_.values[i] + (1 << (n - 1))) >> n); if (tmp > UINT8_MAX) tmp = UINT8_MAX; else if (tmp < 0) tmp = 0; r_.values[i] = HEDLEY_STATIC_CAST(uint8_t, tmp); } return simde_vcombine_u8(r, simde_vqmovn_u16(simde_uint16x8_from_private(r_))); } -#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(__clang__) #define simde_vqrshrun_high_n_s16(r, a, n) vqrshrun_high_n_s16((r), (a), (n)) #endif #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -75,7 +75,7 @@ simde_vqrshrun_high_n_s32(simde_uint16x4_t r, simde_int32x4_t a, const int n) } return simde_vcombine_u16(r, simde_vqmovn_u32(simde_uint32x4_from_private(r_))); } -#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(__clang__) #define simde_vqrshrun_high_n_s32(r, a, n) vqrshrun_high_n_s32((r), (a), (n)) #endif #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -99,7 +99,7 @@ simde_vqrshrun_high_n_s64(simde_uint32x2_t r, simde_int64x2_t a, const int n) } return simde_vcombine_u32(r, simde_vqmovn_u64(simde_uint64x2_from_private(r_))); } -#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(__clang__) #define simde_vqrshrun_high_n_s64(r, a, n) vqrshrun_high_n_s64((r), (a), (n)) #endif #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) diff --git a/simde/arm/neon/qshl_n.h b/simde/arm/neon/qshl_n.h index 3a289f259..981fc1224 100644 --- a/simde/arm/neon/qshl_n.h +++ b/simde/arm/neon/qshl_n.h @@ -39,7 +39,7 @@ SIMDE_FUNCTION_ATTRIBUTES int8_t simde_vqshlb_n_s8(int8_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 7) { - return simde_vqshlb_s8(a, n); + return simde_vqshlb_s8(a, HEDLEY_STATIC_CAST(int8_t, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vqshlb_n_s8(a, n) vqshlb_n_s8((a), (n)) @@ -53,7 +53,7 @@ SIMDE_FUNCTION_ATTRIBUTES int16_t simde_vqshlh_n_s16(int16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 15) { - return simde_vqshlh_s16(a, n); + return simde_vqshlh_s16(a, HEDLEY_STATIC_CAST(int16_t, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vqshlh_n_s16(a, n) vqshlh_n_s16((a), (n)) @@ -95,7 +95,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint8_t simde_vqshlb_n_u8(uint8_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 7) { - return simde_vqshlb_u8(a, n); + return simde_vqshlb_u8(a, HEDLEY_STATIC_CAST(int8_t, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vqshlb_n_u8(a, n) vqshlb_n_u8((a), (n)) @@ -109,7 +109,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint16_t simde_vqshlh_n_u16(uint16_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 15) { - return simde_vqshlh_u16(a, n); + return simde_vqshlh_u16(a, HEDLEY_STATIC_CAST(int16_t, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vqshlh_n_u16(a, n) vqshlh_n_u16((a), (n)) @@ -157,7 +157,7 @@ simde_vqshl_n_s8 (const simde_int8x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlb_s8(a_.values[i], n); + SIMDE_CONSTIFY_8_(simde_vqshlb_n_s8, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_int8x8_from_private(r_); } @@ -179,7 +179,7 @@ simde_vqshl_n_s16 (const simde_int16x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlh_s16(a_.values[i], n); + SIMDE_CONSTIFY_16_(simde_vqshlh_n_s16, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_int16x4_from_private(r_); } @@ -245,7 +245,7 @@ simde_vqshl_n_u8 (const simde_uint8x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlb_u8(a_.values[i], n); + SIMDE_CONSTIFY_8_(simde_vqshlb_n_u8, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_uint8x8_from_private(r_); } @@ -267,7 +267,7 @@ simde_vqshl_n_u16 (const simde_uint16x4_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlh_u16(a_.values[i], n); + SIMDE_CONSTIFY_16_(simde_vqshlh_n_u16, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_uint16x4_from_private(r_); } @@ -333,7 +333,7 @@ simde_vqshlq_n_s8 (const simde_int8x16_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlb_s8(a_.values[i], n); + SIMDE_CONSTIFY_8_(simde_vqshlb_n_s8, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_int8x16_from_private(r_); @@ -356,7 +356,7 @@ simde_vqshlq_n_s16 (const simde_int16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlh_s16(a_.values[i], n); + SIMDE_CONSTIFY_16_(simde_vqshlh_n_s16, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_int16x8_from_private(r_); @@ -425,7 +425,7 @@ simde_vqshlq_n_u8 (const simde_uint8x16_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlb_u8(a_.values[i], n); + SIMDE_CONSTIFY_8_(simde_vqshlb_n_u8, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_uint8x16_from_private(r_); @@ -448,7 +448,7 @@ simde_vqshlq_n_u16 (const simde_uint16x8_t a, const int n) SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqshlh_u16(a_.values[i], n); + SIMDE_CONSTIFY_16_(simde_vqshlh_n_u16, r_.values[i], (HEDLEY_UNREACHABLE(), 0), n, a_.values[i]); } return simde_uint16x8_from_private(r_); diff --git a/simde/arm/neon/raddhn.h b/simde/arm/neon/raddhn.h index 674fc458c..0f16e446e 100644 --- a/simde/arm/neon/raddhn.h +++ b/simde/arm/neon/raddhn.h @@ -47,7 +47,7 @@ simde_vraddhn_s16(simde_int16x8_t a, simde_int16x8_t b) { r_, a_ = simde_int16x8_to_private(a), b_ = simde_int16x8_to_private(b); - int round_cast = 1 << 7; + int16_t round_cast = 1 << 7; SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = a_.values[i] + b_.values[i] + round_cast; @@ -93,11 +93,10 @@ simde_vraddhn_s64(simde_int64x2_t a, simde_int64x2_t b) { r_, a_ = simde_int64x2_to_private(a), b_ = simde_int64x2_to_private(b); - int round_cast = 1 << 31; + int64_t round_cast = 1ll << 31; SIMDE_VECTORIZE - // Strangely, the answer needs to be increased by one to be the same as QEMU's result. for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = ((a_.values[i] + b_.values[i] + round_cast) >> 32) + 1; + r_.values[i] = ((a_.values[i] + b_.values[i] + round_cast) >> 32); } return simde_vmovn_s64(simde_int64x2_from_private(r_)); #endif @@ -117,10 +116,10 @@ simde_vraddhn_u16(simde_uint16x8_t a, simde_uint16x8_t b) { r_, a_ = simde_uint16x8_to_private(a), b_ = simde_uint16x8_to_private(b); - int round_cast = 1 << 7; + uint16_t round_cast = 1 << 7; SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i] + round_cast; + r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, a_.values[i] + b_.values[i] + round_cast); } return simde_vmovn_u16(simde_vshrq_n_u16(simde_uint16x8_from_private(r_), 8)); #endif @@ -140,10 +139,10 @@ simde_vraddhn_u32(simde_uint32x4_t a, simde_uint32x4_t b) { r_, a_ = simde_uint32x4_to_private(a), b_ = simde_uint32x4_to_private(b); - int round_cast = 1 << 15; + uint32_t round_cast = 1 << 15; SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i] + round_cast; + r_.values[i] = HEDLEY_STATIC_CAST(uint32_t, a_.values[i] + b_.values[i] + round_cast); } return simde_vmovn_u32(simde_vshrq_n_u32(simde_uint32x4_from_private(r_), 16)); #endif @@ -163,11 +162,10 @@ simde_vraddhn_u64(simde_uint64x2_t a, simde_uint64x2_t b) { r_, a_ = simde_uint64x2_to_private(a), b_ = simde_uint64x2_to_private(b); - int round_cast = 1 << 31; + uint64_t round_cast = 1ull << 31; SIMDE_VECTORIZE - // Strangely, the answer needs to be increased by one to be the same as QEMU's result. for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = ((a_.values[i] + b_.values[i] + round_cast) >> 32) + 1; + r_.values[i] = ((a_.values[i] + b_.values[i] + round_cast) >> 32); } return simde_vmovn_u64(simde_uint64x2_from_private(r_)); #endif diff --git a/simde/arm/neon/reinterpret.h b/simde/arm/neon/reinterpret.h index 4474fb51c..f43bdfb53 100644 --- a/simde/arm/neon/reinterpret.h +++ b/simde/arm/neon/reinterpret.h @@ -3763,7 +3763,7 @@ simde_vreinterpretq_u32_f16(simde_float16x8_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_uint64x2_t simde_vreinterpretq_u64_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vreinterpretq_u64_f16(a); #else simde_uint64x2_private r_; diff --git a/simde/arm/neon/rev64.h b/simde/arm/neon/rev64.h index c9ae810ec..31645a8ef 100644 --- a/simde/arm/neon/rev64.h +++ b/simde/arm/neon/rev64.h @@ -26,9 +26,6 @@ * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) */ -/* N.B. CM: vrev64_f16 and vrev64q_f16 are omitted as - * SIMDe has no 16-bit floating point support. */ - #if !defined(SIMDE_ARM_NEON_REV64_H) #define SIMDE_ARM_NEON_REV64_H @@ -171,7 +168,7 @@ simde_vrev64_u32(simde_uint32x2_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x4_t simde_vrev64_f16(simde_float16x4_t a) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vrev64_f16(a); #else return simde_vreinterpret_f16_s16(simde_vrev64_s16(simde_vreinterpret_s16_f16(a))); @@ -352,7 +349,7 @@ simde_vrev64q_u32(simde_uint32x4_t a) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8_t simde_vrev64q_f16(simde_float16x8_t a) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vrev64q_f16(a); #else return simde_vreinterpretq_f16_s16(simde_vrev64q_s16(simde_vreinterpretq_s16_f16(a))); diff --git a/simde/arm/neon/rsubhn.h b/simde/arm/neon/rsubhn.h index 7567d14af..2d6a15da4 100644 --- a/simde/arm/neon/rsubhn.h +++ b/simde/arm/neon/rsubhn.h @@ -47,10 +47,10 @@ simde_vrsubhn_s16(simde_int16x8_t a, simde_int16x8_t b) { r_, a_ = simde_int16x8_to_private(a), b_ = simde_int16x8_to_private(b); - int round_cast = 1 << 7; + int16_t round_cast = 1 << 7; SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] - b_.values[i] + round_cast; + r_.values[i] = HEDLEY_STATIC_CAST(int16_t, a_.values[i] - b_.values[i] + round_cast); } return simde_vmovn_s16(simde_vshrq_n_s16(simde_int16x8_from_private(r_), 8)); #endif @@ -93,11 +93,10 @@ simde_vrsubhn_s64(simde_int64x2_t a, simde_int64x2_t b) { r_, a_ = simde_int64x2_to_private(a), b_ = simde_int64x2_to_private(b); - int round_cast = 1 << 31; + int64_t round_cast = 1ll << 31; SIMDE_VECTORIZE - // Strangely, the answer needs to be increased by one to be the same as QEMU's result. for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32) + 1; + r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32); } return simde_vmovn_s64(simde_int64x2_from_private(r_)); #endif @@ -117,10 +116,10 @@ simde_vrsubhn_u16(simde_uint16x8_t a, simde_uint16x8_t b) { r_, a_ = simde_uint16x8_to_private(a), b_ = simde_uint16x8_to_private(b); - int round_cast = 1 << 7; + uint16_t round_cast = 1 << 7; SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] - b_.values[i] + round_cast; + r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, a_.values[i] - b_.values[i] + round_cast); } return simde_vmovn_u16(simde_vshrq_n_u16(simde_uint16x8_from_private(r_), 8)); #endif @@ -140,7 +139,7 @@ simde_vrsubhn_u32(simde_uint32x4_t a, simde_uint32x4_t b) { r_, a_ = simde_uint32x4_to_private(a), b_ = simde_uint32x4_to_private(b); - int round_cast = 1 << 15; + uint32_t round_cast = 1 << 15; SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = a_.values[i] - b_.values[i] + round_cast; @@ -163,11 +162,10 @@ simde_vrsubhn_u64(simde_uint64x2_t a, simde_uint64x2_t b) { r_, a_ = simde_uint64x2_to_private(a), b_ = simde_uint64x2_to_private(b); - int round_cast = 1 << 31; + uint64_t round_cast = 1ull << 31; SIMDE_VECTORIZE - // Strangely, the answer needs to be increased by one to be the same as QEMU's result. for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32) + 1; + r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32); } return simde_vmovn_u64(simde_uint64x2_from_private(r_)); #endif diff --git a/simde/arm/neon/st1_lane.h b/simde/arm/neon/st1_lane.h index 526e90fc5..8e5a88dfc 100644 --- a/simde/arm/neon/st1_lane.h +++ b/simde/arm/neon/st1_lane.h @@ -217,7 +217,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1q_lane_f16(simde_float16_t *ptr, simde_float16x8_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_8_NO_RESULT_(vst1q_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x8_private val_ = simde_float16x8_to_private(val); diff --git a/simde/arm/neon/st2_lane.h b/simde/arm/neon/st2_lane.h index 0fc1fd0c3..3f168bac0 100644 --- a/simde/arm/neon/st2_lane.h +++ b/simde/arm/neon/st2_lane.h @@ -194,7 +194,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst2_lane_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(2)], simde_float16x4x2_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_4_NO_RESULT_(vst2_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x4_private r; @@ -404,7 +404,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst2q_lane_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(2)], simde_float16x8x2_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_8_NO_RESULT_(vst2q_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x8_private r; diff --git a/simde/arm/neon/st3.h b/simde/arm/neon/st3.h index 3725cf011..4d159ca34 100644 --- a/simde/arm/neon/st3.h +++ b/simde/arm/neon/st3.h @@ -41,7 +41,7 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES void simde_vst3_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(12)], simde_float16x4x3_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) vst3_f16(ptr, val); #else simde_float16x4_private a[3] = { simde_float16x4_to_private(val.val[0]), @@ -373,7 +373,7 @@ simde_vst3_u64(uint64_t ptr[HEDLEY_ARRAY_PARAM(3)], simde_uint64x1x3_t val) { SIMDE_FUNCTION_ATTRIBUTES void simde_vst3q_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(24)], simde_float16x8x3_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) vst3q_f16(ptr, val); #else simde_float16x8_private a_[3] = { simde_float16x8_to_private(val.val[0]), diff --git a/simde/arm/neon/st3_lane.h b/simde/arm/neon/st3_lane.h index 6d3c65e50..2419441c1 100644 --- a/simde/arm/neon/st3_lane.h +++ b/simde/arm/neon/st3_lane.h @@ -194,7 +194,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst3_lane_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(3)], simde_float16x4x3_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_4_NO_RESULT_(vst3_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x4_private r; @@ -404,7 +404,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst3q_lane_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(3)], simde_float16x8x3_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_8_NO_RESULT_(vst3q_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x8_private r; diff --git a/simde/arm/neon/st4.h b/simde/arm/neon/st4.h index cf95e92a6..cd8d25f44 100644 --- a/simde/arm/neon/st4.h +++ b/simde/arm/neon/st4.h @@ -40,7 +40,7 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES void simde_vst4_f16(simde_float16_t *ptr, simde_float16x4x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) vst4_f16(ptr, val); #else simde_float16_t buf[16]; @@ -260,7 +260,7 @@ simde_vst4_u64(uint64_t *ptr, simde_uint64x1x4_t val) { SIMDE_FUNCTION_ATTRIBUTES void simde_vst4q_f16(simde_float16_t *ptr, simde_float16x8x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) vst4q_f16(ptr, val); #else simde_float16_t buf[32]; diff --git a/simde/arm/neon/st4_lane.h b/simde/arm/neon/st4_lane.h index b80d54703..ac9844295 100644 --- a/simde/arm/neon/st4_lane.h +++ b/simde/arm/neon/st4_lane.h @@ -195,7 +195,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst4_lane_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(4)], simde_float16x4x4_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_4_NO_RESULT_(vst4_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x4_private r; @@ -405,7 +405,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst4q_lane_f16(simde_float16_t ptr[HEDLEY_ARRAY_PARAM(4)], simde_float16x8x4_t val, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) SIMDE_CONSTIFY_8_NO_RESULT_(vst4q_lane_f16, HEDLEY_UNREACHABLE(), lane, ptr, val); #else simde_float16x8_private r; diff --git a/simde/arm/neon/trn.h b/simde/arm/neon/trn.h index ca8b98aa2..e485340fd 100644 --- a/simde/arm/neon/trn.h +++ b/simde/arm/neon/trn.h @@ -40,7 +40,7 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES simde_float16x4x2_t simde_vtrn_f16(simde_float16x4_t a, simde_float16x4_t b) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vtrn_f16(a, b); #else simde_float16x4x2_t r = { { simde_vtrn1_f16(a, b), simde_vtrn2_f16(a, b) } }; @@ -160,7 +160,7 @@ simde_vtrn_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8x2_t simde_vtrnq_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vtrnq_f16(a, b); #else simde_float16x8x2_t r = { { simde_vtrn1q_f16(a, b), simde_vtrn2q_f16(a, b) } }; diff --git a/simde/arm/neon/trn1.h b/simde/arm/neon/trn1.h index cacca0a32..990f92583 100644 --- a/simde/arm/neon/trn1.h +++ b/simde/arm/neon/trn1.h @@ -38,7 +38,7 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES simde_float16x4_t simde_vtrn1_f16(simde_float16x4_t a, simde_float16x4_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vtrn1_f16(a, b); #else simde_float16x4_private @@ -254,7 +254,7 @@ simde_vtrn1_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8_t simde_vtrn1q_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vtrn1q_f16(a, b); #else simde_float16x8_private diff --git a/simde/arm/neon/trn2.h b/simde/arm/neon/trn2.h index 5799908d2..ea64e6732 100644 --- a/simde/arm/neon/trn2.h +++ b/simde/arm/neon/trn2.h @@ -38,7 +38,7 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES simde_float16x4_t simde_vtrn2_f16(simde_float16x4_t a, simde_float16x4_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vtrn2_f16(a, b); #else simde_float16x4_private @@ -254,7 +254,7 @@ simde_vtrn2_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8_t simde_vtrn2q_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vtrn2q_f16(a, b); #else simde_float16x8_private diff --git a/simde/arm/neon/uzp.h b/simde/arm/neon/uzp.h index e0a79797e..859ba7749 100644 --- a/simde/arm/neon/uzp.h +++ b/simde/arm/neon/uzp.h @@ -40,7 +40,7 @@ SIMDE_BEGIN_DECLS_ SIMDE_FUNCTION_ATTRIBUTES simde_float16x4x2_t simde_vuzp_f16(simde_float16x4_t a, simde_float16x4_t b) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vuzp_f16(a, b); #else simde_float16x4x2_t r = { { simde_vuzp1_f16(a, b), simde_vuzp2_f16(a, b) } }; @@ -160,7 +160,7 @@ simde_vuzp_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8x2_t simde_vuzpq_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vuzpq_f16(a, b); #else simde_float16x8x2_t r = { { simde_vuzp1q_f16(a, b), simde_vuzp2q_f16(a, b) } }; diff --git a/simde/arm/neon/uzp1.h b/simde/arm/neon/uzp1.h index f797ed73f..cb776cd97 100644 --- a/simde/arm/neon/uzp1.h +++ b/simde/arm/neon/uzp1.h @@ -303,9 +303,9 @@ simde_vuzp1_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8_t simde_vuzp1q_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vuzp1q_f16(a, b); - #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) float16x8x2_t t = vuzpq_f16(a, b); return t.val[0]; #else diff --git a/simde/arm/neon/uzp2.h b/simde/arm/neon/uzp2.h index d7be6ebd4..a36a1292c 100644 --- a/simde/arm/neon/uzp2.h +++ b/simde/arm/neon/uzp2.h @@ -303,9 +303,9 @@ simde_vuzp2_u32(simde_uint32x2_t a, simde_uint32x2_t b) { SIMDE_FUNCTION_ATTRIBUTES simde_float16x8_t simde_vuzp2q_f16(simde_float16x8_t a, simde_float16x8_t b) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vuzp2q_f16(a, b); - #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARM_NEON_FP16) float16x8x2_t t = vuzpq_f16(a, b); return t.val[1]; #else diff --git a/test/arm/neon/abd.c b/test/arm/neon/abd.c index a586aeff1..98c1de390 100644 --- a/test/arm/neon/abd.c +++ b/test/arm/neon/abd.c @@ -10,45 +10,46 @@ static int test_simde_vabdh_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; simde_float16 b; simde_float16 r; } test_vec[] = { #if !defined(SIMDE_FAST_NANS) - { SIMDE_MATH_NANF, - SIMDE_FLOAT16_C( 0.52), - SIMDE_MATH_NANF }, - { SIMDE_FLOAT16_C( 705.02), - SIMDE_MATH_NANF, - SIMDE_MATH_NANF }, - { SIMDE_MATH_NANF, - SIMDE_MATH_NANF, - SIMDE_MATH_NANF }, + { SIMDE_NANHF, + SIMDE_FLOAT16_VALUE( 0.52), + SIMDE_NANHF }, + { SIMDE_FLOAT16_VALUE( 705.02), + SIMDE_NANHF, + SIMDE_NANHF }, + { SIMDE_NANHF, + SIMDE_NANHF, + SIMDE_NANHF }, #endif - { -SIMDE_FLOAT16_VALUE( 0.300), - -SIMDE_FLOAT16_VALUE( 99.250), + { SIMDE_FLOAT16_VALUE( - 0.300), + SIMDE_FLOAT16_VALUE( - 99.250), SIMDE_FLOAT16_VALUE( 98.950) }, - { -SIMDE_FLOAT16_VALUE( 47.131), + { SIMDE_FLOAT16_VALUE( - 47.131), SIMDE_FLOAT16_VALUE( 97.405), SIMDE_FLOAT16_VALUE( 144.535) }, - { -SIMDE_FLOAT16_VALUE( 77.318), - -SIMDE_FLOAT16_VALUE( 84.590), + { SIMDE_FLOAT16_VALUE( - 77.318), + SIMDE_FLOAT16_VALUE( - 84.590), SIMDE_FLOAT16_VALUE( 7.272) }, - { -SIMDE_FLOAT16_VALUE( 24.059), + { SIMDE_FLOAT16_VALUE( - 24.059), SIMDE_FLOAT16_VALUE( 37.447), SIMDE_FLOAT16_VALUE( 61.506) }, - { -SIMDE_FLOAT16_VALUE( 52.274), + { SIMDE_FLOAT16_VALUE( - 52.274), SIMDE_FLOAT16_VALUE( 37.809), SIMDE_FLOAT16_VALUE( 90.084) }, - { -SIMDE_FLOAT16_VALUE( 85.927), - -SIMDE_FLOAT16_VALUE( 59.935), + { SIMDE_FLOAT16_VALUE( - 85.927), + SIMDE_FLOAT16_VALUE( - 59.935), SIMDE_FLOAT16_VALUE( 25.992) }, - { -SIMDE_FLOAT16_VALUE( 81.790), - -SIMDE_FLOAT16_VALUE( 18.384), + { SIMDE_FLOAT16_VALUE( -81.790), + SIMDE_FLOAT16_VALUE( -18.384), SIMDE_FLOAT16_VALUE( 63.407) }, - { -SIMDE_FLOAT16_VALUE( 52.199), - -SIMDE_FLOAT16_VALUE( 87.447), + { SIMDE_FLOAT16_VALUE( -52.199), + SIMDE_FLOAT16_VALUE( -87.447), SIMDE_FLOAT16_VALUE( 35.248) }, }; @@ -59,6 +60,20 @@ test_simde_vabdh_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16_t b = simde_test_arm_neon_random_f16(-100.0f, 100.0f); + simde_float16_t r = simde_vabdh_f16(a, b); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -199,34 +214,35 @@ test_simde_vabdd_f64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vabd_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; simde_float16 b[4]; simde_float16 r[4]; } test_vec[] = { - { { SIMDE_FLOAT16_VALUE( 12.132), -SIMDE_FLOAT16_VALUE( 13.736), -SIMDE_FLOAT16_VALUE( 15.777), SIMDE_FLOAT16_VALUE( 27.640) }, - { -SIMDE_FLOAT16_VALUE( 15.705), SIMDE_FLOAT16_VALUE( 17.382), -SIMDE_FLOAT16_VALUE( 21.155), -SIMDE_FLOAT16_VALUE( 29.967) }, + { { SIMDE_FLOAT16_VALUE( 12.132), SIMDE_FLOAT16_VALUE( - 13.736), SIMDE_FLOAT16_VALUE( - 15.777), SIMDE_FLOAT16_VALUE( 27.640) }, + { SIMDE_FLOAT16_VALUE( - 15.705), SIMDE_FLOAT16_VALUE( 17.382), SIMDE_FLOAT16_VALUE( - 21.155), SIMDE_FLOAT16_VALUE( - 29.967) }, { SIMDE_FLOAT16_VALUE( 27.837), SIMDE_FLOAT16_VALUE( 31.118), SIMDE_FLOAT16_VALUE( 5.377), SIMDE_FLOAT16_VALUE( 57.606) } }, - { { -SIMDE_FLOAT16_VALUE( 12.901), SIMDE_FLOAT16_VALUE( 9.796), -SIMDE_FLOAT16_VALUE( 18.982), -SIMDE_FLOAT16_VALUE( 0.347) }, - { -SIMDE_FLOAT16_VALUE( 20.401), SIMDE_FLOAT16_VALUE( 6.071), -SIMDE_FLOAT16_VALUE( 4.926), -SIMDE_FLOAT16_VALUE( 26.124) }, + { { SIMDE_FLOAT16_VALUE( - 12.901), SIMDE_FLOAT16_VALUE( 9.796), SIMDE_FLOAT16_VALUE( - 18.982), SIMDE_FLOAT16_VALUE( - 0.347) }, + { SIMDE_FLOAT16_VALUE( - 20.401), SIMDE_FLOAT16_VALUE( 6.071), SIMDE_FLOAT16_VALUE( - 4.926), SIMDE_FLOAT16_VALUE( - 26.124) }, { SIMDE_FLOAT16_VALUE( 7.500), SIMDE_FLOAT16_VALUE( 3.725), SIMDE_FLOAT16_VALUE( 14.056), SIMDE_FLOAT16_VALUE( 25.778) } }, - { { SIMDE_FLOAT16_VALUE( 27.929), SIMDE_FLOAT16_VALUE( 27.206), SIMDE_FLOAT16_VALUE( 22.101), -SIMDE_FLOAT16_VALUE( 22.873) }, - { SIMDE_FLOAT16_VALUE( 16.997), -SIMDE_FLOAT16_VALUE( 9.517), -SIMDE_FLOAT16_VALUE( 8.882), -SIMDE_FLOAT16_VALUE( 2.052) }, + { { SIMDE_FLOAT16_VALUE( 27.929), SIMDE_FLOAT16_VALUE( 27.206), SIMDE_FLOAT16_VALUE( 22.101), SIMDE_FLOAT16_VALUE( - 22.873) }, + { SIMDE_FLOAT16_VALUE( 16.997), SIMDE_FLOAT16_VALUE( - 9.517), SIMDE_FLOAT16_VALUE( - 8.882), SIMDE_FLOAT16_VALUE( - 2.052) }, { SIMDE_FLOAT16_VALUE( 10.932), SIMDE_FLOAT16_VALUE( 36.722), SIMDE_FLOAT16_VALUE( 30.983), SIMDE_FLOAT16_VALUE( 20.821) } }, - { { SIMDE_FLOAT16_VALUE( 22.885), SIMDE_FLOAT16_VALUE( 6.304), -SIMDE_FLOAT16_VALUE( 21.768), -SIMDE_FLOAT16_VALUE( 21.264) }, - { SIMDE_FLOAT16_VALUE( 24.212), -SIMDE_FLOAT16_VALUE( 5.067), -SIMDE_FLOAT16_VALUE( 5.485), SIMDE_FLOAT16_VALUE( 27.821) }, + { { SIMDE_FLOAT16_VALUE( 22.885), SIMDE_FLOAT16_VALUE( 6.304), SIMDE_FLOAT16_VALUE( - 21.768), SIMDE_FLOAT16_VALUE( - 21.264) }, + { SIMDE_FLOAT16_VALUE( 24.212), SIMDE_FLOAT16_VALUE( - 5.067), SIMDE_FLOAT16_VALUE( - 5.485), SIMDE_FLOAT16_VALUE( 27.821) }, { SIMDE_FLOAT16_VALUE( 1.327), SIMDE_FLOAT16_VALUE( 11.372), SIMDE_FLOAT16_VALUE( 16.283), SIMDE_FLOAT16_VALUE( 49.085) } }, - { { SIMDE_FLOAT16_VALUE( 10.035), -SIMDE_FLOAT16_VALUE( 23.960), SIMDE_FLOAT16_VALUE( 26.853), -SIMDE_FLOAT16_VALUE( 14.856) }, - { -SIMDE_FLOAT16_VALUE( 22.040), SIMDE_FLOAT16_VALUE( 5.943), SIMDE_FLOAT16_VALUE( 8.366), -SIMDE_FLOAT16_VALUE( 14.752) }, + { { SIMDE_FLOAT16_VALUE( 10.035), SIMDE_FLOAT16_VALUE( - 23.960), SIMDE_FLOAT16_VALUE( 26.853), SIMDE_FLOAT16_VALUE( - 14.856) }, + { SIMDE_FLOAT16_VALUE( - 22.040), SIMDE_FLOAT16_VALUE( 5.943), SIMDE_FLOAT16_VALUE( 8.366), SIMDE_FLOAT16_VALUE( - 14.752) }, { SIMDE_FLOAT16_VALUE( 32.074), SIMDE_FLOAT16_VALUE( 29.903), SIMDE_FLOAT16_VALUE( 18.486), SIMDE_FLOAT16_VALUE( 0.104) } }, - { { -SIMDE_FLOAT16_VALUE( 29.884), -SIMDE_FLOAT16_VALUE( 8.797), -SIMDE_FLOAT16_VALUE( 6.539), -SIMDE_FLOAT16_VALUE( 23.907) }, - { -SIMDE_FLOAT16_VALUE( 13.521), SIMDE_FLOAT16_VALUE( 17.627), SIMDE_FLOAT16_VALUE( 1.295), -SIMDE_FLOAT16_VALUE( 26.102) }, + { { SIMDE_FLOAT16_VALUE( - 29.884), SIMDE_FLOAT16_VALUE( - 8.797), SIMDE_FLOAT16_VALUE( - 6.539), SIMDE_FLOAT16_VALUE( - 23.907) }, + { SIMDE_FLOAT16_VALUE( - 13.521), SIMDE_FLOAT16_VALUE( 17.627), SIMDE_FLOAT16_VALUE( 1.295), SIMDE_FLOAT16_VALUE( - 26.102) }, { SIMDE_FLOAT16_VALUE( 16.363), SIMDE_FLOAT16_VALUE( 26.424), SIMDE_FLOAT16_VALUE( 7.834), SIMDE_FLOAT16_VALUE( 2.195) } }, { { SIMDE_FLOAT16_VALUE( 16.252), SIMDE_FLOAT16_VALUE( 6.172), SIMDE_FLOAT16_VALUE( 24.020), SIMDE_FLOAT16_VALUE( 25.796) }, - { SIMDE_FLOAT16_VALUE( 24.965), -SIMDE_FLOAT16_VALUE( 1.593), -SIMDE_FLOAT16_VALUE( 4.069), SIMDE_FLOAT16_VALUE( 29.576) }, + { SIMDE_FLOAT16_VALUE( 24.965), SIMDE_FLOAT16_VALUE( - 1.593), SIMDE_FLOAT16_VALUE( - 4.069), SIMDE_FLOAT16_VALUE( 29.576) }, { SIMDE_FLOAT16_VALUE( 8.712), SIMDE_FLOAT16_VALUE( 7.765), SIMDE_FLOAT16_VALUE( 28.089), SIMDE_FLOAT16_VALUE( 3.780) } }, - { { -SIMDE_FLOAT16_VALUE( 7.863), -SIMDE_FLOAT16_VALUE( 12.557), SIMDE_FLOAT16_VALUE( 23.059), -SIMDE_FLOAT16_VALUE( 2.263) }, - { SIMDE_FLOAT16_VALUE( 21.537), -SIMDE_FLOAT16_VALUE( 26.467), -SIMDE_FLOAT16_VALUE( 13.547), -SIMDE_FLOAT16_VALUE( 13.547) }, + { { SIMDE_FLOAT16_VALUE( - 7.863), SIMDE_FLOAT16_VALUE( - 12.557), SIMDE_FLOAT16_VALUE( 23.059), SIMDE_FLOAT16_VALUE( - 2.263) }, + { SIMDE_FLOAT16_VALUE( 21.537), SIMDE_FLOAT16_VALUE( - 26.467), SIMDE_FLOAT16_VALUE( - 13.547), SIMDE_FLOAT16_VALUE( - 13.547) }, { SIMDE_FLOAT16_VALUE( 29.400), SIMDE_FLOAT16_VALUE( 13.910), SIMDE_FLOAT16_VALUE( 36.606), SIMDE_FLOAT16_VALUE( 11.284) } }, }; @@ -239,6 +255,20 @@ test_simde_vabd_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vabd_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int @@ -712,57 +742,58 @@ test_simde_vabd_u32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vabdq_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_VALUE( 8.295), SIMDE_FLOAT16_VALUE( 4.995), SIMDE_FLOAT16_VALUE( 22.222), SIMDE_FLOAT16_VALUE( 0.992), - -SIMDE_FLOAT16_VALUE( 2.210), SIMDE_FLOAT16_VALUE( 12.462), SIMDE_FLOAT16_VALUE( 20.310), SIMDE_FLOAT16_VALUE( 23.937) }, - { -SIMDE_FLOAT16_VALUE( 7.930), -SIMDE_FLOAT16_VALUE( 24.358), SIMDE_FLOAT16_VALUE( 0.338), SIMDE_FLOAT16_VALUE( 8.720), - -SIMDE_FLOAT16_VALUE( 23.127), SIMDE_FLOAT16_VALUE( 16.025), -SIMDE_FLOAT16_VALUE( 21.022), -SIMDE_FLOAT16_VALUE( 22.508) }, + { { SIMDE_FLOAT16_VALUE( - 8.295), SIMDE_FLOAT16_VALUE( 4.995), SIMDE_FLOAT16_VALUE( 22.222), SIMDE_FLOAT16_VALUE( 0.992), + SIMDE_FLOAT16_VALUE( - 2.210), SIMDE_FLOAT16_VALUE( 12.462), SIMDE_FLOAT16_VALUE( 20.310), SIMDE_FLOAT16_VALUE( 23.937) }, + { SIMDE_FLOAT16_VALUE( - 7.930), SIMDE_FLOAT16_VALUE( - 24.358), SIMDE_FLOAT16_VALUE( 0.338), SIMDE_FLOAT16_VALUE( 8.720), + SIMDE_FLOAT16_VALUE( - 23.127), SIMDE_FLOAT16_VALUE( 16.025), SIMDE_FLOAT16_VALUE( - 21.022), SIMDE_FLOAT16_VALUE( - 22.508) }, { SIMDE_FLOAT16_VALUE( 0.365), SIMDE_FLOAT16_VALUE( 29.353), SIMDE_FLOAT16_VALUE( 21.884), SIMDE_FLOAT16_VALUE( 7.728), SIMDE_FLOAT16_VALUE( 20.917), SIMDE_FLOAT16_VALUE( 3.564), SIMDE_FLOAT16_VALUE( 41.333), SIMDE_FLOAT16_VALUE( 46.446) } }, - { { -SIMDE_FLOAT16_VALUE( 22.970), SIMDE_FLOAT16_VALUE( 8.664), -SIMDE_FLOAT16_VALUE( 23.457), -SIMDE_FLOAT16_VALUE( 28.825), - SIMDE_FLOAT16_VALUE( 7.204), -SIMDE_FLOAT16_VALUE( 13.343), -SIMDE_FLOAT16_VALUE( 15.886), SIMDE_FLOAT16_VALUE( 21.571) }, - { SIMDE_FLOAT16_VALUE( 23.596), -SIMDE_FLOAT16_VALUE( 11.564), SIMDE_FLOAT16_VALUE( 3.180), -SIMDE_FLOAT16_VALUE( 21.809), - -SIMDE_FLOAT16_VALUE( 3.536), -SIMDE_FLOAT16_VALUE( 8.427), -SIMDE_FLOAT16_VALUE( 2.409), SIMDE_FLOAT16_VALUE( 17.366) }, + { { SIMDE_FLOAT16_VALUE( - 22.970), SIMDE_FLOAT16_VALUE( 8.664), SIMDE_FLOAT16_VALUE( - 23.457), SIMDE_FLOAT16_VALUE( - 28.825), + SIMDE_FLOAT16_VALUE( 7.204), SIMDE_FLOAT16_VALUE( - 13.343), SIMDE_FLOAT16_VALUE( - 15.886), SIMDE_FLOAT16_VALUE( 21.571) }, + { SIMDE_FLOAT16_VALUE( 23.596), SIMDE_FLOAT16_VALUE( - 11.564), SIMDE_FLOAT16_VALUE( 3.180), SIMDE_FLOAT16_VALUE( - 21.809), + SIMDE_FLOAT16_VALUE( - 3.536), SIMDE_FLOAT16_VALUE( - 8.427), SIMDE_FLOAT16_VALUE( - 2.409), SIMDE_FLOAT16_VALUE( 17.366) }, { SIMDE_FLOAT16_VALUE( 46.566), SIMDE_FLOAT16_VALUE( 20.228), SIMDE_FLOAT16_VALUE( 26.637), SIMDE_FLOAT16_VALUE( 7.015), SIMDE_FLOAT16_VALUE( 10.740), SIMDE_FLOAT16_VALUE( 4.915), SIMDE_FLOAT16_VALUE( 13.476), SIMDE_FLOAT16_VALUE( 4.205) } }, - { { -SIMDE_FLOAT16_VALUE( 20.105), -SIMDE_FLOAT16_VALUE( 23.724), -SIMDE_FLOAT16_VALUE( 29.947), SIMDE_FLOAT16_VALUE( 7.383), - SIMDE_FLOAT16_VALUE( 14.751), SIMDE_FLOAT16_VALUE( 6.109), SIMDE_FLOAT16_VALUE( 4.821), -SIMDE_FLOAT16_VALUE( 12.984) }, - { -SIMDE_FLOAT16_VALUE( 10.612), -SIMDE_FLOAT16_VALUE( 13.998), SIMDE_FLOAT16_VALUE( 5.695), -SIMDE_FLOAT16_VALUE( 20.897), - -SIMDE_FLOAT16_VALUE( 2.946), -SIMDE_FLOAT16_VALUE( 7.980), SIMDE_FLOAT16_VALUE( 21.397), -SIMDE_FLOAT16_VALUE( 18.629) }, + { { SIMDE_FLOAT16_VALUE( - 20.105), SIMDE_FLOAT16_VALUE( - 23.724), SIMDE_FLOAT16_VALUE( - 29.947), SIMDE_FLOAT16_VALUE( 7.383), + SIMDE_FLOAT16_VALUE( 14.751), SIMDE_FLOAT16_VALUE( 6.109), SIMDE_FLOAT16_VALUE( 4.821), SIMDE_FLOAT16_VALUE( - 12.984) }, + { SIMDE_FLOAT16_VALUE( - 10.612), SIMDE_FLOAT16_VALUE( - 13.998), SIMDE_FLOAT16_VALUE( 5.695), SIMDE_FLOAT16_VALUE( - 20.897), + SIMDE_FLOAT16_VALUE( - 2.946), SIMDE_FLOAT16_VALUE( - 7.980), SIMDE_FLOAT16_VALUE( 21.397), SIMDE_FLOAT16_VALUE( - 18.629) }, { SIMDE_FLOAT16_VALUE( 9.493), SIMDE_FLOAT16_VALUE( 9.727), SIMDE_FLOAT16_VALUE( 35.642), SIMDE_FLOAT16_VALUE( 28.280), SIMDE_FLOAT16_VALUE( 17.697), SIMDE_FLOAT16_VALUE( 14.090), SIMDE_FLOAT16_VALUE( 16.576), SIMDE_FLOAT16_VALUE( 5.646) } }, - { { -SIMDE_FLOAT16_VALUE( 7.193), SIMDE_FLOAT16_VALUE( 21.992), -SIMDE_FLOAT16_VALUE( 29.519), -SIMDE_FLOAT16_VALUE( 25.565), - -SIMDE_FLOAT16_VALUE( 13.073), -SIMDE_FLOAT16_VALUE( 11.804), SIMDE_FLOAT16_VALUE( 7.752), -SIMDE_FLOAT16_VALUE( 4.463) }, - { -SIMDE_FLOAT16_VALUE( 28.742), SIMDE_FLOAT16_VALUE( 26.026), -SIMDE_FLOAT16_VALUE( 5.720), SIMDE_FLOAT16_VALUE( 25.719), - SIMDE_FLOAT16_VALUE( 11.675), SIMDE_FLOAT16_VALUE( 12.609), -SIMDE_FLOAT16_VALUE( 14.604), -SIMDE_FLOAT16_VALUE( 25.271) }, + { { SIMDE_FLOAT16_VALUE( - 7.193), SIMDE_FLOAT16_VALUE( 21.992), SIMDE_FLOAT16_VALUE( - 29.519), SIMDE_FLOAT16_VALUE( - 25.565), + SIMDE_FLOAT16_VALUE( - 13.073), SIMDE_FLOAT16_VALUE( - 11.804), SIMDE_FLOAT16_VALUE( 7.752), SIMDE_FLOAT16_VALUE( - 4.463) }, + { SIMDE_FLOAT16_VALUE( - 28.742), SIMDE_FLOAT16_VALUE( 26.026), SIMDE_FLOAT16_VALUE( - 5.720), SIMDE_FLOAT16_VALUE( 25.719), + SIMDE_FLOAT16_VALUE( 11.675), SIMDE_FLOAT16_VALUE( 12.609), SIMDE_FLOAT16_VALUE( - 14.604), SIMDE_FLOAT16_VALUE( - 25.271) }, { SIMDE_FLOAT16_VALUE( 21.549), SIMDE_FLOAT16_VALUE( 4.034), SIMDE_FLOAT16_VALUE( 23.799), SIMDE_FLOAT16_VALUE( 51.284), SIMDE_FLOAT16_VALUE( 24.748), SIMDE_FLOAT16_VALUE( 24.413), SIMDE_FLOAT16_VALUE( 22.356), SIMDE_FLOAT16_VALUE( 20.808) } }, - { { SIMDE_FLOAT16_VALUE( 8.905), -SIMDE_FLOAT16_VALUE( 14.001), -SIMDE_FLOAT16_VALUE( 8.390), -SIMDE_FLOAT16_VALUE( 15.984), - -SIMDE_FLOAT16_VALUE( 19.624), -SIMDE_FLOAT16_VALUE( 0.882), -SIMDE_FLOAT16_VALUE( 2.926), SIMDE_FLOAT16_VALUE( 18.326) }, - { -SIMDE_FLOAT16_VALUE( 29.855), -SIMDE_FLOAT16_VALUE( 19.437), -SIMDE_FLOAT16_VALUE( 3.480), SIMDE_FLOAT16_VALUE( 20.717), - SIMDE_FLOAT16_VALUE( 15.087), SIMDE_FLOAT16_VALUE( 29.414), -SIMDE_FLOAT16_VALUE( 18.136), SIMDE_FLOAT16_VALUE( 23.088) }, + { { SIMDE_FLOAT16_VALUE( 8.905), SIMDE_FLOAT16_VALUE( - 14.001), SIMDE_FLOAT16_VALUE( - 8.390), SIMDE_FLOAT16_VALUE( - 15.984), + SIMDE_FLOAT16_VALUE( - 19.624), SIMDE_FLOAT16_VALUE( - 0.882), SIMDE_FLOAT16_VALUE( - 2.926), SIMDE_FLOAT16_VALUE( 18.326) }, + { SIMDE_FLOAT16_VALUE( - 29.855), SIMDE_FLOAT16_VALUE( - 19.437), SIMDE_FLOAT16_VALUE( - 3.480), SIMDE_FLOAT16_VALUE( 20.717), + SIMDE_FLOAT16_VALUE( 15.087), SIMDE_FLOAT16_VALUE( 29.414), SIMDE_FLOAT16_VALUE( - 18.136), SIMDE_FLOAT16_VALUE( 23.088) }, { SIMDE_FLOAT16_VALUE( 38.760), SIMDE_FLOAT16_VALUE( 5.436), SIMDE_FLOAT16_VALUE( 4.909), SIMDE_FLOAT16_VALUE( 36.701), SIMDE_FLOAT16_VALUE( 34.711), SIMDE_FLOAT16_VALUE( 30.296), SIMDE_FLOAT16_VALUE( 15.211), SIMDE_FLOAT16_VALUE( 4.761) } }, - { { -SIMDE_FLOAT16_VALUE( 11.174), SIMDE_FLOAT16_VALUE( 17.793), -SIMDE_FLOAT16_VALUE( 15.861), SIMDE_FLOAT16_VALUE( 4.535), - SIMDE_FLOAT16_VALUE( 3.586), -SIMDE_FLOAT16_VALUE( 6.093), SIMDE_FLOAT16_VALUE( 16.589), -SIMDE_FLOAT16_VALUE( 7.298) }, - { -SIMDE_FLOAT16_VALUE( 0.016), SIMDE_FLOAT16_VALUE( 11.946), -SIMDE_FLOAT16_VALUE( 7.115), -SIMDE_FLOAT16_VALUE( 2.201), - SIMDE_FLOAT16_VALUE( 25.600), SIMDE_FLOAT16_VALUE( 5.034), SIMDE_FLOAT16_VALUE( 4.084), -SIMDE_FLOAT16_VALUE( 12.814) }, + { { SIMDE_FLOAT16_VALUE( - 11.174), SIMDE_FLOAT16_VALUE( 17.793), SIMDE_FLOAT16_VALUE( - 15.861), SIMDE_FLOAT16_VALUE( 4.535), + SIMDE_FLOAT16_VALUE( 3.586), SIMDE_FLOAT16_VALUE( - 6.093), SIMDE_FLOAT16_VALUE( 16.589), SIMDE_FLOAT16_VALUE( - 7.298) }, + { SIMDE_FLOAT16_VALUE( - 0.016), SIMDE_FLOAT16_VALUE( 11.946), SIMDE_FLOAT16_VALUE( - 7.115), SIMDE_FLOAT16_VALUE( - 2.201), + SIMDE_FLOAT16_VALUE( 25.600), SIMDE_FLOAT16_VALUE( 5.034), SIMDE_FLOAT16_VALUE( 4.084), SIMDE_FLOAT16_VALUE( - 12.814) }, { SIMDE_FLOAT16_VALUE( 11.157), SIMDE_FLOAT16_VALUE( 5.847), SIMDE_FLOAT16_VALUE( 8.747), SIMDE_FLOAT16_VALUE( 6.736), SIMDE_FLOAT16_VALUE( 22.014), SIMDE_FLOAT16_VALUE( 11.127), SIMDE_FLOAT16_VALUE( 12.505), SIMDE_FLOAT16_VALUE( 5.515) } }, - { { -SIMDE_FLOAT16_VALUE( 6.550), SIMDE_FLOAT16_VALUE( 21.553), -SIMDE_FLOAT16_VALUE( 24.361), -SIMDE_FLOAT16_VALUE( 5.605), - -SIMDE_FLOAT16_VALUE( 3.650), SIMDE_FLOAT16_VALUE( 1.541), -SIMDE_FLOAT16_VALUE( 24.603), -SIMDE_FLOAT16_VALUE( 14.867) }, - { SIMDE_FLOAT16_VALUE( 13.611), -SIMDE_FLOAT16_VALUE( 17.264), -SIMDE_FLOAT16_VALUE( 29.209), SIMDE_FLOAT16_VALUE( 25.166), + { { SIMDE_FLOAT16_VALUE( - 6.550), SIMDE_FLOAT16_VALUE( 21.553), SIMDE_FLOAT16_VALUE( - 24.361), SIMDE_FLOAT16_VALUE( - 5.605), + SIMDE_FLOAT16_VALUE( - 3.650), SIMDE_FLOAT16_VALUE( 1.541), SIMDE_FLOAT16_VALUE( - 24.603), SIMDE_FLOAT16_VALUE( - 14.867) }, + { SIMDE_FLOAT16_VALUE( 13.611), SIMDE_FLOAT16_VALUE( - 17.264), SIMDE_FLOAT16_VALUE( - 29.209), SIMDE_FLOAT16_VALUE( 25.166), SIMDE_FLOAT16_VALUE( 27.878), SIMDE_FLOAT16_VALUE( 4.965), SIMDE_FLOAT16_VALUE( 2.760), SIMDE_FLOAT16_VALUE( 7.916) }, { SIMDE_FLOAT16_VALUE( 20.161), SIMDE_FLOAT16_VALUE( 38.817), SIMDE_FLOAT16_VALUE( 4.847), SIMDE_FLOAT16_VALUE( 30.772), SIMDE_FLOAT16_VALUE( 31.527), SIMDE_FLOAT16_VALUE( 3.424), SIMDE_FLOAT16_VALUE( 27.363), SIMDE_FLOAT16_VALUE( 22.784) } }, - { { -SIMDE_FLOAT16_VALUE( 12.183), SIMDE_FLOAT16_VALUE( 28.248), SIMDE_FLOAT16_VALUE( 25.999), -SIMDE_FLOAT16_VALUE( 20.310), + { { SIMDE_FLOAT16_VALUE( - 12.183), SIMDE_FLOAT16_VALUE( 28.248), SIMDE_FLOAT16_VALUE( 25.999), SIMDE_FLOAT16_VALUE( - 20.310), SIMDE_FLOAT16_VALUE( 28.887), SIMDE_FLOAT16_VALUE( 8.731), SIMDE_FLOAT16_VALUE( 13.501), SIMDE_FLOAT16_VALUE( 19.172) }, - { -SIMDE_FLOAT16_VALUE( 0.224), SIMDE_FLOAT16_VALUE( 9.143), SIMDE_FLOAT16_VALUE( 28.172), -SIMDE_FLOAT16_VALUE( 7.432), - SIMDE_FLOAT16_VALUE( 14.048), SIMDE_FLOAT16_VALUE( 19.218), -SIMDE_FLOAT16_VALUE( 15.964), SIMDE_FLOAT16_VALUE( 18.074) }, + { SIMDE_FLOAT16_VALUE( - 0.224), SIMDE_FLOAT16_VALUE( 9.143), SIMDE_FLOAT16_VALUE( 28.172), SIMDE_FLOAT16_VALUE( - 7.432), + SIMDE_FLOAT16_VALUE( 14.048), SIMDE_FLOAT16_VALUE( 19.218), SIMDE_FLOAT16_VALUE( - 15.964), SIMDE_FLOAT16_VALUE( 18.074) }, { SIMDE_FLOAT16_VALUE( 11.959), SIMDE_FLOAT16_VALUE( 19.105), SIMDE_FLOAT16_VALUE( 2.173), SIMDE_FLOAT16_VALUE( 12.878), SIMDE_FLOAT16_VALUE( 14.838), SIMDE_FLOAT16_VALUE( 10.487), SIMDE_FLOAT16_VALUE( 29.465), SIMDE_FLOAT16_VALUE( 1.098) } }, }; @@ -775,6 +806,20 @@ test_simde_vabdq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vabdq_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/abdl_high.c b/test/arm/neon/abdl_high.c index 0b3c919ab..53865a35a 100644 --- a/test/arm/neon/abdl_high.c +++ b/test/arm/neon/abdl_high.c @@ -5,6 +5,7 @@ static int test_simde_vabdl_high_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t a[16]; int8_t b[16]; @@ -101,10 +102,25 @@ test_simde_vabdl_high_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int16x8_t r = simde_vabdl_high_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabdl_high_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t a[8]; int16_t b[8]; @@ -161,10 +177,25 @@ test_simde_vabdl_high_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int32x4_t r = simde_vabdl_high_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabdl_high_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t a[4]; int32_t b[4]; @@ -205,10 +236,25 @@ test_simde_vabdl_high_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int64x2_t r = simde_vabdl_high_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabdl_high_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint8_t a[16]; uint8_t b[16]; @@ -305,10 +351,25 @@ test_simde_vabdl_high_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint16x8_t r = simde_vabdl_high_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabdl_high_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t a[8]; uint16_t b[8]; @@ -365,10 +426,25 @@ test_simde_vabdl_high_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint32x4_t r = simde_vabdl_high_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabdl_high_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t a[4]; uint32_t b[4]; @@ -409,6 +485,20 @@ test_simde_vabdl_high_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint64x2_t r = simde_vabdl_high_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/abs.c b/test/arm/neon/abs.c index b064e9887..72154a27d 100644 --- a/test/arm/neon/abs.c +++ b/test/arm/neon/abs.c @@ -5,25 +5,26 @@ static int test_simde_vabsh_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; simde_float16 r; } test_vec[] = { - { -SIMDE_FLOAT16_VALUE( 24.786), + { SIMDE_FLOAT16_VALUE( - 24.786), SIMDE_FLOAT16_VALUE( 24.786) }, { SIMDE_FLOAT16_VALUE( 27.135), SIMDE_FLOAT16_VALUE( 27.135) }, { SIMDE_FLOAT16_VALUE( 16.821), SIMDE_FLOAT16_VALUE( 16.821) }, - { -SIMDE_FLOAT16_VALUE( 25.652), + { SIMDE_FLOAT16_VALUE( - 25.652), SIMDE_FLOAT16_VALUE( 25.652) }, { SIMDE_FLOAT16_VALUE( 8.252), SIMDE_FLOAT16_VALUE( 8.252) }, { SIMDE_FLOAT16_VALUE( 1.127), SIMDE_FLOAT16_VALUE( 1.127) }, - { -SIMDE_FLOAT16_VALUE( 26.641), + { SIMDE_FLOAT16_VALUE( - 26.641), SIMDE_FLOAT16_VALUE( 26.641) }, - { -SIMDE_FLOAT16_VALUE( 2.663), + { SIMDE_FLOAT16_VALUE( - 2.663), SIMDE_FLOAT16_VALUE( 2.663) }, }; @@ -34,6 +35,18 @@ test_simde_vabsh_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16_t r = simde_vabsh_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -83,6 +96,7 @@ test_simde_vabsd_s64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vabs_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 r[4]; @@ -117,10 +131,23 @@ test_simde_vabs_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 r = simde_vabs_f16(a); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabs_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[2]; simde_float32 r[2]; @@ -151,10 +178,23 @@ test_simde_vabs_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_float32x2_t r = simde_vabs_f32(a); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabs_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[1]; simde_float64 r[1]; @@ -185,10 +225,23 @@ test_simde_vabs_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_float64x1_t r = simde_vabs_f64(a); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabs_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t a[8]; int8_t r[8]; @@ -219,10 +272,23 @@ test_simde_vabs_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_int8x8_t r = simde_vabs_s8(a); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabs_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t a[4]; int16_t r[4]; @@ -253,10 +319,23 @@ test_simde_vabs_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_int16x4_t r = simde_vabs_s16(a); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabs_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t a[2]; int32_t r[2]; @@ -287,10 +366,23 @@ test_simde_vabs_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_int32x2_t r = simde_vabs_s32(a); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabs_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int64_t a[1]; int64_t r[1]; @@ -321,10 +413,23 @@ test_simde_vabs_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_int64x1_t r = simde_vabs_s64(a); + + simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 r[8]; @@ -358,10 +463,23 @@ test_simde_vabsq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 r = simde_vabsq_f16(a); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; simde_float32 r[4]; @@ -391,10 +509,23 @@ test_simde_vabsq_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_float32x4_t r = simde_vabsq_f32(a); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; simde_float64 r[2]; @@ -425,10 +556,23 @@ test_simde_vabsq_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_float64x2_t r = simde_vabsq_f64(a); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t a[16]; int8_t r[16]; @@ -475,10 +619,23 @@ test_simde_vabsq_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_int8x16_t r = simde_vabsq_s8(a); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t a[8]; int16_t r[8]; @@ -509,10 +666,23 @@ test_simde_vabsq_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_int16x8_t r = simde_vabsq_s16(a); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t a[4]; int32_t r[4]; @@ -542,10 +712,23 @@ test_simde_vabsq_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_int32x4_t r = simde_vabsq_s32(a); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vabsq_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int64_t a[2]; int64_t r[2]; @@ -575,6 +758,18 @@ test_simde_vabsq_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_int64x2_t r = simde_vabsq_s64(a); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/add_testgen.py b/test/arm/neon/add_testgen.py deleted file mode 100644 index 66d6ad5ad..000000000 --- a/test/arm/neon/add_testgen.py +++ /dev/null @@ -1,114 +0,0 @@ -import os -import re -import csv - - -def gen_test(v_type_list, v_ele_list, v_name_list, func_name): - print(v_type_list) - print(v_ele_list) - print(v_name_list) - test_content = ''' -#else - fputc('\\n', stdout); - for (int i = 0 ; i < 8 ; i++) {\n''' - for i in range(len(v_type_list)-1): - test_content = test_content+' simde_'+v_type_list[i]+v_ele_list[i]+'_t '+v_name_list[i]+' = simde_test_arm_neon_random_'+v_type_list[i][0]+v_ele_list[i]+'();\n' - test_content = test_content+' simde_'+v_type_list[-1]+v_ele_list[-1]+'_t '+v_name_list[-1]+' = '+func_name+'(' - for i in range(len(v_name_list)-1): - if i != len(v_name_list)-2: - test_content = test_content+v_name_list[i]+', ' - else: - test_content = test_content+v_name_list[i]+');\n\n' - - for i in range(len(v_name_list)): - if i == 0: - test_content = test_content + ' simde_test_arm_neon_write_'+v_type_list[i][0]+v_ele_list[i]+'(2, '+v_name_list[i]+', SIMDE_TEST_VEC_POS_FIRST);\n' - elif i == len(v_name_list)-1: - test_content = test_content + ' simde_test_arm_neon_write_'+v_type_list[i][0]+v_ele_list[i]+'(2, '+v_name_list[i]+', SIMDE_TEST_VEC_POS_LAST);\n' - else: - test_content = test_content + ' simde_test_arm_neon_write_'+v_type_list[i][0]+v_ele_list[i]+'(2, '+v_name_list[i]+', SIMDE_TEST_VEC_POS_MIDDLE);\n' - test_content = test_content + ' }\n return 1;\n#endif\n' - - return test_content - - -type_list = [["float16"], - ["float32", "float"], - ["float64", "double"], - ["uint8"], - ["uint16"], - ["uint32", "unsigned int", "unsigned"], - ["uint64"], - ["int8"], - ["int16"], - ["int32", "int"], - ["int64"]] - -dic_type_list = {"float16":["float", "16"], - "float32":["float", "32"],} - -def main_gen(file_path): - # Open the file for reading - with open(file_path, 'r') as file: - lines = file.readlines() - for i in range(len(lines)): - if "static int" in lines[i]: - if "#if 1" not in lines[i+2]: - func_name = lines[i+1][5:lines[i+1].find(' ')] - lines.insert(i+2, '#if 1\n') - print(f"line numbers: {i}, {func_name}") - # get input para - v_type_list = [] # ex. float16 or uint32 - v_ele_list = [] # ex. 32x2 - v_name_list = [] # ex. a - for j in range(i, i+1000, 1): - if "struct" in lines[j]: - while 'test_vec' not in lines[j]: - j += 1 - # get type - found = False - variable_len = ['1'] - for rows in range(len(type_list)): - if not found: - for cols in range(len(type_list[rows])): - if type_list[rows][cols] in lines[j]: - v_type = '' - for c in type_list[rows][0]: - if c.isdigit(): - break - v_type += c - v_type_list.append(v_type) - found = True - variable_len = re.findall(r'\d+', type_list[rows][0]) - break - else: - break - # get elements - if '[' in lines[j] and '}' not in lines[j]: - v_ele_list.append(variable_len[0]+'x'+lines[j][lines[j].find('[')+1:lines[j].find(']')]) - v_name_list.append(lines[j][lines[j].rfind(' ')+1:lines[j].rfind('[')]) - elif '}' not in lines[j]: - v_ele_list.append(variable_len[0]+'x1') - v_name_list.append(lines[j][lines[j].rfind(' ')+1:lines[j].rfind(';')]) - if "return" in lines[j]: - # Add gen_test function - add_content = gen_test(v_type_list, v_ele_list, v_name_list, func_name) - lines.insert(j+1, add_content) - break - # Write the modified content back to the file - with open(file_path, 'w') as file: - file.writelines(lines) - - pass - - -if __name__ == '__main__': - # Open the modify_c.txt file and read its contents - with open('modify_c.txt', 'r') as modify_c_file: - file_names = modify_c_file.read().splitlines() - - for file_name in file_names: - print(f'Start {file_name}') - main_gen(file_name) - print(f'Done {file_name}') - diff --git a/test/arm/neon/addhn_high.c b/test/arm/neon/addhn_high.c index a7dd357d9..ab415341a 100644 --- a/test/arm/neon/addhn_high.c +++ b/test/arm/neon/addhn_high.c @@ -5,6 +5,7 @@ static int test_simde_vaddhn_high_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t origin_r[8]; int16_t a[8]; @@ -103,10 +104,27 @@ test_simde_vaddhn_high_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int8x8_t origin_r = simde_test_arm_neon_random_i8x8(); + simde_int16x8_t a = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int8x16_t r = simde_vaddhn_high_s16(origin_r, a, b); + + simde_test_arm_neon_write_i8x8(2, origin_r, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vaddhn_high_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t origin_r[4]; int32_t a[4]; @@ -165,10 +183,27 @@ test_simde_vaddhn_high_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int16x4_t origin_r = simde_test_arm_neon_random_i16x4(); + simde_int32x4_t a = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int16x8_t r = simde_vaddhn_high_s32(origin_r, a, b); + + simde_test_arm_neon_write_i16x4(2, origin_r, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vaddhn_high_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t origin_r[2]; int64_t a[2]; @@ -219,10 +254,27 @@ test_simde_vaddhn_high_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int32x2_t origin_r = simde_test_arm_neon_random_i32x2(); + simde_int64x2_t a = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int32x4_t r = simde_vaddhn_high_s64(origin_r, a, b); + + simde_test_arm_neon_write_i32x2(2, origin_r, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vaddhn_high_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint8_t origin_r[8]; uint16_t a[8]; @@ -321,10 +373,27 @@ test_simde_vaddhn_high_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t origin_r = simde_test_arm_neon_random_u8x8(); + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint8x16_t r = simde_vaddhn_high_u16(origin_r, a, b); + + simde_test_arm_neon_write_u8x8(2, origin_r, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vaddhn_high_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t origin_r[4]; uint32_t a[4]; @@ -383,10 +452,27 @@ test_simde_vaddhn_high_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t origin_r = simde_test_arm_neon_random_u16x4(); + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint16x8_t r = simde_vaddhn_high_u32(origin_r, a, b); + + simde_test_arm_neon_write_u16x4(2, origin_r, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vaddhn_high_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t origin_r[2]; uint64_t a[2]; @@ -437,6 +523,22 @@ test_simde_vaddhn_high_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t origin_r = simde_test_arm_neon_random_u32x2(); + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint32x4_t r = simde_vaddhn_high_u64(origin_r, a, b); + + simde_test_arm_neon_write_u32x2(2, origin_r, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/cgez.c b/test/arm/neon/cgez.c index 23b38e67c..9749d33d9 100644 --- a/test/arm/neon/cgez.c +++ b/test/arm/neon/cgez.c @@ -11,25 +11,26 @@ static int test_simde_vcgez_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; uint16_t r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_VALUE(29.138), -SIMDE_FLOAT16_VALUE(21.302), SIMDE_FLOAT16_VALUE( 9.731), SIMDE_FLOAT16_VALUE( 7.200) }, + { { SIMDE_FLOAT16_VALUE( -29.138), SIMDE_FLOAT16_VALUE( -21.302), SIMDE_FLOAT16_VALUE( 9.731), SIMDE_FLOAT16_VALUE( 7.200) }, { UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, { { SIMDE_FLOAT16_VALUE(13.547), SIMDE_FLOAT16_VALUE(21.721), SIMDE_FLOAT16_VALUE(20.327), SIMDE_FLOAT16_VALUE(14.625) }, { UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE( 5.193), SIMDE_FLOAT16_VALUE( 6.652), SIMDE_FLOAT16_VALUE( 5.809), SIMDE_FLOAT16_VALUE(25.819) }, + { { SIMDE_FLOAT16_VALUE( - 5.193), SIMDE_FLOAT16_VALUE( 6.652), SIMDE_FLOAT16_VALUE( 5.809), SIMDE_FLOAT16_VALUE(25.819) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE(19.948), -SIMDE_FLOAT16_VALUE(12.175), SIMDE_FLOAT16_VALUE( 1.189), -SIMDE_FLOAT16_VALUE(13.534) }, + { { SIMDE_FLOAT16_VALUE(19.948), SIMDE_FLOAT16_VALUE( -12.175), SIMDE_FLOAT16_VALUE( 1.189), SIMDE_FLOAT16_VALUE( -13.534) }, { UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(26.028), SIMDE_FLOAT16_VALUE(26.314), SIMDE_FLOAT16_VALUE(13.049), -SIMDE_FLOAT16_VALUE( 5.316) }, + { { SIMDE_FLOAT16_VALUE( -26.028), SIMDE_FLOAT16_VALUE(26.314), SIMDE_FLOAT16_VALUE(13.049), SIMDE_FLOAT16_VALUE( - 5.316) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } }, - { { SIMDE_FLOAT16_VALUE(14.137), -SIMDE_FLOAT16_VALUE(20.428), -SIMDE_FLOAT16_VALUE(28.249), -SIMDE_FLOAT16_VALUE(29.967) }, + { { SIMDE_FLOAT16_VALUE(14.137), SIMDE_FLOAT16_VALUE( -20.428), SIMDE_FLOAT16_VALUE( -28.249), SIMDE_FLOAT16_VALUE( -29.967) }, { UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE( 5.889), -SIMDE_FLOAT16_VALUE(14.727), SIMDE_FLOAT16_VALUE(28.104), SIMDE_FLOAT16_VALUE( 1.839) }, + { { SIMDE_FLOAT16_VALUE( - 5.889), SIMDE_FLOAT16_VALUE( -14.727), SIMDE_FLOAT16_VALUE(28.104), SIMDE_FLOAT16_VALUE( 1.839) }, { UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE( 6.364), -SIMDE_FLOAT16_VALUE(22.098), SIMDE_FLOAT16_VALUE( 1.153), SIMDE_FLOAT16_VALUE( 4.894) }, + { { SIMDE_FLOAT16_VALUE( - 6.364), SIMDE_FLOAT16_VALUE( -22.098), SIMDE_FLOAT16_VALUE( 1.153), SIMDE_FLOAT16_VALUE( 4.894) }, { UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, }; @@ -41,6 +42,18 @@ test_simde_vcgez_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcgez_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 @@ -369,40 +382,41 @@ test_simde_vcgez_s64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcgezq_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; uint16_t r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_VALUE( 4.672), -SIMDE_FLOAT16_VALUE( 4.393), -SIMDE_FLOAT16_VALUE( 2.459), SIMDE_FLOAT16_VALUE(17.741), - -SIMDE_FLOAT16_VALUE(23.092), -SIMDE_FLOAT16_VALUE( 1.619), SIMDE_FLOAT16_VALUE(24.559), SIMDE_FLOAT16_VALUE(16.008) }, + { { SIMDE_FLOAT16_VALUE( 4.672), SIMDE_FLOAT16_VALUE( - 4.393), SIMDE_FLOAT16_VALUE( - 2.459), SIMDE_FLOAT16_VALUE(17.741), + SIMDE_FLOAT16_VALUE( -23.092), SIMDE_FLOAT16_VALUE( - 1.619), SIMDE_FLOAT16_VALUE(24.559), SIMDE_FLOAT16_VALUE(16.008) }, { UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE(16.244), -SIMDE_FLOAT16_VALUE( 9.222), SIMDE_FLOAT16_VALUE( 9.959), SIMDE_FLOAT16_VALUE(28.196), + { { SIMDE_FLOAT16_VALUE(16.244), SIMDE_FLOAT16_VALUE( - 9.222), SIMDE_FLOAT16_VALUE( 9.959), SIMDE_FLOAT16_VALUE(28.196), SIMDE_FLOAT16_VALUE(18.095), SIMDE_FLOAT16_VALUE( 6.379), SIMDE_FLOAT16_VALUE(20.858), SIMDE_FLOAT16_VALUE(16.596) }, { UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE( 6.235), SIMDE_FLOAT16_VALUE(19.480), -SIMDE_FLOAT16_VALUE( 9.343), -SIMDE_FLOAT16_VALUE(24.237), - SIMDE_FLOAT16_VALUE( 5.971), SIMDE_FLOAT16_VALUE(21.376), -SIMDE_FLOAT16_VALUE(24.306), -SIMDE_FLOAT16_VALUE(27.147) }, + { { SIMDE_FLOAT16_VALUE( 6.235), SIMDE_FLOAT16_VALUE(19.480), SIMDE_FLOAT16_VALUE( - 9.343), SIMDE_FLOAT16_VALUE( -24.237), + SIMDE_FLOAT16_VALUE( 5.971), SIMDE_FLOAT16_VALUE(21.376), SIMDE_FLOAT16_VALUE( -24.306), SIMDE_FLOAT16_VALUE( -27.147) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE( 9.624), -SIMDE_FLOAT16_VALUE(23.992), -SIMDE_FLOAT16_VALUE( 5.807), SIMDE_FLOAT16_VALUE(16.083), - -SIMDE_FLOAT16_VALUE( 3.714), -SIMDE_FLOAT16_VALUE(14.069), SIMDE_FLOAT16_VALUE(11.006), SIMDE_FLOAT16_VALUE(16.313) }, + { { SIMDE_FLOAT16_VALUE( - 9.624), SIMDE_FLOAT16_VALUE( -23.992), SIMDE_FLOAT16_VALUE( - 5.807), SIMDE_FLOAT16_VALUE(16.083), + SIMDE_FLOAT16_VALUE( - 3.714), SIMDE_FLOAT16_VALUE( -14.069), SIMDE_FLOAT16_VALUE(11.006), SIMDE_FLOAT16_VALUE(16.313) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE( 8.730), SIMDE_FLOAT16_VALUE( 9.904), -SIMDE_FLOAT16_VALUE(12.342), -SIMDE_FLOAT16_VALUE(28.297), - -SIMDE_FLOAT16_VALUE( 6.298), SIMDE_FLOAT16_VALUE(23.263), SIMDE_FLOAT16_VALUE( 2.989), -SIMDE_FLOAT16_VALUE( 2.717) }, + { { SIMDE_FLOAT16_VALUE( 8.730), SIMDE_FLOAT16_VALUE( 9.904), SIMDE_FLOAT16_VALUE( -12.342), SIMDE_FLOAT16_VALUE( -28.297), + SIMDE_FLOAT16_VALUE( - 6.298), SIMDE_FLOAT16_VALUE(23.263), SIMDE_FLOAT16_VALUE( 2.989), SIMDE_FLOAT16_VALUE( - 2.717) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } }, - { { SIMDE_FLOAT16_VALUE(23.160), -SIMDE_FLOAT16_VALUE(19.910), SIMDE_FLOAT16_VALUE(14.770), -SIMDE_FLOAT16_VALUE( 7.653), - SIMDE_FLOAT16_VALUE(12.325), SIMDE_FLOAT16_VALUE(27.268), -SIMDE_FLOAT16_VALUE(20.187), -SIMDE_FLOAT16_VALUE(15.730) }, + { { SIMDE_FLOAT16_VALUE(23.160), SIMDE_FLOAT16_VALUE( -19.910), SIMDE_FLOAT16_VALUE(14.770), SIMDE_FLOAT16_VALUE( - 7.653), + SIMDE_FLOAT16_VALUE(12.325), SIMDE_FLOAT16_VALUE(27.268), SIMDE_FLOAT16_VALUE( -20.187), SIMDE_FLOAT16_VALUE( -15.730) }, { UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(14.195), -SIMDE_FLOAT16_VALUE(11.151), -SIMDE_FLOAT16_VALUE(15.147), -SIMDE_FLOAT16_VALUE(17.527), - SIMDE_FLOAT16_VALUE(24.002), -SIMDE_FLOAT16_VALUE( 4.927), -SIMDE_FLOAT16_VALUE(27.014), -SIMDE_FLOAT16_VALUE( 4.630) }, + { { SIMDE_FLOAT16_VALUE( -14.195), SIMDE_FLOAT16_VALUE( -11.151), SIMDE_FLOAT16_VALUE( -15.147), SIMDE_FLOAT16_VALUE( -17.527), + SIMDE_FLOAT16_VALUE(24.002), SIMDE_FLOAT16_VALUE( - 4.927), SIMDE_FLOAT16_VALUE( -27.014), SIMDE_FLOAT16_VALUE( - 4.630) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(20.267), -SIMDE_FLOAT16_VALUE(16.263), SIMDE_FLOAT16_VALUE(22.561), SIMDE_FLOAT16_VALUE(29.945), - SIMDE_FLOAT16_VALUE( 0.612), -SIMDE_FLOAT16_VALUE(18.683), SIMDE_FLOAT16_VALUE(27.621), -SIMDE_FLOAT16_VALUE(20.027) }, + { { SIMDE_FLOAT16_VALUE( -20.267), SIMDE_FLOAT16_VALUE( -16.263), SIMDE_FLOAT16_VALUE(22.561), SIMDE_FLOAT16_VALUE(29.945), + SIMDE_FLOAT16_VALUE( 0.612), SIMDE_FLOAT16_VALUE( -18.683), SIMDE_FLOAT16_VALUE(27.621), SIMDE_FLOAT16_VALUE( -20.027) }, { UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, }; @@ -415,6 +429,18 @@ test_simde_vcgezq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcgezq_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 @@ -891,17 +917,18 @@ test_simde_vcgezs_f32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcgezh_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16_t a; uint16_t r; } test_vec[] = { - { -SIMDE_FLOAT16_VALUE(13.269), + { SIMDE_FLOAT16_VALUE( -13.269), UINT16_C( 0) }, - { -SIMDE_FLOAT16_VALUE(16.135), + { SIMDE_FLOAT16_VALUE( -16.135), UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE(11.274), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(12.903), + { SIMDE_FLOAT16_VALUE( -12.903), UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE( 7.352), UINT16_MAX }, @@ -909,7 +936,7 @@ test_simde_vcgezh_f16 (SIMDE_MUNIT_TEST_ARGS) { UINT16_MAX }, { SIMDE_FLOAT16_VALUE(29.401), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(17.429), + { SIMDE_FLOAT16_VALUE( -17.429), UINT16_C( 0) }, }; @@ -919,6 +946,18 @@ test_simde_vcgezh_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcgezh_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 diff --git a/test/arm/neon/cgtz.c b/test/arm/neon/cgtz.c index 2a6e1b011..a6901303b 100644 --- a/test/arm/neon/cgtz.c +++ b/test/arm/neon/cgtz.c @@ -11,25 +11,26 @@ static int test_simde_vcgtz_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; uint16_t r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_VALUE( 9.473), -SIMDE_FLOAT16_VALUE(14.640), -SIMDE_FLOAT16_VALUE( 7.967), -SIMDE_FLOAT16_VALUE(23.200) }, + { { SIMDE_FLOAT16_VALUE( - 9.473), SIMDE_FLOAT16_VALUE( -14.640), SIMDE_FLOAT16_VALUE( - 7.967), SIMDE_FLOAT16_VALUE( -23.200) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_VALUE(10.878), -SIMDE_FLOAT16_VALUE(23.457), SIMDE_FLOAT16_VALUE(26.306), -SIMDE_FLOAT16_VALUE(22.584) }, + { { SIMDE_FLOAT16_VALUE(10.878), SIMDE_FLOAT16_VALUE( -23.457), SIMDE_FLOAT16_VALUE(26.306), SIMDE_FLOAT16_VALUE( -22.584) }, { UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, - { { SIMDE_FLOAT16_VALUE( 1.308), SIMDE_FLOAT16_VALUE(21.518), -SIMDE_FLOAT16_VALUE( 0.314), -SIMDE_FLOAT16_VALUE(27.151) }, + { { SIMDE_FLOAT16_VALUE( 1.308), SIMDE_FLOAT16_VALUE(21.518), SIMDE_FLOAT16_VALUE( - 0.314), SIMDE_FLOAT16_VALUE( -27.151) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, { { SIMDE_FLOAT16_VALUE(28.216), SIMDE_FLOAT16_VALUE(10.608), SIMDE_FLOAT16_VALUE( 1.568), SIMDE_FLOAT16_VALUE( 6.133) }, { UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(10.926), -SIMDE_FLOAT16_VALUE( 1.431), -SIMDE_FLOAT16_VALUE(24.284), SIMDE_FLOAT16_VALUE(16.395) }, + { { SIMDE_FLOAT16_VALUE( -10.926), SIMDE_FLOAT16_VALUE( - 1.431), SIMDE_FLOAT16_VALUE( -24.284), SIMDE_FLOAT16_VALUE(16.395) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE(16.278), -SIMDE_FLOAT16_VALUE(26.233), -SIMDE_FLOAT16_VALUE(16.260), SIMDE_FLOAT16_VALUE(14.480) }, + { { SIMDE_FLOAT16_VALUE(16.278), SIMDE_FLOAT16_VALUE( -26.233), SIMDE_FLOAT16_VALUE( -16.260), SIMDE_FLOAT16_VALUE(14.480) }, { UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE(22.265), SIMDE_FLOAT16_VALUE(10.034), -SIMDE_FLOAT16_VALUE(29.299), SIMDE_FLOAT16_VALUE( 3.379) }, + { { SIMDE_FLOAT16_VALUE(22.265), SIMDE_FLOAT16_VALUE(10.034), SIMDE_FLOAT16_VALUE( -29.299), SIMDE_FLOAT16_VALUE( 3.379) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(23.089), SIMDE_FLOAT16_VALUE(14.378), SIMDE_FLOAT16_VALUE(19.162), -SIMDE_FLOAT16_VALUE( 5.240) }, + { { SIMDE_FLOAT16_VALUE( -23.089), SIMDE_FLOAT16_VALUE(14.378), SIMDE_FLOAT16_VALUE(19.162), SIMDE_FLOAT16_VALUE( - 5.240) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } }, }; @@ -41,6 +42,18 @@ test_simde_vcgtz_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcgtz_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 @@ -369,40 +382,41 @@ test_simde_vcgtz_s64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcgtzq_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; uint16_t r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_VALUE( 6.928), SIMDE_FLOAT16_VALUE(11.681), SIMDE_FLOAT16_VALUE( 8.633), -SIMDE_FLOAT16_VALUE( 5.431), - -SIMDE_FLOAT16_VALUE(23.547), -SIMDE_FLOAT16_VALUE( 0.180), -SIMDE_FLOAT16_VALUE( 7.273), -SIMDE_FLOAT16_VALUE( 9.610) }, + { { SIMDE_FLOAT16_VALUE( - 6.928), SIMDE_FLOAT16_VALUE(11.681), SIMDE_FLOAT16_VALUE( 8.633), SIMDE_FLOAT16_VALUE( - 5.431), + SIMDE_FLOAT16_VALUE( -23.547), SIMDE_FLOAT16_VALUE( - 0.180), SIMDE_FLOAT16_VALUE( - 7.273), SIMDE_FLOAT16_VALUE( - 9.610) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(29.882), -SIMDE_FLOAT16_VALUE(29.123), -SIMDE_FLOAT16_VALUE(29.037), SIMDE_FLOAT16_VALUE( 1.019), - -SIMDE_FLOAT16_VALUE( 5.271), SIMDE_FLOAT16_VALUE( 9.973), SIMDE_FLOAT16_VALUE(25.139), -SIMDE_FLOAT16_VALUE(13.522) }, + { { SIMDE_FLOAT16_VALUE( -29.882), SIMDE_FLOAT16_VALUE( -29.123), SIMDE_FLOAT16_VALUE( -29.037), SIMDE_FLOAT16_VALUE( 1.019), + SIMDE_FLOAT16_VALUE( - 5.271), SIMDE_FLOAT16_VALUE( 9.973), SIMDE_FLOAT16_VALUE(25.139), SIMDE_FLOAT16_VALUE( -13.522) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(10.945), SIMDE_FLOAT16_VALUE( 8.447), -SIMDE_FLOAT16_VALUE(16.769), SIMDE_FLOAT16_VALUE(21.783), - -SIMDE_FLOAT16_VALUE(11.988), SIMDE_FLOAT16_VALUE(21.388), -SIMDE_FLOAT16_VALUE( 7.251), -SIMDE_FLOAT16_VALUE(11.695) }, + { { SIMDE_FLOAT16_VALUE( -10.945), SIMDE_FLOAT16_VALUE( 8.447), SIMDE_FLOAT16_VALUE( -16.769), SIMDE_FLOAT16_VALUE(21.783), + SIMDE_FLOAT16_VALUE( -11.988), SIMDE_FLOAT16_VALUE(21.388), SIMDE_FLOAT16_VALUE( - 7.251), SIMDE_FLOAT16_VALUE( -11.695) }, { UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(14.490), SIMDE_FLOAT16_VALUE(26.771), -SIMDE_FLOAT16_VALUE(12.493), -SIMDE_FLOAT16_VALUE(16.313), - SIMDE_FLOAT16_VALUE( 5.500), -SIMDE_FLOAT16_VALUE(12.452), SIMDE_FLOAT16_VALUE(13.667), SIMDE_FLOAT16_VALUE( 7.351) }, + { { SIMDE_FLOAT16_VALUE( -14.490), SIMDE_FLOAT16_VALUE(26.771), SIMDE_FLOAT16_VALUE( -12.493), SIMDE_FLOAT16_VALUE( -16.313), + SIMDE_FLOAT16_VALUE( 5.500), SIMDE_FLOAT16_VALUE( -12.452), SIMDE_FLOAT16_VALUE(13.667), SIMDE_FLOAT16_VALUE( 7.351) }, { UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE( 1.234), SIMDE_FLOAT16_VALUE(15.157), -SIMDE_FLOAT16_VALUE( 8.083), SIMDE_FLOAT16_VALUE( 9.647), - -SIMDE_FLOAT16_VALUE(10.742), -SIMDE_FLOAT16_VALUE(17.108), SIMDE_FLOAT16_VALUE( 4.144), SIMDE_FLOAT16_VALUE(25.679) }, + { { SIMDE_FLOAT16_VALUE( 1.234), SIMDE_FLOAT16_VALUE(15.157), SIMDE_FLOAT16_VALUE( - 8.083), SIMDE_FLOAT16_VALUE( 9.647), + SIMDE_FLOAT16_VALUE( -10.742), SIMDE_FLOAT16_VALUE( -17.108), SIMDE_FLOAT16_VALUE( 4.144), SIMDE_FLOAT16_VALUE(25.679) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(21.979), SIMDE_FLOAT16_VALUE(19.728), -SIMDE_FLOAT16_VALUE(23.139), -SIMDE_FLOAT16_VALUE( 2.597), - -SIMDE_FLOAT16_VALUE(14.903), -SIMDE_FLOAT16_VALUE( 0.047), -SIMDE_FLOAT16_VALUE( 1.270), SIMDE_FLOAT16_VALUE(27.934) }, + { { SIMDE_FLOAT16_VALUE( -21.979), SIMDE_FLOAT16_VALUE(19.728), SIMDE_FLOAT16_VALUE( -23.139), SIMDE_FLOAT16_VALUE( - 2.597), + SIMDE_FLOAT16_VALUE( -14.903), SIMDE_FLOAT16_VALUE( - 0.047), SIMDE_FLOAT16_VALUE( - 1.270), SIMDE_FLOAT16_VALUE(27.934) }, { UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(14.065), SIMDE_FLOAT16_VALUE(16.118), -SIMDE_FLOAT16_VALUE(22.444), -SIMDE_FLOAT16_VALUE(13.467), - SIMDE_FLOAT16_VALUE(26.493), SIMDE_FLOAT16_VALUE( 0.379), -SIMDE_FLOAT16_VALUE(22.537), -SIMDE_FLOAT16_VALUE(28.404) }, + { { SIMDE_FLOAT16_VALUE( -14.065), SIMDE_FLOAT16_VALUE(16.118), SIMDE_FLOAT16_VALUE( -22.444), SIMDE_FLOAT16_VALUE( -13.467), + SIMDE_FLOAT16_VALUE(26.493), SIMDE_FLOAT16_VALUE( 0.379), SIMDE_FLOAT16_VALUE( -22.537), SIMDE_FLOAT16_VALUE( -28.404) }, { UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE( 2.779), SIMDE_FLOAT16_VALUE(24.997), -SIMDE_FLOAT16_VALUE(13.904), -SIMDE_FLOAT16_VALUE( 6.204), - -SIMDE_FLOAT16_VALUE(19.614), -SIMDE_FLOAT16_VALUE( 6.603), SIMDE_FLOAT16_VALUE( 5.443), -SIMDE_FLOAT16_VALUE( 1.841) }, + { { SIMDE_FLOAT16_VALUE( - 2.779), SIMDE_FLOAT16_VALUE(24.997), SIMDE_FLOAT16_VALUE( -13.904), SIMDE_FLOAT16_VALUE( - 6.204), + SIMDE_FLOAT16_VALUE( -19.614), SIMDE_FLOAT16_VALUE( - 6.603), SIMDE_FLOAT16_VALUE( 5.443), SIMDE_FLOAT16_VALUE( - 1.841) }, { UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, }; @@ -415,6 +429,18 @@ test_simde_vcgtzq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcgtzq_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 @@ -891,13 +917,14 @@ test_simde_vcgtzs_f32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcgtzh_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16_t a; uint16_t r; } test_vec[] = { { SIMDE_FLOAT16_VALUE(27.364), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(13.960), + { SIMDE_FLOAT16_VALUE( -13.960), UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE(19.245), UINT16_MAX }, @@ -905,11 +932,11 @@ test_simde_vcgtzh_f16 (SIMDE_MUNIT_TEST_ARGS) { UINT16_MAX }, { SIMDE_FLOAT16_VALUE(19.457), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(23.488), + { SIMDE_FLOAT16_VALUE( -23.488), UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE(15.527), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE( 2.123), + { SIMDE_FLOAT16_VALUE( - 2.123), UINT16_C( 0) }, }; @@ -919,6 +946,18 @@ test_simde_vcgtzh_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcgtzh_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 diff --git a/test/arm/neon/cle.c b/test/arm/neon/cle.c index f4c0b9f91..149d0070d 100644 --- a/test/arm/neon/cle.c +++ b/test/arm/neon/cle.c @@ -11,34 +11,35 @@ static int test_simde_vcle_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; simde_float16 b[4]; uint16_t r[4]; } test_vec[] = { - { { SIMDE_FLOAT16_VALUE( 8.447), -SIMDE_FLOAT16_VALUE( 8.659), -SIMDE_FLOAT16_VALUE( 2.615), SIMDE_FLOAT16_VALUE(11.602) }, - { SIMDE_FLOAT16_VALUE(10.611), -SIMDE_FLOAT16_VALUE( 0.755), -SIMDE_FLOAT16_VALUE( 9.784), SIMDE_FLOAT16_VALUE(27.142) }, + { { SIMDE_FLOAT16_VALUE( 8.447), SIMDE_FLOAT16_VALUE( - 8.659), SIMDE_FLOAT16_VALUE( - 2.615), SIMDE_FLOAT16_VALUE(11.602) }, + { SIMDE_FLOAT16_VALUE(10.611), SIMDE_FLOAT16_VALUE( - 0.755), SIMDE_FLOAT16_VALUE( - 9.784), SIMDE_FLOAT16_VALUE(27.142) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE(17.098), SIMDE_FLOAT16_VALUE(10.956), -SIMDE_FLOAT16_VALUE(28.072), SIMDE_FLOAT16_VALUE(29.289) }, - { -SIMDE_FLOAT16_VALUE(19.728), SIMDE_FLOAT16_VALUE( 8.380), -SIMDE_FLOAT16_VALUE(11.126), SIMDE_FLOAT16_VALUE(16.167) }, + { { SIMDE_FLOAT16_VALUE(17.098), SIMDE_FLOAT16_VALUE(10.956), SIMDE_FLOAT16_VALUE( -28.072), SIMDE_FLOAT16_VALUE(29.289) }, + { SIMDE_FLOAT16_VALUE( -19.728), SIMDE_FLOAT16_VALUE( 8.380), SIMDE_FLOAT16_VALUE( -11.126), SIMDE_FLOAT16_VALUE(16.167) }, { UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, { { SIMDE_FLOAT16_VALUE(21.932), SIMDE_FLOAT16_VALUE( 9.638), SIMDE_FLOAT16_VALUE( 4.463), SIMDE_FLOAT16_VALUE(20.865) }, - { -SIMDE_FLOAT16_VALUE(11.698), SIMDE_FLOAT16_VALUE(18.815), SIMDE_FLOAT16_VALUE(15.699), SIMDE_FLOAT16_VALUE(13.508) }, + { SIMDE_FLOAT16_VALUE( -11.698), SIMDE_FLOAT16_VALUE(18.815), SIMDE_FLOAT16_VALUE(15.699), SIMDE_FLOAT16_VALUE(13.508) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(20.159), SIMDE_FLOAT16_VALUE(12.844), -SIMDE_FLOAT16_VALUE( 8.921), -SIMDE_FLOAT16_VALUE( 7.798) }, - { -SIMDE_FLOAT16_VALUE( 1.258), -SIMDE_FLOAT16_VALUE(17.170), SIMDE_FLOAT16_VALUE(16.333), -SIMDE_FLOAT16_VALUE( 8.197) }, + { { SIMDE_FLOAT16_VALUE( -20.159), SIMDE_FLOAT16_VALUE(12.844), SIMDE_FLOAT16_VALUE( - 8.921), SIMDE_FLOAT16_VALUE( - 7.798) }, + { SIMDE_FLOAT16_VALUE( - 1.258), SIMDE_FLOAT16_VALUE( -17.170), SIMDE_FLOAT16_VALUE(16.333), SIMDE_FLOAT16_VALUE( - 8.197) }, { UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(11.632), -SIMDE_FLOAT16_VALUE( 8.390), SIMDE_FLOAT16_VALUE(20.714), SIMDE_FLOAT16_VALUE(24.154) }, + { { SIMDE_FLOAT16_VALUE( -11.632), SIMDE_FLOAT16_VALUE( - 8.390), SIMDE_FLOAT16_VALUE(20.714), SIMDE_FLOAT16_VALUE(24.154) }, { SIMDE_FLOAT16_VALUE(22.192), SIMDE_FLOAT16_VALUE(22.191), SIMDE_FLOAT16_VALUE( 6.143), SIMDE_FLOAT16_VALUE(20.987) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE( 2.982), -SIMDE_FLOAT16_VALUE( 4.497), -SIMDE_FLOAT16_VALUE(15.911), -SIMDE_FLOAT16_VALUE(26.749) }, - { SIMDE_FLOAT16_VALUE( 7.832), SIMDE_FLOAT16_VALUE(20.355), -SIMDE_FLOAT16_VALUE(18.865), -SIMDE_FLOAT16_VALUE( 8.786) }, + { { SIMDE_FLOAT16_VALUE( - 2.982), SIMDE_FLOAT16_VALUE( - 4.497), SIMDE_FLOAT16_VALUE( -15.911), SIMDE_FLOAT16_VALUE( -26.749) }, + { SIMDE_FLOAT16_VALUE( 7.832), SIMDE_FLOAT16_VALUE(20.355), SIMDE_FLOAT16_VALUE( -18.865), SIMDE_FLOAT16_VALUE( - 8.786) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(19.847), -SIMDE_FLOAT16_VALUE(26.969), -SIMDE_FLOAT16_VALUE(14.823), -SIMDE_FLOAT16_VALUE(21.042) }, - { -SIMDE_FLOAT16_VALUE(28.679), -SIMDE_FLOAT16_VALUE(22.401), -SIMDE_FLOAT16_VALUE(10.468), SIMDE_FLOAT16_VALUE( 1.884) }, + { { SIMDE_FLOAT16_VALUE( -19.847), SIMDE_FLOAT16_VALUE( -26.969), SIMDE_FLOAT16_VALUE( -14.823), SIMDE_FLOAT16_VALUE( -21.042) }, + { SIMDE_FLOAT16_VALUE( -28.679), SIMDE_FLOAT16_VALUE( -22.401), SIMDE_FLOAT16_VALUE( -10.468), SIMDE_FLOAT16_VALUE( 1.884) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(13.976), SIMDE_FLOAT16_VALUE(16.503), -SIMDE_FLOAT16_VALUE(18.929), -SIMDE_FLOAT16_VALUE(21.485) }, - { SIMDE_FLOAT16_VALUE(27.388), SIMDE_FLOAT16_VALUE(15.954), -SIMDE_FLOAT16_VALUE(18.157), SIMDE_FLOAT16_VALUE(27.831) }, + { { SIMDE_FLOAT16_VALUE( -13.976), SIMDE_FLOAT16_VALUE(16.503), SIMDE_FLOAT16_VALUE( -18.929), SIMDE_FLOAT16_VALUE( -21.485) }, + { SIMDE_FLOAT16_VALUE(27.388), SIMDE_FLOAT16_VALUE(15.954), SIMDE_FLOAT16_VALUE( -18.157), SIMDE_FLOAT16_VALUE(27.831) }, { UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } }, }; @@ -51,6 +52,20 @@ test_simde_vcle_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint16x4_t r = simde_vcle_f16(a, b); + + 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_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -725,57 +740,58 @@ test_simde_vcle_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcleq_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; simde_float16 b[8]; uint16_t r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_VALUE( 6.052), -SIMDE_FLOAT16_VALUE(21.631), -SIMDE_FLOAT16_VALUE(16.927), SIMDE_FLOAT16_VALUE(20.755), - -SIMDE_FLOAT16_VALUE(15.631), -SIMDE_FLOAT16_VALUE( 6.240), SIMDE_FLOAT16_VALUE(23.509), -SIMDE_FLOAT16_VALUE(29.481) }, - { SIMDE_FLOAT16_VALUE(16.025), SIMDE_FLOAT16_VALUE(24.334), -SIMDE_FLOAT16_VALUE( 6.508), SIMDE_FLOAT16_VALUE(17.524), - -SIMDE_FLOAT16_VALUE(15.973), SIMDE_FLOAT16_VALUE( 0.216), -SIMDE_FLOAT16_VALUE( 7.741), SIMDE_FLOAT16_VALUE( 7.130) }, + { { SIMDE_FLOAT16_VALUE( 6.052), SIMDE_FLOAT16_VALUE( -21.631), SIMDE_FLOAT16_VALUE( -16.927), SIMDE_FLOAT16_VALUE(20.755), + SIMDE_FLOAT16_VALUE( -15.631), SIMDE_FLOAT16_VALUE( - 6.240), SIMDE_FLOAT16_VALUE(23.509), SIMDE_FLOAT16_VALUE( -29.481) }, + { SIMDE_FLOAT16_VALUE(16.025), SIMDE_FLOAT16_VALUE(24.334), SIMDE_FLOAT16_VALUE( - 6.508), SIMDE_FLOAT16_VALUE(17.524), + SIMDE_FLOAT16_VALUE( -15.973), SIMDE_FLOAT16_VALUE( 0.216), SIMDE_FLOAT16_VALUE( - 7.741), SIMDE_FLOAT16_VALUE( 7.130) }, { UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE( 5.096), -SIMDE_FLOAT16_VALUE(10.602), SIMDE_FLOAT16_VALUE(27.999), -SIMDE_FLOAT16_VALUE( 1.075), - -SIMDE_FLOAT16_VALUE(23.145), -SIMDE_FLOAT16_VALUE(23.578), SIMDE_FLOAT16_VALUE(25.404), -SIMDE_FLOAT16_VALUE(25.074) }, - { SIMDE_FLOAT16_VALUE( 8.365), -SIMDE_FLOAT16_VALUE(15.037), -SIMDE_FLOAT16_VALUE(16.985), SIMDE_FLOAT16_VALUE( 0.374), - SIMDE_FLOAT16_VALUE(13.526), -SIMDE_FLOAT16_VALUE( 2.567), SIMDE_FLOAT16_VALUE(23.870), -SIMDE_FLOAT16_VALUE(27.272) }, + { { SIMDE_FLOAT16_VALUE( - 5.096), SIMDE_FLOAT16_VALUE( -10.602), SIMDE_FLOAT16_VALUE(27.999), SIMDE_FLOAT16_VALUE( - 1.075), + SIMDE_FLOAT16_VALUE( -23.145), SIMDE_FLOAT16_VALUE( -23.578), SIMDE_FLOAT16_VALUE(25.404), SIMDE_FLOAT16_VALUE( -25.074) }, + { SIMDE_FLOAT16_VALUE( 8.365), SIMDE_FLOAT16_VALUE( -15.037), SIMDE_FLOAT16_VALUE( -16.985), SIMDE_FLOAT16_VALUE( 0.374), + SIMDE_FLOAT16_VALUE(13.526), SIMDE_FLOAT16_VALUE( - 2.567), SIMDE_FLOAT16_VALUE(23.870), SIMDE_FLOAT16_VALUE( -27.272) }, { UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_VALUE(11.955), -SIMDE_FLOAT16_VALUE(21.297), SIMDE_FLOAT16_VALUE(19.909), SIMDE_FLOAT16_VALUE( 2.327), - SIMDE_FLOAT16_VALUE(10.833), -SIMDE_FLOAT16_VALUE( 0.112), SIMDE_FLOAT16_VALUE(14.899), -SIMDE_FLOAT16_VALUE( 5.837) }, - { SIMDE_FLOAT16_VALUE(11.019), -SIMDE_FLOAT16_VALUE( 3.706), -SIMDE_FLOAT16_VALUE(17.685), SIMDE_FLOAT16_VALUE( 3.519), - -SIMDE_FLOAT16_VALUE( 9.207), SIMDE_FLOAT16_VALUE(10.370), -SIMDE_FLOAT16_VALUE(11.560), -SIMDE_FLOAT16_VALUE( 2.552) }, + { { SIMDE_FLOAT16_VALUE(11.955), SIMDE_FLOAT16_VALUE( -21.297), SIMDE_FLOAT16_VALUE(19.909), SIMDE_FLOAT16_VALUE( 2.327), + SIMDE_FLOAT16_VALUE(10.833), SIMDE_FLOAT16_VALUE( - 0.112), SIMDE_FLOAT16_VALUE(14.899), SIMDE_FLOAT16_VALUE( - 5.837) }, + { SIMDE_FLOAT16_VALUE(11.019), SIMDE_FLOAT16_VALUE( - 3.706), SIMDE_FLOAT16_VALUE( -17.685), SIMDE_FLOAT16_VALUE( 3.519), + SIMDE_FLOAT16_VALUE( - 9.207), SIMDE_FLOAT16_VALUE(10.370), SIMDE_FLOAT16_VALUE( -11.560), SIMDE_FLOAT16_VALUE( - 2.552) }, { UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE(25.799), -SIMDE_FLOAT16_VALUE(16.301), -SIMDE_FLOAT16_VALUE(15.560), -SIMDE_FLOAT16_VALUE(12.832), - -SIMDE_FLOAT16_VALUE(18.070), -SIMDE_FLOAT16_VALUE(26.679), SIMDE_FLOAT16_VALUE(29.328), SIMDE_FLOAT16_VALUE( 5.986) }, - { SIMDE_FLOAT16_VALUE(15.847), SIMDE_FLOAT16_VALUE(27.710), -SIMDE_FLOAT16_VALUE( 7.357), SIMDE_FLOAT16_VALUE( 8.789), - SIMDE_FLOAT16_VALUE( 9.556), SIMDE_FLOAT16_VALUE(26.672), -SIMDE_FLOAT16_VALUE( 7.994), SIMDE_FLOAT16_VALUE( 7.517) }, + { { SIMDE_FLOAT16_VALUE( -25.799), SIMDE_FLOAT16_VALUE( -16.301), SIMDE_FLOAT16_VALUE( -15.560), SIMDE_FLOAT16_VALUE( -12.832), + SIMDE_FLOAT16_VALUE( -18.070), SIMDE_FLOAT16_VALUE( -26.679), SIMDE_FLOAT16_VALUE(29.328), SIMDE_FLOAT16_VALUE( 5.986) }, + { SIMDE_FLOAT16_VALUE(15.847), SIMDE_FLOAT16_VALUE(27.710), SIMDE_FLOAT16_VALUE( - 7.357), SIMDE_FLOAT16_VALUE( 8.789), + SIMDE_FLOAT16_VALUE( 9.556), SIMDE_FLOAT16_VALUE(26.672), SIMDE_FLOAT16_VALUE( - 7.994), SIMDE_FLOAT16_VALUE( 7.517) }, { UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } }, - { { -SIMDE_FLOAT16_VALUE( 5.306), -SIMDE_FLOAT16_VALUE( 0.813), SIMDE_FLOAT16_VALUE( 6.000), -SIMDE_FLOAT16_VALUE(23.238), - SIMDE_FLOAT16_VALUE(29.249), SIMDE_FLOAT16_VALUE(25.928), -SIMDE_FLOAT16_VALUE(25.742), SIMDE_FLOAT16_VALUE(28.893) }, - { SIMDE_FLOAT16_VALUE(19.282), SIMDE_FLOAT16_VALUE(14.169), -SIMDE_FLOAT16_VALUE( 8.290), SIMDE_FLOAT16_VALUE(17.378), - -SIMDE_FLOAT16_VALUE( 1.797), SIMDE_FLOAT16_VALUE( 1.777), SIMDE_FLOAT16_VALUE( 5.564), SIMDE_FLOAT16_VALUE(28.078) }, + { { SIMDE_FLOAT16_VALUE( - 5.306), SIMDE_FLOAT16_VALUE( - 0.813), SIMDE_FLOAT16_VALUE( 6.000), SIMDE_FLOAT16_VALUE( -23.238), + SIMDE_FLOAT16_VALUE(29.249), SIMDE_FLOAT16_VALUE(25.928), SIMDE_FLOAT16_VALUE( -25.742), SIMDE_FLOAT16_VALUE(28.893) }, + { SIMDE_FLOAT16_VALUE(19.282), SIMDE_FLOAT16_VALUE(14.169), SIMDE_FLOAT16_VALUE( - 8.290), SIMDE_FLOAT16_VALUE(17.378), + SIMDE_FLOAT16_VALUE( - 1.797), SIMDE_FLOAT16_VALUE( 1.777), SIMDE_FLOAT16_VALUE( 5.564), SIMDE_FLOAT16_VALUE(28.078) }, { UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(20.592), SIMDE_FLOAT16_VALUE(20.779), SIMDE_FLOAT16_VALUE(10.541), -SIMDE_FLOAT16_VALUE(21.060), - SIMDE_FLOAT16_VALUE(23.945), SIMDE_FLOAT16_VALUE(24.970), -SIMDE_FLOAT16_VALUE(28.557), SIMDE_FLOAT16_VALUE(22.210) }, - { SIMDE_FLOAT16_VALUE(23.015), -SIMDE_FLOAT16_VALUE(29.722), -SIMDE_FLOAT16_VALUE(20.947), -SIMDE_FLOAT16_VALUE(10.237), - SIMDE_FLOAT16_VALUE(14.317), -SIMDE_FLOAT16_VALUE(23.364), -SIMDE_FLOAT16_VALUE( 2.156), SIMDE_FLOAT16_VALUE( 6.988) }, + { { SIMDE_FLOAT16_VALUE( -20.592), SIMDE_FLOAT16_VALUE(20.779), SIMDE_FLOAT16_VALUE(10.541), SIMDE_FLOAT16_VALUE( -21.060), + SIMDE_FLOAT16_VALUE(23.945), SIMDE_FLOAT16_VALUE(24.970), SIMDE_FLOAT16_VALUE( -28.557), SIMDE_FLOAT16_VALUE(22.210) }, + { SIMDE_FLOAT16_VALUE(23.015), SIMDE_FLOAT16_VALUE( -29.722), SIMDE_FLOAT16_VALUE( -20.947), SIMDE_FLOAT16_VALUE( -10.237), + SIMDE_FLOAT16_VALUE(14.317), SIMDE_FLOAT16_VALUE( -23.364), SIMDE_FLOAT16_VALUE( - 2.156), SIMDE_FLOAT16_VALUE( 6.988) }, { UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_VALUE(16.548), -SIMDE_FLOAT16_VALUE(18.913), SIMDE_FLOAT16_VALUE( 5.054), SIMDE_FLOAT16_VALUE(16.187), - SIMDE_FLOAT16_VALUE(20.355), -SIMDE_FLOAT16_VALUE(12.692), -SIMDE_FLOAT16_VALUE( 8.127), -SIMDE_FLOAT16_VALUE(29.320) }, - { -SIMDE_FLOAT16_VALUE( 3.252), SIMDE_FLOAT16_VALUE( 7.592), SIMDE_FLOAT16_VALUE(14.255), -SIMDE_FLOAT16_VALUE(25.319), - -SIMDE_FLOAT16_VALUE(11.153), SIMDE_FLOAT16_VALUE(29.563), SIMDE_FLOAT16_VALUE(11.098), -SIMDE_FLOAT16_VALUE(18.346) }, + { { SIMDE_FLOAT16_VALUE( -16.548), SIMDE_FLOAT16_VALUE( -18.913), SIMDE_FLOAT16_VALUE( 5.054), SIMDE_FLOAT16_VALUE(16.187), + SIMDE_FLOAT16_VALUE(20.355), SIMDE_FLOAT16_VALUE( -12.692), SIMDE_FLOAT16_VALUE( - 8.127), SIMDE_FLOAT16_VALUE( -29.320) }, + { SIMDE_FLOAT16_VALUE( - 3.252), SIMDE_FLOAT16_VALUE( 7.592), SIMDE_FLOAT16_VALUE(14.255), SIMDE_FLOAT16_VALUE( -25.319), + SIMDE_FLOAT16_VALUE( -11.153), SIMDE_FLOAT16_VALUE(29.563), SIMDE_FLOAT16_VALUE(11.098), SIMDE_FLOAT16_VALUE( -18.346) }, { UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } }, - { { SIMDE_FLOAT16_VALUE( 6.142), -SIMDE_FLOAT16_VALUE(16.113), -SIMDE_FLOAT16_VALUE(25.442), SIMDE_FLOAT16_VALUE(10.388), - SIMDE_FLOAT16_VALUE( 9.547), -SIMDE_FLOAT16_VALUE(26.224), -SIMDE_FLOAT16_VALUE( 2.331), -SIMDE_FLOAT16_VALUE(14.642) }, - { -SIMDE_FLOAT16_VALUE( 8.097), SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE(19.975), SIMDE_FLOAT16_VALUE(28.291), - SIMDE_FLOAT16_VALUE( 1.823), SIMDE_FLOAT16_VALUE(25.174), SIMDE_FLOAT16_VALUE(23.571), -SIMDE_FLOAT16_VALUE( 7.197) }, + { { SIMDE_FLOAT16_VALUE( 6.142), SIMDE_FLOAT16_VALUE( -16.113), SIMDE_FLOAT16_VALUE( -25.442), SIMDE_FLOAT16_VALUE(10.388), + SIMDE_FLOAT16_VALUE( 9.547), SIMDE_FLOAT16_VALUE( -26.224), SIMDE_FLOAT16_VALUE( - 2.331), SIMDE_FLOAT16_VALUE( -14.642) }, + { SIMDE_FLOAT16_VALUE( - 8.097), SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE(19.975), SIMDE_FLOAT16_VALUE(28.291), + SIMDE_FLOAT16_VALUE( 1.823), SIMDE_FLOAT16_VALUE(25.174), SIMDE_FLOAT16_VALUE(23.571), SIMDE_FLOAT16_VALUE( - 7.197) }, { UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } }, }; @@ -789,6 +805,20 @@ test_simde_vcleq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint16x8_t r = simde_vcleq_f16(a, b); + + 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_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -1731,33 +1761,34 @@ test_simde_vcles_f32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcleh_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16_t a; simde_float16_t b; uint16_t r; } test_vec[] = { { SIMDE_FLOAT16_VALUE(17.427), - -SIMDE_FLOAT16_VALUE(29.394), + SIMDE_FLOAT16_VALUE( -29.394), UINT16_C( 0) }, - { -SIMDE_FLOAT16_VALUE(19.443), + { SIMDE_FLOAT16_VALUE( -19.443), SIMDE_FLOAT16_VALUE(14.852), UINT16_MAX }, { SIMDE_FLOAT16_VALUE(19.083), SIMDE_FLOAT16_VALUE(16.002), UINT16_C( 0) }, - { -SIMDE_FLOAT16_VALUE( 2.002), + { SIMDE_FLOAT16_VALUE( - 2.002), SIMDE_FLOAT16_VALUE(28.082), UINT16_MAX }, { SIMDE_FLOAT16_VALUE(11.500), - -SIMDE_FLOAT16_VALUE( 4.960), + SIMDE_FLOAT16_VALUE( - 4.960), UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE( 0.968), SIMDE_FLOAT16_VALUE(14.557), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(25.518), - -SIMDE_FLOAT16_VALUE(16.212), + { SIMDE_FLOAT16_VALUE( -25.518), + SIMDE_FLOAT16_VALUE( -16.212), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(26.015), + { SIMDE_FLOAT16_VALUE( -26.015), SIMDE_FLOAT16_VALUE(16.100), UINT16_MAX }, }; @@ -1768,6 +1799,20 @@ test_simde_vcleh_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16_t b = simde_test_arm_neon_random_f16(-100.0f, 100.0f); + simde_uint16_t r = simde_vcleh_f16(a, b); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/cltz.c b/test/arm/neon/cltz.c index b55cfcaa6..cec9c5166 100644 --- a/test/arm/neon/cltz.c +++ b/test/arm/neon/cltz.c @@ -6,25 +6,26 @@ static int test_simde_vcltz_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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) } }, }; @@ -36,10 +37,23 @@ test_simde_vcltz_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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]; @@ -70,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]; @@ -104,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]; @@ -138,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]; @@ -172,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]; @@ -206,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]; @@ -240,44 +319,57 @@ 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) { - static const struct { +#if 1 + struct { simde_float16 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) }, + { { 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) }, + { { 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( - 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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) }, + { { 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 } }, }; @@ -289,10 +381,23 @@ test_simde_vcltzq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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]; @@ -322,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]; @@ -356,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]; @@ -406,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]; @@ -440,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]; @@ -473,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]; @@ -506,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 @@ -642,21 +824,22 @@ test_simde_vcltzs_f32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcltzh_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16_t a; uint16_t r; } test_vec[] = { - { -SIMDE_FLOAT16_VALUE(10.632), + { SIMDE_FLOAT16_VALUE( -10.632), UINT16_MAX }, { SIMDE_FLOAT16_VALUE(21.069), UINT16_C( 0) }, - { -SIMDE_FLOAT16_VALUE( 6.106), + { SIMDE_FLOAT16_VALUE( - 6.106), UINT16_MAX }, { SIMDE_FLOAT16_VALUE(18.507), UINT16_C( 0) }, - { -SIMDE_FLOAT16_VALUE(15.011), + { SIMDE_FLOAT16_VALUE( -15.011), UINT16_MAX }, - { -SIMDE_FLOAT16_VALUE(25.511), + { SIMDE_FLOAT16_VALUE( -25.511), UINT16_MAX }, { SIMDE_FLOAT16_VALUE(22.656), UINT16_C( 0) }, @@ -670,6 +853,18 @@ test_simde_vcltzh_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 diff --git a/test/arm/neon/cvt.c b/test/arm/neon/cvt.c index 707c4a585..46e8c5ba0 100644 --- a/test/arm/neon/cvt.c +++ b/test/arm/neon/cvt.c @@ -5,6 +5,7 @@ static int test_simde_vcvth_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a; int16_t r; @@ -35,29 +36,42 @@ test_simde_vcvth_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16_t r = simde_vcvth_s16_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a; int32_t r; } test_vec[] = { - { SIMDE_FLOAT16_C( 20.055), + { SIMDE_FLOAT16_VALUE( 20.055), INT32_C( 20) }, - { SIMDE_FLOAT16_C( 9.812), + { SIMDE_FLOAT16_VALUE( 9.812), INT32_C( 9) }, - { -SIMDE_FLOAT16_C( 16.334), + { SIMDE_FLOAT16_VALUE( - 16.334), -INT32_C( 16) }, - { SIMDE_FLOAT16_C( 28.437), + { SIMDE_FLOAT16_VALUE( 28.437), INT32_C( 28) }, - { SIMDE_FLOAT16_C( 27.096), + { SIMDE_FLOAT16_VALUE( 27.096), INT32_C( 27) }, - { -SIMDE_FLOAT16_C( 3.232), + { SIMDE_FLOAT16_VALUE( - 3.232), -INT32_C( 3) }, - { -SIMDE_FLOAT16_C( 16.515), + { SIMDE_FLOAT16_VALUE( - 16.515), -INT32_C( 16) }, - { -SIMDE_FLOAT16_C( 18.901), + { SIMDE_FLOAT16_VALUE( - 18.901), -INT32_C( 18) }, }; @@ -69,29 +83,42 @@ test_simde_vcvth_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int32_t r = simde_vcvth_s32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a; int64_t r; } test_vec[] = { - { -SIMDE_FLOAT16_C( 17.280), + { SIMDE_FLOAT16_VALUE( - 17.280), -INT64_C( 17) }, - { SIMDE_FLOAT16_C( 20.237), + { SIMDE_FLOAT16_VALUE( 20.237), INT64_C( 20) }, - { SIMDE_FLOAT16_C( 27.909), + { SIMDE_FLOAT16_VALUE( 27.909), INT64_C( 27) }, - { SIMDE_FLOAT16_C( 28.646), + { SIMDE_FLOAT16_VALUE( 28.646), INT64_C( 28) }, - { -SIMDE_FLOAT16_C( 17.404), + { SIMDE_FLOAT16_VALUE( - 17.404), -INT64_C( 17) }, - { SIMDE_FLOAT16_C( 19.894), + { SIMDE_FLOAT16_VALUE( 19.894), INT64_C( 19) }, - { -SIMDE_FLOAT16_C( 3.624), + { SIMDE_FLOAT16_VALUE( - 3.624), -INT64_C( 3) }, - { SIMDE_FLOAT16_C( 11.438), + { SIMDE_FLOAT16_VALUE( 11.438), INT64_C( 11) }, }; @@ -103,20 +130,30 @@ test_simde_vcvth_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int64_t r = simde_vcvth_s64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a; uint16_t r; } test_vec[] = { - { SIMDE_FLOAT16_VALUE( 25.639), - UINT16_C( 25) }, + #if !defined(SIMDE_FAST_CONVERSION_RANGE) { SIMDE_FLOAT16_VALUE( -25.081), UINT16_C( 0) }, - { SIMDE_FLOAT16_VALUE( 15.061), - UINT16_C( 15) }, { SIMDE_FLOAT16_VALUE( -21.777), UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE( -26.635), @@ -125,6 +162,11 @@ test_simde_vcvth_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { UINT16_C( 0) }, { SIMDE_FLOAT16_VALUE( -27.803), UINT16_C( 0) }, + #endif + { SIMDE_FLOAT16_VALUE( 25.639), + UINT16_C( 25) }, + { SIMDE_FLOAT16_VALUE( 15.061), + UINT16_C( 15) }, { SIMDE_FLOAT16_VALUE( 3.276), UINT16_C( 3) }, }; @@ -137,29 +179,44 @@ test_simde_vcvth_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcvth_u16_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 } static int test_simde_vcvth_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a; uint32_t r; } test_vec[] = { - { -SIMDE_FLOAT16_C( 26.354), + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + { SIMDE_FLOAT16_VALUE( -26.354), UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 21.502), - UINT32_C( 21) }, - { SIMDE_FLOAT16_C( 26.560), - UINT32_C( 26) }, - { SIMDE_FLOAT16_C( 28.676), - UINT32_C( 28) }, - { -SIMDE_FLOAT16_C( 17.941), + { SIMDE_FLOAT16_VALUE( -17.941), UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 2.133), + { SIMDE_FLOAT16_VALUE( -2.133), UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 0.122), + { SIMDE_FLOAT16_VALUE( -2.356), UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 2.356), + #endif + { SIMDE_FLOAT16_VALUE( 21.502), + UINT32_C( 21) }, + { SIMDE_FLOAT16_VALUE( 26.560), + UINT32_C( 26) }, + { SIMDE_FLOAT16_VALUE( 28.676), + UINT32_C( 28) }, + { SIMDE_FLOAT16_VALUE( 0.122), UINT32_C( 0) }, }; @@ -171,29 +228,44 @@ test_simde_vcvth_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint32_t r = simde_vcvth_u32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a; uint64_t r; } test_vec[] = { - { SIMDE_FLOAT16_C( 11.916), + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + { SIMDE_FLOAT16_VALUE( -16.558), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -9.129), + UINT64_C( 0) }, + #endif + { SIMDE_FLOAT16_VALUE( 11.916), UINT64_C( 11) }, - { SIMDE_FLOAT16_C( 2.866), + { SIMDE_FLOAT16_VALUE( 2.866), UINT64_C( 2) }, - { SIMDE_FLOAT16_C( 21.522), + { SIMDE_FLOAT16_VALUE( 21.522), UINT64_C( 21) }, - { SIMDE_FLOAT16_C( 10.554), + { SIMDE_FLOAT16_VALUE( 10.554), UINT64_C( 10) }, - { SIMDE_FLOAT16_C( 4.087), + { SIMDE_FLOAT16_VALUE( 4.087), UINT64_C( 4) }, - { -SIMDE_FLOAT16_C( 16.558), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 9.129), - UINT64_C( 0) }, - { SIMDE_FLOAT16_C( 19.017), + { SIMDE_FLOAT16_VALUE( 19.017), UINT64_C( 19) }, }; @@ -205,30 +277,43 @@ test_simde_vcvth_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint64_t r = simde_vcvth_u64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_f16_s32 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { int32_t a; simde_float16 r; } test_vec[] = { - { INT32_C( 2144364248), - SIMDE_FLOAT16_VALUE( 2144364288.000) }, - { -INT32_C( 2119091471), - -SIMDE_FLOAT16_VALUE( 2119091456.000) }, - { -INT32_C( 1419068226), - -SIMDE_FLOAT16_VALUE( 1419068288.000) }, - { -INT32_C( 1827425490), - -SIMDE_FLOAT16_VALUE( 1827425536.000) }, - { INT32_C( 202626693), - SIMDE_FLOAT16_VALUE( 202626688.000) }, - { -INT32_C( 1902307709), - -SIMDE_FLOAT16_VALUE( 1902307712.000) }, - { -INT32_C( 1421752815), - -SIMDE_FLOAT16_VALUE( 1421752832.000) }, - { -INT32_C( 711747071), - -SIMDE_FLOAT16_VALUE( 711747072.000) }, + { -INT32_C( 1589103087), + SIMDE_NINFINITYHF }, + { -INT32_C( 1592118057), + SIMDE_NINFINITYHF }, + { INT32_C( 895663592), + SIMDE_INFINITYHF }, + { -INT32_C( 320293893), + SIMDE_NINFINITYHF }, + { -INT32_C( 2108080077), + SIMDE_NINFINITYHF }, + { -INT32_C( 1415311873), + SIMDE_NINFINITYHF }, + { INT32_C( 1265253428), + SIMDE_INFINITYHF }, + { INT32_C( 587118609), + SIMDE_INFINITYHF }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -238,30 +323,42 @@ test_simde_vcvth_f16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + int32_t a = simde_test_codegen_random_i32(); + simde_float16 r = simde_vcvth_f16_s32(a); + + simde_test_codegen_write_i32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_f16_s64 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { int64_t a; simde_float16 r; } test_vec[] = { - { -INT64_C( 6040929646674403388), - -SIMDE_FLOAT16_VALUE(6040929646674403328.000) }, - { INT64_C( 6944606257912988647), - SIMDE_FLOAT16_VALUE(6944606257912988672.000) }, - { -INT64_C( 7770353623137666197), - -SIMDE_FLOAT16_VALUE(7770353623137666048.000) }, - { -INT64_C( 1458514542442871984), - -SIMDE_FLOAT16_VALUE(1458514542442872064.000) }, - { -INT64_C( 2369428782684451634), - -SIMDE_FLOAT16_VALUE(2369428782684451840.000) }, - { INT64_C( 6869245354813213590), - SIMDE_FLOAT16_VALUE(6869245354813213696.000) }, - { INT64_C( 8881998402156711387), - SIMDE_FLOAT16_VALUE(8881998402156710912.000) }, - { INT64_C( 4001094630001048357), - SIMDE_FLOAT16_VALUE(4001094630001048576.000) }, + { INT64_C( 7162937251746498287), + SIMDE_INFINITYHF }, + { -INT64_C( 5728155978464441958), + SIMDE_NINFINITYHF }, + { INT64_C( 2047685275721849536), + SIMDE_INFINITYHF }, + { INT64_C( 8954675090954900754), + SIMDE_INFINITYHF }, + { INT64_C( 9190064415792367788), + SIMDE_INFINITYHF }, + { INT64_C( 7034787140702839156), + SIMDE_INFINITYHF }, + { -INT64_C( 4867111737836383376), + SIMDE_NINFINITYHF }, + { -INT64_C( 1339216974095328416), + SIMDE_NINFINITYHF }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -271,30 +368,42 @@ test_simde_vcvth_f16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + int64_t a = simde_test_codegen_random_i64(); + simde_float16 r = simde_vcvth_f16_s64(a); + + simde_test_codegen_write_i64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_f16_u32 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { uint32_t a; simde_float16 r; } test_vec[] = { - { UINT32_C( 624733065), - SIMDE_FLOAT16_VALUE(624733056.000) }, - { UINT32_C( 509083126), - SIMDE_FLOAT16_VALUE(509083136.000) }, - { UINT32_C( 1193387232), - SIMDE_FLOAT16_VALUE(1193387264.000) }, - { UINT32_C( 963136790), - SIMDE_FLOAT16_VALUE(963136768.000) }, - { UINT32_C( 1700964320), - SIMDE_FLOAT16_VALUE(1700964352.000) }, - { UINT32_C( 1457011051), - SIMDE_FLOAT16_VALUE(1457011072.000) }, - { UINT32_C( 2414512627), - SIMDE_FLOAT16_VALUE(2414512640.000) }, - { UINT32_C( 1341144647), - SIMDE_FLOAT16_VALUE(1341144704.000) }, + { UINT32_C( 320056621), + SIMDE_INFINITYHF }, + { UINT32_C(3415383383), + SIMDE_INFINITYHF }, + { UINT32_C(1622976446), + SIMDE_INFINITYHF }, + { UINT32_C(2898353212), + SIMDE_INFINITYHF }, + { UINT32_C(3640975919), + SIMDE_INFINITYHF }, + { UINT32_C(3449124973), + SIMDE_INFINITYHF }, + { UINT32_C(2512024660), + SIMDE_INFINITYHF }, + { UINT32_C(3347195033), + SIMDE_INFINITYHF }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -304,30 +413,42 @@ test_simde_vcvth_f16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + uint32_t a = simde_test_codegen_random_u32(); + simde_float16 r = simde_vcvth_f16_u32(a); + + simde_test_codegen_write_u32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_f16_u64 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { uint64_t a; simde_float16 r; } test_vec[] = { - { UINT64_C( 388858897063140456), - SIMDE_FLOAT16_VALUE(388858897063140480.000) }, - { UINT64_C( 3732621534408788585), - SIMDE_FLOAT16_VALUE(3732621534408788480.000) }, - { UINT64_C(10171557527326887018), - SIMDE_FLOAT16_VALUE(10171557527326887936.000) }, - { UINT64_C(14711010367355020392), - SIMDE_FLOAT16_VALUE(14711010367355021312.000) }, - { UINT64_C( 2065763462066769618), - SIMDE_FLOAT16_VALUE(2065763462066769664.000) }, - { UINT64_C(14469729159319672551), - SIMDE_FLOAT16_VALUE(14469729159319672832.000) }, - { UINT64_C( 8314625374466747058), - SIMDE_FLOAT16_VALUE(8314625374466747392.000) }, - { UINT64_C(12286696470371612893), - SIMDE_FLOAT16_VALUE(12286696470371612672.000) }, + { UINT64_C(17434679020164388305), + SIMDE_INFINITYHF }, + { UINT64_C( 4394407184798167059), + SIMDE_INFINITYHF }, + { UINT64_C(14784942065000448500), + SIMDE_INFINITYHF }, + { UINT64_C(16104841540079380767), + SIMDE_INFINITYHF }, + { UINT64_C(15680967407793887610), + SIMDE_INFINITYHF }, + { UINT64_C(17723395172423298733), + SIMDE_INFINITYHF }, + { UINT64_C(15379376796937423911), + SIMDE_INFINITYHF }, + { UINT64_C( 3412336215793258606), + SIMDE_INFINITYHF }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -337,6 +458,17 @@ test_simde_vcvth_f16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + uint64_t a = simde_test_codegen_random_u64(); + simde_float16 r = simde_vcvth_f16_u64(a); + + simde_test_codegen_write_u64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -899,7 +1031,7 @@ test_simde_vcvtq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { { -INT16_C( 943), INT16_C( 423), -INT16_C( 567), -INT16_C( 790), -INT16_C( 972), INT16_C( 286), -INT16_C( 874), INT16_C( 903) } }, { { SIMDE_FLOAT16_VALUE( -818.00), SIMDE_FLOAT16_VALUE( 261.25), SIMDE_FLOAT16_VALUE( 630.50), SIMDE_FLOAT16_VALUE( 880.50), SIMDE_FLOAT16_VALUE( 100.44), SIMDE_FLOAT16_VALUE( 66.19), SIMDE_FLOAT16_VALUE( -111.75), SIMDE_FLOAT16_VALUE( -173.88) }, - { -INT16_C( 818), INT16_C( 261), INT16_C( 630), INT16_C( 880), INT16_C( 100), INT16_C( 66), -INT16_C( 111), -INT16_C( 173) } } + { -INT16_C( 818), INT16_C( 261), INT16_C( 630), INT16_C( 880), INT16_C( 100), INT16_C( 66), -INT16_C( 111), -INT16_C( 173) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -1774,7 +1906,7 @@ test_simde_vcvt_f16_f32 (SIMDE_MUNIT_TEST_ARGS) { { { SIMDE_FLOAT32_C( -829.48), SIMDE_FLOAT32_C( -168.37), SIMDE_FLOAT32_C( -205.50), SIMDE_FLOAT32_C( -615.00) }, { SIMDE_FLOAT16_VALUE( -829.50), SIMDE_FLOAT16_VALUE( -168.38), SIMDE_FLOAT16_VALUE( -205.50), SIMDE_FLOAT16_VALUE( -615.00) } }, { { SIMDE_FLOAT32_C( -491.32), SIMDE_FLOAT32_C( 717.47), SIMDE_FLOAT32_C( -341.53), SIMDE_FLOAT32_C( -237.33) }, - { SIMDE_FLOAT16_VALUE( -491.25), SIMDE_FLOAT16_VALUE( 717.50), SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -237.38) } } + { SIMDE_FLOAT16_VALUE( -491.25), SIMDE_FLOAT16_VALUE( 717.50), SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -237.38) } } }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -1890,25 +2022,26 @@ test_simde_vcvt_f64_f32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vcvtah_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int16_t r; } test_vec[] = { - { -SIMDE_FLOAT16_C( 2.161), + { SIMDE_FLOAT16_VALUE( - 2.161), -INT16_C( 2) }, - { SIMDE_FLOAT16_C( 6.927), + { SIMDE_FLOAT16_VALUE( 6.927), INT16_C( 7) }, - { -SIMDE_FLOAT16_C( 22.166), + { SIMDE_FLOAT16_VALUE( - 22.166), -INT16_C( 22) }, - { SIMDE_FLOAT16_C( 24.050), + { SIMDE_FLOAT16_VALUE( 24.050), INT16_C( 24) }, - { SIMDE_FLOAT16_C( 3.665), + { SIMDE_FLOAT16_VALUE( 3.665), INT16_C( 4) }, - { -SIMDE_FLOAT16_C( 16.715), + { SIMDE_FLOAT16_VALUE( - 16.715), -INT16_C( 17) }, - { SIMDE_FLOAT16_C( 0.250), + { SIMDE_FLOAT16_VALUE( 0.250), INT16_C( 0) }, - { -SIMDE_FLOAT16_C( 3.303), + { SIMDE_FLOAT16_VALUE( - 3.303), -INT16_C( 3) }, }; @@ -1920,29 +2053,42 @@ test_simde_vcvtah_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16_t r = simde_vcvtah_s16_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtah_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint16_t r; } test_vec[] = { - { SIMDE_FLOAT16_C( 19.373), + { SIMDE_FLOAT16_VALUE( 19.373), UINT16_C( 19) }, - { SIMDE_FLOAT16_C( 1.450), + { SIMDE_FLOAT16_VALUE( 1.450), UINT16_C( 1) }, - { -SIMDE_FLOAT16_C( 23.689), + { SIMDE_FLOAT16_VALUE( - 23.689), UINT16_C( 0) }, - { -SIMDE_FLOAT16_C( 10.939), + { SIMDE_FLOAT16_VALUE( - 10.939), UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 13.179), + { SIMDE_FLOAT16_VALUE( 13.179), UINT16_C( 13) }, - { SIMDE_FLOAT16_C( 11.179), + { SIMDE_FLOAT16_VALUE( 11.179), UINT16_C( 11) }, - { -SIMDE_FLOAT16_C( 22.949), + { SIMDE_FLOAT16_VALUE( - 22.949), UINT16_C( 0) }, - { -SIMDE_FLOAT16_C( 10.102), + { SIMDE_FLOAT16_VALUE( - 10.102), UINT16_C( 0) }, }; @@ -1954,29 +2100,42 @@ test_simde_vcvtah_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcvtah_u16_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 } static int test_simde_vcvtah_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int32_t r; } test_vec[] = { - { SIMDE_FLOAT16_C( 18.628), + { SIMDE_FLOAT16_VALUE( 18.628), INT32_C( 19) }, - { -SIMDE_FLOAT16_C( 22.354), + { SIMDE_FLOAT16_VALUE( - 22.354), -INT32_C( 22) }, - { -SIMDE_FLOAT16_C( 24.547), + { SIMDE_FLOAT16_VALUE( - 24.547), -INT32_C( 25) }, - { SIMDE_FLOAT16_C( 1.754), + { SIMDE_FLOAT16_VALUE( 1.754), INT32_C( 2) }, - { SIMDE_FLOAT16_C( 17.010), + { SIMDE_FLOAT16_VALUE( 17.010), INT32_C( 17) }, - { SIMDE_FLOAT16_C( 10.181), + { SIMDE_FLOAT16_VALUE( 10.181), INT32_C( 10) }, - { SIMDE_FLOAT16_C( 4.337), + { SIMDE_FLOAT16_VALUE( 4.337), INT32_C( 4) }, - { SIMDE_FLOAT16_C( 15.753), + { SIMDE_FLOAT16_VALUE( 15.753), INT32_C( 16) }, }; @@ -1988,29 +2147,42 @@ test_simde_vcvtah_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int32_t r = simde_vcvtah_s32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtah_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint32_t r; } test_vec[] = { - { -SIMDE_FLOAT16_C( 24.202), + { SIMDE_FLOAT16_VALUE( - 24.202), UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 14.156), + { SIMDE_FLOAT16_VALUE( - 14.156), UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 8.537), + { SIMDE_FLOAT16_VALUE( 8.537), UINT32_C( 9) }, - { -SIMDE_FLOAT16_C( 2.097), + { SIMDE_FLOAT16_VALUE( - 2.097), UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 25.260), + { SIMDE_FLOAT16_VALUE( 25.260), UINT32_C( 25) }, - { -SIMDE_FLOAT16_C( 26.881), + { SIMDE_FLOAT16_VALUE( - 26.881), UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 29.793), + { SIMDE_FLOAT16_VALUE( 29.793), UINT32_C( 30) }, - { -SIMDE_FLOAT16_C( 19.083), + { SIMDE_FLOAT16_VALUE( - 19.083), UINT32_C( 0) }, }; @@ -2022,29 +2194,42 @@ test_simde_vcvtah_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint32_t r = simde_vcvtah_u32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtah_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int64_t r; } test_vec[] = { - { SIMDE_FLOAT16_C( 12.535), + { SIMDE_FLOAT16_VALUE( 12.535), INT64_C( 13) }, - { -SIMDE_FLOAT16_C( 6.257), + { SIMDE_FLOAT16_VALUE( - 6.257), -INT64_C( 6) }, - { SIMDE_FLOAT16_C( 10.120), + { SIMDE_FLOAT16_VALUE( 10.120), INT64_C( 10) }, - { SIMDE_FLOAT16_C( 10.746), + { SIMDE_FLOAT16_VALUE( 10.746), INT64_C( 11) }, - { SIMDE_FLOAT16_C( 25.689), + { SIMDE_FLOAT16_VALUE( 25.689), INT64_C( 26) }, - { SIMDE_FLOAT16_C( 7.095), + { SIMDE_FLOAT16_VALUE( 7.095), INT64_C( 7) }, - { SIMDE_FLOAT16_C( 9.180), + { SIMDE_FLOAT16_VALUE( 9.180), INT64_C( 9) }, - { -SIMDE_FLOAT16_C( 10.937), + { SIMDE_FLOAT16_VALUE( - 10.937), -INT64_C( 11) }, }; @@ -2056,29 +2241,42 @@ test_simde_vcvtah_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int64_t r = simde_vcvtah_s64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtah_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint64_t r; } test_vec[] = { - { -SIMDE_FLOAT16_C( 5.070), + { SIMDE_FLOAT16_VALUE( - 5.070), UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 13.815), + { SIMDE_FLOAT16_VALUE( - 13.815), UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 20.638), + { SIMDE_FLOAT16_VALUE( - 20.638), UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 24.439), + { SIMDE_FLOAT16_VALUE( - 24.439), UINT64_C( 0) }, - { SIMDE_FLOAT16_C( 4.300), + { SIMDE_FLOAT16_VALUE( 4.300), UINT64_C( 4) }, - { -SIMDE_FLOAT16_C( 4.618), + { SIMDE_FLOAT16_VALUE( - 4.618), UINT64_C( 0) }, - { SIMDE_FLOAT16_C( 11.343), + { SIMDE_FLOAT16_VALUE( 11.343), UINT64_C( 11) }, - { SIMDE_FLOAT16_C( 26.432), + { SIMDE_FLOAT16_VALUE( 26.432), UINT64_C( 26) }, }; @@ -2090,10 +2288,23 @@ test_simde_vcvtah_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint64_t r = simde_vcvtah_u64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtas_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a; int32_t r; @@ -2136,10 +2347,23 @@ test_simde_vcvtas_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + simde_int32_t r = simde_vcvtas_s32_f32(a); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtas_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a; uint32_t r; @@ -2178,38 +2402,52 @@ test_simde_vcvtas_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + simde_uint32_t r = simde_vcvtas_u32_f32(a); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtad_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; int64_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - { SIMDE_MATH_NANF, + { SIMDE_MATH_NAN, INT64_C( 0) }, { HEDLEY_STATIC_CAST(simde_float64, INT64_MAX) + SIMDE_FLOAT64_C(1000.0), INT64_MAX }, { HEDLEY_STATIC_CAST(simde_float64, INT64_MIN) - SIMDE_FLOAT64_C(1000.0), INT64_MIN }, #endif - { -SIMDE_FLOAT64_C( 904585.750), - -INT64_C( 904586) }, - { -SIMDE_FLOAT64_C( 418022.688), - -INT64_C( 418023) }, - { -SIMDE_FLOAT64_C( 610896.375), - -INT64_C( 610896) }, - { SIMDE_FLOAT64_C( 740916.375), - INT64_C( 740916) }, - { SIMDE_FLOAT64_C( 915029.750), - INT64_C( 915030) }, - { -SIMDE_FLOAT64_C( 348355.938), - -INT64_C( 348356) }, - { -SIMDE_FLOAT64_C( 759150.125), - -INT64_C( 759150) }, - { -SIMDE_FLOAT64_C( 368302.938), - -INT64_C( 368303) }, + { SIMDE_FLOAT64_C( -19.13), + -INT64_C( 19) }, + { SIMDE_FLOAT64_C( -897.18), + -INT64_C( 897) }, + { SIMDE_FLOAT64_C( -126.06), + -INT64_C( 126) }, + { SIMDE_FLOAT64_C( -662.96), + -INT64_C( 663) }, + { SIMDE_FLOAT64_C( -999.91), + -INT64_C( 1000) }, + { SIMDE_FLOAT64_C( -845.48), + -INT64_C( 845) }, + { SIMDE_FLOAT64_C( -431.61), + -INT64_C( 432) }, + { SIMDE_FLOAT64_C( -165.42), + -INT64_C( 165) }, + }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -2220,38 +2458,48 @@ test_simde_vcvtad_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64 a = simde_test_codegen_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + int64_t r = simde_vcvtad_s64_f64(a); + + simde_test_codegen_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtad_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; uint64_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - { SIMDE_MATH_NANF, + { SIMDE_MATH_NAN, UINT64_C( 0) }, { HEDLEY_STATIC_CAST(simde_float64, UINT64_MAX) + SIMDE_FLOAT64_C(1000.0), UINT64_MAX }, - { SIMDE_MATH_INFINITYF, - UINT64_MAX }, + { SIMDE_FLOAT64_C( -463.65), + UINT64_C( 0) }, + { SIMDE_FLOAT64_C( -607.03), + UINT64_C( 0) }, #endif - { SIMDE_FLOAT64_C( 104000.750), - UINT64_C( 104001) }, - { -SIMDE_FLOAT64_C( 316483.562), - UINT64_C( 0) }, - { SIMDE_FLOAT64_C( 799263.250), - UINT64_C( 799263) }, - { SIMDE_FLOAT64_C( 94927.250), - UINT64_C( 94927) }, - { -SIMDE_FLOAT64_C( 790148.625), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 202104.062), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 239795.125), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 236979.750), - UINT64_C( 0) }, + { SIMDE_FLOAT64_C( 522.61), + UINT64_C( 523) }, + { SIMDE_FLOAT64_C( 960.37), + UINT64_C( 960) }, + { SIMDE_FLOAT64_C( 66.87), + UINT64_C( 67) }, + { SIMDE_FLOAT64_C( 176.41), + UINT64_C( 176) }, + { SIMDE_FLOAT64_C( 0.33), + UINT64_C( 0) }, + { SIMDE_FLOAT64_C( 450.07), + UINT64_C( 450) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -2262,29 +2510,41 @@ test_simde_vcvtad_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64 a = simde_test_codegen_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + uint64_t r = simde_vcvtad_u64_f64(a); + + simde_test_codegen_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvta_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; int16_t r[4]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 5.484), -SIMDE_FLOAT16_C( 6.295), -SIMDE_FLOAT16_C( 5.132), SIMDE_FLOAT16_C( 12.566) }, + { { SIMDE_FLOAT16_VALUE( 5.484), SIMDE_FLOAT16_VALUE( - 6.295), SIMDE_FLOAT16_VALUE( - 5.132), SIMDE_FLOAT16_VALUE( 12.566) }, { INT16_C( 5), -INT16_C( 6), -INT16_C( 5), INT16_C( 13) } }, - { { -SIMDE_FLOAT16_C( 25.918), SIMDE_FLOAT16_C( 12.330), -SIMDE_FLOAT16_C( 10.464), SIMDE_FLOAT16_C( 9.083) }, + { { SIMDE_FLOAT16_VALUE( - 25.918), SIMDE_FLOAT16_VALUE( 12.330), SIMDE_FLOAT16_VALUE( - 10.464), SIMDE_FLOAT16_VALUE( 9.083) }, { -INT16_C( 26), INT16_C( 12), -INT16_C( 10), INT16_C( 9) } }, - { { -SIMDE_FLOAT16_C( 1.292), -SIMDE_FLOAT16_C( 11.738), SIMDE_FLOAT16_C( 6.931), SIMDE_FLOAT16_C( 29.815) }, + { { SIMDE_FLOAT16_VALUE( - 1.292), SIMDE_FLOAT16_VALUE( - 11.738), SIMDE_FLOAT16_VALUE( 6.931), SIMDE_FLOAT16_VALUE( 29.815) }, { -INT16_C( 1), -INT16_C( 12), INT16_C( 7), INT16_C( 30) } }, - { { -SIMDE_FLOAT16_C( 6.023), -SIMDE_FLOAT16_C( 16.490), SIMDE_FLOAT16_C( 13.782), SIMDE_FLOAT16_C( 3.109) }, + { { SIMDE_FLOAT16_VALUE( - 6.023), SIMDE_FLOAT16_VALUE( - 16.490), SIMDE_FLOAT16_VALUE( 13.782), SIMDE_FLOAT16_VALUE( 3.109) }, { -INT16_C( 6), -INT16_C( 16), INT16_C( 14), INT16_C( 3) } }, - { { SIMDE_FLOAT16_C( 21.674), -SIMDE_FLOAT16_C( 27.968), -SIMDE_FLOAT16_C( 13.322), -SIMDE_FLOAT16_C( 0.172) }, + { { SIMDE_FLOAT16_VALUE( 21.674), SIMDE_FLOAT16_VALUE( - 27.968), SIMDE_FLOAT16_VALUE( - 13.322), SIMDE_FLOAT16_VALUE( - 0.172) }, { INT16_C( 22), -INT16_C( 28), -INT16_C( 13), INT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 10.360), SIMDE_FLOAT16_C( 15.085), SIMDE_FLOAT16_C( 26.131), SIMDE_FLOAT16_C( 18.421) }, + { { SIMDE_FLOAT16_VALUE( - 10.360), SIMDE_FLOAT16_VALUE( 15.085), SIMDE_FLOAT16_VALUE( 26.131), SIMDE_FLOAT16_VALUE( 18.421) }, { -INT16_C( 10), INT16_C( 15), INT16_C( 26), INT16_C( 18) } }, - { { -SIMDE_FLOAT16_C( 20.906), SIMDE_FLOAT16_C( 12.372), SIMDE_FLOAT16_C( 11.952), SIMDE_FLOAT16_C( 14.232) }, + { { SIMDE_FLOAT16_VALUE( - 20.906), SIMDE_FLOAT16_VALUE( 12.372), SIMDE_FLOAT16_VALUE( 11.952), SIMDE_FLOAT16_VALUE( 14.232) }, { -INT16_C( 21), INT16_C( 12), INT16_C( 12), INT16_C( 14) } }, - { { SIMDE_FLOAT16_C( 4.188), SIMDE_FLOAT16_C( 3.209), -SIMDE_FLOAT16_C( 3.902), -SIMDE_FLOAT16_C( 4.983) }, + { { SIMDE_FLOAT16_VALUE( 4.188), SIMDE_FLOAT16_VALUE( 3.209), SIMDE_FLOAT16_VALUE( - 3.902), SIMDE_FLOAT16_VALUE( - 4.983) }, { INT16_C( 4), INT16_C( 3), -INT16_C( 4), -INT16_C( 5) } }, }; @@ -2296,29 +2556,42 @@ test_simde_vcvta_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x4_t r = simde_vcvta_s16_f16(a); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvta_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; uint16_t r[4]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 9.490), SIMDE_FLOAT16_C( 6.808), -SIMDE_FLOAT16_C( 4.808), SIMDE_FLOAT16_C( 14.224) }, + { { SIMDE_FLOAT16_VALUE( 9.490), SIMDE_FLOAT16_VALUE( 6.808), SIMDE_FLOAT16_VALUE( - 4.808), SIMDE_FLOAT16_VALUE( 14.224) }, { UINT16_C( 9), UINT16_C( 7), UINT16_C( 0), UINT16_C( 14) } }, - { { -SIMDE_FLOAT16_C( 22.824), SIMDE_FLOAT16_C( 1.226), SIMDE_FLOAT16_C( 2.786), SIMDE_FLOAT16_C( 20.997) }, + { { SIMDE_FLOAT16_VALUE( - 22.824), SIMDE_FLOAT16_VALUE( 1.226), SIMDE_FLOAT16_VALUE( 2.786), SIMDE_FLOAT16_VALUE( 20.997) }, { UINT16_C( 0), UINT16_C( 1), UINT16_C( 3), UINT16_C( 21) } }, - { { SIMDE_FLOAT16_C( 17.457), SIMDE_FLOAT16_C( 12.675), -SIMDE_FLOAT16_C( 8.607), -SIMDE_FLOAT16_C( 11.939) }, + { { SIMDE_FLOAT16_VALUE( 17.457), SIMDE_FLOAT16_VALUE( 12.675), SIMDE_FLOAT16_VALUE( - 8.607), SIMDE_FLOAT16_VALUE( - 11.939) }, { UINT16_C( 17), UINT16_C( 13), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 2.696), -SIMDE_FLOAT16_C( 29.798), -SIMDE_FLOAT16_C( 25.928), -SIMDE_FLOAT16_C( 5.065) }, + { { SIMDE_FLOAT16_VALUE( - 2.696), SIMDE_FLOAT16_VALUE( - 29.798), SIMDE_FLOAT16_VALUE( - 25.928), SIMDE_FLOAT16_VALUE( - 5.065) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 14.023), -SIMDE_FLOAT16_C( 12.852), SIMDE_FLOAT16_C( 12.392), SIMDE_FLOAT16_C( 28.513) }, + { { SIMDE_FLOAT16_VALUE( 14.023), SIMDE_FLOAT16_VALUE( - 12.852), SIMDE_FLOAT16_VALUE( 12.392), SIMDE_FLOAT16_VALUE( 28.513) }, { UINT16_C( 14), UINT16_C( 0), UINT16_C( 12), UINT16_C( 29) } }, - { { SIMDE_FLOAT16_C( 1.868), -SIMDE_FLOAT16_C( 28.567), -SIMDE_FLOAT16_C( 2.868), SIMDE_FLOAT16_C( 6.436) }, + { { SIMDE_FLOAT16_VALUE( 1.868), SIMDE_FLOAT16_VALUE( - 28.567), SIMDE_FLOAT16_VALUE( - 2.868), SIMDE_FLOAT16_VALUE( 6.436) }, { UINT16_C( 2), UINT16_C( 0), UINT16_C( 0), UINT16_C( 6) } }, - { { SIMDE_FLOAT16_C( 2.577), SIMDE_FLOAT16_C( 23.397), SIMDE_FLOAT16_C( 25.997), SIMDE_FLOAT16_C( 6.382) }, + { { SIMDE_FLOAT16_VALUE( 2.577), SIMDE_FLOAT16_VALUE( 23.397), SIMDE_FLOAT16_VALUE( 25.997), SIMDE_FLOAT16_VALUE( 6.382) }, { UINT16_C( 3), UINT16_C( 23), UINT16_C( 26), UINT16_C( 6) } }, - { { SIMDE_FLOAT16_C( 8.334), SIMDE_FLOAT16_C( 7.958), SIMDE_FLOAT16_C( 29.600), -SIMDE_FLOAT16_C( 7.578) }, + { { SIMDE_FLOAT16_VALUE( 8.334), SIMDE_FLOAT16_VALUE( 7.958), SIMDE_FLOAT16_VALUE( 29.600), SIMDE_FLOAT16_VALUE( - 7.578) }, { UINT16_C( 8), UINT16_C( 8), UINT16_C( 30), UINT16_C( 0) } }, }; @@ -2330,10 +2603,23 @@ test_simde_vcvta_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcvta_u16_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_vcvta_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[2]; int32_t r[2]; @@ -2371,10 +2657,23 @@ test_simde_vcvta_s32_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_int32x2_t r = simde_vcvta_s32_f32(a); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvta_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[2]; uint32_t r[2]; @@ -2412,10 +2711,23 @@ test_simde_vcvta_u32_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_vcvta_u32_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_vcvta_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[1]; int64_t r[1]; @@ -2446,18 +2758,30 @@ test_simde_vcvta_s64_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_int64x1_t r = simde_vcvta_s64_f64(a); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvta_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[1]; uint64_t r[1]; } test_vec[] = { + #if !defined(SIMDE_FAST_CONVERSION_RANGE) { { -SIMDE_FLOAT64_C(866879.562) }, { UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C(869455.375) }, - { UINT64_C( 869455) } }, { { -SIMDE_FLOAT64_C(144314.438) }, { UINT64_C( 0) } }, { { -SIMDE_FLOAT64_C(515307.688) }, @@ -2466,6 +2790,9 @@ test_simde_vcvta_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { { UINT64_C( 0) } }, { { -SIMDE_FLOAT64_C(579680.125) }, { UINT64_C( 0) } }, + #endif + { { SIMDE_FLOAT64_C(869455.375) }, + { UINT64_C( 869455) } }, { { SIMDE_FLOAT64_C(372019.875) }, { UINT64_C( 372020) } }, { { SIMDE_FLOAT64_C(487323.250) }, @@ -2480,44 +2807,57 @@ test_simde_vcvta_u64_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_vcvta_u64_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_vcvtaq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; int16_t r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 26.678), SIMDE_FLOAT16_C( 11.961), -SIMDE_FLOAT16_C( 5.477), SIMDE_FLOAT16_C( 2.192), - -SIMDE_FLOAT16_C( 23.653), SIMDE_FLOAT16_C( 24.091), SIMDE_FLOAT16_C( 16.211), SIMDE_FLOAT16_C( 13.136) }, + { { SIMDE_FLOAT16_VALUE( 26.678), SIMDE_FLOAT16_VALUE( 11.961), SIMDE_FLOAT16_VALUE( - 5.477), SIMDE_FLOAT16_VALUE( 2.192), + SIMDE_FLOAT16_VALUE( - 23.653), SIMDE_FLOAT16_VALUE( 24.091), SIMDE_FLOAT16_VALUE( 16.211), SIMDE_FLOAT16_VALUE( 13.136) }, { INT16_C( 27), INT16_C( 12), -INT16_C( 5), INT16_C( 2), -INT16_C( 24), INT16_C( 24), INT16_C( 16), INT16_C( 13) } }, - { { -SIMDE_FLOAT16_C( 10.106), SIMDE_FLOAT16_C( 2.807), SIMDE_FLOAT16_C( 0.036), SIMDE_FLOAT16_C( 16.987), - -SIMDE_FLOAT16_C( 8.282), -SIMDE_FLOAT16_C( 0.626), SIMDE_FLOAT16_C( 5.032), -SIMDE_FLOAT16_C( 0.023) }, + { { SIMDE_FLOAT16_VALUE( - 10.106), SIMDE_FLOAT16_VALUE( 2.807), SIMDE_FLOAT16_VALUE( 0.036), SIMDE_FLOAT16_VALUE( 16.987), + SIMDE_FLOAT16_VALUE( - 8.282), SIMDE_FLOAT16_VALUE( - 0.626), SIMDE_FLOAT16_VALUE( 5.032), SIMDE_FLOAT16_VALUE( - 0.023) }, { -INT16_C( 10), INT16_C( 3), INT16_C( 0), INT16_C( 17), -INT16_C( 8), -INT16_C( 1), INT16_C( 5), INT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 0.850), SIMDE_FLOAT16_C( 28.954), -SIMDE_FLOAT16_C( 11.152), -SIMDE_FLOAT16_C( 1.218), - SIMDE_FLOAT16_C( 4.105), SIMDE_FLOAT16_C( 26.947), SIMDE_FLOAT16_C( 29.786), -SIMDE_FLOAT16_C( 20.433) }, + { { SIMDE_FLOAT16_VALUE( 0.850), SIMDE_FLOAT16_VALUE( 28.954), SIMDE_FLOAT16_VALUE( - 11.152), SIMDE_FLOAT16_VALUE( - 1.218), + SIMDE_FLOAT16_VALUE( 4.105), SIMDE_FLOAT16_VALUE( 26.947), SIMDE_FLOAT16_VALUE( 29.786), SIMDE_FLOAT16_VALUE( - 20.433) }, { INT16_C( 1), INT16_C( 29), -INT16_C( 11), -INT16_C( 1), INT16_C( 4), INT16_C( 27), INT16_C( 30), -INT16_C( 20) } }, - { { SIMDE_FLOAT16_C( 9.218), SIMDE_FLOAT16_C( 27.413), SIMDE_FLOAT16_C( 29.857), SIMDE_FLOAT16_C( 25.421), - SIMDE_FLOAT16_C( 20.930), SIMDE_FLOAT16_C( 4.858), SIMDE_FLOAT16_C( 1.136), -SIMDE_FLOAT16_C( 9.511) }, + { { SIMDE_FLOAT16_VALUE( 9.218), SIMDE_FLOAT16_VALUE( 27.413), SIMDE_FLOAT16_VALUE( 29.857), SIMDE_FLOAT16_VALUE( 25.421), + SIMDE_FLOAT16_VALUE( 20.930), SIMDE_FLOAT16_VALUE( 4.858), SIMDE_FLOAT16_VALUE( 1.136), SIMDE_FLOAT16_VALUE( - 9.511) }, { INT16_C( 9), INT16_C( 27), INT16_C( 30), INT16_C( 25), INT16_C( 21), INT16_C( 5), INT16_C( 1), -INT16_C( 10) } }, - { { -SIMDE_FLOAT16_C( 5.330), -SIMDE_FLOAT16_C( 28.994), SIMDE_FLOAT16_C( 6.794), SIMDE_FLOAT16_C( 12.383), - -SIMDE_FLOAT16_C( 27.061), -SIMDE_FLOAT16_C( 14.157), SIMDE_FLOAT16_C( 19.177), SIMDE_FLOAT16_C( 24.741) }, + { { SIMDE_FLOAT16_VALUE( - 5.330), SIMDE_FLOAT16_VALUE( - 28.994), SIMDE_FLOAT16_VALUE( 6.794), SIMDE_FLOAT16_VALUE( 12.383), + SIMDE_FLOAT16_VALUE( - 27.061), SIMDE_FLOAT16_VALUE( - 14.157), SIMDE_FLOAT16_VALUE( 19.177), SIMDE_FLOAT16_VALUE( 24.741) }, { -INT16_C( 5), -INT16_C( 29), INT16_C( 7), INT16_C( 12), -INT16_C( 27), -INT16_C( 14), INT16_C( 19), INT16_C( 25) } }, - { { -SIMDE_FLOAT16_C( 10.145), SIMDE_FLOAT16_C( 14.145), SIMDE_FLOAT16_C( 10.567), -SIMDE_FLOAT16_C( 18.585), - -SIMDE_FLOAT16_C( 24.925), -SIMDE_FLOAT16_C( 27.646), SIMDE_FLOAT16_C( 26.222), SIMDE_FLOAT16_C( 4.194) }, + { { SIMDE_FLOAT16_VALUE( - 10.145), SIMDE_FLOAT16_VALUE( 14.145), SIMDE_FLOAT16_VALUE( 10.567), SIMDE_FLOAT16_VALUE( - 18.585), + SIMDE_FLOAT16_VALUE( - 24.925), SIMDE_FLOAT16_VALUE( - 27.646), SIMDE_FLOAT16_VALUE( 26.222), SIMDE_FLOAT16_VALUE( 4.194) }, { -INT16_C( 10), INT16_C( 14), INT16_C( 11), -INT16_C( 19), -INT16_C( 25), -INT16_C( 28), INT16_C( 26), INT16_C( 4) } }, - { { SIMDE_FLOAT16_C( 10.447), -SIMDE_FLOAT16_C( 19.586), -SIMDE_FLOAT16_C( 6.815), -SIMDE_FLOAT16_C( 16.894), - -SIMDE_FLOAT16_C( 10.842), SIMDE_FLOAT16_C( 23.604), -SIMDE_FLOAT16_C( 11.436), -SIMDE_FLOAT16_C( 10.067) }, + { { SIMDE_FLOAT16_VALUE( 10.447), SIMDE_FLOAT16_VALUE( - 19.586), SIMDE_FLOAT16_VALUE( - 6.815), SIMDE_FLOAT16_VALUE( - 16.894), + SIMDE_FLOAT16_VALUE( - 10.842), SIMDE_FLOAT16_VALUE( 23.604), SIMDE_FLOAT16_VALUE( - 11.436), SIMDE_FLOAT16_VALUE( - 10.067) }, { INT16_C( 10), -INT16_C( 20), -INT16_C( 7), -INT16_C( 17), -INT16_C( 11), INT16_C( 24), -INT16_C( 11), -INT16_C( 10) } }, - { { -SIMDE_FLOAT16_C( 16.757), -SIMDE_FLOAT16_C( 21.348), -SIMDE_FLOAT16_C( 25.380), SIMDE_FLOAT16_C( 26.218), - -SIMDE_FLOAT16_C( 10.699), SIMDE_FLOAT16_C( 27.303), SIMDE_FLOAT16_C( 23.601), SIMDE_FLOAT16_C( 9.547) }, + { { SIMDE_FLOAT16_VALUE( - 16.757), SIMDE_FLOAT16_VALUE( - 21.348), SIMDE_FLOAT16_VALUE( - 25.380), SIMDE_FLOAT16_VALUE( 26.218), + SIMDE_FLOAT16_VALUE( - 10.699), SIMDE_FLOAT16_VALUE( 27.303), SIMDE_FLOAT16_VALUE( 23.601), SIMDE_FLOAT16_VALUE( 9.547) }, { -INT16_C( 17), -INT16_C( 21), -INT16_C( 25), INT16_C( 26), -INT16_C( 11), INT16_C( 27), INT16_C( 24), INT16_C( 10) } }, }; @@ -2529,44 +2869,57 @@ test_simde_vcvtaq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x8_t r = simde_vcvtaq_s16_f16(a); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtaq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; uint16_t r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 4.746), -SIMDE_FLOAT16_C( 14.278), -SIMDE_FLOAT16_C( 0.601), -SIMDE_FLOAT16_C( 7.311), - -SIMDE_FLOAT16_C( 11.038), SIMDE_FLOAT16_C( 26.745), -SIMDE_FLOAT16_C( 7.038), SIMDE_FLOAT16_C( 8.409) }, + { { SIMDE_FLOAT16_VALUE( 4.746), SIMDE_FLOAT16_VALUE( - 14.278), SIMDE_FLOAT16_VALUE( - 0.601), SIMDE_FLOAT16_VALUE( - 7.311), + SIMDE_FLOAT16_VALUE( - 11.038), SIMDE_FLOAT16_VALUE( 26.745), SIMDE_FLOAT16_VALUE( - 7.038), SIMDE_FLOAT16_VALUE( 8.409) }, { UINT16_C( 5), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 27), UINT16_C( 0), UINT16_C( 8) } }, - { { SIMDE_FLOAT16_C( 28.353), SIMDE_FLOAT16_C( 16.301), -SIMDE_FLOAT16_C( 19.043), -SIMDE_FLOAT16_C( 28.879), - SIMDE_FLOAT16_C( 4.273), -SIMDE_FLOAT16_C( 9.075), -SIMDE_FLOAT16_C( 5.675), -SIMDE_FLOAT16_C( 19.182) }, + { { SIMDE_FLOAT16_VALUE( 28.353), SIMDE_FLOAT16_VALUE( 16.301), SIMDE_FLOAT16_VALUE( - 19.043), SIMDE_FLOAT16_VALUE( - 28.879), + SIMDE_FLOAT16_VALUE( 4.273), SIMDE_FLOAT16_VALUE( - 9.075), SIMDE_FLOAT16_VALUE( - 5.675), SIMDE_FLOAT16_VALUE( - 19.182) }, { UINT16_C( 28), UINT16_C( 16), UINT16_C( 0), UINT16_C( 0), UINT16_C( 4), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 9.416), SIMDE_FLOAT16_C( 9.637), SIMDE_FLOAT16_C( 23.995), -SIMDE_FLOAT16_C( 16.884), - SIMDE_FLOAT16_C( 15.065), SIMDE_FLOAT16_C( 25.188), SIMDE_FLOAT16_C( 12.354), SIMDE_FLOAT16_C( 17.438) }, + { { SIMDE_FLOAT16_VALUE( - 9.416), SIMDE_FLOAT16_VALUE( 9.637), SIMDE_FLOAT16_VALUE( 23.995), SIMDE_FLOAT16_VALUE( - 16.884), + SIMDE_FLOAT16_VALUE( 15.065), SIMDE_FLOAT16_VALUE( 25.188), SIMDE_FLOAT16_VALUE( 12.354), SIMDE_FLOAT16_VALUE( 17.438) }, { UINT16_C( 0), UINT16_C( 10), UINT16_C( 24), UINT16_C( 0), UINT16_C( 15), UINT16_C( 25), UINT16_C( 12), UINT16_C( 17) } }, - { { -SIMDE_FLOAT16_C( 25.904), SIMDE_FLOAT16_C( 3.583), SIMDE_FLOAT16_C( 22.304), SIMDE_FLOAT16_C( 25.037), - SIMDE_FLOAT16_C( 14.348), -SIMDE_FLOAT16_C( 12.071), SIMDE_FLOAT16_C( 3.461), SIMDE_FLOAT16_C( 2.084) }, + { { SIMDE_FLOAT16_VALUE( - 25.904), SIMDE_FLOAT16_VALUE( 3.583), SIMDE_FLOAT16_VALUE( 22.304), SIMDE_FLOAT16_VALUE( 25.037), + SIMDE_FLOAT16_VALUE( 14.348), SIMDE_FLOAT16_VALUE( - 12.071), SIMDE_FLOAT16_VALUE( 3.461), SIMDE_FLOAT16_VALUE( 2.084) }, { UINT16_C( 0), UINT16_C( 4), UINT16_C( 22), UINT16_C( 25), UINT16_C( 14), UINT16_C( 0), UINT16_C( 3), UINT16_C( 2) } }, - { { -SIMDE_FLOAT16_C( 18.501), -SIMDE_FLOAT16_C( 1.210), -SIMDE_FLOAT16_C( 2.742), -SIMDE_FLOAT16_C( 21.659), - -SIMDE_FLOAT16_C( 0.703), SIMDE_FLOAT16_C( 12.092), SIMDE_FLOAT16_C( 14.707), -SIMDE_FLOAT16_C( 22.508) }, + { { SIMDE_FLOAT16_VALUE( - 18.501), SIMDE_FLOAT16_VALUE( - 1.210), SIMDE_FLOAT16_VALUE( - 2.742), SIMDE_FLOAT16_VALUE( - 21.659), + SIMDE_FLOAT16_VALUE( - 0.703), SIMDE_FLOAT16_VALUE( 12.092), SIMDE_FLOAT16_VALUE( 14.707), SIMDE_FLOAT16_VALUE( - 22.508) }, { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 12), UINT16_C( 15), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 0.896), -SIMDE_FLOAT16_C( 22.576), SIMDE_FLOAT16_C( 9.891), SIMDE_FLOAT16_C( 1.382), - -SIMDE_FLOAT16_C( 8.795), SIMDE_FLOAT16_C( 17.872), SIMDE_FLOAT16_C( 18.582), -SIMDE_FLOAT16_C( 18.384) }, + { { SIMDE_FLOAT16_VALUE( 0.896), SIMDE_FLOAT16_VALUE( - 22.576), SIMDE_FLOAT16_VALUE( 9.891), SIMDE_FLOAT16_VALUE( 1.382), + SIMDE_FLOAT16_VALUE( - 8.795), SIMDE_FLOAT16_VALUE( 17.872), SIMDE_FLOAT16_VALUE( 18.582), SIMDE_FLOAT16_VALUE( - 18.384) }, { UINT16_C( 1), UINT16_C( 0), UINT16_C( 10), UINT16_C( 1), UINT16_C( 0), UINT16_C( 18), UINT16_C( 19), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 20.550), -SIMDE_FLOAT16_C( 28.761), SIMDE_FLOAT16_C( 25.925), SIMDE_FLOAT16_C( 4.168), - -SIMDE_FLOAT16_C( 8.477), SIMDE_FLOAT16_C( 18.671), -SIMDE_FLOAT16_C( 23.318), -SIMDE_FLOAT16_C( 17.741) }, + { { SIMDE_FLOAT16_VALUE( 20.550), SIMDE_FLOAT16_VALUE( - 28.761), SIMDE_FLOAT16_VALUE( 25.925), SIMDE_FLOAT16_VALUE( 4.168), + SIMDE_FLOAT16_VALUE( - 8.477), SIMDE_FLOAT16_VALUE( 18.671), SIMDE_FLOAT16_VALUE( - 23.318), SIMDE_FLOAT16_VALUE( - 17.741) }, { UINT16_C( 21), UINT16_C( 0), UINT16_C( 26), UINT16_C( 4), UINT16_C( 0), UINT16_C( 19), UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 26.169), SIMDE_FLOAT16_C( 16.738), -SIMDE_FLOAT16_C( 25.356), SIMDE_FLOAT16_C( 14.928), - -SIMDE_FLOAT16_C( 14.790), SIMDE_FLOAT16_C( 12.960), -SIMDE_FLOAT16_C( 16.022), SIMDE_FLOAT16_C( 3.983) }, + { { SIMDE_FLOAT16_VALUE( 26.169), SIMDE_FLOAT16_VALUE( 16.738), SIMDE_FLOAT16_VALUE( - 25.356), SIMDE_FLOAT16_VALUE( 14.928), + SIMDE_FLOAT16_VALUE( - 14.790), SIMDE_FLOAT16_VALUE( 12.960), SIMDE_FLOAT16_VALUE( - 16.022), SIMDE_FLOAT16_VALUE( 3.983) }, { UINT16_C( 26), UINT16_C( 17), UINT16_C( 0), UINT16_C( 15), UINT16_C( 0), UINT16_C( 13), UINT16_C( 0), UINT16_C( 4) } }, }; @@ -2578,10 +2931,23 @@ test_simde_vcvtaq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcvtaq_u16_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_vcvtaq_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; int32_t r[4]; @@ -2615,10 +2981,23 @@ test_simde_vcvtaq_s32_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_int32x4_t r = simde_vcvtaq_s32_f32(a); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtaq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; uint32_t r[4]; @@ -2652,10 +3031,23 @@ test_simde_vcvtaq_u32_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_vcvtaq_u32_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_vcvtaq_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; int64_t r[2]; @@ -2663,7 +3055,7 @@ test_simde_vcvtaq_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { #if !defined(SIMDE_FAST_CONVERSION_RANGE) { { HEDLEY_STATIC_CAST(simde_float64, INT64_MAX) + SIMDE_FLOAT64_C(10000.0), HEDLEY_STATIC_CAST(simde_float64, INT64_MIN) - SIMDE_FLOAT64_C(10000.0) }, { INT64_MAX, INT64_MIN } }, - { { SIMDE_MATH_NANF, SIMDE_MATH_INFINITYF }, + { { SIMDE_MATH_NAN, SIMDE_MATH_INFINITY }, { INT64_C( 0), INT64_MAX } }, #endif { { SIMDE_FLOAT64_C(649473.000), -SIMDE_FLOAT64_C(977642.625) }, @@ -2691,10 +3083,23 @@ test_simde_vcvtaq_s64_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_f64x1(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_int64x2_t r = simde_vcvtaq_s64_f64(a); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtaq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; uint64_t r[2]; @@ -2702,25 +3107,25 @@ test_simde_vcvtaq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { #if !defined(SIMDE_FAST_CONVERSION_RANGE) { { HEDLEY_STATIC_CAST(simde_float64, UINT64_MAX) + SIMDE_FLOAT64_C(10000.0), SIMDE_FLOAT64_C(-10000.0) }, { UINT64_MAX, UINT64_C( 0) } }, - { { SIMDE_MATH_NANF, SIMDE_MATH_INFINITYF }, + { { SIMDE_MATH_NAN, SIMDE_MATH_INFINITY }, { UINT64_C( 0), UINT64_MAX } }, #endif - { { -SIMDE_FLOAT64_C(412986.188), SIMDE_FLOAT64_C(543309.625) }, - { UINT64_C( 0), UINT64_C( 543310) } }, - { { SIMDE_FLOAT64_C(710819.875), SIMDE_FLOAT64_C(434651.750) }, - { UINT64_C( 710820), UINT64_C( 434652) } }, - { { SIMDE_FLOAT64_C(274527.000), -SIMDE_FLOAT64_C(878469.562) }, - { UINT64_C( 274527), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C(206634.625), SIMDE_FLOAT64_C(226152.875) }, - { UINT64_C( 206635), UINT64_C( 226153) } }, - { { -SIMDE_FLOAT64_C(95009.438), SIMDE_FLOAT64_C(60545.500) }, - { UINT64_C( 0), UINT64_C( 60546) } }, - { { -SIMDE_FLOAT64_C(652400.625), -SIMDE_FLOAT64_C(402832.500) }, - { UINT64_C( 0), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C(248105.250), SIMDE_FLOAT64_C(440003.000) }, - { UINT64_C( 248105), UINT64_C( 440003) } }, - { { -SIMDE_FLOAT64_C(854950.250), SIMDE_FLOAT64_C(630674.375) }, - { UINT64_C( 0), UINT64_C( 630674) } }, + { { SIMDE_FLOAT64_C( 633.17), SIMDE_FLOAT64_C( 804.93) }, + { UINT64_C( 633), UINT64_C( 805) } }, + { { SIMDE_FLOAT64_C( 703.41), SIMDE_FLOAT64_C( 627.44) }, + { UINT64_C( 703), UINT64_C( 627) } }, + { { SIMDE_FLOAT64_C( 462.56), SIMDE_FLOAT64_C( 955.00) }, + { UINT64_C( 463), UINT64_C( 955) } }, + { { SIMDE_FLOAT64_C( 21.07), SIMDE_FLOAT64_C( 229.08) }, + { UINT64_C( 21), UINT64_C( 229) } }, + { { SIMDE_FLOAT64_C( 979.06), SIMDE_FLOAT64_C( 321.00) }, + { UINT64_C( 979), UINT64_C( 321) } }, + { { SIMDE_FLOAT64_C( 153.68), SIMDE_FLOAT64_C( 825.89) }, + { UINT64_C( 154), UINT64_C( 826) } }, + { { SIMDE_FLOAT64_C( 206.68), SIMDE_FLOAT64_C( 853.41) }, + { UINT64_C( 207), UINT64_C( 853) } }, + { { SIMDE_FLOAT64_C( 159.03), SIMDE_FLOAT64_C( 851.04) }, + { UINT64_C( 159), UINT64_C( 851) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -2730,47 +3135,60 @@ test_simde_vcvtaq_u64_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(0.0), SIMDE_FLOAT64_C(1000.0)); + simde_uint64x2_t r = simde_vcvtaq_u64_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_vcvt_high_f16_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 buf[4]; simde_float32 a[4]; simde_float16 r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_VALUE( 24.372), SIMDE_FLOAT16_VALUE( 23.118), -SIMDE_FLOAT16_VALUE( 23.874), -SIMDE_FLOAT16_VALUE( 17.046) }, + { { SIMDE_FLOAT16_VALUE( - 24.372), SIMDE_FLOAT16_VALUE( 23.118), SIMDE_FLOAT16_VALUE( - 23.874), SIMDE_FLOAT16_VALUE( - 17.046) }, { -SIMDE_FLOAT32_C(7209.161), -SIMDE_FLOAT32_C(3427.483), SIMDE_FLOAT32_C(4040.883), -SIMDE_FLOAT32_C(2098.786) }, - { -SIMDE_FLOAT16_VALUE( 24.372), SIMDE_FLOAT16_VALUE( 23.118), -SIMDE_FLOAT16_VALUE( 23.874), -SIMDE_FLOAT16_VALUE( 17.046), - -SIMDE_FLOAT16_VALUE(7209.161), -SIMDE_FLOAT16_VALUE(3427.483), SIMDE_FLOAT16_VALUE(4040.883), -SIMDE_FLOAT16_VALUE(2098.786) } }, - { { -SIMDE_FLOAT16_VALUE( 12.176), SIMDE_FLOAT16_VALUE( 8.252), SIMDE_FLOAT16_VALUE( 8.152), -SIMDE_FLOAT16_VALUE( 27.851) }, + { SIMDE_FLOAT16_VALUE( - 24.372), SIMDE_FLOAT16_VALUE( 23.118), SIMDE_FLOAT16_VALUE( - 23.874), SIMDE_FLOAT16_VALUE( - 17.046), + SIMDE_FLOAT16_VALUE( -7209.161), SIMDE_FLOAT16_VALUE( -3427.483), SIMDE_FLOAT16_VALUE(4040.883), SIMDE_FLOAT16_VALUE( -2098.786) } }, + { { SIMDE_FLOAT16_VALUE( - 12.176), SIMDE_FLOAT16_VALUE( 8.252), SIMDE_FLOAT16_VALUE( 8.152), SIMDE_FLOAT16_VALUE( - 27.851) }, { -SIMDE_FLOAT32_C(6963.870), -SIMDE_FLOAT32_C(5850.501), SIMDE_FLOAT32_C(3869.630), SIMDE_FLOAT32_C(3814.924) }, - { -SIMDE_FLOAT16_VALUE( 12.176), SIMDE_FLOAT16_VALUE( 8.252), SIMDE_FLOAT16_VALUE( 8.152), -SIMDE_FLOAT16_VALUE( 27.851), - -SIMDE_FLOAT16_VALUE(6963.870), -SIMDE_FLOAT16_VALUE(5850.501), SIMDE_FLOAT16_VALUE(3869.630), SIMDE_FLOAT16_VALUE(3814.924) } }, - { { -SIMDE_FLOAT16_VALUE( 14.831), -SIMDE_FLOAT16_VALUE( 2.611), SIMDE_FLOAT16_VALUE( 28.160), -SIMDE_FLOAT16_VALUE( 2.806) }, + { SIMDE_FLOAT16_VALUE( - 12.176), SIMDE_FLOAT16_VALUE( 8.252), SIMDE_FLOAT16_VALUE( 8.152), SIMDE_FLOAT16_VALUE( - 27.851), + SIMDE_FLOAT16_VALUE( -6963.870), SIMDE_FLOAT16_VALUE( -5850.501), SIMDE_FLOAT16_VALUE(3869.630), SIMDE_FLOAT16_VALUE(3814.924) } }, + { { SIMDE_FLOAT16_VALUE( - 14.831), SIMDE_FLOAT16_VALUE( - 2.611), SIMDE_FLOAT16_VALUE( 28.160), SIMDE_FLOAT16_VALUE( - 2.806) }, { SIMDE_FLOAT32_C(8370.572), -SIMDE_FLOAT32_C(9646.048), -SIMDE_FLOAT32_C( 914.674), -SIMDE_FLOAT32_C( 96.147) }, - { -SIMDE_FLOAT16_VALUE( 14.831), -SIMDE_FLOAT16_VALUE( 2.611), SIMDE_FLOAT16_VALUE( 28.160), -SIMDE_FLOAT16_VALUE( 2.806), - SIMDE_FLOAT16_VALUE(8370.572), -SIMDE_FLOAT16_VALUE(9646.048), -SIMDE_FLOAT16_VALUE( 914.674), -SIMDE_FLOAT16_VALUE( 96.147) } }, - { { -SIMDE_FLOAT16_VALUE( 20.091), SIMDE_FLOAT16_VALUE( 18.641), -SIMDE_FLOAT16_VALUE( 4.159), SIMDE_FLOAT16_VALUE( 26.287) }, + { SIMDE_FLOAT16_VALUE( - 14.831), SIMDE_FLOAT16_VALUE( - 2.611), SIMDE_FLOAT16_VALUE( 28.160), SIMDE_FLOAT16_VALUE( - 2.806), + SIMDE_FLOAT16_VALUE(8370.572), SIMDE_FLOAT16_VALUE( -9646.048), SIMDE_FLOAT16_VALUE( - 914.674), SIMDE_FLOAT16_VALUE( - 96.147) } }, + { { SIMDE_FLOAT16_VALUE( - 20.091), SIMDE_FLOAT16_VALUE( 18.641), SIMDE_FLOAT16_VALUE( - 4.159), SIMDE_FLOAT16_VALUE( 26.287) }, { -SIMDE_FLOAT32_C(6804.170), SIMDE_FLOAT32_C(6809.797), -SIMDE_FLOAT32_C(6641.329), SIMDE_FLOAT32_C(5256.305) }, - { -SIMDE_FLOAT16_VALUE( 20.091), SIMDE_FLOAT16_VALUE( 18.641), -SIMDE_FLOAT16_VALUE( 4.159), SIMDE_FLOAT16_VALUE( 26.287), - -SIMDE_FLOAT16_VALUE(6804.170), SIMDE_FLOAT16_VALUE(6809.797), -SIMDE_FLOAT16_VALUE(6641.329), SIMDE_FLOAT16_VALUE(5256.305) } }, - { { SIMDE_FLOAT16_VALUE( 11.268), SIMDE_FLOAT16_VALUE( 24.385), -SIMDE_FLOAT16_VALUE( 11.918), -SIMDE_FLOAT16_VALUE( 20.926) }, + { SIMDE_FLOAT16_VALUE( - 20.091), SIMDE_FLOAT16_VALUE( 18.641), SIMDE_FLOAT16_VALUE( - 4.159), SIMDE_FLOAT16_VALUE( 26.287), + SIMDE_FLOAT16_VALUE( -6804.170), SIMDE_FLOAT16_VALUE(6809.797), SIMDE_FLOAT16_VALUE( -6641.329), SIMDE_FLOAT16_VALUE(5256.305) } }, + { { SIMDE_FLOAT16_VALUE( 11.268), SIMDE_FLOAT16_VALUE( 24.385), SIMDE_FLOAT16_VALUE( - 11.918), SIMDE_FLOAT16_VALUE( - 20.926) }, { -SIMDE_FLOAT32_C(9859.181), SIMDE_FLOAT32_C(7990.297), -SIMDE_FLOAT32_C(1745.461), -SIMDE_FLOAT32_C(6267.518) }, - { SIMDE_FLOAT16_VALUE( 11.268), SIMDE_FLOAT16_VALUE( 24.385), -SIMDE_FLOAT16_VALUE( 11.918), -SIMDE_FLOAT16_VALUE( 20.926), - -SIMDE_FLOAT16_VALUE(9859.181), SIMDE_FLOAT16_VALUE(7990.297), -SIMDE_FLOAT16_VALUE(1745.461), -SIMDE_FLOAT16_VALUE(6267.518) } }, - { { -SIMDE_FLOAT16_VALUE( 13.564), -SIMDE_FLOAT16_VALUE( 1.015), SIMDE_FLOAT16_VALUE( 28.694), -SIMDE_FLOAT16_VALUE( 22.499) }, + { SIMDE_FLOAT16_VALUE( 11.268), SIMDE_FLOAT16_VALUE( 24.385), SIMDE_FLOAT16_VALUE( - 11.918), SIMDE_FLOAT16_VALUE( - 20.926), + SIMDE_FLOAT16_VALUE( -9859.181), SIMDE_FLOAT16_VALUE(7990.297), SIMDE_FLOAT16_VALUE( -1745.461), SIMDE_FLOAT16_VALUE( -6267.518) } }, + { { SIMDE_FLOAT16_VALUE( - 13.564), SIMDE_FLOAT16_VALUE( - 1.015), SIMDE_FLOAT16_VALUE( 28.694), SIMDE_FLOAT16_VALUE( - 22.499) }, { -SIMDE_FLOAT32_C(6059.556), SIMDE_FLOAT32_C(6039.471), SIMDE_FLOAT32_C(9932.301), SIMDE_FLOAT32_C(7266.508) }, - { -SIMDE_FLOAT16_VALUE( 13.564), -SIMDE_FLOAT16_VALUE( 1.015), SIMDE_FLOAT16_VALUE( 28.694), -SIMDE_FLOAT16_VALUE( 22.499), - -SIMDE_FLOAT16_VALUE(6059.556), SIMDE_FLOAT16_VALUE(6039.471), SIMDE_FLOAT16_VALUE(9932.301), SIMDE_FLOAT16_VALUE(7266.508) } }, - { { -SIMDE_FLOAT16_VALUE( 26.110), SIMDE_FLOAT16_VALUE( 28.117), -SIMDE_FLOAT16_VALUE( 26.928), SIMDE_FLOAT16_VALUE( 2.198) }, + { SIMDE_FLOAT16_VALUE( - 13.564), SIMDE_FLOAT16_VALUE( - 1.015), SIMDE_FLOAT16_VALUE( 28.694), SIMDE_FLOAT16_VALUE( - 22.499), + SIMDE_FLOAT16_VALUE( -6059.556), SIMDE_FLOAT16_VALUE(6039.471), SIMDE_FLOAT16_VALUE(9932.301), SIMDE_FLOAT16_VALUE(7266.508) } }, + { { SIMDE_FLOAT16_VALUE( - 26.110), SIMDE_FLOAT16_VALUE( 28.117), SIMDE_FLOAT16_VALUE( - 26.928), SIMDE_FLOAT16_VALUE( 2.198) }, { -SIMDE_FLOAT32_C(4140.171), -SIMDE_FLOAT32_C(5252.628), SIMDE_FLOAT32_C(5685.721), -SIMDE_FLOAT32_C(3753.093) }, - { -SIMDE_FLOAT16_VALUE( 26.110), SIMDE_FLOAT16_VALUE( 28.117), -SIMDE_FLOAT16_VALUE( 26.928), SIMDE_FLOAT16_VALUE( 2.198), - -SIMDE_FLOAT16_VALUE(4140.171), -SIMDE_FLOAT16_VALUE(5252.628), SIMDE_FLOAT16_VALUE(5685.721), -SIMDE_FLOAT16_VALUE(3753.093) } }, - { { -SIMDE_FLOAT16_VALUE( 3.040), SIMDE_FLOAT16_VALUE( 10.693), SIMDE_FLOAT16_VALUE( 19.060), -SIMDE_FLOAT16_VALUE( 29.067) }, + { SIMDE_FLOAT16_VALUE( - 26.110), SIMDE_FLOAT16_VALUE( 28.117), SIMDE_FLOAT16_VALUE( - 26.928), SIMDE_FLOAT16_VALUE( 2.198), + SIMDE_FLOAT16_VALUE( -4140.171), SIMDE_FLOAT16_VALUE( -5252.628), SIMDE_FLOAT16_VALUE(5685.721), SIMDE_FLOAT16_VALUE( -3753.093) } }, + { { SIMDE_FLOAT16_VALUE( - 3.040), SIMDE_FLOAT16_VALUE( 10.693), SIMDE_FLOAT16_VALUE( 19.060), SIMDE_FLOAT16_VALUE( - 29.067) }, { SIMDE_FLOAT32_C( 553.772), SIMDE_FLOAT32_C(3391.303), SIMDE_FLOAT32_C(3482.779), -SIMDE_FLOAT32_C( 673.666) }, - { -SIMDE_FLOAT16_VALUE( 3.040), SIMDE_FLOAT16_VALUE( 10.693), SIMDE_FLOAT16_VALUE( 19.060), -SIMDE_FLOAT16_VALUE( 29.067), - SIMDE_FLOAT16_VALUE( 553.772), SIMDE_FLOAT16_VALUE(3391.303), SIMDE_FLOAT16_VALUE(3482.779), -SIMDE_FLOAT16_VALUE( 673.666) } }, + { SIMDE_FLOAT16_VALUE( - 3.040), SIMDE_FLOAT16_VALUE( 10.693), SIMDE_FLOAT16_VALUE( 19.060), SIMDE_FLOAT16_VALUE( - 29.067), + SIMDE_FLOAT16_VALUE( 553.772), SIMDE_FLOAT16_VALUE(3391.303), SIMDE_FLOAT16_VALUE(3482.779), SIMDE_FLOAT16_VALUE( - 673.666) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -2782,10 +3200,25 @@ test_simde_vcvt_high_f16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t buf = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float32x4_t a = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float16x8_t r = simde_vcvt_high_f16_f32(buf, a); + + simde_test_arm_neon_write_f16x4(2, buf, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, a, 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_vcvt_high_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 buf[2]; simde_float64 a[2]; @@ -2826,37 +3259,52 @@ test_simde_vcvt_high_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32x2_t buf = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float64x2_t a = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float32x4_t r = simde_vcvt_high_f32_f64(buf, a); + + simde_test_arm_neon_write_f32x2(2, buf, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_high_f32_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float32 r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_VALUE( 3.844), SIMDE_FLOAT16_VALUE(22.261), SIMDE_FLOAT16_VALUE(21.633), SIMDE_FLOAT16_VALUE(21.815), - -SIMDE_FLOAT16_VALUE( 8.432), -SIMDE_FLOAT16_VALUE(19.472), SIMDE_FLOAT16_VALUE(13.622), -SIMDE_FLOAT16_VALUE( 8.106) }, + { { SIMDE_FLOAT16_VALUE( - 3.844), SIMDE_FLOAT16_VALUE(22.261), SIMDE_FLOAT16_VALUE(21.633), SIMDE_FLOAT16_VALUE(21.815), + SIMDE_FLOAT16_VALUE( - 8.432), SIMDE_FLOAT16_VALUE( -19.472), SIMDE_FLOAT16_VALUE(13.622), SIMDE_FLOAT16_VALUE( - 8.106) }, { -SIMDE_FLOAT32_C( 8.432), -SIMDE_FLOAT32_C(19.472), SIMDE_FLOAT32_C(13.622), -SIMDE_FLOAT32_C( 8.106) } }, - { { SIMDE_FLOAT16_VALUE(26.057), SIMDE_FLOAT16_VALUE( 0.355), -SIMDE_FLOAT16_VALUE(13.476), -SIMDE_FLOAT16_VALUE( 9.150), - -SIMDE_FLOAT16_VALUE( 3.837), -SIMDE_FLOAT16_VALUE( 8.472), -SIMDE_FLOAT16_VALUE(12.672), SIMDE_FLOAT16_VALUE(11.071) }, + { { SIMDE_FLOAT16_VALUE(26.057), SIMDE_FLOAT16_VALUE( 0.355), SIMDE_FLOAT16_VALUE( -13.476), SIMDE_FLOAT16_VALUE( - 9.150), + SIMDE_FLOAT16_VALUE( - 3.837), SIMDE_FLOAT16_VALUE( - 8.472), SIMDE_FLOAT16_VALUE( -12.672), SIMDE_FLOAT16_VALUE(11.071) }, { -SIMDE_FLOAT32_C( 3.837), -SIMDE_FLOAT32_C( 8.472), -SIMDE_FLOAT32_C(12.672), SIMDE_FLOAT32_C(11.071) } }, - { { -SIMDE_FLOAT16_VALUE( 6.540), -SIMDE_FLOAT16_VALUE( 1.356), SIMDE_FLOAT16_VALUE(22.256), -SIMDE_FLOAT16_VALUE(12.208), - SIMDE_FLOAT16_VALUE(20.480), -SIMDE_FLOAT16_VALUE( 4.999), SIMDE_FLOAT16_VALUE( 0.486), -SIMDE_FLOAT16_VALUE( 8.171) }, + { { SIMDE_FLOAT16_VALUE( - 6.540), SIMDE_FLOAT16_VALUE( - 1.356), SIMDE_FLOAT16_VALUE(22.256), SIMDE_FLOAT16_VALUE( -12.208), + SIMDE_FLOAT16_VALUE(20.480), SIMDE_FLOAT16_VALUE( - 4.999), SIMDE_FLOAT16_VALUE( 0.486), SIMDE_FLOAT16_VALUE( - 8.171) }, { SIMDE_FLOAT32_C(20.480), -SIMDE_FLOAT32_C( 4.999), SIMDE_FLOAT32_C( 0.486), -SIMDE_FLOAT32_C( 8.171) } }, - { { SIMDE_FLOAT16_VALUE(12.817), SIMDE_FLOAT16_VALUE( 7.000), -SIMDE_FLOAT16_VALUE( 6.571), SIMDE_FLOAT16_VALUE( 9.247), - SIMDE_FLOAT16_VALUE(12.120), -SIMDE_FLOAT16_VALUE(10.026), -SIMDE_FLOAT16_VALUE( 5.410), -SIMDE_FLOAT16_VALUE( 4.789) }, + { { SIMDE_FLOAT16_VALUE(12.817), SIMDE_FLOAT16_VALUE( 7.000), SIMDE_FLOAT16_VALUE( - 6.571), SIMDE_FLOAT16_VALUE( 9.247), + SIMDE_FLOAT16_VALUE(12.120), SIMDE_FLOAT16_VALUE( -10.026), SIMDE_FLOAT16_VALUE( - 5.410), SIMDE_FLOAT16_VALUE( - 4.789) }, { SIMDE_FLOAT32_C(12.120), -SIMDE_FLOAT32_C(10.026), -SIMDE_FLOAT32_C( 5.410), -SIMDE_FLOAT32_C( 4.789) } }, - { { SIMDE_FLOAT16_VALUE(25.521), -SIMDE_FLOAT16_VALUE(18.717), -SIMDE_FLOAT16_VALUE(24.798), SIMDE_FLOAT16_VALUE(20.203), - SIMDE_FLOAT16_VALUE(20.893), SIMDE_FLOAT16_VALUE(22.676), -SIMDE_FLOAT16_VALUE(11.232), -SIMDE_FLOAT16_VALUE( 4.399) }, + { { SIMDE_FLOAT16_VALUE(25.521), SIMDE_FLOAT16_VALUE( -18.717), SIMDE_FLOAT16_VALUE( -24.798), SIMDE_FLOAT16_VALUE(20.203), + SIMDE_FLOAT16_VALUE(20.893), SIMDE_FLOAT16_VALUE(22.676), SIMDE_FLOAT16_VALUE( -11.232), SIMDE_FLOAT16_VALUE( - 4.399) }, { SIMDE_FLOAT32_C(20.893), SIMDE_FLOAT32_C(22.676), -SIMDE_FLOAT32_C(11.232), -SIMDE_FLOAT32_C( 4.399) } }, - { { SIMDE_FLOAT16_VALUE( 7.250), -SIMDE_FLOAT16_VALUE(29.188), -SIMDE_FLOAT16_VALUE(15.288), SIMDE_FLOAT16_VALUE(10.280), - SIMDE_FLOAT16_VALUE( 1.174), SIMDE_FLOAT16_VALUE(29.433), -SIMDE_FLOAT16_VALUE( 3.853), SIMDE_FLOAT16_VALUE( 3.367) }, + { { SIMDE_FLOAT16_VALUE( 7.250), SIMDE_FLOAT16_VALUE( -29.188), SIMDE_FLOAT16_VALUE( -15.288), SIMDE_FLOAT16_VALUE(10.280), + SIMDE_FLOAT16_VALUE( 1.174), SIMDE_FLOAT16_VALUE(29.433), SIMDE_FLOAT16_VALUE( - 3.853), SIMDE_FLOAT16_VALUE( 3.367) }, { SIMDE_FLOAT32_C( 1.174), SIMDE_FLOAT32_C(29.433), -SIMDE_FLOAT32_C( 3.853), SIMDE_FLOAT32_C( 3.367) } }, - { { -SIMDE_FLOAT16_VALUE(14.536), SIMDE_FLOAT16_VALUE(24.455), -SIMDE_FLOAT16_VALUE(12.233), -SIMDE_FLOAT16_VALUE( 7.986), - -SIMDE_FLOAT16_VALUE(11.418), SIMDE_FLOAT16_VALUE( 4.680), SIMDE_FLOAT16_VALUE( 9.822), SIMDE_FLOAT16_VALUE(16.191) }, + { { SIMDE_FLOAT16_VALUE( -14.536), SIMDE_FLOAT16_VALUE(24.455), SIMDE_FLOAT16_VALUE( -12.233), SIMDE_FLOAT16_VALUE( - 7.986), + SIMDE_FLOAT16_VALUE( -11.418), SIMDE_FLOAT16_VALUE( 4.680), SIMDE_FLOAT16_VALUE( 9.822), SIMDE_FLOAT16_VALUE(16.191) }, { -SIMDE_FLOAT32_C(11.418), SIMDE_FLOAT32_C( 4.680), SIMDE_FLOAT32_C( 9.822), SIMDE_FLOAT32_C(16.191) } }, - { { -SIMDE_FLOAT16_VALUE(11.395), SIMDE_FLOAT16_VALUE(11.561), -SIMDE_FLOAT16_VALUE( 5.833), SIMDE_FLOAT16_VALUE(22.281), - -SIMDE_FLOAT16_VALUE(27.638), -SIMDE_FLOAT16_VALUE(17.180), SIMDE_FLOAT16_VALUE(14.937), -SIMDE_FLOAT16_VALUE( 3.647) }, + { { SIMDE_FLOAT16_VALUE( -11.395), SIMDE_FLOAT16_VALUE(11.561), SIMDE_FLOAT16_VALUE( - 5.833), SIMDE_FLOAT16_VALUE(22.281), + SIMDE_FLOAT16_VALUE( -27.638), SIMDE_FLOAT16_VALUE( -17.180), SIMDE_FLOAT16_VALUE(14.937), SIMDE_FLOAT16_VALUE( - 3.647) }, { -SIMDE_FLOAT32_C(27.638), -SIMDE_FLOAT32_C(17.180), SIMDE_FLOAT32_C(14.937), -SIMDE_FLOAT32_C( 3.647) } }, }; @@ -2868,10 +3316,23 @@ test_simde_vcvt_high_f32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float32x4_t r = simde_vcvt_high_f32_f16(a); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_high_f64_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float64 r[2]; @@ -2902,10 +3363,23 @@ test_simde_vcvt_high_f64_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_float64x2_t r = simde_vcvt_high_f64_f32(a); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtxd_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; simde_float32 r; @@ -2936,10 +3410,23 @@ test_simde_vcvtxd_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64_t a = simde_test_arm_neon_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float32_t r = simde_vcvtxd_f32_f64(a); + + simde_test_arm_neon_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtx_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; simde_float32 r[2]; @@ -2970,10 +3457,23 @@ test_simde_vcvtx_f32_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_float32x2_t r = simde_vcvtx_f32_f64(a); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtx_high_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 buf[2]; simde_float64 a[2]; @@ -3014,6 +3514,20 @@ test_simde_vcvtx_high_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32x2_t buf = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float64x2_t a = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float32x4_t r = simde_vcvtx_high_f32_f64(buf, a); + + simde_test_arm_neon_write_f32x2(2, buf, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, a, 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 diff --git a/test/arm/neon/cvt_n.c b/test/arm/neon/cvt_n.c index 2c62d2e05..386951660 100644 --- a/test/arm/neon/cvt_n.c +++ b/test/arm/neon/cvt_n.c @@ -6,6 +6,7 @@ static int test_simde_vcvth_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[1]; int16_t r3[1]; @@ -14,49 +15,49 @@ test_simde_vcvth_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { int16_t r13[1]; int16_t r16[1]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 24.220) }, + { { SIMDE_FLOAT16_VALUE( 24.220) }, { INT16_C( 193) }, { INT16_C( 1550) }, { INT16_C( 24800) }, { INT16_MAX }, { INT16_MAX } }, - { { -SIMDE_FLOAT16_C( 8.057) }, + { { SIMDE_FLOAT16_VALUE( - 8.057) }, { -INT16_C( 64) }, { -INT16_C( 515) }, { -INT16_C( 8248) }, { INT16_MIN }, { INT16_MIN } }, - { { -SIMDE_FLOAT16_C( 1.310) }, + { { SIMDE_FLOAT16_VALUE( - 1.310) }, { -INT16_C( 10) }, { -INT16_C( 83) }, { -INT16_C( 1341) }, { -INT16_C( 10728) }, { INT16_MIN } }, - { { -SIMDE_FLOAT16_C( 24.017) }, + { { SIMDE_FLOAT16_VALUE( - 24.017) }, { -INT16_C( 192) }, { -INT16_C( 1537) }, { -INT16_C( 24592) }, { INT16_MIN }, { INT16_MIN } }, - { { SIMDE_FLOAT16_C( 23.037) }, + { { SIMDE_FLOAT16_VALUE( 23.037) }, { INT16_C( 184) }, { INT16_C( 1474) }, { INT16_C( 23584) }, { INT16_MAX }, { INT16_MAX } }, - { { SIMDE_FLOAT16_C( 7.442) }, + { { SIMDE_FLOAT16_VALUE( 7.442) }, { INT16_C( 59) }, { INT16_C( 476) }, { INT16_C( 7620) }, { INT16_MAX }, { INT16_MAX } }, - { { -SIMDE_FLOAT16_C( 18.102) }, + { { SIMDE_FLOAT16_VALUE( - 18.102) }, { -INT16_C( 144) }, { -INT16_C( 1159) }, { -INT16_C( 18544) }, { INT16_MIN }, { INT16_MIN } }, - { { -SIMDE_FLOAT16_C( 10.834) }, + { { SIMDE_FLOAT16_VALUE( - 10.834) }, { -INT16_C( 86) }, { -INT16_C( 693) }, { -INT16_C( 11096) }, @@ -69,93 +70,250 @@ test_simde_vcvth_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { int16_t r3 = simde_vcvth_n_s16_f16(a, 3); int16_t r6 = simde_vcvth_n_s16_f16(a, 6); int16_t r10 = simde_vcvth_n_s16_f16(a, 10); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) int16_t r13 = simde_vcvth_n_s16_f16(a, 13); int16_t r16 = simde_vcvth_n_s16_f16(a, 16); + #endif simde_assert_equal_i16(r3, test_vec[i].r3[0]); simde_assert_equal_i16(r6, test_vec[i].r6[0]); simde_assert_equal_i16(r10, test_vec[i].r10[0]); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) simde_assert_equal_i16(r13, test_vec[i].r13[0]); simde_assert_equal_i16(r16, test_vec[i].r16[0]); + #endif } 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); + int16_t r3 = simde_vcvth_n_s16_f16(a, 3); + int16_t r6 = simde_vcvth_n_s16_f16(a, 6); + int16_t r10 = simde_vcvth_n_s16_f16(a, 10); + int16_t r13 = simde_vcvth_n_s16_f16(a, 13); + int16_t r16 = simde_vcvth_n_s16_f16(a, 16); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - simde_float16 a[1]; - int32_t r3[1]; - int32_t r6[1]; - int32_t r10[1]; - int32_t r13[1]; - int32_t r16[1]; + simde_float16 a; + int32_t r3; + int32_t r6; + int32_t r10; + int32_t r13; + int32_t r16; } test_vec[] = { - { { SIMDE_FLOAT16_C( 18.262) }, - { INT32_C( 146) }, - { INT32_C( 1169) }, - { INT32_C( 18704) }, - { INT32_C( 149632) }, - { INT32_C( 1197056) } } + { SIMDE_FLOAT16_VALUE( 446.75), + INT32_C( 3574), + INT32_C( 28592), + INT32_MAX, + INT32_MAX, + INT32_MAX }, + { SIMDE_FLOAT16_VALUE( -87.31), + -INT32_C( 698), + -INT32_C( 5588), + INT32_MIN, + INT32_MIN, + INT32_MIN }, + { SIMDE_FLOAT16_VALUE( 826.00), + INT32_C( 6608), + INT32_C( 52864), + INT32_MAX, + INT32_MAX, + INT32_MAX }, + { SIMDE_FLOAT16_VALUE( -327.00), + -INT32_C( 2616), + -INT32_C( 20928), + INT32_MIN, + INT32_MIN, + INT32_MIN }, + { SIMDE_FLOAT16_VALUE( 852.00), + INT32_C( 6816), + INT32_C( 54528), + INT32_MAX, + INT32_MAX, + INT32_MAX }, + { SIMDE_FLOAT16_VALUE( -492.00), + -INT32_C( 3936), + -INT32_C( 31488), + INT32_MIN, + INT32_MIN, + INT32_MIN }, + { SIMDE_FLOAT16_VALUE( 332.25), + INT32_C( 2658), + INT32_C( 21264), + INT32_MAX, + INT32_MAX, + INT32_MAX }, + { SIMDE_FLOAT16_VALUE( 648.50), + INT32_C( 5188), + INT32_C( 41504), + INT32_MAX, + INT32_MAX, + INT32_MAX }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - simde_float16_t a = test_vec[i].a[0]; + simde_float16_t a = test_vec[i].a; int32_t r3 = simde_vcvth_n_s32_f16(a, 3); int32_t r6 = simde_vcvth_n_s32_f16(a, 6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) int32_t r10 = simde_vcvth_n_s32_f16(a, 10); int32_t r13 = simde_vcvth_n_s32_f16(a, 13); int32_t r16 = simde_vcvth_n_s32_f16(a, 16); + #endif - simde_assert_equal_i32(r3, test_vec[i].r3[0]); - simde_assert_equal_i32(r6, test_vec[i].r6[0]); - simde_assert_equal_i32(r10, test_vec[i].r10[0]); - simde_assert_equal_i32(r13, test_vec[i].r13[0]); - simde_assert_equal_i32(r16, test_vec[i].r16[0]); + simde_assert_equal_i32(r3, test_vec[i].r3); + simde_assert_equal_i32(r6, test_vec[i].r6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + simde_assert_equal_i32(r10, test_vec[i].r10); + simde_assert_equal_i32(r13, test_vec[i].r13); + simde_assert_equal_i32(r16, test_vec[i].r16); + #endif } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16_t a = simde_test_codegen_random_f16(-1000.0f, 1000.0f); + int32_t r3 = simde_vcvth_n_s32_f16(a, 3); + int32_t r6 = simde_vcvth_n_s32_f16(a, 6); + int32_t r10 = simde_vcvth_n_s32_f16(a, 10); + int32_t r13 = simde_vcvth_n_s32_f16(a, 13); + int32_t r16 = simde_vcvth_n_s32_f16(a, 16); + + simde_test_codegen_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_i32(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i32(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i32(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i32(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i32(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - simde_float16 a[1]; - int64_t r3[1]; - int64_t r6[1]; - int64_t r10[1]; - int64_t r13[1]; - int64_t r16[1]; + simde_float16 a; + int64_t r3; + int64_t r6; + int64_t r10; + int64_t r13; + int64_t r16; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 24.064) }, - { -INT64_C( 192) }, - { -INT64_C( 1540) }, - { -INT64_C( 24640) }, - { -INT64_C( 197120) }, - { -INT64_C( 1576960) } } + { SIMDE_FLOAT16_VALUE( 27.27), + INT64_C( 218), + INT64_C( 1745), + INT64_C( 27920), + INT64_MAX, + INT64_MAX }, + { SIMDE_FLOAT16_VALUE( 195.12), + INT64_C( 1561), + INT64_C( 12488), + INT64_MAX, + INT64_MAX, + INT64_MAX }, + { SIMDE_FLOAT16_VALUE( 323.50), + INT64_C( 2588), + INT64_C( 20704), + INT64_MAX, + INT64_MAX, + INT64_MAX }, + { SIMDE_FLOAT16_VALUE( -532.00), + -INT64_C( 4256), + -INT64_C( 34048), + INT64_MIN, + INT64_MIN, + INT64_MIN }, + { SIMDE_FLOAT16_VALUE( 264.50), + INT64_C( 2116), + INT64_C( 16928), + INT64_MAX, + INT64_MAX, + INT64_MAX }, + { SIMDE_FLOAT16_VALUE( 741.50), + INT64_C( 5932), + INT64_C( 47456), + INT64_MAX, + INT64_MAX, + INT64_MAX }, + { SIMDE_FLOAT16_VALUE( -545.50), + -INT64_C( 4364), + -INT64_C( 34912), + INT64_MIN, + INT64_MIN, + INT64_MIN }, + { SIMDE_FLOAT16_VALUE( -404.25), + -INT64_C( 3234), + -INT64_C( 25872), + INT64_MIN, + INT64_MIN, + INT64_MIN }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - simde_float16_t a = test_vec[i].a[0]; + simde_float16_t a = test_vec[i].a; int64_t r3 = simde_vcvth_n_s64_f16(a, 3); int64_t r6 = simde_vcvth_n_s64_f16(a, 6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) int64_t r10 = simde_vcvth_n_s64_f16(a, 10); int64_t r13 = simde_vcvth_n_s64_f16(a, 13); int64_t r16 = simde_vcvth_n_s64_f16(a, 16); + #endif - simde_assert_equal_i64(r3, test_vec[i].r3[0]); - simde_assert_equal_i64(r6, test_vec[i].r6[0]); - simde_assert_equal_i64(r10, test_vec[i].r10[0]); - simde_assert_equal_i64(r13, test_vec[i].r13[0]); - simde_assert_equal_i64(r16, test_vec[i].r16[0]); + simde_assert_equal_i64(r3, test_vec[i].r3); + simde_assert_equal_i64(r6, test_vec[i].r6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + simde_assert_equal_i64(r10, test_vec[i].r10); + simde_assert_equal_i64(r13, test_vec[i].r13); + simde_assert_equal_i64(r16, test_vec[i].r16); + #endif } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16_t a = simde_test_codegen_random_f16(-1000.0f, 1000.0f); + int64_t r3 = simde_vcvth_n_s64_f16(a, 3); + int64_t r6 = simde_vcvth_n_s64_f16(a, 6); + int64_t r10 = simde_vcvth_n_s64_f16(a, 10); + int64_t r13 = simde_vcvth_n_s64_f16(a, 13); + int64_t r16 = simde_vcvth_n_s64_f16(a, 16); + + simde_test_codegen_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_i64(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i64(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i64(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i64(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i64(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[1]; uint16_t r3[1]; @@ -164,7 +322,7 @@ test_simde_vcvth_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { uint16_t r13[1]; uint16_t r16[1]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 1.01) }, + { { SIMDE_FLOAT16_VALUE( 1.01) }, { UINT16_C( 8) }, { UINT16_C( 64) }, { UINT16_C( 1034) }, @@ -178,98 +336,207 @@ test_simde_vcvth_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { uint16_t r6 = simde_vcvth_n_u16_f16(a, 6); uint16_t r10 = simde_vcvth_n_u16_f16(a, 10); uint16_t r13 = simde_vcvth_n_u16_f16(a, 13); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) uint16_t r16 = simde_vcvth_n_u16_f16(a, 16); + #endif simde_assert_equal_u16(r3, test_vec[i].r3[0]); simde_assert_equal_u16(r6, test_vec[i].r6[0]); simde_assert_equal_u16(r10, test_vec[i].r10[0]); simde_assert_equal_u16(r13, test_vec[i].r13[0]); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) simde_assert_equal_u16(r16, test_vec[i].r16[0]); + #endif } 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); + uint16_t r3 = simde_vcvth_n_u16_f16(a, 3); + uint16_t r6 = simde_vcvth_n_u16_f16(a, 6); + uint16_t r10 = simde_vcvth_n_u16_f16(a, 10); + uint16_t r13 = simde_vcvth_n_u16_f16(a, 13); + uint16_t r16 = simde_vcvth_n_u16_f16(a, 16); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - simde_float16 a[1]; - uint32_t r3[1]; - uint32_t r6[1]; - uint32_t r10[1]; - uint32_t r13[1]; - uint32_t r16[1]; + simde_float16 a; + uint32_t r3; + uint32_t r6; + uint32_t r10; + uint32_t r13; + uint32_t r16; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 26.30) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) } }, - { { SIMDE_FLOAT16_C( 24.79) }, - { UINT32_C( 198) }, - { UINT32_C( 1587) }, - { UINT32_C( 25392) }, - { UINT32_C( 203136) }, - { UINT32_C( 1625088) } }, + { SIMDE_FLOAT16_VALUE( 146.50), + UINT32_C( 1172), + UINT32_C( 9376), + UINT32_MAX, + UINT32_MAX, + UINT32_MAX }, + { SIMDE_FLOAT16_VALUE( 305.75), + UINT32_C( 2446), + UINT32_C( 19568), + UINT32_MAX, + UINT32_MAX, + UINT32_MAX }, + { SIMDE_FLOAT16_VALUE( 475.75), + UINT32_C( 3806), + UINT32_C( 30448), + UINT32_MAX, + UINT32_MAX, + UINT32_MAX }, + { SIMDE_FLOAT16_VALUE( 776.50), + UINT32_C( 6212), + UINT32_C( 49696), + UINT32_MAX, + UINT32_MAX, + UINT32_MAX }, + { SIMDE_FLOAT16_VALUE( 714.00), + UINT32_C( 5712), + UINT32_C( 45696), + UINT32_MAX, + UINT32_MAX, + UINT32_MAX }, + { SIMDE_FLOAT16_VALUE( 907.00), + UINT32_C( 7256), + UINT32_C( 58048), + UINT32_MAX, + UINT32_MAX, + UINT32_MAX }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - simde_float16_t a = test_vec[i].a[0]; + simde_float16_t a = test_vec[i].a; uint32_t r3 = simde_vcvth_n_u32_f16(a, 3); uint32_t r6 = simde_vcvth_n_u32_f16(a, 6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) uint32_t r10 = simde_vcvth_n_u32_f16(a, 10); uint32_t r13 = simde_vcvth_n_u32_f16(a, 13); uint32_t r16 = simde_vcvth_n_u32_f16(a, 16); + #endif - simde_assert_equal_u32(r3, test_vec[i].r3[0]); - simde_assert_equal_u32(r6, test_vec[i].r6[0]); - simde_assert_equal_u32(r10, test_vec[i].r10[0]); - simde_assert_equal_u32(r13, test_vec[i].r13[0]); - simde_assert_equal_u32(r16, test_vec[i].r16[0]); + simde_assert_equal_u32(r3, test_vec[i].r3); + simde_assert_equal_u32(r6, test_vec[i].r6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + simde_assert_equal_u32(r10, test_vec[i].r10); + simde_assert_equal_u32(r13, test_vec[i].r13); + simde_assert_equal_u32(r16, test_vec[i].r16); + #endif } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16_t a = simde_test_codegen_random_f16(-1000.0f, 1000.0f); + uint32_t r3 = simde_vcvth_n_u32_f16(a, 3); + uint32_t r6 = simde_vcvth_n_u32_f16(a, 6); + uint32_t r10 = simde_vcvth_n_u32_f16(a, 10); + uint32_t r13 = simde_vcvth_n_u32_f16(a, 13); + uint32_t r16 = simde_vcvth_n_u32_f16(a, 16); + + simde_test_codegen_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_u32(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u32(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u32(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u32(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u32(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - simde_float16 a[1]; - uint64_t r3[1]; - uint64_t r6[1]; - uint64_t r10[1]; - uint64_t r13[1]; - uint64_t r16[1]; + simde_float16 a; + uint64_t r3; + uint64_t r6; + uint64_t r10; + uint64_t r13; + uint64_t r16; } test_vec[] = { - { { SIMDE_FLOAT16_C( 1.82) }, - { UINT64_C( 14) }, - { UINT64_C( 116) }, - { UINT64_C( 1864) }, - { UINT64_C( 14912) }, - { UINT64_C( 119296) } } + { SIMDE_FLOAT16_VALUE( 215.88), + UINT64_C( 1727), + UINT64_C( 13816), + UINT64_MAX, + UINT64_MAX, + UINT64_MAX }, + { SIMDE_FLOAT16_VALUE( 420.75), + UINT64_C( 3366), + UINT64_C( 26928), + UINT64_MAX, + UINT64_MAX, + UINT64_MAX }, + { SIMDE_FLOAT16_VALUE( 603.50), + UINT64_C( 4828), + UINT64_C( 38624), + UINT64_MAX, + UINT64_MAX, + UINT64_MAX }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - simde_float16_t a = test_vec[i].a[0]; + simde_float16_t a = test_vec[i].a; uint64_t r3 = simde_vcvth_n_u64_f16(a, 3); uint64_t r6 = simde_vcvth_n_u64_f16(a, 6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) uint64_t r10 = simde_vcvth_n_u64_f16(a, 10); uint64_t r13 = simde_vcvth_n_u64_f16(a, 13); uint64_t r16 = simde_vcvth_n_u64_f16(a, 16); + #endif - simde_assert_equal_u64(r3, test_vec[i].r3[0]); - simde_assert_equal_u64(r6, test_vec[i].r6[0]); - simde_assert_equal_u64(r10, test_vec[i].r10[0]); - simde_assert_equal_u64(r13, test_vec[i].r13[0]); - simde_assert_equal_u64(r16, test_vec[i].r16[0]); + simde_assert_equal_u64(r3, test_vec[i].r3); + simde_assert_equal_u64(r6, test_vec[i].r6); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + simde_assert_equal_u64(r10, test_vec[i].r10); + simde_assert_equal_u64(r13, test_vec[i].r13); + simde_assert_equal_u64(r16, test_vec[i].r16); + #endif } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16_t a = simde_test_codegen_random_f16(-1000.0f, 1000.0f); + uint64_t r3 = simde_vcvth_n_u64_f16(a, 3); + uint64_t r6 = simde_vcvth_n_u64_f16(a, 6); + uint64_t r10 = simde_vcvth_n_u64_f16(a, 10); + uint64_t r13 = simde_vcvth_n_u64_f16(a, 13); + uint64_t r16 = simde_vcvth_n_u64_f16(a, 16); + + simde_test_codegen_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_u64(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u64(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u64(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u64(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_u64(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[1]; simde_float16_t r3[1]; @@ -279,17 +546,17 @@ test_simde_vcvth_n_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { simde_float16_t r16[1]; } test_vec[] = { { { INT16_C( 2586) }, - { SIMDE_FLOAT16_C( 323.250) }, - { SIMDE_FLOAT16_C( 40.406) }, - { SIMDE_FLOAT16_C( 2.525) }, - { SIMDE_FLOAT16_C( 0.316) }, - { SIMDE_FLOAT16_C( 0.039) } }, + { SIMDE_FLOAT16_VALUE( 323.250) }, + { SIMDE_FLOAT16_VALUE( 40.406) }, + { SIMDE_FLOAT16_VALUE( 2.525) }, + { SIMDE_FLOAT16_VALUE( 0.316) }, + { SIMDE_FLOAT16_VALUE( 0.039) } }, { { -INT16_C( 12099) }, - { -SIMDE_FLOAT16_C( 1512.375) }, - { -SIMDE_FLOAT16_C( 189.047) }, - { -SIMDE_FLOAT16_C( 11.815) }, - { -SIMDE_FLOAT16_C( 1.477) }, - { -SIMDE_FLOAT16_C( 0.185) } }, + { SIMDE_FLOAT16_VALUE( - 1512.375) }, + { SIMDE_FLOAT16_VALUE( - 189.047) }, + { SIMDE_FLOAT16_VALUE( - 11.815) }, + { SIMDE_FLOAT16_VALUE( - 1.477) }, + { SIMDE_FLOAT16_VALUE( - 0.185) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -308,82 +575,227 @@ test_simde_vcvth_n_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + int16_t a = simde_test_arm_neon_random_i16(); + simde_float16_t r3 = simde_vcvth_n_f16_s16(a, 3); + simde_float16_t r6 = simde_vcvth_n_f16_s16(a, 6); + simde_float16_t r10 = simde_vcvth_n_f16_s16(a, 10); + simde_float16_t r13 = simde_vcvth_n_f16_s16(a, 13); + simde_float16_t r16 = simde_vcvth_n_f16_s16(a, 16); + + simde_test_arm_neon_write_i16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_f16_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - int32_t a[1]; - simde_float16_t r3[1]; - simde_float16_t r6[1]; - simde_float16_t r10[1]; - simde_float16_t r13[1]; - simde_float16_t r16[1]; + int32_t a; + simde_float16_t r3; + simde_float16_t r6; + simde_float16_t r10; + simde_float16_t r13; + simde_float16_t r16; } test_vec[] = { - { { INT32_C( 6803529) }, - { SIMDE_FLOAT16_C(850441.125) }, - { SIMDE_FLOAT16_C(106305.141) }, - { SIMDE_FLOAT16_C( 6644.071) }, - { SIMDE_FLOAT16_C( 830.509) }, - { SIMDE_FLOAT16_C( 103.814) } }, + { INT32_C( 1875020380), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 28608.00) }, + { INT32_C( 700277977), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 10688.00) }, + { INT32_C( 909565182), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 13880.00) }, + { INT32_C( 245822870), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 30000.00), + SIMDE_FLOAT16_VALUE( 3750.00) }, + { -INT32_C( 1253541882), + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_FLOAT16_VALUE(-19120.00) }, + { INT32_C( 1238403304), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 18896.00) }, + { -INT32_C( 147081743), + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_FLOAT16_VALUE(-17952.00), + SIMDE_FLOAT16_VALUE( -2244.00) }, + { -INT32_C( 1533160889), + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_FLOAT16_VALUE(-23392.00) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - int32_t a = test_vec[i].a[0]; + int32_t a = test_vec[i].a; simde_float16_t r3 = simde_vcvth_n_f16_s32(a, 3); simde_float16_t r6 = simde_vcvth_n_f16_s32(a, 6); simde_float16_t r10 = simde_vcvth_n_f16_s32(a, 10); simde_float16_t r13 = simde_vcvth_n_f16_s32(a, 13); simde_float16_t r16 = simde_vcvth_n_f16_s32(a, 16); - simde_assert_equal_f16(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f16(r6, test_vec[i].r6[0], 1); - simde_assert_equal_f16(r10, test_vec[i].r10[0], 1); - simde_assert_equal_f16(r13, test_vec[i].r13[0], 1); - simde_assert_equal_f16(r16, test_vec[i].r16[0], 1); + simde_assert_equal_f16(r3, test_vec[i].r3, 1); + simde_assert_equal_f16(r6, test_vec[i].r6, 1); + simde_assert_equal_f16(r10, test_vec[i].r10, 1); + simde_assert_equal_f16(r13, test_vec[i].r13, 1); + simde_assert_equal_f16(r16, test_vec[i].r16, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + int32_t a = simde_test_codegen_random_i32(); + simde_float16_t r3 = simde_vcvth_n_f16_s32(a, 3); + simde_float16_t r6 = simde_vcvth_n_f16_s32(a, 6); + simde_float16_t r10 = simde_vcvth_n_f16_s32(a, 10); + simde_float16_t r13 = simde_vcvth_n_f16_s32(a, 13); + simde_float16_t r16 = simde_vcvth_n_f16_s32(a, 16); + + simde_test_codegen_write_i32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_f16_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - int64_t a[1]; - simde_float16_t r3[1]; - simde_float16_t r6[1]; - simde_float16_t r10[1]; - simde_float16_t r13[1]; - simde_float16_t r16[1]; + int64_t a; + simde_float16_t r3; + simde_float16_t r6; + simde_float16_t r10; + simde_float16_t r13; + simde_float16_t r16; } test_vec[] = { - { { -INT64_C(7987073179265747968) }, - { -SIMDE_FLOAT16_C(998384147408218496.000) }, - { -SIMDE_FLOAT16_C(124798018426027312.000) }, - { -SIMDE_FLOAT16_C(7799876151626707.000) }, - { -SIMDE_FLOAT16_C(974984518953338.375) }, - { -SIMDE_FLOAT16_C(121873064869167.297) } }, + { -INT64_C( 4440601166441389988), + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF }, + { -INT64_C( 7975419144118430292), + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF }, + { INT64_C( 1389104449129453846), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { -INT64_C( 5568797330875120692), + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF, + SIMDE_NINFINITYHF }, + { INT64_C( 5156136258357414408), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { INT64_C( 4249388297338128092), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { INT64_C( 2498231527699660661), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { INT64_C( 7425007925136307715), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - int64_t a = test_vec[i].a[0]; + int64_t a = test_vec[i].a; simde_float16_t r3 = simde_vcvth_n_f16_s64(a, 3); simde_float16_t r6 = simde_vcvth_n_f16_s64(a, 6); simde_float16_t r10 = simde_vcvth_n_f16_s64(a, 10); simde_float16_t r13 = simde_vcvth_n_f16_s64(a, 13); simde_float16_t r16 = simde_vcvth_n_f16_s64(a, 16); - simde_assert_equal_f16(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f16(r6, test_vec[i].r6[0], 1); - simde_assert_equal_f16(r10, test_vec[i].r10[0], 1); - simde_assert_equal_f16(r13, test_vec[i].r13[0], 1); - simde_assert_equal_f16(r16, test_vec[i].r16[0], 1); + simde_assert_equal_f16(r3, test_vec[i].r3, 1); + simde_assert_equal_f16(r6, test_vec[i].r6, 1); + simde_assert_equal_f16(r10, test_vec[i].r10, 1); + simde_assert_equal_f16(r13, test_vec[i].r13, 1); + simde_assert_equal_f16(r16, test_vec[i].r16, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + int64_t a = simde_test_codegen_random_i64(); + simde_float16_t r3 = simde_vcvth_n_f16_s64(a, 3); + simde_float16_t r6 = simde_vcvth_n_f16_s64(a, 6); + simde_float16_t r10 = simde_vcvth_n_f16_s64(a, 10); + simde_float16_t r13 = simde_vcvth_n_f16_s64(a, 13); + simde_float16_t r16 = simde_vcvth_n_f16_s64(a, 16); + + simde_test_codegen_write_i64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[1]; simde_float16_t r3[1]; @@ -393,17 +805,17 @@ test_simde_vcvth_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { simde_float16_t r16[1]; } test_vec[] = { { { UINT16_C( 195) }, - { SIMDE_FLOAT16_C( 24.375) }, - { SIMDE_FLOAT16_C( 3.047) }, - { SIMDE_FLOAT16_C( 0.190) }, - { SIMDE_FLOAT16_C( 0.024) }, - { SIMDE_FLOAT16_C( 0.003) } }, + { SIMDE_FLOAT16_VALUE( 24.375) }, + { SIMDE_FLOAT16_VALUE( 3.047) }, + { SIMDE_FLOAT16_VALUE( 0.190) }, + { SIMDE_FLOAT16_VALUE( 0.024) }, + { SIMDE_FLOAT16_VALUE( 0.003) } }, { { UINT16_C( 47989) }, - { SIMDE_FLOAT16_C( 5998.625) }, - { SIMDE_FLOAT16_C( 749.828) }, - { SIMDE_FLOAT16_C( 46.864) }, - { SIMDE_FLOAT16_C( 5.858) }, - { SIMDE_FLOAT16_C( 0.732) } }, + { SIMDE_FLOAT16_VALUE( 5998.625) }, + { SIMDE_FLOAT16_VALUE( 749.828) }, + { SIMDE_FLOAT16_VALUE( 46.864) }, + { SIMDE_FLOAT16_VALUE( 5.858) }, + { SIMDE_FLOAT16_VALUE( 0.732) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -422,94 +834,227 @@ test_simde_vcvth_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x1_t a = simde_test_arm_neon_random_u16x1(); + simde_float16_t r3 = simde_vcvth_n_f16_u16(a, 3); + simde_float16_t r6 = simde_vcvth_n_f16_u16(a, 6); + simde_float16_t r10 = simde_vcvth_n_f16_u16(a, 10); + simde_float16_t r13 = simde_vcvth_n_f16_u16(a, 13); + simde_float16_t r16 = simde_vcvth_n_f16_u16(a, 16); + + simde_test_arm_neon_write_u16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_f16_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - uint32_t a[1]; - simde_float16_t r3[1]; - simde_float16_t r6[1]; - simde_float16_t r10[1]; - simde_float16_t r13[1]; - simde_float16_t r16[1]; + uint32_t a; + simde_float16_t r3; + simde_float16_t r6; + simde_float16_t r10; + simde_float16_t r13; + simde_float16_t r16; } test_vec[] = { - { { UINT32_C(2341947767) }, - { SIMDE_FLOAT16_C(292743470.875) }, - { SIMDE_FLOAT16_C(36592933.859) }, - { SIMDE_FLOAT16_C(2287058.366) }, - { SIMDE_FLOAT16_C(285882.296) }, - { SIMDE_FLOAT16_C( 35735.287) } }, - { { UINT32_C(2631710417) }, - { SIMDE_FLOAT16_C(328963802.125) }, - { SIMDE_FLOAT16_C(41120475.266) }, - { SIMDE_FLOAT16_C(2570029.704) }, - { SIMDE_FLOAT16_C(321253.713) }, - { SIMDE_FLOAT16_C( 40156.714) } }, + { UINT32_C(1379136183), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 21040.00) }, + { UINT32_C( 345686584), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 42208.00), + SIMDE_FLOAT16_VALUE( 5276.00) }, + { UINT32_C(1836786760), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 28032.00) }, + { UINT32_C(1990685696), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 30368.00) }, + { UINT32_C( 151904435), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 18544.00), + SIMDE_FLOAT16_VALUE( 2318.00) }, + { UINT32_C(1663809632), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 25392.00) }, + { UINT32_C(3451609198), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 52672.00) }, + { UINT32_C( 87344717), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_FLOAT16_VALUE( 10664.00), + SIMDE_FLOAT16_VALUE( 1333.00) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - uint32_t a = test_vec[i].a[0]; + uint32_t a = test_vec[i].a; simde_float16_t r3 = simde_vcvth_n_f16_u32(a, 3); simde_float16_t r6 = simde_vcvth_n_f16_u32(a, 6); simde_float16_t r10 = simde_vcvth_n_f16_u32(a, 10); simde_float16_t r13 = simde_vcvth_n_f16_u32(a, 13); simde_float16_t r16 = simde_vcvth_n_f16_u32(a, 16); - simde_assert_equal_f16(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f16(r6, test_vec[i].r6[0], 1); - simde_assert_equal_f16(r10, test_vec[i].r10[0], 1); - simde_assert_equal_f16(r13, test_vec[i].r13[0], 1); - simde_assert_equal_f16(r16, test_vec[i].r16[0], 1); + simde_assert_equal_f16(r3, test_vec[i].r3, 1); + simde_assert_equal_f16(r6, test_vec[i].r6, 1); + simde_assert_equal_f16(r10, test_vec[i].r10, 1); + simde_assert_equal_f16(r13, test_vec[i].r13, 1); + simde_assert_equal_f16(r16, test_vec[i].r16, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + uint32_t a = simde_test_codegen_random_u32(); + simde_float16_t r3 = simde_vcvth_n_f16_u32(a, 3); + simde_float16_t r6 = simde_vcvth_n_f16_u32(a, 6); + simde_float16_t r10 = simde_vcvth_n_f16_u32(a, 10); + simde_float16_t r13 = simde_vcvth_n_f16_u32(a, 13); + simde_float16_t r16 = simde_vcvth_n_f16_u32(a, 16); + + simde_test_codegen_write_u32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvth_n_f16_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - uint64_t a[1]; - simde_float16_t r3[1]; - simde_float16_t r6[1]; - simde_float16_t r10[1]; - simde_float16_t r13[1]; - simde_float16_t r16[1]; + uint64_t a; + simde_float16_t r3; + simde_float16_t r6; + simde_float16_t r10; + simde_float16_t r13; + simde_float16_t r16; } test_vec[] = { - { { UINT64_C(16900905102085820416) }, - { SIMDE_FLOAT16_C(2112613137760727552.000) }, - { SIMDE_FLOAT16_C(264076642220090944.000) }, - { SIMDE_FLOAT16_C(16504790138755684.000) }, - { SIMDE_FLOAT16_C(2063098767344460.500) }, - { SIMDE_FLOAT16_C(257887345918057.562) } }, - { { UINT64_C(13990626116228507648) }, - { SIMDE_FLOAT16_C(1748828264528563456.000) }, - { SIMDE_FLOAT16_C(218603533066070432.000) }, - { SIMDE_FLOAT16_C(13662720816629402.000) }, - { SIMDE_FLOAT16_C(1707840102078675.250) }, - { SIMDE_FLOAT16_C(213480012759834.406) } }, + { UINT64_C( 8216238257635551160), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C(12073173083987345430), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C(13918897271932492390), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C( 7173885298450818364), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C(17133198039240140329), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C(10481442221277357273), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C( 4413106528267478314), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, + { UINT64_C(13219284874911206502), + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF, + SIMDE_INFINITYHF }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - uint64_t a = test_vec[i].a[0]; + uint64_t a = test_vec[i].a; simde_float16_t r3 = simde_vcvth_n_f16_u64(a, 3); simde_float16_t r6 = simde_vcvth_n_f16_u64(a, 6); simde_float16_t r10 = simde_vcvth_n_f16_u64(a, 10); simde_float16_t r13 = simde_vcvth_n_f16_u64(a, 13); simde_float16_t r16 = simde_vcvth_n_f16_u64(a, 16); - simde_assert_equal_f16(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f16(r6, test_vec[i].r6[0], 1); - simde_assert_equal_f16(r10, test_vec[i].r10[0], 1); - simde_assert_equal_f16(r13, test_vec[i].r13[0], 1); - simde_assert_equal_f16(r16, test_vec[i].r16[0], 1); + simde_assert_equal_f16(r3, test_vec[i].r3, 1); + simde_assert_equal_f16(r6, test_vec[i].r6, 1); + simde_assert_equal_f16(r10, test_vec[i].r10, 1); + simde_assert_equal_f16(r13, test_vec[i].r13, 1); + simde_assert_equal_f16(r16, test_vec[i].r16, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + uint64_t a = simde_test_codegen_random_u64(); + simde_float16_t r3 = simde_vcvth_n_f16_u64(a, 3); + simde_float16_t r6 = simde_vcvth_n_f16_u64(a, 6); + simde_float16_t r10 = simde_vcvth_n_f16_u64(a, 10); + simde_float16_t r13 = simde_vcvth_n_f16_u64(a, 13); + simde_float16_t r16 = simde_vcvth_n_f16_u64(a, 16); + + simde_test_codegen_write_u64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f16(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvts_n_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[1]; int32_t r3[1]; @@ -579,21 +1124,46 @@ test_simde_vcvts_n_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { int32_t r3 = simde_vcvts_n_s32_f32(a, 3); int32_t r10 = simde_vcvts_n_s32_f32(a, 10); int32_t r16 = simde_vcvts_n_s32_f32(a, 16); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) int32_t r23 = simde_vcvts_n_s32_f32(a, 23); int32_t r32 = simde_vcvts_n_s32_f32(a, 32); + #endif simde_assert_equal_i32(r3, test_vec[i].r3[0]); simde_assert_equal_i32(r10, test_vec[i].r10[0]); simde_assert_equal_i32(r16, test_vec[i].r16[0]); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) simde_assert_equal_i32(r23, test_vec[i].r23[0]); simde_assert_equal_i32(r32, test_vec[i].r32[0]); + #endif } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + int32_t r3 = simde_vcvts_n_s32_f32(a, 3); + int32_t r10 = simde_vcvts_n_s32_f32(a, 10); + int32_t r16 = simde_vcvts_n_s32_f32(a, 16); + int32_t r23 = simde_vcvts_n_s32_f32(a, 23); + int32_t r32 = simde_vcvts_n_s32_f32(a, 32); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvts_n_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[1]; uint32_t r3[1]; @@ -602,12 +1172,6 @@ test_simde_vcvts_n_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { uint32_t r23[1]; uint32_t r32[1]; } test_vec[] = { - { { -SIMDE_FLOAT32_C( 490.307) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) } }, { { SIMDE_FLOAT32_C( 312.384) }, { UINT32_C( 2499) }, { UINT32_C( 319881) }, @@ -626,24 +1190,6 @@ test_simde_vcvts_n_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { { UINT32_C(64368868) }, { UINT32_MAX }, { UINT32_MAX } }, - { { -SIMDE_FLOAT32_C( 471.929) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) } }, - { { -SIMDE_FLOAT32_C( 605.541) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) } }, - { { -SIMDE_FLOAT32_C( 977.856) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) }, - { UINT32_C( 0) } }, { { SIMDE_FLOAT32_C( 584.450) }, { UINT32_C( 4675) }, { UINT32_C( 598476) }, @@ -657,177 +1203,194 @@ test_simde_vcvts_n_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { uint32_t r3 = simde_vcvts_n_u32_f32(a, 3); uint32_t r10 = simde_vcvts_n_u32_f32(a, 10); uint32_t r16 = simde_vcvts_n_u32_f32(a, 16); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) uint32_t r23 = simde_vcvts_n_u32_f32(a, 23); uint32_t r32 = simde_vcvts_n_u32_f32(a, 32); + #endif simde_assert_equal_u32(r3, test_vec[i].r3[0]); simde_assert_equal_u32(r10, test_vec[i].r10[0]); simde_assert_equal_u32(r16, test_vec[i].r16[0]); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) simde_assert_equal_u32(r23, test_vec[i].r23[0]); simde_assert_equal_u32(r32, test_vec[i].r32[0]); + #endif } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32x1_t a = simde_test_arm_neon_random_f32x1(-1000.0f, 1000.0f); + uint32_t r3 = simde_vcvts_n_u32_f32(a, 3); + uint32_t r10 = simde_vcvts_n_u32_f32(a, 10); + uint32_t r16 = simde_vcvts_n_u32_f32(a, 16); + uint32_t r23 = simde_vcvts_n_u32_f32(a, 23); + uint32_t r32 = simde_vcvts_n_u32_f32(a, 32); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvts_n_f32_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - int32_t a[1]; - simde_float32_t r3[1]; - simde_float32_t r10[1]; - simde_float32_t r16[1]; - simde_float32_t r23[1]; - simde_float32_t r32[1]; + int32_t a; + simde_float32_t r3; + simde_float32_t r10; + simde_float32_t r16; + simde_float32_t r23; + simde_float32_t r32; } test_vec[] = { - { { INT32_C( 366157) }, - { SIMDE_FLOAT32_C(45769.625) }, - { SIMDE_FLOAT32_C( 357.575) }, - { SIMDE_FLOAT32_C( 5.587) }, - { SIMDE_FLOAT32_C( 0.044) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { -INT32_C( 731804) }, - { -SIMDE_FLOAT32_C(91475.500) }, - { -SIMDE_FLOAT32_C( 714.652) }, - { -SIMDE_FLOAT32_C( 11.166) }, - { -SIMDE_FLOAT32_C( 0.087) }, - { -SIMDE_FLOAT32_C( 0.000) } }, - { { INT32_C( 547841) }, - { SIMDE_FLOAT32_C(68480.125) }, - { SIMDE_FLOAT32_C( 535.001) }, - { SIMDE_FLOAT32_C( 8.359) }, - { SIMDE_FLOAT32_C( 0.065) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { -INT32_C( 419755) }, - { -SIMDE_FLOAT32_C(52469.375) }, - { -SIMDE_FLOAT32_C( 409.917) }, - { -SIMDE_FLOAT32_C( 6.405) }, - { -SIMDE_FLOAT32_C( 0.050) }, - { -SIMDE_FLOAT32_C( 0.000) } }, - { { -INT32_C( 288716) }, - { -SIMDE_FLOAT32_C(36089.500) }, - { -SIMDE_FLOAT32_C( 281.949) }, - { -SIMDE_FLOAT32_C( 4.405) }, - { -SIMDE_FLOAT32_C( 0.034) }, - { -SIMDE_FLOAT32_C( 0.000) } }, - { { -INT32_C( 1075167) }, - { -SIMDE_FLOAT32_C(134395.875) }, - { -SIMDE_FLOAT32_C(1049.968) }, - { -SIMDE_FLOAT32_C( 16.406) }, - { -SIMDE_FLOAT32_C( 0.128) }, - { -SIMDE_FLOAT32_C( 0.000) } }, - { { INT32_C( 18967) }, - { SIMDE_FLOAT32_C(2370.875) }, - { SIMDE_FLOAT32_C( 18.522) }, - { SIMDE_FLOAT32_C( 0.289) }, - { SIMDE_FLOAT32_C( 0.002) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { INT32_C( 662857) }, - { SIMDE_FLOAT32_C(82857.125) }, - { SIMDE_FLOAT32_C( 647.321) }, - { SIMDE_FLOAT32_C( 10.114) }, - { SIMDE_FLOAT32_C( 0.079) }, - { SIMDE_FLOAT32_C( 0.000) } }, + { INT32_C( 382290179), + SIMDE_FLOAT32_C(47786272.00), + SIMDE_FLOAT32_C(373330.25), + SIMDE_FLOAT32_C( 5833.29), + SIMDE_FLOAT32_C( 45.57), + SIMDE_FLOAT32_C( 0.09) }, + { -INT32_C( 1375582254), + SIMDE_FLOAT32_C(-171947776.00), + SIMDE_FLOAT32_C(-1343342.00), + SIMDE_FLOAT32_C(-20989.72), + SIMDE_FLOAT32_C( -163.98), + SIMDE_FLOAT32_C( -0.32) }, + { -INT32_C( 176355251), + SIMDE_FLOAT32_C(-22044406.00), + SIMDE_FLOAT32_C(-172221.92), + SIMDE_FLOAT32_C( -2690.97), + SIMDE_FLOAT32_C( -21.02), + SIMDE_FLOAT32_C( -0.04) }, + { -INT32_C( 1699124069), + SIMDE_FLOAT32_C(-212390512.00), + SIMDE_FLOAT32_C(-1659300.88), + SIMDE_FLOAT32_C(-25926.58), + SIMDE_FLOAT32_C( -202.55), + SIMDE_FLOAT32_C( -0.40) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - int32_t a = test_vec[i].a[0]; + int32_t a = test_vec[i].a; simde_float32_t r3 = simde_vcvts_n_f32_s32(a, 3); simde_float32_t r10 = simde_vcvts_n_f32_s32(a, 10); simde_float32_t r16 = simde_vcvts_n_f32_s32(a, 16); simde_float32_t r23 = simde_vcvts_n_f32_s32(a, 23); simde_float32_t r32 = simde_vcvts_n_f32_s32(a, 32); - simde_assert_equal_f32(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f32(r10, test_vec[i].r10[0], 1); - simde_assert_equal_f32(r16, test_vec[i].r16[0], 1); - simde_assert_equal_f32(r23, test_vec[i].r23[0], 1); - simde_assert_equal_f32(r32, test_vec[i].r32[0], 1); + simde_assert_equal_f32(r3, test_vec[i].r3, 1); + simde_assert_equal_f32(r10, test_vec[i].r10, 1); + simde_assert_equal_f32(r16, test_vec[i].r16, 1); + simde_assert_equal_f32(r23, test_vec[i].r23, 1); + simde_assert_equal_f32(r32, test_vec[i].r32, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 4 ; i++) { + int32_t a = simde_test_codegen_random_i32(); + simde_float32_t r3 = simde_vcvts_n_f32_s32(a, 3); + simde_float32_t r10 = simde_vcvts_n_f32_s32(a, 10); + simde_float32_t r16 = simde_vcvts_n_f32_s32(a, 16); + simde_float32_t r23 = simde_vcvts_n_f32_s32(a, 23); + simde_float32_t r32 = simde_vcvts_n_f32_s32(a, 32); + + simde_test_codegen_write_i32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f32(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvts_n_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - uint32_t a[1]; - simde_float32_t r3[1]; - simde_float32_t r10[1]; - simde_float32_t r16[1]; - simde_float32_t r23[1]; - simde_float32_t r32[1]; + uint32_t a; + simde_float32_t r3; + simde_float32_t r10; + simde_float32_t r16; + simde_float32_t r23; + simde_float32_t r32; } test_vec[] = { - { { UINT32_C( 2622046) }, - { SIMDE_FLOAT32_C(327755.750) }, - { SIMDE_FLOAT32_C(2560.592) }, - { SIMDE_FLOAT32_C( 40.009) }, - { SIMDE_FLOAT32_C( 0.313) }, - { SIMDE_FLOAT32_C( 0.001) } }, - { { UINT32_C( 1200641) }, - { SIMDE_FLOAT32_C(150080.125) }, - { SIMDE_FLOAT32_C(1172.501) }, - { SIMDE_FLOAT32_C( 18.320) }, - { SIMDE_FLOAT32_C( 0.143) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { UINT32_C( 48082) }, - { SIMDE_FLOAT32_C(6010.250) }, - { SIMDE_FLOAT32_C( 46.955) }, - { SIMDE_FLOAT32_C( 0.734) }, - { SIMDE_FLOAT32_C( 0.006) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { UINT32_C( 3590267) }, - { SIMDE_FLOAT32_C(448783.375) }, - { SIMDE_FLOAT32_C(3506.120) }, - { SIMDE_FLOAT32_C( 54.783) }, - { SIMDE_FLOAT32_C( 0.428) }, - { SIMDE_FLOAT32_C( 0.001) } }, - { { UINT32_C( 3258478) }, - { SIMDE_FLOAT32_C(407309.750) }, - { SIMDE_FLOAT32_C(3182.107) }, - { SIMDE_FLOAT32_C( 49.720) }, - { SIMDE_FLOAT32_C( 0.388) }, - { SIMDE_FLOAT32_C( 0.001) } }, - { { UINT32_C( 1129370) }, - { SIMDE_FLOAT32_C(141171.250) }, - { SIMDE_FLOAT32_C(1102.900) }, - { SIMDE_FLOAT32_C( 17.233) }, - { SIMDE_FLOAT32_C( 0.135) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { UINT32_C( 403080) }, - { SIMDE_FLOAT32_C(50385.000) }, - { SIMDE_FLOAT32_C( 393.633) }, - { SIMDE_FLOAT32_C( 6.151) }, - { SIMDE_FLOAT32_C( 0.048) }, - { SIMDE_FLOAT32_C( 0.000) } }, - { { UINT32_C( 2192389) }, - { SIMDE_FLOAT32_C(274048.625) }, - { SIMDE_FLOAT32_C(2141.005) }, - { SIMDE_FLOAT32_C( 33.453) }, - { SIMDE_FLOAT32_C( 0.261) }, - { SIMDE_FLOAT32_C( 0.001) } }, + { UINT32_C(1716442256), + SIMDE_FLOAT32_C(214555280.00), + SIMDE_FLOAT32_C(1676213.12), + SIMDE_FLOAT32_C( 26190.83), + SIMDE_FLOAT32_C( 204.62), + SIMDE_FLOAT32_C( 0.40) }, + { UINT32_C(1980926086), + SIMDE_FLOAT32_C(247615760.00), + SIMDE_FLOAT32_C(1934498.12), + SIMDE_FLOAT32_C( 30226.53), + SIMDE_FLOAT32_C( 236.14), + SIMDE_FLOAT32_C( 0.46) }, + { UINT32_C( 767096392), + SIMDE_FLOAT32_C(95887048.00), + SIMDE_FLOAT32_C(749117.56), + SIMDE_FLOAT32_C( 11704.96), + SIMDE_FLOAT32_C( 91.45), + SIMDE_FLOAT32_C( 0.18) }, + { UINT32_C(2969434285), + SIMDE_FLOAT32_C(371179296.00), + SIMDE_FLOAT32_C(2899838.25), + SIMDE_FLOAT32_C( 45309.97), + SIMDE_FLOAT32_C( 353.98), + SIMDE_FLOAT32_C( 0.69) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - uint32_t a = test_vec[i].a[0]; + uint32_t a = test_vec[i].a; simde_float32_t r3 = simde_vcvts_n_f32_u32(a, 3); simde_float32_t r10 = simde_vcvts_n_f32_u32(a, 10); simde_float32_t r16 = simde_vcvts_n_f32_u32(a, 16); simde_float32_t r23 = simde_vcvts_n_f32_u32(a, 23); simde_float32_t r32 = simde_vcvts_n_f32_u32(a, 32); - simde_assert_equal_f32(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f32(r10, test_vec[i].r10[0], 1); - simde_assert_equal_f32(r16, test_vec[i].r16[0], 1); - simde_assert_equal_f32(r23, test_vec[i].r23[0], 1); - simde_assert_equal_f32(r32, test_vec[i].r32[0], 1); + simde_assert_equal_f32(r3, test_vec[i].r3, 1); + simde_assert_equal_f32(r10, test_vec[i].r10, 1); + simde_assert_equal_f32(r16, test_vec[i].r16, 1); + simde_assert_equal_f32(r23, test_vec[i].r23, 1); + simde_assert_equal_f32(r32, test_vec[i].r32, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 4 ; i++) { + uint32_t a = simde_test_codegen_random_u32(); + simde_float32_t r3 = simde_vcvts_n_f32_u32(a, 3); + simde_float32_t r10 = simde_vcvts_n_f32_u32(a, 10); + simde_float32_t r16 = simde_vcvts_n_f32_u32(a, 16); + simde_float32_t r23 = simde_vcvts_n_f32_u32(a, 23); + simde_float32_t r32 = simde_vcvts_n_f32_u32(a, 32); + + simde_test_codegen_write_u32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f32(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f32(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtd_n_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64_t a[1]; int64_t r3[1]; @@ -891,21 +1454,46 @@ test_simde_vcvtd_n_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { int64_t r3 = simde_vcvtd_n_s64_f64(a, 3); int64_t r17 = simde_vcvtd_n_s64_f64(a, 17); int64_t r38 = simde_vcvtd_n_s64_f64(a, 38); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) int64_t r55 = simde_vcvtd_n_s64_f64(a, 55); int64_t r64 = simde_vcvtd_n_s64_f64(a, 64); + #endif simde_assert_equal_i64(r3, test_vec[i].r3[0]); simde_assert_equal_i64(r17, test_vec[i].r17[0]); simde_assert_equal_i64(r38, test_vec[i].r38[0]); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) simde_assert_equal_i64(r55, test_vec[i].r55[0]); simde_assert_equal_i64(r64, test_vec[i].r64[0]); + #endif } 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)); + int64_t r3 = simde_vcvtd_n_s64_f64(a, 3); + int64_t r17 = simde_vcvtd_n_s64_f64(a, 17); + int64_t r38 = simde_vcvtd_n_s64_f64(a, 38); + int64_t r55 = simde_vcvtd_n_s64_f64(a, 55); + int64_t r64 = simde_vcvtd_n_s64_f64(a, 64); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtd_n_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64_t a[1]; uint64_t r3[1]; @@ -914,30 +1502,6 @@ test_simde_vcvtd_n_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { uint64_t r55[1]; uint64_t r64[1]; } test_vec[] = { - { { -SIMDE_FLOAT64_C( 57326.309) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 59785.695) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 27056.633) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 63444.078) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) } }, { { SIMDE_FLOAT64_C( 84182.672) }, { UINT64_C( 673461) }, { UINT64_C( 11033991184) }, @@ -950,18 +1514,6 @@ test_simde_vcvtd_n_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { { UINT64_C( 19707315738134972) }, { UINT64_MAX }, { UINT64_MAX } }, - { { -SIMDE_FLOAT64_C( 56773.816) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 65364.516) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) }, - { UINT64_C( 0) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -969,176 +1521,241 @@ test_simde_vcvtd_n_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { uint64_t r3 = simde_vcvtd_n_u64_f64(a, 3); uint64_t r17 = simde_vcvtd_n_u64_f64(a, 17); uint64_t r38 = simde_vcvtd_n_u64_f64(a, 38); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) uint64_t r55 = simde_vcvtd_n_u64_f64(a, 55); uint64_t r64 = simde_vcvtd_n_u64_f64(a, 64); + #endif simde_assert_equal_u64(r3, test_vec[i].r3[0]); simde_assert_equal_u64(r17, test_vec[i].r17[0]); simde_assert_equal_u64(r38, test_vec[i].r38[0]); + #if !defined(SIMDE_FAST_CONVERSION_RANGE) simde_assert_equal_u64(r55, test_vec[i].r55[0]); simde_assert_equal_u64(r64, test_vec[i].r64[0]); + #endif } 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)); + uint64_t r3 = simde_vcvtd_n_u64_f64(a, 3); + uint64_t r17 = simde_vcvtd_n_u64_f64(a, 17); + uint64_t r38 = simde_vcvtd_n_u64_f64(a, 38); + uint64_t r55 = simde_vcvtd_n_u64_f64(a, 55); + uint64_t r64 = simde_vcvtd_n_u64_f64(a, 64); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x1(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtd_n_f64_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - int64_t a[1]; - simde_float64_t r3[1]; - simde_float64_t r17[1]; - simde_float64_t r38[1]; - simde_float64_t r55[1]; - simde_float64_t r64[1]; + int64_t a; + simde_float64_t r3; + simde_float64_t r17; + simde_float64_t r38; + simde_float64_t r55; + simde_float64_t r64; } test_vec[] = { - { { -INT64_C( 735807757379453) }, - { -SIMDE_FLOAT64_C( 91975969672431.625) }, - { -SIMDE_FLOAT64_C( 5613767680.202) }, - { -SIMDE_FLOAT64_C( 2676.853) }, - { -SIMDE_FLOAT64_C( 0.020) }, - { -SIMDE_FLOAT64_C( 0.000) } }, - { { INT64_C( 6167495300835119) }, - { SIMDE_FLOAT64_C( 770936912604389.875) }, - { SIMDE_FLOAT64_C( 47054254919.702) }, - { SIMDE_FLOAT64_C( 22437.217) }, - { SIMDE_FLOAT64_C( 0.171) }, - { SIMDE_FLOAT64_C( 0.000) } }, - { { -INT64_C( 6055022287639449) }, - { -SIMDE_FLOAT64_C( 756877785954931.125) }, - { -SIMDE_FLOAT64_C( 46196153927.913) }, - { -SIMDE_FLOAT64_C( 22028.043) }, - { -SIMDE_FLOAT64_C( 0.168) }, - { -SIMDE_FLOAT64_C( 0.000) } }, - { { -INT64_C( 2832446886359960) }, - { -SIMDE_FLOAT64_C( 354055860794995.000) }, - { -SIMDE_FLOAT64_C( 21609854784.851) }, - { -SIMDE_FLOAT64_C( 10304.382) }, - { -SIMDE_FLOAT64_C( 0.079) }, - { -SIMDE_FLOAT64_C( 0.000) } }, - { { -INT64_C( 3342277711258023) }, - { -SIMDE_FLOAT64_C( 417784713907252.875) }, - { -SIMDE_FLOAT64_C( 25499555292.191) }, - { -SIMDE_FLOAT64_C( 12159.135) }, - { -SIMDE_FLOAT64_C( 0.093) }, - { -SIMDE_FLOAT64_C( 0.000) } }, - { { -INT64_C( 8372982121429873) }, - { -SIMDE_FLOAT64_C(1046622765178734.125) }, - { -SIMDE_FLOAT64_C( 63880784007.491) }, - { -SIMDE_FLOAT64_C( 30460.732) }, - { -SIMDE_FLOAT64_C( 0.232) }, - { -SIMDE_FLOAT64_C( 0.000) } }, - { { INT64_C( 8542511432801410) }, - { SIMDE_FLOAT64_C(1067813929100176.250) }, - { SIMDE_FLOAT64_C( 65174190008.556) }, - { SIMDE_FLOAT64_C( 31077.476) }, - { SIMDE_FLOAT64_C( 0.237) }, - { SIMDE_FLOAT64_C( 0.000) } }, - { { INT64_C( 5736898574813231) }, - { SIMDE_FLOAT64_C( 717112321851653.875) }, - { SIMDE_FLOAT64_C( 43769062613.016) }, - { SIMDE_FLOAT64_C( 20870.715) }, - { SIMDE_FLOAT64_C( 0.159) }, - { SIMDE_FLOAT64_C( 0.000) } }, + { INT64_C( 1802271432678331317), + SIMDE_FLOAT64_C(225283929084791424.00), + SIMDE_FLOAT64_C(13750239812304.16), + SIMDE_FLOAT64_C(6556625.28), + SIMDE_FLOAT64_C( 50.02), + SIMDE_FLOAT64_C( 0.10) }, + { -INT64_C( 900386704286887549), + SIMDE_FLOAT64_C(-112548338035860944.00), + SIMDE_FLOAT64_C(-6869405397696.59), + SIMDE_FLOAT64_C(-3275587.75), + SIMDE_FLOAT64_C( -24.99), + SIMDE_FLOAT64_C( -0.05) }, + { INT64_C( 7487442315758603864), + SIMDE_FLOAT64_C(935930289469825536.00), + SIMDE_FLOAT64_C(57124651456898.53), + SIMDE_FLOAT64_C(27239156.46), + SIMDE_FLOAT64_C( 207.82), + SIMDE_FLOAT64_C( 0.41) }, + { INT64_C( 8649336546515843284), + SIMDE_FLOAT64_C(1081167068314480384.00), + SIMDE_FLOAT64_C(65989200946928.73), + SIMDE_FLOAT64_C(31466103.05), + SIMDE_FLOAT64_C( 240.07), + SIMDE_FLOAT64_C( 0.47) }, + { INT64_C( 2331510679777683696), + SIMDE_FLOAT64_C(291438834972210432.00), + SIMDE_FLOAT64_C(17788014829846.83), + SIMDE_FLOAT64_C(8481986.44), + SIMDE_FLOAT64_C( 64.71), + SIMDE_FLOAT64_C( 0.13) }, + { INT64_C( 6991199644197509633), + SIMDE_FLOAT64_C(873899955524688768.00), + SIMDE_FLOAT64_C(53338620332317.43), + SIMDE_FLOAT64_C(25433836.14), + SIMDE_FLOAT64_C( 194.04), + SIMDE_FLOAT64_C( 0.38) }, + { -INT64_C( 7255582914630055223), + SIMDE_FLOAT64_C(-906947864328756864.00), + SIMDE_FLOAT64_C(-55355704609909.48), + SIMDE_FLOAT64_C(-26395656.88), + SIMDE_FLOAT64_C( -201.38), + SIMDE_FLOAT64_C( -0.39) }, + { -INT64_C( 4777772969744650379), + SIMDE_FLOAT64_C(-597221621218081280.00), + SIMDE_FLOAT64_C(-36451514966923.91), + SIMDE_FLOAT64_C(-17381436.81), + SIMDE_FLOAT64_C( -132.61), + SIMDE_FLOAT64_C( -0.26) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - int64_t a = test_vec[i].a[0]; + int64_t a = test_vec[i].a; simde_float64_t r3 = simde_vcvtd_n_f64_s64(a, 3); simde_float64_t r17 = simde_vcvtd_n_f64_s64(a, 17); simde_float64_t r38 = simde_vcvtd_n_f64_s64(a, 38); simde_float64_t r55 = simde_vcvtd_n_f64_s64(a, 55); simde_float64_t r64 = simde_vcvtd_n_f64_s64(a, 64); - simde_assert_equal_f64(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f64(r17, test_vec[i].r17[0], 1); - simde_assert_equal_f64(r38, test_vec[i].r38[0], 1); - simde_assert_equal_f64(r55, test_vec[i].r55[0], 1); - simde_assert_equal_f64(r64, test_vec[i].r64[0], 1); + simde_assert_equal_f64(r3, test_vec[i].r3, 1); + simde_assert_equal_f64(r17, test_vec[i].r17, 1); + simde_assert_equal_f64(r38, test_vec[i].r38, 1); + simde_assert_equal_f64(r55, test_vec[i].r55, 1); + simde_assert_equal_f64(r64, test_vec[i].r64, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + int64_t a = simde_test_codegen_random_i64(); + simde_float64_t r3 = simde_vcvtd_n_f64_s64(a, 3); + simde_float64_t r17 = simde_vcvtd_n_f64_s64(a, 17); + simde_float64_t r38 = simde_vcvtd_n_f64_s64(a, 38); + simde_float64_t r55 = simde_vcvtd_n_f64_s64(a, 55); + simde_float64_t r64 = simde_vcvtd_n_f64_s64(a, 64); + + simde_test_codegen_write_i64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f64(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtd_n_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { - uint64_t a[1]; - simde_float64_t r3[1]; - simde_float64_t r17[1]; - simde_float64_t r38[1]; - simde_float64_t r55[1]; - simde_float64_t r64[1]; + uint64_t a; + simde_float64_t r3; + simde_float64_t r17; + simde_float64_t r38; + simde_float64_t r55; + simde_float64_t r64; } test_vec[] = { - { { UINT64_C( 17627676351447148) }, - { SIMDE_FLOAT64_C(2203459543930893.500) }, - { SIMDE_FLOAT64_C( 134488497554.376) }, - { SIMDE_FLOAT64_C( 64129.113) }, - { SIMDE_FLOAT64_C( 0.489) }, - { SIMDE_FLOAT64_C( 0.001) } }, - { { UINT64_C( 18207548249679672) }, - { SIMDE_FLOAT64_C(2275943531209959.000) }, - { SIMDE_FLOAT64_C( 138912569043.577) }, - { SIMDE_FLOAT64_C( 66238.675) }, - { SIMDE_FLOAT64_C( 0.505) }, - { SIMDE_FLOAT64_C( 0.001) } }, - { { UINT64_C( 12441429466244526) }, - { SIMDE_FLOAT64_C(1555178683280565.750) }, - { SIMDE_FLOAT64_C( 94920573930.699) }, - { SIMDE_FLOAT64_C( 45261.657) }, - { SIMDE_FLOAT64_C( 0.345) }, - { SIMDE_FLOAT64_C( 0.001) } }, - { { UINT64_C( 15941712238835774) }, - { SIMDE_FLOAT64_C(1992714029854471.750) }, - { SIMDE_FLOAT64_C( 121625612173.735) }, - { SIMDE_FLOAT64_C( 57995.611) }, - { SIMDE_FLOAT64_C( 0.442) }, - { SIMDE_FLOAT64_C( 0.001) } }, - { { UINT64_C( 9181954566203002) }, - { SIMDE_FLOAT64_C(1147744320775375.250) }, - { SIMDE_FLOAT64_C( 70052753953.575) }, - { SIMDE_FLOAT64_C( 33403.756) }, - { SIMDE_FLOAT64_C( 0.255) }, - { SIMDE_FLOAT64_C( 0.000) } }, - { { UINT64_C( 12439258589883542) }, - { SIMDE_FLOAT64_C(1554907323735442.750) }, - { SIMDE_FLOAT64_C( 94904011458.462) }, - { SIMDE_FLOAT64_C( 45253.759) }, - { SIMDE_FLOAT64_C( 0.345) }, - { SIMDE_FLOAT64_C( 0.001) } }, - { { UINT64_C( 3487789820586862) }, - { SIMDE_FLOAT64_C( 435973727573357.750) }, - { SIMDE_FLOAT64_C( 26609724583.335) }, - { SIMDE_FLOAT64_C( 12688.505) }, - { SIMDE_FLOAT64_C( 0.097) }, - { SIMDE_FLOAT64_C( 0.000) } }, - { { UINT64_C( 8325385935020280) }, - { SIMDE_FLOAT64_C(1040673241877535.000) }, - { SIMDE_FLOAT64_C( 63517653923.189) }, - { SIMDE_FLOAT64_C( 30287.578) }, - { SIMDE_FLOAT64_C( 0.231) }, - { SIMDE_FLOAT64_C( 0.000) } }, + { UINT64_C( 1176945894709255833), + SIMDE_FLOAT64_C(147118236838656992.00), + SIMDE_FLOAT64_C(8979384572671.94), + SIMDE_FLOAT64_C(4281704.22), + SIMDE_FLOAT64_C( 32.67), + SIMDE_FLOAT64_C( 0.06) }, + { UINT64_C( 1485949606174035764), + SIMDE_FLOAT64_C(185743700771754464.00), + SIMDE_FLOAT64_C(11336895799057.28), + SIMDE_FLOAT64_C(5405853.18), + SIMDE_FLOAT64_C( 41.24), + SIMDE_FLOAT64_C( 0.08) }, + { UINT64_C( 2779646423753012273), + SIMDE_FLOAT64_C(347455802969126528.00), + SIMDE_FLOAT64_C(21207019224189.85), + SIMDE_FLOAT64_C(10112294.78), + SIMDE_FLOAT64_C( 77.15), + SIMDE_FLOAT64_C( 0.15) }, + { UINT64_C( 360868977349458808), + SIMDE_FLOAT64_C(45108622168682352.00), + SIMDE_FLOAT64_C(2753211802287.74), + SIMDE_FLOAT64_C(1312833.69), + SIMDE_FLOAT64_C( 10.02), + SIMDE_FLOAT64_C( 0.02) }, + { UINT64_C(10380111440923722222), + SIMDE_FLOAT64_C(1297513930115465216.00), + SIMDE_FLOAT64_C(79193965461149.00), + SIMDE_FLOAT64_C(37762625.44), + SIMDE_FLOAT64_C( 288.11), + SIMDE_FLOAT64_C( 0.56) }, + { UINT64_C( 9763642735089037087), + SIMDE_FLOAT64_C(1220455341886129664.00), + SIMDE_FLOAT64_C(74490682488167.09), + SIMDE_FLOAT64_C(35519925.35), + SIMDE_FLOAT64_C( 271.00), + SIMDE_FLOAT64_C( 0.53) }, + { UINT64_C( 4393845023024577058), + SIMDE_FLOAT64_C(549230627878072128.00), + SIMDE_FLOAT64_C(33522377189823.74), + SIMDE_FLOAT64_C(15984715.08), + SIMDE_FLOAT64_C( 121.95), + SIMDE_FLOAT64_C( 0.24) }, + { UINT64_C( 6340649816565045645), + SIMDE_FLOAT64_C(792581227070630656.00), + SIMDE_FLOAT64_C(48375319035072.67), + SIMDE_FLOAT64_C(23067149.66), + SIMDE_FLOAT64_C( 175.99), + SIMDE_FLOAT64_C( 0.34) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { - uint64_t a = test_vec[i].a[0]; + uint64_t a = test_vec[i].a; simde_float64_t r3 = simde_vcvtd_n_f64_u64(a, 3); simde_float64_t r17 = simde_vcvtd_n_f64_u64(a, 17); simde_float64_t r38 = simde_vcvtd_n_f64_u64(a, 38); simde_float64_t r55 = simde_vcvtd_n_f64_u64(a, 55); simde_float64_t r64 = simde_vcvtd_n_f64_u64(a, 64); - simde_assert_equal_f64(r3, test_vec[i].r3[0], 1); - simde_assert_equal_f64(r17, test_vec[i].r17[0], 1); - simde_assert_equal_f64(r38, test_vec[i].r38[0], 1); - simde_assert_equal_f64(r55, test_vec[i].r55[0], 1); - simde_assert_equal_f64(r64, test_vec[i].r64[0], 1); + simde_assert_equal_f64(r3, test_vec[i].r3, 1); + simde_assert_equal_f64(r17, test_vec[i].r17, 1); + simde_assert_equal_f64(r38, test_vec[i].r38, 1); + simde_assert_equal_f64(r55, test_vec[i].r55, 1); + simde_assert_equal_f64(r64, test_vec[i].r64, 1); } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + uint64_t a = simde_test_codegen_random_u64(); + simde_float64_t r3 = simde_vcvtd_n_f64_u64(a, 3); + simde_float64_t r17 = simde_vcvtd_n_f64_u64(a, 17); + simde_float64_t r38 = simde_vcvtd_n_f64_u64(a, 38); + simde_float64_t r55 = simde_vcvtd_n_f64_u64(a, 55); + simde_float64_t r64 = simde_vcvtd_n_f64_u64(a, 64); + + simde_test_codegen_write_u64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_codegen_write_f64(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_f64(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; int16_t r3[4]; @@ -1175,10 +1792,31 @@ test_simde_vcvt_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x4_t r3 = simde_vcvt_n_s16_f16(a, 3); + simde_int16x4_t r6 = simde_vcvt_n_s16_f16(a, 6); + simde_int16x4_t r10 = simde_vcvt_n_s16_f16(a, 10); + simde_int16x4_t r13 = simde_vcvt_n_s16_f16(a, 13); + simde_int16x4_t r16 = simde_vcvt_n_s16_f16(a, 16); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[2]; int32_t r3[2]; @@ -1215,10 +1853,31 @@ test_simde_vcvt_n_s32_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_int32x2_t r3 = simde_vcvt_n_s32_f32(a, 3); + simde_int32x2_t r10 = simde_vcvt_n_s32_f32(a, 10); + simde_int32x2_t r16 = simde_vcvt_n_s32_f32(a, 16); + simde_int32x2_t r23 = simde_vcvt_n_s32_f32(a, 23); + simde_int32x2_t r32 = simde_vcvt_n_s32_f32(a, 32); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[1]; int64_t r3[1]; @@ -1266,10 +1925,33 @@ test_simde_vcvt_n_s64_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_int64x1_t r3 = simde_vcvt_n_s64_f64(a, 3); + simde_int64x1_t r17 = simde_vcvt_n_s64_f64(a, 17); + simde_int64x1_t r23 = simde_vcvt_n_s64_f64(a, 23); + simde_int64x1_t r38 = simde_vcvt_n_s64_f64(a, 38); + simde_int64x1_t r55 = simde_vcvt_n_s64_f64(a, 55); + simde_int64x1_t r64 = simde_vcvt_n_s64_f64(a, 64); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; uint16_t r3[4]; @@ -1306,10 +1988,31 @@ test_simde_vcvt_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 r3 = simde_vcvt_n_u16_f16(a, 3); + simde_uint16x4_t r6 = simde_vcvt_n_u16_f16(a, 6); + simde_uint16x4_t r10 = simde_vcvt_n_u16_f16(a, 10); + simde_uint16x4_t r13 = simde_vcvt_n_u16_f16(a, 13); + simde_uint16x4_t r16 = simde_vcvt_n_u16_f16(a, 16); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[2]; uint32_t r3[2]; @@ -1346,10 +2049,31 @@ test_simde_vcvt_n_u32_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 r3 = simde_vcvt_n_u32_f32(a, 3); + simde_uint32x2_t r10 = simde_vcvt_n_u32_f32(a, 10); + simde_uint32x2_t r16 = simde_vcvt_n_u32_f32(a, 16); + simde_uint32x2_t r23 = simde_vcvt_n_u32_f32(a, 23); + simde_uint32x2_t r32 = simde_vcvt_n_u32_f32(a, 32); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[1]; uint64_t r3[1]; @@ -1397,10 +2121,33 @@ test_simde_vcvt_n_u64_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 r3 = simde_vcvt_n_u64_f64(a, 3); + simde_uint64x1_t r17 = simde_vcvt_n_u64_f64(a, 17); + simde_uint64x1_t r23 = simde_vcvt_n_u64_f64(a, 23); + simde_uint64x1_t r38 = simde_vcvt_n_u64_f64(a, 38); + simde_uint64x1_t r55 = simde_vcvt_n_u64_f64(a, 55); + simde_uint64x1_t r64 = simde_vcvt_n_u64_f64(a, 64); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x1(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; int16_t r3[8]; @@ -1437,10 +2184,31 @@ test_simde_vcvtq_n_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x8_t r3 = simde_vcvtq_n_s16_f16(a, 3); + simde_int16x8_t r6 = simde_vcvtq_n_s16_f16(a, 6); + simde_int16x8_t r10 = simde_vcvtq_n_s16_f16(a, 10); + simde_int16x8_t r13 = simde_vcvtq_n_s16_f16(a, 13); + simde_int16x8_t r16 = simde_vcvtq_n_s16_f16(a, 16); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; int32_t r3[4]; @@ -1477,10 +2245,31 @@ test_simde_vcvtq_n_s32_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_int32x4_t r3 = simde_vcvtq_n_s32_f32(a, 3); + simde_int32x4_t r10 = simde_vcvtq_n_s32_f32(a, 10); + simde_int32x4_t r16 = simde_vcvtq_n_s32_f32(a, 16); + simde_int32x4_t r23 = simde_vcvtq_n_s32_f32(a, 23); + simde_int32x4_t r32 = simde_vcvtq_n_s32_f32(a, 32); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; int64_t r3[2]; @@ -1521,10 +2310,33 @@ test_simde_vcvtq_n_s64_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_int64x2_t r3 = simde_vcvtq_n_s64_f64(a, 3); + simde_int64x2_t r17 = simde_vcvtq_n_s64_f64(a, 17); + simde_int64x2_t r23 = simde_vcvtq_n_s64_f64(a, 23); + simde_int64x2_t r38 = simde_vcvtq_n_s64_f64(a, 38); + simde_int64x2_t r55 = simde_vcvtq_n_s64_f64(a, 55); + simde_int64x2_t r64 = simde_vcvtq_n_s64_f64(a, 64); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; uint16_t r3[8]; @@ -1561,10 +2373,31 @@ test_simde_vcvtq_n_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 r3 = simde_vcvtq_n_u16_f16(a, 3); + simde_uint16x8_t r6 = simde_vcvtq_n_u16_f16(a, 6); + simde_uint16x8_t r10 = simde_vcvtq_n_u16_f16(a, 10); + simde_uint16x8_t r13 = simde_vcvtq_n_u16_f16(a, 13); + simde_uint16x8_t r16 = simde_vcvtq_n_u16_f16(a, 16); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; uint32_t r3[4]; @@ -1601,10 +2434,31 @@ test_simde_vcvtq_n_u32_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 r3 = simde_vcvtq_n_u32_f32(a, 3); + simde_uint32x4_t r10 = simde_vcvtq_n_u32_f32(a, 10); + simde_uint32x4_t r16 = simde_vcvtq_n_u32_f32(a, 16); + simde_uint32x4_t r23 = simde_vcvtq_n_u32_f32(a, 23); + simde_uint32x4_t r32 = simde_vcvtq_n_u32_f32(a, 32); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; uint64_t r3[2]; @@ -1645,10 +2499,33 @@ test_simde_vcvtq_n_u64_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 r3 = simde_vcvtq_n_u64_f64(a, 3); + simde_uint64x2_t r17 = simde_vcvtq_n_u64_f64(a, 17); + simde_uint64x2_t r23 = simde_vcvtq_n_u64_f64(a, 23); + simde_uint64x2_t r38 = simde_vcvtq_n_u64_f64(a, 38); + simde_uint64x2_t r55 = simde_vcvtq_n_u64_f64(a, 55); + simde_uint64x2_t r64 = simde_vcvtq_n_u64_f64(a, 64); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; simde_float16_t r3[4]; @@ -1687,10 +2564,31 @@ test_simde_vcvt_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_float16x4_t r3 = simde_vcvt_n_f16_u16(a, 3); + simde_float16x4_t r6 = simde_vcvt_n_f16_u16(a, 6); + simde_float16x4_t r10 = simde_vcvt_n_f16_u16(a, 10); + simde_float16x4_t r13 = simde_vcvt_n_f16_u16(a, 13); + simde_float16x4_t r16 = simde_vcvt_n_f16_u16(a, 16); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; simde_float16_t r3[4]; @@ -1729,10 +2627,31 @@ test_simde_vcvt_n_f16_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_float16x4_t r3 = simde_vcvt_n_f16_s16(a, 3); + simde_float16x4_t r6 = simde_vcvt_n_f16_s16(a, 6); + simde_float16x4_t r10 = simde_vcvt_n_f16_s16(a, 10); + simde_float16x4_t r13 = simde_vcvt_n_f16_s16(a, 13); + simde_float16x4_t r16 = simde_vcvt_n_f16_s16(a, 16); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; simde_float16_t r3[8]; @@ -1765,10 +2684,31 @@ test_simde_vcvtq_n_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_float16x8_t r3 = simde_vcvtq_n_f16_u16(a, 3); + simde_float16x8_t r6 = simde_vcvtq_n_f16_u16(a, 6); + simde_float16x8_t r10 = simde_vcvtq_n_f16_u16(a, 10); + simde_float16x8_t r13 = simde_vcvtq_n_f16_u16(a, 13); + simde_float16x8_t r16 = simde_vcvtq_n_f16_u16(a, 16); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; simde_float16_t r3[8]; @@ -1801,10 +2741,31 @@ test_simde_vcvtq_n_f16_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_float16x8_t r3 = simde_vcvtq_n_f16_s16(a, 3); + simde_float16x8_t r6 = simde_vcvtq_n_f16_s16(a, 6); + simde_float16x8_t r10 = simde_vcvtq_n_f16_s16(a, 10); + simde_float16x8_t r13 = simde_vcvtq_n_f16_s16(a, 13); + simde_float16x8_t r16 = simde_vcvtq_n_f16_s16(a, 16); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r16, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_f32_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; simde_float32 r3[4]; @@ -1837,10 +2798,31 @@ test_simde_vcvtq_n_f32_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_float32x4_t r3 = simde_vcvtq_n_f32_s32(a, 3); + simde_float32x4_t r10 = simde_vcvtq_n_f32_s32(a, 10); + simde_float32x4_t r16 = simde_vcvtq_n_f32_s32(a, 16); + simde_float32x4_t r23 = simde_vcvtq_n_f32_s32(a, 23); + simde_float32x4_t r32 = simde_vcvtq_n_f32_s32(a, 32); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_f32_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; simde_float32 r3[2]; @@ -1879,10 +2861,31 @@ test_simde_vcvt_n_f32_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_float32x2_t r3 = simde_vcvt_n_f32_s32(a, 3); + simde_float32x2_t r10 = simde_vcvt_n_f32_s32(a, 10); + simde_float32x2_t r16 = simde_vcvt_n_f32_s32(a, 16); + simde_float32x2_t r23 = simde_vcvt_n_f32_s32(a, 23); + simde_float32x2_t r32 = simde_vcvt_n_f32_s32(a, 32); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[1]; simde_float64 r3[1]; @@ -1926,11 +2929,34 @@ test_simde_vcvt_n_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x1_t a = simde_test_arm_neon_random_u64x1(); + simde_float64x1_t r3 = simde_vcvt_n_f64_u64(a, 3); + simde_float64x1_t r17 = simde_vcvt_n_f64_u64(a, 17); + simde_float64x1_t r23 = simde_vcvt_n_f64_u64(a, 23); + simde_float64x1_t r38 = simde_vcvt_n_f64_u64(a, 38); + simde_float64x1_t r55 = simde_vcvt_n_f64_u64(a, 55); + simde_float64x1_t r64 = simde_vcvt_n_f64_u64(a, 64); + + simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x1(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } /* Eric: Skip this function since it will trigger a compiler error when using i686-linux-gnu-g++-11. static int test_simde_vcvtq_n_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[2]; simde_float64 r3[2]; @@ -1974,11 +3000,34 @@ test_simde_vcvtq_n_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_float64x2_t r3 = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r17 = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r23 = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r38 = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r55 = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r64 = simde_vcvtq_n_f64_u64(a, r3, r17, r23, r38, r55); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } */ static int test_simde_vcvt_n_f64_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[1]; simde_float64 r3[1]; @@ -2022,10 +3071,33 @@ test_simde_vcvt_n_f64_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_float64x1_t r3 = simde_vcvt_n_f64_s64(a, 3); + simde_float64x1_t r17 = simde_vcvt_n_f64_s64(a, 17); + simde_float64x1_t r23 = simde_vcvt_n_f64_s64(a, 23); + simde_float64x1_t r38 = simde_vcvt_n_f64_s64(a, 38); + simde_float64x1_t r55 = simde_vcvt_n_f64_s64(a, 55); + simde_float64x1_t r64 = simde_vcvt_n_f64_s64(a, 64); + + simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x1(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x1(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_f64_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[2]; simde_float64 r3[2]; @@ -2062,10 +3134,33 @@ test_simde_vcvtq_n_f64_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_float64x2_t r3 = simde_vcvtq_n_f64_s64(a, 3); + simde_float64x2_t r17 = simde_vcvtq_n_f64_s64(a, 17); + simde_float64x2_t r23 = simde_vcvtq_n_f64_s64(a, 23); + simde_float64x2_t r38 = simde_vcvtq_n_f64_s64(a, 38); + simde_float64x2_t r55 = simde_vcvtq_n_f64_s64(a, 55); + simde_float64x2_t r64 = simde_vcvtq_n_f64_s64(a, 64); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r17, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r38, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r55, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r64, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtq_n_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; simde_float32 r3[4]; @@ -2098,10 +3193,31 @@ test_simde_vcvtq_n_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_float32x4_t r3 = simde_vcvtq_n_f32_u32(a, 3); + simde_float32x4_t r10 = simde_vcvtq_n_f32_u32(a, 10); + simde_float32x4_t r16 = simde_vcvtq_n_f32_u32(a, 16); + simde_float32x4_t r23 = simde_vcvtq_n_f32_u32(a, 23); + simde_float32x4_t r32 = simde_vcvtq_n_f32_u32(a, 32); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvt_n_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; simde_float32 r3[2]; @@ -2140,6 +3256,26 @@ test_simde_vcvt_n_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_float32x2_t r3 = simde_vcvt_n_f32_u32(a, 3); + simde_float32x2_t r10 = simde_vcvt_n_f32_u32(a, 10); + simde_float32x2_t r16 = simde_vcvt_n_f32_u32(a, 16); + simde_float32x2_t r23 = simde_vcvt_n_f32_u32(a, 23); + simde_float32x2_t r32 = simde_vcvt_n_f32_u32(a, 32); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r16, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r23, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r32, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } diff --git a/test/arm/neon/cvtm.c b/test/arm/neon/cvtm.c index c2aabc46d..5abb20f90 100644 --- a/test/arm/neon/cvtm.c +++ b/test/arm/neon/cvtm.c @@ -5,6 +5,7 @@ static int test_simde_vcvtmq_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; int32_t r[4]; @@ -34,10 +35,23 @@ test_simde_vcvtmq_s32_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_int32x4_t r = simde_vcvtmq_s32_f32(a); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmq_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; int64_t r[2]; @@ -67,39 +81,50 @@ test_simde_vcvtmq_s64_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_int64x2_t r = simde_vcvtmq_s64_f64(a); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmh_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int64_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT64_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, INT64_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT64_MAX)), INT64_MAX }, - { HEDLEY_STATIC_CAST(simde_float16, INT64_MIN), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT64_MIN)), INT64_MIN }, #endif - { -SIMDE_FLOAT16_C( 29.102), + { SIMDE_FLOAT16_VALUE( - 29.102), -INT64_C( 30) }, - { -SIMDE_FLOAT16_C( 15.400), + { SIMDE_FLOAT16_VALUE( - 15.400), -INT64_C( 16) }, - { -SIMDE_FLOAT16_C( 5.887), + { SIMDE_FLOAT16_VALUE( - 5.887), -INT64_C( 6) }, - { SIMDE_FLOAT16_C( 16.529), + { SIMDE_FLOAT16_VALUE( 16.529), INT64_C( 16) }, - { SIMDE_FLOAT16_C( 17.641), + { SIMDE_FLOAT16_VALUE( 17.641), INT64_C( 17) }, - { SIMDE_FLOAT16_C( 16.624), + { SIMDE_FLOAT16_VALUE( 16.624), INT64_C( 16) }, - { SIMDE_FLOAT16_C( 14.373), + { SIMDE_FLOAT16_VALUE( 14.373), INT64_C( 14) }, - { -SIMDE_FLOAT16_C( 16.813), + { SIMDE_FLOAT16_VALUE( - 16.813), -INT64_C( 17) }, }; @@ -110,35 +135,50 @@ test_simde_vcvtmh_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int64_t r = simde_vcvtmh_s64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmh_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int32_t r; } test_vec[] = { - { SIMDE_MATH_NANF, + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + { SIMDE_NANHF, INT32_C( 0) }, - { HEDLEY_STATIC_CAST(simde_float16, INT32_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT32_MAX)), INT32_MAX }, - { HEDLEY_STATIC_CAST(simde_float16, INT32_MIN), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT32_MIN)), INT32_MIN }, - { SIMDE_FLOAT16_C( 12.44), + #endif + { SIMDE_FLOAT16_VALUE( 12.44), INT32_C( 12) }, - { SIMDE_FLOAT16_C( 30.46), + { SIMDE_FLOAT16_VALUE( 30.46), INT32_C( 30) }, - { SIMDE_FLOAT16_C( 16.51), + { SIMDE_FLOAT16_VALUE( 16.51), INT32_C( 16) }, - { SIMDE_FLOAT16_C( 74.89), + { SIMDE_FLOAT16_VALUE( 74.89), INT32_C( 74) }, - { SIMDE_FLOAT16_C( -24.05), + { SIMDE_FLOAT16_VALUE( -24.05), -INT32_C( 25) }, - { SIMDE_FLOAT16_C( -7.75), + { SIMDE_FLOAT16_VALUE( -7.75), -INT32_C( 8) }, - { SIMDE_FLOAT16_C( -57.31), + { SIMDE_FLOAT16_VALUE( -57.31), -INT32_C( 58) }, - { SIMDE_FLOAT16_C( -14.65), + { SIMDE_FLOAT16_VALUE( -14.65), -INT32_C( 15) }, }; @@ -149,39 +189,50 @@ test_simde_vcvtmh_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int32_t r = simde_vcvtmh_s32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmh_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int16_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT16_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, INT16_MAX) + SIMDE_FLOAT16_C(100.0), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT16_MAX) + SIMDE_FLOAT32_C(100.0)), INT16_MAX }, - { HEDLEY_STATIC_CAST(simde_float16, INT16_MIN) + SIMDE_FLOAT16_C(-100.0), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT16_MIN) + SIMDE_FLOAT32_C(-100.0)), INT16_MIN }, #endif - { -SIMDE_FLOAT16_C( 15.279), + { SIMDE_FLOAT16_VALUE( - 15.279), -INT16_C( 16) }, - { -SIMDE_FLOAT16_C( 15.541), + { SIMDE_FLOAT16_VALUE( - 15.541), -INT16_C( 16) }, - { SIMDE_FLOAT16_C( 24.266), + { SIMDE_FLOAT16_VALUE( 24.266), INT16_C( 24) }, - { SIMDE_FLOAT16_C( 28.626), + { SIMDE_FLOAT16_VALUE( 28.626), INT16_C( 28) }, - { -SIMDE_FLOAT16_C( 17.731), + { SIMDE_FLOAT16_VALUE( - 17.731), -INT16_C( 18) }, - { -SIMDE_FLOAT16_C( 14.985), + { SIMDE_FLOAT16_VALUE( - 14.985), -INT16_C( 15) }, - { -SIMDE_FLOAT16_C( 26.154), + { SIMDE_FLOAT16_VALUE( - 26.154), -INT16_C( 27) }, - { SIMDE_FLOAT16_C( 5.330), + { SIMDE_FLOAT16_VALUE( 5.330), INT16_C( 5) }, }; @@ -192,10 +243,23 @@ test_simde_vcvtmh_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16_t r = simde_vcvtmh_s16_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtms_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a; int32_t r; @@ -233,40 +297,51 @@ test_simde_vcvtms_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + simde_int32_t r = simde_vcvtms_s32_f32(a); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmh_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint64_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT64_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, UINT64_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX)), UINT64_MAX }, - { SIMDE_FLOAT16_C(-1000.0), + { SIMDE_FLOAT16_VALUE(-1000.0), UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -4.094), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -25.902), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -20.066), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -18.162), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -7.537), + UINT64_C( 0) }, #endif - { -SIMDE_FLOAT16_C( 4.094), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 25.902), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 20.066), - UINT64_C( 0) }, - { SIMDE_FLOAT16_C( 10.401), + { SIMDE_FLOAT16_VALUE( 10.401), UINT64_C( 10) }, - { SIMDE_FLOAT16_C( 11.014), + { SIMDE_FLOAT16_VALUE( 11.014), UINT64_C( 11) }, - { SIMDE_FLOAT16_C( 20.952), + { SIMDE_FLOAT16_VALUE( 20.952), UINT64_C( 20) }, - { -SIMDE_FLOAT16_C( 18.162), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 7.537), - UINT64_C( 0) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -276,39 +351,50 @@ test_simde_vcvtmh_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint64_t r = simde_vcvtmh_u64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmh_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint32_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT32_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, UINT32_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX)), UINT32_MAX }, - { SIMDE_FLOAT16_C(-1000.0), + { SIMDE_FLOAT16_VALUE(-1000.0), UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -24.108), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -11.130), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -24.900), + UINT32_C( 0) }, #endif - { -SIMDE_FLOAT16_C( 24.108), - UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 0.691), + { SIMDE_FLOAT16_VALUE( 0.691), UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 24.104), + { SIMDE_FLOAT16_VALUE( 24.104), UINT32_C( 24) }, - { SIMDE_FLOAT16_C( 5.841), + { SIMDE_FLOAT16_VALUE( 5.841), UINT32_C( 5) }, - { SIMDE_FLOAT16_C( 23.950), + { SIMDE_FLOAT16_VALUE( 23.950), UINT32_C( 23) }, - { -SIMDE_FLOAT16_C( 11.130), - UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 24.900), - UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 1.348), + { SIMDE_FLOAT16_VALUE( 1.348), UINT32_C( 1) }, }; @@ -319,39 +405,50 @@ test_simde_vcvtmh_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint32_t r = simde_vcvtmh_u32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmh_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint16_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT16_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, UINT16_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX)), UINT16_MAX }, - { SIMDE_FLOAT16_C(-1000.0), + { SIMDE_FLOAT16_VALUE(-1000.0), UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -16.076), + UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -24.751), + UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -24.805), + UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -7.533), + UINT16_C( 0) }, #endif - { -SIMDE_FLOAT16_C( 16.076), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 28.461), + { SIMDE_FLOAT16_VALUE( 28.461), UINT16_C( 28) }, - { -SIMDE_FLOAT16_C( 24.751), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 16.044), + { SIMDE_FLOAT16_VALUE( 16.044), UINT16_C( 16) }, - { -SIMDE_FLOAT16_C( 24.805), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 5.757), + { SIMDE_FLOAT16_VALUE( 5.757), UINT16_C( 5) }, - { -SIMDE_FLOAT16_C( 7.533), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 4.509), + { SIMDE_FLOAT16_VALUE( 4.509), UINT16_C( 4) }, }; @@ -362,10 +459,23 @@ test_simde_vcvtmh_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcvtmh_u16_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 } static int test_simde_vcvtms_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a; uint32_t r; @@ -377,23 +487,23 @@ test_simde_vcvtms_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { UINT32_MAX }, { SIMDE_FLOAT32_C(-1000.0), UINT32_C( 0) }, + { -SIMDE_FLOAT32_C( 561.636), + UINT32_C( 0) }, + { -SIMDE_FLOAT32_C( 494.548), + UINT32_C( 0) }, + { -SIMDE_FLOAT32_C( 293.647), + UINT32_C( 0) }, + { -SIMDE_FLOAT32_C( 377.778), + UINT32_C( 0) }, + { -SIMDE_FLOAT32_C( 578.417), + UINT32_C( 0) }, #endif { SIMDE_FLOAT32_C( 550.582), UINT32_C( 550) }, - { -SIMDE_FLOAT32_C( 561.636), - UINT32_C( 0) }, - { -SIMDE_FLOAT32_C( 494.548), - UINT32_C( 0) }, - { -SIMDE_FLOAT32_C( 293.647), - UINT32_C( 0) }, { SIMDE_FLOAT32_C( 378.414), UINT32_C( 378) }, { SIMDE_FLOAT32_C( 903.633), UINT32_C( 903) }, - { -SIMDE_FLOAT32_C( 377.778), - UINT32_C( 0) }, - { -SIMDE_FLOAT32_C( 578.417), - UINT32_C( 0) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -403,10 +513,23 @@ test_simde_vcvtms_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + simde_uint32_t r = simde_vcvtms_u32_f32(a); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; uint32_t r[4]; @@ -415,22 +538,22 @@ test_simde_vcvtmq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { { { HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX) + SIMDE_FLOAT32_C(10000.0), SIMDE_MATH_NANF, -SIMDE_MATH_NANF, SIMDE_MATH_INFINITYF }, { UINT32_MAX, UINT32_C( 0), UINT32_C( 0), UINT32_MAX } }, #endif - { { -SIMDE_FLOAT32_C( 991.592), SIMDE_FLOAT32_C( 429.813), SIMDE_FLOAT32_C( 432.940), -SIMDE_FLOAT32_C( 500.921) }, - { UINT32_C( 0), UINT32_C( 429), UINT32_C( 432), UINT32_C( 0) } }, - { { -SIMDE_FLOAT32_C( 457.623), -SIMDE_FLOAT32_C( 914.591), SIMDE_FLOAT32_C( 879.450), -SIMDE_FLOAT32_C( 179.351) }, - { UINT32_C( 0), UINT32_C( 0), UINT32_C( 879), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 777.878), -SIMDE_FLOAT32_C( 729.050), -SIMDE_FLOAT32_C( 65.868), SIMDE_FLOAT32_C( 390.763) }, - { UINT32_C( 777), UINT32_C( 0), UINT32_C( 0), UINT32_C( 390) } }, - { { SIMDE_FLOAT32_C( 570.038), SIMDE_FLOAT32_C( 560.736), -SIMDE_FLOAT32_C( 994.571), SIMDE_FLOAT32_C( 973.468) }, - { UINT32_C( 570), UINT32_C( 560), UINT32_C( 0), UINT32_C( 973) } }, - { { -SIMDE_FLOAT32_C( 110.161), -SIMDE_FLOAT32_C( 624.444), SIMDE_FLOAT32_C( 408.883), -SIMDE_FLOAT32_C( 631.364) }, - { UINT32_C( 0), UINT32_C( 0), UINT32_C( 408), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 159.954), -SIMDE_FLOAT32_C( 552.148), -SIMDE_FLOAT32_C( 978.320), -SIMDE_FLOAT32_C( 301.923) }, - { UINT32_C( 159), UINT32_C( 0), UINT32_C( 0), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 760.761), -SIMDE_FLOAT32_C( 904.894), -SIMDE_FLOAT32_C( 973.175), SIMDE_FLOAT32_C( 208.081) }, - { UINT32_C( 760), UINT32_C( 0), UINT32_C( 0), UINT32_C( 208) } }, - { { -SIMDE_FLOAT32_C( 383.713), -SIMDE_FLOAT32_C( 317.626), SIMDE_FLOAT32_C( 649.201), SIMDE_FLOAT32_C( 553.894) }, - { UINT32_C( 0), UINT32_C( 0), UINT32_C( 649), UINT32_C( 553) } }, + { { SIMDE_FLOAT32_C( 683.92), SIMDE_FLOAT32_C( 226.88), SIMDE_FLOAT32_C( 659.62), SIMDE_FLOAT32_C( 439.27) }, + { UINT32_C( 683), UINT32_C( 226), UINT32_C( 659), UINT32_C( 439) } }, + { { SIMDE_FLOAT32_C( 917.53), SIMDE_FLOAT32_C( 947.14), SIMDE_FLOAT32_C( 341.17), SIMDE_FLOAT32_C( 418.62) }, + { UINT32_C( 917), UINT32_C( 947), UINT32_C( 341), UINT32_C( 418) } }, + { { SIMDE_FLOAT32_C( 513.08), SIMDE_FLOAT32_C( 844.72), SIMDE_FLOAT32_C( 576.00), SIMDE_FLOAT32_C( 196.76) }, + { UINT32_C( 513), UINT32_C( 844), UINT32_C( 576), UINT32_C( 196) } }, + { { SIMDE_FLOAT32_C( 586.32), SIMDE_FLOAT32_C( 651.30), SIMDE_FLOAT32_C( 99.84), SIMDE_FLOAT32_C( 666.55) }, + { UINT32_C( 586), UINT32_C( 651), UINT32_C( 99), UINT32_C( 666) } }, + { { SIMDE_FLOAT32_C( 483.00), SIMDE_FLOAT32_C( 100.67), SIMDE_FLOAT32_C( 797.45), SIMDE_FLOAT32_C( 735.83) }, + { UINT32_C( 483), UINT32_C( 100), UINT32_C( 797), UINT32_C( 735) } }, + { { SIMDE_FLOAT32_C( 418.68), SIMDE_FLOAT32_C( 118.54), SIMDE_FLOAT32_C( 312.65), SIMDE_FLOAT32_C( 13.40) }, + { UINT32_C( 418), UINT32_C( 118), UINT32_C( 312), UINT32_C( 13) } }, + { { SIMDE_FLOAT32_C( 0.63), SIMDE_FLOAT32_C( 108.62), SIMDE_FLOAT32_C( 377.25), SIMDE_FLOAT32_C( 439.53) }, + { UINT32_C( 0), UINT32_C( 108), UINT32_C( 377), UINT32_C( 439) } }, + { { SIMDE_FLOAT32_C( 569.79), SIMDE_FLOAT32_C( 110.84), SIMDE_FLOAT32_C( 287.33), SIMDE_FLOAT32_C( 253.70) }, + { UINT32_C( 569), UINT32_C( 110), UINT32_C( 287), UINT32_C( 253) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -441,10 +564,22 @@ test_simde_vcvtmq_u32_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(SIMDE_FLOAT32_C(0.0), SIMDE_FLOAT32_C(1000.0)); + simde_uint32x4_t r = simde_vcvtmq_u32_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_vcvtmd_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; int64_t r; @@ -482,10 +617,23 @@ test_simde_vcvtmd_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64_t a = simde_test_arm_neon_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_int64_t r = simde_vcvtmd_s64_f64(a); + + simde_test_arm_neon_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; uint64_t r; @@ -497,13 +645,15 @@ test_simde_vcvtmd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { UINT64_MAX }, { SIMDE_FLOAT64_C(-1000.0), UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 25475.531), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 96381.000), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 35414.762), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 95960.555), + UINT64_C( 0) }, #endif - { -SIMDE_FLOAT64_C( 25475.531), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 96381.000), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 35414.762), - UINT64_C( 0) }, { SIMDE_FLOAT64_C( 24923.992), UINT64_C( 24923) }, { SIMDE_FLOAT64_C( 18610.977), @@ -512,8 +662,6 @@ test_simde_vcvtmd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { UINT64_C( 31085) }, { SIMDE_FLOAT64_C( 81679.125), UINT64_C( 81679) }, - { -SIMDE_FLOAT64_C( 95960.555), - UINT64_C( 0) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -523,10 +671,23 @@ test_simde_vcvtmd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64_t a = simde_test_arm_neon_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_uint64_t r = simde_vcvtmd_u64_f64(a); + + simde_test_arm_neon_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; uint64_t r[2]; @@ -537,22 +698,22 @@ test_simde_vcvtmq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { { { -SIMDE_MATH_NAN, -SIMDE_FLOAT64_C(10000.0) }, { UINT64_C( 0), UINT64_C( 0) } }, #endif - { { -SIMDE_FLOAT64_C( 57529.828), SIMDE_FLOAT64_C( 81425.422) }, - { UINT64_C( 0), UINT64_C( 81425) } }, - { { -SIMDE_FLOAT64_C( 39094.500), SIMDE_FLOAT64_C( 21765.445) }, - { UINT64_C( 0), UINT64_C( 21765) } }, - { { SIMDE_FLOAT64_C( 7112.727), -SIMDE_FLOAT64_C( 86853.281) }, - { UINT64_C( 7112), UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 69616.906), -SIMDE_FLOAT64_C( 94539.125) }, - { UINT64_C( 0), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 1518.367), SIMDE_FLOAT64_C( 79938.344) }, - { UINT64_C( 1518), UINT64_C( 79938) } }, - { { SIMDE_FLOAT64_C( 35153.594), -SIMDE_FLOAT64_C( 69671.547) }, - { UINT64_C( 35153), UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 7075.828), -SIMDE_FLOAT64_C( 96435.742) }, - { UINT64_C( 0), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 60090.234), SIMDE_FLOAT64_C( 78921.219) }, - { UINT64_C( 60090), UINT64_C( 78921) } }, + { { SIMDE_FLOAT64_C( 337.71), SIMDE_FLOAT64_C( 946.94) }, + { UINT64_C( 337), UINT64_C( 946) } }, + { { SIMDE_FLOAT64_C( 692.98), SIMDE_FLOAT64_C( 255.25) }, + { UINT64_C( 692), UINT64_C( 255) } }, + { { SIMDE_FLOAT64_C( 894.09), SIMDE_FLOAT64_C( 34.15) }, + { UINT64_C( 894), UINT64_C( 34) } }, + { { SIMDE_FLOAT64_C( 673.86), SIMDE_FLOAT64_C( 407.16) }, + { UINT64_C( 673), UINT64_C( 407) } }, + { { SIMDE_FLOAT64_C( 878.87), SIMDE_FLOAT64_C( 249.86) }, + { UINT64_C( 878), UINT64_C( 249) } }, + { { SIMDE_FLOAT64_C( 603.92), SIMDE_FLOAT64_C( 465.18) }, + { UINT64_C( 603), UINT64_C( 465) } }, + { { SIMDE_FLOAT64_C( 901.16), SIMDE_FLOAT64_C( 703.76) }, + { UINT64_C( 901), UINT64_C( 703) } }, + { { SIMDE_FLOAT64_C( 131.73), SIMDE_FLOAT64_C( 384.16) }, + { UINT64_C( 131), UINT64_C( 384) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -562,44 +723,56 @@ test_simde_vcvtmq_u64_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(0.0), SIMDE_FLOAT64_C(1000.0)); + simde_uint64x2_t r = simde_vcvtmq_u64_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_vcvtmq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; int16_t r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 8.496), SIMDE_FLOAT16_C( 18.975), -SIMDE_FLOAT16_C( 2.199), -SIMDE_FLOAT16_C( 20.493), - -SIMDE_FLOAT16_C( 29.500), SIMDE_FLOAT16_C( 4.372), -SIMDE_FLOAT16_C( 0.571), SIMDE_FLOAT16_C( 15.297) }, + { { SIMDE_FLOAT16_VALUE( - 8.496), SIMDE_FLOAT16_VALUE( 18.975), SIMDE_FLOAT16_VALUE( - 2.199), SIMDE_FLOAT16_VALUE( - 20.493), + SIMDE_FLOAT16_VALUE( - 29.500), SIMDE_FLOAT16_VALUE( 4.372), SIMDE_FLOAT16_VALUE( - 0.571), SIMDE_FLOAT16_VALUE( 15.297) }, { -INT16_C( 9), INT16_C( 18), -INT16_C( 3), -INT16_C( 21), -INT16_C( 30), INT16_C( 4), -INT16_C( 1), INT16_C( 15) } }, - { { -SIMDE_FLOAT16_C( 6.416), -SIMDE_FLOAT16_C( 28.037), SIMDE_FLOAT16_C( 0.233), -SIMDE_FLOAT16_C( 2.340), - SIMDE_FLOAT16_C( 21.686), SIMDE_FLOAT16_C( 15.884), SIMDE_FLOAT16_C( 5.613), -SIMDE_FLOAT16_C( 3.479) }, + { { SIMDE_FLOAT16_VALUE( - 6.416), SIMDE_FLOAT16_VALUE( - 28.037), SIMDE_FLOAT16_VALUE( 0.233), SIMDE_FLOAT16_VALUE( - 2.340), + SIMDE_FLOAT16_VALUE( 21.686), SIMDE_FLOAT16_VALUE( 15.884), SIMDE_FLOAT16_VALUE( 5.613), SIMDE_FLOAT16_VALUE( - 3.479) }, { -INT16_C( 7), -INT16_C( 29), INT16_C( 0), -INT16_C( 3), INT16_C( 21), INT16_C( 15), INT16_C( 5), -INT16_C( 4) } }, - { { SIMDE_FLOAT16_C( 29.801), SIMDE_FLOAT16_C( 5.407), -SIMDE_FLOAT16_C( 0.666), SIMDE_FLOAT16_C( 24.410), - -SIMDE_FLOAT16_C( 29.209), -SIMDE_FLOAT16_C( 5.956), -SIMDE_FLOAT16_C( 18.351), -SIMDE_FLOAT16_C( 24.316) }, + { { SIMDE_FLOAT16_VALUE( 29.801), SIMDE_FLOAT16_VALUE( 5.407), SIMDE_FLOAT16_VALUE( - 0.666), SIMDE_FLOAT16_VALUE( 24.410), + SIMDE_FLOAT16_VALUE( - 29.209), SIMDE_FLOAT16_VALUE( - 5.956), SIMDE_FLOAT16_VALUE( - 18.351), SIMDE_FLOAT16_VALUE( - 24.316) }, { INT16_C( 29), INT16_C( 5), -INT16_C( 1), INT16_C( 24), -INT16_C( 30), -INT16_C( 6), -INT16_C( 19), -INT16_C( 25) } }, - { { -SIMDE_FLOAT16_C( 20.572), -SIMDE_FLOAT16_C( 24.745), -SIMDE_FLOAT16_C( 22.219), SIMDE_FLOAT16_C( 20.375), - -SIMDE_FLOAT16_C( 22.035), -SIMDE_FLOAT16_C( 19.171), -SIMDE_FLOAT16_C( 26.111), -SIMDE_FLOAT16_C( 19.992) }, + { { SIMDE_FLOAT16_VALUE( - 20.572), SIMDE_FLOAT16_VALUE( - 24.745), SIMDE_FLOAT16_VALUE( - 22.219), SIMDE_FLOAT16_VALUE( 20.375), + SIMDE_FLOAT16_VALUE( - 22.035), SIMDE_FLOAT16_VALUE( - 19.171), SIMDE_FLOAT16_VALUE( - 26.111), SIMDE_FLOAT16_VALUE( - 19.992) }, { -INT16_C( 21), -INT16_C( 25), -INT16_C( 23), INT16_C( 20), -INT16_C( 23), -INT16_C( 20), -INT16_C( 27), -INT16_C( 20) } }, - { { SIMDE_FLOAT16_C( 17.446), -SIMDE_FLOAT16_C( 21.229), -SIMDE_FLOAT16_C( 23.525), SIMDE_FLOAT16_C( 21.821), - SIMDE_FLOAT16_C( 19.282), -SIMDE_FLOAT16_C( 25.940), SIMDE_FLOAT16_C( 17.691), SIMDE_FLOAT16_C( 1.353) }, + { { SIMDE_FLOAT16_VALUE( 17.446), SIMDE_FLOAT16_VALUE( - 21.229), SIMDE_FLOAT16_VALUE( - 23.525), SIMDE_FLOAT16_VALUE( 21.821), + SIMDE_FLOAT16_VALUE( 19.282), SIMDE_FLOAT16_VALUE( - 25.940), SIMDE_FLOAT16_VALUE( 17.691), SIMDE_FLOAT16_VALUE( 1.353) }, { INT16_C( 17), -INT16_C( 22), -INT16_C( 24), INT16_C( 21), INT16_C( 19), -INT16_C( 26), INT16_C( 17), INT16_C( 1) } }, - { { SIMDE_FLOAT16_C( 17.782), SIMDE_FLOAT16_C( 22.188), -SIMDE_FLOAT16_C( 14.281), SIMDE_FLOAT16_C( 10.450), - -SIMDE_FLOAT16_C( 20.900), SIMDE_FLOAT16_C( 7.321), -SIMDE_FLOAT16_C( 3.231), SIMDE_FLOAT16_C( 16.327) }, + { { SIMDE_FLOAT16_VALUE( 17.782), SIMDE_FLOAT16_VALUE( 22.188), SIMDE_FLOAT16_VALUE( - 14.281), SIMDE_FLOAT16_VALUE( 10.450), + SIMDE_FLOAT16_VALUE( - 20.900), SIMDE_FLOAT16_VALUE( 7.321), SIMDE_FLOAT16_VALUE( - 3.231), SIMDE_FLOAT16_VALUE( 16.327) }, { INT16_C( 17), INT16_C( 22), -INT16_C( 15), INT16_C( 10), -INT16_C( 21), INT16_C( 7), -INT16_C( 4), INT16_C( 16) } }, - { { SIMDE_FLOAT16_C( 24.787), -SIMDE_FLOAT16_C( 17.192), -SIMDE_FLOAT16_C( 22.870), -SIMDE_FLOAT16_C( 24.778), - SIMDE_FLOAT16_C( 4.885), -SIMDE_FLOAT16_C( 23.686), -SIMDE_FLOAT16_C( 5.354), -SIMDE_FLOAT16_C( 25.350) }, + { { SIMDE_FLOAT16_VALUE( 24.787), SIMDE_FLOAT16_VALUE( - 17.192), SIMDE_FLOAT16_VALUE( - 22.870), SIMDE_FLOAT16_VALUE( - 24.778), + SIMDE_FLOAT16_VALUE( 4.885), SIMDE_FLOAT16_VALUE( - 23.686), SIMDE_FLOAT16_VALUE( - 5.354), SIMDE_FLOAT16_VALUE( - 25.350) }, { INT16_C( 24), -INT16_C( 18), -INT16_C( 23), -INT16_C( 25), INT16_C( 4), -INT16_C( 24), -INT16_C( 6), -INT16_C( 26) } }, - { { -SIMDE_FLOAT16_C( 25.796), SIMDE_FLOAT16_C( 0.055), -SIMDE_FLOAT16_C( 23.812), -SIMDE_FLOAT16_C( 7.248), - SIMDE_FLOAT16_C( 2.304), SIMDE_FLOAT16_C( 21.545), -SIMDE_FLOAT16_C( 11.785), -SIMDE_FLOAT16_C( 21.974) }, + { { SIMDE_FLOAT16_VALUE( - 25.796), SIMDE_FLOAT16_VALUE( 0.055), SIMDE_FLOAT16_VALUE( - 23.812), SIMDE_FLOAT16_VALUE( - 7.248), + SIMDE_FLOAT16_VALUE( 2.304), SIMDE_FLOAT16_VALUE( 21.545), SIMDE_FLOAT16_VALUE( - 11.785), SIMDE_FLOAT16_VALUE( - 21.974) }, { -INT16_C( 26), INT16_C( 0), -INT16_C( 24), -INT16_C( 8), INT16_C( 2), INT16_C( 21), -INT16_C( 12), -INT16_C( 22) } }, }; @@ -611,29 +784,42 @@ test_simde_vcvtmq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x8_t r = simde_vcvtmq_s16_f16(a); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtm_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; int16_t r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 14.252), -SIMDE_FLOAT16_C( 8.932), -SIMDE_FLOAT16_C( 10.075), SIMDE_FLOAT16_C( 2.645) }, + { { SIMDE_FLOAT16_VALUE( - 14.252), SIMDE_FLOAT16_VALUE( - 8.932), SIMDE_FLOAT16_VALUE( - 10.075), SIMDE_FLOAT16_VALUE( 2.645) }, { -INT16_C( 15), -INT16_C( 9), -INT16_C( 11), INT16_C( 2) } }, - { { -SIMDE_FLOAT16_C( 27.688), SIMDE_FLOAT16_C( 12.692), -SIMDE_FLOAT16_C( 13.616), -SIMDE_FLOAT16_C( 25.644) }, + { { SIMDE_FLOAT16_VALUE( - 27.688), SIMDE_FLOAT16_VALUE( 12.692), SIMDE_FLOAT16_VALUE( - 13.616), SIMDE_FLOAT16_VALUE( - 25.644) }, { -INT16_C( 28), INT16_C( 12), -INT16_C( 14), -INT16_C( 26) } }, - { { -SIMDE_FLOAT16_C( 21.882), SIMDE_FLOAT16_C( 23.002), -SIMDE_FLOAT16_C( 0.430), SIMDE_FLOAT16_C( 26.610) }, + { { SIMDE_FLOAT16_VALUE( - 21.882), SIMDE_FLOAT16_VALUE( 23.002), SIMDE_FLOAT16_VALUE( - 0.430), SIMDE_FLOAT16_VALUE( 26.610) }, { -INT16_C( 22), INT16_C( 23), -INT16_C( 1), INT16_C( 26) } }, - { { -SIMDE_FLOAT16_C( 6.937), -SIMDE_FLOAT16_C( 11.037), -SIMDE_FLOAT16_C( 19.775), SIMDE_FLOAT16_C( 18.979) }, + { { SIMDE_FLOAT16_VALUE( - 6.937), SIMDE_FLOAT16_VALUE( - 11.037), SIMDE_FLOAT16_VALUE( - 19.775), SIMDE_FLOAT16_VALUE( 18.979) }, { -INT16_C( 7), -INT16_C( 12), -INT16_C( 20), INT16_C( 18) } }, - { { SIMDE_FLOAT16_C( 8.040), SIMDE_FLOAT16_C( 25.591), SIMDE_FLOAT16_C( 4.751), SIMDE_FLOAT16_C( 24.284) }, + { { SIMDE_FLOAT16_VALUE( 8.040), SIMDE_FLOAT16_VALUE( 25.591), SIMDE_FLOAT16_VALUE( 4.751), SIMDE_FLOAT16_VALUE( 24.284) }, { INT16_C( 8), INT16_C( 25), INT16_C( 4), INT16_C( 24) } }, - { { SIMDE_FLOAT16_C( 18.155), -SIMDE_FLOAT16_C( 26.878), SIMDE_FLOAT16_C( 18.196), SIMDE_FLOAT16_C( 24.029) }, + { { SIMDE_FLOAT16_VALUE( 18.155), SIMDE_FLOAT16_VALUE( - 26.878), SIMDE_FLOAT16_VALUE( 18.196), SIMDE_FLOAT16_VALUE( 24.029) }, { INT16_C( 18), -INT16_C( 27), INT16_C( 18), INT16_C( 24) } }, - { { -SIMDE_FLOAT16_C( 16.286), SIMDE_FLOAT16_C( 10.157), -SIMDE_FLOAT16_C( 1.975), SIMDE_FLOAT16_C( 8.093) }, + { { SIMDE_FLOAT16_VALUE( - 16.286), SIMDE_FLOAT16_VALUE( 10.157), SIMDE_FLOAT16_VALUE( - 1.975), SIMDE_FLOAT16_VALUE( 8.093) }, { -INT16_C( 17), INT16_C( 10), -INT16_C( 2), INT16_C( 8) } }, - { { -SIMDE_FLOAT16_C( 26.246), -SIMDE_FLOAT16_C( 10.909), -SIMDE_FLOAT16_C( 28.955), SIMDE_FLOAT16_C( 6.701) }, + { { SIMDE_FLOAT16_VALUE( - 26.246), SIMDE_FLOAT16_VALUE( - 10.909), SIMDE_FLOAT16_VALUE( - 28.955), SIMDE_FLOAT16_VALUE( 6.701) }, { -INT16_C( 27), -INT16_C( 11), -INT16_C( 29), INT16_C( 6) } }, }; @@ -644,46 +830,51 @@ test_simde_vcvtm_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x4_t r = simde_vcvtm_s16_f16(a); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtmq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; uint16_t r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 5.937), SIMDE_FLOAT16_C( 23.914), -SIMDE_FLOAT16_C( 8.349), -SIMDE_FLOAT16_C( 29.604), - -SIMDE_FLOAT16_C( 12.952), SIMDE_FLOAT16_C( 20.911), -SIMDE_FLOAT16_C( 27.876), -SIMDE_FLOAT16_C( 4.654) }, - { UINT16_C( 5), UINT16_C( 23), UINT16_C( 0), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 20), UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 23.250), -SIMDE_FLOAT16_C( 10.879), SIMDE_FLOAT16_C( 23.029), SIMDE_FLOAT16_C( 5.727), - SIMDE_FLOAT16_C( 0.365), SIMDE_FLOAT16_C( 27.426), -SIMDE_FLOAT16_C( 0.411), SIMDE_FLOAT16_C( 25.368) }, - { UINT16_C( 23), UINT16_C( 0), UINT16_C( 23), UINT16_C( 5), - UINT16_C( 0), UINT16_C( 27), UINT16_C( 0), UINT16_C( 25) } }, - { { SIMDE_FLOAT16_C( 26.607), -SIMDE_FLOAT16_C( 27.109), SIMDE_FLOAT16_C( 27.786), SIMDE_FLOAT16_C( 5.282), - -SIMDE_FLOAT16_C( 22.829), -SIMDE_FLOAT16_C( 14.811), -SIMDE_FLOAT16_C( 27.888), -SIMDE_FLOAT16_C( 2.514) }, - { UINT16_C( 26), UINT16_C( 0), UINT16_C( 27), UINT16_C( 5), - UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 0.461), SIMDE_FLOAT16_C( 21.653), -SIMDE_FLOAT16_C( 19.722), -SIMDE_FLOAT16_C( 4.920), - -SIMDE_FLOAT16_C( 24.654), SIMDE_FLOAT16_C( 22.378), -SIMDE_FLOAT16_C( 12.561), -SIMDE_FLOAT16_C( 25.610) }, - { UINT16_C( 0), UINT16_C( 21), UINT16_C( 0), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 22), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 10.683), -SIMDE_FLOAT16_C( 0.472), -SIMDE_FLOAT16_C( 23.365), -SIMDE_FLOAT16_C( 13.328), - SIMDE_FLOAT16_C( 8.726), SIMDE_FLOAT16_C( 11.500), SIMDE_FLOAT16_C( 17.492), SIMDE_FLOAT16_C( 1.449) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), - UINT16_C( 8), UINT16_C( 11), UINT16_C( 17), UINT16_C( 1) } }, - { { -SIMDE_FLOAT16_C( 20.210), SIMDE_FLOAT16_C( 7.023), SIMDE_FLOAT16_C( 9.448), -SIMDE_FLOAT16_C( 5.905), - -SIMDE_FLOAT16_C( 24.943), SIMDE_FLOAT16_C( 10.812), SIMDE_FLOAT16_C( 26.843), SIMDE_FLOAT16_C( 14.904) }, - { UINT16_C( 0), UINT16_C( 7), UINT16_C( 9), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 10), UINT16_C( 26), UINT16_C( 14) } }, - { { SIMDE_FLOAT16_C( 9.740), SIMDE_FLOAT16_C( 29.346), SIMDE_FLOAT16_C( 25.155), SIMDE_FLOAT16_C( 29.824), - -SIMDE_FLOAT16_C( 28.546), -SIMDE_FLOAT16_C( 27.940), SIMDE_FLOAT16_C( 11.032), -SIMDE_FLOAT16_C( 13.490) }, - { UINT16_C( 9), UINT16_C( 29), UINT16_C( 25), UINT16_C( 29), - UINT16_C( 0), UINT16_C( 0), UINT16_C( 11), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 22.172), SIMDE_FLOAT16_C( 0.397), SIMDE_FLOAT16_C( 8.424), SIMDE_FLOAT16_C( 7.644), - -SIMDE_FLOAT16_C( 5.523), -SIMDE_FLOAT16_C( 13.197), SIMDE_FLOAT16_C( 15.611), -SIMDE_FLOAT16_C( 0.097) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 8), UINT16_C( 7), - UINT16_C( 0), UINT16_C( 0), UINT16_C( 15), UINT16_C( 0) } }, + { { SIMDE_FLOAT16_VALUE( 348.25), SIMDE_FLOAT16_VALUE( 859.50), SIMDE_FLOAT16_VALUE( 629.50), SIMDE_FLOAT16_VALUE( 746.50), + SIMDE_FLOAT16_VALUE( 510.25), SIMDE_FLOAT16_VALUE( 957.00), SIMDE_FLOAT16_VALUE( 485.50), SIMDE_FLOAT16_VALUE( 650.50) }, + { UINT16_C( 348), UINT16_C( 859), UINT16_C( 629), UINT16_C( 746), UINT16_C( 510), UINT16_C( 957), UINT16_C( 485), UINT16_C( 650) } }, + { { SIMDE_FLOAT16_VALUE( 280.00), SIMDE_FLOAT16_VALUE( 624.00), SIMDE_FLOAT16_VALUE( 758.00), SIMDE_FLOAT16_VALUE( 938.50), + SIMDE_FLOAT16_VALUE( 605.00), SIMDE_FLOAT16_VALUE( 770.00), SIMDE_FLOAT16_VALUE( 547.00), SIMDE_FLOAT16_VALUE( 943.50) }, + { UINT16_C( 280), UINT16_C( 624), UINT16_C( 758), UINT16_C( 938), UINT16_C( 605), UINT16_C( 770), UINT16_C( 547), UINT16_C( 943) } }, + { { SIMDE_FLOAT16_VALUE( 321.25), SIMDE_FLOAT16_VALUE( 963.50), SIMDE_FLOAT16_VALUE( 557.50), SIMDE_FLOAT16_VALUE( 467.25), + SIMDE_FLOAT16_VALUE( 201.00), SIMDE_FLOAT16_VALUE( 597.00), SIMDE_FLOAT16_VALUE( 497.25), SIMDE_FLOAT16_VALUE( 937.00) }, + { UINT16_C( 321), UINT16_C( 963), UINT16_C( 557), UINT16_C( 467), UINT16_C( 201), UINT16_C( 597), UINT16_C( 497), UINT16_C( 937) } }, + { { SIMDE_FLOAT16_VALUE( 542.50), SIMDE_FLOAT16_VALUE( 71.12), SIMDE_FLOAT16_VALUE( 842.50), SIMDE_FLOAT16_VALUE( 218.75), + SIMDE_FLOAT16_VALUE( 507.25), SIMDE_FLOAT16_VALUE( 363.25), SIMDE_FLOAT16_VALUE( 462.50), SIMDE_FLOAT16_VALUE( 855.50) }, + { UINT16_C( 542), UINT16_C( 71), UINT16_C( 842), UINT16_C( 218), UINT16_C( 507), UINT16_C( 363), UINT16_C( 462), UINT16_C( 855) } }, + { { SIMDE_FLOAT16_VALUE( 222.38), SIMDE_FLOAT16_VALUE( 92.12), SIMDE_FLOAT16_VALUE( 602.00), SIMDE_FLOAT16_VALUE( 733.00), + SIMDE_FLOAT16_VALUE( 48.91), SIMDE_FLOAT16_VALUE( 87.31), SIMDE_FLOAT16_VALUE( 383.25), SIMDE_FLOAT16_VALUE( 329.00) }, + { UINT16_C( 222), UINT16_C( 92), UINT16_C( 602), UINT16_C( 733), UINT16_C( 48), UINT16_C( 87), UINT16_C( 383), UINT16_C( 329) } }, + { { SIMDE_FLOAT16_VALUE( 711.50), SIMDE_FLOAT16_VALUE( 141.12), SIMDE_FLOAT16_VALUE( 267.50), SIMDE_FLOAT16_VALUE( 316.50), + SIMDE_FLOAT16_VALUE( 911.00), SIMDE_FLOAT16_VALUE( 814.00), SIMDE_FLOAT16_VALUE( 260.25), SIMDE_FLOAT16_VALUE( 232.38) }, + { UINT16_C( 711), UINT16_C( 141), UINT16_C( 267), UINT16_C( 316), UINT16_C( 911), UINT16_C( 814), UINT16_C( 260), UINT16_C( 232) } }, + { { SIMDE_FLOAT16_VALUE( 778.00), SIMDE_FLOAT16_VALUE( 818.00), SIMDE_FLOAT16_VALUE( 699.50), SIMDE_FLOAT16_VALUE( 979.00), + SIMDE_FLOAT16_VALUE( 415.00), SIMDE_FLOAT16_VALUE( 196.88), SIMDE_FLOAT16_VALUE( 916.00), SIMDE_FLOAT16_VALUE( 957.50) }, + { UINT16_C( 778), UINT16_C( 818), UINT16_C( 699), UINT16_C( 979), UINT16_C( 415), UINT16_C( 196), UINT16_C( 916), UINT16_C( 957) } }, + { { SIMDE_FLOAT16_VALUE( 268.00), SIMDE_FLOAT16_VALUE( 758.50), SIMDE_FLOAT16_VALUE( 176.25), SIMDE_FLOAT16_VALUE( 775.00), + SIMDE_FLOAT16_VALUE( 121.62), SIMDE_FLOAT16_VALUE( 638.50), SIMDE_FLOAT16_VALUE( 630.50), SIMDE_FLOAT16_VALUE( 344.00) }, + { UINT16_C( 268), UINT16_C( 758), UINT16_C( 176), UINT16_C( 775), UINT16_C( 121), UINT16_C( 638), UINT16_C( 630), UINT16_C( 344) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -693,30 +884,42 @@ test_simde_vcvtmq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x8_t a = simde_test_arm_neon_random_f16x8(0.0f, 1000.0f); + simde_uint16x8_t r = simde_vcvtmq_u16_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_vcvtm_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; uint16_t r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 7.554), SIMDE_FLOAT16_C( 12.499), SIMDE_FLOAT16_C( 11.710), SIMDE_FLOAT16_C( 17.107) }, - { UINT16_C( 0), UINT16_C( 12), UINT16_C( 11), UINT16_C( 17) } }, - { { SIMDE_FLOAT16_C( 23.989), -SIMDE_FLOAT16_C( 6.183), -SIMDE_FLOAT16_C( 20.293), SIMDE_FLOAT16_C( 23.741) }, - { UINT16_C( 23), UINT16_C( 0), UINT16_C( 0), UINT16_C( 23) } }, - { { -SIMDE_FLOAT16_C( 26.994), -SIMDE_FLOAT16_C( 20.235), SIMDE_FLOAT16_C( 1.138), SIMDE_FLOAT16_C( 7.304) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 1), UINT16_C( 7) } }, - { { -SIMDE_FLOAT16_C( 15.929), SIMDE_FLOAT16_C( 25.035), SIMDE_FLOAT16_C( 21.848), -SIMDE_FLOAT16_C( 5.458) }, - { UINT16_C( 0), UINT16_C( 25), UINT16_C( 21), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 14.677), SIMDE_FLOAT16_C( 6.064), SIMDE_FLOAT16_C( 23.437), SIMDE_FLOAT16_C( 7.868) }, - { UINT16_C( 0), UINT16_C( 6), UINT16_C( 23), UINT16_C( 7) } }, - { { SIMDE_FLOAT16_C( 1.168), SIMDE_FLOAT16_C( 1.806), SIMDE_FLOAT16_C( 5.880), -SIMDE_FLOAT16_C( 24.614) }, - { UINT16_C( 1), UINT16_C( 1), UINT16_C( 5), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 1.777), SIMDE_FLOAT16_C( 9.222), -SIMDE_FLOAT16_C( 24.729), SIMDE_FLOAT16_C( 21.150) }, - { UINT16_C( 0), UINT16_C( 9), UINT16_C( 0), UINT16_C( 21) } }, - { { SIMDE_FLOAT16_C( 2.919), -SIMDE_FLOAT16_C( 26.070), -SIMDE_FLOAT16_C( 19.134), -SIMDE_FLOAT16_C( 5.082) }, - { UINT16_C( 2), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, + { { SIMDE_FLOAT16_VALUE( 340.75), SIMDE_FLOAT16_VALUE( 489.00), SIMDE_FLOAT16_VALUE( 996.00), SIMDE_FLOAT16_VALUE( 399.75) }, + { UINT16_C( 340), UINT16_C( 489), UINT16_C( 996), UINT16_C( 399) } }, + { { SIMDE_FLOAT16_VALUE( 967.00), SIMDE_FLOAT16_VALUE( 335.00), SIMDE_FLOAT16_VALUE( 842.00), SIMDE_FLOAT16_VALUE( 905.00) }, + { UINT16_C( 967), UINT16_C( 335), UINT16_C( 842), UINT16_C( 905) } }, + { { SIMDE_FLOAT16_VALUE( 950.00), SIMDE_FLOAT16_VALUE( 357.75), SIMDE_FLOAT16_VALUE( 539.00), SIMDE_FLOAT16_VALUE( 808.50) }, + { UINT16_C( 950), UINT16_C( 357), UINT16_C( 539), UINT16_C( 808) } }, + { { SIMDE_FLOAT16_VALUE( 275.25), SIMDE_FLOAT16_VALUE( 595.00), SIMDE_FLOAT16_VALUE( 820.50), SIMDE_FLOAT16_VALUE( 425.75) }, + { UINT16_C( 275), UINT16_C( 595), UINT16_C( 820), UINT16_C( 425) } }, + { { SIMDE_FLOAT16_VALUE( 884.00), SIMDE_FLOAT16_VALUE( 498.50), SIMDE_FLOAT16_VALUE( 906.00), SIMDE_FLOAT16_VALUE( 544.00) }, + { UINT16_C( 884), UINT16_C( 498), UINT16_C( 906), UINT16_C( 544) } }, + { { SIMDE_FLOAT16_VALUE( 169.62), SIMDE_FLOAT16_VALUE( 730.50), SIMDE_FLOAT16_VALUE( 862.50), SIMDE_FLOAT16_VALUE( 615.00) }, + { UINT16_C( 169), UINT16_C( 730), UINT16_C( 862), UINT16_C( 615) } }, + { { SIMDE_FLOAT16_VALUE( 567.50), SIMDE_FLOAT16_VALUE( 912.00), SIMDE_FLOAT16_VALUE( 338.75), SIMDE_FLOAT16_VALUE( 386.00) }, + { UINT16_C( 567), UINT16_C( 912), UINT16_C( 338), UINT16_C( 386) } }, + { { SIMDE_FLOAT16_VALUE( 398.25), SIMDE_FLOAT16_VALUE( 651.00), SIMDE_FLOAT16_VALUE( 327.25), SIMDE_FLOAT16_VALUE( 739.00) }, + { UINT16_C( 398), UINT16_C( 651), UINT16_C( 327), UINT16_C( 739) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -726,30 +929,43 @@ test_simde_vcvtm_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t a = simde_test_arm_neon_random_f16x4(0.0f, 1000.0f); + simde_uint16x4_t r = simde_vcvtm_u16_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_vcvtm_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; uint32_t r[2]; } test_vec[] = { - { { SIMDE_FLOAT32_C( 594.107), -SIMDE_FLOAT32_C( 285.820) }, - { UINT32_C( 594), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 829.159), -SIMDE_FLOAT32_C( 787.785) }, - { UINT32_C( 829), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 573.783), -SIMDE_FLOAT32_C( 597.192) }, - { UINT32_C( 573), UINT32_C( 0) } }, - { { -SIMDE_FLOAT32_C( 75.398), SIMDE_FLOAT32_C( 243.062) }, - { UINT32_C( 0), UINT32_C( 243) } }, - { { SIMDE_FLOAT32_C( 759.492), SIMDE_FLOAT32_C( 515.804) }, - { UINT32_C( 759), UINT32_C( 515) } }, - { { SIMDE_FLOAT32_C( 887.603), -SIMDE_FLOAT32_C( 104.547) }, - { UINT32_C( 887), UINT32_C( 0) } }, - { { -SIMDE_FLOAT32_C( 431.950), -SIMDE_FLOAT32_C( 610.039) }, - { UINT32_C( 0), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 646.903), SIMDE_FLOAT32_C( 28.109) }, - { UINT32_C( 646), UINT32_C( 28) } }, + { { SIMDE_FLOAT32_C( 140.16), SIMDE_FLOAT32_C( 323.30) }, + { UINT32_C( 140), UINT32_C( 323) } }, + { { SIMDE_FLOAT32_C( 138.76), SIMDE_FLOAT32_C( 107.22) }, + { UINT32_C( 138), UINT32_C( 107) } }, + { { SIMDE_FLOAT32_C( 658.27), SIMDE_FLOAT32_C( 980.79) }, + { UINT32_C( 658), UINT32_C( 980) } }, + { { SIMDE_FLOAT32_C( 12.33), SIMDE_FLOAT32_C( 608.38) }, + { UINT32_C( 12), UINT32_C( 608) } }, + { { SIMDE_FLOAT32_C( 338.66), SIMDE_FLOAT32_C( 551.13) }, + { UINT32_C( 338), UINT32_C( 551) } }, + { { SIMDE_FLOAT32_C( 416.88), SIMDE_FLOAT32_C( 613.87) }, + { UINT32_C( 416), UINT32_C( 613) } }, + { { SIMDE_FLOAT32_C( 146.09), SIMDE_FLOAT32_C( 237.40) }, + { UINT32_C( 146), UINT32_C( 237) } }, + { { SIMDE_FLOAT32_C( 39.56), SIMDE_FLOAT32_C( 29.88) }, + { UINT32_C( 39), UINT32_C( 29) } }, + }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -759,10 +975,22 @@ test_simde_vcvtm_u32_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(0.0, 1000.0); + simde_uint32x2_t r = simde_vcvtm_u32_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_vcvtm_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; int32_t r[2]; @@ -792,10 +1020,23 @@ test_simde_vcvtm_s32_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_int32x2_t r = simde_vcvtm_s32_f32(a); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtm_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[1]; int64_t r[1]; @@ -825,30 +1066,43 @@ test_simde_vcvtm_s64_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_int64x1_t r = simde_vcvtm_s64_f64(a); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtm_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[1]; uint64_t r[1]; } test_vec[] = { - { { -SIMDE_FLOAT64_C( 64898.938) }, - { UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 45090.750) }, - { UINT64_C( 45090) } }, - { { -SIMDE_FLOAT64_C( 79406.664) }, - { UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 35254.516) }, - { UINT64_C( 35254) } }, - { { -SIMDE_FLOAT64_C( 33355.578) }, - { UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 90902.766) }, - { UINT64_C( 90902) } }, - { { -SIMDE_FLOAT64_C( 93056.258) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 34309.086) }, - { UINT64_C( 0) } }, + { { SIMDE_FLOAT64_C( 735.97) }, + { UINT64_C( 735) } }, + { { SIMDE_FLOAT64_C( 945.51) }, + { UINT64_C( 945) } }, + { { SIMDE_FLOAT64_C( 573.91) }, + { UINT64_C( 573) } }, + { { SIMDE_FLOAT64_C( 905.61) }, + { UINT64_C( 905) } }, + { { SIMDE_FLOAT64_C( 676.10) }, + { UINT64_C( 676) } }, + { { SIMDE_FLOAT64_C( 436.17) }, + { UINT64_C( 436) } }, + { { SIMDE_FLOAT64_C( 520.52) }, + { UINT64_C( 520) } }, + { { SIMDE_FLOAT64_C( 243.72) }, + { UINT64_C( 243) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -858,6 +1112,17 @@ test_simde_vcvtm_u64_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(0.0), SIMDE_FLOAT64_C(1000.0)); + simde_uint64x1_t r = simde_vcvtm_u64_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 } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/cvtp.c b/test/arm/neon/cvtp.c index 8f7840136..2a895d092 100644 --- a/test/arm/neon/cvtp.c +++ b/test/arm/neon/cvtp.c @@ -5,6 +5,7 @@ static int test_simde_vcvtpq_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; int32_t r[4]; @@ -34,10 +35,23 @@ test_simde_vcvtpq_s32_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_int32x4_t r = simde_vcvtpq_s32_f32(a); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtpq_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; int64_t r[2]; @@ -67,39 +81,50 @@ test_simde_vcvtpq_s64_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_int64x2_t r = simde_vcvtpq_s64_f64(a); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtph_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int64_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT64_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, INT64_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT64_MAX)), INT64_MAX }, - { HEDLEY_STATIC_CAST(simde_float16, INT64_MIN), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT64_MIN)), INT64_MIN }, #endif - { SIMDE_FLOAT16_C( 3.188), + { SIMDE_FLOAT16_VALUE( 3.188), INT64_C( 4) }, - { SIMDE_FLOAT16_C( 6.484), + { SIMDE_FLOAT16_VALUE( 6.484), INT64_C( 7) }, - { -SIMDE_FLOAT16_C( 18.336), + { SIMDE_FLOAT16_VALUE( - 18.336), -INT64_C( 18) }, - { SIMDE_FLOAT16_C( 27.028), + { SIMDE_FLOAT16_VALUE( 27.028), INT64_C( 28) }, - { -SIMDE_FLOAT16_C( 22.919), + { SIMDE_FLOAT16_VALUE( - 22.919), -INT64_C( 22) }, - { SIMDE_FLOAT16_C( 13.598), + { SIMDE_FLOAT16_VALUE( 13.598), INT64_C( 14) }, - { SIMDE_FLOAT16_C( 27.711), + { SIMDE_FLOAT16_VALUE( 27.711), INT64_C( 28) }, - { -SIMDE_FLOAT16_C( 1.019), + { SIMDE_FLOAT16_VALUE( - 1.019), -INT64_C( 1) }, }; @@ -110,35 +135,50 @@ test_simde_vcvtph_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int64_t r = simde_vcvtph_s64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtph_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int32_t r; } test_vec[] = { - { SIMDE_MATH_NANF, - INT32_C( 0) }, - { HEDLEY_STATIC_CAST(simde_float16, INT32_MAX), - INT32_MAX }, - { HEDLEY_STATIC_CAST(simde_float16, INT32_MIN), - INT32_MIN }, - { -SIMDE_FLOAT16_C( 13.547), + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + { SIMDE_NANHF, + INT32_C( 0) }, + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT32_MAX)), + INT32_MAX }, + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT32_MIN)), + INT32_MIN }, + #endif + { SIMDE_FLOAT16_VALUE( - 13.547), -INT32_C( 13) }, - { -SIMDE_FLOAT16_C( 28.627), + { SIMDE_FLOAT16_VALUE( - 28.627), -INT32_C( 28) }, - { -SIMDE_FLOAT16_C( 26.702), + { SIMDE_FLOAT16_VALUE( - 26.702), -INT32_C( 26) }, - { -SIMDE_FLOAT16_C( 8.158), + { SIMDE_FLOAT16_VALUE( - 8.158), -INT32_C( 8) }, - { -SIMDE_FLOAT16_C( 10.661), + { SIMDE_FLOAT16_VALUE( - 10.661), -INT32_C( 10) }, - { -SIMDE_FLOAT16_C( 14.185), + { SIMDE_FLOAT16_VALUE( - 14.185), -INT32_C( 14) }, - { SIMDE_FLOAT16_C( 10.164), + { SIMDE_FLOAT16_VALUE( 10.164), INT32_C( 11) }, - { -SIMDE_FLOAT16_C( 14.690), + { SIMDE_FLOAT16_VALUE( - 14.690), -INT32_C( 14) }, }; @@ -149,39 +189,50 @@ test_simde_vcvtph_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int32_t r = simde_vcvtph_s32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtph_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; int16_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT16_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, INT16_MAX) + SIMDE_FLOAT16_C(100.0), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT16_MAX) + SIMDE_FLOAT32_C(100.0)), INT16_MAX }, - { HEDLEY_STATIC_CAST(simde_float16, INT16_MIN) + SIMDE_FLOAT16_C(-100.0), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, INT16_MIN) + SIMDE_FLOAT32_C(-100.0)), INT16_MIN }, #endif - { SIMDE_FLOAT16_C( 26.840), + { SIMDE_FLOAT16_VALUE( 26.840), INT16_C( 27) }, - { SIMDE_FLOAT16_C( 28.316), + { SIMDE_FLOAT16_VALUE( 28.316), INT16_C( 29) }, - { SIMDE_FLOAT16_C( 11.363), + { SIMDE_FLOAT16_VALUE( 11.363), INT16_C( 12) }, - { -SIMDE_FLOAT16_C( 9.731), + { SIMDE_FLOAT16_VALUE( - 9.731), -INT16_C( 9) }, - { SIMDE_FLOAT16_C( 7.723), + { SIMDE_FLOAT16_VALUE( 7.723), INT16_C( 8) }, - { -SIMDE_FLOAT16_C( 22.898), + { SIMDE_FLOAT16_VALUE( - 22.898), -INT16_C( 22) }, - { -SIMDE_FLOAT16_C( 19.354), + { SIMDE_FLOAT16_VALUE( - 19.354), -INT16_C( 19) }, - { SIMDE_FLOAT16_C( 24.613), + { SIMDE_FLOAT16_VALUE( 24.613), INT16_C( 25) }, }; @@ -192,10 +243,23 @@ test_simde_vcvtph_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16_t r = simde_vcvtph_s16_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtps_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a; int32_t r; @@ -233,40 +297,51 @@ test_simde_vcvtps_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + simde_int32_t r = simde_vcvtps_s32_f32(a); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtph_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint64_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT64_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, UINT64_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, UINT64_MAX)), UINT64_MAX }, - { SIMDE_FLOAT16_C(-1000.0), + { SIMDE_FLOAT16_VALUE(-1000.0), UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -10.194), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -24.774), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -14.346), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -10.756), + UINT64_C( 0) }, + { SIMDE_FLOAT16_VALUE( -4.343), + UINT64_C( 0) }, #endif - { SIMDE_FLOAT16_C( 9.136), + { SIMDE_FLOAT16_VALUE( 9.136), UINT64_C( 10) }, - { -SIMDE_FLOAT16_C( 10.194), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 24.774), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 14.346), - UINT64_C( 0) }, - { -SIMDE_FLOAT16_C( 10.756), - UINT64_C( 0) }, - { SIMDE_FLOAT16_C( 8.945), + { SIMDE_FLOAT16_VALUE( 8.945), UINT64_C( 9) }, - { SIMDE_FLOAT16_C( 4.916), + { SIMDE_FLOAT16_VALUE( 4.916), UINT64_C( 5) }, - { -SIMDE_FLOAT16_C( 4.343), - UINT64_C( 0) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -276,40 +351,51 @@ test_simde_vcvtph_u64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint64_t r = simde_vcvtph_u64_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtph_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint32_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT32_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, UINT32_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX)), UINT32_MAX }, - { SIMDE_FLOAT16_C(-1000.0), + { SIMDE_FLOAT16_VALUE(-1000.0), UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -27.684), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -26.915), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -27.780), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -5.217), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -20.283), + UINT32_C( 0) }, + { SIMDE_FLOAT16_VALUE( -21.315), + UINT32_C( 0) }, #endif - { -SIMDE_FLOAT16_C( 27.684), - UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 26.915), - UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 14.954), + { SIMDE_FLOAT16_VALUE( 14.954), UINT32_C( 15) }, - { -SIMDE_FLOAT16_C( 27.780), - UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 5.217), - UINT32_C( 0) }, - { SIMDE_FLOAT16_C( 17.106), + { SIMDE_FLOAT16_VALUE( 17.106), UINT32_C( 18) }, - { -SIMDE_FLOAT16_C( 20.283), - UINT32_C( 0) }, - { -SIMDE_FLOAT16_C( 21.315), - UINT32_C( 0) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -319,39 +405,50 @@ test_simde_vcvtph_u32_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_uint32_t r = simde_vcvtph_u32_f16(a); + + simde_test_arm_neon_write_f16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtph_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a; uint16_t r; } test_vec[] = { #if !defined(SIMDE_FAST_CONVERSION_RANGE) - #if !defined(SIMDE_RISCV_RVV_NATIVE) - { SIMDE_MATH_NANF, + { SIMDE_NANHF, INT16_C( 0) }, - #endif - { HEDLEY_STATIC_CAST(simde_float16, UINT16_MAX), + { simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, UINT16_MAX)), UINT16_MAX }, - { SIMDE_FLOAT16_C(-1000.0), + { SIMDE_FLOAT16_VALUE(-1000.0), UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -8.513), + UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -2.731), + UINT16_C( 0) }, + { SIMDE_FLOAT16_VALUE( -26.507), + UINT16_C( 0) }, #endif - { -SIMDE_FLOAT16_C( 8.513), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 17.766), + { SIMDE_FLOAT16_VALUE( 17.766), UINT16_C( 18) }, - { SIMDE_FLOAT16_C( 22.378), + { SIMDE_FLOAT16_VALUE( 22.378), UINT16_C( 23) }, - { SIMDE_FLOAT16_C( 2.456), + { SIMDE_FLOAT16_VALUE( 2.456), UINT16_C( 3) }, - { -SIMDE_FLOAT16_C( 2.731), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 25.255), + { SIMDE_FLOAT16_VALUE( 25.255), UINT16_C( 26) }, - { -SIMDE_FLOAT16_C( 26.507), - UINT16_C( 0) }, - { SIMDE_FLOAT16_C( 5.504), + { SIMDE_FLOAT16_VALUE( 5.504), UINT16_C( 6) }, }; @@ -362,10 +459,23 @@ test_simde_vcvtph_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vcvtph_u16_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 } static int test_simde_vcvtps_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a; uint32_t r; @@ -377,11 +487,11 @@ test_simde_vcvtps_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { UINT32_MAX }, { SIMDE_FLOAT32_C(-1000.0), UINT32_C( 0) }, + { -SIMDE_FLOAT32_C( 204.507), + UINT32_C( 0) }, #endif { SIMDE_FLOAT32_C( 517.893), UINT32_C( 518) }, - { -SIMDE_FLOAT32_C( 204.507), - UINT32_C( 0) }, { SIMDE_FLOAT32_C( 288.716), UINT32_C( 289) }, { SIMDE_FLOAT32_C( 197.506), @@ -403,10 +513,23 @@ test_simde_vcvtps_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float32_t a = simde_test_arm_neon_random_f32(-1000.0f, 1000.0f); + simde_uint32_t r = simde_vcvtps_u32_f32(a); + + simde_test_arm_neon_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtpq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float32 a[4]; uint32_t r[4]; @@ -415,22 +538,22 @@ test_simde_vcvtpq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { { { HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX) + SIMDE_FLOAT32_C(10000.0), SIMDE_MATH_NANF, -SIMDE_MATH_NANF, SIMDE_MATH_INFINITYF }, { UINT32_MAX, UINT32_C( 0), UINT32_C( 0), UINT32_MAX } }, #endif - { { -SIMDE_FLOAT32_C( 730.460), SIMDE_FLOAT32_C( 119.588), SIMDE_FLOAT32_C( 201.108), -SIMDE_FLOAT32_C( 143.672) }, - { UINT32_C( 0), UINT32_C( 120), UINT32_C( 202), UINT32_C( 0) } }, - { { -SIMDE_FLOAT32_C( 734.690), -SIMDE_FLOAT32_C( 494.553), SIMDE_FLOAT32_C( 835.514), SIMDE_FLOAT32_C( 778.079) }, - { UINT32_C( 0), UINT32_C( 0), UINT32_C( 836), UINT32_C( 779) } }, - { { SIMDE_FLOAT32_C( 450.979), SIMDE_FLOAT32_C( 694.603), SIMDE_FLOAT32_C( 509.597), SIMDE_FLOAT32_C( 391.277) }, - { UINT32_C( 451), UINT32_C( 695), UINT32_C( 510), UINT32_C( 392) } }, - { { SIMDE_FLOAT32_C( 792.841), -SIMDE_FLOAT32_C( 706.039), SIMDE_FLOAT32_C( 942.828), SIMDE_FLOAT32_C( 229.087) }, - { UINT32_C( 793), UINT32_C( 0), UINT32_C( 943), UINT32_C( 230) } }, - { { -SIMDE_FLOAT32_C( 29.631), -SIMDE_FLOAT32_C( 573.159), SIMDE_FLOAT32_C( 206.868), SIMDE_FLOAT32_C( 68.827) }, - { UINT32_C( 0), UINT32_C( 0), UINT32_C( 207), UINT32_C( 69) } }, - { { SIMDE_FLOAT32_C( 281.788), -SIMDE_FLOAT32_C( 534.711), SIMDE_FLOAT32_C( 100.106), -SIMDE_FLOAT32_C( 525.881) }, - { UINT32_C( 282), UINT32_C( 0), UINT32_C( 101), UINT32_C( 0) } }, - { { SIMDE_FLOAT32_C( 249.134), -SIMDE_FLOAT32_C( 861.506), -SIMDE_FLOAT32_C( 857.366), SIMDE_FLOAT32_C( 987.604) }, - { UINT32_C( 250), UINT32_C( 0), UINT32_C( 0), UINT32_C( 988) } }, - { { -SIMDE_FLOAT32_C( 72.933), SIMDE_FLOAT32_C( 412.447), -SIMDE_FLOAT32_C( 673.455), SIMDE_FLOAT32_C( 741.723) }, - { UINT32_C( 0), UINT32_C( 413), UINT32_C( 0), UINT32_C( 742) } }, + { { SIMDE_FLOAT32_C( 619.63), SIMDE_FLOAT32_C( 364.48), SIMDE_FLOAT32_C( 938.24), SIMDE_FLOAT32_C( 444.69) }, + { UINT32_C( 620), UINT32_C( 365), UINT32_C( 939), UINT32_C( 445) } }, + { { SIMDE_FLOAT32_C( 955.05), SIMDE_FLOAT32_C( 217.80), SIMDE_FLOAT32_C( 439.91), SIMDE_FLOAT32_C( 55.17) }, + { UINT32_C( 956), UINT32_C( 218), UINT32_C( 440), UINT32_C( 56) } }, + { { SIMDE_FLOAT32_C( 859.62), SIMDE_FLOAT32_C( 349.38), SIMDE_FLOAT32_C( 956.45), SIMDE_FLOAT32_C( 249.96) }, + { UINT32_C( 860), UINT32_C( 350), UINT32_C( 957), UINT32_C( 250) } }, + { { SIMDE_FLOAT32_C( 511.78), SIMDE_FLOAT32_C( 571.90), SIMDE_FLOAT32_C( 930.47), SIMDE_FLOAT32_C( 688.88) }, + { UINT32_C( 512), UINT32_C( 572), UINT32_C( 931), UINT32_C( 689) } }, + { { SIMDE_FLOAT32_C( 637.73), SIMDE_FLOAT32_C( 370.86), SIMDE_FLOAT32_C( 732.69), SIMDE_FLOAT32_C( 402.84) }, + { UINT32_C( 638), UINT32_C( 371), UINT32_C( 733), UINT32_C( 403) } }, + { { SIMDE_FLOAT32_C( 328.28), SIMDE_FLOAT32_C( 536.20), SIMDE_FLOAT32_C( 378.54), SIMDE_FLOAT32_C( 375.08) }, + { UINT32_C( 329), UINT32_C( 537), UINT32_C( 379), UINT32_C( 376) } }, + { { SIMDE_FLOAT32_C( 709.63), SIMDE_FLOAT32_C( 671.54), SIMDE_FLOAT32_C( 418.37), SIMDE_FLOAT32_C( 407.44) }, + { UINT32_C( 710), UINT32_C( 672), UINT32_C( 419), UINT32_C( 408) } }, + { { SIMDE_FLOAT32_C( 782.97), SIMDE_FLOAT32_C( 601.77), SIMDE_FLOAT32_C( 970.47), SIMDE_FLOAT32_C( 402.60) }, + { UINT32_C( 783), UINT32_C( 602), UINT32_C( 971), UINT32_C( 403) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -441,10 +564,23 @@ test_simde_vcvtpq_u32_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(0.0f, 1000.0f); + simde_uint32x4_t r = simde_vcvtpq_u32_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_vcvtpd_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; int64_t r; @@ -482,10 +618,23 @@ test_simde_vcvtpd_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64_t a = simde_test_arm_neon_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_int64_t r = simde_vcvtpd_s64_f64(a); + + simde_test_arm_neon_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtpd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a; uint64_t r; @@ -497,19 +646,19 @@ test_simde_vcvtpd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { UINT64_MAX }, { SIMDE_FLOAT64_C(-1000.0), UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 84790.281), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 60574.262), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 38330.883), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 32369.992), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 89585.359), + UINT64_C( 0) }, + { -SIMDE_FLOAT64_C( 97223.203), + UINT64_C( 0) }, #endif - { -SIMDE_FLOAT64_C( 84790.281), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 60574.262), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 38330.883), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 32369.992), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 89585.359), - UINT64_C( 0) }, - { -SIMDE_FLOAT64_C( 97223.203), - UINT64_C( 0) }, { SIMDE_FLOAT64_C( 60286.391), UINT64_C( 60287) }, { SIMDE_FLOAT64_C( 75317.063), @@ -523,10 +672,23 @@ test_simde_vcvtpd_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float64_t a = simde_test_arm_neon_random_f64(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_uint64_t r = simde_vcvtpd_u64_f64(a); + + simde_test_arm_neon_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtpq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float64 a[2]; uint64_t r[2]; @@ -537,22 +699,22 @@ test_simde_vcvtpq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { { { -SIMDE_MATH_NAN, -SIMDE_FLOAT64_C(10000.0) }, { UINT64_C( 0), UINT64_C( 0) } }, #endif - { { SIMDE_FLOAT64_C( 40548.281), SIMDE_FLOAT64_C( 75623.734) }, - { UINT64_C( 40549), UINT64_C( 75624) } }, - { { SIMDE_FLOAT64_C( 73904.125), SIMDE_FLOAT64_C( 60351.406) }, - { UINT64_C( 73905), UINT64_C( 60352) } }, - { { -SIMDE_FLOAT64_C( 7687.164), -SIMDE_FLOAT64_C( 54845.516) }, - { UINT64_C( 0), UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 6370.984), -SIMDE_FLOAT64_C( 15883.758) }, - { UINT64_C( 0), UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 1463.313), -SIMDE_FLOAT64_C( 89720.492) }, - { UINT64_C( 0), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 77919.359), -SIMDE_FLOAT64_C( 57334.516) }, - { UINT64_C( 77920), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 25524.688), -SIMDE_FLOAT64_C( 18422.711) }, - { UINT64_C( 25525), UINT64_C( 0) } }, - { { SIMDE_FLOAT64_C( 85632.547), -SIMDE_FLOAT64_C( 2039.086) }, - { UINT64_C( 85633), UINT64_C( 0) } }, + { { SIMDE_FLOAT64_C( 966.26), SIMDE_FLOAT64_C( 908.71) }, + { UINT64_C( 967), UINT64_C( 909) } }, + { { SIMDE_FLOAT64_C( 847.29), SIMDE_FLOAT64_C( 921.31) }, + { UINT64_C( 848), UINT64_C( 922) } }, + { { SIMDE_FLOAT64_C( 126.50), SIMDE_FLOAT64_C( 287.19) }, + { UINT64_C( 127), UINT64_C( 288) } }, + { { SIMDE_FLOAT64_C( 976.48), SIMDE_FLOAT64_C( 986.12) }, + { UINT64_C( 977), UINT64_C( 987) } }, + { { SIMDE_FLOAT64_C( 636.57), SIMDE_FLOAT64_C( 932.93) }, + { UINT64_C( 637), UINT64_C( 933) } }, + { { SIMDE_FLOAT64_C( 236.08), SIMDE_FLOAT64_C( 148.35) }, + { UINT64_C( 237), UINT64_C( 149) } }, + { { SIMDE_FLOAT64_C( 504.84), SIMDE_FLOAT64_C( 166.55) }, + { UINT64_C( 505), UINT64_C( 167) } }, + { { SIMDE_FLOAT64_C( 837.23), SIMDE_FLOAT64_C( 142.57) }, + { UINT64_C( 838), UINT64_C( 143) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -562,44 +724,57 @@ test_simde_vcvtpq_u64_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(0.0), SIMDE_FLOAT64_C(1000.0)); + simde_uint64x2_t r = simde_vcvtpq_u64_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_vcvtpq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; int16_t r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 17.482), SIMDE_FLOAT16_C( 25.249), -SIMDE_FLOAT16_C( 23.786), SIMDE_FLOAT16_C( 26.713), - -SIMDE_FLOAT16_C( 27.250), -SIMDE_FLOAT16_C( 25.132), SIMDE_FLOAT16_C( 16.970), SIMDE_FLOAT16_C( 1.147) }, + { { SIMDE_FLOAT16_VALUE( - 17.482), SIMDE_FLOAT16_VALUE( 25.249), SIMDE_FLOAT16_VALUE( - 23.786), SIMDE_FLOAT16_VALUE( 26.713), + SIMDE_FLOAT16_VALUE( - 27.250), SIMDE_FLOAT16_VALUE( - 25.132), SIMDE_FLOAT16_VALUE( 16.970), SIMDE_FLOAT16_VALUE( 1.147) }, { -INT16_C( 17), INT16_C( 26), -INT16_C( 23), INT16_C( 27), -INT16_C( 27), -INT16_C( 25), INT16_C( 17), INT16_C( 2) } }, - { { -SIMDE_FLOAT16_C( 22.099), -SIMDE_FLOAT16_C( 21.667), -SIMDE_FLOAT16_C( 8.017), -SIMDE_FLOAT16_C( 2.271), - -SIMDE_FLOAT16_C( 12.312), SIMDE_FLOAT16_C( 22.849), SIMDE_FLOAT16_C( 15.892), -SIMDE_FLOAT16_C( 8.588) }, + { { SIMDE_FLOAT16_VALUE( - 22.099), SIMDE_FLOAT16_VALUE( - 21.667), SIMDE_FLOAT16_VALUE( - 8.017), SIMDE_FLOAT16_VALUE( - 2.271), + SIMDE_FLOAT16_VALUE( - 12.312), SIMDE_FLOAT16_VALUE( 22.849), SIMDE_FLOAT16_VALUE( 15.892), SIMDE_FLOAT16_VALUE( - 8.588) }, { -INT16_C( 22), -INT16_C( 21), -INT16_C( 8), -INT16_C( 2), -INT16_C( 12), INT16_C( 23), INT16_C( 16), -INT16_C( 8) } }, - { { SIMDE_FLOAT16_C( 2.094), -SIMDE_FLOAT16_C( 2.744), -SIMDE_FLOAT16_C( 25.968), -SIMDE_FLOAT16_C( 21.280), - SIMDE_FLOAT16_C( 19.739), SIMDE_FLOAT16_C( 20.780), -SIMDE_FLOAT16_C( 3.155), SIMDE_FLOAT16_C( 19.892) }, + { { SIMDE_FLOAT16_VALUE( 2.094), SIMDE_FLOAT16_VALUE( - 2.744), SIMDE_FLOAT16_VALUE( - 25.968), SIMDE_FLOAT16_VALUE( - 21.280), + SIMDE_FLOAT16_VALUE( 19.739), SIMDE_FLOAT16_VALUE( 20.780), SIMDE_FLOAT16_VALUE( - 3.155), SIMDE_FLOAT16_VALUE( 19.892) }, { INT16_C( 3), -INT16_C( 2), -INT16_C( 25), -INT16_C( 21), INT16_C( 20), INT16_C( 21), -INT16_C( 3), INT16_C( 20) } }, - { { -SIMDE_FLOAT16_C( 17.802), -SIMDE_FLOAT16_C( 7.956), -SIMDE_FLOAT16_C( 25.547), SIMDE_FLOAT16_C( 29.976), - -SIMDE_FLOAT16_C( 16.109), -SIMDE_FLOAT16_C( 0.241), -SIMDE_FLOAT16_C( 17.325), SIMDE_FLOAT16_C( 2.343) }, + { { SIMDE_FLOAT16_VALUE( - 17.802), SIMDE_FLOAT16_VALUE( - 7.956), SIMDE_FLOAT16_VALUE( - 25.547), SIMDE_FLOAT16_VALUE( 29.976), + SIMDE_FLOAT16_VALUE( - 16.109), SIMDE_FLOAT16_VALUE( - 0.241), SIMDE_FLOAT16_VALUE( - 17.325), SIMDE_FLOAT16_VALUE( 2.343) }, { -INT16_C( 17), -INT16_C( 7), -INT16_C( 25), INT16_C( 30), -INT16_C( 16), INT16_C( 0), -INT16_C( 17), INT16_C( 3) } }, - { { -SIMDE_FLOAT16_C( 2.318), SIMDE_FLOAT16_C( 27.885), SIMDE_FLOAT16_C( 10.828), SIMDE_FLOAT16_C( 16.530), - SIMDE_FLOAT16_C( 19.659), -SIMDE_FLOAT16_C( 11.861), -SIMDE_FLOAT16_C( 15.435), -SIMDE_FLOAT16_C( 22.972) }, + { { SIMDE_FLOAT16_VALUE( - 2.318), SIMDE_FLOAT16_VALUE( 27.885), SIMDE_FLOAT16_VALUE( 10.828), SIMDE_FLOAT16_VALUE( 16.530), + SIMDE_FLOAT16_VALUE( 19.659), SIMDE_FLOAT16_VALUE( - 11.861), SIMDE_FLOAT16_VALUE( - 15.435), SIMDE_FLOAT16_VALUE( - 22.972) }, { -INT16_C( 2), INT16_C( 28), INT16_C( 11), INT16_C( 17), INT16_C( 20), -INT16_C( 11), -INT16_C( 15), -INT16_C( 22) } }, - { { -SIMDE_FLOAT16_C( 26.398), SIMDE_FLOAT16_C( 12.636), SIMDE_FLOAT16_C( 23.632), SIMDE_FLOAT16_C( 22.209), - SIMDE_FLOAT16_C( 16.480), -SIMDE_FLOAT16_C( 8.479), -SIMDE_FLOAT16_C( 11.944), -SIMDE_FLOAT16_C( 10.576) }, + { { SIMDE_FLOAT16_VALUE( - 26.398), SIMDE_FLOAT16_VALUE( 12.636), SIMDE_FLOAT16_VALUE( 23.632), SIMDE_FLOAT16_VALUE( 22.209), + SIMDE_FLOAT16_VALUE( 16.480), SIMDE_FLOAT16_VALUE( - 8.479), SIMDE_FLOAT16_VALUE( - 11.944), SIMDE_FLOAT16_VALUE( - 10.576) }, { -INT16_C( 26), INT16_C( 13), INT16_C( 24), INT16_C( 23), INT16_C( 17), -INT16_C( 8), -INT16_C( 11), -INT16_C( 10) } }, - { { SIMDE_FLOAT16_C( 10.556), SIMDE_FLOAT16_C( 14.462), SIMDE_FLOAT16_C( 4.323), SIMDE_FLOAT16_C( 29.542), - -SIMDE_FLOAT16_C( 13.708), -SIMDE_FLOAT16_C( 11.548), SIMDE_FLOAT16_C( 13.467), SIMDE_FLOAT16_C( 4.887) }, + { { SIMDE_FLOAT16_VALUE( 10.556), SIMDE_FLOAT16_VALUE( 14.462), SIMDE_FLOAT16_VALUE( 4.323), SIMDE_FLOAT16_VALUE( 29.542), + SIMDE_FLOAT16_VALUE( - 13.708), SIMDE_FLOAT16_VALUE( - 11.548), SIMDE_FLOAT16_VALUE( 13.467), SIMDE_FLOAT16_VALUE( 4.887) }, { INT16_C( 11), INT16_C( 15), INT16_C( 5), INT16_C( 30), -INT16_C( 13), -INT16_C( 11), INT16_C( 14), INT16_C( 5) } }, - { { -SIMDE_FLOAT16_C( 28.249), SIMDE_FLOAT16_C( 10.669), SIMDE_FLOAT16_C( 15.634), -SIMDE_FLOAT16_C( 29.024), - -SIMDE_FLOAT16_C( 5.544), SIMDE_FLOAT16_C( 5.271), SIMDE_FLOAT16_C( 7.326), SIMDE_FLOAT16_C( 22.421) }, + { { SIMDE_FLOAT16_VALUE( - 28.249), SIMDE_FLOAT16_VALUE( 10.669), SIMDE_FLOAT16_VALUE( 15.634), SIMDE_FLOAT16_VALUE( - 29.024), + SIMDE_FLOAT16_VALUE( - 5.544), SIMDE_FLOAT16_VALUE( 5.271), SIMDE_FLOAT16_VALUE( 7.326), SIMDE_FLOAT16_VALUE( 22.421) }, { -INT16_C( 28), INT16_C( 11), INT16_C( 16), -INT16_C( 29), -INT16_C( 5), INT16_C( 6), INT16_C( 8), INT16_C( 23) } }, }; @@ -611,29 +786,42 @@ test_simde_vcvtpq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x8_t r = simde_vcvtpq_s16_f16(a); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtp_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; int16_t r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 24.451), -SIMDE_FLOAT16_C( 26.951), SIMDE_FLOAT16_C( 4.545), -SIMDE_FLOAT16_C( 16.203) }, + { { SIMDE_FLOAT16_VALUE( - 24.451), SIMDE_FLOAT16_VALUE( - 26.951), SIMDE_FLOAT16_VALUE( 4.545), SIMDE_FLOAT16_VALUE( - 16.203) }, { -INT16_C( 24), -INT16_C( 26), INT16_C( 5), -INT16_C( 16) } }, - { { -SIMDE_FLOAT16_C( 6.971), -SIMDE_FLOAT16_C( 0.372), -SIMDE_FLOAT16_C( 23.985), -SIMDE_FLOAT16_C( 5.566) }, + { { SIMDE_FLOAT16_VALUE( - 6.971), SIMDE_FLOAT16_VALUE( - 0.372), SIMDE_FLOAT16_VALUE( - 23.985), SIMDE_FLOAT16_VALUE( - 5.566) }, { -INT16_C( 6), INT16_C( 0), -INT16_C( 23), -INT16_C( 5) } }, - { { -SIMDE_FLOAT16_C( 17.684), -SIMDE_FLOAT16_C( 12.522), -SIMDE_FLOAT16_C( 26.196), -SIMDE_FLOAT16_C( 17.907) }, + { { SIMDE_FLOAT16_VALUE( - 17.684), SIMDE_FLOAT16_VALUE( - 12.522), SIMDE_FLOAT16_VALUE( - 26.196), SIMDE_FLOAT16_VALUE( - 17.907) }, { -INT16_C( 17), -INT16_C( 12), -INT16_C( 26), -INT16_C( 17) } }, - { { -SIMDE_FLOAT16_C( 15.913), SIMDE_FLOAT16_C( 11.327), -SIMDE_FLOAT16_C( 20.331), SIMDE_FLOAT16_C( 6.990) }, + { { SIMDE_FLOAT16_VALUE( - 15.913), SIMDE_FLOAT16_VALUE( 11.327), SIMDE_FLOAT16_VALUE( - 20.331), SIMDE_FLOAT16_VALUE( 6.990) }, { -INT16_C( 15), INT16_C( 12), -INT16_C( 20), INT16_C( 7) } }, - { { -SIMDE_FLOAT16_C( 7.259), SIMDE_FLOAT16_C( 10.857), -SIMDE_FLOAT16_C( 14.002), SIMDE_FLOAT16_C( 16.367) }, + { { SIMDE_FLOAT16_VALUE( - 7.259), SIMDE_FLOAT16_VALUE( 10.857), SIMDE_FLOAT16_VALUE( - 14.002), SIMDE_FLOAT16_VALUE( 16.367) }, { -INT16_C( 7), INT16_C( 11), -INT16_C( 14), INT16_C( 17) } }, - { { -SIMDE_FLOAT16_C( 14.487), SIMDE_FLOAT16_C( 25.818), SIMDE_FLOAT16_C( 25.545), -SIMDE_FLOAT16_C( 9.464) }, + { { SIMDE_FLOAT16_VALUE( - 14.487), SIMDE_FLOAT16_VALUE( 25.818), SIMDE_FLOAT16_VALUE( 25.545), SIMDE_FLOAT16_VALUE( - 9.464) }, { -INT16_C( 14), INT16_C( 26), INT16_C( 26), -INT16_C( 9) } }, - { { SIMDE_FLOAT16_C( 10.801), -SIMDE_FLOAT16_C( 16.889), SIMDE_FLOAT16_C( 15.712), -SIMDE_FLOAT16_C( 26.668) }, + { { SIMDE_FLOAT16_VALUE( 10.801), SIMDE_FLOAT16_VALUE( - 16.889), SIMDE_FLOAT16_VALUE( 15.712), SIMDE_FLOAT16_VALUE( - 26.668) }, { INT16_C( 11), -INT16_C( 16), INT16_C( 16), -INT16_C( 26) } }, - { { SIMDE_FLOAT16_C( 16.707), -SIMDE_FLOAT16_C( 6.907), -SIMDE_FLOAT16_C( 16.125), SIMDE_FLOAT16_C( 16.581) }, + { { SIMDE_FLOAT16_VALUE( 16.707), SIMDE_FLOAT16_VALUE( - 6.907), SIMDE_FLOAT16_VALUE( - 16.125), SIMDE_FLOAT16_VALUE( 16.581) }, { INT16_C( 17), -INT16_C( 6), -INT16_C( 16), INT16_C( 17) } }, }; @@ -644,46 +832,51 @@ test_simde_vcvtp_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_int16x4_t r = simde_vcvtp_s16_f16(a); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtpq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; uint16_t r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 8.412), -SIMDE_FLOAT16_C( 20.676), SIMDE_FLOAT16_C( 20.459), -SIMDE_FLOAT16_C( 13.452), - -SIMDE_FLOAT16_C( 29.146), -SIMDE_FLOAT16_C( 14.819), SIMDE_FLOAT16_C( 20.802), -SIMDE_FLOAT16_C( 24.492) }, - { UINT16_C( 9), UINT16_C( 0), UINT16_C( 21), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 0), UINT16_C( 21), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 2.614), -SIMDE_FLOAT16_C( 15.601), SIMDE_FLOAT16_C( 8.786), -SIMDE_FLOAT16_C( 6.447), - SIMDE_FLOAT16_C( 10.565), -SIMDE_FLOAT16_C( 2.841), -SIMDE_FLOAT16_C( 22.172), -SIMDE_FLOAT16_C( 29.225) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 9), UINT16_C( 0), - UINT16_C( 11), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 14.661), -SIMDE_FLOAT16_C( 19.655), SIMDE_FLOAT16_C( 20.945), -SIMDE_FLOAT16_C( 14.723), - -SIMDE_FLOAT16_C( 6.795), -SIMDE_FLOAT16_C( 15.668), -SIMDE_FLOAT16_C( 14.611), -SIMDE_FLOAT16_C( 1.305) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 21), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 19.446), -SIMDE_FLOAT16_C( 4.649), SIMDE_FLOAT16_C( 15.291), SIMDE_FLOAT16_C( 27.089), - SIMDE_FLOAT16_C( 21.245), SIMDE_FLOAT16_C( 26.014), -SIMDE_FLOAT16_C( 26.170), -SIMDE_FLOAT16_C( 5.297) }, - { UINT16_C( 20), UINT16_C( 0), UINT16_C( 16), UINT16_C( 28), - UINT16_C( 22), UINT16_C( 27), UINT16_C( 0), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 24.950), -SIMDE_FLOAT16_C( 6.918), SIMDE_FLOAT16_C( 0.448), -SIMDE_FLOAT16_C( 15.577), - -SIMDE_FLOAT16_C( 0.695), SIMDE_FLOAT16_C( 5.113), SIMDE_FLOAT16_C( 25.849), SIMDE_FLOAT16_C( 14.897) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 1), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 6), UINT16_C( 26), UINT16_C( 15) } }, - { { SIMDE_FLOAT16_C( 1.047), SIMDE_FLOAT16_C( 24.092), -SIMDE_FLOAT16_C( 1.801), -SIMDE_FLOAT16_C( 17.346), - SIMDE_FLOAT16_C( 29.217), -SIMDE_FLOAT16_C( 9.152), SIMDE_FLOAT16_C( 28.523), -SIMDE_FLOAT16_C( 4.282) }, - { UINT16_C( 2), UINT16_C( 25), UINT16_C( 0), UINT16_C( 0), - UINT16_C( 30), UINT16_C( 0), UINT16_C( 29), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 4.652), SIMDE_FLOAT16_C( 7.864), -SIMDE_FLOAT16_C( 17.356), -SIMDE_FLOAT16_C( 28.063), - SIMDE_FLOAT16_C( 6.314), SIMDE_FLOAT16_C( 6.172), SIMDE_FLOAT16_C( 26.258), SIMDE_FLOAT16_C( 9.995) }, - { UINT16_C( 5), UINT16_C( 8), UINT16_C( 0), UINT16_C( 0), - UINT16_C( 7), UINT16_C( 7), UINT16_C( 27), UINT16_C( 10) } }, - { { SIMDE_FLOAT16_C( 18.260), -SIMDE_FLOAT16_C( 10.321), SIMDE_FLOAT16_C( 22.847), -SIMDE_FLOAT16_C( 0.938), - -SIMDE_FLOAT16_C( 14.103), -SIMDE_FLOAT16_C( 19.351), -SIMDE_FLOAT16_C( 14.925), SIMDE_FLOAT16_C( 9.615) }, - { UINT16_C( 19), UINT16_C( 0), UINT16_C( 23), UINT16_C( 0), - UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 10) } }, + { { SIMDE_FLOAT16_VALUE( 14.36), SIMDE_FLOAT16_VALUE( 34.09), SIMDE_FLOAT16_VALUE( 69.00), SIMDE_FLOAT16_VALUE( 4.10), + SIMDE_FLOAT16_VALUE( 51.00), SIMDE_FLOAT16_VALUE( 31.69), SIMDE_FLOAT16_VALUE( 40.94), SIMDE_FLOAT16_VALUE( 90.44) }, + { UINT16_C( 15), UINT16_C( 35), UINT16_C( 69), UINT16_C( 5), UINT16_C( 51), UINT16_C( 32), UINT16_C( 41), UINT16_C( 91) } }, + { { SIMDE_FLOAT16_VALUE( 17.02), SIMDE_FLOAT16_VALUE( 50.97), SIMDE_FLOAT16_VALUE( 36.22), SIMDE_FLOAT16_VALUE( 91.44), + SIMDE_FLOAT16_VALUE( 80.12), SIMDE_FLOAT16_VALUE( 74.88), SIMDE_FLOAT16_VALUE( 25.30), SIMDE_FLOAT16_VALUE( 71.44) }, + { UINT16_C( 18), UINT16_C( 51), UINT16_C( 37), UINT16_C( 92), UINT16_C( 81), UINT16_C( 75), UINT16_C( 26), UINT16_C( 72) } }, + { { SIMDE_FLOAT16_VALUE( 29.02), SIMDE_FLOAT16_VALUE( 1.47), SIMDE_FLOAT16_VALUE( 45.03), SIMDE_FLOAT16_VALUE( 76.00), + SIMDE_FLOAT16_VALUE( 86.69), SIMDE_FLOAT16_VALUE( 69.94), SIMDE_FLOAT16_VALUE( 51.69), SIMDE_FLOAT16_VALUE( 76.00) }, + { UINT16_C( 30), UINT16_C( 2), UINT16_C( 46), UINT16_C( 76), UINT16_C( 87), UINT16_C( 70), UINT16_C( 52), UINT16_C( 76) } }, + { { SIMDE_FLOAT16_VALUE( 21.06), SIMDE_FLOAT16_VALUE( 8.94), SIMDE_FLOAT16_VALUE( 37.00), SIMDE_FLOAT16_VALUE( 31.73), + SIMDE_FLOAT16_VALUE( 99.62), SIMDE_FLOAT16_VALUE( 52.44), SIMDE_FLOAT16_VALUE( 81.81), SIMDE_FLOAT16_VALUE( 14.01) }, + { UINT16_C( 22), UINT16_C( 9), UINT16_C( 37), UINT16_C( 32), UINT16_C( 100), UINT16_C( 53), UINT16_C( 82), UINT16_C( 15) } }, + { { SIMDE_FLOAT16_VALUE( 86.50), SIMDE_FLOAT16_VALUE( 50.81), SIMDE_FLOAT16_VALUE( 18.11), SIMDE_FLOAT16_VALUE( 37.53), + SIMDE_FLOAT16_VALUE( 82.50), SIMDE_FLOAT16_VALUE( 59.06), SIMDE_FLOAT16_VALUE( 27.95), SIMDE_FLOAT16_VALUE( 99.50) }, + { UINT16_C( 87), UINT16_C( 51), UINT16_C( 19), UINT16_C( 38), UINT16_C( 83), UINT16_C( 60), UINT16_C( 28), UINT16_C( 100) } }, + { { SIMDE_FLOAT16_VALUE( 10.01), SIMDE_FLOAT16_VALUE( 64.19), SIMDE_FLOAT16_VALUE( 90.94), SIMDE_FLOAT16_VALUE( 90.12), + SIMDE_FLOAT16_VALUE( 39.03), SIMDE_FLOAT16_VALUE( 16.23), SIMDE_FLOAT16_VALUE( 61.53), SIMDE_FLOAT16_VALUE( 68.06) }, + { UINT16_C( 11), UINT16_C( 65), UINT16_C( 91), UINT16_C( 91), UINT16_C( 40), UINT16_C( 17), UINT16_C( 62), UINT16_C( 69) } }, + { { SIMDE_FLOAT16_VALUE( 17.70), SIMDE_FLOAT16_VALUE( 6.58), SIMDE_FLOAT16_VALUE( 44.03), SIMDE_FLOAT16_VALUE( 4.38), + SIMDE_FLOAT16_VALUE( 76.50), SIMDE_FLOAT16_VALUE( 95.75), SIMDE_FLOAT16_VALUE( 80.38), SIMDE_FLOAT16_VALUE( 97.56) }, + { UINT16_C( 18), UINT16_C( 7), UINT16_C( 45), UINT16_C( 5), UINT16_C( 77), UINT16_C( 96), UINT16_C( 81), UINT16_C( 98) } }, + { { SIMDE_FLOAT16_VALUE( 4.68), SIMDE_FLOAT16_VALUE( 17.34), SIMDE_FLOAT16_VALUE( 29.30), SIMDE_FLOAT16_VALUE( 4.33), + SIMDE_FLOAT16_VALUE( 69.75), SIMDE_FLOAT16_VALUE( 11.14), SIMDE_FLOAT16_VALUE( 18.34), SIMDE_FLOAT16_VALUE( 56.31) }, + { UINT16_C( 5), UINT16_C( 18), UINT16_C( 30), UINT16_C( 5), UINT16_C( 70), UINT16_C( 12), UINT16_C( 19), UINT16_C( 57) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -693,30 +886,43 @@ test_simde_vcvtpq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x8_t a = simde_test_arm_neon_random_f16x8(0.0f, 100.0f); + simde_uint16x8_t r = simde_vcvtpq_u16_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_vcvtp_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; uint16_t r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 28.193), -SIMDE_FLOAT16_C( 5.895), -SIMDE_FLOAT16_C( 19.920), SIMDE_FLOAT16_C( 6.564) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 7) } }, - { { SIMDE_FLOAT16_C( 0.585), -SIMDE_FLOAT16_C( 6.201), -SIMDE_FLOAT16_C( 22.634), SIMDE_FLOAT16_C( 24.041) }, - { UINT16_C( 1), UINT16_C( 0), UINT16_C( 0), UINT16_C( 25) } }, - { { SIMDE_FLOAT16_C( 4.740), SIMDE_FLOAT16_C( 23.654), SIMDE_FLOAT16_C( 11.130), -SIMDE_FLOAT16_C( 5.253) }, - { UINT16_C( 5), UINT16_C( 24), UINT16_C( 12), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 1.349), SIMDE_FLOAT16_C( 2.498), SIMDE_FLOAT16_C( 13.681), -SIMDE_FLOAT16_C( 29.260) }, - { UINT16_C( 2), UINT16_C( 3), UINT16_C( 14), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 23.131), -SIMDE_FLOAT16_C( 13.650), -SIMDE_FLOAT16_C( 17.659), -SIMDE_FLOAT16_C( 13.515) }, - { UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 8.833), -SIMDE_FLOAT16_C( 2.183), SIMDE_FLOAT16_C( 18.027), -SIMDE_FLOAT16_C( 17.240) }, - { UINT16_C( 9), UINT16_C( 0), UINT16_C( 19), UINT16_C( 0) } }, - { { SIMDE_FLOAT16_C( 10.889), -SIMDE_FLOAT16_C( 11.836), SIMDE_FLOAT16_C( 29.920), -SIMDE_FLOAT16_C( 7.524) }, - { UINT16_C( 11), UINT16_C( 0), UINT16_C( 30), UINT16_C( 0) } }, - { { -SIMDE_FLOAT16_C( 29.853), SIMDE_FLOAT16_C( 19.538), SIMDE_FLOAT16_C( 25.232), SIMDE_FLOAT16_C( 12.122) }, - { UINT16_C( 0), UINT16_C( 20), UINT16_C( 26), UINT16_C( 13) } }, + { { SIMDE_FLOAT16_VALUE( 92.38), SIMDE_FLOAT16_VALUE( 41.81), SIMDE_FLOAT16_VALUE( 12.00), SIMDE_FLOAT16_VALUE( 86.38) }, + { UINT16_C( 93), UINT16_C( 42), UINT16_C( 12), UINT16_C( 87) } }, + { { SIMDE_FLOAT16_VALUE( 83.69), SIMDE_FLOAT16_VALUE( 72.44), SIMDE_FLOAT16_VALUE( 21.73), SIMDE_FLOAT16_VALUE( 51.94) }, + { UINT16_C( 84), UINT16_C( 73), UINT16_C( 22), UINT16_C( 52) } }, + { { SIMDE_FLOAT16_VALUE( 73.50), SIMDE_FLOAT16_VALUE( 84.75), SIMDE_FLOAT16_VALUE( 27.58), SIMDE_FLOAT16_VALUE( 35.84) }, + { UINT16_C( 74), UINT16_C( 85), UINT16_C( 28), UINT16_C( 36) } }, + { { SIMDE_FLOAT16_VALUE( 77.38), SIMDE_FLOAT16_VALUE( 63.91), SIMDE_FLOAT16_VALUE( 92.06), SIMDE_FLOAT16_VALUE( 92.00) }, + { UINT16_C( 78), UINT16_C( 64), UINT16_C( 93), UINT16_C( 92) } }, + { { SIMDE_FLOAT16_VALUE( 60.22), SIMDE_FLOAT16_VALUE( 3.73), SIMDE_FLOAT16_VALUE( 84.62), SIMDE_FLOAT16_VALUE( 88.56) }, + { UINT16_C( 61), UINT16_C( 4), UINT16_C( 85), UINT16_C( 89) } }, + { { SIMDE_FLOAT16_VALUE( 5.28), SIMDE_FLOAT16_VALUE( 54.75), SIMDE_FLOAT16_VALUE( 2.63), SIMDE_FLOAT16_VALUE( 30.70) }, + { UINT16_C( 6), UINT16_C( 55), UINT16_C( 3), UINT16_C( 31) } }, + { { SIMDE_FLOAT16_VALUE( 41.84), SIMDE_FLOAT16_VALUE( 2.31), SIMDE_FLOAT16_VALUE( 86.88), SIMDE_FLOAT16_VALUE( 82.25) }, + { UINT16_C( 42), UINT16_C( 3), UINT16_C( 87), UINT16_C( 83) } }, + { { SIMDE_FLOAT16_VALUE( 83.00), SIMDE_FLOAT16_VALUE( 78.25), SIMDE_FLOAT16_VALUE( 9.41), SIMDE_FLOAT16_VALUE( 75.31) }, + { UINT16_C( 83), UINT16_C( 79), UINT16_C( 10), UINT16_C( 76) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -726,16 +932,27 @@ test_simde_vcvtp_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t a = simde_test_arm_neon_random_f16x4(0.0f, 100.0f); + simde_uint16x4_t r = simde_vcvtp_u16_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_vcvtp_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; uint32_t r[2]; } test_vec[] = { - { { -SIMDE_FLOAT32_C( 597.398), -SIMDE_FLOAT32_C( 458.709) }, - { UINT32_C( 0), UINT32_C( 0) } }, { { SIMDE_FLOAT32_C( 610.058), SIMDE_FLOAT32_C( 408.327) }, { UINT32_C( 611), UINT32_C( 409) } }, { { SIMDE_FLOAT32_C( 683.218), SIMDE_FLOAT32_C( 523.587) }, @@ -748,8 +965,6 @@ test_simde_vcvtp_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { { UINT32_C( 161), UINT32_C( 431) } }, { { SIMDE_FLOAT32_C( 816.827), SIMDE_FLOAT32_C( 582.145) }, { UINT32_C( 817), UINT32_C( 583) } }, - { { -SIMDE_FLOAT32_C( 107.822), -SIMDE_FLOAT32_C( 304.504) }, - { UINT32_C( 0), UINT32_C( 0) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -759,10 +974,23 @@ test_simde_vcvtp_u32_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_vcvtp_u32_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_vcvtp_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; int32_t r[2]; @@ -792,10 +1020,23 @@ test_simde_vcvtp_s32_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_int32x2_t r = simde_vcvtp_s32_f32(a); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtp_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[1]; int64_t r[1]; @@ -825,30 +1066,31 @@ test_simde_vcvtp_s64_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_int64x1_t r = simde_vcvtp_s64_f64(a); + + simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vcvtp_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[1]; uint64_t r[1]; } test_vec[] = { - { { -SIMDE_FLOAT64_C( 35426.270) }, - { UINT64_C( 0) } }, { { SIMDE_FLOAT64_C( 20147.570) }, { UINT64_C( 20148) } }, - { { -SIMDE_FLOAT64_C( 99335.164) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 261.680) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 35468.840) }, - { UINT64_C( 0) } }, { { SIMDE_FLOAT64_C( 83020.297) }, { UINT64_C( 83021) } }, - { { -SIMDE_FLOAT64_C( 32519.094) }, - { UINT64_C( 0) } }, - { { -SIMDE_FLOAT64_C( 36452.516) }, - { UINT64_C( 0) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -858,6 +1100,18 @@ test_simde_vcvtp_u64_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_vcvtp_u64_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 } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/ld3.c b/test/arm/neon/ld3.c index 98ab1edaa..e112b0d60 100644 --- a/test/arm/neon/ld3.c +++ b/test/arm/neon/ld3.c @@ -7,6 +7,7 @@ static int test_simde_vld3_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t a[24]; int8_t r[3][8]; @@ -56,10 +57,23 @@ test_simde_vld3_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int8x24_t a = simde_test_arm_neon_random_i8x24(); + simde_int8x3_t r[3] = simde_vld3_s8(a); + + simde_test_arm_neon_write_i8x24(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x3(2, r[3], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vld3_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16_t a[12]; simde_float16_t r[3][4]; @@ -118,110 +132,123 @@ test_simde_vld3_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x12_t a = simde_test_arm_neon_random_f16x12(-100.0f, 100.0f); + simde_float16x3_t r[3] = simde_vld3_f16(a); + + simde_test_arm_neon_write_f16x12(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x3(2, r[3], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vld3q_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float16_t a[24]; simde_float16_t r[3][8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 50.511), SIMDE_FLOAT16_C( 86.684), SIMDE_FLOAT16_C( 96.211), SIMDE_FLOAT16_C( 21.009), - -SIMDE_FLOAT16_C( 58.967), -SIMDE_FLOAT16_C( 95.046), SIMDE_FLOAT16_C( 3.355), -SIMDE_FLOAT16_C( 32.048), - -SIMDE_FLOAT16_C( 72.615), SIMDE_FLOAT16_C( 13.174), SIMDE_FLOAT16_C( 15.374), -SIMDE_FLOAT16_C( 72.543), - -SIMDE_FLOAT16_C( 68.833), SIMDE_FLOAT16_C( 53.897), SIMDE_FLOAT16_C( 93.769), SIMDE_FLOAT16_C( 0.685), - -SIMDE_FLOAT16_C( 70.586), SIMDE_FLOAT16_C( 38.881), -SIMDE_FLOAT16_C( 14.775), -SIMDE_FLOAT16_C( 3.719), - SIMDE_FLOAT16_C( 20.072), -SIMDE_FLOAT16_C( 2.675), -SIMDE_FLOAT16_C( 36.488), SIMDE_FLOAT16_C( 30.856) }, - { { SIMDE_FLOAT16_C( 50.511), SIMDE_FLOAT16_C( 21.009), SIMDE_FLOAT16_C( 3.355), SIMDE_FLOAT16_C( 13.174), - -SIMDE_FLOAT16_C( 68.833), SIMDE_FLOAT16_C( 0.685), -SIMDE_FLOAT16_C( 14.775), -SIMDE_FLOAT16_C( 2.675) }, - { SIMDE_FLOAT16_C( 86.684), -SIMDE_FLOAT16_C( 58.967), -SIMDE_FLOAT16_C( 32.048), SIMDE_FLOAT16_C( 15.374), - SIMDE_FLOAT16_C( 53.897), -SIMDE_FLOAT16_C( 70.586), -SIMDE_FLOAT16_C( 3.719), -SIMDE_FLOAT16_C( 36.488) }, - { SIMDE_FLOAT16_C( 96.211), -SIMDE_FLOAT16_C( 95.046), -SIMDE_FLOAT16_C( 72.615), -SIMDE_FLOAT16_C( 72.543), - SIMDE_FLOAT16_C( 93.769), SIMDE_FLOAT16_C( 38.881), SIMDE_FLOAT16_C( 20.072), SIMDE_FLOAT16_C( 30.856) } } }, - { { SIMDE_FLOAT16_C( 27.169), SIMDE_FLOAT16_C( 97.696), SIMDE_FLOAT16_C( 6.429), SIMDE_FLOAT16_C( 1.851), - SIMDE_FLOAT16_C( 57.529), -SIMDE_FLOAT16_C( 8.606), -SIMDE_FLOAT16_C( 73.783), SIMDE_FLOAT16_C( 38.167), - SIMDE_FLOAT16_C( 66.160), -SIMDE_FLOAT16_C( 43.612), SIMDE_FLOAT16_C( 7.569), SIMDE_FLOAT16_C( 30.400), - SIMDE_FLOAT16_C( 73.369), -SIMDE_FLOAT16_C( 37.197), SIMDE_FLOAT16_C( 44.001), -SIMDE_FLOAT16_C( 61.104), - -SIMDE_FLOAT16_C( 91.738), -SIMDE_FLOAT16_C( 76.714), SIMDE_FLOAT16_C( 62.278), SIMDE_FLOAT16_C( 64.843), - -SIMDE_FLOAT16_C( 31.622), SIMDE_FLOAT16_C( 39.644), -SIMDE_FLOAT16_C( 50.048), SIMDE_FLOAT16_C( 16.733) }, - { { SIMDE_FLOAT16_C( 27.169), SIMDE_FLOAT16_C( 1.851), -SIMDE_FLOAT16_C( 73.783), -SIMDE_FLOAT16_C( 43.612), - SIMDE_FLOAT16_C( 73.369), -SIMDE_FLOAT16_C( 61.104), SIMDE_FLOAT16_C( 62.278), SIMDE_FLOAT16_C( 39.644) }, - { SIMDE_FLOAT16_C( 97.696), SIMDE_FLOAT16_C( 57.529), SIMDE_FLOAT16_C( 38.167), SIMDE_FLOAT16_C( 7.569), - -SIMDE_FLOAT16_C( 37.197), -SIMDE_FLOAT16_C( 91.738), SIMDE_FLOAT16_C( 64.843), -SIMDE_FLOAT16_C( 50.048) }, - { SIMDE_FLOAT16_C( 6.429), -SIMDE_FLOAT16_C( 8.606), SIMDE_FLOAT16_C( 66.160), SIMDE_FLOAT16_C( 30.400), - SIMDE_FLOAT16_C( 44.001), -SIMDE_FLOAT16_C( 76.714), -SIMDE_FLOAT16_C( 31.622), SIMDE_FLOAT16_C( 16.733) } } }, - { { SIMDE_FLOAT16_C( 79.887), SIMDE_FLOAT16_C( 75.064), SIMDE_FLOAT16_C( 97.298), -SIMDE_FLOAT16_C( 36.532), - SIMDE_FLOAT16_C( 31.519), -SIMDE_FLOAT16_C( 21.137), SIMDE_FLOAT16_C( 37.884), SIMDE_FLOAT16_C( 75.605), - -SIMDE_FLOAT16_C( 7.086), -SIMDE_FLOAT16_C( 61.433), SIMDE_FLOAT16_C( 4.750), -SIMDE_FLOAT16_C( 68.334), - -SIMDE_FLOAT16_C( 27.825), -SIMDE_FLOAT16_C( 95.446), -SIMDE_FLOAT16_C( 57.864), SIMDE_FLOAT16_C( 35.983), - SIMDE_FLOAT16_C( 47.271), SIMDE_FLOAT16_C( 89.486), SIMDE_FLOAT16_C( 44.198), -SIMDE_FLOAT16_C( 43.979), - SIMDE_FLOAT16_C( 98.973), SIMDE_FLOAT16_C( 96.892), SIMDE_FLOAT16_C( 83.644), SIMDE_FLOAT16_C( 1.933) }, - { { SIMDE_FLOAT16_C( 79.887), -SIMDE_FLOAT16_C( 36.532), SIMDE_FLOAT16_C( 37.884), -SIMDE_FLOAT16_C( 61.433), - -SIMDE_FLOAT16_C( 27.825), SIMDE_FLOAT16_C( 35.983), SIMDE_FLOAT16_C( 44.198), SIMDE_FLOAT16_C( 96.892) }, - { SIMDE_FLOAT16_C( 75.064), SIMDE_FLOAT16_C( 31.519), SIMDE_FLOAT16_C( 75.605), SIMDE_FLOAT16_C( 4.750), - -SIMDE_FLOAT16_C( 95.446), SIMDE_FLOAT16_C( 47.271), -SIMDE_FLOAT16_C( 43.979), SIMDE_FLOAT16_C( 83.644) }, - { SIMDE_FLOAT16_C( 97.298), -SIMDE_FLOAT16_C( 21.137), -SIMDE_FLOAT16_C( 7.086), -SIMDE_FLOAT16_C( 68.334), - -SIMDE_FLOAT16_C( 57.864), SIMDE_FLOAT16_C( 89.486), SIMDE_FLOAT16_C( 98.973), SIMDE_FLOAT16_C( 1.933) } } }, - { { SIMDE_FLOAT16_C( 45.623), SIMDE_FLOAT16_C( 40.930), -SIMDE_FLOAT16_C( 18.856), -SIMDE_FLOAT16_C( 35.474), - -SIMDE_FLOAT16_C( 25.714), SIMDE_FLOAT16_C( 28.034), SIMDE_FLOAT16_C( 86.809), SIMDE_FLOAT16_C( 96.976), - -SIMDE_FLOAT16_C( 81.890), -SIMDE_FLOAT16_C( 7.184), -SIMDE_FLOAT16_C( 66.904), -SIMDE_FLOAT16_C( 32.987), - -SIMDE_FLOAT16_C( 21.348), -SIMDE_FLOAT16_C( 74.742), -SIMDE_FLOAT16_C( 34.888), SIMDE_FLOAT16_C( 18.741), - -SIMDE_FLOAT16_C( 15.061), SIMDE_FLOAT16_C( 38.458), -SIMDE_FLOAT16_C( 14.151), -SIMDE_FLOAT16_C( 48.572), - SIMDE_FLOAT16_C( 57.645), -SIMDE_FLOAT16_C( 40.036), -SIMDE_FLOAT16_C( 33.994), SIMDE_FLOAT16_C( 52.148) }, - { { SIMDE_FLOAT16_C( 45.623), -SIMDE_FLOAT16_C( 35.474), SIMDE_FLOAT16_C( 86.809), -SIMDE_FLOAT16_C( 7.184), - -SIMDE_FLOAT16_C( 21.348), SIMDE_FLOAT16_C( 18.741), -SIMDE_FLOAT16_C( 14.151), -SIMDE_FLOAT16_C( 40.036) }, - { SIMDE_FLOAT16_C( 40.930), -SIMDE_FLOAT16_C( 25.714), SIMDE_FLOAT16_C( 96.976), -SIMDE_FLOAT16_C( 66.904), - -SIMDE_FLOAT16_C( 74.742), -SIMDE_FLOAT16_C( 15.061), -SIMDE_FLOAT16_C( 48.572), -SIMDE_FLOAT16_C( 33.994) }, - { -SIMDE_FLOAT16_C( 18.856), SIMDE_FLOAT16_C( 28.034), -SIMDE_FLOAT16_C( 81.890), -SIMDE_FLOAT16_C( 32.987), - -SIMDE_FLOAT16_C( 34.888), SIMDE_FLOAT16_C( 38.458), SIMDE_FLOAT16_C( 57.645), SIMDE_FLOAT16_C( 52.148) } } }, - { { SIMDE_FLOAT16_C( 77.853), -SIMDE_FLOAT16_C( 5.293), SIMDE_FLOAT16_C( 65.177), -SIMDE_FLOAT16_C( 50.710), - SIMDE_FLOAT16_C( 22.953), -SIMDE_FLOAT16_C( 6.422), SIMDE_FLOAT16_C( 85.417), SIMDE_FLOAT16_C( 1.387), - SIMDE_FLOAT16_C( 65.246), -SIMDE_FLOAT16_C( 24.277), -SIMDE_FLOAT16_C( 46.158), -SIMDE_FLOAT16_C( 67.905), - SIMDE_FLOAT16_C( 43.158), -SIMDE_FLOAT16_C( 62.899), -SIMDE_FLOAT16_C( 27.784), SIMDE_FLOAT16_C( 56.200), - SIMDE_FLOAT16_C( 82.898), -SIMDE_FLOAT16_C( 71.415), -SIMDE_FLOAT16_C( 29.585), -SIMDE_FLOAT16_C( 28.012), - SIMDE_FLOAT16_C( 52.765), SIMDE_FLOAT16_C( 82.867), SIMDE_FLOAT16_C( 22.238), -SIMDE_FLOAT16_C( 37.496) }, - { { SIMDE_FLOAT16_C( 77.853), -SIMDE_FLOAT16_C( 50.710), SIMDE_FLOAT16_C( 85.417), -SIMDE_FLOAT16_C( 24.277), - SIMDE_FLOAT16_C( 43.158), SIMDE_FLOAT16_C( 56.200), -SIMDE_FLOAT16_C( 29.585), SIMDE_FLOAT16_C( 82.867) }, - { -SIMDE_FLOAT16_C( 5.293), SIMDE_FLOAT16_C( 22.953), SIMDE_FLOAT16_C( 1.387), -SIMDE_FLOAT16_C( 46.158), - -SIMDE_FLOAT16_C( 62.899), SIMDE_FLOAT16_C( 82.898), -SIMDE_FLOAT16_C( 28.012), SIMDE_FLOAT16_C( 22.238) }, - { SIMDE_FLOAT16_C( 65.177), -SIMDE_FLOAT16_C( 6.422), SIMDE_FLOAT16_C( 65.246), -SIMDE_FLOAT16_C( 67.905), - -SIMDE_FLOAT16_C( 27.784), -SIMDE_FLOAT16_C( 71.415), SIMDE_FLOAT16_C( 52.765), -SIMDE_FLOAT16_C( 37.496) } } }, - { { -SIMDE_FLOAT16_C( 2.331), SIMDE_FLOAT16_C( 29.415), SIMDE_FLOAT16_C( 35.770), SIMDE_FLOAT16_C( 16.302), - -SIMDE_FLOAT16_C( 91.643), -SIMDE_FLOAT16_C( 70.642), -SIMDE_FLOAT16_C( 22.834), -SIMDE_FLOAT16_C( 16.944), - SIMDE_FLOAT16_C( 84.108), SIMDE_FLOAT16_C( 1.977), -SIMDE_FLOAT16_C( 9.416), SIMDE_FLOAT16_C( 74.766), - -SIMDE_FLOAT16_C( 30.242), SIMDE_FLOAT16_C( 20.937), -SIMDE_FLOAT16_C( 2.896), -SIMDE_FLOAT16_C( 6.387), - SIMDE_FLOAT16_C( 3.481), SIMDE_FLOAT16_C( 35.087), -SIMDE_FLOAT16_C( 51.719), SIMDE_FLOAT16_C( 63.190), - SIMDE_FLOAT16_C( 69.433), SIMDE_FLOAT16_C( 25.431), SIMDE_FLOAT16_C( 62.916), SIMDE_FLOAT16_C( 65.064) }, - { { -SIMDE_FLOAT16_C( 2.331), SIMDE_FLOAT16_C( 16.302), -SIMDE_FLOAT16_C( 22.834), SIMDE_FLOAT16_C( 1.977), - -SIMDE_FLOAT16_C( 30.242), -SIMDE_FLOAT16_C( 6.387), -SIMDE_FLOAT16_C( 51.719), SIMDE_FLOAT16_C( 25.431) }, - { SIMDE_FLOAT16_C( 29.415), -SIMDE_FLOAT16_C( 91.643), -SIMDE_FLOAT16_C( 16.944), -SIMDE_FLOAT16_C( 9.416), - SIMDE_FLOAT16_C( 20.937), SIMDE_FLOAT16_C( 3.481), SIMDE_FLOAT16_C( 63.190), SIMDE_FLOAT16_C( 62.916) }, - { SIMDE_FLOAT16_C( 35.770), -SIMDE_FLOAT16_C( 70.642), SIMDE_FLOAT16_C( 84.108), SIMDE_FLOAT16_C( 74.766), - -SIMDE_FLOAT16_C( 2.896), SIMDE_FLOAT16_C( 35.087), SIMDE_FLOAT16_C( 69.433), SIMDE_FLOAT16_C( 65.064) } } }, - { { SIMDE_FLOAT16_C( 98.895), SIMDE_FLOAT16_C( 72.717), -SIMDE_FLOAT16_C( 6.353), SIMDE_FLOAT16_C( 70.032), - SIMDE_FLOAT16_C( 3.465), -SIMDE_FLOAT16_C( 59.832), -SIMDE_FLOAT16_C( 45.154), SIMDE_FLOAT16_C( 21.203), - SIMDE_FLOAT16_C( 58.153), -SIMDE_FLOAT16_C( 22.957), -SIMDE_FLOAT16_C( 85.381), SIMDE_FLOAT16_C( 81.511), - SIMDE_FLOAT16_C( 14.659), SIMDE_FLOAT16_C( 98.757), SIMDE_FLOAT16_C( 99.317), -SIMDE_FLOAT16_C( 83.947), - SIMDE_FLOAT16_C( 38.963), -SIMDE_FLOAT16_C( 44.639), -SIMDE_FLOAT16_C( 34.702), -SIMDE_FLOAT16_C( 64.943), - -SIMDE_FLOAT16_C( 90.372), -SIMDE_FLOAT16_C( 85.000), SIMDE_FLOAT16_C( 24.672), SIMDE_FLOAT16_C( 12.816) }, - { { SIMDE_FLOAT16_C( 98.895), SIMDE_FLOAT16_C( 70.032), -SIMDE_FLOAT16_C( 45.154), -SIMDE_FLOAT16_C( 22.957), - SIMDE_FLOAT16_C( 14.659), -SIMDE_FLOAT16_C( 83.947), -SIMDE_FLOAT16_C( 34.702), -SIMDE_FLOAT16_C( 85.000) }, - { SIMDE_FLOAT16_C( 72.717), SIMDE_FLOAT16_C( 3.465), SIMDE_FLOAT16_C( 21.203), -SIMDE_FLOAT16_C( 85.381), - SIMDE_FLOAT16_C( 98.757), SIMDE_FLOAT16_C( 38.963), -SIMDE_FLOAT16_C( 64.943), SIMDE_FLOAT16_C( 24.672) }, - { -SIMDE_FLOAT16_C( 6.353), -SIMDE_FLOAT16_C( 59.832), SIMDE_FLOAT16_C( 58.153), SIMDE_FLOAT16_C( 81.511), - SIMDE_FLOAT16_C( 99.317), -SIMDE_FLOAT16_C( 44.639), -SIMDE_FLOAT16_C( 90.372), SIMDE_FLOAT16_C( 12.816) } } }, - { { SIMDE_FLOAT16_C( 67.964), -SIMDE_FLOAT16_C( 49.709), SIMDE_FLOAT16_C( 91.615), -SIMDE_FLOAT16_C( 45.904), - SIMDE_FLOAT16_C( 25.435), SIMDE_FLOAT16_C( 79.259), SIMDE_FLOAT16_C( 12.338), -SIMDE_FLOAT16_C( 54.866), - -SIMDE_FLOAT16_C( 4.301), -SIMDE_FLOAT16_C( 20.530), SIMDE_FLOAT16_C( 71.469), SIMDE_FLOAT16_C( 9.646), - SIMDE_FLOAT16_C( 27.156), SIMDE_FLOAT16_C( 4.728), SIMDE_FLOAT16_C( 9.490), SIMDE_FLOAT16_C( 82.699), - -SIMDE_FLOAT16_C( 27.427), SIMDE_FLOAT16_C( 57.932), SIMDE_FLOAT16_C( 66.510), -SIMDE_FLOAT16_C( 27.262), - SIMDE_FLOAT16_C( 54.618), SIMDE_FLOAT16_C( 46.855), SIMDE_FLOAT16_C( 62.478), SIMDE_FLOAT16_C( 61.709) }, - { { SIMDE_FLOAT16_C( 67.964), -SIMDE_FLOAT16_C( 45.904), SIMDE_FLOAT16_C( 12.338), -SIMDE_FLOAT16_C( 20.530), - SIMDE_FLOAT16_C( 27.156), SIMDE_FLOAT16_C( 82.699), SIMDE_FLOAT16_C( 66.510), SIMDE_FLOAT16_C( 46.855) }, - { -SIMDE_FLOAT16_C( 49.709), SIMDE_FLOAT16_C( 25.435), -SIMDE_FLOAT16_C( 54.866), SIMDE_FLOAT16_C( 71.469), - SIMDE_FLOAT16_C( 4.728), -SIMDE_FLOAT16_C( 27.427), -SIMDE_FLOAT16_C( 27.262), SIMDE_FLOAT16_C( 62.478) }, - { SIMDE_FLOAT16_C( 91.615), SIMDE_FLOAT16_C( 79.259), -SIMDE_FLOAT16_C( 4.301), SIMDE_FLOAT16_C( 9.646), - SIMDE_FLOAT16_C( 9.490), SIMDE_FLOAT16_C( 57.932), SIMDE_FLOAT16_C( 54.618), SIMDE_FLOAT16_C( 61.709) } } }, + { { SIMDE_FLOAT16_VALUE( 50.511), SIMDE_FLOAT16_VALUE( 86.684), SIMDE_FLOAT16_VALUE( 96.211), SIMDE_FLOAT16_VALUE( 21.009), + SIMDE_FLOAT16_VALUE( - 58.967), SIMDE_FLOAT16_VALUE( - 95.046), SIMDE_FLOAT16_VALUE( 3.355), SIMDE_FLOAT16_VALUE( - 32.048), + SIMDE_FLOAT16_VALUE( - 72.615), SIMDE_FLOAT16_VALUE( 13.174), SIMDE_FLOAT16_VALUE( 15.374), SIMDE_FLOAT16_VALUE( - 72.543), + SIMDE_FLOAT16_VALUE( - 68.833), SIMDE_FLOAT16_VALUE( 53.897), SIMDE_FLOAT16_VALUE( 93.769), SIMDE_FLOAT16_VALUE( 0.685), + SIMDE_FLOAT16_VALUE( - 70.586), SIMDE_FLOAT16_VALUE( 38.881), SIMDE_FLOAT16_VALUE( - 14.775), SIMDE_FLOAT16_VALUE( - 3.719), + SIMDE_FLOAT16_VALUE( 20.072), SIMDE_FLOAT16_VALUE( - 2.675), SIMDE_FLOAT16_VALUE( - 36.488), SIMDE_FLOAT16_VALUE( 30.856) }, + { { SIMDE_FLOAT16_VALUE( 50.511), SIMDE_FLOAT16_VALUE( 21.009), SIMDE_FLOAT16_VALUE( 3.355), SIMDE_FLOAT16_VALUE( 13.174), + SIMDE_FLOAT16_VALUE( - 68.833), SIMDE_FLOAT16_VALUE( 0.685), SIMDE_FLOAT16_VALUE( - 14.775), SIMDE_FLOAT16_VALUE( - 2.675) }, + { SIMDE_FLOAT16_VALUE( 86.684), SIMDE_FLOAT16_VALUE( - 58.967), SIMDE_FLOAT16_VALUE( - 32.048), SIMDE_FLOAT16_VALUE( 15.374), + SIMDE_FLOAT16_VALUE( 53.897), SIMDE_FLOAT16_VALUE( - 70.586), SIMDE_FLOAT16_VALUE( - 3.719), SIMDE_FLOAT16_VALUE( - 36.488) }, + { SIMDE_FLOAT16_VALUE( 96.211), SIMDE_FLOAT16_VALUE( - 95.046), SIMDE_FLOAT16_VALUE( - 72.615), SIMDE_FLOAT16_VALUE( - 72.543), + SIMDE_FLOAT16_VALUE( 93.769), SIMDE_FLOAT16_VALUE( 38.881), SIMDE_FLOAT16_VALUE( 20.072), SIMDE_FLOAT16_VALUE( 30.856) } } }, + { { SIMDE_FLOAT16_VALUE( 27.169), SIMDE_FLOAT16_VALUE( 97.696), SIMDE_FLOAT16_VALUE( 6.429), SIMDE_FLOAT16_VALUE( 1.851), + SIMDE_FLOAT16_VALUE( 57.529), SIMDE_FLOAT16_VALUE( - 8.606), SIMDE_FLOAT16_VALUE( - 73.783), SIMDE_FLOAT16_VALUE( 38.167), + SIMDE_FLOAT16_VALUE( 66.160), SIMDE_FLOAT16_VALUE( - 43.612), SIMDE_FLOAT16_VALUE( 7.569), SIMDE_FLOAT16_VALUE( 30.400), + SIMDE_FLOAT16_VALUE( 73.369), SIMDE_FLOAT16_VALUE( - 37.197), SIMDE_FLOAT16_VALUE( 44.001), SIMDE_FLOAT16_VALUE( - 61.104), + SIMDE_FLOAT16_VALUE( - 91.738), SIMDE_FLOAT16_VALUE( - 76.714), SIMDE_FLOAT16_VALUE( 62.278), SIMDE_FLOAT16_VALUE( 64.843), + SIMDE_FLOAT16_VALUE( - 31.622), SIMDE_FLOAT16_VALUE( 39.644), SIMDE_FLOAT16_VALUE( - 50.048), SIMDE_FLOAT16_VALUE( 16.733) }, + { { SIMDE_FLOAT16_VALUE( 27.169), SIMDE_FLOAT16_VALUE( 1.851), SIMDE_FLOAT16_VALUE( - 73.783), SIMDE_FLOAT16_VALUE( - 43.612), + SIMDE_FLOAT16_VALUE( 73.369), SIMDE_FLOAT16_VALUE( - 61.104), SIMDE_FLOAT16_VALUE( 62.278), SIMDE_FLOAT16_VALUE( 39.644) }, + { SIMDE_FLOAT16_VALUE( 97.696), SIMDE_FLOAT16_VALUE( 57.529), SIMDE_FLOAT16_VALUE( 38.167), SIMDE_FLOAT16_VALUE( 7.569), + SIMDE_FLOAT16_VALUE( - 37.197), SIMDE_FLOAT16_VALUE( - 91.738), SIMDE_FLOAT16_VALUE( 64.843), SIMDE_FLOAT16_VALUE( - 50.048) }, + { SIMDE_FLOAT16_VALUE( 6.429), SIMDE_FLOAT16_VALUE( - 8.606), SIMDE_FLOAT16_VALUE( 66.160), SIMDE_FLOAT16_VALUE( 30.400), + SIMDE_FLOAT16_VALUE( 44.001), SIMDE_FLOAT16_VALUE( - 76.714), SIMDE_FLOAT16_VALUE( - 31.622), SIMDE_FLOAT16_VALUE( 16.733) } } }, + { { SIMDE_FLOAT16_VALUE( 79.887), SIMDE_FLOAT16_VALUE( 75.064), SIMDE_FLOAT16_VALUE( 97.298), SIMDE_FLOAT16_VALUE( - 36.532), + SIMDE_FLOAT16_VALUE( 31.519), SIMDE_FLOAT16_VALUE( - 21.137), SIMDE_FLOAT16_VALUE( 37.884), SIMDE_FLOAT16_VALUE( 75.605), + SIMDE_FLOAT16_VALUE( - 7.086), SIMDE_FLOAT16_VALUE( - 61.433), SIMDE_FLOAT16_VALUE( 4.750), SIMDE_FLOAT16_VALUE( - 68.334), + SIMDE_FLOAT16_VALUE( - 27.825), SIMDE_FLOAT16_VALUE( - 95.446), SIMDE_FLOAT16_VALUE( - 57.864), SIMDE_FLOAT16_VALUE( 35.983), + SIMDE_FLOAT16_VALUE( 47.271), SIMDE_FLOAT16_VALUE( 89.486), SIMDE_FLOAT16_VALUE( 44.198), SIMDE_FLOAT16_VALUE( - 43.979), + SIMDE_FLOAT16_VALUE( 98.973), SIMDE_FLOAT16_VALUE( 96.892), SIMDE_FLOAT16_VALUE( 83.644), SIMDE_FLOAT16_VALUE( 1.933) }, + { { SIMDE_FLOAT16_VALUE( 79.887), SIMDE_FLOAT16_VALUE( - 36.532), SIMDE_FLOAT16_VALUE( 37.884), SIMDE_FLOAT16_VALUE( - 61.433), + SIMDE_FLOAT16_VALUE( - 27.825), SIMDE_FLOAT16_VALUE( 35.983), SIMDE_FLOAT16_VALUE( 44.198), SIMDE_FLOAT16_VALUE( 96.892) }, + { SIMDE_FLOAT16_VALUE( 75.064), SIMDE_FLOAT16_VALUE( 31.519), SIMDE_FLOAT16_VALUE( 75.605), SIMDE_FLOAT16_VALUE( 4.750), + SIMDE_FLOAT16_VALUE( - 95.446), SIMDE_FLOAT16_VALUE( 47.271), SIMDE_FLOAT16_VALUE( - 43.979), SIMDE_FLOAT16_VALUE( 83.644) }, + { SIMDE_FLOAT16_VALUE( 97.298), SIMDE_FLOAT16_VALUE( - 21.137), SIMDE_FLOAT16_VALUE( - 7.086), SIMDE_FLOAT16_VALUE( - 68.334), + SIMDE_FLOAT16_VALUE( - 57.864), SIMDE_FLOAT16_VALUE( 89.486), SIMDE_FLOAT16_VALUE( 98.973), SIMDE_FLOAT16_VALUE( 1.933) } } }, + { { SIMDE_FLOAT16_VALUE( 45.623), SIMDE_FLOAT16_VALUE( 40.930), SIMDE_FLOAT16_VALUE( - 18.856), SIMDE_FLOAT16_VALUE( - 35.474), + SIMDE_FLOAT16_VALUE( - 25.714), SIMDE_FLOAT16_VALUE( 28.034), SIMDE_FLOAT16_VALUE( 86.809), SIMDE_FLOAT16_VALUE( 96.976), + SIMDE_FLOAT16_VALUE( - 81.890), SIMDE_FLOAT16_VALUE( - 7.184), SIMDE_FLOAT16_VALUE( - 66.904), SIMDE_FLOAT16_VALUE( - 32.987), + SIMDE_FLOAT16_VALUE( - 21.348), SIMDE_FLOAT16_VALUE( - 74.742), SIMDE_FLOAT16_VALUE( - 34.888), SIMDE_FLOAT16_VALUE( 18.741), + SIMDE_FLOAT16_VALUE( - 15.061), SIMDE_FLOAT16_VALUE( 38.458), SIMDE_FLOAT16_VALUE( - 14.151), SIMDE_FLOAT16_VALUE( - 48.572), + SIMDE_FLOAT16_VALUE( 57.645), SIMDE_FLOAT16_VALUE( - 40.036), SIMDE_FLOAT16_VALUE( - 33.994), SIMDE_FLOAT16_VALUE( 52.148) }, + { { SIMDE_FLOAT16_VALUE( 45.623), SIMDE_FLOAT16_VALUE( - 35.474), SIMDE_FLOAT16_VALUE( 86.809), SIMDE_FLOAT16_VALUE( - 7.184), + SIMDE_FLOAT16_VALUE( - 21.348), SIMDE_FLOAT16_VALUE( 18.741), SIMDE_FLOAT16_VALUE( - 14.151), SIMDE_FLOAT16_VALUE( - 40.036) }, + { SIMDE_FLOAT16_VALUE( 40.930), SIMDE_FLOAT16_VALUE( - 25.714), SIMDE_FLOAT16_VALUE( 96.976), SIMDE_FLOAT16_VALUE( - 66.904), + SIMDE_FLOAT16_VALUE( - 74.742), SIMDE_FLOAT16_VALUE( - 15.061), SIMDE_FLOAT16_VALUE( - 48.572), SIMDE_FLOAT16_VALUE( - 33.994) }, + { SIMDE_FLOAT16_VALUE( - 18.856), SIMDE_FLOAT16_VALUE( 28.034), SIMDE_FLOAT16_VALUE( - 81.890), SIMDE_FLOAT16_VALUE( - 32.987), + SIMDE_FLOAT16_VALUE( - 34.888), SIMDE_FLOAT16_VALUE( 38.458), SIMDE_FLOAT16_VALUE( 57.645), SIMDE_FLOAT16_VALUE( 52.148) } } }, + { { SIMDE_FLOAT16_VALUE( 77.853), SIMDE_FLOAT16_VALUE( - 5.293), SIMDE_FLOAT16_VALUE( 65.177), SIMDE_FLOAT16_VALUE( - 50.710), + SIMDE_FLOAT16_VALUE( 22.953), SIMDE_FLOAT16_VALUE( - 6.422), SIMDE_FLOAT16_VALUE( 85.417), SIMDE_FLOAT16_VALUE( 1.387), + SIMDE_FLOAT16_VALUE( 65.246), SIMDE_FLOAT16_VALUE( - 24.277), SIMDE_FLOAT16_VALUE( - 46.158), SIMDE_FLOAT16_VALUE( - 67.905), + SIMDE_FLOAT16_VALUE( 43.158), SIMDE_FLOAT16_VALUE( - 62.899), SIMDE_FLOAT16_VALUE( - 27.784), SIMDE_FLOAT16_VALUE( 56.200), + SIMDE_FLOAT16_VALUE( 82.898), SIMDE_FLOAT16_VALUE( - 71.415), SIMDE_FLOAT16_VALUE( - 29.585), SIMDE_FLOAT16_VALUE( - 28.012), + SIMDE_FLOAT16_VALUE( 52.765), SIMDE_FLOAT16_VALUE( 82.867), SIMDE_FLOAT16_VALUE( 22.238), SIMDE_FLOAT16_VALUE( - 37.496) }, + { { SIMDE_FLOAT16_VALUE( 77.853), SIMDE_FLOAT16_VALUE( - 50.710), SIMDE_FLOAT16_VALUE( 85.417), SIMDE_FLOAT16_VALUE( - 24.277), + SIMDE_FLOAT16_VALUE( 43.158), SIMDE_FLOAT16_VALUE( 56.200), SIMDE_FLOAT16_VALUE( - 29.585), SIMDE_FLOAT16_VALUE( 82.867) }, + { SIMDE_FLOAT16_VALUE( - 5.293), SIMDE_FLOAT16_VALUE( 22.953), SIMDE_FLOAT16_VALUE( 1.387), SIMDE_FLOAT16_VALUE( - 46.158), + SIMDE_FLOAT16_VALUE( - 62.899), SIMDE_FLOAT16_VALUE( 82.898), SIMDE_FLOAT16_VALUE( - 28.012), SIMDE_FLOAT16_VALUE( 22.238) }, + { SIMDE_FLOAT16_VALUE( 65.177), SIMDE_FLOAT16_VALUE( - 6.422), SIMDE_FLOAT16_VALUE( 65.246), SIMDE_FLOAT16_VALUE( - 67.905), + SIMDE_FLOAT16_VALUE( - 27.784), SIMDE_FLOAT16_VALUE( - 71.415), SIMDE_FLOAT16_VALUE( 52.765), SIMDE_FLOAT16_VALUE( - 37.496) } } }, + { { SIMDE_FLOAT16_VALUE( - 2.331), SIMDE_FLOAT16_VALUE( 29.415), SIMDE_FLOAT16_VALUE( 35.770), SIMDE_FLOAT16_VALUE( 16.302), + SIMDE_FLOAT16_VALUE( - 91.643), SIMDE_FLOAT16_VALUE( - 70.642), SIMDE_FLOAT16_VALUE( - 22.834), SIMDE_FLOAT16_VALUE( - 16.944), + SIMDE_FLOAT16_VALUE( 84.108), SIMDE_FLOAT16_VALUE( 1.977), SIMDE_FLOAT16_VALUE( - 9.416), SIMDE_FLOAT16_VALUE( 74.766), + SIMDE_FLOAT16_VALUE( - 30.242), SIMDE_FLOAT16_VALUE( 20.937), SIMDE_FLOAT16_VALUE( - 2.896), SIMDE_FLOAT16_VALUE( - 6.387), + SIMDE_FLOAT16_VALUE( 3.481), SIMDE_FLOAT16_VALUE( 35.087), SIMDE_FLOAT16_VALUE( - 51.719), SIMDE_FLOAT16_VALUE( 63.190), + SIMDE_FLOAT16_VALUE( 69.433), SIMDE_FLOAT16_VALUE( 25.431), SIMDE_FLOAT16_VALUE( 62.916), SIMDE_FLOAT16_VALUE( 65.064) }, + { { SIMDE_FLOAT16_VALUE( - 2.331), SIMDE_FLOAT16_VALUE( 16.302), SIMDE_FLOAT16_VALUE( - 22.834), SIMDE_FLOAT16_VALUE( 1.977), + SIMDE_FLOAT16_VALUE( - 30.242), SIMDE_FLOAT16_VALUE( - 6.387), SIMDE_FLOAT16_VALUE( - 51.719), SIMDE_FLOAT16_VALUE( 25.431) }, + { SIMDE_FLOAT16_VALUE( 29.415), SIMDE_FLOAT16_VALUE( - 91.643), SIMDE_FLOAT16_VALUE( - 16.944), SIMDE_FLOAT16_VALUE( - 9.416), + SIMDE_FLOAT16_VALUE( 20.937), SIMDE_FLOAT16_VALUE( 3.481), SIMDE_FLOAT16_VALUE( 63.190), SIMDE_FLOAT16_VALUE( 62.916) }, + { SIMDE_FLOAT16_VALUE( 35.770), SIMDE_FLOAT16_VALUE( - 70.642), SIMDE_FLOAT16_VALUE( 84.108), SIMDE_FLOAT16_VALUE( 74.766), + SIMDE_FLOAT16_VALUE( - 2.896), SIMDE_FLOAT16_VALUE( 35.087), SIMDE_FLOAT16_VALUE( 69.433), SIMDE_FLOAT16_VALUE( 65.064) } } }, + { { SIMDE_FLOAT16_VALUE( 98.895), SIMDE_FLOAT16_VALUE( 72.717), SIMDE_FLOAT16_VALUE( - 6.353), SIMDE_FLOAT16_VALUE( 70.032), + SIMDE_FLOAT16_VALUE( 3.465), SIMDE_FLOAT16_VALUE( - 59.832), SIMDE_FLOAT16_VALUE( - 45.154), SIMDE_FLOAT16_VALUE( 21.203), + SIMDE_FLOAT16_VALUE( 58.153), SIMDE_FLOAT16_VALUE( - 22.957), SIMDE_FLOAT16_VALUE( - 85.381), SIMDE_FLOAT16_VALUE( 81.511), + SIMDE_FLOAT16_VALUE( 14.659), SIMDE_FLOAT16_VALUE( 98.757), SIMDE_FLOAT16_VALUE( 99.317), SIMDE_FLOAT16_VALUE( - 83.947), + SIMDE_FLOAT16_VALUE( 38.963), SIMDE_FLOAT16_VALUE( - 44.639), SIMDE_FLOAT16_VALUE( - 34.702), SIMDE_FLOAT16_VALUE( - 64.943), + SIMDE_FLOAT16_VALUE( - 90.372), SIMDE_FLOAT16_VALUE( - 85.000), SIMDE_FLOAT16_VALUE( 24.672), SIMDE_FLOAT16_VALUE( 12.816) }, + { { SIMDE_FLOAT16_VALUE( 98.895), SIMDE_FLOAT16_VALUE( 70.032), SIMDE_FLOAT16_VALUE( - 45.154), SIMDE_FLOAT16_VALUE( - 22.957), + SIMDE_FLOAT16_VALUE( 14.659), SIMDE_FLOAT16_VALUE( - 83.947), SIMDE_FLOAT16_VALUE( - 34.702), SIMDE_FLOAT16_VALUE( - 85.000) }, + { SIMDE_FLOAT16_VALUE( 72.717), SIMDE_FLOAT16_VALUE( 3.465), SIMDE_FLOAT16_VALUE( 21.203), SIMDE_FLOAT16_VALUE( - 85.381), + SIMDE_FLOAT16_VALUE( 98.757), SIMDE_FLOAT16_VALUE( 38.963), SIMDE_FLOAT16_VALUE( - 64.943), SIMDE_FLOAT16_VALUE( 24.672) }, + { SIMDE_FLOAT16_VALUE( - 6.353), SIMDE_FLOAT16_VALUE( - 59.832), SIMDE_FLOAT16_VALUE( 58.153), SIMDE_FLOAT16_VALUE( 81.511), + SIMDE_FLOAT16_VALUE( 99.317), SIMDE_FLOAT16_VALUE( - 44.639), SIMDE_FLOAT16_VALUE( - 90.372), SIMDE_FLOAT16_VALUE( 12.816) } } }, + { { SIMDE_FLOAT16_VALUE( 67.964), SIMDE_FLOAT16_VALUE( - 49.709), SIMDE_FLOAT16_VALUE( 91.615), SIMDE_FLOAT16_VALUE( - 45.904), + SIMDE_FLOAT16_VALUE( 25.435), SIMDE_FLOAT16_VALUE( 79.259), SIMDE_FLOAT16_VALUE( 12.338), SIMDE_FLOAT16_VALUE( - 54.866), + SIMDE_FLOAT16_VALUE( - 4.301), SIMDE_FLOAT16_VALUE( - 20.530), SIMDE_FLOAT16_VALUE( 71.469), SIMDE_FLOAT16_VALUE( 9.646), + SIMDE_FLOAT16_VALUE( 27.156), SIMDE_FLOAT16_VALUE( 4.728), SIMDE_FLOAT16_VALUE( 9.490), SIMDE_FLOAT16_VALUE( 82.699), + SIMDE_FLOAT16_VALUE( - 27.427), SIMDE_FLOAT16_VALUE( 57.932), SIMDE_FLOAT16_VALUE( 66.510), SIMDE_FLOAT16_VALUE( - 27.262), + SIMDE_FLOAT16_VALUE( 54.618), SIMDE_FLOAT16_VALUE( 46.855), SIMDE_FLOAT16_VALUE( 62.478), SIMDE_FLOAT16_VALUE( 61.709) }, + { { SIMDE_FLOAT16_VALUE( 67.964), SIMDE_FLOAT16_VALUE( - 45.904), SIMDE_FLOAT16_VALUE( 12.338), SIMDE_FLOAT16_VALUE( - 20.530), + SIMDE_FLOAT16_VALUE( 27.156), SIMDE_FLOAT16_VALUE( 82.699), SIMDE_FLOAT16_VALUE( 66.510), SIMDE_FLOAT16_VALUE( 46.855) }, + { SIMDE_FLOAT16_VALUE( - 49.709), SIMDE_FLOAT16_VALUE( 25.435), SIMDE_FLOAT16_VALUE( - 54.866), SIMDE_FLOAT16_VALUE( 71.469), + SIMDE_FLOAT16_VALUE( 4.728), SIMDE_FLOAT16_VALUE( - 27.427), SIMDE_FLOAT16_VALUE( - 27.262), SIMDE_FLOAT16_VALUE( 62.478) }, + { SIMDE_FLOAT16_VALUE( 91.615), SIMDE_FLOAT16_VALUE( 79.259), SIMDE_FLOAT16_VALUE( - 4.301), SIMDE_FLOAT16_VALUE( 9.646), + SIMDE_FLOAT16_VALUE( 9.490), SIMDE_FLOAT16_VALUE( 57.932), SIMDE_FLOAT16_VALUE( 54.618), SIMDE_FLOAT16_VALUE( 61.709) } } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -236,6 +263,18 @@ test_simde_vld3q_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x24_t a = simde_test_arm_neon_random_f16x24(-100.0f, 100.0f); + simde_float16x3_t r[3] = simde_vld3q_f16(a); + + simde_test_arm_neon_write_f16x24(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x3(2, r[3], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } #endif /* !defined(SIMDE_BUG_INTEL_857088) */ diff --git a/test/arm/neon/ld4.c b/test/arm/neon/ld4.c index c69a99ae8..2a302636c 100644 --- a/test/arm/neon/ld4.c +++ b/test/arm/neon/ld4.c @@ -8,6 +8,7 @@ static int test_simde_vld4_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16_t a[16]; simde_float16_t r[4][4]; @@ -76,142 +77,155 @@ test_simde_vld4_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x16_t a = simde_test_arm_neon_random_f16x16(-100.0f, 100.0f); + simde_float16x4_t r[4] = simde_vld4_f16(a); + + simde_test_arm_neon_write_f16x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r[4], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vld4q_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { simde_float16_t a[32]; simde_float16_t r[4][8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 5.490), SIMDE_FLOAT16_C( 56.363), SIMDE_FLOAT16_C( 50.265), -SIMDE_FLOAT16_C( 62.541), - SIMDE_FLOAT16_C( 32.240), SIMDE_FLOAT16_C( 80.441), SIMDE_FLOAT16_C( 9.478), -SIMDE_FLOAT16_C( 73.979), - SIMDE_FLOAT16_C( 72.907), -SIMDE_FLOAT16_C( 37.547), -SIMDE_FLOAT16_C( 98.897), -SIMDE_FLOAT16_C( 96.841), - -SIMDE_FLOAT16_C( 64.286), -SIMDE_FLOAT16_C( 46.003), SIMDE_FLOAT16_C( 60.223), SIMDE_FLOAT16_C( 83.652), - -SIMDE_FLOAT16_C( 51.410), SIMDE_FLOAT16_C( 60.687), SIMDE_FLOAT16_C( 76.661), SIMDE_FLOAT16_C( 87.481), - -SIMDE_FLOAT16_C( 58.057), SIMDE_FLOAT16_C( 80.682), -SIMDE_FLOAT16_C( 45.694), -SIMDE_FLOAT16_C( 18.375), - SIMDE_FLOAT16_C( 4.987), SIMDE_FLOAT16_C( 72.799), -SIMDE_FLOAT16_C( 32.887), -SIMDE_FLOAT16_C( 91.185), - -SIMDE_FLOAT16_C( 5.996), -SIMDE_FLOAT16_C( 80.690), -SIMDE_FLOAT16_C( 87.372), SIMDE_FLOAT16_C( 74.876) }, - { { SIMDE_FLOAT16_C( 5.490), SIMDE_FLOAT16_C( 32.240), SIMDE_FLOAT16_C( 72.907), -SIMDE_FLOAT16_C( 64.286), - -SIMDE_FLOAT16_C( 51.410), -SIMDE_FLOAT16_C( 58.057), SIMDE_FLOAT16_C( 4.987), -SIMDE_FLOAT16_C( 5.996) }, - { SIMDE_FLOAT16_C( 56.363), SIMDE_FLOAT16_C( 80.441), -SIMDE_FLOAT16_C( 37.547), -SIMDE_FLOAT16_C( 46.003), - SIMDE_FLOAT16_C( 60.687), SIMDE_FLOAT16_C( 80.682), SIMDE_FLOAT16_C( 72.799), -SIMDE_FLOAT16_C( 80.690) }, - { SIMDE_FLOAT16_C( 50.265), SIMDE_FLOAT16_C( 9.478), -SIMDE_FLOAT16_C( 98.897), SIMDE_FLOAT16_C( 60.223), - SIMDE_FLOAT16_C( 76.661), -SIMDE_FLOAT16_C( 45.694), -SIMDE_FLOAT16_C( 32.887), -SIMDE_FLOAT16_C( 87.372) }, - { -SIMDE_FLOAT16_C( 62.541), -SIMDE_FLOAT16_C( 73.979), -SIMDE_FLOAT16_C( 96.841), SIMDE_FLOAT16_C( 83.652), - SIMDE_FLOAT16_C( 87.481), -SIMDE_FLOAT16_C( 18.375), -SIMDE_FLOAT16_C( 91.185), SIMDE_FLOAT16_C( 74.876) } } }, - { { SIMDE_FLOAT16_C( 98.260), -SIMDE_FLOAT16_C( 53.720), SIMDE_FLOAT16_C( 64.055), -SIMDE_FLOAT16_C( 42.434), - -SIMDE_FLOAT16_C( 30.691), -SIMDE_FLOAT16_C( 38.678), SIMDE_FLOAT16_C( 54.052), -SIMDE_FLOAT16_C( 8.191), - SIMDE_FLOAT16_C( 46.474), -SIMDE_FLOAT16_C( 27.690), -SIMDE_FLOAT16_C( 52.522), SIMDE_FLOAT16_C( 18.409), - SIMDE_FLOAT16_C( 43.536), SIMDE_FLOAT16_C( 22.115), -SIMDE_FLOAT16_C( 28.459), SIMDE_FLOAT16_C( 5.606), - SIMDE_FLOAT16_C( 61.671), -SIMDE_FLOAT16_C( 91.137), -SIMDE_FLOAT16_C( 60.090), SIMDE_FLOAT16_C( 52.864), - -SIMDE_FLOAT16_C( 91.079), SIMDE_FLOAT16_C( 12.797), -SIMDE_FLOAT16_C( 0.876), SIMDE_FLOAT16_C( 60.271), - -SIMDE_FLOAT16_C( 31.039), -SIMDE_FLOAT16_C( 8.129), SIMDE_FLOAT16_C( 80.874), -SIMDE_FLOAT16_C( 18.920), - SIMDE_FLOAT16_C( 66.029), SIMDE_FLOAT16_C( 53.380), SIMDE_FLOAT16_C( 52.293), SIMDE_FLOAT16_C( 88.604) }, - { { SIMDE_FLOAT16_C( 98.260), -SIMDE_FLOAT16_C( 30.691), SIMDE_FLOAT16_C( 46.474), SIMDE_FLOAT16_C( 43.536), - SIMDE_FLOAT16_C( 61.671), -SIMDE_FLOAT16_C( 91.079), -SIMDE_FLOAT16_C( 31.039), SIMDE_FLOAT16_C( 66.029) }, - { -SIMDE_FLOAT16_C( 53.720), -SIMDE_FLOAT16_C( 38.678), -SIMDE_FLOAT16_C( 27.690), SIMDE_FLOAT16_C( 22.115), - -SIMDE_FLOAT16_C( 91.137), SIMDE_FLOAT16_C( 12.797), -SIMDE_FLOAT16_C( 8.129), SIMDE_FLOAT16_C( 53.380) }, - { SIMDE_FLOAT16_C( 64.055), SIMDE_FLOAT16_C( 54.052), -SIMDE_FLOAT16_C( 52.522), -SIMDE_FLOAT16_C( 28.459), - -SIMDE_FLOAT16_C( 60.090), -SIMDE_FLOAT16_C( 0.876), SIMDE_FLOAT16_C( 80.874), SIMDE_FLOAT16_C( 52.293) }, - { -SIMDE_FLOAT16_C( 42.434), -SIMDE_FLOAT16_C( 8.191), SIMDE_FLOAT16_C( 18.409), SIMDE_FLOAT16_C( 5.606), - SIMDE_FLOAT16_C( 52.864), SIMDE_FLOAT16_C( 60.271), -SIMDE_FLOAT16_C( 18.920), SIMDE_FLOAT16_C( 88.604) } } }, - { { -SIMDE_FLOAT16_C( 77.566), SIMDE_FLOAT16_C( 49.732), SIMDE_FLOAT16_C( 13.953), SIMDE_FLOAT16_C( 73.486), - -SIMDE_FLOAT16_C( 49.632), SIMDE_FLOAT16_C( 90.775), SIMDE_FLOAT16_C( 99.231), -SIMDE_FLOAT16_C( 60.897), - -SIMDE_FLOAT16_C( 70.236), SIMDE_FLOAT16_C( 41.518), SIMDE_FLOAT16_C( 63.677), -SIMDE_FLOAT16_C( 42.192), - -SIMDE_FLOAT16_C( 77.678), -SIMDE_FLOAT16_C( 20.756), -SIMDE_FLOAT16_C( 63.219), -SIMDE_FLOAT16_C( 32.109), - -SIMDE_FLOAT16_C( 46.923), -SIMDE_FLOAT16_C( 99.472), SIMDE_FLOAT16_C( 64.420), SIMDE_FLOAT16_C( 94.805), - SIMDE_FLOAT16_C( 7.983), SIMDE_FLOAT16_C( 71.674), SIMDE_FLOAT16_C( 25.662), -SIMDE_FLOAT16_C( 88.933), - SIMDE_FLOAT16_C( 63.394), SIMDE_FLOAT16_C( 11.632), -SIMDE_FLOAT16_C( 50.221), SIMDE_FLOAT16_C( 10.966), - -SIMDE_FLOAT16_C( 89.809), SIMDE_FLOAT16_C( 42.301), SIMDE_FLOAT16_C( 27.079), SIMDE_FLOAT16_C( 10.245) }, - { { -SIMDE_FLOAT16_C( 77.566), -SIMDE_FLOAT16_C( 49.632), -SIMDE_FLOAT16_C( 70.236), -SIMDE_FLOAT16_C( 77.678), - -SIMDE_FLOAT16_C( 46.923), SIMDE_FLOAT16_C( 7.983), SIMDE_FLOAT16_C( 63.394), -SIMDE_FLOAT16_C( 89.809) }, - { SIMDE_FLOAT16_C( 49.732), SIMDE_FLOAT16_C( 90.775), SIMDE_FLOAT16_C( 41.518), -SIMDE_FLOAT16_C( 20.756), - -SIMDE_FLOAT16_C( 99.472), SIMDE_FLOAT16_C( 71.674), SIMDE_FLOAT16_C( 11.632), SIMDE_FLOAT16_C( 42.301) }, - { SIMDE_FLOAT16_C( 13.953), SIMDE_FLOAT16_C( 99.231), SIMDE_FLOAT16_C( 63.677), -SIMDE_FLOAT16_C( 63.219), - SIMDE_FLOAT16_C( 64.420), SIMDE_FLOAT16_C( 25.662), -SIMDE_FLOAT16_C( 50.221), SIMDE_FLOAT16_C( 27.079) }, - { SIMDE_FLOAT16_C( 73.486), -SIMDE_FLOAT16_C( 60.897), -SIMDE_FLOAT16_C( 42.192), -SIMDE_FLOAT16_C( 32.109), - SIMDE_FLOAT16_C( 94.805), -SIMDE_FLOAT16_C( 88.933), SIMDE_FLOAT16_C( 10.966), SIMDE_FLOAT16_C( 10.245) } } }, - { { SIMDE_FLOAT16_C( 68.132), SIMDE_FLOAT16_C( 98.448), SIMDE_FLOAT16_C( 89.569), SIMDE_FLOAT16_C( 52.859), - -SIMDE_FLOAT16_C( 30.550), SIMDE_FLOAT16_C( 60.162), SIMDE_FLOAT16_C( 64.127), -SIMDE_FLOAT16_C( 36.081), - SIMDE_FLOAT16_C( 22.014), -SIMDE_FLOAT16_C( 4.060), -SIMDE_FLOAT16_C( 1.772), -SIMDE_FLOAT16_C( 61.338), - SIMDE_FLOAT16_C( 73.559), -SIMDE_FLOAT16_C( 56.442), SIMDE_FLOAT16_C( 92.937), SIMDE_FLOAT16_C( 46.595), - SIMDE_FLOAT16_C( 96.771), SIMDE_FLOAT16_C( 67.430), SIMDE_FLOAT16_C( 36.578), SIMDE_FLOAT16_C( 86.457), - SIMDE_FLOAT16_C( 18.411), -SIMDE_FLOAT16_C( 54.887), -SIMDE_FLOAT16_C( 40.622), -SIMDE_FLOAT16_C( 29.592), - SIMDE_FLOAT16_C( 15.246), SIMDE_FLOAT16_C( 9.582), -SIMDE_FLOAT16_C( 96.924), SIMDE_FLOAT16_C( 86.899), - -SIMDE_FLOAT16_C( 52.384), -SIMDE_FLOAT16_C( 92.867), -SIMDE_FLOAT16_C( 44.117), -SIMDE_FLOAT16_C( 90.337) }, - { { SIMDE_FLOAT16_C( 68.132), -SIMDE_FLOAT16_C( 30.550), SIMDE_FLOAT16_C( 22.014), SIMDE_FLOAT16_C( 73.559), - SIMDE_FLOAT16_C( 96.771), SIMDE_FLOAT16_C( 18.411), SIMDE_FLOAT16_C( 15.246), -SIMDE_FLOAT16_C( 52.384) }, - { SIMDE_FLOAT16_C( 98.448), SIMDE_FLOAT16_C( 60.162), -SIMDE_FLOAT16_C( 4.060), -SIMDE_FLOAT16_C( 56.442), - SIMDE_FLOAT16_C( 67.430), -SIMDE_FLOAT16_C( 54.887), SIMDE_FLOAT16_C( 9.582), -SIMDE_FLOAT16_C( 92.867) }, - { SIMDE_FLOAT16_C( 89.569), SIMDE_FLOAT16_C( 64.127), -SIMDE_FLOAT16_C( 1.772), SIMDE_FLOAT16_C( 92.937), - SIMDE_FLOAT16_C( 36.578), -SIMDE_FLOAT16_C( 40.622), -SIMDE_FLOAT16_C( 96.924), -SIMDE_FLOAT16_C( 44.117) }, - { SIMDE_FLOAT16_C( 52.859), -SIMDE_FLOAT16_C( 36.081), -SIMDE_FLOAT16_C( 61.338), SIMDE_FLOAT16_C( 46.595), - SIMDE_FLOAT16_C( 86.457), -SIMDE_FLOAT16_C( 29.592), SIMDE_FLOAT16_C( 86.899), -SIMDE_FLOAT16_C( 90.337) } } }, - { { SIMDE_FLOAT16_C( 86.525), -SIMDE_FLOAT16_C( 7.364), SIMDE_FLOAT16_C( 76.938), -SIMDE_FLOAT16_C( 33.673), - SIMDE_FLOAT16_C( 17.284), SIMDE_FLOAT16_C( 86.559), -SIMDE_FLOAT16_C( 98.760), SIMDE_FLOAT16_C( 64.214), - -SIMDE_FLOAT16_C( 82.404), -SIMDE_FLOAT16_C( 55.915), -SIMDE_FLOAT16_C( 99.164), SIMDE_FLOAT16_C( 57.475), - SIMDE_FLOAT16_C( 37.359), SIMDE_FLOAT16_C( 4.426), SIMDE_FLOAT16_C( 96.766), SIMDE_FLOAT16_C( 1.291), - SIMDE_FLOAT16_C( 67.966), SIMDE_FLOAT16_C( 48.150), -SIMDE_FLOAT16_C( 90.178), SIMDE_FLOAT16_C( 40.405), - SIMDE_FLOAT16_C( 38.096), SIMDE_FLOAT16_C( 52.337), -SIMDE_FLOAT16_C( 71.332), SIMDE_FLOAT16_C( 60.795), - -SIMDE_FLOAT16_C( 66.608), SIMDE_FLOAT16_C( 83.954), -SIMDE_FLOAT16_C( 75.610), SIMDE_FLOAT16_C( 72.697), - SIMDE_FLOAT16_C( 88.933), SIMDE_FLOAT16_C( 58.545), SIMDE_FLOAT16_C( 55.080), -SIMDE_FLOAT16_C( 1.566) }, - { { SIMDE_FLOAT16_C( 86.525), SIMDE_FLOAT16_C( 17.284), -SIMDE_FLOAT16_C( 82.404), SIMDE_FLOAT16_C( 37.359), - SIMDE_FLOAT16_C( 67.966), SIMDE_FLOAT16_C( 38.096), -SIMDE_FLOAT16_C( 66.608), SIMDE_FLOAT16_C( 88.933) }, - { -SIMDE_FLOAT16_C( 7.364), SIMDE_FLOAT16_C( 86.559), -SIMDE_FLOAT16_C( 55.915), SIMDE_FLOAT16_C( 4.426), - SIMDE_FLOAT16_C( 48.150), SIMDE_FLOAT16_C( 52.337), SIMDE_FLOAT16_C( 83.954), SIMDE_FLOAT16_C( 58.545) }, - { SIMDE_FLOAT16_C( 76.938), -SIMDE_FLOAT16_C( 98.760), -SIMDE_FLOAT16_C( 99.164), SIMDE_FLOAT16_C( 96.766), - -SIMDE_FLOAT16_C( 90.178), -SIMDE_FLOAT16_C( 71.332), -SIMDE_FLOAT16_C( 75.610), SIMDE_FLOAT16_C( 55.080) }, - { -SIMDE_FLOAT16_C( 33.673), SIMDE_FLOAT16_C( 64.214), SIMDE_FLOAT16_C( 57.475), SIMDE_FLOAT16_C( 1.291), - SIMDE_FLOAT16_C( 40.405), SIMDE_FLOAT16_C( 60.795), SIMDE_FLOAT16_C( 72.697), -SIMDE_FLOAT16_C( 1.566) } } }, - { { SIMDE_FLOAT16_C( 61.363), -SIMDE_FLOAT16_C( 94.735), SIMDE_FLOAT16_C( 71.030), -SIMDE_FLOAT16_C( 54.274), - SIMDE_FLOAT16_C( 88.136), -SIMDE_FLOAT16_C( 5.456), SIMDE_FLOAT16_C( 47.220), -SIMDE_FLOAT16_C( 29.565), - SIMDE_FLOAT16_C( 22.067), -SIMDE_FLOAT16_C( 60.529), -SIMDE_FLOAT16_C( 86.561), SIMDE_FLOAT16_C( 59.456), - SIMDE_FLOAT16_C( 18.893), -SIMDE_FLOAT16_C( 3.232), -SIMDE_FLOAT16_C( 5.500), SIMDE_FLOAT16_C( 38.212), - SIMDE_FLOAT16_C( 64.008), SIMDE_FLOAT16_C( 23.363), -SIMDE_FLOAT16_C( 52.655), -SIMDE_FLOAT16_C( 83.862), - SIMDE_FLOAT16_C( 82.969), -SIMDE_FLOAT16_C( 51.413), -SIMDE_FLOAT16_C( 6.933), SIMDE_FLOAT16_C( 82.898), - SIMDE_FLOAT16_C( 66.306), -SIMDE_FLOAT16_C( 60.470), SIMDE_FLOAT16_C( 30.553), SIMDE_FLOAT16_C( 84.495), - SIMDE_FLOAT16_C( 23.918), SIMDE_FLOAT16_C( 73.675), SIMDE_FLOAT16_C( 29.921), -SIMDE_FLOAT16_C( 13.427) }, - { { SIMDE_FLOAT16_C( 61.363), SIMDE_FLOAT16_C( 88.136), SIMDE_FLOAT16_C( 22.067), SIMDE_FLOAT16_C( 18.893), - SIMDE_FLOAT16_C( 64.008), SIMDE_FLOAT16_C( 82.969), SIMDE_FLOAT16_C( 66.306), SIMDE_FLOAT16_C( 23.918) }, - { -SIMDE_FLOAT16_C( 94.735), -SIMDE_FLOAT16_C( 5.456), -SIMDE_FLOAT16_C( 60.529), -SIMDE_FLOAT16_C( 3.232), - SIMDE_FLOAT16_C( 23.363), -SIMDE_FLOAT16_C( 51.413), -SIMDE_FLOAT16_C( 60.470), SIMDE_FLOAT16_C( 73.675) }, - { SIMDE_FLOAT16_C( 71.030), SIMDE_FLOAT16_C( 47.220), -SIMDE_FLOAT16_C( 86.561), -SIMDE_FLOAT16_C( 5.500), - -SIMDE_FLOAT16_C( 52.655), -SIMDE_FLOAT16_C( 6.933), SIMDE_FLOAT16_C( 30.553), SIMDE_FLOAT16_C( 29.921) }, - { -SIMDE_FLOAT16_C( 54.274), -SIMDE_FLOAT16_C( 29.565), SIMDE_FLOAT16_C( 59.456), SIMDE_FLOAT16_C( 38.212), - -SIMDE_FLOAT16_C( 83.862), SIMDE_FLOAT16_C( 82.898), SIMDE_FLOAT16_C( 84.495), -SIMDE_FLOAT16_C( 13.427) } } }, - { { SIMDE_FLOAT16_C( 35.383), -SIMDE_FLOAT16_C( 89.112), SIMDE_FLOAT16_C( 26.970), SIMDE_FLOAT16_C( 7.485), - -SIMDE_FLOAT16_C( 82.298), SIMDE_FLOAT16_C( 74.716), -SIMDE_FLOAT16_C( 98.970), SIMDE_FLOAT16_C( 39.884), - -SIMDE_FLOAT16_C( 46.463), SIMDE_FLOAT16_C( 57.795), -SIMDE_FLOAT16_C( 1.432), SIMDE_FLOAT16_C( 99.301), - SIMDE_FLOAT16_C( 32.827), -SIMDE_FLOAT16_C( 87.007), -SIMDE_FLOAT16_C( 21.524), SIMDE_FLOAT16_C( 27.532), - -SIMDE_FLOAT16_C( 80.235), -SIMDE_FLOAT16_C( 6.353), -SIMDE_FLOAT16_C( 90.137), SIMDE_FLOAT16_C( 13.171), - SIMDE_FLOAT16_C( 76.820), SIMDE_FLOAT16_C( 54.313), SIMDE_FLOAT16_C( 54.393), -SIMDE_FLOAT16_C( 32.240), - -SIMDE_FLOAT16_C( 70.987), -SIMDE_FLOAT16_C( 72.386), SIMDE_FLOAT16_C( 33.691), SIMDE_FLOAT16_C( 8.833), - -SIMDE_FLOAT16_C( 74.879), -SIMDE_FLOAT16_C( 3.497), -SIMDE_FLOAT16_C( 98.523), SIMDE_FLOAT16_C( 53.411) }, - { { SIMDE_FLOAT16_C( 35.383), -SIMDE_FLOAT16_C( 82.298), -SIMDE_FLOAT16_C( 46.463), SIMDE_FLOAT16_C( 32.827), - -SIMDE_FLOAT16_C( 80.235), SIMDE_FLOAT16_C( 76.820), -SIMDE_FLOAT16_C( 70.987), -SIMDE_FLOAT16_C( 74.879) }, - { -SIMDE_FLOAT16_C( 89.112), SIMDE_FLOAT16_C( 74.716), SIMDE_FLOAT16_C( 57.795), -SIMDE_FLOAT16_C( 87.007), - -SIMDE_FLOAT16_C( 6.353), SIMDE_FLOAT16_C( 54.313), -SIMDE_FLOAT16_C( 72.386), -SIMDE_FLOAT16_C( 3.497) }, - { SIMDE_FLOAT16_C( 26.970), -SIMDE_FLOAT16_C( 98.970), -SIMDE_FLOAT16_C( 1.432), -SIMDE_FLOAT16_C( 21.524), - -SIMDE_FLOAT16_C( 90.137), SIMDE_FLOAT16_C( 54.393), SIMDE_FLOAT16_C( 33.691), -SIMDE_FLOAT16_C( 98.523) }, - { SIMDE_FLOAT16_C( 7.485), SIMDE_FLOAT16_C( 39.884), SIMDE_FLOAT16_C( 99.301), SIMDE_FLOAT16_C( 27.532), - SIMDE_FLOAT16_C( 13.171), -SIMDE_FLOAT16_C( 32.240), SIMDE_FLOAT16_C( 8.833), SIMDE_FLOAT16_C( 53.411) } } }, - { { -SIMDE_FLOAT16_C( 50.312), -SIMDE_FLOAT16_C( 24.102), -SIMDE_FLOAT16_C( 97.391), SIMDE_FLOAT16_C( 3.022), - SIMDE_FLOAT16_C( 78.988), -SIMDE_FLOAT16_C( 25.237), -SIMDE_FLOAT16_C( 90.131), -SIMDE_FLOAT16_C( 97.836), - -SIMDE_FLOAT16_C( 76.208), -SIMDE_FLOAT16_C( 18.262), SIMDE_FLOAT16_C( 23.059), -SIMDE_FLOAT16_C( 86.163), - SIMDE_FLOAT16_C( 65.842), -SIMDE_FLOAT16_C( 75.486), SIMDE_FLOAT16_C( 67.646), SIMDE_FLOAT16_C( 59.138), - SIMDE_FLOAT16_C( 55.197), SIMDE_FLOAT16_C( 52.575), -SIMDE_FLOAT16_C( 52.818), SIMDE_FLOAT16_C( 58.329), - -SIMDE_FLOAT16_C( 28.835), -SIMDE_FLOAT16_C( 10.915), SIMDE_FLOAT16_C( 75.879), -SIMDE_FLOAT16_C( 0.973), - -SIMDE_FLOAT16_C( 58.718), SIMDE_FLOAT16_C( 12.668), -SIMDE_FLOAT16_C( 98.837), SIMDE_FLOAT16_C( 76.632), - SIMDE_FLOAT16_C( 79.542), SIMDE_FLOAT16_C( 34.512), -SIMDE_FLOAT16_C( 94.397), SIMDE_FLOAT16_C( 26.405) }, - { { -SIMDE_FLOAT16_C( 50.312), SIMDE_FLOAT16_C( 78.988), -SIMDE_FLOAT16_C( 76.208), SIMDE_FLOAT16_C( 65.842), - SIMDE_FLOAT16_C( 55.197), -SIMDE_FLOAT16_C( 28.835), -SIMDE_FLOAT16_C( 58.718), SIMDE_FLOAT16_C( 79.542) }, - { -SIMDE_FLOAT16_C( 24.102), -SIMDE_FLOAT16_C( 25.237), -SIMDE_FLOAT16_C( 18.262), -SIMDE_FLOAT16_C( 75.486), - SIMDE_FLOAT16_C( 52.575), -SIMDE_FLOAT16_C( 10.915), SIMDE_FLOAT16_C( 12.668), SIMDE_FLOAT16_C( 34.512) }, - { -SIMDE_FLOAT16_C( 97.391), -SIMDE_FLOAT16_C( 90.131), SIMDE_FLOAT16_C( 23.059), SIMDE_FLOAT16_C( 67.646), - -SIMDE_FLOAT16_C( 52.818), SIMDE_FLOAT16_C( 75.879), -SIMDE_FLOAT16_C( 98.837), -SIMDE_FLOAT16_C( 94.397) }, - { SIMDE_FLOAT16_C( 3.022), -SIMDE_FLOAT16_C( 97.836), -SIMDE_FLOAT16_C( 86.163), SIMDE_FLOAT16_C( 59.138), - SIMDE_FLOAT16_C( 58.329), -SIMDE_FLOAT16_C( 0.973), SIMDE_FLOAT16_C( 76.632), SIMDE_FLOAT16_C( 26.405) } } }, + { { SIMDE_FLOAT16_VALUE( 5.490), SIMDE_FLOAT16_VALUE( 56.363), SIMDE_FLOAT16_VALUE( 50.265), SIMDE_FLOAT16_VALUE( - 62.541), + SIMDE_FLOAT16_VALUE( 32.240), SIMDE_FLOAT16_VALUE( 80.441), SIMDE_FLOAT16_VALUE( 9.478), SIMDE_FLOAT16_VALUE( - 73.979), + SIMDE_FLOAT16_VALUE( 72.907), SIMDE_FLOAT16_VALUE( - 37.547), SIMDE_FLOAT16_VALUE( - 98.897), SIMDE_FLOAT16_VALUE( - 96.841), + SIMDE_FLOAT16_VALUE( - 64.286), SIMDE_FLOAT16_VALUE( - 46.003), SIMDE_FLOAT16_VALUE( 60.223), SIMDE_FLOAT16_VALUE( 83.652), + SIMDE_FLOAT16_VALUE( - 51.410), SIMDE_FLOAT16_VALUE( 60.687), SIMDE_FLOAT16_VALUE( 76.661), SIMDE_FLOAT16_VALUE( 87.481), + SIMDE_FLOAT16_VALUE( - 58.057), SIMDE_FLOAT16_VALUE( 80.682), SIMDE_FLOAT16_VALUE( - 45.694), SIMDE_FLOAT16_VALUE( - 18.375), + SIMDE_FLOAT16_VALUE( 4.987), SIMDE_FLOAT16_VALUE( 72.799), SIMDE_FLOAT16_VALUE( - 32.887), SIMDE_FLOAT16_VALUE( - 91.185), + SIMDE_FLOAT16_VALUE( - 5.996), SIMDE_FLOAT16_VALUE( - 80.690), SIMDE_FLOAT16_VALUE( - 87.372), SIMDE_FLOAT16_VALUE( 74.876) }, + { { SIMDE_FLOAT16_VALUE( 5.490), SIMDE_FLOAT16_VALUE( 32.240), SIMDE_FLOAT16_VALUE( 72.907), SIMDE_FLOAT16_VALUE( - 64.286), + SIMDE_FLOAT16_VALUE( - 51.410), SIMDE_FLOAT16_VALUE( - 58.057), SIMDE_FLOAT16_VALUE( 4.987), SIMDE_FLOAT16_VALUE( - 5.996) }, + { SIMDE_FLOAT16_VALUE( 56.363), SIMDE_FLOAT16_VALUE( 80.441), SIMDE_FLOAT16_VALUE( - 37.547), SIMDE_FLOAT16_VALUE( - 46.003), + SIMDE_FLOAT16_VALUE( 60.687), SIMDE_FLOAT16_VALUE( 80.682), SIMDE_FLOAT16_VALUE( 72.799), SIMDE_FLOAT16_VALUE( - 80.690) }, + { SIMDE_FLOAT16_VALUE( 50.265), SIMDE_FLOAT16_VALUE( 9.478), SIMDE_FLOAT16_VALUE( - 98.897), SIMDE_FLOAT16_VALUE( 60.223), + SIMDE_FLOAT16_VALUE( 76.661), SIMDE_FLOAT16_VALUE( - 45.694), SIMDE_FLOAT16_VALUE( - 32.887), SIMDE_FLOAT16_VALUE( - 87.372) }, + { SIMDE_FLOAT16_VALUE( - 62.541), SIMDE_FLOAT16_VALUE( - 73.979), SIMDE_FLOAT16_VALUE( - 96.841), SIMDE_FLOAT16_VALUE( 83.652), + SIMDE_FLOAT16_VALUE( 87.481), SIMDE_FLOAT16_VALUE( - 18.375), SIMDE_FLOAT16_VALUE( - 91.185), SIMDE_FLOAT16_VALUE( 74.876) } } }, + { { SIMDE_FLOAT16_VALUE( 98.260), SIMDE_FLOAT16_VALUE( - 53.720), SIMDE_FLOAT16_VALUE( 64.055), SIMDE_FLOAT16_VALUE( - 42.434), + SIMDE_FLOAT16_VALUE( - 30.691), SIMDE_FLOAT16_VALUE( - 38.678), SIMDE_FLOAT16_VALUE( 54.052), SIMDE_FLOAT16_VALUE( - 8.191), + SIMDE_FLOAT16_VALUE( 46.474), SIMDE_FLOAT16_VALUE( - 27.690), SIMDE_FLOAT16_VALUE( - 52.522), SIMDE_FLOAT16_VALUE( 18.409), + SIMDE_FLOAT16_VALUE( 43.536), SIMDE_FLOAT16_VALUE( 22.115), SIMDE_FLOAT16_VALUE( - 28.459), SIMDE_FLOAT16_VALUE( 5.606), + SIMDE_FLOAT16_VALUE( 61.671), SIMDE_FLOAT16_VALUE( - 91.137), SIMDE_FLOAT16_VALUE( - 60.090), SIMDE_FLOAT16_VALUE( 52.864), + SIMDE_FLOAT16_VALUE( - 91.079), SIMDE_FLOAT16_VALUE( 12.797), SIMDE_FLOAT16_VALUE( - 0.876), SIMDE_FLOAT16_VALUE( 60.271), + SIMDE_FLOAT16_VALUE( - 31.039), SIMDE_FLOAT16_VALUE( - 8.129), SIMDE_FLOAT16_VALUE( 80.874), SIMDE_FLOAT16_VALUE( - 18.920), + SIMDE_FLOAT16_VALUE( 66.029), SIMDE_FLOAT16_VALUE( 53.380), SIMDE_FLOAT16_VALUE( 52.293), SIMDE_FLOAT16_VALUE( 88.604) }, + { { SIMDE_FLOAT16_VALUE( 98.260), SIMDE_FLOAT16_VALUE( - 30.691), SIMDE_FLOAT16_VALUE( 46.474), SIMDE_FLOAT16_VALUE( 43.536), + SIMDE_FLOAT16_VALUE( 61.671), SIMDE_FLOAT16_VALUE( - 91.079), SIMDE_FLOAT16_VALUE( - 31.039), SIMDE_FLOAT16_VALUE( 66.029) }, + { SIMDE_FLOAT16_VALUE( - 53.720), SIMDE_FLOAT16_VALUE( - 38.678), SIMDE_FLOAT16_VALUE( - 27.690), SIMDE_FLOAT16_VALUE( 22.115), + SIMDE_FLOAT16_VALUE( - 91.137), SIMDE_FLOAT16_VALUE( 12.797), SIMDE_FLOAT16_VALUE( - 8.129), SIMDE_FLOAT16_VALUE( 53.380) }, + { SIMDE_FLOAT16_VALUE( 64.055), SIMDE_FLOAT16_VALUE( 54.052), SIMDE_FLOAT16_VALUE( - 52.522), SIMDE_FLOAT16_VALUE( - 28.459), + SIMDE_FLOAT16_VALUE( - 60.090), SIMDE_FLOAT16_VALUE( - 0.876), SIMDE_FLOAT16_VALUE( 80.874), SIMDE_FLOAT16_VALUE( 52.293) }, + { SIMDE_FLOAT16_VALUE( - 42.434), SIMDE_FLOAT16_VALUE( - 8.191), SIMDE_FLOAT16_VALUE( 18.409), SIMDE_FLOAT16_VALUE( 5.606), + SIMDE_FLOAT16_VALUE( 52.864), SIMDE_FLOAT16_VALUE( 60.271), SIMDE_FLOAT16_VALUE( - 18.920), SIMDE_FLOAT16_VALUE( 88.604) } } }, + { { SIMDE_FLOAT16_VALUE( - 77.566), SIMDE_FLOAT16_VALUE( 49.732), SIMDE_FLOAT16_VALUE( 13.953), SIMDE_FLOAT16_VALUE( 73.486), + SIMDE_FLOAT16_VALUE( - 49.632), SIMDE_FLOAT16_VALUE( 90.775), SIMDE_FLOAT16_VALUE( 99.231), SIMDE_FLOAT16_VALUE( - 60.897), + SIMDE_FLOAT16_VALUE( - 70.236), SIMDE_FLOAT16_VALUE( 41.518), SIMDE_FLOAT16_VALUE( 63.677), SIMDE_FLOAT16_VALUE( - 42.192), + SIMDE_FLOAT16_VALUE( - 77.678), SIMDE_FLOAT16_VALUE( - 20.756), SIMDE_FLOAT16_VALUE( - 63.219), SIMDE_FLOAT16_VALUE( - 32.109), + SIMDE_FLOAT16_VALUE( - 46.923), SIMDE_FLOAT16_VALUE( - 99.472), SIMDE_FLOAT16_VALUE( 64.420), SIMDE_FLOAT16_VALUE( 94.805), + SIMDE_FLOAT16_VALUE( 7.983), SIMDE_FLOAT16_VALUE( 71.674), SIMDE_FLOAT16_VALUE( 25.662), SIMDE_FLOAT16_VALUE( - 88.933), + SIMDE_FLOAT16_VALUE( 63.394), SIMDE_FLOAT16_VALUE( 11.632), SIMDE_FLOAT16_VALUE( - 50.221), SIMDE_FLOAT16_VALUE( 10.966), + SIMDE_FLOAT16_VALUE( - 89.809), SIMDE_FLOAT16_VALUE( 42.301), SIMDE_FLOAT16_VALUE( 27.079), SIMDE_FLOAT16_VALUE( 10.245) }, + { { SIMDE_FLOAT16_VALUE( - 77.566), SIMDE_FLOAT16_VALUE( - 49.632), SIMDE_FLOAT16_VALUE( - 70.236), SIMDE_FLOAT16_VALUE( - 77.678), + SIMDE_FLOAT16_VALUE( - 46.923), SIMDE_FLOAT16_VALUE( 7.983), SIMDE_FLOAT16_VALUE( 63.394), SIMDE_FLOAT16_VALUE( - 89.809) }, + { SIMDE_FLOAT16_VALUE( 49.732), SIMDE_FLOAT16_VALUE( 90.775), SIMDE_FLOAT16_VALUE( 41.518), SIMDE_FLOAT16_VALUE( - 20.756), + SIMDE_FLOAT16_VALUE( - 99.472), SIMDE_FLOAT16_VALUE( 71.674), SIMDE_FLOAT16_VALUE( 11.632), SIMDE_FLOAT16_VALUE( 42.301) }, + { SIMDE_FLOAT16_VALUE( 13.953), SIMDE_FLOAT16_VALUE( 99.231), SIMDE_FLOAT16_VALUE( 63.677), SIMDE_FLOAT16_VALUE( - 63.219), + SIMDE_FLOAT16_VALUE( 64.420), SIMDE_FLOAT16_VALUE( 25.662), SIMDE_FLOAT16_VALUE( - 50.221), SIMDE_FLOAT16_VALUE( 27.079) }, + { SIMDE_FLOAT16_VALUE( 73.486), SIMDE_FLOAT16_VALUE( - 60.897), SIMDE_FLOAT16_VALUE( - 42.192), SIMDE_FLOAT16_VALUE( - 32.109), + SIMDE_FLOAT16_VALUE( 94.805), SIMDE_FLOAT16_VALUE( - 88.933), SIMDE_FLOAT16_VALUE( 10.966), SIMDE_FLOAT16_VALUE( 10.245) } } }, + { { SIMDE_FLOAT16_VALUE( 68.132), SIMDE_FLOAT16_VALUE( 98.448), SIMDE_FLOAT16_VALUE( 89.569), SIMDE_FLOAT16_VALUE( 52.859), + SIMDE_FLOAT16_VALUE( - 30.550), SIMDE_FLOAT16_VALUE( 60.162), SIMDE_FLOAT16_VALUE( 64.127), SIMDE_FLOAT16_VALUE( - 36.081), + SIMDE_FLOAT16_VALUE( 22.014), SIMDE_FLOAT16_VALUE( - 4.060), SIMDE_FLOAT16_VALUE( - 1.772), SIMDE_FLOAT16_VALUE( - 61.338), + SIMDE_FLOAT16_VALUE( 73.559), SIMDE_FLOAT16_VALUE( - 56.442), SIMDE_FLOAT16_VALUE( 92.937), SIMDE_FLOAT16_VALUE( 46.595), + SIMDE_FLOAT16_VALUE( 96.771), SIMDE_FLOAT16_VALUE( 67.430), SIMDE_FLOAT16_VALUE( 36.578), SIMDE_FLOAT16_VALUE( 86.457), + SIMDE_FLOAT16_VALUE( 18.411), SIMDE_FLOAT16_VALUE( - 54.887), SIMDE_FLOAT16_VALUE( - 40.622), SIMDE_FLOAT16_VALUE( - 29.592), + SIMDE_FLOAT16_VALUE( 15.246), SIMDE_FLOAT16_VALUE( 9.582), SIMDE_FLOAT16_VALUE( - 96.924), SIMDE_FLOAT16_VALUE( 86.899), + SIMDE_FLOAT16_VALUE( - 52.384), SIMDE_FLOAT16_VALUE( - 92.867), SIMDE_FLOAT16_VALUE( - 44.117), SIMDE_FLOAT16_VALUE( - 90.337) }, + { { SIMDE_FLOAT16_VALUE( 68.132), SIMDE_FLOAT16_VALUE( - 30.550), SIMDE_FLOAT16_VALUE( 22.014), SIMDE_FLOAT16_VALUE( 73.559), + SIMDE_FLOAT16_VALUE( 96.771), SIMDE_FLOAT16_VALUE( 18.411), SIMDE_FLOAT16_VALUE( 15.246), SIMDE_FLOAT16_VALUE( - 52.384) }, + { SIMDE_FLOAT16_VALUE( 98.448), SIMDE_FLOAT16_VALUE( 60.162), SIMDE_FLOAT16_VALUE( - 4.060), SIMDE_FLOAT16_VALUE( - 56.442), + SIMDE_FLOAT16_VALUE( 67.430), SIMDE_FLOAT16_VALUE( - 54.887), SIMDE_FLOAT16_VALUE( 9.582), SIMDE_FLOAT16_VALUE( - 92.867) }, + { SIMDE_FLOAT16_VALUE( 89.569), SIMDE_FLOAT16_VALUE( 64.127), SIMDE_FLOAT16_VALUE( - 1.772), SIMDE_FLOAT16_VALUE( 92.937), + SIMDE_FLOAT16_VALUE( 36.578), SIMDE_FLOAT16_VALUE( - 40.622), SIMDE_FLOAT16_VALUE( - 96.924), SIMDE_FLOAT16_VALUE( - 44.117) }, + { SIMDE_FLOAT16_VALUE( 52.859), SIMDE_FLOAT16_VALUE( - 36.081), SIMDE_FLOAT16_VALUE( - 61.338), SIMDE_FLOAT16_VALUE( 46.595), + SIMDE_FLOAT16_VALUE( 86.457), SIMDE_FLOAT16_VALUE( - 29.592), SIMDE_FLOAT16_VALUE( 86.899), SIMDE_FLOAT16_VALUE( - 90.337) } } }, + { { SIMDE_FLOAT16_VALUE( 86.525), SIMDE_FLOAT16_VALUE( - 7.364), SIMDE_FLOAT16_VALUE( 76.938), SIMDE_FLOAT16_VALUE( - 33.673), + SIMDE_FLOAT16_VALUE( 17.284), SIMDE_FLOAT16_VALUE( 86.559), SIMDE_FLOAT16_VALUE( - 98.760), SIMDE_FLOAT16_VALUE( 64.214), + SIMDE_FLOAT16_VALUE( - 82.404), SIMDE_FLOAT16_VALUE( - 55.915), SIMDE_FLOAT16_VALUE( - 99.164), SIMDE_FLOAT16_VALUE( 57.475), + SIMDE_FLOAT16_VALUE( 37.359), SIMDE_FLOAT16_VALUE( 4.426), SIMDE_FLOAT16_VALUE( 96.766), SIMDE_FLOAT16_VALUE( 1.291), + SIMDE_FLOAT16_VALUE( 67.966), SIMDE_FLOAT16_VALUE( 48.150), SIMDE_FLOAT16_VALUE( - 90.178), SIMDE_FLOAT16_VALUE( 40.405), + SIMDE_FLOAT16_VALUE( 38.096), SIMDE_FLOAT16_VALUE( 52.337), SIMDE_FLOAT16_VALUE( - 71.332), SIMDE_FLOAT16_VALUE( 60.795), + SIMDE_FLOAT16_VALUE( - 66.608), SIMDE_FLOAT16_VALUE( 83.954), SIMDE_FLOAT16_VALUE( - 75.610), SIMDE_FLOAT16_VALUE( 72.697), + SIMDE_FLOAT16_VALUE( 88.933), SIMDE_FLOAT16_VALUE( 58.545), SIMDE_FLOAT16_VALUE( 55.080), SIMDE_FLOAT16_VALUE( - 1.566) }, + { { SIMDE_FLOAT16_VALUE( 86.525), SIMDE_FLOAT16_VALUE( 17.284), SIMDE_FLOAT16_VALUE( - 82.404), SIMDE_FLOAT16_VALUE( 37.359), + SIMDE_FLOAT16_VALUE( 67.966), SIMDE_FLOAT16_VALUE( 38.096), SIMDE_FLOAT16_VALUE( - 66.608), SIMDE_FLOAT16_VALUE( 88.933) }, + { SIMDE_FLOAT16_VALUE( - 7.364), SIMDE_FLOAT16_VALUE( 86.559), SIMDE_FLOAT16_VALUE( - 55.915), SIMDE_FLOAT16_VALUE( 4.426), + SIMDE_FLOAT16_VALUE( 48.150), SIMDE_FLOAT16_VALUE( 52.337), SIMDE_FLOAT16_VALUE( 83.954), SIMDE_FLOAT16_VALUE( 58.545) }, + { SIMDE_FLOAT16_VALUE( 76.938), SIMDE_FLOAT16_VALUE( - 98.760), SIMDE_FLOAT16_VALUE( - 99.164), SIMDE_FLOAT16_VALUE( 96.766), + SIMDE_FLOAT16_VALUE( - 90.178), SIMDE_FLOAT16_VALUE( - 71.332), SIMDE_FLOAT16_VALUE( - 75.610), SIMDE_FLOAT16_VALUE( 55.080) }, + { SIMDE_FLOAT16_VALUE( - 33.673), SIMDE_FLOAT16_VALUE( 64.214), SIMDE_FLOAT16_VALUE( 57.475), SIMDE_FLOAT16_VALUE( 1.291), + SIMDE_FLOAT16_VALUE( 40.405), SIMDE_FLOAT16_VALUE( 60.795), SIMDE_FLOAT16_VALUE( 72.697), SIMDE_FLOAT16_VALUE( - 1.566) } } }, + { { SIMDE_FLOAT16_VALUE( 61.363), SIMDE_FLOAT16_VALUE( - 94.735), SIMDE_FLOAT16_VALUE( 71.030), SIMDE_FLOAT16_VALUE( - 54.274), + SIMDE_FLOAT16_VALUE( 88.136), SIMDE_FLOAT16_VALUE( - 5.456), SIMDE_FLOAT16_VALUE( 47.220), SIMDE_FLOAT16_VALUE( - 29.565), + SIMDE_FLOAT16_VALUE( 22.067), SIMDE_FLOAT16_VALUE( - 60.529), SIMDE_FLOAT16_VALUE( - 86.561), SIMDE_FLOAT16_VALUE( 59.456), + SIMDE_FLOAT16_VALUE( 18.893), SIMDE_FLOAT16_VALUE( - 3.232), SIMDE_FLOAT16_VALUE( - 5.500), SIMDE_FLOAT16_VALUE( 38.212), + SIMDE_FLOAT16_VALUE( 64.008), SIMDE_FLOAT16_VALUE( 23.363), SIMDE_FLOAT16_VALUE( - 52.655), SIMDE_FLOAT16_VALUE( - 83.862), + SIMDE_FLOAT16_VALUE( 82.969), SIMDE_FLOAT16_VALUE( - 51.413), SIMDE_FLOAT16_VALUE( - 6.933), SIMDE_FLOAT16_VALUE( 82.898), + SIMDE_FLOAT16_VALUE( 66.306), SIMDE_FLOAT16_VALUE( - 60.470), SIMDE_FLOAT16_VALUE( 30.553), SIMDE_FLOAT16_VALUE( 84.495), + SIMDE_FLOAT16_VALUE( 23.918), SIMDE_FLOAT16_VALUE( 73.675), SIMDE_FLOAT16_VALUE( 29.921), SIMDE_FLOAT16_VALUE( - 13.427) }, + { { SIMDE_FLOAT16_VALUE( 61.363), SIMDE_FLOAT16_VALUE( 88.136), SIMDE_FLOAT16_VALUE( 22.067), SIMDE_FLOAT16_VALUE( 18.893), + SIMDE_FLOAT16_VALUE( 64.008), SIMDE_FLOAT16_VALUE( 82.969), SIMDE_FLOAT16_VALUE( 66.306), SIMDE_FLOAT16_VALUE( 23.918) }, + { SIMDE_FLOAT16_VALUE( - 94.735), SIMDE_FLOAT16_VALUE( - 5.456), SIMDE_FLOAT16_VALUE( - 60.529), SIMDE_FLOAT16_VALUE( - 3.232), + SIMDE_FLOAT16_VALUE( 23.363), SIMDE_FLOAT16_VALUE( - 51.413), SIMDE_FLOAT16_VALUE( - 60.470), SIMDE_FLOAT16_VALUE( 73.675) }, + { SIMDE_FLOAT16_VALUE( 71.030), SIMDE_FLOAT16_VALUE( 47.220), SIMDE_FLOAT16_VALUE( - 86.561), SIMDE_FLOAT16_VALUE( - 5.500), + SIMDE_FLOAT16_VALUE( - 52.655), SIMDE_FLOAT16_VALUE( - 6.933), SIMDE_FLOAT16_VALUE( 30.553), SIMDE_FLOAT16_VALUE( 29.921) }, + { SIMDE_FLOAT16_VALUE( - 54.274), SIMDE_FLOAT16_VALUE( - 29.565), SIMDE_FLOAT16_VALUE( 59.456), SIMDE_FLOAT16_VALUE( 38.212), + SIMDE_FLOAT16_VALUE( - 83.862), SIMDE_FLOAT16_VALUE( 82.898), SIMDE_FLOAT16_VALUE( 84.495), SIMDE_FLOAT16_VALUE( - 13.427) } } }, + { { SIMDE_FLOAT16_VALUE( 35.383), SIMDE_FLOAT16_VALUE( - 89.112), SIMDE_FLOAT16_VALUE( 26.970), SIMDE_FLOAT16_VALUE( 7.485), + SIMDE_FLOAT16_VALUE( - 82.298), SIMDE_FLOAT16_VALUE( 74.716), SIMDE_FLOAT16_VALUE( - 98.970), SIMDE_FLOAT16_VALUE( 39.884), + SIMDE_FLOAT16_VALUE( - 46.463), SIMDE_FLOAT16_VALUE( 57.795), SIMDE_FLOAT16_VALUE( - 1.432), SIMDE_FLOAT16_VALUE( 99.301), + SIMDE_FLOAT16_VALUE( 32.827), SIMDE_FLOAT16_VALUE( - 87.007), SIMDE_FLOAT16_VALUE( - 21.524), SIMDE_FLOAT16_VALUE( 27.532), + SIMDE_FLOAT16_VALUE( - 80.235), SIMDE_FLOAT16_VALUE( - 6.353), SIMDE_FLOAT16_VALUE( - 90.137), SIMDE_FLOAT16_VALUE( 13.171), + SIMDE_FLOAT16_VALUE( 76.820), SIMDE_FLOAT16_VALUE( 54.313), SIMDE_FLOAT16_VALUE( 54.393), SIMDE_FLOAT16_VALUE( - 32.240), + SIMDE_FLOAT16_VALUE( - 70.987), SIMDE_FLOAT16_VALUE( - 72.386), SIMDE_FLOAT16_VALUE( 33.691), SIMDE_FLOAT16_VALUE( 8.833), + SIMDE_FLOAT16_VALUE( - 74.879), SIMDE_FLOAT16_VALUE( - 3.497), SIMDE_FLOAT16_VALUE( - 98.523), SIMDE_FLOAT16_VALUE( 53.411) }, + { { SIMDE_FLOAT16_VALUE( 35.383), SIMDE_FLOAT16_VALUE( - 82.298), SIMDE_FLOAT16_VALUE( - 46.463), SIMDE_FLOAT16_VALUE( 32.827), + SIMDE_FLOAT16_VALUE( - 80.235), SIMDE_FLOAT16_VALUE( 76.820), SIMDE_FLOAT16_VALUE( - 70.987), SIMDE_FLOAT16_VALUE( - 74.879) }, + { SIMDE_FLOAT16_VALUE( - 89.112), SIMDE_FLOAT16_VALUE( 74.716), SIMDE_FLOAT16_VALUE( 57.795), SIMDE_FLOAT16_VALUE( - 87.007), + SIMDE_FLOAT16_VALUE( - 6.353), SIMDE_FLOAT16_VALUE( 54.313), SIMDE_FLOAT16_VALUE( - 72.386), SIMDE_FLOAT16_VALUE( - 3.497) }, + { SIMDE_FLOAT16_VALUE( 26.970), SIMDE_FLOAT16_VALUE( - 98.970), SIMDE_FLOAT16_VALUE( - 1.432), SIMDE_FLOAT16_VALUE( - 21.524), + SIMDE_FLOAT16_VALUE( - 90.137), SIMDE_FLOAT16_VALUE( 54.393), SIMDE_FLOAT16_VALUE( 33.691), SIMDE_FLOAT16_VALUE( - 98.523) }, + { SIMDE_FLOAT16_VALUE( 7.485), SIMDE_FLOAT16_VALUE( 39.884), SIMDE_FLOAT16_VALUE( 99.301), SIMDE_FLOAT16_VALUE( 27.532), + SIMDE_FLOAT16_VALUE( 13.171), SIMDE_FLOAT16_VALUE( - 32.240), SIMDE_FLOAT16_VALUE( 8.833), SIMDE_FLOAT16_VALUE( 53.411) } } }, + { { SIMDE_FLOAT16_VALUE( - 50.312), SIMDE_FLOAT16_VALUE( - 24.102), SIMDE_FLOAT16_VALUE( - 97.391), SIMDE_FLOAT16_VALUE( 3.022), + SIMDE_FLOAT16_VALUE( 78.988), SIMDE_FLOAT16_VALUE( - 25.237), SIMDE_FLOAT16_VALUE( - 90.131), SIMDE_FLOAT16_VALUE( - 97.836), + SIMDE_FLOAT16_VALUE( - 76.208), SIMDE_FLOAT16_VALUE( - 18.262), SIMDE_FLOAT16_VALUE( 23.059), SIMDE_FLOAT16_VALUE( - 86.163), + SIMDE_FLOAT16_VALUE( 65.842), SIMDE_FLOAT16_VALUE( - 75.486), SIMDE_FLOAT16_VALUE( 67.646), SIMDE_FLOAT16_VALUE( 59.138), + SIMDE_FLOAT16_VALUE( 55.197), SIMDE_FLOAT16_VALUE( 52.575), SIMDE_FLOAT16_VALUE( - 52.818), SIMDE_FLOAT16_VALUE( 58.329), + SIMDE_FLOAT16_VALUE( - 28.835), SIMDE_FLOAT16_VALUE( - 10.915), SIMDE_FLOAT16_VALUE( 75.879), SIMDE_FLOAT16_VALUE( - 0.973), + SIMDE_FLOAT16_VALUE( - 58.718), SIMDE_FLOAT16_VALUE( 12.668), SIMDE_FLOAT16_VALUE( - 98.837), SIMDE_FLOAT16_VALUE( 76.632), + SIMDE_FLOAT16_VALUE( 79.542), SIMDE_FLOAT16_VALUE( 34.512), SIMDE_FLOAT16_VALUE( - 94.397), SIMDE_FLOAT16_VALUE( 26.405) }, + { { SIMDE_FLOAT16_VALUE( - 50.312), SIMDE_FLOAT16_VALUE( 78.988), SIMDE_FLOAT16_VALUE( - 76.208), SIMDE_FLOAT16_VALUE( 65.842), + SIMDE_FLOAT16_VALUE( 55.197), SIMDE_FLOAT16_VALUE( - 28.835), SIMDE_FLOAT16_VALUE( - 58.718), SIMDE_FLOAT16_VALUE( 79.542) }, + { SIMDE_FLOAT16_VALUE( - 24.102), SIMDE_FLOAT16_VALUE( - 25.237), SIMDE_FLOAT16_VALUE( - 18.262), SIMDE_FLOAT16_VALUE( - 75.486), + SIMDE_FLOAT16_VALUE( 52.575), SIMDE_FLOAT16_VALUE( - 10.915), SIMDE_FLOAT16_VALUE( 12.668), SIMDE_FLOAT16_VALUE( 34.512) }, + { SIMDE_FLOAT16_VALUE( - 97.391), SIMDE_FLOAT16_VALUE( - 90.131), SIMDE_FLOAT16_VALUE( 23.059), SIMDE_FLOAT16_VALUE( 67.646), + SIMDE_FLOAT16_VALUE( - 52.818), SIMDE_FLOAT16_VALUE( 75.879), SIMDE_FLOAT16_VALUE( - 98.837), SIMDE_FLOAT16_VALUE( - 94.397) }, + { SIMDE_FLOAT16_VALUE( 3.022), SIMDE_FLOAT16_VALUE( - 97.836), SIMDE_FLOAT16_VALUE( - 86.163), SIMDE_FLOAT16_VALUE( 59.138), + SIMDE_FLOAT16_VALUE( 58.329), SIMDE_FLOAT16_VALUE( - 0.973), SIMDE_FLOAT16_VALUE( 76.632), SIMDE_FLOAT16_VALUE( 26.405) } } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -228,6 +242,18 @@ test_simde_vld4q_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x32_t a = simde_test_arm_neon_random_f16x32(-100.0f, 100.0f); + simde_float16x4_t r[4] = simde_vld4q_f16(a); + + simde_test_arm_neon_write_f16x32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r[4], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } #endif /* !defined(SIMDE_BUG_INTEL_857088) */ diff --git a/test/arm/neon/qrshl.c b/test/arm/neon/qrshl.c index dcfe56bca..97180cb28 100644 --- a/test/arm/neon/qrshl.c +++ b/test/arm/neon/qrshl.c @@ -16,6 +16,7 @@ static int test_simde_vqrshlb_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t a; int8_t b; @@ -54,10 +55,25 @@ test_simde_vqrshlb_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int8_t a = simde_test_arm_neon_random_i8(); + simde_int8_t b = simde_test_arm_neon_random_i8(); + simde_int8_t r = simde_vqrshlb_s8(a, b); + + simde_test_arm_neon_write_i8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlh_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t a; int16_t b; @@ -96,10 +112,25 @@ test_simde_vqrshlh_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int16_t a = simde_test_arm_neon_random_i16(); + simde_int16_t b = simde_test_arm_neon_random_i16(); + simde_int16_t r = simde_vqrshlh_s16(a, b); + + simde_test_arm_neon_write_i16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshls_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t a; int32_t b; @@ -162,10 +193,25 @@ test_simde_vqrshls_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int32_t a = simde_test_arm_neon_random_i32(); + simde_int32_t b = simde_test_arm_neon_random_i32(); + simde_int32_t r = simde_vqrshls_s32(a, b); + + simde_test_arm_neon_write_i32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshld_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int64_t a; int64_t b; @@ -204,10 +250,25 @@ test_simde_vqrshld_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int64_t a = simde_test_arm_neon_random_i64(); + simde_int64_t b = simde_test_arm_neon_random_i64(); + simde_int64_t r = simde_vqrshld_s64(a, b); + + simde_test_arm_neon_write_i64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlb_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint8_t a; int8_t b; @@ -246,10 +307,25 @@ test_simde_vqrshlb_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8_t a = simde_test_arm_neon_random_u8(); + simde_int8_t b = simde_test_arm_neon_random_i8(); + simde_uint8_t r = simde_vqrshlb_u8(a, b); + + simde_test_arm_neon_write_u8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlh_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t a; int16_t b; @@ -291,10 +367,25 @@ test_simde_vqrshlh_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16_t a = simde_test_arm_neon_random_u16(); + simde_int16_t b = simde_test_arm_neon_random_i16(); + simde_uint16_t r = simde_vqrshlh_u16(a, b); + + simde_test_arm_neon_write_u16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshls_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t a; int32_t b; @@ -333,10 +424,25 @@ test_simde_vqrshls_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32_t a = simde_test_arm_neon_random_u32(); + simde_int32_t b = simde_test_arm_neon_random_i32(); + simde_uint32_t r = simde_vqrshls_u32(a, b); + + simde_test_arm_neon_write_u32(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshld_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint64_t a; int64_t b; @@ -375,10 +481,25 @@ test_simde_vqrshld_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64_t a = simde_test_arm_neon_random_u64(); + simde_int64_t b = simde_test_arm_neon_random_i64(); + simde_uint64_t r = simde_vqrshld_u64(a, b); + + simde_test_arm_neon_write_u64(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -443,11 +564,26 @@ test_simde_vqrshl_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x8_t r = simde_vqrshl_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -488,10 +624,25 @@ test_simde_vqrshl_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x4_t r = simde_vqrshl_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -532,10 +683,25 @@ test_simde_vqrshl_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r = simde_vqrshl_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[1]; int64_t b[1]; @@ -576,10 +742,25 @@ test_simde_vqrshl_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_int64x1_t b = simde_test_arm_neon_random_i64x1(); + simde_int64x1_t r = simde_vqrshl_s64(a, b); + + simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; int8_t b[8]; @@ -644,10 +825,25 @@ test_simde_vqrshl_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_uint8x8_t r = simde_vqrshl_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; int16_t b[4]; @@ -687,10 +883,25 @@ test_simde_vqrshl_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_uint16x4_t r = simde_vqrshl_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; int32_t b[2]; @@ -730,10 +941,25 @@ test_simde_vqrshl_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_uint32x2_t r = simde_vqrshl_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshl_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[1]; int64_t b[1]; @@ -773,10 +999,25 @@ test_simde_vqrshl_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x1_t a = simde_test_arm_neon_random_u64x1(); + simde_int64x1_t b = simde_test_arm_neon_random_i64x1(); + simde_uint64x1_t r = simde_vqrshl_u64(a, b); + + simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x1(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -889,10 +1130,25 @@ test_simde_vqrshlq_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x16_t r = simde_vqrshlq_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -957,10 +1213,25 @@ test_simde_vqrshlq_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t r = simde_vqrshlq_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -1000,10 +1271,25 @@ test_simde_vqrshlq_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t r = simde_vqrshlq_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[2]; int64_t b[2]; @@ -1043,10 +1329,25 @@ test_simde_vqrshlq_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t r = simde_vqrshlq_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; int8_t b[16]; @@ -1159,10 +1460,25 @@ test_simde_vqrshlq_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_uint8x16_t r = simde_vqrshlq_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; int16_t b[8]; @@ -1226,10 +1542,25 @@ test_simde_vqrshlq_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_uint16x8_t r = simde_vqrshlq_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; int32_t b[4]; @@ -1270,10 +1601,25 @@ test_simde_vqrshlq_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_uint32x4_t r = simde_vqrshlq_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vqrshlq_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[2]; int64_t b[2]; @@ -1313,6 +1659,20 @@ test_simde_vqrshlq_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_uint64x2_t r = simde_vqrshlq_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } diff --git a/test/arm/neon/raddhn.c b/test/arm/neon/raddhn.c index cd329ac76..1f930e6a6 100644 --- a/test/arm/neon/raddhn.c +++ b/test/arm/neon/raddhn.c @@ -5,6 +5,7 @@ static int test_simde_vraddhn_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t a[8]; int16_t b[8]; @@ -45,10 +46,25 @@ test_simde_vraddhn_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int8x8_t r = simde_vraddhn_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t a[4]; int32_t b[4]; @@ -89,10 +105,25 @@ test_simde_vraddhn_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int16x4_t r = simde_vraddhn_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int64_t a[2]; int64_t b[2]; @@ -133,10 +164,25 @@ test_simde_vraddhn_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int32x2_t r = simde_vraddhn_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t a[8]; uint16_t b[8]; @@ -177,10 +223,25 @@ test_simde_vraddhn_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint8x8_t r = simde_vraddhn_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t a[4]; uint32_t b[4]; @@ -221,10 +282,25 @@ test_simde_vraddhn_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint16x4_t r = simde_vraddhn_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint64_t a[2]; uint64_t b[2]; @@ -265,6 +341,20 @@ test_simde_vraddhn_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint32x2_t r = simde_vraddhn_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/raddhn_high.c b/test/arm/neon/raddhn_high.c index c165324d7..dd66287eb 100644 --- a/test/arm/neon/raddhn_high.c +++ b/test/arm/neon/raddhn_high.c @@ -5,6 +5,7 @@ static int test_simde_vraddhn_high_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t r_[8]; int16_t a[8]; @@ -55,10 +56,27 @@ test_simde_vraddhn_high_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int8x8_t r_ = simde_test_arm_neon_random_i8x8(); + simde_int16x8_t a = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int8x16_t r = simde_vraddhn_high_s16(r_, a, b); + + simde_test_arm_neon_write_i8x8(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_high_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t r_[4]; int32_t a[4]; @@ -109,10 +127,27 @@ test_simde_vraddhn_high_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int16x4_t r_ = simde_test_arm_neon_random_i16x4(); + simde_int32x4_t a = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int16x8_t r = simde_vraddhn_high_s32(r_, a, b); + + simde_test_arm_neon_write_i16x4(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_high_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t r_[2]; int64_t a[2]; @@ -163,10 +198,27 @@ test_simde_vraddhn_high_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int32x2_t r_ = simde_test_arm_neon_random_i32x2(); + simde_int64x2_t a = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int32x4_t r = simde_vraddhn_high_s64(r_, a, b); + + simde_test_arm_neon_write_i32x2(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_high_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint8_t r_[8]; uint16_t a[8]; @@ -217,10 +269,27 @@ test_simde_vraddhn_high_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t r_ = simde_test_arm_neon_random_u8x8(); + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint8x16_t r = simde_vraddhn_high_u16(r_, a, b); + + simde_test_arm_neon_write_u8x8(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_high_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t r_[4]; uint32_t a[4]; @@ -271,10 +340,27 @@ test_simde_vraddhn_high_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t r_ = simde_test_arm_neon_random_u16x4(); + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint16x8_t r = simde_vraddhn_high_u32(r_, a, b); + + simde_test_arm_neon_write_u16x4(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vraddhn_high_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t r_[2]; uint64_t a[2]; @@ -325,6 +411,22 @@ test_simde_vraddhn_high_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t r_ = simde_test_arm_neon_random_u32x2(); + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint32x4_t r = simde_vraddhn_high_u64(r_, a, b); + + simde_test_arm_neon_write_u32x2(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } diff --git a/test/arm/neon/reinterpret.c b/test/arm/neon/reinterpret.c index 221fd5e6a..81c74ad15 100644 --- a/test/arm/neon/reinterpret.c +++ b/test/arm/neon/reinterpret.c @@ -37,6 +37,7 @@ test_simde_vreinterpret_f32_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -73,6 +74,7 @@ test_simde_vreinterpret_f64_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -109,6 +111,7 @@ test_simde_vreinterpret_s16_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -145,6 +148,7 @@ test_simde_vreinterpret_s32_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -181,6 +185,7 @@ test_simde_vreinterpret_s64_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -217,6 +222,7 @@ test_simde_vreinterpret_u8_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -252,6 +258,7 @@ test_simde_vreinterpret_u16_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -287,6 +294,7 @@ test_simde_vreinterpret_u32_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -322,6 +330,7 @@ test_simde_vreinterpret_u64_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -365,6 +374,7 @@ test_simde_vreinterpretq_f32_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -409,6 +419,7 @@ test_simde_vreinterpretq_f64_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -453,6 +464,7 @@ test_simde_vreinterpretq_s16_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -496,6 +508,7 @@ test_simde_vreinterpretq_s32_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -539,6 +552,7 @@ test_simde_vreinterpretq_s64_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -583,6 +597,7 @@ test_simde_vreinterpretq_u8_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -626,6 +641,7 @@ test_simde_vreinterpretq_u16_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -670,6 +686,7 @@ test_simde_vreinterpretq_u32_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -713,6 +730,7 @@ test_simde_vreinterpretq_u64_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -749,6 +767,7 @@ test_simde_vreinterpret_f32_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -785,6 +804,7 @@ test_simde_vreinterpret_f64_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -821,6 +841,7 @@ test_simde_vreinterpret_s8_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -857,6 +878,7 @@ test_simde_vreinterpret_s32_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -893,6 +915,7 @@ test_simde_vreinterpret_s64_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -929,6 +952,7 @@ test_simde_vreinterpret_u8_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -964,6 +988,7 @@ test_simde_vreinterpret_u16_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -999,6 +1024,7 @@ test_simde_vreinterpret_u32_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1034,6 +1060,7 @@ test_simde_vreinterpret_u64_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1069,6 +1096,7 @@ test_simde_vreinterpretq_f32_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1105,6 +1133,7 @@ test_simde_vreinterpretq_f64_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1141,6 +1170,7 @@ test_simde_vreinterpretq_s8_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1176,6 +1206,7 @@ test_simde_vreinterpretq_s32_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1211,6 +1242,7 @@ test_simde_vreinterpretq_s64_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1247,6 +1279,7 @@ test_simde_vreinterpretq_u8_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1282,6 +1315,7 @@ test_simde_vreinterpretq_u16_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1318,6 +1352,7 @@ test_simde_vreinterpretq_u32_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1353,6 +1388,7 @@ test_simde_vreinterpretq_u64_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1389,6 +1425,7 @@ test_simde_vreinterpret_f32_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1425,6 +1462,7 @@ test_simde_vreinterpret_f64_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1461,6 +1499,7 @@ test_simde_vreinterpret_s8_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1497,6 +1536,7 @@ test_simde_vreinterpret_s16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1533,6 +1573,7 @@ test_simde_vreinterpret_s64_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1569,6 +1610,7 @@ test_simde_vreinterpret_u8_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1604,6 +1646,7 @@ test_simde_vreinterpret_u16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1639,6 +1682,7 @@ test_simde_vreinterpret_u32_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1674,6 +1718,7 @@ test_simde_vreinterpret_u64_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1709,6 +1754,7 @@ test_simde_vreinterpretq_f32_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1745,6 +1791,7 @@ test_simde_vreinterpretq_f64_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1781,6 +1828,7 @@ test_simde_vreinterpretq_s8_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1817,6 +1865,7 @@ test_simde_vreinterpretq_s16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1852,6 +1901,7 @@ test_simde_vreinterpretq_s64_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1888,6 +1938,7 @@ test_simde_vreinterpretq_u8_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1923,6 +1974,7 @@ test_simde_vreinterpretq_u16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1959,6 +2011,7 @@ test_simde_vreinterpretq_u32_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -1994,6 +2047,7 @@ test_simde_vreinterpretq_u64_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2030,6 +2084,7 @@ test_simde_vreinterpret_f32_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2066,6 +2121,7 @@ test_simde_vreinterpret_f64_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2102,6 +2158,7 @@ test_simde_vreinterpret_s8_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2138,6 +2195,7 @@ test_simde_vreinterpret_s16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2174,6 +2232,7 @@ test_simde_vreinterpret_s32_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2210,6 +2269,7 @@ test_simde_vreinterpret_u8_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2245,6 +2305,7 @@ test_simde_vreinterpret_u16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2280,6 +2341,7 @@ test_simde_vreinterpret_u32_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2315,6 +2377,7 @@ test_simde_vreinterpret_u64_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2350,6 +2413,7 @@ test_simde_vreinterpretq_f32_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2386,6 +2450,7 @@ test_simde_vreinterpretq_f64_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2422,6 +2487,7 @@ test_simde_vreinterpretq_s8_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2458,6 +2524,7 @@ test_simde_vreinterpretq_s16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2493,6 +2560,7 @@ test_simde_vreinterpretq_s32_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2529,6 +2597,7 @@ test_simde_vreinterpretq_u8_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2564,6 +2633,7 @@ test_simde_vreinterpretq_u16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2600,6 +2670,7 @@ test_simde_vreinterpretq_u32_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2635,6 +2706,7 @@ test_simde_vreinterpretq_u64_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2671,6 +2743,7 @@ test_simde_vreinterpret_f32_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2707,6 +2780,7 @@ test_simde_vreinterpret_f64_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2743,6 +2817,7 @@ test_simde_vreinterpret_s8_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2779,6 +2854,7 @@ test_simde_vreinterpret_s16_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2815,6 +2891,7 @@ test_simde_vreinterpret_s32_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2851,6 +2928,7 @@ test_simde_vreinterpret_s64_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2886,6 +2964,7 @@ test_simde_vreinterpret_u16_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2921,6 +3000,7 @@ test_simde_vreinterpret_u32_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2956,6 +3036,7 @@ test_simde_vreinterpret_u64_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -2999,6 +3080,7 @@ test_simde_vreinterpretq_f32_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3043,6 +3125,7 @@ test_simde_vreinterpretq_f64_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3087,6 +3170,7 @@ test_simde_vreinterpretq_s8_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3131,6 +3215,7 @@ test_simde_vreinterpretq_s16_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3174,6 +3259,7 @@ test_simde_vreinterpretq_s32_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3217,6 +3303,7 @@ test_simde_vreinterpretq_s64_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3260,6 +3347,7 @@ test_simde_vreinterpretq_u16_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3304,6 +3392,7 @@ test_simde_vreinterpretq_u32_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3347,6 +3436,7 @@ test_simde_vreinterpretq_u64_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3383,6 +3473,7 @@ test_simde_vreinterpret_f32_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3419,6 +3510,7 @@ test_simde_vreinterpret_f64_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3455,6 +3547,7 @@ test_simde_vreinterpret_s8_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3491,6 +3584,7 @@ test_simde_vreinterpret_s16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3527,6 +3621,7 @@ test_simde_vreinterpret_s32_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3563,6 +3658,7 @@ test_simde_vreinterpret_s64_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3599,6 +3695,7 @@ test_simde_vreinterpret_u8_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3634,6 +3731,7 @@ test_simde_vreinterpret_u32_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3669,6 +3767,7 @@ test_simde_vreinterpret_u64_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3704,6 +3803,7 @@ test_simde_vreinterpretq_f32_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3740,6 +3840,7 @@ test_simde_vreinterpretq_f64_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3776,6 +3877,7 @@ test_simde_vreinterpretq_s8_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3812,6 +3914,7 @@ test_simde_vreinterpretq_s16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3847,6 +3950,7 @@ test_simde_vreinterpretq_s32_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3882,6 +3986,7 @@ test_simde_vreinterpretq_s64_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3918,6 +4023,7 @@ test_simde_vreinterpretq_u8_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3954,6 +4060,7 @@ test_simde_vreinterpretq_u32_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -3989,6 +4096,7 @@ test_simde_vreinterpretq_u64_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4016,6 +4124,7 @@ test_simde_vreinterpret_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4052,6 +4161,7 @@ test_simde_vreinterpret_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4088,6 +4198,7 @@ test_simde_vreinterpret_f64_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4124,6 +4235,7 @@ test_simde_vreinterpret_s8_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4160,6 +4272,7 @@ test_simde_vreinterpret_s16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4196,6 +4309,7 @@ test_simde_vreinterpret_s32_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4232,6 +4346,7 @@ test_simde_vreinterpret_s64_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4268,6 +4383,7 @@ test_simde_vreinterpret_u8_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4303,6 +4419,7 @@ test_simde_vreinterpret_u16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4338,6 +4455,7 @@ test_simde_vreinterpret_u64_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4365,6 +4483,7 @@ test_simde_vreinterpretq_f16_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4400,6 +4519,7 @@ test_simde_vreinterpretq_f32_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4436,6 +4556,7 @@ test_simde_vreinterpretq_f64_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4472,6 +4593,7 @@ test_simde_vreinterpretq_s8_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4508,6 +4630,7 @@ test_simde_vreinterpretq_s16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4543,6 +4666,7 @@ test_simde_vreinterpretq_s32_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4578,6 +4702,7 @@ test_simde_vreinterpretq_s64_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4614,6 +4739,7 @@ test_simde_vreinterpretq_u8_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4649,6 +4775,7 @@ test_simde_vreinterpretq_u16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4684,6 +4811,7 @@ test_simde_vreinterpretq_u64_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4720,6 +4848,7 @@ test_simde_vreinterpret_f32_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4756,6 +4885,7 @@ test_simde_vreinterpret_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4792,6 +4922,7 @@ test_simde_vreinterpret_s8_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4828,6 +4959,7 @@ test_simde_vreinterpret_s16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4864,6 +4996,7 @@ test_simde_vreinterpret_s32_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4900,6 +5033,7 @@ test_simde_vreinterpret_s64_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4936,6 +5070,7 @@ test_simde_vreinterpret_u8_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -4971,6 +5106,7 @@ test_simde_vreinterpret_u16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5006,6 +5142,7 @@ test_simde_vreinterpret_u32_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5041,6 +5178,7 @@ test_simde_vreinterpretq_f32_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5077,6 +5215,7 @@ test_simde_vreinterpretq_f64_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5113,6 +5252,7 @@ test_simde_vreinterpretq_s8_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5149,6 +5289,7 @@ test_simde_vreinterpretq_s16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5184,6 +5325,7 @@ test_simde_vreinterpretq_s32_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5219,6 +5361,7 @@ test_simde_vreinterpretq_s64_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5255,6 +5398,7 @@ test_simde_vreinterpretq_u8_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5290,6 +5434,7 @@ test_simde_vreinterpretq_u16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5326,6 +5471,7 @@ test_simde_vreinterpretq_u32_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5362,6 +5508,7 @@ test_simde_vreinterpret_f64_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5398,6 +5545,7 @@ test_simde_vreinterpret_s8_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5434,6 +5582,7 @@ test_simde_vreinterpret_s16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5470,6 +5619,7 @@ test_simde_vreinterpret_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5506,6 +5656,7 @@ test_simde_vreinterpret_s64_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5542,6 +5693,7 @@ test_simde_vreinterpret_u8_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5577,6 +5729,7 @@ test_simde_vreinterpret_u16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5603,6 +5756,7 @@ test_simde_vreinterpret_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5638,6 +5792,7 @@ test_simde_vreinterpret_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5673,6 +5828,7 @@ test_simde_vreinterpret_u64_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5709,6 +5865,7 @@ test_simde_vreinterpretq_f64_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5745,6 +5902,7 @@ test_simde_vreinterpretq_s8_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5781,6 +5939,7 @@ test_simde_vreinterpretq_s16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5816,6 +5975,7 @@ test_simde_vreinterpretq_s32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5851,6 +6011,7 @@ test_simde_vreinterpretq_s64_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5887,6 +6048,7 @@ test_simde_vreinterpretq_u8_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5922,6 +6084,7 @@ test_simde_vreinterpretq_u16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5956,6 +6119,7 @@ test_simde_vreinterpretq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -5992,6 +6156,7 @@ test_simde_vreinterpretq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6027,6 +6192,7 @@ test_simde_vreinterpretq_u64_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6063,6 +6229,7 @@ test_simde_vreinterpret_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6099,6 +6266,7 @@ test_simde_vreinterpret_s8_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6135,6 +6303,7 @@ test_simde_vreinterpret_s16_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6171,6 +6340,7 @@ test_simde_vreinterpret_s32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6207,6 +6377,7 @@ test_simde_vreinterpret_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6243,6 +6414,7 @@ test_simde_vreinterpret_u8_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6278,6 +6450,7 @@ test_simde_vreinterpret_u16_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6313,6 +6486,7 @@ test_simde_vreinterpret_u32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6348,6 +6522,7 @@ test_simde_vreinterpret_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6383,6 +6558,7 @@ test_simde_vreinterpretq_f32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6419,6 +6595,7 @@ test_simde_vreinterpretq_s8_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6455,6 +6632,7 @@ test_simde_vreinterpretq_s16_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6490,6 +6668,7 @@ test_simde_vreinterpretq_s32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6525,6 +6704,7 @@ test_simde_vreinterpretq_s64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6561,6 +6741,7 @@ test_simde_vreinterpretq_u8_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6596,6 +6777,7 @@ test_simde_vreinterpretq_u16_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6632,6 +6814,7 @@ test_simde_vreinterpretq_u32_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6667,6 +6850,7 @@ test_simde_vreinterpretq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6703,6 +6887,7 @@ test_simde_vreinterpret_f16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6739,6 +6924,7 @@ test_simde_vreinterpret_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6775,6 +6961,7 @@ test_simde_vreinterpret_f16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6811,6 +6998,7 @@ test_simde_vreinterpret_f16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6847,6 +7035,7 @@ test_simde_vreinterpret_f16_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6883,6 +7072,7 @@ test_simde_vreinterpret_f16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6919,6 +7109,7 @@ test_simde_vreinterpret_f16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6955,6 +7146,7 @@ test_simde_vreinterpret_f16_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -6991,6 +7183,7 @@ test_simde_vreinterpretq_f16_f32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7026,6 +7219,7 @@ test_simde_vreinterpretq_f16_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7062,6 +7256,7 @@ test_simde_vreinterpretq_f16_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7097,6 +7292,7 @@ test_simde_vreinterpretq_f16_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7140,6 +7336,7 @@ test_simde_vreinterpretq_f16_s8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7176,6 +7373,7 @@ test_simde_vreinterpretq_f16_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7211,6 +7409,7 @@ test_simde_vreinterpretq_f16_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7254,6 +7453,7 @@ test_simde_vreinterpretq_f16_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7290,6 +7490,7 @@ test_simde_vreinterpret_f16_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7325,6 +7526,7 @@ test_simde_vreinterpretq_f16_f64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7352,6 +7554,7 @@ test_simde_vreinterpret_f32_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7386,6 +7589,7 @@ test_simde_vreinterpretq_f32_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7413,6 +7617,7 @@ test_simde_vreinterpret_f64_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7447,6 +7652,7 @@ test_simde_vreinterpretq_f64_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7474,6 +7680,7 @@ test_simde_vreinterpret_s8_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7508,6 +7715,7 @@ test_simde_vreinterpretq_s8_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7535,6 +7743,7 @@ test_simde_vreinterpret_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7569,6 +7778,7 @@ test_simde_vreinterpretq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7596,6 +7806,7 @@ test_simde_vreinterpret_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7630,6 +7841,7 @@ test_simde_vreinterpretq_s32_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7657,6 +7869,7 @@ test_simde_vreinterpret_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7691,6 +7904,7 @@ test_simde_vreinterpretq_s64_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int @@ -7718,6 +7932,7 @@ test_simde_vreinterpret_u8_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + } static int diff --git a/test/arm/neon/rev64.c b/test/arm/neon/rev64.c index fb6832fbf..623ff924c 100644 --- a/test/arm/neon/rev64.c +++ b/test/arm/neon/rev64.c @@ -9,9 +9,6 @@ #include "../../../simde/arm/neon.h" #endif -/* N.B. CM: vrev64_f16 and vrev64q_f16 are omitted as - * SIMDe has no 16-bit floating point support. */ - static int test_simde_vrev64_s8 (SIMDE_MUNIT_TEST_ARGS) { #if 1 @@ -288,26 +285,27 @@ test_simde_vrev64_u32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vrev64_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[4]; simde_float16 r[4]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 73.456), -SIMDE_FLOAT16_C( 25.018), SIMDE_FLOAT16_C( 37.020), SIMDE_FLOAT16_C( 60.928) }, - { SIMDE_FLOAT16_C( 60.928), SIMDE_FLOAT16_C( 37.020), -SIMDE_FLOAT16_C( 25.018), -SIMDE_FLOAT16_C( 73.456) } }, - { { -SIMDE_FLOAT16_C( 53.291), SIMDE_FLOAT16_C( 85.800), -SIMDE_FLOAT16_C( 72.734), SIMDE_FLOAT16_C( 43.151) }, - { SIMDE_FLOAT16_C( 43.151), -SIMDE_FLOAT16_C( 72.734), SIMDE_FLOAT16_C( 85.800), -SIMDE_FLOAT16_C( 53.291) } }, - { { -SIMDE_FLOAT16_C( 40.886), -SIMDE_FLOAT16_C( 28.870), SIMDE_FLOAT16_C( 14.218), SIMDE_FLOAT16_C( 9.978) }, - { SIMDE_FLOAT16_C( 9.978), SIMDE_FLOAT16_C( 14.218), -SIMDE_FLOAT16_C( 28.870), -SIMDE_FLOAT16_C( 40.886) } }, - { { SIMDE_FLOAT16_C( 70.008), -SIMDE_FLOAT16_C( 19.874), -SIMDE_FLOAT16_C( 54.506), SIMDE_FLOAT16_C( 52.049) }, - { SIMDE_FLOAT16_C( 52.049), -SIMDE_FLOAT16_C( 54.506), -SIMDE_FLOAT16_C( 19.874), SIMDE_FLOAT16_C( 70.008) } }, - { { SIMDE_FLOAT16_C( 66.107), -SIMDE_FLOAT16_C( 68.033), SIMDE_FLOAT16_C( 26.334), -SIMDE_FLOAT16_C( 33.368) }, - { -SIMDE_FLOAT16_C( 33.368), SIMDE_FLOAT16_C( 26.334), -SIMDE_FLOAT16_C( 68.033), SIMDE_FLOAT16_C( 66.107) } }, - { { SIMDE_FLOAT16_C( 20.783), SIMDE_FLOAT16_C( 6.506), SIMDE_FLOAT16_C( 94.787), SIMDE_FLOAT16_C( 39.080) }, - { SIMDE_FLOAT16_C( 39.080), SIMDE_FLOAT16_C( 94.787), SIMDE_FLOAT16_C( 6.506), SIMDE_FLOAT16_C( 20.783) } }, - { { -SIMDE_FLOAT16_C( 85.876), -SIMDE_FLOAT16_C( 43.674), SIMDE_FLOAT16_C( 80.017), SIMDE_FLOAT16_C( 92.475) }, - { SIMDE_FLOAT16_C( 92.475), SIMDE_FLOAT16_C( 80.017), -SIMDE_FLOAT16_C( 43.674), -SIMDE_FLOAT16_C( 85.876) } }, - { { -SIMDE_FLOAT16_C( 43.483), SIMDE_FLOAT16_C( 42.449), SIMDE_FLOAT16_C( 78.227), SIMDE_FLOAT16_C( 19.386) }, - { SIMDE_FLOAT16_C( 19.386), SIMDE_FLOAT16_C( 78.227), SIMDE_FLOAT16_C( 42.449), -SIMDE_FLOAT16_C( 43.483) } }, + { { SIMDE_FLOAT16_VALUE( - 73.456), SIMDE_FLOAT16_VALUE( - 25.018), SIMDE_FLOAT16_VALUE( 37.020), SIMDE_FLOAT16_VALUE( 60.928) }, + { SIMDE_FLOAT16_VALUE( 60.928), SIMDE_FLOAT16_VALUE( 37.020), SIMDE_FLOAT16_VALUE( - 25.018), SIMDE_FLOAT16_VALUE( - 73.456) } }, + { { SIMDE_FLOAT16_VALUE( - 53.291), SIMDE_FLOAT16_VALUE( 85.800), SIMDE_FLOAT16_VALUE( - 72.734), SIMDE_FLOAT16_VALUE( 43.151) }, + { SIMDE_FLOAT16_VALUE( 43.151), SIMDE_FLOAT16_VALUE( - 72.734), SIMDE_FLOAT16_VALUE( 85.800), SIMDE_FLOAT16_VALUE( - 53.291) } }, + { { SIMDE_FLOAT16_VALUE( - 40.886), SIMDE_FLOAT16_VALUE( - 28.870), SIMDE_FLOAT16_VALUE( 14.218), SIMDE_FLOAT16_VALUE( 9.978) }, + { SIMDE_FLOAT16_VALUE( 9.978), SIMDE_FLOAT16_VALUE( 14.218), SIMDE_FLOAT16_VALUE( - 28.870), SIMDE_FLOAT16_VALUE( - 40.886) } }, + { { SIMDE_FLOAT16_VALUE( 70.008), SIMDE_FLOAT16_VALUE( - 19.874), SIMDE_FLOAT16_VALUE( - 54.506), SIMDE_FLOAT16_VALUE( 52.049) }, + { SIMDE_FLOAT16_VALUE( 52.049), SIMDE_FLOAT16_VALUE( - 54.506), SIMDE_FLOAT16_VALUE( - 19.874), SIMDE_FLOAT16_VALUE( 70.008) } }, + { { SIMDE_FLOAT16_VALUE( 66.107), SIMDE_FLOAT16_VALUE( - 68.033), SIMDE_FLOAT16_VALUE( 26.334), SIMDE_FLOAT16_VALUE( - 33.368) }, + { SIMDE_FLOAT16_VALUE( - 33.368), SIMDE_FLOAT16_VALUE( 26.334), SIMDE_FLOAT16_VALUE( - 68.033), SIMDE_FLOAT16_VALUE( 66.107) } }, + { { SIMDE_FLOAT16_VALUE( 20.783), SIMDE_FLOAT16_VALUE( 6.506), SIMDE_FLOAT16_VALUE( 94.787), SIMDE_FLOAT16_VALUE( 39.080) }, + { SIMDE_FLOAT16_VALUE( 39.080), SIMDE_FLOAT16_VALUE( 94.787), SIMDE_FLOAT16_VALUE( 6.506), SIMDE_FLOAT16_VALUE( 20.783) } }, + { { SIMDE_FLOAT16_VALUE( - 85.876), SIMDE_FLOAT16_VALUE( - 43.674), SIMDE_FLOAT16_VALUE( 80.017), SIMDE_FLOAT16_VALUE( 92.475) }, + { SIMDE_FLOAT16_VALUE( 92.475), SIMDE_FLOAT16_VALUE( 80.017), SIMDE_FLOAT16_VALUE( - 43.674), SIMDE_FLOAT16_VALUE( - 85.876) } }, + { { SIMDE_FLOAT16_VALUE( - 43.483), SIMDE_FLOAT16_VALUE( 42.449), SIMDE_FLOAT16_VALUE( 78.227), SIMDE_FLOAT16_VALUE( 19.386) }, + { SIMDE_FLOAT16_VALUE( 19.386), SIMDE_FLOAT16_VALUE( 78.227), SIMDE_FLOAT16_VALUE( 42.449), SIMDE_FLOAT16_VALUE( - 43.483) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -318,6 +316,18 @@ test_simde_vrev64_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 r = simde_vrev64_f16(a); + + simde_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -674,42 +684,43 @@ test_simde_vrev64q_u32 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vrev64q_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 a[8]; simde_float16 r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 22.973), SIMDE_FLOAT16_C( 82.785), -SIMDE_FLOAT16_C( 87.788), SIMDE_FLOAT16_C( 54.222), - -SIMDE_FLOAT16_C( 79.878), SIMDE_FLOAT16_C( 61.120), -SIMDE_FLOAT16_C( 1.496), SIMDE_FLOAT16_C( 87.003) }, - { SIMDE_FLOAT16_C( 54.222), -SIMDE_FLOAT16_C( 87.788), SIMDE_FLOAT16_C( 82.785), SIMDE_FLOAT16_C( 22.973), - SIMDE_FLOAT16_C( 87.003), -SIMDE_FLOAT16_C( 1.496), SIMDE_FLOAT16_C( 61.120), -SIMDE_FLOAT16_C( 79.878) } }, - { { SIMDE_FLOAT16_C( 47.119), -SIMDE_FLOAT16_C( 0.580), SIMDE_FLOAT16_C( 95.794), -SIMDE_FLOAT16_C( 97.960), - -SIMDE_FLOAT16_C( 80.926), -SIMDE_FLOAT16_C( 97.842), SIMDE_FLOAT16_C( 16.229), SIMDE_FLOAT16_C( 73.027) }, - { -SIMDE_FLOAT16_C( 97.960), SIMDE_FLOAT16_C( 95.794), -SIMDE_FLOAT16_C( 0.580), SIMDE_FLOAT16_C( 47.119), - SIMDE_FLOAT16_C( 73.027), SIMDE_FLOAT16_C( 16.229), -SIMDE_FLOAT16_C( 97.842), -SIMDE_FLOAT16_C( 80.926) } }, - { { SIMDE_FLOAT16_C( 75.505), -SIMDE_FLOAT16_C( 43.371), SIMDE_FLOAT16_C( 75.338), -SIMDE_FLOAT16_C( 74.826), - SIMDE_FLOAT16_C( 63.128), SIMDE_FLOAT16_C( 68.089), SIMDE_FLOAT16_C( 68.500), -SIMDE_FLOAT16_C( 98.789) }, - { -SIMDE_FLOAT16_C( 74.826), SIMDE_FLOAT16_C( 75.338), -SIMDE_FLOAT16_C( 43.371), SIMDE_FLOAT16_C( 75.505), - -SIMDE_FLOAT16_C( 98.789), SIMDE_FLOAT16_C( 68.500), SIMDE_FLOAT16_C( 68.089), SIMDE_FLOAT16_C( 63.128) } }, - { { SIMDE_FLOAT16_C( 7.539), SIMDE_FLOAT16_C( 5.867), SIMDE_FLOAT16_C( 59.154), -SIMDE_FLOAT16_C( 32.053), - -SIMDE_FLOAT16_C( 73.720), SIMDE_FLOAT16_C( 35.809), -SIMDE_FLOAT16_C( 55.954), SIMDE_FLOAT16_C( 35.526) }, - { -SIMDE_FLOAT16_C( 32.053), SIMDE_FLOAT16_C( 59.154), SIMDE_FLOAT16_C( 5.867), SIMDE_FLOAT16_C( 7.539), - SIMDE_FLOAT16_C( 35.526), -SIMDE_FLOAT16_C( 55.954), SIMDE_FLOAT16_C( 35.809), -SIMDE_FLOAT16_C( 73.720) } }, - { { -SIMDE_FLOAT16_C( 39.271), SIMDE_FLOAT16_C( 97.957), SIMDE_FLOAT16_C( 84.789), -SIMDE_FLOAT16_C( 41.728), - SIMDE_FLOAT16_C( 93.209), -SIMDE_FLOAT16_C( 50.250), SIMDE_FLOAT16_C( 72.873), -SIMDE_FLOAT16_C( 13.690) }, - { -SIMDE_FLOAT16_C( 41.728), SIMDE_FLOAT16_C( 84.789), SIMDE_FLOAT16_C( 97.957), -SIMDE_FLOAT16_C( 39.271), - -SIMDE_FLOAT16_C( 13.690), SIMDE_FLOAT16_C( 72.873), -SIMDE_FLOAT16_C( 50.250), SIMDE_FLOAT16_C( 93.209) } }, - { { -SIMDE_FLOAT16_C( 18.105), -SIMDE_FLOAT16_C( 27.704), SIMDE_FLOAT16_C( 34.737), -SIMDE_FLOAT16_C( 86.956), - SIMDE_FLOAT16_C( 49.374), SIMDE_FLOAT16_C( 11.743), -SIMDE_FLOAT16_C( 98.777), SIMDE_FLOAT16_C( 42.229) }, - { -SIMDE_FLOAT16_C( 86.956), SIMDE_FLOAT16_C( 34.737), -SIMDE_FLOAT16_C( 27.704), -SIMDE_FLOAT16_C( 18.105), - SIMDE_FLOAT16_C( 42.229), -SIMDE_FLOAT16_C( 98.777), SIMDE_FLOAT16_C( 11.743), SIMDE_FLOAT16_C( 49.374) } }, - { { SIMDE_FLOAT16_C( 80.882), SIMDE_FLOAT16_C( 87.435), SIMDE_FLOAT16_C( 55.813), -SIMDE_FLOAT16_C( 68.226), - -SIMDE_FLOAT16_C( 69.733), SIMDE_FLOAT16_C( 94.941), SIMDE_FLOAT16_C( 24.856), SIMDE_FLOAT16_C( 44.375) }, - { -SIMDE_FLOAT16_C( 68.226), SIMDE_FLOAT16_C( 55.813), SIMDE_FLOAT16_C( 87.435), SIMDE_FLOAT16_C( 80.882), - SIMDE_FLOAT16_C( 44.375), SIMDE_FLOAT16_C( 24.856), SIMDE_FLOAT16_C( 94.941), -SIMDE_FLOAT16_C( 69.733) } }, - { { SIMDE_FLOAT16_C( 48.888), -SIMDE_FLOAT16_C( 56.159), SIMDE_FLOAT16_C( 7.183), -SIMDE_FLOAT16_C( 75.051), - SIMDE_FLOAT16_C( 67.973), SIMDE_FLOAT16_C( 13.410), -SIMDE_FLOAT16_C( 45.628), SIMDE_FLOAT16_C( 45.377) }, - { -SIMDE_FLOAT16_C( 75.051), SIMDE_FLOAT16_C( 7.183), -SIMDE_FLOAT16_C( 56.159), SIMDE_FLOAT16_C( 48.888), - SIMDE_FLOAT16_C( 45.377), -SIMDE_FLOAT16_C( 45.628), SIMDE_FLOAT16_C( 13.410), SIMDE_FLOAT16_C( 67.973) } }, + { { SIMDE_FLOAT16_VALUE( 22.973), SIMDE_FLOAT16_VALUE( 82.785), SIMDE_FLOAT16_VALUE( - 87.788), SIMDE_FLOAT16_VALUE( 54.222), + SIMDE_FLOAT16_VALUE( - 79.878), SIMDE_FLOAT16_VALUE( 61.120), SIMDE_FLOAT16_VALUE( - 1.496), SIMDE_FLOAT16_VALUE( 87.003) }, + { SIMDE_FLOAT16_VALUE( 54.222), SIMDE_FLOAT16_VALUE( - 87.788), SIMDE_FLOAT16_VALUE( 82.785), SIMDE_FLOAT16_VALUE( 22.973), + SIMDE_FLOAT16_VALUE( 87.003), SIMDE_FLOAT16_VALUE( - 1.496), SIMDE_FLOAT16_VALUE( 61.120), SIMDE_FLOAT16_VALUE( - 79.878) } }, + { { SIMDE_FLOAT16_VALUE( 47.119), SIMDE_FLOAT16_VALUE( - 0.580), SIMDE_FLOAT16_VALUE( 95.794), SIMDE_FLOAT16_VALUE( - 97.960), + SIMDE_FLOAT16_VALUE( - 80.926), SIMDE_FLOAT16_VALUE( - 97.842), SIMDE_FLOAT16_VALUE( 16.229), SIMDE_FLOAT16_VALUE( 73.027) }, + { SIMDE_FLOAT16_VALUE( - 97.960), SIMDE_FLOAT16_VALUE( 95.794), SIMDE_FLOAT16_VALUE( - 0.580), SIMDE_FLOAT16_VALUE( 47.119), + SIMDE_FLOAT16_VALUE( 73.027), SIMDE_FLOAT16_VALUE( 16.229), SIMDE_FLOAT16_VALUE( - 97.842), SIMDE_FLOAT16_VALUE( - 80.926) } }, + { { SIMDE_FLOAT16_VALUE( 75.505), SIMDE_FLOAT16_VALUE( - 43.371), SIMDE_FLOAT16_VALUE( 75.338), SIMDE_FLOAT16_VALUE( - 74.826), + SIMDE_FLOAT16_VALUE( 63.128), SIMDE_FLOAT16_VALUE( 68.089), SIMDE_FLOAT16_VALUE( 68.500), SIMDE_FLOAT16_VALUE( - 98.789) }, + { SIMDE_FLOAT16_VALUE( - 74.826), SIMDE_FLOAT16_VALUE( 75.338), SIMDE_FLOAT16_VALUE( - 43.371), SIMDE_FLOAT16_VALUE( 75.505), + SIMDE_FLOAT16_VALUE( - 98.789), SIMDE_FLOAT16_VALUE( 68.500), SIMDE_FLOAT16_VALUE( 68.089), SIMDE_FLOAT16_VALUE( 63.128) } }, + { { SIMDE_FLOAT16_VALUE( 7.539), SIMDE_FLOAT16_VALUE( 5.867), SIMDE_FLOAT16_VALUE( 59.154), SIMDE_FLOAT16_VALUE( - 32.053), + SIMDE_FLOAT16_VALUE( - 73.720), SIMDE_FLOAT16_VALUE( 35.809), SIMDE_FLOAT16_VALUE( - 55.954), SIMDE_FLOAT16_VALUE( 35.526) }, + { SIMDE_FLOAT16_VALUE( - 32.053), SIMDE_FLOAT16_VALUE( 59.154), SIMDE_FLOAT16_VALUE( 5.867), SIMDE_FLOAT16_VALUE( 7.539), + SIMDE_FLOAT16_VALUE( 35.526), SIMDE_FLOAT16_VALUE( - 55.954), SIMDE_FLOAT16_VALUE( 35.809), SIMDE_FLOAT16_VALUE( - 73.720) } }, + { { SIMDE_FLOAT16_VALUE( - 39.271), SIMDE_FLOAT16_VALUE( 97.957), SIMDE_FLOAT16_VALUE( 84.789), SIMDE_FLOAT16_VALUE( - 41.728), + SIMDE_FLOAT16_VALUE( 93.209), SIMDE_FLOAT16_VALUE( - 50.250), SIMDE_FLOAT16_VALUE( 72.873), SIMDE_FLOAT16_VALUE( - 13.690) }, + { SIMDE_FLOAT16_VALUE( - 41.728), SIMDE_FLOAT16_VALUE( 84.789), SIMDE_FLOAT16_VALUE( 97.957), SIMDE_FLOAT16_VALUE( - 39.271), + SIMDE_FLOAT16_VALUE( - 13.690), SIMDE_FLOAT16_VALUE( 72.873), SIMDE_FLOAT16_VALUE( - 50.250), SIMDE_FLOAT16_VALUE( 93.209) } }, + { { SIMDE_FLOAT16_VALUE( - 18.105), SIMDE_FLOAT16_VALUE( - 27.704), SIMDE_FLOAT16_VALUE( 34.737), SIMDE_FLOAT16_VALUE( - 86.956), + SIMDE_FLOAT16_VALUE( 49.374), SIMDE_FLOAT16_VALUE( 11.743), SIMDE_FLOAT16_VALUE( - 98.777), SIMDE_FLOAT16_VALUE( 42.229) }, + { SIMDE_FLOAT16_VALUE( - 86.956), SIMDE_FLOAT16_VALUE( 34.737), SIMDE_FLOAT16_VALUE( - 27.704), SIMDE_FLOAT16_VALUE( - 18.105), + SIMDE_FLOAT16_VALUE( 42.229), SIMDE_FLOAT16_VALUE( - 98.777), SIMDE_FLOAT16_VALUE( 11.743), SIMDE_FLOAT16_VALUE( 49.374) } }, + { { SIMDE_FLOAT16_VALUE( 80.882), SIMDE_FLOAT16_VALUE( 87.435), SIMDE_FLOAT16_VALUE( 55.813), SIMDE_FLOAT16_VALUE( - 68.226), + SIMDE_FLOAT16_VALUE( - 69.733), SIMDE_FLOAT16_VALUE( 94.941), SIMDE_FLOAT16_VALUE( 24.856), SIMDE_FLOAT16_VALUE( 44.375) }, + { SIMDE_FLOAT16_VALUE( - 68.226), SIMDE_FLOAT16_VALUE( 55.813), SIMDE_FLOAT16_VALUE( 87.435), SIMDE_FLOAT16_VALUE( 80.882), + SIMDE_FLOAT16_VALUE( 44.375), SIMDE_FLOAT16_VALUE( 24.856), SIMDE_FLOAT16_VALUE( 94.941), SIMDE_FLOAT16_VALUE( - 69.733) } }, + { { SIMDE_FLOAT16_VALUE( 48.888), SIMDE_FLOAT16_VALUE( - 56.159), SIMDE_FLOAT16_VALUE( 7.183), SIMDE_FLOAT16_VALUE( - 75.051), + SIMDE_FLOAT16_VALUE( 67.973), SIMDE_FLOAT16_VALUE( 13.410), SIMDE_FLOAT16_VALUE( - 45.628), SIMDE_FLOAT16_VALUE( 45.377) }, + { SIMDE_FLOAT16_VALUE( - 75.051), SIMDE_FLOAT16_VALUE( 7.183), SIMDE_FLOAT16_VALUE( - 56.159), SIMDE_FLOAT16_VALUE( 48.888), + SIMDE_FLOAT16_VALUE( 45.377), SIMDE_FLOAT16_VALUE( - 45.628), SIMDE_FLOAT16_VALUE( 13.410), SIMDE_FLOAT16_VALUE( 67.973) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -719,6 +730,18 @@ test_simde_vrev64q_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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 r = simde_vrev64q_f16(a); + + simde_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/rsubhn.c b/test/arm/neon/rsubhn.c index 7441b9e1f..0b80209ca 100644 --- a/test/arm/neon/rsubhn.c +++ b/test/arm/neon/rsubhn.c @@ -5,6 +5,7 @@ static int test_simde_vrsubhn_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t a[8]; int16_t b[8]; @@ -45,10 +46,25 @@ test_simde_vrsubhn_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int8x8_t r = simde_vrsubhn_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t a[4]; int32_t b[4]; @@ -89,10 +105,25 @@ test_simde_vrsubhn_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int16x4_t r = simde_vrsubhn_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int64_t a[2]; int64_t b[2]; @@ -133,10 +164,25 @@ test_simde_vrsubhn_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int32x2_t r = simde_vrsubhn_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t a[8]; uint16_t b[8]; @@ -177,10 +223,25 @@ test_simde_vrsubhn_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint8x8_t r = simde_vrsubhn_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t a[4]; uint32_t b[4]; @@ -221,10 +282,25 @@ test_simde_vrsubhn_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint16x4_t r = simde_vrsubhn_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint64_t a[2]; uint64_t b[2]; @@ -265,6 +341,20 @@ test_simde_vrsubhn_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint32x2_t r = simde_vrsubhn_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/rsubhn_high.c b/test/arm/neon/rsubhn_high.c index 5456d153b..fb0a3e0a5 100644 --- a/test/arm/neon/rsubhn_high.c +++ b/test/arm/neon/rsubhn_high.c @@ -5,6 +5,7 @@ static int test_simde_vrsubhn_high_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int8_t r_[8]; int16_t a[8]; @@ -55,10 +56,27 @@ test_simde_vrsubhn_high_s16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int8x8_t r_ = simde_test_arm_neon_random_i8x8(); + simde_int16x8_t a = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int8x16_t r = simde_vrsubhn_high_s16(r_, a, b); + + simde_test_arm_neon_write_i8x8(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_high_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int16_t r_[4]; int32_t a[4]; @@ -109,10 +127,27 @@ test_simde_vrsubhn_high_s32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int16x4_t r_ = simde_test_arm_neon_random_i16x4(); + simde_int32x4_t a = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int16x8_t r = simde_vrsubhn_high_s32(r_, a, b); + + simde_test_arm_neon_write_i16x4(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_high_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { int32_t r_[2]; int64_t a[2]; @@ -163,10 +198,27 @@ test_simde_vrsubhn_high_s64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_int32x2_t r_ = simde_test_arm_neon_random_i32x2(); + simde_int64x2_t a = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int32x4_t r = simde_vrsubhn_high_s64(r_, a, b); + + simde_test_arm_neon_write_i32x2(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_high_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint8_t r_[8]; uint16_t a[8]; @@ -217,10 +269,27 @@ test_simde_vrsubhn_high_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t r_ = simde_test_arm_neon_random_u8x8(); + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint8x16_t r = simde_vrsubhn_high_u16(r_, a, b); + + simde_test_arm_neon_write_u8x8(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_high_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint16_t r_[4]; uint32_t a[4]; @@ -271,10 +340,27 @@ test_simde_vrsubhn_high_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t r_ = simde_test_arm_neon_random_u16x4(); + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint16x8_t r = simde_vrsubhn_high_u32(r_, a, b); + + simde_test_arm_neon_write_u16x4(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vrsubhn_high_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 static const struct { uint32_t r_[2]; uint64_t a[2]; @@ -325,6 +411,22 @@ test_simde_vrsubhn_high_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t r_ = simde_test_arm_neon_random_u32x2(); + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint32x4_t r = simde_vrsubhn_high_u64(r_, a, b); + + simde_test_arm_neon_write_u32x2(2, r_, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } diff --git a/test/arm/neon/st1_lane.c b/test/arm/neon/st1_lane.c index fa0c0b73f..711360aab 100644 --- a/test/arm/neon/st1_lane.c +++ b/test/arm/neon/st1_lane.c @@ -8,34 +8,34 @@ SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ static int test_simde_vst1_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16 a; simde_float16 val[4]; int lane; } test_vec[] = { - { SIMDE_FLOAT16_C( 85.175), - { SIMDE_FLOAT16_C( 1.091), -SIMDE_FLOAT16_C( 78.385), SIMDE_FLOAT16_C( 23.855), SIMDE_FLOAT16_C( 85.175) }, + { SIMDE_FLOAT16_VALUE( 85.175), + { SIMDE_FLOAT16_VALUE( 1.091), SIMDE_FLOAT16_VALUE( - 78.385), SIMDE_FLOAT16_VALUE( 23.855), SIMDE_FLOAT16_VALUE( 85.175) }, INT8_C( 3) }, - { -SIMDE_FLOAT16_C( 64.034), - { -SIMDE_FLOAT16_C( 64.034), -SIMDE_FLOAT16_C( 51.901), -SIMDE_FLOAT16_C( 47.801), -SIMDE_FLOAT16_C( 74.037) }, + { SIMDE_FLOAT16_VALUE( - 64.034), + { SIMDE_FLOAT16_VALUE( - 64.034), SIMDE_FLOAT16_VALUE( - 51.901), SIMDE_FLOAT16_VALUE( - 47.801), SIMDE_FLOAT16_VALUE( - 74.037) }, INT8_C( 0) }, - { SIMDE_FLOAT16_C( 99.952), - { SIMDE_FLOAT16_C( 31.399), -SIMDE_FLOAT16_C( 69.493), SIMDE_FLOAT16_C( 39.299), SIMDE_FLOAT16_C( 99.952) }, + { SIMDE_FLOAT16_VALUE( 99.952), + { SIMDE_FLOAT16_VALUE( 31.399), SIMDE_FLOAT16_VALUE( - 69.493), SIMDE_FLOAT16_VALUE( 39.299), SIMDE_FLOAT16_VALUE( 99.952) }, INT8_C( 3) }, - { -SIMDE_FLOAT16_C( 55.804), - { SIMDE_FLOAT16_C( 31.333), -SIMDE_FLOAT16_C( 55.804), -SIMDE_FLOAT16_C( 16.597), -SIMDE_FLOAT16_C( 83.723) }, + { SIMDE_FLOAT16_VALUE( - 55.804), + { SIMDE_FLOAT16_VALUE( 31.333), SIMDE_FLOAT16_VALUE( - 55.804), SIMDE_FLOAT16_VALUE( - 16.597), SIMDE_FLOAT16_VALUE( - 83.723) }, INT8_C( 1) }, - { -SIMDE_FLOAT16_C( 89.293), - { -SIMDE_FLOAT16_C( 29.785), -SIMDE_FLOAT16_C( 89.293), -SIMDE_FLOAT16_C( 65.019), -SIMDE_FLOAT16_C( 74.124) }, + { SIMDE_FLOAT16_VALUE( - 89.293), + { SIMDE_FLOAT16_VALUE( - 29.785), SIMDE_FLOAT16_VALUE( - 89.293), SIMDE_FLOAT16_VALUE( - 65.019), SIMDE_FLOAT16_VALUE( - 74.124) }, INT8_C( 1) }, - { SIMDE_FLOAT16_C( 81.242), - { SIMDE_FLOAT16_C( 26.817), -SIMDE_FLOAT16_C( 9.372), SIMDE_FLOAT16_C( 43.833), SIMDE_FLOAT16_C( 81.242) }, + { SIMDE_FLOAT16_VALUE( 81.242), + { SIMDE_FLOAT16_VALUE( 26.817), SIMDE_FLOAT16_VALUE( - 9.372), SIMDE_FLOAT16_VALUE( 43.833), SIMDE_FLOAT16_VALUE( 81.242) }, INT8_C( 3) }, - { -SIMDE_FLOAT16_C( 59.960), - { SIMDE_FLOAT16_C( 5.886), -SIMDE_FLOAT16_C( 59.960), -SIMDE_FLOAT16_C( 88.952), -SIMDE_FLOAT16_C( 12.921) }, + { SIMDE_FLOAT16_VALUE( - 59.960), + { SIMDE_FLOAT16_VALUE( 5.886), SIMDE_FLOAT16_VALUE( - 59.960), SIMDE_FLOAT16_VALUE( - 88.952), SIMDE_FLOAT16_VALUE( - 12.921) }, INT8_C( 1) }, - { -SIMDE_FLOAT16_C( 86.830), - { -SIMDE_FLOAT16_C( 90.057), SIMDE_FLOAT16_C( 75.838), -SIMDE_FLOAT16_C( 86.830), SIMDE_FLOAT16_C( 59.157) }, + { SIMDE_FLOAT16_VALUE( - 86.830), + { SIMDE_FLOAT16_VALUE( - 90.057), SIMDE_FLOAT16_VALUE( 75.838), SIMDE_FLOAT16_VALUE( - 86.830), SIMDE_FLOAT16_VALUE( 59.157) }, INT8_C( 2) }, }; @@ -624,42 +624,42 @@ test_simde_vst1_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst1q_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16 a; simde_float16 val[8]; int lane; } test_vec[] = { - { -SIMDE_FLOAT16_C( 64.026), - { SIMDE_FLOAT16_C( 77.636), -SIMDE_FLOAT16_C( 64.026), -SIMDE_FLOAT16_C( 11.443), -SIMDE_FLOAT16_C( 39.884), - -SIMDE_FLOAT16_C( 87.713), -SIMDE_FLOAT16_C( 22.005), SIMDE_FLOAT16_C( 71.493), SIMDE_FLOAT16_C( 94.947) }, + { SIMDE_FLOAT16_VALUE( - 64.026), + { SIMDE_FLOAT16_VALUE( 77.636), SIMDE_FLOAT16_VALUE( - 64.026), SIMDE_FLOAT16_VALUE( - 11.443), SIMDE_FLOAT16_VALUE( - 39.884), + SIMDE_FLOAT16_VALUE( - 87.713), SIMDE_FLOAT16_VALUE( - 22.005), SIMDE_FLOAT16_VALUE( 71.493), SIMDE_FLOAT16_VALUE( 94.947) }, INT8_C( 1) }, - { SIMDE_FLOAT16_C( 63.436), - { SIMDE_FLOAT16_C( 63.436), -SIMDE_FLOAT16_C( 60.792), SIMDE_FLOAT16_C( 3.439), SIMDE_FLOAT16_C( 69.299), - SIMDE_FLOAT16_C( 60.921), -SIMDE_FLOAT16_C( 17.081), SIMDE_FLOAT16_C( 12.053), -SIMDE_FLOAT16_C( 66.784) }, + { SIMDE_FLOAT16_VALUE( 63.436), + { SIMDE_FLOAT16_VALUE( 63.436), SIMDE_FLOAT16_VALUE( - 60.792), SIMDE_FLOAT16_VALUE( 3.439), SIMDE_FLOAT16_VALUE( 69.299), + SIMDE_FLOAT16_VALUE( 60.921), SIMDE_FLOAT16_VALUE( - 17.081), SIMDE_FLOAT16_VALUE( 12.053), SIMDE_FLOAT16_VALUE( - 66.784) }, INT8_C( 0) }, - { SIMDE_FLOAT16_C( 32.004), - { SIMDE_FLOAT16_C( 49.966), SIMDE_FLOAT16_C( 90.559), -SIMDE_FLOAT16_C( 6.561), -SIMDE_FLOAT16_C( 4.223), - SIMDE_FLOAT16_C( 32.004), SIMDE_FLOAT16_C( 31.066), SIMDE_FLOAT16_C( 60.932), -SIMDE_FLOAT16_C( 85.011) }, + { SIMDE_FLOAT16_VALUE( 32.004), + { SIMDE_FLOAT16_VALUE( 49.966), SIMDE_FLOAT16_VALUE( 90.559), SIMDE_FLOAT16_VALUE( - 6.561), SIMDE_FLOAT16_VALUE( - 4.223), + SIMDE_FLOAT16_VALUE( 32.004), SIMDE_FLOAT16_VALUE( 31.066), SIMDE_FLOAT16_VALUE( 60.932), SIMDE_FLOAT16_VALUE( - 85.011) }, INT8_C( 4) }, - { -SIMDE_FLOAT16_C( 56.576), - { SIMDE_FLOAT16_C( 18.785), -SIMDE_FLOAT16_C( 14.403), SIMDE_FLOAT16_C( 43.277), SIMDE_FLOAT16_C( 82.202), - SIMDE_FLOAT16_C( 72.540), SIMDE_FLOAT16_C( 14.761), -SIMDE_FLOAT16_C( 56.576), -SIMDE_FLOAT16_C( 71.628) }, + { SIMDE_FLOAT16_VALUE( - 56.576), + { SIMDE_FLOAT16_VALUE( 18.785), SIMDE_FLOAT16_VALUE( - 14.403), SIMDE_FLOAT16_VALUE( 43.277), SIMDE_FLOAT16_VALUE( 82.202), + SIMDE_FLOAT16_VALUE( 72.540), SIMDE_FLOAT16_VALUE( 14.761), SIMDE_FLOAT16_VALUE( - 56.576), SIMDE_FLOAT16_VALUE( - 71.628) }, INT8_C( 6) }, - { -SIMDE_FLOAT16_C( 76.518), - { SIMDE_FLOAT16_C( 96.881), -SIMDE_FLOAT16_C( 76.518), SIMDE_FLOAT16_C( 80.572), SIMDE_FLOAT16_C( 23.751), - -SIMDE_FLOAT16_C( 89.697), SIMDE_FLOAT16_C( 42.687), -SIMDE_FLOAT16_C( 55.036), SIMDE_FLOAT16_C( 46.427) }, + { SIMDE_FLOAT16_VALUE( - 76.518), + { SIMDE_FLOAT16_VALUE( 96.881), SIMDE_FLOAT16_VALUE( - 76.518), SIMDE_FLOAT16_VALUE( 80.572), SIMDE_FLOAT16_VALUE( 23.751), + SIMDE_FLOAT16_VALUE( - 89.697), SIMDE_FLOAT16_VALUE( 42.687), SIMDE_FLOAT16_VALUE( - 55.036), SIMDE_FLOAT16_VALUE( 46.427) }, INT8_C( 1) }, - { -SIMDE_FLOAT16_C( 91.933), - { -SIMDE_FLOAT16_C( 5.377), SIMDE_FLOAT16_C( 33.082), SIMDE_FLOAT16_C( 34.890), -SIMDE_FLOAT16_C( 91.933), - SIMDE_FLOAT16_C( 93.006), -SIMDE_FLOAT16_C( 95.231), SIMDE_FLOAT16_C( 89.548), SIMDE_FLOAT16_C( 25.629) }, + { SIMDE_FLOAT16_VALUE( - 91.933), + { SIMDE_FLOAT16_VALUE( - 5.377), SIMDE_FLOAT16_VALUE( 33.082), SIMDE_FLOAT16_VALUE( 34.890), SIMDE_FLOAT16_VALUE( - 91.933), + SIMDE_FLOAT16_VALUE( 93.006), SIMDE_FLOAT16_VALUE( - 95.231), SIMDE_FLOAT16_VALUE( 89.548), SIMDE_FLOAT16_VALUE( 25.629) }, INT8_C( 3) }, - { -SIMDE_FLOAT16_C( 36.496), - { -SIMDE_FLOAT16_C( 23.493), -SIMDE_FLOAT16_C( 36.496), SIMDE_FLOAT16_C( 87.220), SIMDE_FLOAT16_C( 52.231), - SIMDE_FLOAT16_C( 16.211), SIMDE_FLOAT16_C( 42.745), -SIMDE_FLOAT16_C( 69.936), -SIMDE_FLOAT16_C( 27.078) }, + { SIMDE_FLOAT16_VALUE( - 36.496), + { SIMDE_FLOAT16_VALUE( - 23.493), SIMDE_FLOAT16_VALUE( - 36.496), SIMDE_FLOAT16_VALUE( 87.220), SIMDE_FLOAT16_VALUE( 52.231), + SIMDE_FLOAT16_VALUE( 16.211), SIMDE_FLOAT16_VALUE( 42.745), SIMDE_FLOAT16_VALUE( - 69.936), SIMDE_FLOAT16_VALUE( - 27.078) }, INT8_C( 1) }, - { -SIMDE_FLOAT16_C( 88.096), - { -SIMDE_FLOAT16_C( 89.050), -SIMDE_FLOAT16_C( 75.299), -SIMDE_FLOAT16_C( 44.416), -SIMDE_FLOAT16_C( 88.096), - -SIMDE_FLOAT16_C( 91.574), -SIMDE_FLOAT16_C( 27.581), -SIMDE_FLOAT16_C( 28.933), -SIMDE_FLOAT16_C( 97.993) }, + { SIMDE_FLOAT16_VALUE( - 88.096), + { SIMDE_FLOAT16_VALUE( - 89.050), SIMDE_FLOAT16_VALUE( - 75.299), SIMDE_FLOAT16_VALUE( - 44.416), SIMDE_FLOAT16_VALUE( - 88.096), + SIMDE_FLOAT16_VALUE( - 91.574), SIMDE_FLOAT16_VALUE( - 27.581), SIMDE_FLOAT16_VALUE( - 28.933), SIMDE_FLOAT16_VALUE( - 97.993) }, INT8_C( 3) }, }; diff --git a/test/arm/neon/st1_x2.c b/test/arm/neon/st1_x2.c index 3df643f86..05ee2daca 100644 --- a/test/arm/neon/st1_x2.c +++ b/test/arm/neon/st1_x2.c @@ -7,34 +7,35 @@ static int test_simde_vst1_f16_x2 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 val[2][4]; simde_float16 r[8]; } test_vec[] = { - { { { -SIMDE_FLOAT16_VALUE( 49.565), -SIMDE_FLOAT16_VALUE( 3.779), -SIMDE_FLOAT16_VALUE( 4.526), SIMDE_FLOAT16_VALUE( 54.137) }, - { SIMDE_FLOAT16_VALUE( 93.243), SIMDE_FLOAT16_VALUE( 77.887), SIMDE_FLOAT16_VALUE( 67.064), -SIMDE_FLOAT16_VALUE( 88.528) } }, - { -SIMDE_FLOAT16_VALUE( 49.565), -SIMDE_FLOAT16_VALUE( 3.779), -SIMDE_FLOAT16_VALUE( 4.526), SIMDE_FLOAT16_VALUE( 54.137), SIMDE_FLOAT16_VALUE( 93.243), SIMDE_FLOAT16_VALUE( 77.887), SIMDE_FLOAT16_VALUE( 67.064), -SIMDE_FLOAT16_VALUE( 88.528) } }, - { { { -SIMDE_FLOAT16_VALUE( 20.795), SIMDE_FLOAT16_VALUE( 75.008), -SIMDE_FLOAT16_VALUE( 10.786), SIMDE_FLOAT16_VALUE( 61.695) }, - { -SIMDE_FLOAT16_VALUE( 13.619), SIMDE_FLOAT16_VALUE( 27.128), -SIMDE_FLOAT16_VALUE( 26.152), SIMDE_FLOAT16_VALUE( 86.900) } }, - { -SIMDE_FLOAT16_VALUE( 20.795), SIMDE_FLOAT16_VALUE( 75.008), -SIMDE_FLOAT16_VALUE( 10.786), SIMDE_FLOAT16_VALUE( 61.695), -SIMDE_FLOAT16_VALUE( 13.619), SIMDE_FLOAT16_VALUE( 27.128), -SIMDE_FLOAT16_VALUE( 26.152), SIMDE_FLOAT16_VALUE( 86.900) } }, - { { { SIMDE_FLOAT16_VALUE( 2.070), SIMDE_FLOAT16_VALUE( 76.065), -SIMDE_FLOAT16_VALUE( 55.688), SIMDE_FLOAT16_VALUE( 21.829) }, - { -SIMDE_FLOAT16_VALUE( 92.596), SIMDE_FLOAT16_VALUE( 28.101), -SIMDE_FLOAT16_VALUE( 53.959), -SIMDE_FLOAT16_VALUE( 93.775) } }, - { SIMDE_FLOAT16_VALUE( 2.070), SIMDE_FLOAT16_VALUE( 76.065), -SIMDE_FLOAT16_VALUE( 55.688), SIMDE_FLOAT16_VALUE( 21.829), -SIMDE_FLOAT16_VALUE( 92.596), SIMDE_FLOAT16_VALUE( 28.101), -SIMDE_FLOAT16_VALUE( 53.959), -SIMDE_FLOAT16_VALUE( 93.775) } }, + { { { SIMDE_FLOAT16_VALUE( - 49.565), SIMDE_FLOAT16_VALUE( - 3.779), SIMDE_FLOAT16_VALUE( - 4.526), SIMDE_FLOAT16_VALUE( 54.137) }, + { SIMDE_FLOAT16_VALUE( 93.243), SIMDE_FLOAT16_VALUE( 77.887), SIMDE_FLOAT16_VALUE( 67.064), SIMDE_FLOAT16_VALUE( - 88.528) } }, + { SIMDE_FLOAT16_VALUE( - 49.565), SIMDE_FLOAT16_VALUE( - 3.779), SIMDE_FLOAT16_VALUE( - 4.526), SIMDE_FLOAT16_VALUE( 54.137), SIMDE_FLOAT16_VALUE( 93.243), SIMDE_FLOAT16_VALUE( 77.887), SIMDE_FLOAT16_VALUE( 67.064), SIMDE_FLOAT16_VALUE( - 88.528) } }, + { { { SIMDE_FLOAT16_VALUE( - 20.795), SIMDE_FLOAT16_VALUE( 75.008), SIMDE_FLOAT16_VALUE( - 10.786), SIMDE_FLOAT16_VALUE( 61.695) }, + { SIMDE_FLOAT16_VALUE( - 13.619), SIMDE_FLOAT16_VALUE( 27.128), SIMDE_FLOAT16_VALUE( - 26.152), SIMDE_FLOAT16_VALUE( 86.900) } }, + { SIMDE_FLOAT16_VALUE( - 20.795), SIMDE_FLOAT16_VALUE( 75.008), SIMDE_FLOAT16_VALUE( - 10.786), SIMDE_FLOAT16_VALUE( 61.695), SIMDE_FLOAT16_VALUE( - 13.619), SIMDE_FLOAT16_VALUE( 27.128), SIMDE_FLOAT16_VALUE( - 26.152), SIMDE_FLOAT16_VALUE( 86.900) } }, + { { { SIMDE_FLOAT16_VALUE( 2.070), SIMDE_FLOAT16_VALUE( 76.065), SIMDE_FLOAT16_VALUE( - 55.688), SIMDE_FLOAT16_VALUE( 21.829) }, + { SIMDE_FLOAT16_VALUE( - 92.596), SIMDE_FLOAT16_VALUE( 28.101), SIMDE_FLOAT16_VALUE( - 53.959), SIMDE_FLOAT16_VALUE( - 93.775) } }, + { SIMDE_FLOAT16_VALUE( 2.070), SIMDE_FLOAT16_VALUE( 76.065), SIMDE_FLOAT16_VALUE( - 55.688), SIMDE_FLOAT16_VALUE( 21.829), SIMDE_FLOAT16_VALUE( - 92.596), SIMDE_FLOAT16_VALUE( 28.101), SIMDE_FLOAT16_VALUE( - 53.959), SIMDE_FLOAT16_VALUE( - 93.775) } }, { { { SIMDE_FLOAT16_VALUE( 35.951), SIMDE_FLOAT16_VALUE( 62.015), SIMDE_FLOAT16_VALUE( 90.532), SIMDE_FLOAT16_VALUE( 31.925) }, - { -SIMDE_FLOAT16_VALUE( 46.722), -SIMDE_FLOAT16_VALUE( 97.917), SIMDE_FLOAT16_VALUE( 38.448), -SIMDE_FLOAT16_VALUE( 24.373) } }, - { SIMDE_FLOAT16_VALUE( 35.951), SIMDE_FLOAT16_VALUE( 62.015), SIMDE_FLOAT16_VALUE( 90.532), SIMDE_FLOAT16_VALUE( 31.925), -SIMDE_FLOAT16_VALUE( 46.722), -SIMDE_FLOAT16_VALUE( 97.917), SIMDE_FLOAT16_VALUE( 38.448), -SIMDE_FLOAT16_VALUE( 24.373) } }, - { { { -SIMDE_FLOAT16_VALUE( 51.687), SIMDE_FLOAT16_VALUE( 48.322), SIMDE_FLOAT16_VALUE( 69.086), -SIMDE_FLOAT16_VALUE( 54.351) }, - { -SIMDE_FLOAT16_VALUE( 64.082), -SIMDE_FLOAT16_VALUE( 98.147), -SIMDE_FLOAT16_VALUE( 46.114), -SIMDE_FLOAT16_VALUE( 18.794) } }, - { -SIMDE_FLOAT16_VALUE( 51.687), SIMDE_FLOAT16_VALUE( 48.322), SIMDE_FLOAT16_VALUE( 69.086), -SIMDE_FLOAT16_VALUE( 54.351), -SIMDE_FLOAT16_VALUE( 64.082), -SIMDE_FLOAT16_VALUE( 98.147), -SIMDE_FLOAT16_VALUE( 46.114), -SIMDE_FLOAT16_VALUE( 18.794) } }, - { { { SIMDE_FLOAT16_VALUE( 68.290), SIMDE_FLOAT16_VALUE( 85.741), -SIMDE_FLOAT16_VALUE( 41.817), -SIMDE_FLOAT16_VALUE( 53.220) }, - { -SIMDE_FLOAT16_VALUE( 75.047), SIMDE_FLOAT16_VALUE( 76.317), -SIMDE_FLOAT16_VALUE( 59.770), SIMDE_FLOAT16_VALUE( 34.185) } }, - { SIMDE_FLOAT16_VALUE( 68.290), SIMDE_FLOAT16_VALUE( 85.741), -SIMDE_FLOAT16_VALUE( 41.817), -SIMDE_FLOAT16_VALUE( 53.220), -SIMDE_FLOAT16_VALUE( 75.047), SIMDE_FLOAT16_VALUE( 76.317), -SIMDE_FLOAT16_VALUE( 59.770), SIMDE_FLOAT16_VALUE( 34.185) } }, - { { { -SIMDE_FLOAT16_VALUE( 15.653), -SIMDE_FLOAT16_VALUE( 73.326), -SIMDE_FLOAT16_VALUE( 11.883), -SIMDE_FLOAT16_VALUE( 37.580) }, - { -SIMDE_FLOAT16_VALUE( 25.858), -SIMDE_FLOAT16_VALUE( 61.674), SIMDE_FLOAT16_VALUE( 40.814), -SIMDE_FLOAT16_VALUE( 12.611) } }, - { -SIMDE_FLOAT16_VALUE( 15.653), -SIMDE_FLOAT16_VALUE( 73.326), -SIMDE_FLOAT16_VALUE( 11.883), -SIMDE_FLOAT16_VALUE( 37.580), -SIMDE_FLOAT16_VALUE( 25.858), -SIMDE_FLOAT16_VALUE( 61.674), SIMDE_FLOAT16_VALUE( 40.814), -SIMDE_FLOAT16_VALUE( 12.611) } }, - { { { -SIMDE_FLOAT16_VALUE( 22.246), -SIMDE_FLOAT16_VALUE( 57.414), -SIMDE_FLOAT16_VALUE( 85.821), SIMDE_FLOAT16_VALUE( 94.244) }, - { -SIMDE_FLOAT16_VALUE( 24.985), SIMDE_FLOAT16_VALUE( 26.320), SIMDE_FLOAT16_VALUE( 45.671), SIMDE_FLOAT16_VALUE( 30.999) } }, - { -SIMDE_FLOAT16_VALUE( 22.246), -SIMDE_FLOAT16_VALUE( 57.414), -SIMDE_FLOAT16_VALUE( 85.821), SIMDE_FLOAT16_VALUE( 94.244), -SIMDE_FLOAT16_VALUE( 24.985), SIMDE_FLOAT16_VALUE( 26.320), SIMDE_FLOAT16_VALUE( 45.671), SIMDE_FLOAT16_VALUE( 30.999) } }, + { SIMDE_FLOAT16_VALUE( - 46.722), SIMDE_FLOAT16_VALUE( - 97.917), SIMDE_FLOAT16_VALUE( 38.448), SIMDE_FLOAT16_VALUE( - 24.373) } }, + { SIMDE_FLOAT16_VALUE( 35.951), SIMDE_FLOAT16_VALUE( 62.015), SIMDE_FLOAT16_VALUE( 90.532), SIMDE_FLOAT16_VALUE( 31.925), SIMDE_FLOAT16_VALUE( - 46.722), SIMDE_FLOAT16_VALUE( - 97.917), SIMDE_FLOAT16_VALUE( 38.448), SIMDE_FLOAT16_VALUE( - 24.373) } }, + { { { SIMDE_FLOAT16_VALUE( - 51.687), SIMDE_FLOAT16_VALUE( 48.322), SIMDE_FLOAT16_VALUE( 69.086), SIMDE_FLOAT16_VALUE( - 54.351) }, + { SIMDE_FLOAT16_VALUE( - 64.082), SIMDE_FLOAT16_VALUE( - 98.147), SIMDE_FLOAT16_VALUE( - 46.114), SIMDE_FLOAT16_VALUE( - 18.794) } }, + { SIMDE_FLOAT16_VALUE( - 51.687), SIMDE_FLOAT16_VALUE( 48.322), SIMDE_FLOAT16_VALUE( 69.086), SIMDE_FLOAT16_VALUE( - 54.351), SIMDE_FLOAT16_VALUE( - 64.082), SIMDE_FLOAT16_VALUE( - 98.147), SIMDE_FLOAT16_VALUE( - 46.114), SIMDE_FLOAT16_VALUE( - 18.794) } }, + { { { SIMDE_FLOAT16_VALUE( 68.290), SIMDE_FLOAT16_VALUE( 85.741), SIMDE_FLOAT16_VALUE( - 41.817), SIMDE_FLOAT16_VALUE( - 53.220) }, + { SIMDE_FLOAT16_VALUE( - 75.047), SIMDE_FLOAT16_VALUE( 76.317), SIMDE_FLOAT16_VALUE( - 59.770), SIMDE_FLOAT16_VALUE( 34.185) } }, + { SIMDE_FLOAT16_VALUE( 68.290), SIMDE_FLOAT16_VALUE( 85.741), SIMDE_FLOAT16_VALUE( - 41.817), SIMDE_FLOAT16_VALUE( - 53.220), SIMDE_FLOAT16_VALUE( - 75.047), SIMDE_FLOAT16_VALUE( 76.317), SIMDE_FLOAT16_VALUE( - 59.770), SIMDE_FLOAT16_VALUE( 34.185) } }, + { { { SIMDE_FLOAT16_VALUE( - 15.653), SIMDE_FLOAT16_VALUE( - 73.326), SIMDE_FLOAT16_VALUE( - 11.883), SIMDE_FLOAT16_VALUE( - 37.580) }, + { SIMDE_FLOAT16_VALUE( - 25.858), SIMDE_FLOAT16_VALUE( - 61.674), SIMDE_FLOAT16_VALUE( 40.814), SIMDE_FLOAT16_VALUE( - 12.611) } }, + { SIMDE_FLOAT16_VALUE( - 15.653), SIMDE_FLOAT16_VALUE( - 73.326), SIMDE_FLOAT16_VALUE( - 11.883), SIMDE_FLOAT16_VALUE( - 37.580), SIMDE_FLOAT16_VALUE( - 25.858), SIMDE_FLOAT16_VALUE( - 61.674), SIMDE_FLOAT16_VALUE( 40.814), SIMDE_FLOAT16_VALUE( - 12.611) } }, + { { { SIMDE_FLOAT16_VALUE( - 22.246), SIMDE_FLOAT16_VALUE( - 57.414), SIMDE_FLOAT16_VALUE( - 85.821), SIMDE_FLOAT16_VALUE( 94.244) }, + { SIMDE_FLOAT16_VALUE( - 24.985), SIMDE_FLOAT16_VALUE( 26.320), SIMDE_FLOAT16_VALUE( 45.671), SIMDE_FLOAT16_VALUE( 30.999) } }, + { SIMDE_FLOAT16_VALUE( - 22.246), SIMDE_FLOAT16_VALUE( - 57.414), SIMDE_FLOAT16_VALUE( - 85.821), SIMDE_FLOAT16_VALUE( 94.244), SIMDE_FLOAT16_VALUE( - 24.985), SIMDE_FLOAT16_VALUE( 26.320), SIMDE_FLOAT16_VALUE( 45.671), SIMDE_FLOAT16_VALUE( 30.999) } }, }; for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { @@ -48,6 +49,18 @@ test_simde_vst1_f16_x2 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x2_t val[2] = simde_test_arm_neon_random_f16x2(-100.0f, 100.0f); + simde_float16x8_t r = simde_vst1_f16_x2(val[2]); + + simde_test_arm_neon_write_f16x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st1_x3.c b/test/arm/neon/st1_x3.c index 32ba5f25a..0f5441643 100644 --- a/test/arm/neon/st1_x3.c +++ b/test/arm/neon/st1_x3.c @@ -7,58 +7,59 @@ static int test_simde_vst1_f16_x3 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 val[3][4]; simde_float16 r[12]; } test_vec[] = { - { { { SIMDE_FLOAT16_VALUE( 29.597), -SIMDE_FLOAT16_VALUE( 97.375), -SIMDE_FLOAT16_VALUE( 37.290), SIMDE_FLOAT16_VALUE( 83.451) }, - { SIMDE_FLOAT16_VALUE( 58.071), SIMDE_FLOAT16_VALUE( 9.615), -SIMDE_FLOAT16_VALUE( 92.703), -SIMDE_FLOAT16_VALUE( 13.746) }, + { { { SIMDE_FLOAT16_VALUE( 29.597), SIMDE_FLOAT16_VALUE( - 97.375), SIMDE_FLOAT16_VALUE( - 37.290), SIMDE_FLOAT16_VALUE( 83.451) }, + { SIMDE_FLOAT16_VALUE( 58.071), SIMDE_FLOAT16_VALUE( 9.615), SIMDE_FLOAT16_VALUE( - 92.703), SIMDE_FLOAT16_VALUE( - 13.746) }, { SIMDE_FLOAT16_VALUE( 82.251), SIMDE_FLOAT16_VALUE( 31.216), SIMDE_FLOAT16_VALUE( 5.814), SIMDE_FLOAT16_VALUE( 14.340) } }, - { SIMDE_FLOAT16_VALUE( 29.597), -SIMDE_FLOAT16_VALUE( 97.375), -SIMDE_FLOAT16_VALUE( 37.290), SIMDE_FLOAT16_VALUE( 83.451), - SIMDE_FLOAT16_VALUE( 58.071), SIMDE_FLOAT16_VALUE( 9.615), -SIMDE_FLOAT16_VALUE( 92.703), -SIMDE_FLOAT16_VALUE( 13.746), + { SIMDE_FLOAT16_VALUE( 29.597), SIMDE_FLOAT16_VALUE( - 97.375), SIMDE_FLOAT16_VALUE( - 37.290), SIMDE_FLOAT16_VALUE( 83.451), + SIMDE_FLOAT16_VALUE( 58.071), SIMDE_FLOAT16_VALUE( 9.615), SIMDE_FLOAT16_VALUE( - 92.703), SIMDE_FLOAT16_VALUE( - 13.746), SIMDE_FLOAT16_VALUE( 82.251), SIMDE_FLOAT16_VALUE( 31.216), SIMDE_FLOAT16_VALUE( 5.814), SIMDE_FLOAT16_VALUE( 14.340) } }, - { { { -SIMDE_FLOAT16_VALUE( 61.888), SIMDE_FLOAT16_VALUE( 47.875), -SIMDE_FLOAT16_VALUE( 89.222), SIMDE_FLOAT16_VALUE( 78.391) }, - { SIMDE_FLOAT16_VALUE( 7.891), -SIMDE_FLOAT16_VALUE( 86.814), SIMDE_FLOAT16_VALUE( 7.232), SIMDE_FLOAT16_VALUE( 87.625) }, - { -SIMDE_FLOAT16_VALUE( 59.898), SIMDE_FLOAT16_VALUE( 99.002), SIMDE_FLOAT16_VALUE( 38.867), -SIMDE_FLOAT16_VALUE( 11.673) } }, - { -SIMDE_FLOAT16_VALUE( 61.888), SIMDE_FLOAT16_VALUE( 47.875), -SIMDE_FLOAT16_VALUE( 89.222), SIMDE_FLOAT16_VALUE( 78.391), - SIMDE_FLOAT16_VALUE( 7.891), -SIMDE_FLOAT16_VALUE( 86.814), SIMDE_FLOAT16_VALUE( 7.232), SIMDE_FLOAT16_VALUE( 87.625), - -SIMDE_FLOAT16_VALUE( 59.898), SIMDE_FLOAT16_VALUE( 99.002), SIMDE_FLOAT16_VALUE( 38.867), -SIMDE_FLOAT16_VALUE( 11.673) } }, - { { { -SIMDE_FLOAT16_VALUE( 30.571), -SIMDE_FLOAT16_VALUE( 70.230), SIMDE_FLOAT16_VALUE( 40.374), -SIMDE_FLOAT16_VALUE( 20.532) }, - { -SIMDE_FLOAT16_VALUE( 53.791), -SIMDE_FLOAT16_VALUE( 27.304), -SIMDE_FLOAT16_VALUE( 92.472), SIMDE_FLOAT16_VALUE( 61.997) }, - { -SIMDE_FLOAT16_VALUE( 84.356), SIMDE_FLOAT16_VALUE( 57.986), -SIMDE_FLOAT16_VALUE( 40.919), SIMDE_FLOAT16_VALUE( 59.208) } }, - { -SIMDE_FLOAT16_VALUE( 30.571), -SIMDE_FLOAT16_VALUE( 70.230), SIMDE_FLOAT16_VALUE( 40.374), -SIMDE_FLOAT16_VALUE( 20.532), - -SIMDE_FLOAT16_VALUE( 53.791), -SIMDE_FLOAT16_VALUE( 27.304), -SIMDE_FLOAT16_VALUE( 92.472), SIMDE_FLOAT16_VALUE( 61.997), - -SIMDE_FLOAT16_VALUE( 84.356), SIMDE_FLOAT16_VALUE( 57.986), -SIMDE_FLOAT16_VALUE( 40.919), SIMDE_FLOAT16_VALUE( 59.208) } }, - { { { SIMDE_FLOAT16_VALUE( 44.416), -SIMDE_FLOAT16_VALUE( 23.810), -SIMDE_FLOAT16_VALUE( 15.844), -SIMDE_FLOAT16_VALUE( 72.400) }, + { { { SIMDE_FLOAT16_VALUE( - 61.888), SIMDE_FLOAT16_VALUE( 47.875), SIMDE_FLOAT16_VALUE( - 89.222), SIMDE_FLOAT16_VALUE( 78.391) }, + { SIMDE_FLOAT16_VALUE( 7.891), SIMDE_FLOAT16_VALUE( - 86.814), SIMDE_FLOAT16_VALUE( 7.232), SIMDE_FLOAT16_VALUE( 87.625) }, + { SIMDE_FLOAT16_VALUE( - 59.898), SIMDE_FLOAT16_VALUE( 99.002), SIMDE_FLOAT16_VALUE( 38.867), SIMDE_FLOAT16_VALUE( - 11.673) } }, + { SIMDE_FLOAT16_VALUE( - 61.888), SIMDE_FLOAT16_VALUE( 47.875), SIMDE_FLOAT16_VALUE( - 89.222), SIMDE_FLOAT16_VALUE( 78.391), + SIMDE_FLOAT16_VALUE( 7.891), SIMDE_FLOAT16_VALUE( - 86.814), SIMDE_FLOAT16_VALUE( 7.232), SIMDE_FLOAT16_VALUE( 87.625), + SIMDE_FLOAT16_VALUE( - 59.898), SIMDE_FLOAT16_VALUE( 99.002), SIMDE_FLOAT16_VALUE( 38.867), SIMDE_FLOAT16_VALUE( - 11.673) } }, + { { { SIMDE_FLOAT16_VALUE( - 30.571), SIMDE_FLOAT16_VALUE( - 70.230), SIMDE_FLOAT16_VALUE( 40.374), SIMDE_FLOAT16_VALUE( - 20.532) }, + { SIMDE_FLOAT16_VALUE( - 53.791), SIMDE_FLOAT16_VALUE( - 27.304), SIMDE_FLOAT16_VALUE( - 92.472), SIMDE_FLOAT16_VALUE( 61.997) }, + { SIMDE_FLOAT16_VALUE( - 84.356), SIMDE_FLOAT16_VALUE( 57.986), SIMDE_FLOAT16_VALUE( - 40.919), SIMDE_FLOAT16_VALUE( 59.208) } }, + { SIMDE_FLOAT16_VALUE( - 30.571), SIMDE_FLOAT16_VALUE( - 70.230), SIMDE_FLOAT16_VALUE( 40.374), SIMDE_FLOAT16_VALUE( - 20.532), + SIMDE_FLOAT16_VALUE( - 53.791), SIMDE_FLOAT16_VALUE( - 27.304), SIMDE_FLOAT16_VALUE( - 92.472), SIMDE_FLOAT16_VALUE( 61.997), + SIMDE_FLOAT16_VALUE( - 84.356), SIMDE_FLOAT16_VALUE( 57.986), SIMDE_FLOAT16_VALUE( - 40.919), SIMDE_FLOAT16_VALUE( 59.208) } }, + { { { SIMDE_FLOAT16_VALUE( 44.416), SIMDE_FLOAT16_VALUE( - 23.810), SIMDE_FLOAT16_VALUE( - 15.844), SIMDE_FLOAT16_VALUE( - 72.400) }, { SIMDE_FLOAT16_VALUE( 39.332), SIMDE_FLOAT16_VALUE( 94.084), SIMDE_FLOAT16_VALUE( 69.027), SIMDE_FLOAT16_VALUE( 27.132) }, - { -SIMDE_FLOAT16_VALUE( 53.948), -SIMDE_FLOAT16_VALUE( 6.196), SIMDE_FLOAT16_VALUE( 93.667), -SIMDE_FLOAT16_VALUE( 14.595) } }, - { SIMDE_FLOAT16_VALUE( 44.416), -SIMDE_FLOAT16_VALUE( 23.810), -SIMDE_FLOAT16_VALUE( 15.844), -SIMDE_FLOAT16_VALUE( 72.400), + { SIMDE_FLOAT16_VALUE( - 53.948), SIMDE_FLOAT16_VALUE( - 6.196), SIMDE_FLOAT16_VALUE( 93.667), SIMDE_FLOAT16_VALUE( - 14.595) } }, + { SIMDE_FLOAT16_VALUE( 44.416), SIMDE_FLOAT16_VALUE( - 23.810), SIMDE_FLOAT16_VALUE( - 15.844), SIMDE_FLOAT16_VALUE( - 72.400), SIMDE_FLOAT16_VALUE( 39.332), SIMDE_FLOAT16_VALUE( 94.084), SIMDE_FLOAT16_VALUE( 69.027), SIMDE_FLOAT16_VALUE( 27.132), - -SIMDE_FLOAT16_VALUE( 53.948), -SIMDE_FLOAT16_VALUE( 6.196), SIMDE_FLOAT16_VALUE( 93.667), -SIMDE_FLOAT16_VALUE( 14.595) } }, - { { { -SIMDE_FLOAT16_VALUE( 82.639), -SIMDE_FLOAT16_VALUE( 31.640), SIMDE_FLOAT16_VALUE( 38.749), -SIMDE_FLOAT16_VALUE( 86.594) }, + SIMDE_FLOAT16_VALUE( - 53.948), SIMDE_FLOAT16_VALUE( - 6.196), SIMDE_FLOAT16_VALUE( 93.667), SIMDE_FLOAT16_VALUE( - 14.595) } }, + { { { SIMDE_FLOAT16_VALUE( - 82.639), SIMDE_FLOAT16_VALUE( - 31.640), SIMDE_FLOAT16_VALUE( 38.749), SIMDE_FLOAT16_VALUE( - 86.594) }, { SIMDE_FLOAT16_VALUE( 49.953), SIMDE_FLOAT16_VALUE( 35.426), SIMDE_FLOAT16_VALUE( 78.108), SIMDE_FLOAT16_VALUE( 30.009) }, - { SIMDE_FLOAT16_VALUE( 15.917), -SIMDE_FLOAT16_VALUE( 35.664), -SIMDE_FLOAT16_VALUE( 94.160), -SIMDE_FLOAT16_VALUE( 24.487) } }, - { -SIMDE_FLOAT16_VALUE( 82.639), -SIMDE_FLOAT16_VALUE( 31.640), SIMDE_FLOAT16_VALUE( 38.749), -SIMDE_FLOAT16_VALUE( 86.594), + { SIMDE_FLOAT16_VALUE( 15.917), SIMDE_FLOAT16_VALUE( - 35.664), SIMDE_FLOAT16_VALUE( - 94.160), SIMDE_FLOAT16_VALUE( - 24.487) } }, + { SIMDE_FLOAT16_VALUE( - 82.639), SIMDE_FLOAT16_VALUE( - 31.640), SIMDE_FLOAT16_VALUE( 38.749), SIMDE_FLOAT16_VALUE( - 86.594), SIMDE_FLOAT16_VALUE( 49.953), SIMDE_FLOAT16_VALUE( 35.426), SIMDE_FLOAT16_VALUE( 78.108), SIMDE_FLOAT16_VALUE( 30.009), - SIMDE_FLOAT16_VALUE( 15.917), -SIMDE_FLOAT16_VALUE( 35.664), -SIMDE_FLOAT16_VALUE( 94.160), -SIMDE_FLOAT16_VALUE( 24.487) } }, - { { { -SIMDE_FLOAT16_VALUE( 53.177), SIMDE_FLOAT16_VALUE( 32.005), SIMDE_FLOAT16_VALUE( 86.184), SIMDE_FLOAT16_VALUE( 76.077) }, - { SIMDE_FLOAT16_VALUE( 6.572), -SIMDE_FLOAT16_VALUE( 52.085), SIMDE_FLOAT16_VALUE( 48.290), SIMDE_FLOAT16_VALUE( 75.600) }, - { SIMDE_FLOAT16_VALUE( 81.474), -SIMDE_FLOAT16_VALUE( 76.981), -SIMDE_FLOAT16_VALUE( 76.144), SIMDE_FLOAT16_VALUE( 91.779) } }, - { -SIMDE_FLOAT16_VALUE( 53.177), SIMDE_FLOAT16_VALUE( 32.005), SIMDE_FLOAT16_VALUE( 86.184), SIMDE_FLOAT16_VALUE( 76.077), - SIMDE_FLOAT16_VALUE( 6.572), -SIMDE_FLOAT16_VALUE( 52.085), SIMDE_FLOAT16_VALUE( 48.290), SIMDE_FLOAT16_VALUE( 75.600), - SIMDE_FLOAT16_VALUE( 81.474), -SIMDE_FLOAT16_VALUE( 76.981), -SIMDE_FLOAT16_VALUE( 76.144), SIMDE_FLOAT16_VALUE( 91.779) } }, + SIMDE_FLOAT16_VALUE( 15.917), SIMDE_FLOAT16_VALUE( - 35.664), SIMDE_FLOAT16_VALUE( - 94.160), SIMDE_FLOAT16_VALUE( - 24.487) } }, + { { { SIMDE_FLOAT16_VALUE( - 53.177), SIMDE_FLOAT16_VALUE( 32.005), SIMDE_FLOAT16_VALUE( 86.184), SIMDE_FLOAT16_VALUE( 76.077) }, + { SIMDE_FLOAT16_VALUE( 6.572), SIMDE_FLOAT16_VALUE( - 52.085), SIMDE_FLOAT16_VALUE( 48.290), SIMDE_FLOAT16_VALUE( 75.600) }, + { SIMDE_FLOAT16_VALUE( 81.474), SIMDE_FLOAT16_VALUE( - 76.981), SIMDE_FLOAT16_VALUE( - 76.144), SIMDE_FLOAT16_VALUE( 91.779) } }, + { SIMDE_FLOAT16_VALUE( - 53.177), SIMDE_FLOAT16_VALUE( 32.005), SIMDE_FLOAT16_VALUE( 86.184), SIMDE_FLOAT16_VALUE( 76.077), + SIMDE_FLOAT16_VALUE( 6.572), SIMDE_FLOAT16_VALUE( - 52.085), SIMDE_FLOAT16_VALUE( 48.290), SIMDE_FLOAT16_VALUE( 75.600), + SIMDE_FLOAT16_VALUE( 81.474), SIMDE_FLOAT16_VALUE( - 76.981), SIMDE_FLOAT16_VALUE( - 76.144), SIMDE_FLOAT16_VALUE( 91.779) } }, { { { SIMDE_FLOAT16_VALUE( 52.159), SIMDE_FLOAT16_VALUE( 24.957), SIMDE_FLOAT16_VALUE( 64.016), SIMDE_FLOAT16_VALUE( 36.756) }, - { SIMDE_FLOAT16_VALUE( 65.380), -SIMDE_FLOAT16_VALUE( 22.729), SIMDE_FLOAT16_VALUE( 0.877), SIMDE_FLOAT16_VALUE( 71.132) }, - { SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 1.688), SIMDE_FLOAT16_VALUE( 13.012), -SIMDE_FLOAT16_VALUE( 96.029) } }, + { SIMDE_FLOAT16_VALUE( 65.380), SIMDE_FLOAT16_VALUE( - 22.729), SIMDE_FLOAT16_VALUE( 0.877), SIMDE_FLOAT16_VALUE( 71.132) }, + { SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 1.688), SIMDE_FLOAT16_VALUE( 13.012), SIMDE_FLOAT16_VALUE( - 96.029) } }, { SIMDE_FLOAT16_VALUE( 52.159), SIMDE_FLOAT16_VALUE( 24.957), SIMDE_FLOAT16_VALUE( 64.016), SIMDE_FLOAT16_VALUE( 36.756), - SIMDE_FLOAT16_VALUE( 65.380), -SIMDE_FLOAT16_VALUE( 22.729), SIMDE_FLOAT16_VALUE( 0.877), SIMDE_FLOAT16_VALUE( 71.132), - SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 1.688), SIMDE_FLOAT16_VALUE( 13.012), -SIMDE_FLOAT16_VALUE( 96.029) } }, - { { { -SIMDE_FLOAT16_VALUE( 42.841), -SIMDE_FLOAT16_VALUE( 57.189), SIMDE_FLOAT16_VALUE( 82.362), -SIMDE_FLOAT16_VALUE( 76.770) }, + SIMDE_FLOAT16_VALUE( 65.380), SIMDE_FLOAT16_VALUE( - 22.729), SIMDE_FLOAT16_VALUE( 0.877), SIMDE_FLOAT16_VALUE( 71.132), + SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 1.688), SIMDE_FLOAT16_VALUE( 13.012), SIMDE_FLOAT16_VALUE( - 96.029) } }, + { { { SIMDE_FLOAT16_VALUE( - 42.841), SIMDE_FLOAT16_VALUE( - 57.189), SIMDE_FLOAT16_VALUE( 82.362), SIMDE_FLOAT16_VALUE( - 76.770) }, { SIMDE_FLOAT16_VALUE( 44.180), SIMDE_FLOAT16_VALUE( 81.552), SIMDE_FLOAT16_VALUE( 36.064), SIMDE_FLOAT16_VALUE( 37.831) }, - { -SIMDE_FLOAT16_VALUE( 86.197), SIMDE_FLOAT16_VALUE( 7.055), -SIMDE_FLOAT16_VALUE( 65.114), -SIMDE_FLOAT16_VALUE( 27.135) } }, - { -SIMDE_FLOAT16_VALUE( 42.841), -SIMDE_FLOAT16_VALUE( 57.189), SIMDE_FLOAT16_VALUE( 82.362), -SIMDE_FLOAT16_VALUE( 76.770), + { SIMDE_FLOAT16_VALUE( - 86.197), SIMDE_FLOAT16_VALUE( 7.055), SIMDE_FLOAT16_VALUE( - 65.114), SIMDE_FLOAT16_VALUE( - 27.135) } }, + { SIMDE_FLOAT16_VALUE( - 42.841), SIMDE_FLOAT16_VALUE( - 57.189), SIMDE_FLOAT16_VALUE( 82.362), SIMDE_FLOAT16_VALUE( - 76.770), SIMDE_FLOAT16_VALUE( 44.180), SIMDE_FLOAT16_VALUE( 81.552), SIMDE_FLOAT16_VALUE( 36.064), SIMDE_FLOAT16_VALUE( 37.831), - -SIMDE_FLOAT16_VALUE( 86.197), SIMDE_FLOAT16_VALUE( 7.055), -SIMDE_FLOAT16_VALUE( 65.114), -SIMDE_FLOAT16_VALUE( 27.135) } }, + SIMDE_FLOAT16_VALUE( - 86.197), SIMDE_FLOAT16_VALUE( 7.055), SIMDE_FLOAT16_VALUE( - 65.114), SIMDE_FLOAT16_VALUE( - 27.135) } }, }; for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { @@ -73,6 +74,18 @@ test_simde_vst1_f16_x3 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x3_t val[3] = simde_test_arm_neon_random_f16x3(-100.0f, 100.0f); + simde_float16x12_t r = simde_vst1_f16_x3(val[3]); + + simde_test_arm_neon_write_f16x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x12(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st1_x4.c b/test/arm/neon/st1_x4.c index a32719c92..03c438a4d 100644 --- a/test/arm/neon/st1_x4.c +++ b/test/arm/neon/st1_x4.c @@ -7,74 +7,75 @@ static int test_simde_vst1_f16_x4 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 val[4][4]; simde_float16 r[16]; } test_vec[] = { - { { { SIMDE_FLOAT16_VALUE( 82.328), SIMDE_FLOAT16_VALUE( 70.920), -SIMDE_FLOAT16_VALUE( 2.164), SIMDE_FLOAT16_VALUE( 20.248) }, - { SIMDE_FLOAT16_VALUE( 17.827), -SIMDE_FLOAT16_VALUE( 14.465), -SIMDE_FLOAT16_VALUE( 88.806), SIMDE_FLOAT16_VALUE( 79.077) }, - { SIMDE_FLOAT16_VALUE( 1.568), -SIMDE_FLOAT16_VALUE( 20.954), -SIMDE_FLOAT16_VALUE( 34.479), -SIMDE_FLOAT16_VALUE( 40.339) }, - { SIMDE_FLOAT16_VALUE( 35.388), SIMDE_FLOAT16_VALUE( 7.745), SIMDE_FLOAT16_VALUE( 48.873), -SIMDE_FLOAT16_VALUE( 89.095) } }, - { SIMDE_FLOAT16_VALUE( 82.328), SIMDE_FLOAT16_VALUE( 70.920), -SIMDE_FLOAT16_VALUE( 2.164), SIMDE_FLOAT16_VALUE( 20.248), - SIMDE_FLOAT16_VALUE( 17.827), -SIMDE_FLOAT16_VALUE( 14.465), -SIMDE_FLOAT16_VALUE( 88.806), SIMDE_FLOAT16_VALUE( 79.077), - SIMDE_FLOAT16_VALUE( 1.568), -SIMDE_FLOAT16_VALUE( 20.954), -SIMDE_FLOAT16_VALUE( 34.479), -SIMDE_FLOAT16_VALUE( 40.339), - SIMDE_FLOAT16_VALUE( 35.388), SIMDE_FLOAT16_VALUE( 7.745), SIMDE_FLOAT16_VALUE( 48.873), -SIMDE_FLOAT16_VALUE( 89.095) } }, - { { { -SIMDE_FLOAT16_VALUE( 85.226), SIMDE_FLOAT16_VALUE( 68.050), -SIMDE_FLOAT16_VALUE( 79.246), -SIMDE_FLOAT16_VALUE( 6.999) }, - { -SIMDE_FLOAT16_VALUE( 57.697), -SIMDE_FLOAT16_VALUE( 37.357), -SIMDE_FLOAT16_VALUE( 77.997), -SIMDE_FLOAT16_VALUE( 49.541) }, - { -SIMDE_FLOAT16_VALUE( 97.845), -SIMDE_FLOAT16_VALUE( 58.594), SIMDE_FLOAT16_VALUE( 49.242), SIMDE_FLOAT16_VALUE( 38.316) }, - { -SIMDE_FLOAT16_VALUE( 4.874), SIMDE_FLOAT16_VALUE( 31.136), SIMDE_FLOAT16_VALUE( 51.676), -SIMDE_FLOAT16_VALUE( 89.351) } }, - { -SIMDE_FLOAT16_VALUE( 85.226), SIMDE_FLOAT16_VALUE( 68.050), -SIMDE_FLOAT16_VALUE( 79.246), -SIMDE_FLOAT16_VALUE( 6.999), - -SIMDE_FLOAT16_VALUE( 57.697), -SIMDE_FLOAT16_VALUE( 37.357), -SIMDE_FLOAT16_VALUE( 77.997), -SIMDE_FLOAT16_VALUE( 49.541), - -SIMDE_FLOAT16_VALUE( 97.845), -SIMDE_FLOAT16_VALUE( 58.594), SIMDE_FLOAT16_VALUE( 49.242), SIMDE_FLOAT16_VALUE( 38.316), - -SIMDE_FLOAT16_VALUE( 4.874), SIMDE_FLOAT16_VALUE( 31.136), SIMDE_FLOAT16_VALUE( 51.676), -SIMDE_FLOAT16_VALUE( 89.351) } }, - { { { -SIMDE_FLOAT16_VALUE( 30.265), -SIMDE_FLOAT16_VALUE( 14.175), SIMDE_FLOAT16_VALUE( 36.709), SIMDE_FLOAT16_VALUE( 19.621) }, - { SIMDE_FLOAT16_VALUE( 43.887), -SIMDE_FLOAT16_VALUE( 72.313), SIMDE_FLOAT16_VALUE( 75.465), -SIMDE_FLOAT16_VALUE( 60.500) }, - { -SIMDE_FLOAT16_VALUE( 4.007), SIMDE_FLOAT16_VALUE( 97.670), -SIMDE_FLOAT16_VALUE( 48.236), SIMDE_FLOAT16_VALUE( 41.558) }, - { -SIMDE_FLOAT16_VALUE( 87.828), SIMDE_FLOAT16_VALUE( 55.865), SIMDE_FLOAT16_VALUE( 40.049), -SIMDE_FLOAT16_VALUE( 99.926) } }, - { -SIMDE_FLOAT16_VALUE( 30.265), -SIMDE_FLOAT16_VALUE( 14.175), SIMDE_FLOAT16_VALUE( 36.709), SIMDE_FLOAT16_VALUE( 19.621), - SIMDE_FLOAT16_VALUE( 43.887), -SIMDE_FLOAT16_VALUE( 72.313), SIMDE_FLOAT16_VALUE( 75.465), -SIMDE_FLOAT16_VALUE( 60.500), - -SIMDE_FLOAT16_VALUE( 4.007), SIMDE_FLOAT16_VALUE( 97.670), -SIMDE_FLOAT16_VALUE( 48.236), SIMDE_FLOAT16_VALUE( 41.558), - -SIMDE_FLOAT16_VALUE( 87.828), SIMDE_FLOAT16_VALUE( 55.865), SIMDE_FLOAT16_VALUE( 40.049), -SIMDE_FLOAT16_VALUE( 99.926) } }, - { { { -SIMDE_FLOAT16_VALUE( 44.272), SIMDE_FLOAT16_VALUE( 10.085), -SIMDE_FLOAT16_VALUE( 12.450), SIMDE_FLOAT16_VALUE( 58.234) }, - { -SIMDE_FLOAT16_VALUE( 92.323), -SIMDE_FLOAT16_VALUE( 72.811), -SIMDE_FLOAT16_VALUE( 75.942), -SIMDE_FLOAT16_VALUE( 33.709) }, - { -SIMDE_FLOAT16_VALUE( 54.556), -SIMDE_FLOAT16_VALUE( 96.713), -SIMDE_FLOAT16_VALUE( 44.482), SIMDE_FLOAT16_VALUE( 86.965) }, - { SIMDE_FLOAT16_VALUE( 91.324), -SIMDE_FLOAT16_VALUE( 40.202), -SIMDE_FLOAT16_VALUE( 14.814), SIMDE_FLOAT16_VALUE( 88.549) } }, - { -SIMDE_FLOAT16_VALUE( 44.272), SIMDE_FLOAT16_VALUE( 10.085), -SIMDE_FLOAT16_VALUE( 12.450), SIMDE_FLOAT16_VALUE( 58.234), - -SIMDE_FLOAT16_VALUE( 92.323), -SIMDE_FLOAT16_VALUE( 72.811), -SIMDE_FLOAT16_VALUE( 75.942), -SIMDE_FLOAT16_VALUE( 33.709), - -SIMDE_FLOAT16_VALUE( 54.556), -SIMDE_FLOAT16_VALUE( 96.713), -SIMDE_FLOAT16_VALUE( 44.482), SIMDE_FLOAT16_VALUE( 86.965), - SIMDE_FLOAT16_VALUE( 91.324), -SIMDE_FLOAT16_VALUE( 40.202), -SIMDE_FLOAT16_VALUE( 14.814), SIMDE_FLOAT16_VALUE( 88.549) } }, - { { { SIMDE_FLOAT16_VALUE( 2.562), -SIMDE_FLOAT16_VALUE( 38.287), -SIMDE_FLOAT16_VALUE( 35.816), SIMDE_FLOAT16_VALUE( 15.466) }, - { SIMDE_FLOAT16_VALUE( 18.376), -SIMDE_FLOAT16_VALUE( 90.001), SIMDE_FLOAT16_VALUE( 64.324), -SIMDE_FLOAT16_VALUE( 33.166) }, - { -SIMDE_FLOAT16_VALUE( 69.347), SIMDE_FLOAT16_VALUE( 26.212), -SIMDE_FLOAT16_VALUE( 90.466), -SIMDE_FLOAT16_VALUE( 27.484) }, - { -SIMDE_FLOAT16_VALUE( 55.925), -SIMDE_FLOAT16_VALUE( 34.864), -SIMDE_FLOAT16_VALUE( 97.656), -SIMDE_FLOAT16_VALUE( 7.985) } }, - { SIMDE_FLOAT16_VALUE( 2.562), -SIMDE_FLOAT16_VALUE( 38.287), -SIMDE_FLOAT16_VALUE( 35.816), SIMDE_FLOAT16_VALUE( 15.466), - SIMDE_FLOAT16_VALUE( 18.376), -SIMDE_FLOAT16_VALUE( 90.001), SIMDE_FLOAT16_VALUE( 64.324), -SIMDE_FLOAT16_VALUE( 33.166), - -SIMDE_FLOAT16_VALUE( 69.347), SIMDE_FLOAT16_VALUE( 26.212), -SIMDE_FLOAT16_VALUE( 90.466), -SIMDE_FLOAT16_VALUE( 27.484), - -SIMDE_FLOAT16_VALUE( 55.925), -SIMDE_FLOAT16_VALUE( 34.864), -SIMDE_FLOAT16_VALUE( 97.656), -SIMDE_FLOAT16_VALUE( 7.985) } }, - { { { SIMDE_FLOAT16_VALUE( 52.345), -SIMDE_FLOAT16_VALUE( 67.483), SIMDE_FLOAT16_VALUE( 35.701), SIMDE_FLOAT16_VALUE( 91.753) }, - { SIMDE_FLOAT16_VALUE( 19.358), -SIMDE_FLOAT16_VALUE( 88.690), SIMDE_FLOAT16_VALUE( 47.635), SIMDE_FLOAT16_VALUE( 8.845) }, - { -SIMDE_FLOAT16_VALUE( 20.974), SIMDE_FLOAT16_VALUE( 4.303), -SIMDE_FLOAT16_VALUE( 69.975), -SIMDE_FLOAT16_VALUE( 29.454) }, - { SIMDE_FLOAT16_VALUE( 18.539), SIMDE_FLOAT16_VALUE( 11.611), -SIMDE_FLOAT16_VALUE( 30.865), SIMDE_FLOAT16_VALUE( 45.777) } }, - { SIMDE_FLOAT16_VALUE( 52.345), -SIMDE_FLOAT16_VALUE( 67.483), SIMDE_FLOAT16_VALUE( 35.701), SIMDE_FLOAT16_VALUE( 91.753), - SIMDE_FLOAT16_VALUE( 19.358), -SIMDE_FLOAT16_VALUE( 88.690), SIMDE_FLOAT16_VALUE( 47.635), SIMDE_FLOAT16_VALUE( 8.845), - -SIMDE_FLOAT16_VALUE( 20.974), SIMDE_FLOAT16_VALUE( 4.303), -SIMDE_FLOAT16_VALUE( 69.975), -SIMDE_FLOAT16_VALUE( 29.454), - SIMDE_FLOAT16_VALUE( 18.539), SIMDE_FLOAT16_VALUE( 11.611), -SIMDE_FLOAT16_VALUE( 30.865), SIMDE_FLOAT16_VALUE( 45.777) } }, - { { { -SIMDE_FLOAT16_VALUE( 6.544), SIMDE_FLOAT16_VALUE( 72.545), -SIMDE_FLOAT16_VALUE( 38.100), SIMDE_FLOAT16_VALUE( 66.147) }, - { -SIMDE_FLOAT16_VALUE( 39.990), SIMDE_FLOAT16_VALUE( 59.395), SIMDE_FLOAT16_VALUE( 58.133), SIMDE_FLOAT16_VALUE( 62.227) }, - { SIMDE_FLOAT16_VALUE( 17.801), SIMDE_FLOAT16_VALUE( 50.002), SIMDE_FLOAT16_VALUE( 92.224), -SIMDE_FLOAT16_VALUE( 44.924) }, - { SIMDE_FLOAT16_VALUE( 11.046), SIMDE_FLOAT16_VALUE( 54.927), -SIMDE_FLOAT16_VALUE( 65.414), -SIMDE_FLOAT16_VALUE( 73.599) } }, - { -SIMDE_FLOAT16_VALUE( 6.544), SIMDE_FLOAT16_VALUE( 72.545), -SIMDE_FLOAT16_VALUE( 38.100), SIMDE_FLOAT16_VALUE( 66.147), - -SIMDE_FLOAT16_VALUE( 39.990), SIMDE_FLOAT16_VALUE( 59.395), SIMDE_FLOAT16_VALUE( 58.133), SIMDE_FLOAT16_VALUE( 62.227), - SIMDE_FLOAT16_VALUE( 17.801), SIMDE_FLOAT16_VALUE( 50.002), SIMDE_FLOAT16_VALUE( 92.224), -SIMDE_FLOAT16_VALUE( 44.924), - SIMDE_FLOAT16_VALUE( 11.046), SIMDE_FLOAT16_VALUE( 54.927), -SIMDE_FLOAT16_VALUE( 65.414), -SIMDE_FLOAT16_VALUE( 73.599) } }, - { { { -SIMDE_FLOAT16_VALUE( 96.039), SIMDE_FLOAT16_VALUE( 20.111), -SIMDE_FLOAT16_VALUE( 49.906), -SIMDE_FLOAT16_VALUE( 73.928) }, + { { { SIMDE_FLOAT16_VALUE( 82.328), SIMDE_FLOAT16_VALUE( 70.920), SIMDE_FLOAT16_VALUE( - 2.164), SIMDE_FLOAT16_VALUE( 20.248) }, + { SIMDE_FLOAT16_VALUE( 17.827), SIMDE_FLOAT16_VALUE( - 14.465), SIMDE_FLOAT16_VALUE( - 88.806), SIMDE_FLOAT16_VALUE( 79.077) }, + { SIMDE_FLOAT16_VALUE( 1.568), SIMDE_FLOAT16_VALUE( - 20.954), SIMDE_FLOAT16_VALUE( - 34.479), SIMDE_FLOAT16_VALUE( - 40.339) }, + { SIMDE_FLOAT16_VALUE( 35.388), SIMDE_FLOAT16_VALUE( 7.745), SIMDE_FLOAT16_VALUE( 48.873), SIMDE_FLOAT16_VALUE( - 89.095) } }, + { SIMDE_FLOAT16_VALUE( 82.328), SIMDE_FLOAT16_VALUE( 70.920), SIMDE_FLOAT16_VALUE( - 2.164), SIMDE_FLOAT16_VALUE( 20.248), + SIMDE_FLOAT16_VALUE( 17.827), SIMDE_FLOAT16_VALUE( - 14.465), SIMDE_FLOAT16_VALUE( - 88.806), SIMDE_FLOAT16_VALUE( 79.077), + SIMDE_FLOAT16_VALUE( 1.568), SIMDE_FLOAT16_VALUE( - 20.954), SIMDE_FLOAT16_VALUE( - 34.479), SIMDE_FLOAT16_VALUE( - 40.339), + SIMDE_FLOAT16_VALUE( 35.388), SIMDE_FLOAT16_VALUE( 7.745), SIMDE_FLOAT16_VALUE( 48.873), SIMDE_FLOAT16_VALUE( - 89.095) } }, + { { { SIMDE_FLOAT16_VALUE( - 85.226), SIMDE_FLOAT16_VALUE( 68.050), SIMDE_FLOAT16_VALUE( - 79.246), SIMDE_FLOAT16_VALUE( - 6.999) }, + { SIMDE_FLOAT16_VALUE( - 57.697), SIMDE_FLOAT16_VALUE( - 37.357), SIMDE_FLOAT16_VALUE( - 77.997), SIMDE_FLOAT16_VALUE( - 49.541) }, + { SIMDE_FLOAT16_VALUE( - 97.845), SIMDE_FLOAT16_VALUE( - 58.594), SIMDE_FLOAT16_VALUE( 49.242), SIMDE_FLOAT16_VALUE( 38.316) }, + { SIMDE_FLOAT16_VALUE( - 4.874), SIMDE_FLOAT16_VALUE( 31.136), SIMDE_FLOAT16_VALUE( 51.676), SIMDE_FLOAT16_VALUE( - 89.351) } }, + { SIMDE_FLOAT16_VALUE( - 85.226), SIMDE_FLOAT16_VALUE( 68.050), SIMDE_FLOAT16_VALUE( - 79.246), SIMDE_FLOAT16_VALUE( - 6.999), + SIMDE_FLOAT16_VALUE( - 57.697), SIMDE_FLOAT16_VALUE( - 37.357), SIMDE_FLOAT16_VALUE( - 77.997), SIMDE_FLOAT16_VALUE( - 49.541), + SIMDE_FLOAT16_VALUE( - 97.845), SIMDE_FLOAT16_VALUE( - 58.594), SIMDE_FLOAT16_VALUE( 49.242), SIMDE_FLOAT16_VALUE( 38.316), + SIMDE_FLOAT16_VALUE( - 4.874), SIMDE_FLOAT16_VALUE( 31.136), SIMDE_FLOAT16_VALUE( 51.676), SIMDE_FLOAT16_VALUE( - 89.351) } }, + { { { SIMDE_FLOAT16_VALUE( - 30.265), SIMDE_FLOAT16_VALUE( - 14.175), SIMDE_FLOAT16_VALUE( 36.709), SIMDE_FLOAT16_VALUE( 19.621) }, + { SIMDE_FLOAT16_VALUE( 43.887), SIMDE_FLOAT16_VALUE( - 72.313), SIMDE_FLOAT16_VALUE( 75.465), SIMDE_FLOAT16_VALUE( - 60.500) }, + { SIMDE_FLOAT16_VALUE( - 4.007), SIMDE_FLOAT16_VALUE( 97.670), SIMDE_FLOAT16_VALUE( - 48.236), SIMDE_FLOAT16_VALUE( 41.558) }, + { SIMDE_FLOAT16_VALUE( - 87.828), SIMDE_FLOAT16_VALUE( 55.865), SIMDE_FLOAT16_VALUE( 40.049), SIMDE_FLOAT16_VALUE( - 99.926) } }, + { SIMDE_FLOAT16_VALUE( - 30.265), SIMDE_FLOAT16_VALUE( - 14.175), SIMDE_FLOAT16_VALUE( 36.709), SIMDE_FLOAT16_VALUE( 19.621), + SIMDE_FLOAT16_VALUE( 43.887), SIMDE_FLOAT16_VALUE( - 72.313), SIMDE_FLOAT16_VALUE( 75.465), SIMDE_FLOAT16_VALUE( - 60.500), + SIMDE_FLOAT16_VALUE( - 4.007), SIMDE_FLOAT16_VALUE( 97.670), SIMDE_FLOAT16_VALUE( - 48.236), SIMDE_FLOAT16_VALUE( 41.558), + SIMDE_FLOAT16_VALUE( - 87.828), SIMDE_FLOAT16_VALUE( 55.865), SIMDE_FLOAT16_VALUE( 40.049), SIMDE_FLOAT16_VALUE( - 99.926) } }, + { { { SIMDE_FLOAT16_VALUE( - 44.272), SIMDE_FLOAT16_VALUE( 10.085), SIMDE_FLOAT16_VALUE( - 12.450), SIMDE_FLOAT16_VALUE( 58.234) }, + { SIMDE_FLOAT16_VALUE( - 92.323), SIMDE_FLOAT16_VALUE( - 72.811), SIMDE_FLOAT16_VALUE( - 75.942), SIMDE_FLOAT16_VALUE( - 33.709) }, + { SIMDE_FLOAT16_VALUE( - 54.556), SIMDE_FLOAT16_VALUE( - 96.713), SIMDE_FLOAT16_VALUE( - 44.482), SIMDE_FLOAT16_VALUE( 86.965) }, + { SIMDE_FLOAT16_VALUE( 91.324), SIMDE_FLOAT16_VALUE( - 40.202), SIMDE_FLOAT16_VALUE( - 14.814), SIMDE_FLOAT16_VALUE( 88.549) } }, + { SIMDE_FLOAT16_VALUE( - 44.272), SIMDE_FLOAT16_VALUE( 10.085), SIMDE_FLOAT16_VALUE( - 12.450), SIMDE_FLOAT16_VALUE( 58.234), + SIMDE_FLOAT16_VALUE( - 92.323), SIMDE_FLOAT16_VALUE( - 72.811), SIMDE_FLOAT16_VALUE( - 75.942), SIMDE_FLOAT16_VALUE( - 33.709), + SIMDE_FLOAT16_VALUE( - 54.556), SIMDE_FLOAT16_VALUE( - 96.713), SIMDE_FLOAT16_VALUE( - 44.482), SIMDE_FLOAT16_VALUE( 86.965), + SIMDE_FLOAT16_VALUE( 91.324), SIMDE_FLOAT16_VALUE( - 40.202), SIMDE_FLOAT16_VALUE( - 14.814), SIMDE_FLOAT16_VALUE( 88.549) } }, + { { { SIMDE_FLOAT16_VALUE( 2.562), SIMDE_FLOAT16_VALUE( - 38.287), SIMDE_FLOAT16_VALUE( - 35.816), SIMDE_FLOAT16_VALUE( 15.466) }, + { SIMDE_FLOAT16_VALUE( 18.376), SIMDE_FLOAT16_VALUE( - 90.001), SIMDE_FLOAT16_VALUE( 64.324), SIMDE_FLOAT16_VALUE( - 33.166) }, + { SIMDE_FLOAT16_VALUE( - 69.347), SIMDE_FLOAT16_VALUE( 26.212), SIMDE_FLOAT16_VALUE( - 90.466), SIMDE_FLOAT16_VALUE( - 27.484) }, + { SIMDE_FLOAT16_VALUE( - 55.925), SIMDE_FLOAT16_VALUE( - 34.864), SIMDE_FLOAT16_VALUE( - 97.656), SIMDE_FLOAT16_VALUE( - 7.985) } }, + { SIMDE_FLOAT16_VALUE( 2.562), SIMDE_FLOAT16_VALUE( - 38.287), SIMDE_FLOAT16_VALUE( - 35.816), SIMDE_FLOAT16_VALUE( 15.466), + SIMDE_FLOAT16_VALUE( 18.376), SIMDE_FLOAT16_VALUE( - 90.001), SIMDE_FLOAT16_VALUE( 64.324), SIMDE_FLOAT16_VALUE( - 33.166), + SIMDE_FLOAT16_VALUE( - 69.347), SIMDE_FLOAT16_VALUE( 26.212), SIMDE_FLOAT16_VALUE( - 90.466), SIMDE_FLOAT16_VALUE( - 27.484), + SIMDE_FLOAT16_VALUE( - 55.925), SIMDE_FLOAT16_VALUE( - 34.864), SIMDE_FLOAT16_VALUE( - 97.656), SIMDE_FLOAT16_VALUE( - 7.985) } }, + { { { SIMDE_FLOAT16_VALUE( 52.345), SIMDE_FLOAT16_VALUE( - 67.483), SIMDE_FLOAT16_VALUE( 35.701), SIMDE_FLOAT16_VALUE( 91.753) }, + { SIMDE_FLOAT16_VALUE( 19.358), SIMDE_FLOAT16_VALUE( - 88.690), SIMDE_FLOAT16_VALUE( 47.635), SIMDE_FLOAT16_VALUE( 8.845) }, + { SIMDE_FLOAT16_VALUE( - 20.974), SIMDE_FLOAT16_VALUE( 4.303), SIMDE_FLOAT16_VALUE( - 69.975), SIMDE_FLOAT16_VALUE( - 29.454) }, + { SIMDE_FLOAT16_VALUE( 18.539), SIMDE_FLOAT16_VALUE( 11.611), SIMDE_FLOAT16_VALUE( - 30.865), SIMDE_FLOAT16_VALUE( 45.777) } }, + { SIMDE_FLOAT16_VALUE( 52.345), SIMDE_FLOAT16_VALUE( - 67.483), SIMDE_FLOAT16_VALUE( 35.701), SIMDE_FLOAT16_VALUE( 91.753), + SIMDE_FLOAT16_VALUE( 19.358), SIMDE_FLOAT16_VALUE( - 88.690), SIMDE_FLOAT16_VALUE( 47.635), SIMDE_FLOAT16_VALUE( 8.845), + SIMDE_FLOAT16_VALUE( - 20.974), SIMDE_FLOAT16_VALUE( 4.303), SIMDE_FLOAT16_VALUE( - 69.975), SIMDE_FLOAT16_VALUE( - 29.454), + SIMDE_FLOAT16_VALUE( 18.539), SIMDE_FLOAT16_VALUE( 11.611), SIMDE_FLOAT16_VALUE( - 30.865), SIMDE_FLOAT16_VALUE( 45.777) } }, + { { { SIMDE_FLOAT16_VALUE( - 6.544), SIMDE_FLOAT16_VALUE( 72.545), SIMDE_FLOAT16_VALUE( - 38.100), SIMDE_FLOAT16_VALUE( 66.147) }, + { SIMDE_FLOAT16_VALUE( - 39.990), SIMDE_FLOAT16_VALUE( 59.395), SIMDE_FLOAT16_VALUE( 58.133), SIMDE_FLOAT16_VALUE( 62.227) }, + { SIMDE_FLOAT16_VALUE( 17.801), SIMDE_FLOAT16_VALUE( 50.002), SIMDE_FLOAT16_VALUE( 92.224), SIMDE_FLOAT16_VALUE( - 44.924) }, + { SIMDE_FLOAT16_VALUE( 11.046), SIMDE_FLOAT16_VALUE( 54.927), SIMDE_FLOAT16_VALUE( - 65.414), SIMDE_FLOAT16_VALUE( - 73.599) } }, + { SIMDE_FLOAT16_VALUE( - 6.544), SIMDE_FLOAT16_VALUE( 72.545), SIMDE_FLOAT16_VALUE( - 38.100), SIMDE_FLOAT16_VALUE( 66.147), + SIMDE_FLOAT16_VALUE( - 39.990), SIMDE_FLOAT16_VALUE( 59.395), SIMDE_FLOAT16_VALUE( 58.133), SIMDE_FLOAT16_VALUE( 62.227), + SIMDE_FLOAT16_VALUE( 17.801), SIMDE_FLOAT16_VALUE( 50.002), SIMDE_FLOAT16_VALUE( 92.224), SIMDE_FLOAT16_VALUE( - 44.924), + SIMDE_FLOAT16_VALUE( 11.046), SIMDE_FLOAT16_VALUE( 54.927), SIMDE_FLOAT16_VALUE( - 65.414), SIMDE_FLOAT16_VALUE( - 73.599) } }, + { { { SIMDE_FLOAT16_VALUE( - 96.039), SIMDE_FLOAT16_VALUE( 20.111), SIMDE_FLOAT16_VALUE( - 49.906), SIMDE_FLOAT16_VALUE( - 73.928) }, { SIMDE_FLOAT16_VALUE( 70.164), SIMDE_FLOAT16_VALUE( 52.349), SIMDE_FLOAT16_VALUE( 46.465), SIMDE_FLOAT16_VALUE( 59.387) }, - { -SIMDE_FLOAT16_VALUE( 74.522), -SIMDE_FLOAT16_VALUE( 64.090), -SIMDE_FLOAT16_VALUE( 64.099), SIMDE_FLOAT16_VALUE( 19.591) }, - { SIMDE_FLOAT16_VALUE( 39.551), -SIMDE_FLOAT16_VALUE( 75.560), -SIMDE_FLOAT16_VALUE( 12.722), -SIMDE_FLOAT16_VALUE( 45.531) } }, - { -SIMDE_FLOAT16_VALUE( 96.039), SIMDE_FLOAT16_VALUE( 20.111), -SIMDE_FLOAT16_VALUE( 49.906), -SIMDE_FLOAT16_VALUE( 73.928), + { SIMDE_FLOAT16_VALUE( - 74.522), SIMDE_FLOAT16_VALUE( - 64.090), SIMDE_FLOAT16_VALUE( - 64.099), SIMDE_FLOAT16_VALUE( 19.591) }, + { SIMDE_FLOAT16_VALUE( 39.551), SIMDE_FLOAT16_VALUE( - 75.560), SIMDE_FLOAT16_VALUE( - 12.722), SIMDE_FLOAT16_VALUE( - 45.531) } }, + { SIMDE_FLOAT16_VALUE( - 96.039), SIMDE_FLOAT16_VALUE( 20.111), SIMDE_FLOAT16_VALUE( - 49.906), SIMDE_FLOAT16_VALUE( - 73.928), SIMDE_FLOAT16_VALUE( 70.164), SIMDE_FLOAT16_VALUE( 52.349), SIMDE_FLOAT16_VALUE( 46.465), SIMDE_FLOAT16_VALUE( 59.387), - -SIMDE_FLOAT16_VALUE( 74.522), -SIMDE_FLOAT16_VALUE( 64.090), -SIMDE_FLOAT16_VALUE( 64.099), SIMDE_FLOAT16_VALUE( 19.591), - SIMDE_FLOAT16_VALUE( 39.551), -SIMDE_FLOAT16_VALUE( 75.560), -SIMDE_FLOAT16_VALUE( 12.722), -SIMDE_FLOAT16_VALUE( 45.531) } }, + SIMDE_FLOAT16_VALUE( - 74.522), SIMDE_FLOAT16_VALUE( - 64.090), SIMDE_FLOAT16_VALUE( - 64.099), SIMDE_FLOAT16_VALUE( 19.591), + SIMDE_FLOAT16_VALUE( 39.551), SIMDE_FLOAT16_VALUE( - 75.560), SIMDE_FLOAT16_VALUE( - 12.722), SIMDE_FLOAT16_VALUE( - 45.531) } }, }; for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { @@ -90,6 +91,18 @@ test_simde_vst1_f16_x4 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t val[4] = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x16_t r = simde_vst1_f16_x4(val[4]); + + simde_test_arm_neon_write_f16x4(2, val[4], SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st1q_x2.c b/test/arm/neon/st1q_x2.c index aa7d6a1d6..0b0694cca 100644 --- a/test/arm/neon/st1q_x2.c +++ b/test/arm/neon/st1q_x2.c @@ -7,74 +7,75 @@ static int test_simde_vst1q_f16_x2 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 val[2][8]; simde_float16 r[16]; } test_vec[] = { - { { { -SIMDE_FLOAT16_VALUE( 20.956), -SIMDE_FLOAT16_VALUE( 58.964), -SIMDE_FLOAT16_VALUE( 74.395), -SIMDE_FLOAT16_VALUE( 58.069), - -SIMDE_FLOAT16_VALUE( 73.918), -SIMDE_FLOAT16_VALUE( 88.889), -SIMDE_FLOAT16_VALUE( 89.387), SIMDE_FLOAT16_VALUE( 26.229) }, + { { { SIMDE_FLOAT16_VALUE( - 20.956), SIMDE_FLOAT16_VALUE( - 58.964), SIMDE_FLOAT16_VALUE( - 74.395), SIMDE_FLOAT16_VALUE( - 58.069), + SIMDE_FLOAT16_VALUE( - 73.918), SIMDE_FLOAT16_VALUE( - 88.889), SIMDE_FLOAT16_VALUE( - 89.387), SIMDE_FLOAT16_VALUE( 26.229) }, { SIMDE_FLOAT16_VALUE( 67.698), SIMDE_FLOAT16_VALUE( 18.105), SIMDE_FLOAT16_VALUE( 25.021), SIMDE_FLOAT16_VALUE( 34.669), - -SIMDE_FLOAT16_VALUE( 49.404), -SIMDE_FLOAT16_VALUE( 56.913), SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 59.094) } }, - { -SIMDE_FLOAT16_VALUE( 20.956), -SIMDE_FLOAT16_VALUE( 58.964), -SIMDE_FLOAT16_VALUE( 74.395), -SIMDE_FLOAT16_VALUE( 58.069), - -SIMDE_FLOAT16_VALUE( 73.918), -SIMDE_FLOAT16_VALUE( 88.889), -SIMDE_FLOAT16_VALUE( 89.387), SIMDE_FLOAT16_VALUE( 26.229), + SIMDE_FLOAT16_VALUE( - 49.404), SIMDE_FLOAT16_VALUE( - 56.913), SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 59.094) } }, + { SIMDE_FLOAT16_VALUE( - 20.956), SIMDE_FLOAT16_VALUE( - 58.964), SIMDE_FLOAT16_VALUE( - 74.395), SIMDE_FLOAT16_VALUE( - 58.069), + SIMDE_FLOAT16_VALUE( - 73.918), SIMDE_FLOAT16_VALUE( - 88.889), SIMDE_FLOAT16_VALUE( - 89.387), SIMDE_FLOAT16_VALUE( 26.229), SIMDE_FLOAT16_VALUE( 67.698), SIMDE_FLOAT16_VALUE( 18.105), SIMDE_FLOAT16_VALUE( 25.021), SIMDE_FLOAT16_VALUE( 34.669), - -SIMDE_FLOAT16_VALUE( 49.404), -SIMDE_FLOAT16_VALUE( 56.913), SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 59.094) } }, - { { { SIMDE_FLOAT16_VALUE( 2.598), -SIMDE_FLOAT16_VALUE( 70.000), SIMDE_FLOAT16_VALUE( 41.157), -SIMDE_FLOAT16_VALUE( 83.059), - -SIMDE_FLOAT16_VALUE( 90.002), SIMDE_FLOAT16_VALUE( 21.783), SIMDE_FLOAT16_VALUE( 70.489), SIMDE_FLOAT16_VALUE( 17.433) }, - { -SIMDE_FLOAT16_VALUE( 86.074), SIMDE_FLOAT16_VALUE( 41.189), SIMDE_FLOAT16_VALUE( 63.234), SIMDE_FLOAT16_VALUE( 12.204), - SIMDE_FLOAT16_VALUE( 7.910), -SIMDE_FLOAT16_VALUE( 15.107), -SIMDE_FLOAT16_VALUE( 16.136), SIMDE_FLOAT16_VALUE( 13.310) } }, - { SIMDE_FLOAT16_VALUE( 2.598), -SIMDE_FLOAT16_VALUE( 70.000), SIMDE_FLOAT16_VALUE( 41.157), -SIMDE_FLOAT16_VALUE( 83.059), - -SIMDE_FLOAT16_VALUE( 90.002), SIMDE_FLOAT16_VALUE( 21.783), SIMDE_FLOAT16_VALUE( 70.489), SIMDE_FLOAT16_VALUE( 17.433), - -SIMDE_FLOAT16_VALUE( 86.074), SIMDE_FLOAT16_VALUE( 41.189), SIMDE_FLOAT16_VALUE( 63.234), SIMDE_FLOAT16_VALUE( 12.204), - SIMDE_FLOAT16_VALUE( 7.910), -SIMDE_FLOAT16_VALUE( 15.107), -SIMDE_FLOAT16_VALUE( 16.136), SIMDE_FLOAT16_VALUE( 13.310) } }, - { { { -SIMDE_FLOAT16_VALUE( 58.406), -SIMDE_FLOAT16_VALUE( 64.859), -SIMDE_FLOAT16_VALUE( 31.395), SIMDE_FLOAT16_VALUE( 12.432), - -SIMDE_FLOAT16_VALUE( 14.707), SIMDE_FLOAT16_VALUE( 84.786), -SIMDE_FLOAT16_VALUE( 39.961), SIMDE_FLOAT16_VALUE( 98.967) }, + SIMDE_FLOAT16_VALUE( - 49.404), SIMDE_FLOAT16_VALUE( - 56.913), SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 59.094) } }, + { { { SIMDE_FLOAT16_VALUE( 2.598), SIMDE_FLOAT16_VALUE( - 70.000), SIMDE_FLOAT16_VALUE( 41.157), SIMDE_FLOAT16_VALUE( - 83.059), + SIMDE_FLOAT16_VALUE( - 90.002), SIMDE_FLOAT16_VALUE( 21.783), SIMDE_FLOAT16_VALUE( 70.489), SIMDE_FLOAT16_VALUE( 17.433) }, + { SIMDE_FLOAT16_VALUE( - 86.074), SIMDE_FLOAT16_VALUE( 41.189), SIMDE_FLOAT16_VALUE( 63.234), SIMDE_FLOAT16_VALUE( 12.204), + SIMDE_FLOAT16_VALUE( 7.910), SIMDE_FLOAT16_VALUE( - 15.107), SIMDE_FLOAT16_VALUE( - 16.136), SIMDE_FLOAT16_VALUE( 13.310) } }, + { SIMDE_FLOAT16_VALUE( 2.598), SIMDE_FLOAT16_VALUE( - 70.000), SIMDE_FLOAT16_VALUE( 41.157), SIMDE_FLOAT16_VALUE( - 83.059), + SIMDE_FLOAT16_VALUE( - 90.002), SIMDE_FLOAT16_VALUE( 21.783), SIMDE_FLOAT16_VALUE( 70.489), SIMDE_FLOAT16_VALUE( 17.433), + SIMDE_FLOAT16_VALUE( - 86.074), SIMDE_FLOAT16_VALUE( 41.189), SIMDE_FLOAT16_VALUE( 63.234), SIMDE_FLOAT16_VALUE( 12.204), + SIMDE_FLOAT16_VALUE( 7.910), SIMDE_FLOAT16_VALUE( - 15.107), SIMDE_FLOAT16_VALUE( - 16.136), SIMDE_FLOAT16_VALUE( 13.310) } }, + { { { SIMDE_FLOAT16_VALUE( - 58.406), SIMDE_FLOAT16_VALUE( - 64.859), SIMDE_FLOAT16_VALUE( - 31.395), SIMDE_FLOAT16_VALUE( 12.432), + SIMDE_FLOAT16_VALUE( - 14.707), SIMDE_FLOAT16_VALUE( 84.786), SIMDE_FLOAT16_VALUE( - 39.961), SIMDE_FLOAT16_VALUE( 98.967) }, { SIMDE_FLOAT16_VALUE( 28.677), SIMDE_FLOAT16_VALUE( 63.490), SIMDE_FLOAT16_VALUE( 74.828), SIMDE_FLOAT16_VALUE( 21.706), SIMDE_FLOAT16_VALUE( 22.304), SIMDE_FLOAT16_VALUE( 71.547), SIMDE_FLOAT16_VALUE( 80.978), SIMDE_FLOAT16_VALUE( 16.394) } }, - { -SIMDE_FLOAT16_VALUE( 58.406), -SIMDE_FLOAT16_VALUE( 64.859), -SIMDE_FLOAT16_VALUE( 31.395), SIMDE_FLOAT16_VALUE( 12.432), - -SIMDE_FLOAT16_VALUE( 14.707), SIMDE_FLOAT16_VALUE( 84.786), -SIMDE_FLOAT16_VALUE( 39.961), SIMDE_FLOAT16_VALUE( 98.967), + { SIMDE_FLOAT16_VALUE( - 58.406), SIMDE_FLOAT16_VALUE( - 64.859), SIMDE_FLOAT16_VALUE( - 31.395), SIMDE_FLOAT16_VALUE( 12.432), + SIMDE_FLOAT16_VALUE( - 14.707), SIMDE_FLOAT16_VALUE( 84.786), SIMDE_FLOAT16_VALUE( - 39.961), SIMDE_FLOAT16_VALUE( 98.967), SIMDE_FLOAT16_VALUE( 28.677), SIMDE_FLOAT16_VALUE( 63.490), SIMDE_FLOAT16_VALUE( 74.828), SIMDE_FLOAT16_VALUE( 21.706), SIMDE_FLOAT16_VALUE( 22.304), SIMDE_FLOAT16_VALUE( 71.547), SIMDE_FLOAT16_VALUE( 80.978), SIMDE_FLOAT16_VALUE( 16.394) } }, - { { { SIMDE_FLOAT16_VALUE( 97.804), SIMDE_FLOAT16_VALUE( 73.823), -SIMDE_FLOAT16_VALUE( 8.059), SIMDE_FLOAT16_VALUE( 93.096), - SIMDE_FLOAT16_VALUE( 90.504), -SIMDE_FLOAT16_VALUE( 2.398), SIMDE_FLOAT16_VALUE( 30.759), -SIMDE_FLOAT16_VALUE( 94.855) }, - { -SIMDE_FLOAT16_VALUE( 5.801), -SIMDE_FLOAT16_VALUE( 68.562), -SIMDE_FLOAT16_VALUE( 54.678), SIMDE_FLOAT16_VALUE( 22.048), - -SIMDE_FLOAT16_VALUE( 71.055), -SIMDE_FLOAT16_VALUE( 30.977), SIMDE_FLOAT16_VALUE( 18.382), SIMDE_FLOAT16_VALUE( 11.761) } }, - { SIMDE_FLOAT16_VALUE( 97.804), SIMDE_FLOAT16_VALUE( 73.823), -SIMDE_FLOAT16_VALUE( 8.059), SIMDE_FLOAT16_VALUE( 93.096), - SIMDE_FLOAT16_VALUE( 90.504), -SIMDE_FLOAT16_VALUE( 2.398), SIMDE_FLOAT16_VALUE( 30.759), -SIMDE_FLOAT16_VALUE( 94.855), - -SIMDE_FLOAT16_VALUE( 5.801), -SIMDE_FLOAT16_VALUE( 68.562), -SIMDE_FLOAT16_VALUE( 54.678), SIMDE_FLOAT16_VALUE( 22.048), - -SIMDE_FLOAT16_VALUE( 71.055), -SIMDE_FLOAT16_VALUE( 30.977), SIMDE_FLOAT16_VALUE( 18.382), SIMDE_FLOAT16_VALUE( 11.761) } }, + { { { SIMDE_FLOAT16_VALUE( 97.804), SIMDE_FLOAT16_VALUE( 73.823), SIMDE_FLOAT16_VALUE( - 8.059), SIMDE_FLOAT16_VALUE( 93.096), + SIMDE_FLOAT16_VALUE( 90.504), SIMDE_FLOAT16_VALUE( - 2.398), SIMDE_FLOAT16_VALUE( 30.759), SIMDE_FLOAT16_VALUE( - 94.855) }, + { SIMDE_FLOAT16_VALUE( - 5.801), SIMDE_FLOAT16_VALUE( - 68.562), SIMDE_FLOAT16_VALUE( - 54.678), SIMDE_FLOAT16_VALUE( 22.048), + SIMDE_FLOAT16_VALUE( - 71.055), SIMDE_FLOAT16_VALUE( - 30.977), SIMDE_FLOAT16_VALUE( 18.382), SIMDE_FLOAT16_VALUE( 11.761) } }, + { SIMDE_FLOAT16_VALUE( 97.804), SIMDE_FLOAT16_VALUE( 73.823), SIMDE_FLOAT16_VALUE( - 8.059), SIMDE_FLOAT16_VALUE( 93.096), + SIMDE_FLOAT16_VALUE( 90.504), SIMDE_FLOAT16_VALUE( - 2.398), SIMDE_FLOAT16_VALUE( 30.759), SIMDE_FLOAT16_VALUE( - 94.855), + SIMDE_FLOAT16_VALUE( - 5.801), SIMDE_FLOAT16_VALUE( - 68.562), SIMDE_FLOAT16_VALUE( - 54.678), SIMDE_FLOAT16_VALUE( 22.048), + SIMDE_FLOAT16_VALUE( - 71.055), SIMDE_FLOAT16_VALUE( - 30.977), SIMDE_FLOAT16_VALUE( 18.382), SIMDE_FLOAT16_VALUE( 11.761) } }, { { { SIMDE_FLOAT16_VALUE( 55.035), SIMDE_FLOAT16_VALUE( 94.504), SIMDE_FLOAT16_VALUE( 21.867), SIMDE_FLOAT16_VALUE( 60.556), - -SIMDE_FLOAT16_VALUE( 21.374), SIMDE_FLOAT16_VALUE( 82.466), SIMDE_FLOAT16_VALUE( 84.824), SIMDE_FLOAT16_VALUE( 31.885) }, - { SIMDE_FLOAT16_VALUE( 17.599), -SIMDE_FLOAT16_VALUE( 18.858), -SIMDE_FLOAT16_VALUE( 97.376), -SIMDE_FLOAT16_VALUE( 85.414), - -SIMDE_FLOAT16_VALUE( 37.173), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( 51.414), SIMDE_FLOAT16_VALUE( 42.445) } }, + SIMDE_FLOAT16_VALUE( - 21.374), SIMDE_FLOAT16_VALUE( 82.466), SIMDE_FLOAT16_VALUE( 84.824), SIMDE_FLOAT16_VALUE( 31.885) }, + { SIMDE_FLOAT16_VALUE( 17.599), SIMDE_FLOAT16_VALUE( - 18.858), SIMDE_FLOAT16_VALUE( - 97.376), SIMDE_FLOAT16_VALUE( - 85.414), + SIMDE_FLOAT16_VALUE( - 37.173), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( 51.414), SIMDE_FLOAT16_VALUE( 42.445) } }, { SIMDE_FLOAT16_VALUE( 55.035), SIMDE_FLOAT16_VALUE( 94.504), SIMDE_FLOAT16_VALUE( 21.867), SIMDE_FLOAT16_VALUE( 60.556), - -SIMDE_FLOAT16_VALUE( 21.374), SIMDE_FLOAT16_VALUE( 82.466), SIMDE_FLOAT16_VALUE( 84.824), SIMDE_FLOAT16_VALUE( 31.885), - SIMDE_FLOAT16_VALUE( 17.599), -SIMDE_FLOAT16_VALUE( 18.858), -SIMDE_FLOAT16_VALUE( 97.376), -SIMDE_FLOAT16_VALUE( 85.414), - -SIMDE_FLOAT16_VALUE( 37.173), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( 51.414), SIMDE_FLOAT16_VALUE( 42.445) } }, - { { { -SIMDE_FLOAT16_VALUE( 58.353), SIMDE_FLOAT16_VALUE( 94.351), -SIMDE_FLOAT16_VALUE( 72.718), SIMDE_FLOAT16_VALUE( 44.738), - SIMDE_FLOAT16_VALUE( 88.331), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( 79.940), -SIMDE_FLOAT16_VALUE( 29.844) }, - { -SIMDE_FLOAT16_VALUE( 64.679), -SIMDE_FLOAT16_VALUE( 31.234), SIMDE_FLOAT16_VALUE( 25.402), SIMDE_FLOAT16_VALUE( 61.429), - -SIMDE_FLOAT16_VALUE( 80.532), SIMDE_FLOAT16_VALUE( 19.659), -SIMDE_FLOAT16_VALUE( 67.325), SIMDE_FLOAT16_VALUE( 54.634) } }, - { -SIMDE_FLOAT16_VALUE( 58.353), SIMDE_FLOAT16_VALUE( 94.351), -SIMDE_FLOAT16_VALUE( 72.718), SIMDE_FLOAT16_VALUE( 44.738), - SIMDE_FLOAT16_VALUE( 88.331), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( 79.940), -SIMDE_FLOAT16_VALUE( 29.844), - -SIMDE_FLOAT16_VALUE( 64.679), -SIMDE_FLOAT16_VALUE( 31.234), SIMDE_FLOAT16_VALUE( 25.402), SIMDE_FLOAT16_VALUE( 61.429), - -SIMDE_FLOAT16_VALUE( 80.532), SIMDE_FLOAT16_VALUE( 19.659), -SIMDE_FLOAT16_VALUE( 67.325), SIMDE_FLOAT16_VALUE( 54.634) } }, - { { { -SIMDE_FLOAT16_VALUE( 99.773), SIMDE_FLOAT16_VALUE( 27.004), SIMDE_FLOAT16_VALUE( 53.708), SIMDE_FLOAT16_VALUE( 12.664), - SIMDE_FLOAT16_VALUE( 66.275), -SIMDE_FLOAT16_VALUE( 0.836), -SIMDE_FLOAT16_VALUE( 22.661), SIMDE_FLOAT16_VALUE( 72.602) }, - { SIMDE_FLOAT16_VALUE( 25.260), -SIMDE_FLOAT16_VALUE( 83.782), -SIMDE_FLOAT16_VALUE( 61.087), -SIMDE_FLOAT16_VALUE( 38.948), - -SIMDE_FLOAT16_VALUE( 78.380), SIMDE_FLOAT16_VALUE( 6.817), -SIMDE_FLOAT16_VALUE( 82.373), -SIMDE_FLOAT16_VALUE( 60.011) } }, - { -SIMDE_FLOAT16_VALUE( 99.773), SIMDE_FLOAT16_VALUE( 27.004), SIMDE_FLOAT16_VALUE( 53.708), SIMDE_FLOAT16_VALUE( 12.664), - SIMDE_FLOAT16_VALUE( 66.275), -SIMDE_FLOAT16_VALUE( 0.836), -SIMDE_FLOAT16_VALUE( 22.661), SIMDE_FLOAT16_VALUE( 72.602), - SIMDE_FLOAT16_VALUE( 25.260), -SIMDE_FLOAT16_VALUE( 83.782), -SIMDE_FLOAT16_VALUE( 61.087), -SIMDE_FLOAT16_VALUE( 38.948), - -SIMDE_FLOAT16_VALUE( 78.380), SIMDE_FLOAT16_VALUE( 6.817), -SIMDE_FLOAT16_VALUE( 82.373), -SIMDE_FLOAT16_VALUE( 60.011) } }, - { { { -SIMDE_FLOAT16_VALUE( 53.476), SIMDE_FLOAT16_VALUE( 8.724), -SIMDE_FLOAT16_VALUE( 88.674), -SIMDE_FLOAT16_VALUE( 48.309), - -SIMDE_FLOAT16_VALUE( 3.562), SIMDE_FLOAT16_VALUE( 14.309), -SIMDE_FLOAT16_VALUE( 99.801), -SIMDE_FLOAT16_VALUE( 11.703) }, - { -SIMDE_FLOAT16_VALUE( 62.913), -SIMDE_FLOAT16_VALUE( 43.056), -SIMDE_FLOAT16_VALUE( 65.766), SIMDE_FLOAT16_VALUE( 92.099), - SIMDE_FLOAT16_VALUE( 73.066), SIMDE_FLOAT16_VALUE( 29.509), -SIMDE_FLOAT16_VALUE( 77.995), -SIMDE_FLOAT16_VALUE( 81.816) } }, - { -SIMDE_FLOAT16_VALUE( 53.476), SIMDE_FLOAT16_VALUE( 8.724), -SIMDE_FLOAT16_VALUE( 88.674), -SIMDE_FLOAT16_VALUE( 48.309), - -SIMDE_FLOAT16_VALUE( 3.562), SIMDE_FLOAT16_VALUE( 14.309), -SIMDE_FLOAT16_VALUE( 99.801), -SIMDE_FLOAT16_VALUE( 11.703), - -SIMDE_FLOAT16_VALUE( 62.913), -SIMDE_FLOAT16_VALUE( 43.056), -SIMDE_FLOAT16_VALUE( 65.766), SIMDE_FLOAT16_VALUE( 92.099), - SIMDE_FLOAT16_VALUE( 73.066), SIMDE_FLOAT16_VALUE( 29.509), -SIMDE_FLOAT16_VALUE( 77.995), -SIMDE_FLOAT16_VALUE( 81.816) } }, + SIMDE_FLOAT16_VALUE( - 21.374), SIMDE_FLOAT16_VALUE( 82.466), SIMDE_FLOAT16_VALUE( 84.824), SIMDE_FLOAT16_VALUE( 31.885), + SIMDE_FLOAT16_VALUE( 17.599), SIMDE_FLOAT16_VALUE( - 18.858), SIMDE_FLOAT16_VALUE( - 97.376), SIMDE_FLOAT16_VALUE( - 85.414), + SIMDE_FLOAT16_VALUE( - 37.173), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( 51.414), SIMDE_FLOAT16_VALUE( 42.445) } }, + { { { SIMDE_FLOAT16_VALUE( - 58.353), SIMDE_FLOAT16_VALUE( 94.351), SIMDE_FLOAT16_VALUE( - 72.718), SIMDE_FLOAT16_VALUE( 44.738), + SIMDE_FLOAT16_VALUE( 88.331), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( 79.940), SIMDE_FLOAT16_VALUE( - 29.844) }, + { SIMDE_FLOAT16_VALUE( - 64.679), SIMDE_FLOAT16_VALUE( - 31.234), SIMDE_FLOAT16_VALUE( 25.402), SIMDE_FLOAT16_VALUE( 61.429), + SIMDE_FLOAT16_VALUE( - 80.532), SIMDE_FLOAT16_VALUE( 19.659), SIMDE_FLOAT16_VALUE( - 67.325), SIMDE_FLOAT16_VALUE( 54.634) } }, + { SIMDE_FLOAT16_VALUE( - 58.353), SIMDE_FLOAT16_VALUE( 94.351), SIMDE_FLOAT16_VALUE( - 72.718), SIMDE_FLOAT16_VALUE( 44.738), + SIMDE_FLOAT16_VALUE( 88.331), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( 79.940), SIMDE_FLOAT16_VALUE( - 29.844), + SIMDE_FLOAT16_VALUE( - 64.679), SIMDE_FLOAT16_VALUE( - 31.234), SIMDE_FLOAT16_VALUE( 25.402), SIMDE_FLOAT16_VALUE( 61.429), + SIMDE_FLOAT16_VALUE( - 80.532), SIMDE_FLOAT16_VALUE( 19.659), SIMDE_FLOAT16_VALUE( - 67.325), SIMDE_FLOAT16_VALUE( 54.634) } }, + { { { SIMDE_FLOAT16_VALUE( - 99.773), SIMDE_FLOAT16_VALUE( 27.004), SIMDE_FLOAT16_VALUE( 53.708), SIMDE_FLOAT16_VALUE( 12.664), + SIMDE_FLOAT16_VALUE( 66.275), SIMDE_FLOAT16_VALUE( - 0.836), SIMDE_FLOAT16_VALUE( - 22.661), SIMDE_FLOAT16_VALUE( 72.602) }, + { SIMDE_FLOAT16_VALUE( 25.260), SIMDE_FLOAT16_VALUE( - 83.782), SIMDE_FLOAT16_VALUE( - 61.087), SIMDE_FLOAT16_VALUE( - 38.948), + SIMDE_FLOAT16_VALUE( - 78.380), SIMDE_FLOAT16_VALUE( 6.817), SIMDE_FLOAT16_VALUE( - 82.373), SIMDE_FLOAT16_VALUE( - 60.011) } }, + { SIMDE_FLOAT16_VALUE( - 99.773), SIMDE_FLOAT16_VALUE( 27.004), SIMDE_FLOAT16_VALUE( 53.708), SIMDE_FLOAT16_VALUE( 12.664), + SIMDE_FLOAT16_VALUE( 66.275), SIMDE_FLOAT16_VALUE( - 0.836), SIMDE_FLOAT16_VALUE( - 22.661), SIMDE_FLOAT16_VALUE( 72.602), + SIMDE_FLOAT16_VALUE( 25.260), SIMDE_FLOAT16_VALUE( - 83.782), SIMDE_FLOAT16_VALUE( - 61.087), SIMDE_FLOAT16_VALUE( - 38.948), + SIMDE_FLOAT16_VALUE( - 78.380), SIMDE_FLOAT16_VALUE( 6.817), SIMDE_FLOAT16_VALUE( - 82.373), SIMDE_FLOAT16_VALUE( - 60.011) } }, + { { { SIMDE_FLOAT16_VALUE( - 53.476), SIMDE_FLOAT16_VALUE( 8.724), SIMDE_FLOAT16_VALUE( - 88.674), SIMDE_FLOAT16_VALUE( - 48.309), + SIMDE_FLOAT16_VALUE( - 3.562), SIMDE_FLOAT16_VALUE( 14.309), SIMDE_FLOAT16_VALUE( - 99.801), SIMDE_FLOAT16_VALUE( - 11.703) }, + { SIMDE_FLOAT16_VALUE( - 62.913), SIMDE_FLOAT16_VALUE( - 43.056), SIMDE_FLOAT16_VALUE( - 65.766), SIMDE_FLOAT16_VALUE( 92.099), + SIMDE_FLOAT16_VALUE( 73.066), SIMDE_FLOAT16_VALUE( 29.509), SIMDE_FLOAT16_VALUE( - 77.995), SIMDE_FLOAT16_VALUE( - 81.816) } }, + { SIMDE_FLOAT16_VALUE( - 53.476), SIMDE_FLOAT16_VALUE( 8.724), SIMDE_FLOAT16_VALUE( - 88.674), SIMDE_FLOAT16_VALUE( - 48.309), + SIMDE_FLOAT16_VALUE( - 3.562), SIMDE_FLOAT16_VALUE( 14.309), SIMDE_FLOAT16_VALUE( - 99.801), SIMDE_FLOAT16_VALUE( - 11.703), + SIMDE_FLOAT16_VALUE( - 62.913), SIMDE_FLOAT16_VALUE( - 43.056), SIMDE_FLOAT16_VALUE( - 65.766), SIMDE_FLOAT16_VALUE( 92.099), + SIMDE_FLOAT16_VALUE( 73.066), SIMDE_FLOAT16_VALUE( 29.509), SIMDE_FLOAT16_VALUE( - 77.995), SIMDE_FLOAT16_VALUE( - 81.816) } }, }; for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { @@ -88,6 +89,18 @@ test_simde_vst1q_f16_x2 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x2_t val[2] = simde_test_arm_neon_random_f16x2(-100.0f, 100.0f); + simde_float16x16_t r = simde_vst1q_f16_x2(val[2]); + + simde_test_arm_neon_write_f16x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st1q_x3.c b/test/arm/neon/st1q_x3.c index 7a0a9f2de..1c04f327e 100644 --- a/test/arm/neon/st1q_x3.c +++ b/test/arm/neon/st1q_x3.c @@ -7,106 +7,107 @@ static int test_simde_vst1q_f16_x3 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 val[3][8]; simde_float16 r[24]; } test_vec[] = { - { { { -SIMDE_FLOAT16_VALUE( 78.006), -SIMDE_FLOAT16_VALUE( 86.214), SIMDE_FLOAT16_VALUE( 79.768), -SIMDE_FLOAT16_VALUE( 58.640), - SIMDE_FLOAT16_VALUE( 95.290), -SIMDE_FLOAT16_VALUE( 58.694), -SIMDE_FLOAT16_VALUE( 66.494), SIMDE_FLOAT16_VALUE( 14.402) }, - { -SIMDE_FLOAT16_VALUE( 73.147), SIMDE_FLOAT16_VALUE( 86.011), -SIMDE_FLOAT16_VALUE( 57.821), SIMDE_FLOAT16_VALUE( 39.575), - -SIMDE_FLOAT16_VALUE( 71.723), -SIMDE_FLOAT16_VALUE( 56.950), -SIMDE_FLOAT16_VALUE( 64.715), SIMDE_FLOAT16_VALUE( 57.900) }, - { SIMDE_FLOAT16_VALUE( 61.685), -SIMDE_FLOAT16_VALUE( 81.983), SIMDE_FLOAT16_VALUE( 15.196), -SIMDE_FLOAT16_VALUE( 22.643), - SIMDE_FLOAT16_VALUE( 73.963), SIMDE_FLOAT16_VALUE( 69.945), -SIMDE_FLOAT16_VALUE( 18.252), SIMDE_FLOAT16_VALUE( 6.208) } }, - { -SIMDE_FLOAT16_VALUE( 78.006), -SIMDE_FLOAT16_VALUE( 86.214), SIMDE_FLOAT16_VALUE( 79.768), -SIMDE_FLOAT16_VALUE( 58.640), - SIMDE_FLOAT16_VALUE( 95.290), -SIMDE_FLOAT16_VALUE( 58.694), -SIMDE_FLOAT16_VALUE( 66.494), SIMDE_FLOAT16_VALUE( 14.402), - -SIMDE_FLOAT16_VALUE( 73.147), SIMDE_FLOAT16_VALUE( 86.011), -SIMDE_FLOAT16_VALUE( 57.821), SIMDE_FLOAT16_VALUE( 39.575), - -SIMDE_FLOAT16_VALUE( 71.723), -SIMDE_FLOAT16_VALUE( 56.950), -SIMDE_FLOAT16_VALUE( 64.715), SIMDE_FLOAT16_VALUE( 57.900), - SIMDE_FLOAT16_VALUE( 61.685), -SIMDE_FLOAT16_VALUE( 81.983), SIMDE_FLOAT16_VALUE( 15.196), -SIMDE_FLOAT16_VALUE( 22.643), - SIMDE_FLOAT16_VALUE( 73.963), SIMDE_FLOAT16_VALUE( 69.945), -SIMDE_FLOAT16_VALUE( 18.252), SIMDE_FLOAT16_VALUE( 6.208) } }, - { { { SIMDE_FLOAT16_VALUE( 75.124), SIMDE_FLOAT16_VALUE( 63.765), SIMDE_FLOAT16_VALUE( 93.445), -SIMDE_FLOAT16_VALUE( 2.808), - SIMDE_FLOAT16_VALUE( 21.150), -SIMDE_FLOAT16_VALUE( 27.804), SIMDE_FLOAT16_VALUE( 96.600), SIMDE_FLOAT16_VALUE( 49.484) }, - { -SIMDE_FLOAT16_VALUE( 21.286), SIMDE_FLOAT16_VALUE( 6.385), SIMDE_FLOAT16_VALUE( 58.966), -SIMDE_FLOAT16_VALUE( 25.964), + { { { SIMDE_FLOAT16_VALUE( - 78.006), SIMDE_FLOAT16_VALUE( - 86.214), SIMDE_FLOAT16_VALUE( 79.768), SIMDE_FLOAT16_VALUE( - 58.640), + SIMDE_FLOAT16_VALUE( 95.290), SIMDE_FLOAT16_VALUE( - 58.694), SIMDE_FLOAT16_VALUE( - 66.494), SIMDE_FLOAT16_VALUE( 14.402) }, + { SIMDE_FLOAT16_VALUE( - 73.147), SIMDE_FLOAT16_VALUE( 86.011), SIMDE_FLOAT16_VALUE( - 57.821), SIMDE_FLOAT16_VALUE( 39.575), + SIMDE_FLOAT16_VALUE( - 71.723), SIMDE_FLOAT16_VALUE( - 56.950), SIMDE_FLOAT16_VALUE( - 64.715), SIMDE_FLOAT16_VALUE( 57.900) }, + { SIMDE_FLOAT16_VALUE( 61.685), SIMDE_FLOAT16_VALUE( - 81.983), SIMDE_FLOAT16_VALUE( 15.196), SIMDE_FLOAT16_VALUE( - 22.643), + SIMDE_FLOAT16_VALUE( 73.963), SIMDE_FLOAT16_VALUE( 69.945), SIMDE_FLOAT16_VALUE( - 18.252), SIMDE_FLOAT16_VALUE( 6.208) } }, + { SIMDE_FLOAT16_VALUE( - 78.006), SIMDE_FLOAT16_VALUE( - 86.214), SIMDE_FLOAT16_VALUE( 79.768), SIMDE_FLOAT16_VALUE( - 58.640), + SIMDE_FLOAT16_VALUE( 95.290), SIMDE_FLOAT16_VALUE( - 58.694), SIMDE_FLOAT16_VALUE( - 66.494), SIMDE_FLOAT16_VALUE( 14.402), + SIMDE_FLOAT16_VALUE( - 73.147), SIMDE_FLOAT16_VALUE( 86.011), SIMDE_FLOAT16_VALUE( - 57.821), SIMDE_FLOAT16_VALUE( 39.575), + SIMDE_FLOAT16_VALUE( - 71.723), SIMDE_FLOAT16_VALUE( - 56.950), SIMDE_FLOAT16_VALUE( - 64.715), SIMDE_FLOAT16_VALUE( 57.900), + SIMDE_FLOAT16_VALUE( 61.685), SIMDE_FLOAT16_VALUE( - 81.983), SIMDE_FLOAT16_VALUE( 15.196), SIMDE_FLOAT16_VALUE( - 22.643), + SIMDE_FLOAT16_VALUE( 73.963), SIMDE_FLOAT16_VALUE( 69.945), SIMDE_FLOAT16_VALUE( - 18.252), SIMDE_FLOAT16_VALUE( 6.208) } }, + { { { SIMDE_FLOAT16_VALUE( 75.124), SIMDE_FLOAT16_VALUE( 63.765), SIMDE_FLOAT16_VALUE( 93.445), SIMDE_FLOAT16_VALUE( - 2.808), + SIMDE_FLOAT16_VALUE( 21.150), SIMDE_FLOAT16_VALUE( - 27.804), SIMDE_FLOAT16_VALUE( 96.600), SIMDE_FLOAT16_VALUE( 49.484) }, + { SIMDE_FLOAT16_VALUE( - 21.286), SIMDE_FLOAT16_VALUE( 6.385), SIMDE_FLOAT16_VALUE( 58.966), SIMDE_FLOAT16_VALUE( - 25.964), SIMDE_FLOAT16_VALUE( 81.303), SIMDE_FLOAT16_VALUE( 55.133), SIMDE_FLOAT16_VALUE( 59.277), SIMDE_FLOAT16_VALUE( 90.767) }, - { -SIMDE_FLOAT16_VALUE( 9.851), -SIMDE_FLOAT16_VALUE( 51.010), -SIMDE_FLOAT16_VALUE( 57.457), SIMDE_FLOAT16_VALUE( 76.293), - -SIMDE_FLOAT16_VALUE( 36.636), SIMDE_FLOAT16_VALUE( 71.898), SIMDE_FLOAT16_VALUE( 98.888), -SIMDE_FLOAT16_VALUE( 38.156) } }, - { SIMDE_FLOAT16_VALUE( 75.124), SIMDE_FLOAT16_VALUE( 63.765), SIMDE_FLOAT16_VALUE( 93.445), -SIMDE_FLOAT16_VALUE( 2.808), - SIMDE_FLOAT16_VALUE( 21.150), -SIMDE_FLOAT16_VALUE( 27.804), SIMDE_FLOAT16_VALUE( 96.600), SIMDE_FLOAT16_VALUE( 49.484), - -SIMDE_FLOAT16_VALUE( 21.286), SIMDE_FLOAT16_VALUE( 6.385), SIMDE_FLOAT16_VALUE( 58.966), -SIMDE_FLOAT16_VALUE( 25.964), + { SIMDE_FLOAT16_VALUE( - 9.851), SIMDE_FLOAT16_VALUE( - 51.010), SIMDE_FLOAT16_VALUE( - 57.457), SIMDE_FLOAT16_VALUE( 76.293), + SIMDE_FLOAT16_VALUE( - 36.636), SIMDE_FLOAT16_VALUE( 71.898), SIMDE_FLOAT16_VALUE( 98.888), SIMDE_FLOAT16_VALUE( - 38.156) } }, + { SIMDE_FLOAT16_VALUE( 75.124), SIMDE_FLOAT16_VALUE( 63.765), SIMDE_FLOAT16_VALUE( 93.445), SIMDE_FLOAT16_VALUE( - 2.808), + SIMDE_FLOAT16_VALUE( 21.150), SIMDE_FLOAT16_VALUE( - 27.804), SIMDE_FLOAT16_VALUE( 96.600), SIMDE_FLOAT16_VALUE( 49.484), + SIMDE_FLOAT16_VALUE( - 21.286), SIMDE_FLOAT16_VALUE( 6.385), SIMDE_FLOAT16_VALUE( 58.966), SIMDE_FLOAT16_VALUE( - 25.964), SIMDE_FLOAT16_VALUE( 81.303), SIMDE_FLOAT16_VALUE( 55.133), SIMDE_FLOAT16_VALUE( 59.277), SIMDE_FLOAT16_VALUE( 90.767), - -SIMDE_FLOAT16_VALUE( 9.851), -SIMDE_FLOAT16_VALUE( 51.010), -SIMDE_FLOAT16_VALUE( 57.457), SIMDE_FLOAT16_VALUE( 76.293), - -SIMDE_FLOAT16_VALUE( 36.636), SIMDE_FLOAT16_VALUE( 71.898), SIMDE_FLOAT16_VALUE( 98.888), -SIMDE_FLOAT16_VALUE( 38.156) } }, - { { { SIMDE_FLOAT16_VALUE( 26.535), -SIMDE_FLOAT16_VALUE( 91.027), -SIMDE_FLOAT16_VALUE( 79.934), -SIMDE_FLOAT16_VALUE( 46.283), - -SIMDE_FLOAT16_VALUE( 50.743), -SIMDE_FLOAT16_VALUE( 31.430), -SIMDE_FLOAT16_VALUE( 40.474), SIMDE_FLOAT16_VALUE( 52.962) }, - { SIMDE_FLOAT16_VALUE( 54.007), -SIMDE_FLOAT16_VALUE( 51.316), -SIMDE_FLOAT16_VALUE( 70.698), SIMDE_FLOAT16_VALUE( 59.510), - SIMDE_FLOAT16_VALUE( 60.522), -SIMDE_FLOAT16_VALUE( 83.540), SIMDE_FLOAT16_VALUE( 72.171), -SIMDE_FLOAT16_VALUE( 94.419) }, - { -SIMDE_FLOAT16_VALUE( 73.925), -SIMDE_FLOAT16_VALUE( 73.200), -SIMDE_FLOAT16_VALUE( 12.444), SIMDE_FLOAT16_VALUE( 72.493), - SIMDE_FLOAT16_VALUE( 27.042), SIMDE_FLOAT16_VALUE( 81.525), -SIMDE_FLOAT16_VALUE( 92.143), -SIMDE_FLOAT16_VALUE( 50.921) } }, - { SIMDE_FLOAT16_VALUE( 26.535), -SIMDE_FLOAT16_VALUE( 91.027), -SIMDE_FLOAT16_VALUE( 79.934), -SIMDE_FLOAT16_VALUE( 46.283), - -SIMDE_FLOAT16_VALUE( 50.743), -SIMDE_FLOAT16_VALUE( 31.430), -SIMDE_FLOAT16_VALUE( 40.474), SIMDE_FLOAT16_VALUE( 52.962), - SIMDE_FLOAT16_VALUE( 54.007), -SIMDE_FLOAT16_VALUE( 51.316), -SIMDE_FLOAT16_VALUE( 70.698), SIMDE_FLOAT16_VALUE( 59.510), - SIMDE_FLOAT16_VALUE( 60.522), -SIMDE_FLOAT16_VALUE( 83.540), SIMDE_FLOAT16_VALUE( 72.171), -SIMDE_FLOAT16_VALUE( 94.419), - -SIMDE_FLOAT16_VALUE( 73.925), -SIMDE_FLOAT16_VALUE( 73.200), -SIMDE_FLOAT16_VALUE( 12.444), SIMDE_FLOAT16_VALUE( 72.493), - SIMDE_FLOAT16_VALUE( 27.042), SIMDE_FLOAT16_VALUE( 81.525), -SIMDE_FLOAT16_VALUE( 92.143), -SIMDE_FLOAT16_VALUE( 50.921) } }, - { { { -SIMDE_FLOAT16_VALUE( 45.682), SIMDE_FLOAT16_VALUE( 52.798), -SIMDE_FLOAT16_VALUE( 80.990), -SIMDE_FLOAT16_VALUE( 61.788), - SIMDE_FLOAT16_VALUE( 54.221), SIMDE_FLOAT16_VALUE( 99.819), -SIMDE_FLOAT16_VALUE( 53.166), SIMDE_FLOAT16_VALUE( 62.212) }, - { -SIMDE_FLOAT16_VALUE( 26.140), -SIMDE_FLOAT16_VALUE( 44.258), -SIMDE_FLOAT16_VALUE( 63.797), SIMDE_FLOAT16_VALUE( 21.345), - SIMDE_FLOAT16_VALUE( 43.284), SIMDE_FLOAT16_VALUE( 49.659), SIMDE_FLOAT16_VALUE( 83.024), -SIMDE_FLOAT16_VALUE( 93.541) }, - { -SIMDE_FLOAT16_VALUE( 41.983), SIMDE_FLOAT16_VALUE( 72.431), -SIMDE_FLOAT16_VALUE( 72.624), -SIMDE_FLOAT16_VALUE( 68.362), - -SIMDE_FLOAT16_VALUE( 3.439), SIMDE_FLOAT16_VALUE( 57.763), SIMDE_FLOAT16_VALUE( 53.732), SIMDE_FLOAT16_VALUE( 23.477) } }, - { -SIMDE_FLOAT16_VALUE( 45.682), SIMDE_FLOAT16_VALUE( 52.798), -SIMDE_FLOAT16_VALUE( 80.990), -SIMDE_FLOAT16_VALUE( 61.788), - SIMDE_FLOAT16_VALUE( 54.221), SIMDE_FLOAT16_VALUE( 99.819), -SIMDE_FLOAT16_VALUE( 53.166), SIMDE_FLOAT16_VALUE( 62.212), - -SIMDE_FLOAT16_VALUE( 26.140), -SIMDE_FLOAT16_VALUE( 44.258), -SIMDE_FLOAT16_VALUE( 63.797), SIMDE_FLOAT16_VALUE( 21.345), - SIMDE_FLOAT16_VALUE( 43.284), SIMDE_FLOAT16_VALUE( 49.659), SIMDE_FLOAT16_VALUE( 83.024), -SIMDE_FLOAT16_VALUE( 93.541), - -SIMDE_FLOAT16_VALUE( 41.983), SIMDE_FLOAT16_VALUE( 72.431), -SIMDE_FLOAT16_VALUE( 72.624), -SIMDE_FLOAT16_VALUE( 68.362), - -SIMDE_FLOAT16_VALUE( 3.439), SIMDE_FLOAT16_VALUE( 57.763), SIMDE_FLOAT16_VALUE( 53.732), SIMDE_FLOAT16_VALUE( 23.477) } }, - { { { -SIMDE_FLOAT16_VALUE( 82.965), -SIMDE_FLOAT16_VALUE( 70.111), -SIMDE_FLOAT16_VALUE( 31.957), SIMDE_FLOAT16_VALUE( 61.018), - -SIMDE_FLOAT16_VALUE( 27.870), SIMDE_FLOAT16_VALUE( 71.621), -SIMDE_FLOAT16_VALUE( 77.867), -SIMDE_FLOAT16_VALUE( 30.557) }, - { SIMDE_FLOAT16_VALUE( 58.953), -SIMDE_FLOAT16_VALUE( 20.614), -SIMDE_FLOAT16_VALUE( 60.571), SIMDE_FLOAT16_VALUE( 63.967), - -SIMDE_FLOAT16_VALUE( 12.960), -SIMDE_FLOAT16_VALUE( 61.378), -SIMDE_FLOAT16_VALUE( 20.681), SIMDE_FLOAT16_VALUE( 73.740) }, - { SIMDE_FLOAT16_VALUE( 77.996), SIMDE_FLOAT16_VALUE( 4.822), -SIMDE_FLOAT16_VALUE( 39.992), SIMDE_FLOAT16_VALUE( 50.289), - -SIMDE_FLOAT16_VALUE( 37.043), -SIMDE_FLOAT16_VALUE( 89.635), SIMDE_FLOAT16_VALUE( 33.091), -SIMDE_FLOAT16_VALUE( 39.668) } }, - { -SIMDE_FLOAT16_VALUE( 82.965), -SIMDE_FLOAT16_VALUE( 70.111), -SIMDE_FLOAT16_VALUE( 31.957), SIMDE_FLOAT16_VALUE( 61.018), - -SIMDE_FLOAT16_VALUE( 27.870), SIMDE_FLOAT16_VALUE( 71.621), -SIMDE_FLOAT16_VALUE( 77.867), -SIMDE_FLOAT16_VALUE( 30.557), - SIMDE_FLOAT16_VALUE( 58.953), -SIMDE_FLOAT16_VALUE( 20.614), -SIMDE_FLOAT16_VALUE( 60.571), SIMDE_FLOAT16_VALUE( 63.967), - -SIMDE_FLOAT16_VALUE( 12.960), -SIMDE_FLOAT16_VALUE( 61.378), -SIMDE_FLOAT16_VALUE( 20.681), SIMDE_FLOAT16_VALUE( 73.740), - SIMDE_FLOAT16_VALUE( 77.996), SIMDE_FLOAT16_VALUE( 4.822), -SIMDE_FLOAT16_VALUE( 39.992), SIMDE_FLOAT16_VALUE( 50.289), - -SIMDE_FLOAT16_VALUE( 37.043), -SIMDE_FLOAT16_VALUE( 89.635), SIMDE_FLOAT16_VALUE( 33.091), -SIMDE_FLOAT16_VALUE( 39.668) } }, - { { { SIMDE_FLOAT16_VALUE( 3.917), SIMDE_FLOAT16_VALUE( 67.525), -SIMDE_FLOAT16_VALUE( 40.144), SIMDE_FLOAT16_VALUE( 98.412), - -SIMDE_FLOAT16_VALUE( 5.628), -SIMDE_FLOAT16_VALUE( 91.834), SIMDE_FLOAT16_VALUE( 66.132), -SIMDE_FLOAT16_VALUE( 44.698) }, - { SIMDE_FLOAT16_VALUE( 3.461), -SIMDE_FLOAT16_VALUE( 1.903), -SIMDE_FLOAT16_VALUE( 7.486), -SIMDE_FLOAT16_VALUE( 5.095), - -SIMDE_FLOAT16_VALUE( 4.045), SIMDE_FLOAT16_VALUE( 76.155), SIMDE_FLOAT16_VALUE( 45.573), -SIMDE_FLOAT16_VALUE( 17.845) }, - { -SIMDE_FLOAT16_VALUE( 69.007), -SIMDE_FLOAT16_VALUE( 91.001), SIMDE_FLOAT16_VALUE( 47.281), -SIMDE_FLOAT16_VALUE( 6.930), - -SIMDE_FLOAT16_VALUE( 31.826), -SIMDE_FLOAT16_VALUE( 9.605), -SIMDE_FLOAT16_VALUE( 8.507), -SIMDE_FLOAT16_VALUE( 69.550) } }, - { SIMDE_FLOAT16_VALUE( 3.917), SIMDE_FLOAT16_VALUE( 67.525), -SIMDE_FLOAT16_VALUE( 40.144), SIMDE_FLOAT16_VALUE( 98.412), - -SIMDE_FLOAT16_VALUE( 5.628), -SIMDE_FLOAT16_VALUE( 91.834), SIMDE_FLOAT16_VALUE( 66.132), -SIMDE_FLOAT16_VALUE( 44.698), - SIMDE_FLOAT16_VALUE( 3.461), -SIMDE_FLOAT16_VALUE( 1.903), -SIMDE_FLOAT16_VALUE( 7.486), -SIMDE_FLOAT16_VALUE( 5.095), - -SIMDE_FLOAT16_VALUE( 4.045), SIMDE_FLOAT16_VALUE( 76.155), SIMDE_FLOAT16_VALUE( 45.573), -SIMDE_FLOAT16_VALUE( 17.845), - -SIMDE_FLOAT16_VALUE( 69.007), -SIMDE_FLOAT16_VALUE( 91.001), SIMDE_FLOAT16_VALUE( 47.281), -SIMDE_FLOAT16_VALUE( 6.930), - -SIMDE_FLOAT16_VALUE( 31.826), -SIMDE_FLOAT16_VALUE( 9.605), -SIMDE_FLOAT16_VALUE( 8.507), -SIMDE_FLOAT16_VALUE( 69.550) } }, - { { { -SIMDE_FLOAT16_VALUE( 83.740), -SIMDE_FLOAT16_VALUE( 6.331), -SIMDE_FLOAT16_VALUE( 89.045), -SIMDE_FLOAT16_VALUE( 94.435), - -SIMDE_FLOAT16_VALUE( 65.111), -SIMDE_FLOAT16_VALUE( 70.456), SIMDE_FLOAT16_VALUE( 11.289), SIMDE_FLOAT16_VALUE( 7.177) }, - { -SIMDE_FLOAT16_VALUE( 90.849), -SIMDE_FLOAT16_VALUE( 95.953), -SIMDE_FLOAT16_VALUE( 42.247), SIMDE_FLOAT16_VALUE( 14.309), - -SIMDE_FLOAT16_VALUE( 95.825), -SIMDE_FLOAT16_VALUE( 22.270), SIMDE_FLOAT16_VALUE( 83.373), -SIMDE_FLOAT16_VALUE( 79.802) }, - { -SIMDE_FLOAT16_VALUE( 22.035), -SIMDE_FLOAT16_VALUE( 92.921), SIMDE_FLOAT16_VALUE( 43.906), SIMDE_FLOAT16_VALUE( 26.805), - SIMDE_FLOAT16_VALUE( 51.738), -SIMDE_FLOAT16_VALUE( 42.852), SIMDE_FLOAT16_VALUE( 5.828), SIMDE_FLOAT16_VALUE( 44.079) } }, - { -SIMDE_FLOAT16_VALUE( 83.740), -SIMDE_FLOAT16_VALUE( 6.331), -SIMDE_FLOAT16_VALUE( 89.045), -SIMDE_FLOAT16_VALUE( 94.435), - -SIMDE_FLOAT16_VALUE( 65.111), -SIMDE_FLOAT16_VALUE( 70.456), SIMDE_FLOAT16_VALUE( 11.289), SIMDE_FLOAT16_VALUE( 7.177), - -SIMDE_FLOAT16_VALUE( 90.849), -SIMDE_FLOAT16_VALUE( 95.953), -SIMDE_FLOAT16_VALUE( 42.247), SIMDE_FLOAT16_VALUE( 14.309), - -SIMDE_FLOAT16_VALUE( 95.825), -SIMDE_FLOAT16_VALUE( 22.270), SIMDE_FLOAT16_VALUE( 83.373), -SIMDE_FLOAT16_VALUE( 79.802), - -SIMDE_FLOAT16_VALUE( 22.035), -SIMDE_FLOAT16_VALUE( 92.921), SIMDE_FLOAT16_VALUE( 43.906), SIMDE_FLOAT16_VALUE( 26.805), - SIMDE_FLOAT16_VALUE( 51.738), -SIMDE_FLOAT16_VALUE( 42.852), SIMDE_FLOAT16_VALUE( 5.828), SIMDE_FLOAT16_VALUE( 44.079) } }, - { { { -SIMDE_FLOAT16_VALUE( 16.629), SIMDE_FLOAT16_VALUE( 51.044), SIMDE_FLOAT16_VALUE( 19.393), SIMDE_FLOAT16_VALUE( 55.131), - -SIMDE_FLOAT16_VALUE( 43.901), SIMDE_FLOAT16_VALUE( 70.204), SIMDE_FLOAT16_VALUE( 97.396), SIMDE_FLOAT16_VALUE( 81.774) }, - { -SIMDE_FLOAT16_VALUE( 65.652), SIMDE_FLOAT16_VALUE( 84.250), -SIMDE_FLOAT16_VALUE( 73.434), SIMDE_FLOAT16_VALUE( 83.066), - SIMDE_FLOAT16_VALUE( 98.140), SIMDE_FLOAT16_VALUE( 10.456), -SIMDE_FLOAT16_VALUE( 74.473), SIMDE_FLOAT16_VALUE( 36.574) }, - { -SIMDE_FLOAT16_VALUE( 30.153), SIMDE_FLOAT16_VALUE( 52.521), -SIMDE_FLOAT16_VALUE( 21.877), SIMDE_FLOAT16_VALUE( 99.308), - -SIMDE_FLOAT16_VALUE( 78.712), -SIMDE_FLOAT16_VALUE( 45.652), -SIMDE_FLOAT16_VALUE( 23.870), SIMDE_FLOAT16_VALUE( 33.651) } }, - { -SIMDE_FLOAT16_VALUE( 16.629), SIMDE_FLOAT16_VALUE( 51.044), SIMDE_FLOAT16_VALUE( 19.393), SIMDE_FLOAT16_VALUE( 55.131), - -SIMDE_FLOAT16_VALUE( 43.901), SIMDE_FLOAT16_VALUE( 70.204), SIMDE_FLOAT16_VALUE( 97.396), SIMDE_FLOAT16_VALUE( 81.774), - -SIMDE_FLOAT16_VALUE( 65.652), SIMDE_FLOAT16_VALUE( 84.250), -SIMDE_FLOAT16_VALUE( 73.434), SIMDE_FLOAT16_VALUE( 83.066), - SIMDE_FLOAT16_VALUE( 98.140), SIMDE_FLOAT16_VALUE( 10.456), -SIMDE_FLOAT16_VALUE( 74.473), SIMDE_FLOAT16_VALUE( 36.574), - -SIMDE_FLOAT16_VALUE( 30.153), SIMDE_FLOAT16_VALUE( 52.521), -SIMDE_FLOAT16_VALUE( 21.877), SIMDE_FLOAT16_VALUE( 99.308), - -SIMDE_FLOAT16_VALUE( 78.712), -SIMDE_FLOAT16_VALUE( 45.652), -SIMDE_FLOAT16_VALUE( 23.870), SIMDE_FLOAT16_VALUE( 33.651) } }, + SIMDE_FLOAT16_VALUE( - 9.851), SIMDE_FLOAT16_VALUE( - 51.010), SIMDE_FLOAT16_VALUE( - 57.457), SIMDE_FLOAT16_VALUE( 76.293), + SIMDE_FLOAT16_VALUE( - 36.636), SIMDE_FLOAT16_VALUE( 71.898), SIMDE_FLOAT16_VALUE( 98.888), SIMDE_FLOAT16_VALUE( - 38.156) } }, + { { { SIMDE_FLOAT16_VALUE( 26.535), SIMDE_FLOAT16_VALUE( - 91.027), SIMDE_FLOAT16_VALUE( - 79.934), SIMDE_FLOAT16_VALUE( - 46.283), + SIMDE_FLOAT16_VALUE( - 50.743), SIMDE_FLOAT16_VALUE( - 31.430), SIMDE_FLOAT16_VALUE( - 40.474), SIMDE_FLOAT16_VALUE( 52.962) }, + { SIMDE_FLOAT16_VALUE( 54.007), SIMDE_FLOAT16_VALUE( - 51.316), SIMDE_FLOAT16_VALUE( - 70.698), SIMDE_FLOAT16_VALUE( 59.510), + SIMDE_FLOAT16_VALUE( 60.522), SIMDE_FLOAT16_VALUE( - 83.540), SIMDE_FLOAT16_VALUE( 72.171), SIMDE_FLOAT16_VALUE( - 94.419) }, + { SIMDE_FLOAT16_VALUE( - 73.925), SIMDE_FLOAT16_VALUE( - 73.200), SIMDE_FLOAT16_VALUE( - 12.444), SIMDE_FLOAT16_VALUE( 72.493), + SIMDE_FLOAT16_VALUE( 27.042), SIMDE_FLOAT16_VALUE( 81.525), SIMDE_FLOAT16_VALUE( - 92.143), SIMDE_FLOAT16_VALUE( - 50.921) } }, + { SIMDE_FLOAT16_VALUE( 26.535), SIMDE_FLOAT16_VALUE( - 91.027), SIMDE_FLOAT16_VALUE( - 79.934), SIMDE_FLOAT16_VALUE( - 46.283), + SIMDE_FLOAT16_VALUE( - 50.743), SIMDE_FLOAT16_VALUE( - 31.430), SIMDE_FLOAT16_VALUE( - 40.474), SIMDE_FLOAT16_VALUE( 52.962), + SIMDE_FLOAT16_VALUE( 54.007), SIMDE_FLOAT16_VALUE( - 51.316), SIMDE_FLOAT16_VALUE( - 70.698), SIMDE_FLOAT16_VALUE( 59.510), + SIMDE_FLOAT16_VALUE( 60.522), SIMDE_FLOAT16_VALUE( - 83.540), SIMDE_FLOAT16_VALUE( 72.171), SIMDE_FLOAT16_VALUE( - 94.419), + SIMDE_FLOAT16_VALUE( - 73.925), SIMDE_FLOAT16_VALUE( - 73.200), SIMDE_FLOAT16_VALUE( - 12.444), SIMDE_FLOAT16_VALUE( 72.493), + SIMDE_FLOAT16_VALUE( 27.042), SIMDE_FLOAT16_VALUE( 81.525), SIMDE_FLOAT16_VALUE( - 92.143), SIMDE_FLOAT16_VALUE( - 50.921) } }, + { { { SIMDE_FLOAT16_VALUE( - 45.682), SIMDE_FLOAT16_VALUE( 52.798), SIMDE_FLOAT16_VALUE( - 80.990), SIMDE_FLOAT16_VALUE( - 61.788), + SIMDE_FLOAT16_VALUE( 54.221), SIMDE_FLOAT16_VALUE( 99.819), SIMDE_FLOAT16_VALUE( - 53.166), SIMDE_FLOAT16_VALUE( 62.212) }, + { SIMDE_FLOAT16_VALUE( - 26.140), SIMDE_FLOAT16_VALUE( - 44.258), SIMDE_FLOAT16_VALUE( - 63.797), SIMDE_FLOAT16_VALUE( 21.345), + SIMDE_FLOAT16_VALUE( 43.284), SIMDE_FLOAT16_VALUE( 49.659), SIMDE_FLOAT16_VALUE( 83.024), SIMDE_FLOAT16_VALUE( - 93.541) }, + { SIMDE_FLOAT16_VALUE( - 41.983), SIMDE_FLOAT16_VALUE( 72.431), SIMDE_FLOAT16_VALUE( - 72.624), SIMDE_FLOAT16_VALUE( - 68.362), + SIMDE_FLOAT16_VALUE( - 3.439), SIMDE_FLOAT16_VALUE( 57.763), SIMDE_FLOAT16_VALUE( 53.732), SIMDE_FLOAT16_VALUE( 23.477) } }, + { SIMDE_FLOAT16_VALUE( - 45.682), SIMDE_FLOAT16_VALUE( 52.798), SIMDE_FLOAT16_VALUE( - 80.990), SIMDE_FLOAT16_VALUE( - 61.788), + SIMDE_FLOAT16_VALUE( 54.221), SIMDE_FLOAT16_VALUE( 99.819), SIMDE_FLOAT16_VALUE( - 53.166), SIMDE_FLOAT16_VALUE( 62.212), + SIMDE_FLOAT16_VALUE( - 26.140), SIMDE_FLOAT16_VALUE( - 44.258), SIMDE_FLOAT16_VALUE( - 63.797), SIMDE_FLOAT16_VALUE( 21.345), + SIMDE_FLOAT16_VALUE( 43.284), SIMDE_FLOAT16_VALUE( 49.659), SIMDE_FLOAT16_VALUE( 83.024), SIMDE_FLOAT16_VALUE( - 93.541), + SIMDE_FLOAT16_VALUE( - 41.983), SIMDE_FLOAT16_VALUE( 72.431), SIMDE_FLOAT16_VALUE( - 72.624), SIMDE_FLOAT16_VALUE( - 68.362), + SIMDE_FLOAT16_VALUE( - 3.439), SIMDE_FLOAT16_VALUE( 57.763), SIMDE_FLOAT16_VALUE( 53.732), SIMDE_FLOAT16_VALUE( 23.477) } }, + { { { SIMDE_FLOAT16_VALUE( - 82.965), SIMDE_FLOAT16_VALUE( - 70.111), SIMDE_FLOAT16_VALUE( - 31.957), SIMDE_FLOAT16_VALUE( 61.018), + SIMDE_FLOAT16_VALUE( - 27.870), SIMDE_FLOAT16_VALUE( 71.621), SIMDE_FLOAT16_VALUE( - 77.867), SIMDE_FLOAT16_VALUE( - 30.557) }, + { SIMDE_FLOAT16_VALUE( 58.953), SIMDE_FLOAT16_VALUE( - 20.614), SIMDE_FLOAT16_VALUE( - 60.571), SIMDE_FLOAT16_VALUE( 63.967), + SIMDE_FLOAT16_VALUE( - 12.960), SIMDE_FLOAT16_VALUE( - 61.378), SIMDE_FLOAT16_VALUE( - 20.681), SIMDE_FLOAT16_VALUE( 73.740) }, + { SIMDE_FLOAT16_VALUE( 77.996), SIMDE_FLOAT16_VALUE( 4.822), SIMDE_FLOAT16_VALUE( - 39.992), SIMDE_FLOAT16_VALUE( 50.289), + SIMDE_FLOAT16_VALUE( - 37.043), SIMDE_FLOAT16_VALUE( - 89.635), SIMDE_FLOAT16_VALUE( 33.091), SIMDE_FLOAT16_VALUE( - 39.668) } }, + { SIMDE_FLOAT16_VALUE( - 82.965), SIMDE_FLOAT16_VALUE( - 70.111), SIMDE_FLOAT16_VALUE( - 31.957), SIMDE_FLOAT16_VALUE( 61.018), + SIMDE_FLOAT16_VALUE( - 27.870), SIMDE_FLOAT16_VALUE( 71.621), SIMDE_FLOAT16_VALUE( - 77.867), SIMDE_FLOAT16_VALUE( - 30.557), + SIMDE_FLOAT16_VALUE( 58.953), SIMDE_FLOAT16_VALUE( - 20.614), SIMDE_FLOAT16_VALUE( - 60.571), SIMDE_FLOAT16_VALUE( 63.967), + SIMDE_FLOAT16_VALUE( - 12.960), SIMDE_FLOAT16_VALUE( - 61.378), SIMDE_FLOAT16_VALUE( - 20.681), SIMDE_FLOAT16_VALUE( 73.740), + SIMDE_FLOAT16_VALUE( 77.996), SIMDE_FLOAT16_VALUE( 4.822), SIMDE_FLOAT16_VALUE( - 39.992), SIMDE_FLOAT16_VALUE( 50.289), + SIMDE_FLOAT16_VALUE( - 37.043), SIMDE_FLOAT16_VALUE( - 89.635), SIMDE_FLOAT16_VALUE( 33.091), SIMDE_FLOAT16_VALUE( - 39.668) } }, + { { { SIMDE_FLOAT16_VALUE( 3.917), SIMDE_FLOAT16_VALUE( 67.525), SIMDE_FLOAT16_VALUE( - 40.144), SIMDE_FLOAT16_VALUE( 98.412), + SIMDE_FLOAT16_VALUE( - 5.628), SIMDE_FLOAT16_VALUE( - 91.834), SIMDE_FLOAT16_VALUE( 66.132), SIMDE_FLOAT16_VALUE( - 44.698) }, + { SIMDE_FLOAT16_VALUE( 3.461), SIMDE_FLOAT16_VALUE( - 1.903), SIMDE_FLOAT16_VALUE( - 7.486), SIMDE_FLOAT16_VALUE( - 5.095), + SIMDE_FLOAT16_VALUE( - 4.045), SIMDE_FLOAT16_VALUE( 76.155), SIMDE_FLOAT16_VALUE( 45.573), SIMDE_FLOAT16_VALUE( - 17.845) }, + { SIMDE_FLOAT16_VALUE( - 69.007), SIMDE_FLOAT16_VALUE( - 91.001), SIMDE_FLOAT16_VALUE( 47.281), SIMDE_FLOAT16_VALUE( - 6.930), + SIMDE_FLOAT16_VALUE( - 31.826), SIMDE_FLOAT16_VALUE( - 9.605), SIMDE_FLOAT16_VALUE( - 8.507), SIMDE_FLOAT16_VALUE( - 69.550) } }, + { SIMDE_FLOAT16_VALUE( 3.917), SIMDE_FLOAT16_VALUE( 67.525), SIMDE_FLOAT16_VALUE( - 40.144), SIMDE_FLOAT16_VALUE( 98.412), + SIMDE_FLOAT16_VALUE( - 5.628), SIMDE_FLOAT16_VALUE( - 91.834), SIMDE_FLOAT16_VALUE( 66.132), SIMDE_FLOAT16_VALUE( - 44.698), + SIMDE_FLOAT16_VALUE( 3.461), SIMDE_FLOAT16_VALUE( - 1.903), SIMDE_FLOAT16_VALUE( - 7.486), SIMDE_FLOAT16_VALUE( - 5.095), + SIMDE_FLOAT16_VALUE( - 4.045), SIMDE_FLOAT16_VALUE( 76.155), SIMDE_FLOAT16_VALUE( 45.573), SIMDE_FLOAT16_VALUE( - 17.845), + SIMDE_FLOAT16_VALUE( - 69.007), SIMDE_FLOAT16_VALUE( - 91.001), SIMDE_FLOAT16_VALUE( 47.281), SIMDE_FLOAT16_VALUE( - 6.930), + SIMDE_FLOAT16_VALUE( - 31.826), SIMDE_FLOAT16_VALUE( - 9.605), SIMDE_FLOAT16_VALUE( - 8.507), SIMDE_FLOAT16_VALUE( - 69.550) } }, + { { { SIMDE_FLOAT16_VALUE( - 83.740), SIMDE_FLOAT16_VALUE( - 6.331), SIMDE_FLOAT16_VALUE( - 89.045), SIMDE_FLOAT16_VALUE( - 94.435), + SIMDE_FLOAT16_VALUE( - 65.111), SIMDE_FLOAT16_VALUE( - 70.456), SIMDE_FLOAT16_VALUE( 11.289), SIMDE_FLOAT16_VALUE( 7.177) }, + { SIMDE_FLOAT16_VALUE( - 90.849), SIMDE_FLOAT16_VALUE( - 95.953), SIMDE_FLOAT16_VALUE( - 42.247), SIMDE_FLOAT16_VALUE( 14.309), + SIMDE_FLOAT16_VALUE( - 95.825), SIMDE_FLOAT16_VALUE( - 22.270), SIMDE_FLOAT16_VALUE( 83.373), SIMDE_FLOAT16_VALUE( - 79.802) }, + { SIMDE_FLOAT16_VALUE( - 22.035), SIMDE_FLOAT16_VALUE( - 92.921), SIMDE_FLOAT16_VALUE( 43.906), SIMDE_FLOAT16_VALUE( 26.805), + SIMDE_FLOAT16_VALUE( 51.738), SIMDE_FLOAT16_VALUE( - 42.852), SIMDE_FLOAT16_VALUE( 5.828), SIMDE_FLOAT16_VALUE( 44.079) } }, + { SIMDE_FLOAT16_VALUE( - 83.740), SIMDE_FLOAT16_VALUE( - 6.331), SIMDE_FLOAT16_VALUE( - 89.045), SIMDE_FLOAT16_VALUE( - 94.435), + SIMDE_FLOAT16_VALUE( - 65.111), SIMDE_FLOAT16_VALUE( - 70.456), SIMDE_FLOAT16_VALUE( 11.289), SIMDE_FLOAT16_VALUE( 7.177), + SIMDE_FLOAT16_VALUE( - 90.849), SIMDE_FLOAT16_VALUE( - 95.953), SIMDE_FLOAT16_VALUE( - 42.247), SIMDE_FLOAT16_VALUE( 14.309), + SIMDE_FLOAT16_VALUE( - 95.825), SIMDE_FLOAT16_VALUE( - 22.270), SIMDE_FLOAT16_VALUE( 83.373), SIMDE_FLOAT16_VALUE( - 79.802), + SIMDE_FLOAT16_VALUE( - 22.035), SIMDE_FLOAT16_VALUE( - 92.921), SIMDE_FLOAT16_VALUE( 43.906), SIMDE_FLOAT16_VALUE( 26.805), + SIMDE_FLOAT16_VALUE( 51.738), SIMDE_FLOAT16_VALUE( - 42.852), SIMDE_FLOAT16_VALUE( 5.828), SIMDE_FLOAT16_VALUE( 44.079) } }, + { { { SIMDE_FLOAT16_VALUE( - 16.629), SIMDE_FLOAT16_VALUE( 51.044), SIMDE_FLOAT16_VALUE( 19.393), SIMDE_FLOAT16_VALUE( 55.131), + SIMDE_FLOAT16_VALUE( - 43.901), SIMDE_FLOAT16_VALUE( 70.204), SIMDE_FLOAT16_VALUE( 97.396), SIMDE_FLOAT16_VALUE( 81.774) }, + { SIMDE_FLOAT16_VALUE( - 65.652), SIMDE_FLOAT16_VALUE( 84.250), SIMDE_FLOAT16_VALUE( - 73.434), SIMDE_FLOAT16_VALUE( 83.066), + SIMDE_FLOAT16_VALUE( 98.140), SIMDE_FLOAT16_VALUE( 10.456), SIMDE_FLOAT16_VALUE( - 74.473), SIMDE_FLOAT16_VALUE( 36.574) }, + { SIMDE_FLOAT16_VALUE( - 30.153), SIMDE_FLOAT16_VALUE( 52.521), SIMDE_FLOAT16_VALUE( - 21.877), SIMDE_FLOAT16_VALUE( 99.308), + SIMDE_FLOAT16_VALUE( - 78.712), SIMDE_FLOAT16_VALUE( - 45.652), SIMDE_FLOAT16_VALUE( - 23.870), SIMDE_FLOAT16_VALUE( 33.651) } }, + { SIMDE_FLOAT16_VALUE( - 16.629), SIMDE_FLOAT16_VALUE( 51.044), SIMDE_FLOAT16_VALUE( 19.393), SIMDE_FLOAT16_VALUE( 55.131), + SIMDE_FLOAT16_VALUE( - 43.901), SIMDE_FLOAT16_VALUE( 70.204), SIMDE_FLOAT16_VALUE( 97.396), SIMDE_FLOAT16_VALUE( 81.774), + SIMDE_FLOAT16_VALUE( - 65.652), SIMDE_FLOAT16_VALUE( 84.250), SIMDE_FLOAT16_VALUE( - 73.434), SIMDE_FLOAT16_VALUE( 83.066), + SIMDE_FLOAT16_VALUE( 98.140), SIMDE_FLOAT16_VALUE( 10.456), SIMDE_FLOAT16_VALUE( - 74.473), SIMDE_FLOAT16_VALUE( 36.574), + SIMDE_FLOAT16_VALUE( - 30.153), SIMDE_FLOAT16_VALUE( 52.521), SIMDE_FLOAT16_VALUE( - 21.877), SIMDE_FLOAT16_VALUE( 99.308), + SIMDE_FLOAT16_VALUE( - 78.712), SIMDE_FLOAT16_VALUE( - 45.652), SIMDE_FLOAT16_VALUE( - 23.870), SIMDE_FLOAT16_VALUE( 33.651) } }, }; for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { @@ -121,6 +122,18 @@ test_simde_vst1q_f16_x3 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x3_t val[3] = simde_test_arm_neon_random_f16x3(-100.0f, 100.0f); + simde_float16x24_t r = simde_vst1q_f16_x3(val[3]); + + simde_test_arm_neon_write_f16x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x24(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st1q_x4.c b/test/arm/neon/st1q_x4.c index 8e89bc1cb..3cc890423 100644 --- a/test/arm/neon/st1q_x4.c +++ b/test/arm/neon/st1q_x4.c @@ -7,138 +7,139 @@ static int test_simde_vst1q_f16_x4 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 val[4][8]; simde_float16 r[32]; } test_vec[] = { - { { { -SIMDE_FLOAT16_VALUE( 22.750), SIMDE_FLOAT16_VALUE( 61.096), SIMDE_FLOAT16_VALUE( 69.465), SIMDE_FLOAT16_VALUE( 61.036), - SIMDE_FLOAT16_VALUE( 97.235), SIMDE_FLOAT16_VALUE( 49.615), -SIMDE_FLOAT16_VALUE( 97.607), -SIMDE_FLOAT16_VALUE( 78.562) }, - { -SIMDE_FLOAT16_VALUE( 60.626), -SIMDE_FLOAT16_VALUE( 21.392), SIMDE_FLOAT16_VALUE( 32.623), -SIMDE_FLOAT16_VALUE( 22.547), - SIMDE_FLOAT16_VALUE( 99.897), SIMDE_FLOAT16_VALUE( 65.091), -SIMDE_FLOAT16_VALUE( 5.726), SIMDE_FLOAT16_VALUE( 95.620) }, - { -SIMDE_FLOAT16_VALUE( 23.061), -SIMDE_FLOAT16_VALUE( 37.099), -SIMDE_FLOAT16_VALUE( 36.446), -SIMDE_FLOAT16_VALUE( 62.836), - SIMDE_FLOAT16_VALUE( 11.655), -SIMDE_FLOAT16_VALUE( 63.088), SIMDE_FLOAT16_VALUE( 11.587), SIMDE_FLOAT16_VALUE( 29.929) }, - { -SIMDE_FLOAT16_VALUE( 71.852), SIMDE_FLOAT16_VALUE( 31.326), -SIMDE_FLOAT16_VALUE( 83.956), -SIMDE_FLOAT16_VALUE( 18.453), - SIMDE_FLOAT16_VALUE( 97.022), -SIMDE_FLOAT16_VALUE( 67.287), SIMDE_FLOAT16_VALUE( 14.241), SIMDE_FLOAT16_VALUE( 27.963) } }, - { -SIMDE_FLOAT16_VALUE( 22.750), SIMDE_FLOAT16_VALUE( 61.096), SIMDE_FLOAT16_VALUE( 69.465), SIMDE_FLOAT16_VALUE( 61.036), - SIMDE_FLOAT16_VALUE( 97.235), SIMDE_FLOAT16_VALUE( 49.615), -SIMDE_FLOAT16_VALUE( 97.607), -SIMDE_FLOAT16_VALUE( 78.562), - -SIMDE_FLOAT16_VALUE( 60.626), -SIMDE_FLOAT16_VALUE( 21.392), SIMDE_FLOAT16_VALUE( 32.623), -SIMDE_FLOAT16_VALUE( 22.547), - SIMDE_FLOAT16_VALUE( 99.897), SIMDE_FLOAT16_VALUE( 65.091), -SIMDE_FLOAT16_VALUE( 5.726), SIMDE_FLOAT16_VALUE( 95.620), - -SIMDE_FLOAT16_VALUE( 23.061), -SIMDE_FLOAT16_VALUE( 37.099), -SIMDE_FLOAT16_VALUE( 36.446), -SIMDE_FLOAT16_VALUE( 62.836), - SIMDE_FLOAT16_VALUE( 11.655), -SIMDE_FLOAT16_VALUE( 63.088), SIMDE_FLOAT16_VALUE( 11.587), SIMDE_FLOAT16_VALUE( 29.929), - -SIMDE_FLOAT16_VALUE( 71.852), SIMDE_FLOAT16_VALUE( 31.326), -SIMDE_FLOAT16_VALUE( 83.956), -SIMDE_FLOAT16_VALUE( 18.453), - SIMDE_FLOAT16_VALUE( 97.022), -SIMDE_FLOAT16_VALUE( 67.287), SIMDE_FLOAT16_VALUE( 14.241), SIMDE_FLOAT16_VALUE( 27.963) } }, - { { { SIMDE_FLOAT16_VALUE( 29.494), -SIMDE_FLOAT16_VALUE( 56.304), SIMDE_FLOAT16_VALUE( 67.254), -SIMDE_FLOAT16_VALUE( 54.309), + { { { SIMDE_FLOAT16_VALUE( - 22.750), SIMDE_FLOAT16_VALUE( 61.096), SIMDE_FLOAT16_VALUE( 69.465), SIMDE_FLOAT16_VALUE( 61.036), + SIMDE_FLOAT16_VALUE( 97.235), SIMDE_FLOAT16_VALUE( 49.615), SIMDE_FLOAT16_VALUE( - 97.607), SIMDE_FLOAT16_VALUE( - 78.562) }, + { SIMDE_FLOAT16_VALUE( - 60.626), SIMDE_FLOAT16_VALUE( - 21.392), SIMDE_FLOAT16_VALUE( 32.623), SIMDE_FLOAT16_VALUE( - 22.547), + SIMDE_FLOAT16_VALUE( 99.897), SIMDE_FLOAT16_VALUE( 65.091), SIMDE_FLOAT16_VALUE( - 5.726), SIMDE_FLOAT16_VALUE( 95.620) }, + { SIMDE_FLOAT16_VALUE( - 23.061), SIMDE_FLOAT16_VALUE( - 37.099), SIMDE_FLOAT16_VALUE( - 36.446), SIMDE_FLOAT16_VALUE( - 62.836), + SIMDE_FLOAT16_VALUE( 11.655), SIMDE_FLOAT16_VALUE( - 63.088), SIMDE_FLOAT16_VALUE( 11.587), SIMDE_FLOAT16_VALUE( 29.929) }, + { SIMDE_FLOAT16_VALUE( - 71.852), SIMDE_FLOAT16_VALUE( 31.326), SIMDE_FLOAT16_VALUE( - 83.956), SIMDE_FLOAT16_VALUE( - 18.453), + SIMDE_FLOAT16_VALUE( 97.022), SIMDE_FLOAT16_VALUE( - 67.287), SIMDE_FLOAT16_VALUE( 14.241), SIMDE_FLOAT16_VALUE( 27.963) } }, + { SIMDE_FLOAT16_VALUE( - 22.750), SIMDE_FLOAT16_VALUE( 61.096), SIMDE_FLOAT16_VALUE( 69.465), SIMDE_FLOAT16_VALUE( 61.036), + SIMDE_FLOAT16_VALUE( 97.235), SIMDE_FLOAT16_VALUE( 49.615), SIMDE_FLOAT16_VALUE( - 97.607), SIMDE_FLOAT16_VALUE( - 78.562), + SIMDE_FLOAT16_VALUE( - 60.626), SIMDE_FLOAT16_VALUE( - 21.392), SIMDE_FLOAT16_VALUE( 32.623), SIMDE_FLOAT16_VALUE( - 22.547), + SIMDE_FLOAT16_VALUE( 99.897), SIMDE_FLOAT16_VALUE( 65.091), SIMDE_FLOAT16_VALUE( - 5.726), SIMDE_FLOAT16_VALUE( 95.620), + SIMDE_FLOAT16_VALUE( - 23.061), SIMDE_FLOAT16_VALUE( - 37.099), SIMDE_FLOAT16_VALUE( - 36.446), SIMDE_FLOAT16_VALUE( - 62.836), + SIMDE_FLOAT16_VALUE( 11.655), SIMDE_FLOAT16_VALUE( - 63.088), SIMDE_FLOAT16_VALUE( 11.587), SIMDE_FLOAT16_VALUE( 29.929), + SIMDE_FLOAT16_VALUE( - 71.852), SIMDE_FLOAT16_VALUE( 31.326), SIMDE_FLOAT16_VALUE( - 83.956), SIMDE_FLOAT16_VALUE( - 18.453), + SIMDE_FLOAT16_VALUE( 97.022), SIMDE_FLOAT16_VALUE( - 67.287), SIMDE_FLOAT16_VALUE( 14.241), SIMDE_FLOAT16_VALUE( 27.963) } }, + { { { SIMDE_FLOAT16_VALUE( 29.494), SIMDE_FLOAT16_VALUE( - 56.304), SIMDE_FLOAT16_VALUE( 67.254), SIMDE_FLOAT16_VALUE( - 54.309), SIMDE_FLOAT16_VALUE( 34.087), SIMDE_FLOAT16_VALUE( 62.655), SIMDE_FLOAT16_VALUE( 4.600), SIMDE_FLOAT16_VALUE( 82.017) }, - { SIMDE_FLOAT16_VALUE( 78.796), SIMDE_FLOAT16_VALUE( 85.632), SIMDE_FLOAT16_VALUE( 35.246), -SIMDE_FLOAT16_VALUE( 37.467), - -SIMDE_FLOAT16_VALUE( 62.638), SIMDE_FLOAT16_VALUE( 42.445), SIMDE_FLOAT16_VALUE( 81.230), -SIMDE_FLOAT16_VALUE( 93.667) }, - { -SIMDE_FLOAT16_VALUE( 90.629), SIMDE_FLOAT16_VALUE( 12.454), -SIMDE_FLOAT16_VALUE( 62.277), SIMDE_FLOAT16_VALUE( 44.996), - -SIMDE_FLOAT16_VALUE( 70.130), SIMDE_FLOAT16_VALUE( 62.518), -SIMDE_FLOAT16_VALUE( 77.188), SIMDE_FLOAT16_VALUE( 84.320) }, - { -SIMDE_FLOAT16_VALUE( 71.327), SIMDE_FLOAT16_VALUE( 15.545), -SIMDE_FLOAT16_VALUE( 81.861), -SIMDE_FLOAT16_VALUE( 5.166), + { SIMDE_FLOAT16_VALUE( 78.796), SIMDE_FLOAT16_VALUE( 85.632), SIMDE_FLOAT16_VALUE( 35.246), SIMDE_FLOAT16_VALUE( - 37.467), + SIMDE_FLOAT16_VALUE( - 62.638), SIMDE_FLOAT16_VALUE( 42.445), SIMDE_FLOAT16_VALUE( 81.230), SIMDE_FLOAT16_VALUE( - 93.667) }, + { SIMDE_FLOAT16_VALUE( - 90.629), SIMDE_FLOAT16_VALUE( 12.454), SIMDE_FLOAT16_VALUE( - 62.277), SIMDE_FLOAT16_VALUE( 44.996), + SIMDE_FLOAT16_VALUE( - 70.130), SIMDE_FLOAT16_VALUE( 62.518), SIMDE_FLOAT16_VALUE( - 77.188), SIMDE_FLOAT16_VALUE( 84.320) }, + { SIMDE_FLOAT16_VALUE( - 71.327), SIMDE_FLOAT16_VALUE( 15.545), SIMDE_FLOAT16_VALUE( - 81.861), SIMDE_FLOAT16_VALUE( - 5.166), SIMDE_FLOAT16_VALUE( 77.928), SIMDE_FLOAT16_VALUE( 24.877), SIMDE_FLOAT16_VALUE( 90.124), SIMDE_FLOAT16_VALUE( 77.249) } }, - { SIMDE_FLOAT16_VALUE( 29.494), -SIMDE_FLOAT16_VALUE( 56.304), SIMDE_FLOAT16_VALUE( 67.254), -SIMDE_FLOAT16_VALUE( 54.309), + { SIMDE_FLOAT16_VALUE( 29.494), SIMDE_FLOAT16_VALUE( - 56.304), SIMDE_FLOAT16_VALUE( 67.254), SIMDE_FLOAT16_VALUE( - 54.309), SIMDE_FLOAT16_VALUE( 34.087), SIMDE_FLOAT16_VALUE( 62.655), SIMDE_FLOAT16_VALUE( 4.600), SIMDE_FLOAT16_VALUE( 82.017), - SIMDE_FLOAT16_VALUE( 78.796), SIMDE_FLOAT16_VALUE( 85.632), SIMDE_FLOAT16_VALUE( 35.246), -SIMDE_FLOAT16_VALUE( 37.467), - -SIMDE_FLOAT16_VALUE( 62.638), SIMDE_FLOAT16_VALUE( 42.445), SIMDE_FLOAT16_VALUE( 81.230), -SIMDE_FLOAT16_VALUE( 93.667), - -SIMDE_FLOAT16_VALUE( 90.629), SIMDE_FLOAT16_VALUE( 12.454), -SIMDE_FLOAT16_VALUE( 62.277), SIMDE_FLOAT16_VALUE( 44.996), - -SIMDE_FLOAT16_VALUE( 70.130), SIMDE_FLOAT16_VALUE( 62.518), -SIMDE_FLOAT16_VALUE( 77.188), SIMDE_FLOAT16_VALUE( 84.320), - -SIMDE_FLOAT16_VALUE( 71.327), SIMDE_FLOAT16_VALUE( 15.545), -SIMDE_FLOAT16_VALUE( 81.861), -SIMDE_FLOAT16_VALUE( 5.166), + SIMDE_FLOAT16_VALUE( 78.796), SIMDE_FLOAT16_VALUE( 85.632), SIMDE_FLOAT16_VALUE( 35.246), SIMDE_FLOAT16_VALUE( - 37.467), + SIMDE_FLOAT16_VALUE( - 62.638), SIMDE_FLOAT16_VALUE( 42.445), SIMDE_FLOAT16_VALUE( 81.230), SIMDE_FLOAT16_VALUE( - 93.667), + SIMDE_FLOAT16_VALUE( - 90.629), SIMDE_FLOAT16_VALUE( 12.454), SIMDE_FLOAT16_VALUE( - 62.277), SIMDE_FLOAT16_VALUE( 44.996), + SIMDE_FLOAT16_VALUE( - 70.130), SIMDE_FLOAT16_VALUE( 62.518), SIMDE_FLOAT16_VALUE( - 77.188), SIMDE_FLOAT16_VALUE( 84.320), + SIMDE_FLOAT16_VALUE( - 71.327), SIMDE_FLOAT16_VALUE( 15.545), SIMDE_FLOAT16_VALUE( - 81.861), SIMDE_FLOAT16_VALUE( - 5.166), SIMDE_FLOAT16_VALUE( 77.928), SIMDE_FLOAT16_VALUE( 24.877), SIMDE_FLOAT16_VALUE( 90.124), SIMDE_FLOAT16_VALUE( 77.249) } }, - { { { SIMDE_FLOAT16_VALUE( 68.706), SIMDE_FLOAT16_VALUE( 43.754), SIMDE_FLOAT16_VALUE( 33.900), -SIMDE_FLOAT16_VALUE( 54.873), - SIMDE_FLOAT16_VALUE( 32.555), -SIMDE_FLOAT16_VALUE( 92.535), SIMDE_FLOAT16_VALUE( 86.201), -SIMDE_FLOAT16_VALUE( 78.143) }, - { SIMDE_FLOAT16_VALUE( 89.252), SIMDE_FLOAT16_VALUE( 0.337), -SIMDE_FLOAT16_VALUE( 2.470), SIMDE_FLOAT16_VALUE( 87.685), - SIMDE_FLOAT16_VALUE( 1.848), -SIMDE_FLOAT16_VALUE( 82.342), SIMDE_FLOAT16_VALUE( 39.805), -SIMDE_FLOAT16_VALUE( 50.227) }, - { SIMDE_FLOAT16_VALUE( 68.212), -SIMDE_FLOAT16_VALUE( 71.435), -SIMDE_FLOAT16_VALUE( 92.714), -SIMDE_FLOAT16_VALUE( 1.382), - -SIMDE_FLOAT16_VALUE( 97.050), SIMDE_FLOAT16_VALUE( 5.653), SIMDE_FLOAT16_VALUE( 73.429), -SIMDE_FLOAT16_VALUE( 41.560) }, - { -SIMDE_FLOAT16_VALUE( 89.561), -SIMDE_FLOAT16_VALUE( 97.387), -SIMDE_FLOAT16_VALUE( 37.457), SIMDE_FLOAT16_VALUE( 97.624), - SIMDE_FLOAT16_VALUE( 54.484), -SIMDE_FLOAT16_VALUE( 60.017), SIMDE_FLOAT16_VALUE( 37.871), -SIMDE_FLOAT16_VALUE( 10.636) } }, - { SIMDE_FLOAT16_VALUE( 68.706), SIMDE_FLOAT16_VALUE( 43.754), SIMDE_FLOAT16_VALUE( 33.900), -SIMDE_FLOAT16_VALUE( 54.873), - SIMDE_FLOAT16_VALUE( 32.555), -SIMDE_FLOAT16_VALUE( 92.535), SIMDE_FLOAT16_VALUE( 86.201), -SIMDE_FLOAT16_VALUE( 78.143), - SIMDE_FLOAT16_VALUE( 89.252), SIMDE_FLOAT16_VALUE( 0.337), -SIMDE_FLOAT16_VALUE( 2.470), SIMDE_FLOAT16_VALUE( 87.685), - SIMDE_FLOAT16_VALUE( 1.848), -SIMDE_FLOAT16_VALUE( 82.342), SIMDE_FLOAT16_VALUE( 39.805), -SIMDE_FLOAT16_VALUE( 50.227), - SIMDE_FLOAT16_VALUE( 68.212), -SIMDE_FLOAT16_VALUE( 71.435), -SIMDE_FLOAT16_VALUE( 92.714), -SIMDE_FLOAT16_VALUE( 1.382), - -SIMDE_FLOAT16_VALUE( 97.050), SIMDE_FLOAT16_VALUE( 5.653), SIMDE_FLOAT16_VALUE( 73.429), -SIMDE_FLOAT16_VALUE( 41.560), - -SIMDE_FLOAT16_VALUE( 89.561), -SIMDE_FLOAT16_VALUE( 97.387), -SIMDE_FLOAT16_VALUE( 37.457), SIMDE_FLOAT16_VALUE( 97.624), - SIMDE_FLOAT16_VALUE( 54.484), -SIMDE_FLOAT16_VALUE( 60.017), SIMDE_FLOAT16_VALUE( 37.871), -SIMDE_FLOAT16_VALUE( 10.636) } }, - { { { -SIMDE_FLOAT16_VALUE( 16.854), -SIMDE_FLOAT16_VALUE( 55.538), SIMDE_FLOAT16_VALUE( 51.151), SIMDE_FLOAT16_VALUE( 14.679), - SIMDE_FLOAT16_VALUE( 66.667), -SIMDE_FLOAT16_VALUE( 91.282), -SIMDE_FLOAT16_VALUE( 61.208), -SIMDE_FLOAT16_VALUE( 94.220) }, - { SIMDE_FLOAT16_VALUE( 49.161), -SIMDE_FLOAT16_VALUE( 46.703), SIMDE_FLOAT16_VALUE( 2.994), SIMDE_FLOAT16_VALUE( 49.628), - -SIMDE_FLOAT16_VALUE( 12.308), -SIMDE_FLOAT16_VALUE( 25.366), SIMDE_FLOAT16_VALUE( 65.516), SIMDE_FLOAT16_VALUE( 69.138) }, - { SIMDE_FLOAT16_VALUE( 97.529), SIMDE_FLOAT16_VALUE( 3.577), -SIMDE_FLOAT16_VALUE( 60.264), SIMDE_FLOAT16_VALUE( 14.990), - -SIMDE_FLOAT16_VALUE( 75.640), SIMDE_FLOAT16_VALUE( 40.417), SIMDE_FLOAT16_VALUE( 85.723), -SIMDE_FLOAT16_VALUE( 53.491) }, - { SIMDE_FLOAT16_VALUE( 98.333), -SIMDE_FLOAT16_VALUE( 14.058), -SIMDE_FLOAT16_VALUE( 92.582), SIMDE_FLOAT16_VALUE( 76.277), - SIMDE_FLOAT16_VALUE( 28.806), SIMDE_FLOAT16_VALUE( 9.371), -SIMDE_FLOAT16_VALUE( 61.503), SIMDE_FLOAT16_VALUE( 26.682) } }, - { -SIMDE_FLOAT16_VALUE( 16.854), -SIMDE_FLOAT16_VALUE( 55.538), SIMDE_FLOAT16_VALUE( 51.151), SIMDE_FLOAT16_VALUE( 14.679), - SIMDE_FLOAT16_VALUE( 66.667), -SIMDE_FLOAT16_VALUE( 91.282), -SIMDE_FLOAT16_VALUE( 61.208), -SIMDE_FLOAT16_VALUE( 94.220), - SIMDE_FLOAT16_VALUE( 49.161), -SIMDE_FLOAT16_VALUE( 46.703), SIMDE_FLOAT16_VALUE( 2.994), SIMDE_FLOAT16_VALUE( 49.628), - -SIMDE_FLOAT16_VALUE( 12.308), -SIMDE_FLOAT16_VALUE( 25.366), SIMDE_FLOAT16_VALUE( 65.516), SIMDE_FLOAT16_VALUE( 69.138), - SIMDE_FLOAT16_VALUE( 97.529), SIMDE_FLOAT16_VALUE( 3.577), -SIMDE_FLOAT16_VALUE( 60.264), SIMDE_FLOAT16_VALUE( 14.990), - -SIMDE_FLOAT16_VALUE( 75.640), SIMDE_FLOAT16_VALUE( 40.417), SIMDE_FLOAT16_VALUE( 85.723), -SIMDE_FLOAT16_VALUE( 53.491), - SIMDE_FLOAT16_VALUE( 98.333), -SIMDE_FLOAT16_VALUE( 14.058), -SIMDE_FLOAT16_VALUE( 92.582), SIMDE_FLOAT16_VALUE( 76.277), - SIMDE_FLOAT16_VALUE( 28.806), SIMDE_FLOAT16_VALUE( 9.371), -SIMDE_FLOAT16_VALUE( 61.503), SIMDE_FLOAT16_VALUE( 26.682) } }, - { { { -SIMDE_FLOAT16_VALUE( 64.940), SIMDE_FLOAT16_VALUE( 10.855), SIMDE_FLOAT16_VALUE( 13.588), -SIMDE_FLOAT16_VALUE( 42.166), - SIMDE_FLOAT16_VALUE( 37.677), SIMDE_FLOAT16_VALUE( 54.544), -SIMDE_FLOAT16_VALUE( 41.338), SIMDE_FLOAT16_VALUE( 54.156) }, - { -SIMDE_FLOAT16_VALUE( 96.818), SIMDE_FLOAT16_VALUE( 38.055), -SIMDE_FLOAT16_VALUE( 67.285), SIMDE_FLOAT16_VALUE( 34.219), - SIMDE_FLOAT16_VALUE( 31.020), SIMDE_FLOAT16_VALUE( 7.521), -SIMDE_FLOAT16_VALUE( 27.190), -SIMDE_FLOAT16_VALUE( 93.042) }, - { -SIMDE_FLOAT16_VALUE( 35.381), SIMDE_FLOAT16_VALUE( 50.805), -SIMDE_FLOAT16_VALUE( 16.495), -SIMDE_FLOAT16_VALUE( 19.288), - SIMDE_FLOAT16_VALUE( 36.437), -SIMDE_FLOAT16_VALUE( 75.663), -SIMDE_FLOAT16_VALUE( 62.035), SIMDE_FLOAT16_VALUE( 94.778) }, - { -SIMDE_FLOAT16_VALUE( 77.789), SIMDE_FLOAT16_VALUE( 86.230), SIMDE_FLOAT16_VALUE( 21.458), -SIMDE_FLOAT16_VALUE( 76.976), - SIMDE_FLOAT16_VALUE( 59.077), -SIMDE_FLOAT16_VALUE( 13.310), -SIMDE_FLOAT16_VALUE( 38.537), SIMDE_FLOAT16_VALUE( 85.016) } }, - { -SIMDE_FLOAT16_VALUE( 64.940), SIMDE_FLOAT16_VALUE( 10.855), SIMDE_FLOAT16_VALUE( 13.588), -SIMDE_FLOAT16_VALUE( 42.166), - SIMDE_FLOAT16_VALUE( 37.677), SIMDE_FLOAT16_VALUE( 54.544), -SIMDE_FLOAT16_VALUE( 41.338), SIMDE_FLOAT16_VALUE( 54.156), - -SIMDE_FLOAT16_VALUE( 96.818), SIMDE_FLOAT16_VALUE( 38.055), -SIMDE_FLOAT16_VALUE( 67.285), SIMDE_FLOAT16_VALUE( 34.219), - SIMDE_FLOAT16_VALUE( 31.020), SIMDE_FLOAT16_VALUE( 7.521), -SIMDE_FLOAT16_VALUE( 27.190), -SIMDE_FLOAT16_VALUE( 93.042), - -SIMDE_FLOAT16_VALUE( 35.381), SIMDE_FLOAT16_VALUE( 50.805), -SIMDE_FLOAT16_VALUE( 16.495), -SIMDE_FLOAT16_VALUE( 19.288), - SIMDE_FLOAT16_VALUE( 36.437), -SIMDE_FLOAT16_VALUE( 75.663), -SIMDE_FLOAT16_VALUE( 62.035), SIMDE_FLOAT16_VALUE( 94.778), - -SIMDE_FLOAT16_VALUE( 77.789), SIMDE_FLOAT16_VALUE( 86.230), SIMDE_FLOAT16_VALUE( 21.458), -SIMDE_FLOAT16_VALUE( 76.976), - SIMDE_FLOAT16_VALUE( 59.077), -SIMDE_FLOAT16_VALUE( 13.310), -SIMDE_FLOAT16_VALUE( 38.537), SIMDE_FLOAT16_VALUE( 85.016) } }, - { { { -SIMDE_FLOAT16_VALUE( 16.344), SIMDE_FLOAT16_VALUE( 61.588), SIMDE_FLOAT16_VALUE( 49.037), SIMDE_FLOAT16_VALUE( 45.929), - SIMDE_FLOAT16_VALUE( 40.688), -SIMDE_FLOAT16_VALUE( 27.802), SIMDE_FLOAT16_VALUE( 27.455), SIMDE_FLOAT16_VALUE( 93.667) }, - { -SIMDE_FLOAT16_VALUE( 65.739), SIMDE_FLOAT16_VALUE( 98.667), -SIMDE_FLOAT16_VALUE( 77.640), SIMDE_FLOAT16_VALUE( 19.827), - SIMDE_FLOAT16_VALUE( 11.358), -SIMDE_FLOAT16_VALUE( 21.520), -SIMDE_FLOAT16_VALUE( 71.888), SIMDE_FLOAT16_VALUE( 29.715) }, - { SIMDE_FLOAT16_VALUE( 3.421), -SIMDE_FLOAT16_VALUE( 85.829), SIMDE_FLOAT16_VALUE( 42.144), SIMDE_FLOAT16_VALUE( 52.252), - -SIMDE_FLOAT16_VALUE( 34.443), -SIMDE_FLOAT16_VALUE( 81.291), -SIMDE_FLOAT16_VALUE( 35.565), -SIMDE_FLOAT16_VALUE( 95.472) }, - { -SIMDE_FLOAT16_VALUE( 51.527), -SIMDE_FLOAT16_VALUE( 14.435), SIMDE_FLOAT16_VALUE( 81.290), SIMDE_FLOAT16_VALUE( 98.495), - SIMDE_FLOAT16_VALUE( 41.063), -SIMDE_FLOAT16_VALUE( 8.915), -SIMDE_FLOAT16_VALUE( 77.131), -SIMDE_FLOAT16_VALUE( 97.806) } }, - { -SIMDE_FLOAT16_VALUE( 16.344), SIMDE_FLOAT16_VALUE( 61.588), SIMDE_FLOAT16_VALUE( 49.037), SIMDE_FLOAT16_VALUE( 45.929), - SIMDE_FLOAT16_VALUE( 40.688), -SIMDE_FLOAT16_VALUE( 27.802), SIMDE_FLOAT16_VALUE( 27.455), SIMDE_FLOAT16_VALUE( 93.667), - -SIMDE_FLOAT16_VALUE( 65.739), SIMDE_FLOAT16_VALUE( 98.667), -SIMDE_FLOAT16_VALUE( 77.640), SIMDE_FLOAT16_VALUE( 19.827), - SIMDE_FLOAT16_VALUE( 11.358), -SIMDE_FLOAT16_VALUE( 21.520), -SIMDE_FLOAT16_VALUE( 71.888), SIMDE_FLOAT16_VALUE( 29.715), - SIMDE_FLOAT16_VALUE( 3.421), -SIMDE_FLOAT16_VALUE( 85.829), SIMDE_FLOAT16_VALUE( 42.144), SIMDE_FLOAT16_VALUE( 52.252), - -SIMDE_FLOAT16_VALUE( 34.443), -SIMDE_FLOAT16_VALUE( 81.291), -SIMDE_FLOAT16_VALUE( 35.565), -SIMDE_FLOAT16_VALUE( 95.472), - -SIMDE_FLOAT16_VALUE( 51.527), -SIMDE_FLOAT16_VALUE( 14.435), SIMDE_FLOAT16_VALUE( 81.290), SIMDE_FLOAT16_VALUE( 98.495), - SIMDE_FLOAT16_VALUE( 41.063), -SIMDE_FLOAT16_VALUE( 8.915), -SIMDE_FLOAT16_VALUE( 77.131), -SIMDE_FLOAT16_VALUE( 97.806) } }, - { { { -SIMDE_FLOAT16_VALUE( 38.560), -SIMDE_FLOAT16_VALUE( 8.666), -SIMDE_FLOAT16_VALUE( 83.413), SIMDE_FLOAT16_VALUE( 36.428), - SIMDE_FLOAT16_VALUE( 95.115), -SIMDE_FLOAT16_VALUE( 54.473), -SIMDE_FLOAT16_VALUE( 54.310), SIMDE_FLOAT16_VALUE( 9.862) }, - { -SIMDE_FLOAT16_VALUE( 43.918), SIMDE_FLOAT16_VALUE( 65.519), SIMDE_FLOAT16_VALUE( 33.255), -SIMDE_FLOAT16_VALUE( 76.838), - SIMDE_FLOAT16_VALUE( 32.376), SIMDE_FLOAT16_VALUE( 88.754), -SIMDE_FLOAT16_VALUE( 99.571), SIMDE_FLOAT16_VALUE( 97.359) }, - { SIMDE_FLOAT16_VALUE( 0.759), SIMDE_FLOAT16_VALUE( 63.569), -SIMDE_FLOAT16_VALUE( 74.335), -SIMDE_FLOAT16_VALUE( 84.602), - SIMDE_FLOAT16_VALUE( 72.495), -SIMDE_FLOAT16_VALUE( 60.829), -SIMDE_FLOAT16_VALUE( 29.063), -SIMDE_FLOAT16_VALUE( 66.901) }, - { -SIMDE_FLOAT16_VALUE( 68.887), -SIMDE_FLOAT16_VALUE( 41.060), SIMDE_FLOAT16_VALUE( 36.083), -SIMDE_FLOAT16_VALUE( 79.810), - SIMDE_FLOAT16_VALUE( 51.686), -SIMDE_FLOAT16_VALUE( 67.010), SIMDE_FLOAT16_VALUE( 29.773), SIMDE_FLOAT16_VALUE( 23.022) } }, - { -SIMDE_FLOAT16_VALUE( 38.560), -SIMDE_FLOAT16_VALUE( 8.666), -SIMDE_FLOAT16_VALUE( 83.413), SIMDE_FLOAT16_VALUE( 36.428), - SIMDE_FLOAT16_VALUE( 95.115), -SIMDE_FLOAT16_VALUE( 54.473), -SIMDE_FLOAT16_VALUE( 54.310), SIMDE_FLOAT16_VALUE( 9.862), - -SIMDE_FLOAT16_VALUE( 43.918), SIMDE_FLOAT16_VALUE( 65.519), SIMDE_FLOAT16_VALUE( 33.255), -SIMDE_FLOAT16_VALUE( 76.838), - SIMDE_FLOAT16_VALUE( 32.376), SIMDE_FLOAT16_VALUE( 88.754), -SIMDE_FLOAT16_VALUE( 99.571), SIMDE_FLOAT16_VALUE( 97.359), - SIMDE_FLOAT16_VALUE( 0.759), SIMDE_FLOAT16_VALUE( 63.569), -SIMDE_FLOAT16_VALUE( 74.335), -SIMDE_FLOAT16_VALUE( 84.602), - SIMDE_FLOAT16_VALUE( 72.495), -SIMDE_FLOAT16_VALUE( 60.829), -SIMDE_FLOAT16_VALUE( 29.063), -SIMDE_FLOAT16_VALUE( 66.901), - -SIMDE_FLOAT16_VALUE( 68.887), -SIMDE_FLOAT16_VALUE( 41.060), SIMDE_FLOAT16_VALUE( 36.083), -SIMDE_FLOAT16_VALUE( 79.810), - SIMDE_FLOAT16_VALUE( 51.686), -SIMDE_FLOAT16_VALUE( 67.010), SIMDE_FLOAT16_VALUE( 29.773), SIMDE_FLOAT16_VALUE( 23.022) } }, - { { { -SIMDE_FLOAT16_VALUE( 99.229), SIMDE_FLOAT16_VALUE( 33.337), -SIMDE_FLOAT16_VALUE( 34.145), -SIMDE_FLOAT16_VALUE( 18.231), - -SIMDE_FLOAT16_VALUE( 6.066), SIMDE_FLOAT16_VALUE( 62.125), -SIMDE_FLOAT16_VALUE( 30.190), SIMDE_FLOAT16_VALUE( 93.279) }, - { -SIMDE_FLOAT16_VALUE( 4.053), -SIMDE_FLOAT16_VALUE( 16.454), SIMDE_FLOAT16_VALUE( 43.954), -SIMDE_FLOAT16_VALUE( 0.170), - SIMDE_FLOAT16_VALUE( 20.261), SIMDE_FLOAT16_VALUE( 4.405), SIMDE_FLOAT16_VALUE( 67.841), -SIMDE_FLOAT16_VALUE( 94.517) }, - { -SIMDE_FLOAT16_VALUE( 12.337), SIMDE_FLOAT16_VALUE( 41.336), -SIMDE_FLOAT16_VALUE( 44.534), -SIMDE_FLOAT16_VALUE( 99.256), - SIMDE_FLOAT16_VALUE( 33.547), -SIMDE_FLOAT16_VALUE( 71.183), -SIMDE_FLOAT16_VALUE( 76.108), -SIMDE_FLOAT16_VALUE( 9.130) }, + { { { SIMDE_FLOAT16_VALUE( 68.706), SIMDE_FLOAT16_VALUE( 43.754), SIMDE_FLOAT16_VALUE( 33.900), SIMDE_FLOAT16_VALUE( - 54.873), + SIMDE_FLOAT16_VALUE( 32.555), SIMDE_FLOAT16_VALUE( - 92.535), SIMDE_FLOAT16_VALUE( 86.201), SIMDE_FLOAT16_VALUE( - 78.143) }, + { SIMDE_FLOAT16_VALUE( 89.252), SIMDE_FLOAT16_VALUE( 0.337), SIMDE_FLOAT16_VALUE( - 2.470), SIMDE_FLOAT16_VALUE( 87.685), + SIMDE_FLOAT16_VALUE( 1.848), SIMDE_FLOAT16_VALUE( - 82.342), SIMDE_FLOAT16_VALUE( 39.805), SIMDE_FLOAT16_VALUE( - 50.227) }, + { SIMDE_FLOAT16_VALUE( 68.212), SIMDE_FLOAT16_VALUE( - 71.435), SIMDE_FLOAT16_VALUE( - 92.714), SIMDE_FLOAT16_VALUE( - 1.382), + SIMDE_FLOAT16_VALUE( - 97.050), SIMDE_FLOAT16_VALUE( 5.653), SIMDE_FLOAT16_VALUE( 73.429), SIMDE_FLOAT16_VALUE( - 41.560) }, + { SIMDE_FLOAT16_VALUE( - 89.561), SIMDE_FLOAT16_VALUE( - 97.387), SIMDE_FLOAT16_VALUE( - 37.457), SIMDE_FLOAT16_VALUE( 97.624), + SIMDE_FLOAT16_VALUE( 54.484), SIMDE_FLOAT16_VALUE( - 60.017), SIMDE_FLOAT16_VALUE( 37.871), SIMDE_FLOAT16_VALUE( - 10.636) } }, + { SIMDE_FLOAT16_VALUE( 68.706), SIMDE_FLOAT16_VALUE( 43.754), SIMDE_FLOAT16_VALUE( 33.900), SIMDE_FLOAT16_VALUE( - 54.873), + SIMDE_FLOAT16_VALUE( 32.555), SIMDE_FLOAT16_VALUE( - 92.535), SIMDE_FLOAT16_VALUE( 86.201), SIMDE_FLOAT16_VALUE( - 78.143), + SIMDE_FLOAT16_VALUE( 89.252), SIMDE_FLOAT16_VALUE( 0.337), SIMDE_FLOAT16_VALUE( - 2.470), SIMDE_FLOAT16_VALUE( 87.685), + SIMDE_FLOAT16_VALUE( 1.848), SIMDE_FLOAT16_VALUE( - 82.342), SIMDE_FLOAT16_VALUE( 39.805), SIMDE_FLOAT16_VALUE( - 50.227), + SIMDE_FLOAT16_VALUE( 68.212), SIMDE_FLOAT16_VALUE( - 71.435), SIMDE_FLOAT16_VALUE( - 92.714), SIMDE_FLOAT16_VALUE( - 1.382), + SIMDE_FLOAT16_VALUE( - 97.050), SIMDE_FLOAT16_VALUE( 5.653), SIMDE_FLOAT16_VALUE( 73.429), SIMDE_FLOAT16_VALUE( - 41.560), + SIMDE_FLOAT16_VALUE( - 89.561), SIMDE_FLOAT16_VALUE( - 97.387), SIMDE_FLOAT16_VALUE( - 37.457), SIMDE_FLOAT16_VALUE( 97.624), + SIMDE_FLOAT16_VALUE( 54.484), SIMDE_FLOAT16_VALUE( - 60.017), SIMDE_FLOAT16_VALUE( 37.871), SIMDE_FLOAT16_VALUE( - 10.636) } }, + { { { SIMDE_FLOAT16_VALUE( - 16.854), SIMDE_FLOAT16_VALUE( - 55.538), SIMDE_FLOAT16_VALUE( 51.151), SIMDE_FLOAT16_VALUE( 14.679), + SIMDE_FLOAT16_VALUE( 66.667), SIMDE_FLOAT16_VALUE( - 91.282), SIMDE_FLOAT16_VALUE( - 61.208), SIMDE_FLOAT16_VALUE( - 94.220) }, + { SIMDE_FLOAT16_VALUE( 49.161), SIMDE_FLOAT16_VALUE( - 46.703), SIMDE_FLOAT16_VALUE( 2.994), SIMDE_FLOAT16_VALUE( 49.628), + SIMDE_FLOAT16_VALUE( - 12.308), SIMDE_FLOAT16_VALUE( - 25.366), SIMDE_FLOAT16_VALUE( 65.516), SIMDE_FLOAT16_VALUE( 69.138) }, + { SIMDE_FLOAT16_VALUE( 97.529), SIMDE_FLOAT16_VALUE( 3.577), SIMDE_FLOAT16_VALUE( - 60.264), SIMDE_FLOAT16_VALUE( 14.990), + SIMDE_FLOAT16_VALUE( - 75.640), SIMDE_FLOAT16_VALUE( 40.417), SIMDE_FLOAT16_VALUE( 85.723), SIMDE_FLOAT16_VALUE( - 53.491) }, + { SIMDE_FLOAT16_VALUE( 98.333), SIMDE_FLOAT16_VALUE( - 14.058), SIMDE_FLOAT16_VALUE( - 92.582), SIMDE_FLOAT16_VALUE( 76.277), + SIMDE_FLOAT16_VALUE( 28.806), SIMDE_FLOAT16_VALUE( 9.371), SIMDE_FLOAT16_VALUE( - 61.503), SIMDE_FLOAT16_VALUE( 26.682) } }, + { SIMDE_FLOAT16_VALUE( - 16.854), SIMDE_FLOAT16_VALUE( - 55.538), SIMDE_FLOAT16_VALUE( 51.151), SIMDE_FLOAT16_VALUE( 14.679), + SIMDE_FLOAT16_VALUE( 66.667), SIMDE_FLOAT16_VALUE( - 91.282), SIMDE_FLOAT16_VALUE( - 61.208), SIMDE_FLOAT16_VALUE( - 94.220), + SIMDE_FLOAT16_VALUE( 49.161), SIMDE_FLOAT16_VALUE( - 46.703), SIMDE_FLOAT16_VALUE( 2.994), SIMDE_FLOAT16_VALUE( 49.628), + SIMDE_FLOAT16_VALUE( - 12.308), SIMDE_FLOAT16_VALUE( - 25.366), SIMDE_FLOAT16_VALUE( 65.516), SIMDE_FLOAT16_VALUE( 69.138), + SIMDE_FLOAT16_VALUE( 97.529), SIMDE_FLOAT16_VALUE( 3.577), SIMDE_FLOAT16_VALUE( - 60.264), SIMDE_FLOAT16_VALUE( 14.990), + SIMDE_FLOAT16_VALUE( - 75.640), SIMDE_FLOAT16_VALUE( 40.417), SIMDE_FLOAT16_VALUE( 85.723), SIMDE_FLOAT16_VALUE( - 53.491), + SIMDE_FLOAT16_VALUE( 98.333), SIMDE_FLOAT16_VALUE( - 14.058), SIMDE_FLOAT16_VALUE( - 92.582), SIMDE_FLOAT16_VALUE( 76.277), + SIMDE_FLOAT16_VALUE( 28.806), SIMDE_FLOAT16_VALUE( 9.371), SIMDE_FLOAT16_VALUE( - 61.503), SIMDE_FLOAT16_VALUE( 26.682) } }, + { { { SIMDE_FLOAT16_VALUE( - 64.940), SIMDE_FLOAT16_VALUE( 10.855), SIMDE_FLOAT16_VALUE( 13.588), SIMDE_FLOAT16_VALUE( - 42.166), + SIMDE_FLOAT16_VALUE( 37.677), SIMDE_FLOAT16_VALUE( 54.544), SIMDE_FLOAT16_VALUE( - 41.338), SIMDE_FLOAT16_VALUE( 54.156) }, + { SIMDE_FLOAT16_VALUE( - 96.818), SIMDE_FLOAT16_VALUE( 38.055), SIMDE_FLOAT16_VALUE( - 67.285), SIMDE_FLOAT16_VALUE( 34.219), + SIMDE_FLOAT16_VALUE( 31.020), SIMDE_FLOAT16_VALUE( 7.521), SIMDE_FLOAT16_VALUE( - 27.190), SIMDE_FLOAT16_VALUE( - 93.042) }, + { SIMDE_FLOAT16_VALUE( - 35.381), SIMDE_FLOAT16_VALUE( 50.805), SIMDE_FLOAT16_VALUE( - 16.495), SIMDE_FLOAT16_VALUE( - 19.288), + SIMDE_FLOAT16_VALUE( 36.437), SIMDE_FLOAT16_VALUE( - 75.663), SIMDE_FLOAT16_VALUE( - 62.035), SIMDE_FLOAT16_VALUE( 94.778) }, + { SIMDE_FLOAT16_VALUE( - 77.789), SIMDE_FLOAT16_VALUE( 86.230), SIMDE_FLOAT16_VALUE( 21.458), SIMDE_FLOAT16_VALUE( - 76.976), + SIMDE_FLOAT16_VALUE( 59.077), SIMDE_FLOAT16_VALUE( - 13.310), SIMDE_FLOAT16_VALUE( - 38.537), SIMDE_FLOAT16_VALUE( 85.016) } }, + { SIMDE_FLOAT16_VALUE( - 64.940), SIMDE_FLOAT16_VALUE( 10.855), SIMDE_FLOAT16_VALUE( 13.588), SIMDE_FLOAT16_VALUE( - 42.166), + SIMDE_FLOAT16_VALUE( 37.677), SIMDE_FLOAT16_VALUE( 54.544), SIMDE_FLOAT16_VALUE( - 41.338), SIMDE_FLOAT16_VALUE( 54.156), + SIMDE_FLOAT16_VALUE( - 96.818), SIMDE_FLOAT16_VALUE( 38.055), SIMDE_FLOAT16_VALUE( - 67.285), SIMDE_FLOAT16_VALUE( 34.219), + SIMDE_FLOAT16_VALUE( 31.020), SIMDE_FLOAT16_VALUE( 7.521), SIMDE_FLOAT16_VALUE( - 27.190), SIMDE_FLOAT16_VALUE( - 93.042), + SIMDE_FLOAT16_VALUE( - 35.381), SIMDE_FLOAT16_VALUE( 50.805), SIMDE_FLOAT16_VALUE( - 16.495), SIMDE_FLOAT16_VALUE( - 19.288), + SIMDE_FLOAT16_VALUE( 36.437), SIMDE_FLOAT16_VALUE( - 75.663), SIMDE_FLOAT16_VALUE( - 62.035), SIMDE_FLOAT16_VALUE( 94.778), + SIMDE_FLOAT16_VALUE( - 77.789), SIMDE_FLOAT16_VALUE( 86.230), SIMDE_FLOAT16_VALUE( 21.458), SIMDE_FLOAT16_VALUE( - 76.976), + SIMDE_FLOAT16_VALUE( 59.077), SIMDE_FLOAT16_VALUE( - 13.310), SIMDE_FLOAT16_VALUE( - 38.537), SIMDE_FLOAT16_VALUE( 85.016) } }, + { { { SIMDE_FLOAT16_VALUE( - 16.344), SIMDE_FLOAT16_VALUE( 61.588), SIMDE_FLOAT16_VALUE( 49.037), SIMDE_FLOAT16_VALUE( 45.929), + SIMDE_FLOAT16_VALUE( 40.688), SIMDE_FLOAT16_VALUE( - 27.802), SIMDE_FLOAT16_VALUE( 27.455), SIMDE_FLOAT16_VALUE( 93.667) }, + { SIMDE_FLOAT16_VALUE( - 65.739), SIMDE_FLOAT16_VALUE( 98.667), SIMDE_FLOAT16_VALUE( - 77.640), SIMDE_FLOAT16_VALUE( 19.827), + SIMDE_FLOAT16_VALUE( 11.358), SIMDE_FLOAT16_VALUE( - 21.520), SIMDE_FLOAT16_VALUE( - 71.888), SIMDE_FLOAT16_VALUE( 29.715) }, + { SIMDE_FLOAT16_VALUE( 3.421), SIMDE_FLOAT16_VALUE( - 85.829), SIMDE_FLOAT16_VALUE( 42.144), SIMDE_FLOAT16_VALUE( 52.252), + SIMDE_FLOAT16_VALUE( - 34.443), SIMDE_FLOAT16_VALUE( - 81.291), SIMDE_FLOAT16_VALUE( - 35.565), SIMDE_FLOAT16_VALUE( - 95.472) }, + { SIMDE_FLOAT16_VALUE( - 51.527), SIMDE_FLOAT16_VALUE( - 14.435), SIMDE_FLOAT16_VALUE( 81.290), SIMDE_FLOAT16_VALUE( 98.495), + SIMDE_FLOAT16_VALUE( 41.063), SIMDE_FLOAT16_VALUE( - 8.915), SIMDE_FLOAT16_VALUE( - 77.131), SIMDE_FLOAT16_VALUE( - 97.806) } }, + { SIMDE_FLOAT16_VALUE( - 16.344), SIMDE_FLOAT16_VALUE( 61.588), SIMDE_FLOAT16_VALUE( 49.037), SIMDE_FLOAT16_VALUE( 45.929), + SIMDE_FLOAT16_VALUE( 40.688), SIMDE_FLOAT16_VALUE( - 27.802), SIMDE_FLOAT16_VALUE( 27.455), SIMDE_FLOAT16_VALUE( 93.667), + SIMDE_FLOAT16_VALUE( - 65.739), SIMDE_FLOAT16_VALUE( 98.667), SIMDE_FLOAT16_VALUE( - 77.640), SIMDE_FLOAT16_VALUE( 19.827), + SIMDE_FLOAT16_VALUE( 11.358), SIMDE_FLOAT16_VALUE( - 21.520), SIMDE_FLOAT16_VALUE( - 71.888), SIMDE_FLOAT16_VALUE( 29.715), + SIMDE_FLOAT16_VALUE( 3.421), SIMDE_FLOAT16_VALUE( - 85.829), SIMDE_FLOAT16_VALUE( 42.144), SIMDE_FLOAT16_VALUE( 52.252), + SIMDE_FLOAT16_VALUE( - 34.443), SIMDE_FLOAT16_VALUE( - 81.291), SIMDE_FLOAT16_VALUE( - 35.565), SIMDE_FLOAT16_VALUE( - 95.472), + SIMDE_FLOAT16_VALUE( - 51.527), SIMDE_FLOAT16_VALUE( - 14.435), SIMDE_FLOAT16_VALUE( 81.290), SIMDE_FLOAT16_VALUE( 98.495), + SIMDE_FLOAT16_VALUE( 41.063), SIMDE_FLOAT16_VALUE( - 8.915), SIMDE_FLOAT16_VALUE( - 77.131), SIMDE_FLOAT16_VALUE( - 97.806) } }, + { { { SIMDE_FLOAT16_VALUE( - 38.560), SIMDE_FLOAT16_VALUE( - 8.666), SIMDE_FLOAT16_VALUE( - 83.413), SIMDE_FLOAT16_VALUE( 36.428), + SIMDE_FLOAT16_VALUE( 95.115), SIMDE_FLOAT16_VALUE( - 54.473), SIMDE_FLOAT16_VALUE( - 54.310), SIMDE_FLOAT16_VALUE( 9.862) }, + { SIMDE_FLOAT16_VALUE( - 43.918), SIMDE_FLOAT16_VALUE( 65.519), SIMDE_FLOAT16_VALUE( 33.255), SIMDE_FLOAT16_VALUE( - 76.838), + SIMDE_FLOAT16_VALUE( 32.376), SIMDE_FLOAT16_VALUE( 88.754), SIMDE_FLOAT16_VALUE( - 99.571), SIMDE_FLOAT16_VALUE( 97.359) }, + { SIMDE_FLOAT16_VALUE( 0.759), SIMDE_FLOAT16_VALUE( 63.569), SIMDE_FLOAT16_VALUE( - 74.335), SIMDE_FLOAT16_VALUE( - 84.602), + SIMDE_FLOAT16_VALUE( 72.495), SIMDE_FLOAT16_VALUE( - 60.829), SIMDE_FLOAT16_VALUE( - 29.063), SIMDE_FLOAT16_VALUE( - 66.901) }, + { SIMDE_FLOAT16_VALUE( - 68.887), SIMDE_FLOAT16_VALUE( - 41.060), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( - 79.810), + SIMDE_FLOAT16_VALUE( 51.686), SIMDE_FLOAT16_VALUE( - 67.010), SIMDE_FLOAT16_VALUE( 29.773), SIMDE_FLOAT16_VALUE( 23.022) } }, + { SIMDE_FLOAT16_VALUE( - 38.560), SIMDE_FLOAT16_VALUE( - 8.666), SIMDE_FLOAT16_VALUE( - 83.413), SIMDE_FLOAT16_VALUE( 36.428), + SIMDE_FLOAT16_VALUE( 95.115), SIMDE_FLOAT16_VALUE( - 54.473), SIMDE_FLOAT16_VALUE( - 54.310), SIMDE_FLOAT16_VALUE( 9.862), + SIMDE_FLOAT16_VALUE( - 43.918), SIMDE_FLOAT16_VALUE( 65.519), SIMDE_FLOAT16_VALUE( 33.255), SIMDE_FLOAT16_VALUE( - 76.838), + SIMDE_FLOAT16_VALUE( 32.376), SIMDE_FLOAT16_VALUE( 88.754), SIMDE_FLOAT16_VALUE( - 99.571), SIMDE_FLOAT16_VALUE( 97.359), + SIMDE_FLOAT16_VALUE( 0.759), SIMDE_FLOAT16_VALUE( 63.569), SIMDE_FLOAT16_VALUE( - 74.335), SIMDE_FLOAT16_VALUE( - 84.602), + SIMDE_FLOAT16_VALUE( 72.495), SIMDE_FLOAT16_VALUE( - 60.829), SIMDE_FLOAT16_VALUE( - 29.063), SIMDE_FLOAT16_VALUE( - 66.901), + SIMDE_FLOAT16_VALUE( - 68.887), SIMDE_FLOAT16_VALUE( - 41.060), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( - 79.810), + SIMDE_FLOAT16_VALUE( 51.686), SIMDE_FLOAT16_VALUE( - 67.010), SIMDE_FLOAT16_VALUE( 29.773), SIMDE_FLOAT16_VALUE( 23.022) } }, + { { { SIMDE_FLOAT16_VALUE( - 99.229), SIMDE_FLOAT16_VALUE( 33.337), SIMDE_FLOAT16_VALUE( - 34.145), SIMDE_FLOAT16_VALUE( - 18.231), + SIMDE_FLOAT16_VALUE( - 6.066), SIMDE_FLOAT16_VALUE( 62.125), SIMDE_FLOAT16_VALUE( - 30.190), SIMDE_FLOAT16_VALUE( 93.279) }, + { SIMDE_FLOAT16_VALUE( - 4.053), SIMDE_FLOAT16_VALUE( - 16.454), SIMDE_FLOAT16_VALUE( 43.954), SIMDE_FLOAT16_VALUE( - 0.170), + SIMDE_FLOAT16_VALUE( 20.261), SIMDE_FLOAT16_VALUE( 4.405), SIMDE_FLOAT16_VALUE( 67.841), SIMDE_FLOAT16_VALUE( - 94.517) }, + { SIMDE_FLOAT16_VALUE( - 12.337), SIMDE_FLOAT16_VALUE( 41.336), SIMDE_FLOAT16_VALUE( - 44.534), SIMDE_FLOAT16_VALUE( - 99.256), + SIMDE_FLOAT16_VALUE( 33.547), SIMDE_FLOAT16_VALUE( - 71.183), SIMDE_FLOAT16_VALUE( - 76.108), SIMDE_FLOAT16_VALUE( - 9.130) }, { SIMDE_FLOAT16_VALUE( 36.006), SIMDE_FLOAT16_VALUE( 42.039), SIMDE_FLOAT16_VALUE( 31.550), SIMDE_FLOAT16_VALUE( 33.704), - -SIMDE_FLOAT16_VALUE( 41.349), -SIMDE_FLOAT16_VALUE( 86.501), SIMDE_FLOAT16_VALUE( 55.249), SIMDE_FLOAT16_VALUE( 80.615) } }, - { -SIMDE_FLOAT16_VALUE( 99.229), SIMDE_FLOAT16_VALUE( 33.337), -SIMDE_FLOAT16_VALUE( 34.145), -SIMDE_FLOAT16_VALUE( 18.231), - -SIMDE_FLOAT16_VALUE( 6.066), SIMDE_FLOAT16_VALUE( 62.125), -SIMDE_FLOAT16_VALUE( 30.190), SIMDE_FLOAT16_VALUE( 93.279), - -SIMDE_FLOAT16_VALUE( 4.053), -SIMDE_FLOAT16_VALUE( 16.454), SIMDE_FLOAT16_VALUE( 43.954), -SIMDE_FLOAT16_VALUE( 0.170), - SIMDE_FLOAT16_VALUE( 20.261), SIMDE_FLOAT16_VALUE( 4.405), SIMDE_FLOAT16_VALUE( 67.841), -SIMDE_FLOAT16_VALUE( 94.517), - -SIMDE_FLOAT16_VALUE( 12.337), SIMDE_FLOAT16_VALUE( 41.336), -SIMDE_FLOAT16_VALUE( 44.534), -SIMDE_FLOAT16_VALUE( 99.256), - SIMDE_FLOAT16_VALUE( 33.547), -SIMDE_FLOAT16_VALUE( 71.183), -SIMDE_FLOAT16_VALUE( 76.108), -SIMDE_FLOAT16_VALUE( 9.130), + SIMDE_FLOAT16_VALUE( - 41.349), SIMDE_FLOAT16_VALUE( - 86.501), SIMDE_FLOAT16_VALUE( 55.249), SIMDE_FLOAT16_VALUE( 80.615) } }, + { SIMDE_FLOAT16_VALUE( - 99.229), SIMDE_FLOAT16_VALUE( 33.337), SIMDE_FLOAT16_VALUE( - 34.145), SIMDE_FLOAT16_VALUE( - 18.231), + SIMDE_FLOAT16_VALUE( - 6.066), SIMDE_FLOAT16_VALUE( 62.125), SIMDE_FLOAT16_VALUE( - 30.190), SIMDE_FLOAT16_VALUE( 93.279), + SIMDE_FLOAT16_VALUE( - 4.053), SIMDE_FLOAT16_VALUE( - 16.454), SIMDE_FLOAT16_VALUE( 43.954), SIMDE_FLOAT16_VALUE( - 0.170), + SIMDE_FLOAT16_VALUE( 20.261), SIMDE_FLOAT16_VALUE( 4.405), SIMDE_FLOAT16_VALUE( 67.841), SIMDE_FLOAT16_VALUE( - 94.517), + SIMDE_FLOAT16_VALUE( - 12.337), SIMDE_FLOAT16_VALUE( 41.336), SIMDE_FLOAT16_VALUE( - 44.534), SIMDE_FLOAT16_VALUE( - 99.256), + SIMDE_FLOAT16_VALUE( 33.547), SIMDE_FLOAT16_VALUE( - 71.183), SIMDE_FLOAT16_VALUE( - 76.108), SIMDE_FLOAT16_VALUE( - 9.130), SIMDE_FLOAT16_VALUE( 36.006), SIMDE_FLOAT16_VALUE( 42.039), SIMDE_FLOAT16_VALUE( 31.550), SIMDE_FLOAT16_VALUE( 33.704), - -SIMDE_FLOAT16_VALUE( 41.349), -SIMDE_FLOAT16_VALUE( 86.501), SIMDE_FLOAT16_VALUE( 55.249), SIMDE_FLOAT16_VALUE( 80.615) } }, + SIMDE_FLOAT16_VALUE( - 41.349), SIMDE_FLOAT16_VALUE( - 86.501), SIMDE_FLOAT16_VALUE( 55.249), SIMDE_FLOAT16_VALUE( 80.615) } }, }; for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) { @@ -154,6 +155,18 @@ test_simde_vst1q_f16_x4 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t val[4] = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x32_t r = simde_vst1q_f16_x4(val[4]); + + simde_test_arm_neon_write_f16x4(2, val[4], SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x32(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st2_lane.c b/test/arm/neon/st2_lane.c index efa233792..6be2d73a5 100644 --- a/test/arm/neon/st2_lane.c +++ b/test/arm/neon/st2_lane.c @@ -429,42 +429,42 @@ test_simde_vst2_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst2_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16_t a[2]; simde_float16_t val[2][4]; int lane; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 96.699), SIMDE_FLOAT16_C( 96.081) }, - { { -SIMDE_FLOAT16_C( 86.059), SIMDE_FLOAT16_C( 10.093), -SIMDE_FLOAT16_C( 96.699), SIMDE_FLOAT16_C( 92.682) }, - { SIMDE_FLOAT16_C( 94.074), -SIMDE_FLOAT16_C( 25.535), SIMDE_FLOAT16_C( 96.081), SIMDE_FLOAT16_C( 79.156) } }, + { { SIMDE_FLOAT16_VALUE( - 96.699), SIMDE_FLOAT16_VALUE( 96.081) }, + { { SIMDE_FLOAT16_VALUE( - 86.059), SIMDE_FLOAT16_VALUE( 10.093), SIMDE_FLOAT16_VALUE( - 96.699), SIMDE_FLOAT16_VALUE( 92.682) }, + { SIMDE_FLOAT16_VALUE( 94.074), SIMDE_FLOAT16_VALUE( - 25.535), SIMDE_FLOAT16_VALUE( 96.081), SIMDE_FLOAT16_VALUE( 79.156) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 24.214), SIMDE_FLOAT16_C( 72.416) }, - { { SIMDE_FLOAT16_C( 56.403), -SIMDE_FLOAT16_C( 41.539), SIMDE_FLOAT16_C( 24.214), SIMDE_FLOAT16_C( 0.721) }, - { SIMDE_FLOAT16_C( 11.102), SIMDE_FLOAT16_C( 82.747), SIMDE_FLOAT16_C( 72.416), SIMDE_FLOAT16_C( 25.862) } }, + { { SIMDE_FLOAT16_VALUE( 24.214), SIMDE_FLOAT16_VALUE( 72.416) }, + { { SIMDE_FLOAT16_VALUE( 56.403), SIMDE_FLOAT16_VALUE( - 41.539), SIMDE_FLOAT16_VALUE( 24.214), SIMDE_FLOAT16_VALUE( 0.721) }, + { SIMDE_FLOAT16_VALUE( 11.102), SIMDE_FLOAT16_VALUE( 82.747), SIMDE_FLOAT16_VALUE( 72.416), SIMDE_FLOAT16_VALUE( 25.862) } }, INT8_C( 2) }, - { { -SIMDE_FLOAT16_C( 41.215), -SIMDE_FLOAT16_C( 10.097) }, - { { SIMDE_FLOAT16_C( 8.693), -SIMDE_FLOAT16_C( 45.955), -SIMDE_FLOAT16_C( 41.215), SIMDE_FLOAT16_C( 47.533) }, - { SIMDE_FLOAT16_C( 26.757), -SIMDE_FLOAT16_C( 10.266), -SIMDE_FLOAT16_C( 10.097), -SIMDE_FLOAT16_C( 73.201) } }, + { { SIMDE_FLOAT16_VALUE( - 41.215), SIMDE_FLOAT16_VALUE( - 10.097) }, + { { SIMDE_FLOAT16_VALUE( 8.693), SIMDE_FLOAT16_VALUE( - 45.955), SIMDE_FLOAT16_VALUE( - 41.215), SIMDE_FLOAT16_VALUE( 47.533) }, + { SIMDE_FLOAT16_VALUE( 26.757), SIMDE_FLOAT16_VALUE( - 10.266), SIMDE_FLOAT16_VALUE( - 10.097), SIMDE_FLOAT16_VALUE( - 73.201) } }, INT8_C( 2) }, - { { -SIMDE_FLOAT16_C( 14.688), SIMDE_FLOAT16_C( 26.052) }, - { { -SIMDE_FLOAT16_C( 13.883), SIMDE_FLOAT16_C( 25.378), SIMDE_FLOAT16_C( 82.439), -SIMDE_FLOAT16_C( 14.688) }, - { SIMDE_FLOAT16_C( 75.364), -SIMDE_FLOAT16_C( 98.234), SIMDE_FLOAT16_C( 21.632), SIMDE_FLOAT16_C( 26.052) } }, + { { SIMDE_FLOAT16_VALUE( - 14.688), SIMDE_FLOAT16_VALUE( 26.052) }, + { { SIMDE_FLOAT16_VALUE( - 13.883), SIMDE_FLOAT16_VALUE( 25.378), SIMDE_FLOAT16_VALUE( 82.439), SIMDE_FLOAT16_VALUE( - 14.688) }, + { SIMDE_FLOAT16_VALUE( 75.364), SIMDE_FLOAT16_VALUE( - 98.234), SIMDE_FLOAT16_VALUE( 21.632), SIMDE_FLOAT16_VALUE( 26.052) } }, INT8_C( 3) }, - { { -SIMDE_FLOAT16_C( 56.396), -SIMDE_FLOAT16_C( 13.528) }, - { { SIMDE_FLOAT16_C( 53.363), SIMDE_FLOAT16_C( 54.407), -SIMDE_FLOAT16_C( 56.396), -SIMDE_FLOAT16_C( 23.778) }, - { SIMDE_FLOAT16_C( 46.186), -SIMDE_FLOAT16_C( 25.159), -SIMDE_FLOAT16_C( 13.528), -SIMDE_FLOAT16_C( 47.334) } }, + { { SIMDE_FLOAT16_VALUE( - 56.396), SIMDE_FLOAT16_VALUE( - 13.528) }, + { { SIMDE_FLOAT16_VALUE( 53.363), SIMDE_FLOAT16_VALUE( 54.407), SIMDE_FLOAT16_VALUE( - 56.396), SIMDE_FLOAT16_VALUE( - 23.778) }, + { SIMDE_FLOAT16_VALUE( 46.186), SIMDE_FLOAT16_VALUE( - 25.159), SIMDE_FLOAT16_VALUE( - 13.528), SIMDE_FLOAT16_VALUE( - 47.334) } }, INT8_C( 2) }, - { { -SIMDE_FLOAT16_C( 68.946), -SIMDE_FLOAT16_C( 82.937) }, - { { SIMDE_FLOAT16_C( 30.751), SIMDE_FLOAT16_C( 12.829), -SIMDE_FLOAT16_C( 68.946), SIMDE_FLOAT16_C( 10.480) }, - { SIMDE_FLOAT16_C( 58.238), SIMDE_FLOAT16_C( 3.858), -SIMDE_FLOAT16_C( 82.937), -SIMDE_FLOAT16_C( 2.434) } }, + { { SIMDE_FLOAT16_VALUE( - 68.946), SIMDE_FLOAT16_VALUE( - 82.937) }, + { { SIMDE_FLOAT16_VALUE( 30.751), SIMDE_FLOAT16_VALUE( 12.829), SIMDE_FLOAT16_VALUE( - 68.946), SIMDE_FLOAT16_VALUE( 10.480) }, + { SIMDE_FLOAT16_VALUE( 58.238), SIMDE_FLOAT16_VALUE( 3.858), SIMDE_FLOAT16_VALUE( - 82.937), SIMDE_FLOAT16_VALUE( - 2.434) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 4.407), -SIMDE_FLOAT16_C( 66.972) }, - { { -SIMDE_FLOAT16_C( 94.165), SIMDE_FLOAT16_C( 4.407), -SIMDE_FLOAT16_C( 78.247), SIMDE_FLOAT16_C( 4.932) }, - { SIMDE_FLOAT16_C( 57.296), -SIMDE_FLOAT16_C( 66.972), -SIMDE_FLOAT16_C( 76.884), -SIMDE_FLOAT16_C( 1.070) } }, + { { SIMDE_FLOAT16_VALUE( 4.407), SIMDE_FLOAT16_VALUE( - 66.972) }, + { { SIMDE_FLOAT16_VALUE( - 94.165), SIMDE_FLOAT16_VALUE( 4.407), SIMDE_FLOAT16_VALUE( - 78.247), SIMDE_FLOAT16_VALUE( 4.932) }, + { SIMDE_FLOAT16_VALUE( 57.296), SIMDE_FLOAT16_VALUE( - 66.972), SIMDE_FLOAT16_VALUE( - 76.884), SIMDE_FLOAT16_VALUE( - 1.070) } }, INT8_C( 1) }, - { { -SIMDE_FLOAT16_C( 49.253), -SIMDE_FLOAT16_C( 68.363) }, - { { -SIMDE_FLOAT16_C( 42.453), SIMDE_FLOAT16_C( 76.770), -SIMDE_FLOAT16_C( 49.253), SIMDE_FLOAT16_C( 42.268) }, - { -SIMDE_FLOAT16_C( 25.787), -SIMDE_FLOAT16_C( 28.102), -SIMDE_FLOAT16_C( 68.363), -SIMDE_FLOAT16_C( 67.189) } }, + { { SIMDE_FLOAT16_VALUE( - 49.253), SIMDE_FLOAT16_VALUE( - 68.363) }, + { { SIMDE_FLOAT16_VALUE( - 42.453), SIMDE_FLOAT16_VALUE( 76.770), SIMDE_FLOAT16_VALUE( - 49.253), SIMDE_FLOAT16_VALUE( 42.268) }, + { SIMDE_FLOAT16_VALUE( - 25.787), SIMDE_FLOAT16_VALUE( - 28.102), SIMDE_FLOAT16_VALUE( - 68.363), SIMDE_FLOAT16_VALUE( - 67.189) } }, INT8_C( 2) }, }; @@ -1123,58 +1123,58 @@ test_simde_vst2q_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst2q_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16_t a[2]; simde_float16_t val[2][8]; int lane; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 90.393), SIMDE_FLOAT16_C( 63.104) }, - { { -SIMDE_FLOAT16_C( 38.257), -SIMDE_FLOAT16_C( 31.638), -SIMDE_FLOAT16_C( 97.258), -SIMDE_FLOAT16_C( 70.618), - -SIMDE_FLOAT16_C( 11.335), -SIMDE_FLOAT16_C( 8.280), SIMDE_FLOAT16_C( 23.083), -SIMDE_FLOAT16_C( 90.393) }, - { SIMDE_FLOAT16_C( 74.360), SIMDE_FLOAT16_C( 51.715), -SIMDE_FLOAT16_C( 79.402), SIMDE_FLOAT16_C( 71.628), - SIMDE_FLOAT16_C( 50.051), -SIMDE_FLOAT16_C( 51.089), -SIMDE_FLOAT16_C( 33.431), SIMDE_FLOAT16_C( 63.104) } }, + { { SIMDE_FLOAT16_VALUE( - 90.393), SIMDE_FLOAT16_VALUE( 63.104) }, + { { SIMDE_FLOAT16_VALUE( - 38.257), SIMDE_FLOAT16_VALUE( - 31.638), SIMDE_FLOAT16_VALUE( - 97.258), SIMDE_FLOAT16_VALUE( - 70.618), + SIMDE_FLOAT16_VALUE( - 11.335), SIMDE_FLOAT16_VALUE( - 8.280), SIMDE_FLOAT16_VALUE( 23.083), SIMDE_FLOAT16_VALUE( - 90.393) }, + { SIMDE_FLOAT16_VALUE( 74.360), SIMDE_FLOAT16_VALUE( 51.715), SIMDE_FLOAT16_VALUE( - 79.402), SIMDE_FLOAT16_VALUE( 71.628), + SIMDE_FLOAT16_VALUE( 50.051), SIMDE_FLOAT16_VALUE( - 51.089), SIMDE_FLOAT16_VALUE( - 33.431), SIMDE_FLOAT16_VALUE( 63.104) } }, INT8_C( 7) }, - { { SIMDE_FLOAT16_C( 64.040), -SIMDE_FLOAT16_C( 67.280) }, - { { SIMDE_FLOAT16_C( 41.175), SIMDE_FLOAT16_C( 72.644), SIMDE_FLOAT16_C( 64.040), -SIMDE_FLOAT16_C( 54.404), - SIMDE_FLOAT16_C( 97.772), SIMDE_FLOAT16_C( 58.590), -SIMDE_FLOAT16_C( 28.472), -SIMDE_FLOAT16_C( 67.625) }, - { -SIMDE_FLOAT16_C( 80.611), SIMDE_FLOAT16_C( 99.705), -SIMDE_FLOAT16_C( 67.280), SIMDE_FLOAT16_C( 5.574), - -SIMDE_FLOAT16_C( 20.029), -SIMDE_FLOAT16_C( 35.226), -SIMDE_FLOAT16_C( 1.819), -SIMDE_FLOAT16_C( 62.990) } }, + { { SIMDE_FLOAT16_VALUE( 64.040), SIMDE_FLOAT16_VALUE( - 67.280) }, + { { SIMDE_FLOAT16_VALUE( 41.175), SIMDE_FLOAT16_VALUE( 72.644), SIMDE_FLOAT16_VALUE( 64.040), SIMDE_FLOAT16_VALUE( - 54.404), + SIMDE_FLOAT16_VALUE( 97.772), SIMDE_FLOAT16_VALUE( 58.590), SIMDE_FLOAT16_VALUE( - 28.472), SIMDE_FLOAT16_VALUE( - 67.625) }, + { SIMDE_FLOAT16_VALUE( - 80.611), SIMDE_FLOAT16_VALUE( 99.705), SIMDE_FLOAT16_VALUE( - 67.280), SIMDE_FLOAT16_VALUE( 5.574), + SIMDE_FLOAT16_VALUE( - 20.029), SIMDE_FLOAT16_VALUE( - 35.226), SIMDE_FLOAT16_VALUE( - 1.819), SIMDE_FLOAT16_VALUE( - 62.990) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 23.024), -SIMDE_FLOAT16_C( 77.316) }, - { { SIMDE_FLOAT16_C( 94.862), -SIMDE_FLOAT16_C( 53.113), SIMDE_FLOAT16_C( 76.880), -SIMDE_FLOAT16_C( 24.592), - SIMDE_FLOAT16_C( 23.024), -SIMDE_FLOAT16_C( 86.319), -SIMDE_FLOAT16_C( 49.922), SIMDE_FLOAT16_C( 74.371) }, - { -SIMDE_FLOAT16_C( 35.182), SIMDE_FLOAT16_C( 91.375), -SIMDE_FLOAT16_C( 30.442), SIMDE_FLOAT16_C( 62.763), - -SIMDE_FLOAT16_C( 77.316), -SIMDE_FLOAT16_C( 98.725), SIMDE_FLOAT16_C( 77.730), -SIMDE_FLOAT16_C( 6.752) } }, + { { SIMDE_FLOAT16_VALUE( 23.024), SIMDE_FLOAT16_VALUE( - 77.316) }, + { { SIMDE_FLOAT16_VALUE( 94.862), SIMDE_FLOAT16_VALUE( - 53.113), SIMDE_FLOAT16_VALUE( 76.880), SIMDE_FLOAT16_VALUE( - 24.592), + SIMDE_FLOAT16_VALUE( 23.024), SIMDE_FLOAT16_VALUE( - 86.319), SIMDE_FLOAT16_VALUE( - 49.922), SIMDE_FLOAT16_VALUE( 74.371) }, + { SIMDE_FLOAT16_VALUE( - 35.182), SIMDE_FLOAT16_VALUE( 91.375), SIMDE_FLOAT16_VALUE( - 30.442), SIMDE_FLOAT16_VALUE( 62.763), + SIMDE_FLOAT16_VALUE( - 77.316), SIMDE_FLOAT16_VALUE( - 98.725), SIMDE_FLOAT16_VALUE( 77.730), SIMDE_FLOAT16_VALUE( - 6.752) } }, INT8_C( 4) }, - { { -SIMDE_FLOAT16_C( 89.098), -SIMDE_FLOAT16_C( 47.386) }, - { { -SIMDE_FLOAT16_C( 37.183), -SIMDE_FLOAT16_C( 99.478), -SIMDE_FLOAT16_C( 72.315), SIMDE_FLOAT16_C( 60.865), - SIMDE_FLOAT16_C( 90.711), SIMDE_FLOAT16_C( 33.609), SIMDE_FLOAT16_C( 22.229), -SIMDE_FLOAT16_C( 89.098) }, - { SIMDE_FLOAT16_C( 18.834), -SIMDE_FLOAT16_C( 38.890), SIMDE_FLOAT16_C( 1.151), -SIMDE_FLOAT16_C( 50.932), - SIMDE_FLOAT16_C( 16.869), SIMDE_FLOAT16_C( 72.770), SIMDE_FLOAT16_C( 43.215), -SIMDE_FLOAT16_C( 47.386) } }, + { { SIMDE_FLOAT16_VALUE( - 89.098), SIMDE_FLOAT16_VALUE( - 47.386) }, + { { SIMDE_FLOAT16_VALUE( - 37.183), SIMDE_FLOAT16_VALUE( - 99.478), SIMDE_FLOAT16_VALUE( - 72.315), SIMDE_FLOAT16_VALUE( 60.865), + SIMDE_FLOAT16_VALUE( 90.711), SIMDE_FLOAT16_VALUE( 33.609), SIMDE_FLOAT16_VALUE( 22.229), SIMDE_FLOAT16_VALUE( - 89.098) }, + { SIMDE_FLOAT16_VALUE( 18.834), SIMDE_FLOAT16_VALUE( - 38.890), SIMDE_FLOAT16_VALUE( 1.151), SIMDE_FLOAT16_VALUE( - 50.932), + SIMDE_FLOAT16_VALUE( 16.869), SIMDE_FLOAT16_VALUE( 72.770), SIMDE_FLOAT16_VALUE( 43.215), SIMDE_FLOAT16_VALUE( - 47.386) } }, INT8_C( 7) }, - { { -SIMDE_FLOAT16_C( 74.604), SIMDE_FLOAT16_C( 83.519) }, - { { -SIMDE_FLOAT16_C( 87.245), -SIMDE_FLOAT16_C( 66.241), -SIMDE_FLOAT16_C( 49.725), -SIMDE_FLOAT16_C( 74.604), - SIMDE_FLOAT16_C( 52.094), -SIMDE_FLOAT16_C( 95.107), SIMDE_FLOAT16_C( 95.169), SIMDE_FLOAT16_C( 80.442) }, - { SIMDE_FLOAT16_C( 4.494), SIMDE_FLOAT16_C( 93.210), SIMDE_FLOAT16_C( 18.867), SIMDE_FLOAT16_C( 83.519), - -SIMDE_FLOAT16_C( 54.371), -SIMDE_FLOAT16_C( 96.968), SIMDE_FLOAT16_C( 31.350), SIMDE_FLOAT16_C( 84.978) } }, + { { SIMDE_FLOAT16_VALUE( - 74.604), SIMDE_FLOAT16_VALUE( 83.519) }, + { { SIMDE_FLOAT16_VALUE( - 87.245), SIMDE_FLOAT16_VALUE( - 66.241), SIMDE_FLOAT16_VALUE( - 49.725), SIMDE_FLOAT16_VALUE( - 74.604), + SIMDE_FLOAT16_VALUE( 52.094), SIMDE_FLOAT16_VALUE( - 95.107), SIMDE_FLOAT16_VALUE( 95.169), SIMDE_FLOAT16_VALUE( 80.442) }, + { SIMDE_FLOAT16_VALUE( 4.494), SIMDE_FLOAT16_VALUE( 93.210), SIMDE_FLOAT16_VALUE( 18.867), SIMDE_FLOAT16_VALUE( 83.519), + SIMDE_FLOAT16_VALUE( - 54.371), SIMDE_FLOAT16_VALUE( - 96.968), SIMDE_FLOAT16_VALUE( 31.350), SIMDE_FLOAT16_VALUE( 84.978) } }, INT8_C( 3) }, - { { SIMDE_FLOAT16_C( 11.757), -SIMDE_FLOAT16_C( 92.199) }, - { { SIMDE_FLOAT16_C( 11.757), SIMDE_FLOAT16_C( 28.988), -SIMDE_FLOAT16_C( 67.095), -SIMDE_FLOAT16_C( 58.193), - SIMDE_FLOAT16_C( 45.038), -SIMDE_FLOAT16_C( 42.819), -SIMDE_FLOAT16_C( 88.284), SIMDE_FLOAT16_C( 53.437) }, - { -SIMDE_FLOAT16_C( 92.199), SIMDE_FLOAT16_C( 12.165), SIMDE_FLOAT16_C( 3.097), SIMDE_FLOAT16_C( 69.414), - -SIMDE_FLOAT16_C( 22.656), SIMDE_FLOAT16_C( 5.711), -SIMDE_FLOAT16_C( 39.886), SIMDE_FLOAT16_C( 37.784) } }, + { { SIMDE_FLOAT16_VALUE( 11.757), SIMDE_FLOAT16_VALUE( - 92.199) }, + { { SIMDE_FLOAT16_VALUE( 11.757), SIMDE_FLOAT16_VALUE( 28.988), SIMDE_FLOAT16_VALUE( - 67.095), SIMDE_FLOAT16_VALUE( - 58.193), + SIMDE_FLOAT16_VALUE( 45.038), SIMDE_FLOAT16_VALUE( - 42.819), SIMDE_FLOAT16_VALUE( - 88.284), SIMDE_FLOAT16_VALUE( 53.437) }, + { SIMDE_FLOAT16_VALUE( - 92.199), SIMDE_FLOAT16_VALUE( 12.165), SIMDE_FLOAT16_VALUE( 3.097), SIMDE_FLOAT16_VALUE( 69.414), + SIMDE_FLOAT16_VALUE( - 22.656), SIMDE_FLOAT16_VALUE( 5.711), SIMDE_FLOAT16_VALUE( - 39.886), SIMDE_FLOAT16_VALUE( 37.784) } }, INT8_C( 0) }, - { { SIMDE_FLOAT16_C( 19.626), SIMDE_FLOAT16_C( 24.723) }, - { { -SIMDE_FLOAT16_C( 4.744), SIMDE_FLOAT16_C( 15.391), SIMDE_FLOAT16_C( 19.626), SIMDE_FLOAT16_C( 64.213), - SIMDE_FLOAT16_C( 92.541), SIMDE_FLOAT16_C( 24.957), SIMDE_FLOAT16_C( 42.707), -SIMDE_FLOAT16_C( 42.789) }, - { -SIMDE_FLOAT16_C( 35.790), SIMDE_FLOAT16_C( 98.414), SIMDE_FLOAT16_C( 24.723), -SIMDE_FLOAT16_C( 2.908), - SIMDE_FLOAT16_C( 8.083), -SIMDE_FLOAT16_C( 46.904), -SIMDE_FLOAT16_C( 37.831), -SIMDE_FLOAT16_C( 59.362) } }, + { { SIMDE_FLOAT16_VALUE( 19.626), SIMDE_FLOAT16_VALUE( 24.723) }, + { { SIMDE_FLOAT16_VALUE( - 4.744), SIMDE_FLOAT16_VALUE( 15.391), SIMDE_FLOAT16_VALUE( 19.626), SIMDE_FLOAT16_VALUE( 64.213), + SIMDE_FLOAT16_VALUE( 92.541), SIMDE_FLOAT16_VALUE( 24.957), SIMDE_FLOAT16_VALUE( 42.707), SIMDE_FLOAT16_VALUE( - 42.789) }, + { SIMDE_FLOAT16_VALUE( - 35.790), SIMDE_FLOAT16_VALUE( 98.414), SIMDE_FLOAT16_VALUE( 24.723), SIMDE_FLOAT16_VALUE( - 2.908), + SIMDE_FLOAT16_VALUE( 8.083), SIMDE_FLOAT16_VALUE( - 46.904), SIMDE_FLOAT16_VALUE( - 37.831), SIMDE_FLOAT16_VALUE( - 59.362) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 64.222), -SIMDE_FLOAT16_C( 33.836) }, - { { -SIMDE_FLOAT16_C( 31.643), -SIMDE_FLOAT16_C( 36.586), SIMDE_FLOAT16_C( 64.222), -SIMDE_FLOAT16_C( 73.531), - -SIMDE_FLOAT16_C( 64.852), SIMDE_FLOAT16_C( 22.974), -SIMDE_FLOAT16_C( 27.821), -SIMDE_FLOAT16_C( 62.560) }, - { -SIMDE_FLOAT16_C( 78.721), SIMDE_FLOAT16_C( 35.577), -SIMDE_FLOAT16_C( 33.836), SIMDE_FLOAT16_C( 54.532), - -SIMDE_FLOAT16_C( 39.138), -SIMDE_FLOAT16_C( 98.477), -SIMDE_FLOAT16_C( 49.646), -SIMDE_FLOAT16_C( 72.783) } }, + { { SIMDE_FLOAT16_VALUE( 64.222), SIMDE_FLOAT16_VALUE( - 33.836) }, + { { SIMDE_FLOAT16_VALUE( - 31.643), SIMDE_FLOAT16_VALUE( - 36.586), SIMDE_FLOAT16_VALUE( 64.222), SIMDE_FLOAT16_VALUE( - 73.531), + SIMDE_FLOAT16_VALUE( - 64.852), SIMDE_FLOAT16_VALUE( 22.974), SIMDE_FLOAT16_VALUE( - 27.821), SIMDE_FLOAT16_VALUE( - 62.560) }, + { SIMDE_FLOAT16_VALUE( - 78.721), SIMDE_FLOAT16_VALUE( 35.577), SIMDE_FLOAT16_VALUE( - 33.836), SIMDE_FLOAT16_VALUE( 54.532), + SIMDE_FLOAT16_VALUE( - 39.138), SIMDE_FLOAT16_VALUE( - 98.477), SIMDE_FLOAT16_VALUE( - 49.646), SIMDE_FLOAT16_VALUE( - 72.783) } }, INT8_C( 2) }, }; diff --git a/test/arm/neon/st3.c b/test/arm/neon/st3.c index 3bd165010..e54bf69ec 100644 --- a/test/arm/neon/st3.c +++ b/test/arm/neon/st3.c @@ -20,60 +20,61 @@ static int test_simde_vst3_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 r0[4]; simde_float16 r1[4]; simde_float16 r2[4]; simde_float16 a[12]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 96.588), -SIMDE_FLOAT16_C( 1.777), SIMDE_FLOAT16_C( 46.463), SIMDE_FLOAT16_C( 56.300) }, - { SIMDE_FLOAT16_C( 56.067), SIMDE_FLOAT16_C( 76.113), -SIMDE_FLOAT16_C( 80.190), -SIMDE_FLOAT16_C( 59.487) }, - { -SIMDE_FLOAT16_C( 85.440), SIMDE_FLOAT16_C( 11.955), SIMDE_FLOAT16_C( 31.790), -SIMDE_FLOAT16_C( 31.309) }, - { SIMDE_FLOAT16_C( 96.588), SIMDE_FLOAT16_C( 56.067), -SIMDE_FLOAT16_C( 85.440), -SIMDE_FLOAT16_C( 1.777), - SIMDE_FLOAT16_C( 76.113), SIMDE_FLOAT16_C( 11.955), SIMDE_FLOAT16_C( 46.463), -SIMDE_FLOAT16_C( 80.190), - SIMDE_FLOAT16_C( 31.790), SIMDE_FLOAT16_C( 56.300), -SIMDE_FLOAT16_C( 59.487), -SIMDE_FLOAT16_C( 31.309) } }, - { { -SIMDE_FLOAT16_C( 63.610), SIMDE_FLOAT16_C( 8.056), -SIMDE_FLOAT16_C( 12.504), SIMDE_FLOAT16_C( 76.738) }, - { -SIMDE_FLOAT16_C( 48.058), -SIMDE_FLOAT16_C( 5.714), -SIMDE_FLOAT16_C( 3.043), SIMDE_FLOAT16_C( 60.984) }, - { -SIMDE_FLOAT16_C( 90.940), SIMDE_FLOAT16_C( 77.403), -SIMDE_FLOAT16_C( 57.046), SIMDE_FLOAT16_C( 37.511) }, - { -SIMDE_FLOAT16_C( 63.610), -SIMDE_FLOAT16_C( 48.058), -SIMDE_FLOAT16_C( 90.940), SIMDE_FLOAT16_C( 8.056), - -SIMDE_FLOAT16_C( 5.714), SIMDE_FLOAT16_C( 77.403), -SIMDE_FLOAT16_C( 12.504), -SIMDE_FLOAT16_C( 3.043), - -SIMDE_FLOAT16_C( 57.046), SIMDE_FLOAT16_C( 76.738), SIMDE_FLOAT16_C( 60.984), SIMDE_FLOAT16_C( 37.511) } }, - { { SIMDE_FLOAT16_C( 93.849), SIMDE_FLOAT16_C( 43.255), SIMDE_FLOAT16_C( 95.638), -SIMDE_FLOAT16_C( 54.607) }, - { SIMDE_FLOAT16_C( 99.776), SIMDE_FLOAT16_C( 59.886), SIMDE_FLOAT16_C( 53.777), -SIMDE_FLOAT16_C( 64.378) }, - { -SIMDE_FLOAT16_C( 44.354), SIMDE_FLOAT16_C( 90.343), -SIMDE_FLOAT16_C( 22.346), -SIMDE_FLOAT16_C( 70.759) }, - { SIMDE_FLOAT16_C( 93.849), SIMDE_FLOAT16_C( 99.776), -SIMDE_FLOAT16_C( 44.354), SIMDE_FLOAT16_C( 43.255), - SIMDE_FLOAT16_C( 59.886), SIMDE_FLOAT16_C( 90.343), SIMDE_FLOAT16_C( 95.638), SIMDE_FLOAT16_C( 53.777), - -SIMDE_FLOAT16_C( 22.346), -SIMDE_FLOAT16_C( 54.607), -SIMDE_FLOAT16_C( 64.378), -SIMDE_FLOAT16_C( 70.759) } }, - { { SIMDE_FLOAT16_C( 82.593), -SIMDE_FLOAT16_C( 78.757), -SIMDE_FLOAT16_C( 89.472), -SIMDE_FLOAT16_C( 65.210) }, - { SIMDE_FLOAT16_C( 71.127), SIMDE_FLOAT16_C( 81.667), -SIMDE_FLOAT16_C( 51.422), SIMDE_FLOAT16_C( 71.658) }, - { -SIMDE_FLOAT16_C( 37.830), -SIMDE_FLOAT16_C( 63.633), SIMDE_FLOAT16_C( 47.933), SIMDE_FLOAT16_C( 6.764) }, - { SIMDE_FLOAT16_C( 82.593), SIMDE_FLOAT16_C( 71.127), -SIMDE_FLOAT16_C( 37.830), -SIMDE_FLOAT16_C( 78.757), - SIMDE_FLOAT16_C( 81.667), -SIMDE_FLOAT16_C( 63.633), -SIMDE_FLOAT16_C( 89.472), -SIMDE_FLOAT16_C( 51.422), - SIMDE_FLOAT16_C( 47.933), -SIMDE_FLOAT16_C( 65.210), SIMDE_FLOAT16_C( 71.658), SIMDE_FLOAT16_C( 6.764) } }, - { { -SIMDE_FLOAT16_C( 18.391), SIMDE_FLOAT16_C( 36.835), SIMDE_FLOAT16_C( 22.395), SIMDE_FLOAT16_C( 6.510) }, - { SIMDE_FLOAT16_C( 44.811), -SIMDE_FLOAT16_C( 12.385), -SIMDE_FLOAT16_C( 7.166), -SIMDE_FLOAT16_C( 93.173) }, - { SIMDE_FLOAT16_C( 14.253), SIMDE_FLOAT16_C( 90.608), -SIMDE_FLOAT16_C( 83.326), -SIMDE_FLOAT16_C( 35.862) }, - { -SIMDE_FLOAT16_C( 18.391), SIMDE_FLOAT16_C( 44.811), SIMDE_FLOAT16_C( 14.253), SIMDE_FLOAT16_C( 36.835), - -SIMDE_FLOAT16_C( 12.385), SIMDE_FLOAT16_C( 90.608), SIMDE_FLOAT16_C( 22.395), -SIMDE_FLOAT16_C( 7.166), - -SIMDE_FLOAT16_C( 83.326), SIMDE_FLOAT16_C( 6.510), -SIMDE_FLOAT16_C( 93.173), -SIMDE_FLOAT16_C( 35.862) } }, - { { SIMDE_FLOAT16_C( 29.457), SIMDE_FLOAT16_C( 71.643), -SIMDE_FLOAT16_C( 73.821), -SIMDE_FLOAT16_C( 57.149) }, - { SIMDE_FLOAT16_C( 53.561), SIMDE_FLOAT16_C( 52.606), -SIMDE_FLOAT16_C( 93.208), SIMDE_FLOAT16_C( 61.772) }, - { SIMDE_FLOAT16_C( 29.595), -SIMDE_FLOAT16_C( 0.911), -SIMDE_FLOAT16_C( 25.184), -SIMDE_FLOAT16_C( 63.522) }, - { SIMDE_FLOAT16_C( 29.457), SIMDE_FLOAT16_C( 53.561), SIMDE_FLOAT16_C( 29.595), SIMDE_FLOAT16_C( 71.643), - SIMDE_FLOAT16_C( 52.606), -SIMDE_FLOAT16_C( 0.911), -SIMDE_FLOAT16_C( 73.821), -SIMDE_FLOAT16_C( 93.208), - -SIMDE_FLOAT16_C( 25.184), -SIMDE_FLOAT16_C( 57.149), SIMDE_FLOAT16_C( 61.772), -SIMDE_FLOAT16_C( 63.522) } }, - { { -SIMDE_FLOAT16_C( 25.263), -SIMDE_FLOAT16_C( 21.565), SIMDE_FLOAT16_C( 30.769), SIMDE_FLOAT16_C( 63.051) }, - { SIMDE_FLOAT16_C( 9.949), SIMDE_FLOAT16_C( 3.818), SIMDE_FLOAT16_C( 91.706), -SIMDE_FLOAT16_C( 56.254) }, - { -SIMDE_FLOAT16_C( 62.534), SIMDE_FLOAT16_C( 15.090), SIMDE_FLOAT16_C( 33.667), -SIMDE_FLOAT16_C( 11.503) }, - { -SIMDE_FLOAT16_C( 25.263), SIMDE_FLOAT16_C( 9.949), -SIMDE_FLOAT16_C( 62.534), -SIMDE_FLOAT16_C( 21.565), - SIMDE_FLOAT16_C( 3.818), SIMDE_FLOAT16_C( 15.090), SIMDE_FLOAT16_C( 30.769), SIMDE_FLOAT16_C( 91.706), - SIMDE_FLOAT16_C( 33.667), SIMDE_FLOAT16_C( 63.051), -SIMDE_FLOAT16_C( 56.254), -SIMDE_FLOAT16_C( 11.503) } }, - { { SIMDE_FLOAT16_C( 8.202), -SIMDE_FLOAT16_C( 16.555), SIMDE_FLOAT16_C( 92.084), SIMDE_FLOAT16_C( 72.240) }, - { -SIMDE_FLOAT16_C( 95.149), -SIMDE_FLOAT16_C( 39.732), -SIMDE_FLOAT16_C( 56.675), -SIMDE_FLOAT16_C( 0.718) }, - { SIMDE_FLOAT16_C( 73.858), -SIMDE_FLOAT16_C( 78.753), -SIMDE_FLOAT16_C( 19.882), SIMDE_FLOAT16_C( 17.845) }, - { SIMDE_FLOAT16_C( 8.202), -SIMDE_FLOAT16_C( 95.149), SIMDE_FLOAT16_C( 73.858), -SIMDE_FLOAT16_C( 16.555), - -SIMDE_FLOAT16_C( 39.732), -SIMDE_FLOAT16_C( 78.753), SIMDE_FLOAT16_C( 92.084), -SIMDE_FLOAT16_C( 56.675), - -SIMDE_FLOAT16_C( 19.882), SIMDE_FLOAT16_C( 72.240), -SIMDE_FLOAT16_C( 0.718), SIMDE_FLOAT16_C( 17.845) } }, + { { SIMDE_FLOAT16_VALUE( 96.588), SIMDE_FLOAT16_VALUE( - 1.777), SIMDE_FLOAT16_VALUE( 46.463), SIMDE_FLOAT16_VALUE( 56.300) }, + { SIMDE_FLOAT16_VALUE( 56.067), SIMDE_FLOAT16_VALUE( 76.113), SIMDE_FLOAT16_VALUE( - 80.190), SIMDE_FLOAT16_VALUE( - 59.487) }, + { SIMDE_FLOAT16_VALUE( - 85.440), SIMDE_FLOAT16_VALUE( 11.955), SIMDE_FLOAT16_VALUE( 31.790), SIMDE_FLOAT16_VALUE( - 31.309) }, + { SIMDE_FLOAT16_VALUE( 96.588), SIMDE_FLOAT16_VALUE( 56.067), SIMDE_FLOAT16_VALUE( - 85.440), SIMDE_FLOAT16_VALUE( - 1.777), + SIMDE_FLOAT16_VALUE( 76.113), SIMDE_FLOAT16_VALUE( 11.955), SIMDE_FLOAT16_VALUE( 46.463), SIMDE_FLOAT16_VALUE( - 80.190), + SIMDE_FLOAT16_VALUE( 31.790), SIMDE_FLOAT16_VALUE( 56.300), SIMDE_FLOAT16_VALUE( - 59.487), SIMDE_FLOAT16_VALUE( - 31.309) } }, + { { SIMDE_FLOAT16_VALUE( - 63.610), SIMDE_FLOAT16_VALUE( 8.056), SIMDE_FLOAT16_VALUE( - 12.504), SIMDE_FLOAT16_VALUE( 76.738) }, + { SIMDE_FLOAT16_VALUE( - 48.058), SIMDE_FLOAT16_VALUE( - 5.714), SIMDE_FLOAT16_VALUE( - 3.043), SIMDE_FLOAT16_VALUE( 60.984) }, + { SIMDE_FLOAT16_VALUE( - 90.940), SIMDE_FLOAT16_VALUE( 77.403), SIMDE_FLOAT16_VALUE( - 57.046), SIMDE_FLOAT16_VALUE( 37.511) }, + { SIMDE_FLOAT16_VALUE( - 63.610), SIMDE_FLOAT16_VALUE( - 48.058), SIMDE_FLOAT16_VALUE( - 90.940), SIMDE_FLOAT16_VALUE( 8.056), + SIMDE_FLOAT16_VALUE( - 5.714), SIMDE_FLOAT16_VALUE( 77.403), SIMDE_FLOAT16_VALUE( - 12.504), SIMDE_FLOAT16_VALUE( - 3.043), + SIMDE_FLOAT16_VALUE( - 57.046), SIMDE_FLOAT16_VALUE( 76.738), SIMDE_FLOAT16_VALUE( 60.984), SIMDE_FLOAT16_VALUE( 37.511) } }, + { { SIMDE_FLOAT16_VALUE( 93.849), SIMDE_FLOAT16_VALUE( 43.255), SIMDE_FLOAT16_VALUE( 95.638), SIMDE_FLOAT16_VALUE( - 54.607) }, + { SIMDE_FLOAT16_VALUE( 99.776), SIMDE_FLOAT16_VALUE( 59.886), SIMDE_FLOAT16_VALUE( 53.777), SIMDE_FLOAT16_VALUE( - 64.378) }, + { SIMDE_FLOAT16_VALUE( - 44.354), SIMDE_FLOAT16_VALUE( 90.343), SIMDE_FLOAT16_VALUE( - 22.346), SIMDE_FLOAT16_VALUE( - 70.759) }, + { SIMDE_FLOAT16_VALUE( 93.849), SIMDE_FLOAT16_VALUE( 99.776), SIMDE_FLOAT16_VALUE( - 44.354), SIMDE_FLOAT16_VALUE( 43.255), + SIMDE_FLOAT16_VALUE( 59.886), SIMDE_FLOAT16_VALUE( 90.343), SIMDE_FLOAT16_VALUE( 95.638), SIMDE_FLOAT16_VALUE( 53.777), + SIMDE_FLOAT16_VALUE( - 22.346), SIMDE_FLOAT16_VALUE( - 54.607), SIMDE_FLOAT16_VALUE( - 64.378), SIMDE_FLOAT16_VALUE( - 70.759) } }, + { { SIMDE_FLOAT16_VALUE( 82.593), SIMDE_FLOAT16_VALUE( - 78.757), SIMDE_FLOAT16_VALUE( - 89.472), SIMDE_FLOAT16_VALUE( - 65.210) }, + { SIMDE_FLOAT16_VALUE( 71.127), SIMDE_FLOAT16_VALUE( 81.667), SIMDE_FLOAT16_VALUE( - 51.422), SIMDE_FLOAT16_VALUE( 71.658) }, + { SIMDE_FLOAT16_VALUE( - 37.830), SIMDE_FLOAT16_VALUE( - 63.633), SIMDE_FLOAT16_VALUE( 47.933), SIMDE_FLOAT16_VALUE( 6.764) }, + { SIMDE_FLOAT16_VALUE( 82.593), SIMDE_FLOAT16_VALUE( 71.127), SIMDE_FLOAT16_VALUE( - 37.830), SIMDE_FLOAT16_VALUE( - 78.757), + SIMDE_FLOAT16_VALUE( 81.667), SIMDE_FLOAT16_VALUE( - 63.633), SIMDE_FLOAT16_VALUE( - 89.472), SIMDE_FLOAT16_VALUE( - 51.422), + SIMDE_FLOAT16_VALUE( 47.933), SIMDE_FLOAT16_VALUE( - 65.210), SIMDE_FLOAT16_VALUE( 71.658), SIMDE_FLOAT16_VALUE( 6.764) } }, + { { SIMDE_FLOAT16_VALUE( - 18.391), SIMDE_FLOAT16_VALUE( 36.835), SIMDE_FLOAT16_VALUE( 22.395), SIMDE_FLOAT16_VALUE( 6.510) }, + { SIMDE_FLOAT16_VALUE( 44.811), SIMDE_FLOAT16_VALUE( - 12.385), SIMDE_FLOAT16_VALUE( - 7.166), SIMDE_FLOAT16_VALUE( - 93.173) }, + { SIMDE_FLOAT16_VALUE( 14.253), SIMDE_FLOAT16_VALUE( 90.608), SIMDE_FLOAT16_VALUE( - 83.326), SIMDE_FLOAT16_VALUE( - 35.862) }, + { SIMDE_FLOAT16_VALUE( - 18.391), SIMDE_FLOAT16_VALUE( 44.811), SIMDE_FLOAT16_VALUE( 14.253), SIMDE_FLOAT16_VALUE( 36.835), + SIMDE_FLOAT16_VALUE( - 12.385), SIMDE_FLOAT16_VALUE( 90.608), SIMDE_FLOAT16_VALUE( 22.395), SIMDE_FLOAT16_VALUE( - 7.166), + SIMDE_FLOAT16_VALUE( - 83.326), SIMDE_FLOAT16_VALUE( 6.510), SIMDE_FLOAT16_VALUE( - 93.173), SIMDE_FLOAT16_VALUE( - 35.862) } }, + { { SIMDE_FLOAT16_VALUE( 29.457), SIMDE_FLOAT16_VALUE( 71.643), SIMDE_FLOAT16_VALUE( - 73.821), SIMDE_FLOAT16_VALUE( - 57.149) }, + { SIMDE_FLOAT16_VALUE( 53.561), SIMDE_FLOAT16_VALUE( 52.606), SIMDE_FLOAT16_VALUE( - 93.208), SIMDE_FLOAT16_VALUE( 61.772) }, + { SIMDE_FLOAT16_VALUE( 29.595), SIMDE_FLOAT16_VALUE( - 0.911), SIMDE_FLOAT16_VALUE( - 25.184), SIMDE_FLOAT16_VALUE( - 63.522) }, + { SIMDE_FLOAT16_VALUE( 29.457), SIMDE_FLOAT16_VALUE( 53.561), SIMDE_FLOAT16_VALUE( 29.595), SIMDE_FLOAT16_VALUE( 71.643), + SIMDE_FLOAT16_VALUE( 52.606), SIMDE_FLOAT16_VALUE( - 0.911), SIMDE_FLOAT16_VALUE( - 73.821), SIMDE_FLOAT16_VALUE( - 93.208), + SIMDE_FLOAT16_VALUE( - 25.184), SIMDE_FLOAT16_VALUE( - 57.149), SIMDE_FLOAT16_VALUE( 61.772), SIMDE_FLOAT16_VALUE( - 63.522) } }, + { { SIMDE_FLOAT16_VALUE( - 25.263), SIMDE_FLOAT16_VALUE( - 21.565), SIMDE_FLOAT16_VALUE( 30.769), SIMDE_FLOAT16_VALUE( 63.051) }, + { SIMDE_FLOAT16_VALUE( 9.949), SIMDE_FLOAT16_VALUE( 3.818), SIMDE_FLOAT16_VALUE( 91.706), SIMDE_FLOAT16_VALUE( - 56.254) }, + { SIMDE_FLOAT16_VALUE( - 62.534), SIMDE_FLOAT16_VALUE( 15.090), SIMDE_FLOAT16_VALUE( 33.667), SIMDE_FLOAT16_VALUE( - 11.503) }, + { SIMDE_FLOAT16_VALUE( - 25.263), SIMDE_FLOAT16_VALUE( 9.949), SIMDE_FLOAT16_VALUE( - 62.534), SIMDE_FLOAT16_VALUE( - 21.565), + SIMDE_FLOAT16_VALUE( 3.818), SIMDE_FLOAT16_VALUE( 15.090), SIMDE_FLOAT16_VALUE( 30.769), SIMDE_FLOAT16_VALUE( 91.706), + SIMDE_FLOAT16_VALUE( 33.667), SIMDE_FLOAT16_VALUE( 63.051), SIMDE_FLOAT16_VALUE( - 56.254), SIMDE_FLOAT16_VALUE( - 11.503) } }, + { { SIMDE_FLOAT16_VALUE( 8.202), SIMDE_FLOAT16_VALUE( - 16.555), SIMDE_FLOAT16_VALUE( 92.084), SIMDE_FLOAT16_VALUE( 72.240) }, + { SIMDE_FLOAT16_VALUE( - 95.149), SIMDE_FLOAT16_VALUE( - 39.732), SIMDE_FLOAT16_VALUE( - 56.675), SIMDE_FLOAT16_VALUE( - 0.718) }, + { SIMDE_FLOAT16_VALUE( 73.858), SIMDE_FLOAT16_VALUE( - 78.753), SIMDE_FLOAT16_VALUE( - 19.882), SIMDE_FLOAT16_VALUE( 17.845) }, + { SIMDE_FLOAT16_VALUE( 8.202), SIMDE_FLOAT16_VALUE( - 95.149), SIMDE_FLOAT16_VALUE( 73.858), SIMDE_FLOAT16_VALUE( - 16.555), + SIMDE_FLOAT16_VALUE( - 39.732), SIMDE_FLOAT16_VALUE( - 78.753), SIMDE_FLOAT16_VALUE( 92.084), SIMDE_FLOAT16_VALUE( - 56.675), + SIMDE_FLOAT16_VALUE( - 19.882), SIMDE_FLOAT16_VALUE( 72.240), SIMDE_FLOAT16_VALUE( - 0.718), SIMDE_FLOAT16_VALUE( 17.845) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -92,6 +93,22 @@ test_simde_vst3_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t r0 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x4_t r1 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x4_t r2 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x12_t a = simde_vst3_f16(r0, r1, r2); + + simde_test_arm_neon_write_f16x4(2, r0, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r1, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r2, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x12(2, a, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -1877,108 +1894,109 @@ test_simde_vst3_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst3q_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 r0[8]; simde_float16 r1[8]; simde_float16 r2[8]; simde_float16 a[24]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 58.181), -SIMDE_FLOAT16_C( 74.070), SIMDE_FLOAT16_C( 2.770), SIMDE_FLOAT16_C( 89.824), - -SIMDE_FLOAT16_C( 73.116), SIMDE_FLOAT16_C( 77.533), -SIMDE_FLOAT16_C( 71.575), SIMDE_FLOAT16_C( 68.580) }, - { SIMDE_FLOAT16_C( 27.343), SIMDE_FLOAT16_C( 89.326), -SIMDE_FLOAT16_C( 80.249), -SIMDE_FLOAT16_C( 44.763), - SIMDE_FLOAT16_C( 75.289), -SIMDE_FLOAT16_C( 8.705), SIMDE_FLOAT16_C( 79.289), -SIMDE_FLOAT16_C( 12.997) }, - { SIMDE_FLOAT16_C( 88.201), -SIMDE_FLOAT16_C( 99.297), SIMDE_FLOAT16_C( 94.888), -SIMDE_FLOAT16_C( 94.830), - -SIMDE_FLOAT16_C( 82.408), -SIMDE_FLOAT16_C( 38.270), SIMDE_FLOAT16_C( 33.263), SIMDE_FLOAT16_C( 12.688) }, - { SIMDE_FLOAT16_C( 58.181), SIMDE_FLOAT16_C( 27.343), SIMDE_FLOAT16_C( 88.201), -SIMDE_FLOAT16_C( 74.070), - SIMDE_FLOAT16_C( 89.326), -SIMDE_FLOAT16_C( 99.297), SIMDE_FLOAT16_C( 2.770), -SIMDE_FLOAT16_C( 80.249), - SIMDE_FLOAT16_C( 94.888), SIMDE_FLOAT16_C( 89.824), -SIMDE_FLOAT16_C( 44.763), -SIMDE_FLOAT16_C( 94.830), - -SIMDE_FLOAT16_C( 73.116), SIMDE_FLOAT16_C( 75.289), -SIMDE_FLOAT16_C( 82.408), SIMDE_FLOAT16_C( 77.533), - -SIMDE_FLOAT16_C( 8.705), -SIMDE_FLOAT16_C( 38.270), -SIMDE_FLOAT16_C( 71.575), SIMDE_FLOAT16_C( 79.289), - SIMDE_FLOAT16_C( 33.263), SIMDE_FLOAT16_C( 68.580), -SIMDE_FLOAT16_C( 12.997), SIMDE_FLOAT16_C( 12.688) } }, - { { -SIMDE_FLOAT16_C( 68.228), -SIMDE_FLOAT16_C( 30.795), -SIMDE_FLOAT16_C( 93.060), SIMDE_FLOAT16_C( 88.656), - SIMDE_FLOAT16_C( 71.174), -SIMDE_FLOAT16_C( 83.014), SIMDE_FLOAT16_C( 34.681), -SIMDE_FLOAT16_C( 81.096) }, - { SIMDE_FLOAT16_C( 80.371), SIMDE_FLOAT16_C( 94.314), -SIMDE_FLOAT16_C( 28.329), -SIMDE_FLOAT16_C( 76.339), - SIMDE_FLOAT16_C( 13.986), SIMDE_FLOAT16_C( 15.222), SIMDE_FLOAT16_C( 76.136), -SIMDE_FLOAT16_C( 47.982) }, - { -SIMDE_FLOAT16_C( 71.178), -SIMDE_FLOAT16_C( 44.770), -SIMDE_FLOAT16_C( 67.133), SIMDE_FLOAT16_C( 84.421), - -SIMDE_FLOAT16_C( 74.326), -SIMDE_FLOAT16_C( 0.009), -SIMDE_FLOAT16_C( 15.213), SIMDE_FLOAT16_C( 78.007) }, - { -SIMDE_FLOAT16_C( 68.228), SIMDE_FLOAT16_C( 80.371), -SIMDE_FLOAT16_C( 71.178), -SIMDE_FLOAT16_C( 30.795), - SIMDE_FLOAT16_C( 94.314), -SIMDE_FLOAT16_C( 44.770), -SIMDE_FLOAT16_C( 93.060), -SIMDE_FLOAT16_C( 28.329), - -SIMDE_FLOAT16_C( 67.133), SIMDE_FLOAT16_C( 88.656), -SIMDE_FLOAT16_C( 76.339), SIMDE_FLOAT16_C( 84.421), - SIMDE_FLOAT16_C( 71.174), SIMDE_FLOAT16_C( 13.986), -SIMDE_FLOAT16_C( 74.326), -SIMDE_FLOAT16_C( 83.014), - SIMDE_FLOAT16_C( 15.222), -SIMDE_FLOAT16_C( 0.009), SIMDE_FLOAT16_C( 34.681), SIMDE_FLOAT16_C( 76.136), - -SIMDE_FLOAT16_C( 15.213), -SIMDE_FLOAT16_C( 81.096), -SIMDE_FLOAT16_C( 47.982), SIMDE_FLOAT16_C( 78.007) } }, - { { -SIMDE_FLOAT16_C( 99.134), -SIMDE_FLOAT16_C( 13.860), -SIMDE_FLOAT16_C( 92.713), -SIMDE_FLOAT16_C( 86.987), - -SIMDE_FLOAT16_C( 46.071), -SIMDE_FLOAT16_C( 46.428), -SIMDE_FLOAT16_C( 55.358), SIMDE_FLOAT16_C( 14.468) }, - { -SIMDE_FLOAT16_C( 16.248), -SIMDE_FLOAT16_C( 50.317), -SIMDE_FLOAT16_C( 57.890), SIMDE_FLOAT16_C( 13.081), - SIMDE_FLOAT16_C( 58.363), SIMDE_FLOAT16_C( 4.390), SIMDE_FLOAT16_C( 3.684), -SIMDE_FLOAT16_C( 18.959) }, - { SIMDE_FLOAT16_C( 85.928), SIMDE_FLOAT16_C( 31.159), SIMDE_FLOAT16_C( 77.301), SIMDE_FLOAT16_C( 10.011), - -SIMDE_FLOAT16_C( 90.228), -SIMDE_FLOAT16_C( 85.132), SIMDE_FLOAT16_C( 25.086), -SIMDE_FLOAT16_C( 86.977) }, - { -SIMDE_FLOAT16_C( 99.134), -SIMDE_FLOAT16_C( 16.248), SIMDE_FLOAT16_C( 85.928), -SIMDE_FLOAT16_C( 13.860), - -SIMDE_FLOAT16_C( 50.317), SIMDE_FLOAT16_C( 31.159), -SIMDE_FLOAT16_C( 92.713), -SIMDE_FLOAT16_C( 57.890), - SIMDE_FLOAT16_C( 77.301), -SIMDE_FLOAT16_C( 86.987), SIMDE_FLOAT16_C( 13.081), SIMDE_FLOAT16_C( 10.011), - -SIMDE_FLOAT16_C( 46.071), SIMDE_FLOAT16_C( 58.363), -SIMDE_FLOAT16_C( 90.228), -SIMDE_FLOAT16_C( 46.428), - SIMDE_FLOAT16_C( 4.390), -SIMDE_FLOAT16_C( 85.132), -SIMDE_FLOAT16_C( 55.358), SIMDE_FLOAT16_C( 3.684), - SIMDE_FLOAT16_C( 25.086), SIMDE_FLOAT16_C( 14.468), -SIMDE_FLOAT16_C( 18.959), -SIMDE_FLOAT16_C( 86.977) } }, - { { SIMDE_FLOAT16_C( 30.458), -SIMDE_FLOAT16_C( 38.116), -SIMDE_FLOAT16_C( 23.410), -SIMDE_FLOAT16_C( 76.968), - SIMDE_FLOAT16_C( 94.449), -SIMDE_FLOAT16_C( 25.593), -SIMDE_FLOAT16_C( 22.524), SIMDE_FLOAT16_C( 61.018) }, - { SIMDE_FLOAT16_C( 52.150), SIMDE_FLOAT16_C( 3.559), -SIMDE_FLOAT16_C( 11.531), -SIMDE_FLOAT16_C( 16.763), - SIMDE_FLOAT16_C( 58.053), SIMDE_FLOAT16_C( 59.411), -SIMDE_FLOAT16_C( 87.074), SIMDE_FLOAT16_C( 76.655) }, - { SIMDE_FLOAT16_C( 31.620), -SIMDE_FLOAT16_C( 8.034), SIMDE_FLOAT16_C( 77.915), SIMDE_FLOAT16_C( 90.009), - SIMDE_FLOAT16_C( 40.231), -SIMDE_FLOAT16_C( 28.817), -SIMDE_FLOAT16_C( 12.330), -SIMDE_FLOAT16_C( 39.982) }, - { SIMDE_FLOAT16_C( 30.458), SIMDE_FLOAT16_C( 52.150), SIMDE_FLOAT16_C( 31.620), -SIMDE_FLOAT16_C( 38.116), - SIMDE_FLOAT16_C( 3.559), -SIMDE_FLOAT16_C( 8.034), -SIMDE_FLOAT16_C( 23.410), -SIMDE_FLOAT16_C( 11.531), - SIMDE_FLOAT16_C( 77.915), -SIMDE_FLOAT16_C( 76.968), -SIMDE_FLOAT16_C( 16.763), SIMDE_FLOAT16_C( 90.009), - SIMDE_FLOAT16_C( 94.449), SIMDE_FLOAT16_C( 58.053), SIMDE_FLOAT16_C( 40.231), -SIMDE_FLOAT16_C( 25.593), - SIMDE_FLOAT16_C( 59.411), -SIMDE_FLOAT16_C( 28.817), -SIMDE_FLOAT16_C( 22.524), -SIMDE_FLOAT16_C( 87.074), - -SIMDE_FLOAT16_C( 12.330), SIMDE_FLOAT16_C( 61.018), SIMDE_FLOAT16_C( 76.655), -SIMDE_FLOAT16_C( 39.982) } }, - { { SIMDE_FLOAT16_C( 3.549), -SIMDE_FLOAT16_C( 62.385), -SIMDE_FLOAT16_C( 33.808), SIMDE_FLOAT16_C( 25.597), - -SIMDE_FLOAT16_C( 26.574), SIMDE_FLOAT16_C( 78.316), SIMDE_FLOAT16_C( 6.102), SIMDE_FLOAT16_C( 23.670) }, - { -SIMDE_FLOAT16_C( 9.134), SIMDE_FLOAT16_C( 38.254), SIMDE_FLOAT16_C( 59.581), SIMDE_FLOAT16_C( 25.105), - SIMDE_FLOAT16_C( 24.218), -SIMDE_FLOAT16_C( 76.984), -SIMDE_FLOAT16_C( 55.415), SIMDE_FLOAT16_C( 57.498) }, - { SIMDE_FLOAT16_C( 75.669), SIMDE_FLOAT16_C( 51.566), SIMDE_FLOAT16_C( 76.383), -SIMDE_FLOAT16_C( 88.090), - -SIMDE_FLOAT16_C( 39.212), -SIMDE_FLOAT16_C( 12.840), -SIMDE_FLOAT16_C( 66.692), -SIMDE_FLOAT16_C( 49.509) }, - { SIMDE_FLOAT16_C( 3.549), -SIMDE_FLOAT16_C( 9.134), SIMDE_FLOAT16_C( 75.669), -SIMDE_FLOAT16_C( 62.385), - SIMDE_FLOAT16_C( 38.254), SIMDE_FLOAT16_C( 51.566), -SIMDE_FLOAT16_C( 33.808), SIMDE_FLOAT16_C( 59.581), - SIMDE_FLOAT16_C( 76.383), SIMDE_FLOAT16_C( 25.597), SIMDE_FLOAT16_C( 25.105), -SIMDE_FLOAT16_C( 88.090), - -SIMDE_FLOAT16_C( 26.574), SIMDE_FLOAT16_C( 24.218), -SIMDE_FLOAT16_C( 39.212), SIMDE_FLOAT16_C( 78.316), - -SIMDE_FLOAT16_C( 76.984), -SIMDE_FLOAT16_C( 12.840), SIMDE_FLOAT16_C( 6.102), -SIMDE_FLOAT16_C( 55.415), - -SIMDE_FLOAT16_C( 66.692), SIMDE_FLOAT16_C( 23.670), SIMDE_FLOAT16_C( 57.498), -SIMDE_FLOAT16_C( 49.509) } }, - { { SIMDE_FLOAT16_C( 77.925), SIMDE_FLOAT16_C( 25.899), SIMDE_FLOAT16_C( 36.333), SIMDE_FLOAT16_C( 28.714), - -SIMDE_FLOAT16_C( 36.012), -SIMDE_FLOAT16_C( 29.170), -SIMDE_FLOAT16_C( 11.929), SIMDE_FLOAT16_C( 80.628) }, - { -SIMDE_FLOAT16_C( 83.488), SIMDE_FLOAT16_C( 9.307), SIMDE_FLOAT16_C( 58.801), SIMDE_FLOAT16_C( 94.273), - -SIMDE_FLOAT16_C( 86.784), SIMDE_FLOAT16_C( 18.524), SIMDE_FLOAT16_C( 82.621), -SIMDE_FLOAT16_C( 81.155) }, - { SIMDE_FLOAT16_C( 4.254), SIMDE_FLOAT16_C( 15.849), SIMDE_FLOAT16_C( 96.241), -SIMDE_FLOAT16_C( 5.090), - SIMDE_FLOAT16_C( 47.936), -SIMDE_FLOAT16_C( 88.844), SIMDE_FLOAT16_C( 93.898), -SIMDE_FLOAT16_C( 39.333) }, - { SIMDE_FLOAT16_C( 77.925), -SIMDE_FLOAT16_C( 83.488), SIMDE_FLOAT16_C( 4.254), SIMDE_FLOAT16_C( 25.899), - SIMDE_FLOAT16_C( 9.307), SIMDE_FLOAT16_C( 15.849), SIMDE_FLOAT16_C( 36.333), SIMDE_FLOAT16_C( 58.801), - SIMDE_FLOAT16_C( 96.241), SIMDE_FLOAT16_C( 28.714), SIMDE_FLOAT16_C( 94.273), -SIMDE_FLOAT16_C( 5.090), - -SIMDE_FLOAT16_C( 36.012), -SIMDE_FLOAT16_C( 86.784), SIMDE_FLOAT16_C( 47.936), -SIMDE_FLOAT16_C( 29.170), - SIMDE_FLOAT16_C( 18.524), -SIMDE_FLOAT16_C( 88.844), -SIMDE_FLOAT16_C( 11.929), SIMDE_FLOAT16_C( 82.621), - SIMDE_FLOAT16_C( 93.898), SIMDE_FLOAT16_C( 80.628), -SIMDE_FLOAT16_C( 81.155), -SIMDE_FLOAT16_C( 39.333) } }, - { { -SIMDE_FLOAT16_C( 60.634), SIMDE_FLOAT16_C( 75.923), -SIMDE_FLOAT16_C( 88.231), -SIMDE_FLOAT16_C( 87.014), - SIMDE_FLOAT16_C( 31.833), -SIMDE_FLOAT16_C( 64.054), SIMDE_FLOAT16_C( 59.268), -SIMDE_FLOAT16_C( 10.180) }, - { SIMDE_FLOAT16_C( 89.023), -SIMDE_FLOAT16_C( 72.712), SIMDE_FLOAT16_C( 78.505), SIMDE_FLOAT16_C( 11.950), - SIMDE_FLOAT16_C( 37.332), -SIMDE_FLOAT16_C( 36.100), -SIMDE_FLOAT16_C( 81.490), SIMDE_FLOAT16_C( 70.182) }, - { SIMDE_FLOAT16_C( 83.870), -SIMDE_FLOAT16_C( 68.922), -SIMDE_FLOAT16_C( 62.692), -SIMDE_FLOAT16_C( 32.504), - -SIMDE_FLOAT16_C( 81.255), SIMDE_FLOAT16_C( 91.033), -SIMDE_FLOAT16_C( 71.163), -SIMDE_FLOAT16_C( 22.896) }, - { -SIMDE_FLOAT16_C( 60.634), SIMDE_FLOAT16_C( 89.023), SIMDE_FLOAT16_C( 83.870), SIMDE_FLOAT16_C( 75.923), - -SIMDE_FLOAT16_C( 72.712), -SIMDE_FLOAT16_C( 68.922), -SIMDE_FLOAT16_C( 88.231), SIMDE_FLOAT16_C( 78.505), - -SIMDE_FLOAT16_C( 62.692), -SIMDE_FLOAT16_C( 87.014), SIMDE_FLOAT16_C( 11.950), -SIMDE_FLOAT16_C( 32.504), - SIMDE_FLOAT16_C( 31.833), SIMDE_FLOAT16_C( 37.332), -SIMDE_FLOAT16_C( 81.255), -SIMDE_FLOAT16_C( 64.054), - -SIMDE_FLOAT16_C( 36.100), SIMDE_FLOAT16_C( 91.033), SIMDE_FLOAT16_C( 59.268), -SIMDE_FLOAT16_C( 81.490), - -SIMDE_FLOAT16_C( 71.163), -SIMDE_FLOAT16_C( 10.180), SIMDE_FLOAT16_C( 70.182), -SIMDE_FLOAT16_C( 22.896) } }, - { { SIMDE_FLOAT16_C( 30.680), SIMDE_FLOAT16_C( 70.181), SIMDE_FLOAT16_C( 61.927), SIMDE_FLOAT16_C( 89.100), - -SIMDE_FLOAT16_C( 41.719), SIMDE_FLOAT16_C( 79.129), SIMDE_FLOAT16_C( 27.325), -SIMDE_FLOAT16_C( 19.893) }, - { -SIMDE_FLOAT16_C( 95.074), SIMDE_FLOAT16_C( 39.687), -SIMDE_FLOAT16_C( 65.504), SIMDE_FLOAT16_C( 87.309), - -SIMDE_FLOAT16_C( 63.357), SIMDE_FLOAT16_C( 37.794), SIMDE_FLOAT16_C( 30.688), SIMDE_FLOAT16_C( 3.602) }, - { -SIMDE_FLOAT16_C( 90.304), -SIMDE_FLOAT16_C( 57.865), SIMDE_FLOAT16_C( 1.237), SIMDE_FLOAT16_C( 95.036), - -SIMDE_FLOAT16_C( 46.211), SIMDE_FLOAT16_C( 17.337), SIMDE_FLOAT16_C( 24.755), SIMDE_FLOAT16_C( 20.183) }, - { SIMDE_FLOAT16_C( 30.680), -SIMDE_FLOAT16_C( 95.074), -SIMDE_FLOAT16_C( 90.304), SIMDE_FLOAT16_C( 70.181), - SIMDE_FLOAT16_C( 39.687), -SIMDE_FLOAT16_C( 57.865), SIMDE_FLOAT16_C( 61.927), -SIMDE_FLOAT16_C( 65.504), - SIMDE_FLOAT16_C( 1.237), SIMDE_FLOAT16_C( 89.100), SIMDE_FLOAT16_C( 87.309), SIMDE_FLOAT16_C( 95.036), - -SIMDE_FLOAT16_C( 41.719), -SIMDE_FLOAT16_C( 63.357), -SIMDE_FLOAT16_C( 46.211), SIMDE_FLOAT16_C( 79.129), - SIMDE_FLOAT16_C( 37.794), SIMDE_FLOAT16_C( 17.337), SIMDE_FLOAT16_C( 27.325), SIMDE_FLOAT16_C( 30.688), - SIMDE_FLOAT16_C( 24.755), -SIMDE_FLOAT16_C( 19.893), SIMDE_FLOAT16_C( 3.602), SIMDE_FLOAT16_C( 20.183) } }, + { { SIMDE_FLOAT16_VALUE( 58.181), SIMDE_FLOAT16_VALUE( - 74.070), SIMDE_FLOAT16_VALUE( 2.770), SIMDE_FLOAT16_VALUE( 89.824), + SIMDE_FLOAT16_VALUE( - 73.116), SIMDE_FLOAT16_VALUE( 77.533), SIMDE_FLOAT16_VALUE( - 71.575), SIMDE_FLOAT16_VALUE( 68.580) }, + { SIMDE_FLOAT16_VALUE( 27.343), SIMDE_FLOAT16_VALUE( 89.326), SIMDE_FLOAT16_VALUE( - 80.249), SIMDE_FLOAT16_VALUE( - 44.763), + SIMDE_FLOAT16_VALUE( 75.289), SIMDE_FLOAT16_VALUE( - 8.705), SIMDE_FLOAT16_VALUE( 79.289), SIMDE_FLOAT16_VALUE( - 12.997) }, + { SIMDE_FLOAT16_VALUE( 88.201), SIMDE_FLOAT16_VALUE( - 99.297), SIMDE_FLOAT16_VALUE( 94.888), SIMDE_FLOAT16_VALUE( - 94.830), + SIMDE_FLOAT16_VALUE( - 82.408), SIMDE_FLOAT16_VALUE( - 38.270), SIMDE_FLOAT16_VALUE( 33.263), SIMDE_FLOAT16_VALUE( 12.688) }, + { SIMDE_FLOAT16_VALUE( 58.181), SIMDE_FLOAT16_VALUE( 27.343), SIMDE_FLOAT16_VALUE( 88.201), SIMDE_FLOAT16_VALUE( - 74.070), + SIMDE_FLOAT16_VALUE( 89.326), SIMDE_FLOAT16_VALUE( - 99.297), SIMDE_FLOAT16_VALUE( 2.770), SIMDE_FLOAT16_VALUE( - 80.249), + SIMDE_FLOAT16_VALUE( 94.888), SIMDE_FLOAT16_VALUE( 89.824), SIMDE_FLOAT16_VALUE( - 44.763), SIMDE_FLOAT16_VALUE( - 94.830), + SIMDE_FLOAT16_VALUE( - 73.116), SIMDE_FLOAT16_VALUE( 75.289), SIMDE_FLOAT16_VALUE( - 82.408), SIMDE_FLOAT16_VALUE( 77.533), + SIMDE_FLOAT16_VALUE( - 8.705), SIMDE_FLOAT16_VALUE( - 38.270), SIMDE_FLOAT16_VALUE( - 71.575), SIMDE_FLOAT16_VALUE( 79.289), + SIMDE_FLOAT16_VALUE( 33.263), SIMDE_FLOAT16_VALUE( 68.580), SIMDE_FLOAT16_VALUE( - 12.997), SIMDE_FLOAT16_VALUE( 12.688) } }, + { { SIMDE_FLOAT16_VALUE( - 68.228), SIMDE_FLOAT16_VALUE( - 30.795), SIMDE_FLOAT16_VALUE( - 93.060), SIMDE_FLOAT16_VALUE( 88.656), + SIMDE_FLOAT16_VALUE( 71.174), SIMDE_FLOAT16_VALUE( - 83.014), SIMDE_FLOAT16_VALUE( 34.681), SIMDE_FLOAT16_VALUE( - 81.096) }, + { SIMDE_FLOAT16_VALUE( 80.371), SIMDE_FLOAT16_VALUE( 94.314), SIMDE_FLOAT16_VALUE( - 28.329), SIMDE_FLOAT16_VALUE( - 76.339), + SIMDE_FLOAT16_VALUE( 13.986), SIMDE_FLOAT16_VALUE( 15.222), SIMDE_FLOAT16_VALUE( 76.136), SIMDE_FLOAT16_VALUE( - 47.982) }, + { SIMDE_FLOAT16_VALUE( - 71.178), SIMDE_FLOAT16_VALUE( - 44.770), SIMDE_FLOAT16_VALUE( - 67.133), SIMDE_FLOAT16_VALUE( 84.421), + SIMDE_FLOAT16_VALUE( - 74.326), SIMDE_FLOAT16_VALUE( - 0.009), SIMDE_FLOAT16_VALUE( - 15.213), SIMDE_FLOAT16_VALUE( 78.007) }, + { SIMDE_FLOAT16_VALUE( - 68.228), SIMDE_FLOAT16_VALUE( 80.371), SIMDE_FLOAT16_VALUE( - 71.178), SIMDE_FLOAT16_VALUE( - 30.795), + SIMDE_FLOAT16_VALUE( 94.314), SIMDE_FLOAT16_VALUE( - 44.770), SIMDE_FLOAT16_VALUE( - 93.060), SIMDE_FLOAT16_VALUE( - 28.329), + SIMDE_FLOAT16_VALUE( - 67.133), SIMDE_FLOAT16_VALUE( 88.656), SIMDE_FLOAT16_VALUE( - 76.339), SIMDE_FLOAT16_VALUE( 84.421), + SIMDE_FLOAT16_VALUE( 71.174), SIMDE_FLOAT16_VALUE( 13.986), SIMDE_FLOAT16_VALUE( - 74.326), SIMDE_FLOAT16_VALUE( - 83.014), + SIMDE_FLOAT16_VALUE( 15.222), SIMDE_FLOAT16_VALUE( - 0.009), SIMDE_FLOAT16_VALUE( 34.681), SIMDE_FLOAT16_VALUE( 76.136), + SIMDE_FLOAT16_VALUE( - 15.213), SIMDE_FLOAT16_VALUE( - 81.096), SIMDE_FLOAT16_VALUE( - 47.982), SIMDE_FLOAT16_VALUE( 78.007) } }, + { { SIMDE_FLOAT16_VALUE( - 99.134), SIMDE_FLOAT16_VALUE( - 13.860), SIMDE_FLOAT16_VALUE( - 92.713), SIMDE_FLOAT16_VALUE( - 86.987), + SIMDE_FLOAT16_VALUE( - 46.071), SIMDE_FLOAT16_VALUE( - 46.428), SIMDE_FLOAT16_VALUE( - 55.358), SIMDE_FLOAT16_VALUE( 14.468) }, + { SIMDE_FLOAT16_VALUE( - 16.248), SIMDE_FLOAT16_VALUE( - 50.317), SIMDE_FLOAT16_VALUE( - 57.890), SIMDE_FLOAT16_VALUE( 13.081), + SIMDE_FLOAT16_VALUE( 58.363), SIMDE_FLOAT16_VALUE( 4.390), SIMDE_FLOAT16_VALUE( 3.684), SIMDE_FLOAT16_VALUE( - 18.959) }, + { SIMDE_FLOAT16_VALUE( 85.928), SIMDE_FLOAT16_VALUE( 31.159), SIMDE_FLOAT16_VALUE( 77.301), SIMDE_FLOAT16_VALUE( 10.011), + SIMDE_FLOAT16_VALUE( - 90.228), SIMDE_FLOAT16_VALUE( - 85.132), SIMDE_FLOAT16_VALUE( 25.086), SIMDE_FLOAT16_VALUE( - 86.977) }, + { SIMDE_FLOAT16_VALUE( - 99.134), SIMDE_FLOAT16_VALUE( - 16.248), SIMDE_FLOAT16_VALUE( 85.928), SIMDE_FLOAT16_VALUE( - 13.860), + SIMDE_FLOAT16_VALUE( - 50.317), SIMDE_FLOAT16_VALUE( 31.159), SIMDE_FLOAT16_VALUE( - 92.713), SIMDE_FLOAT16_VALUE( - 57.890), + SIMDE_FLOAT16_VALUE( 77.301), SIMDE_FLOAT16_VALUE( - 86.987), SIMDE_FLOAT16_VALUE( 13.081), SIMDE_FLOAT16_VALUE( 10.011), + SIMDE_FLOAT16_VALUE( - 46.071), SIMDE_FLOAT16_VALUE( 58.363), SIMDE_FLOAT16_VALUE( - 90.228), SIMDE_FLOAT16_VALUE( - 46.428), + SIMDE_FLOAT16_VALUE( 4.390), SIMDE_FLOAT16_VALUE( - 85.132), SIMDE_FLOAT16_VALUE( - 55.358), SIMDE_FLOAT16_VALUE( 3.684), + SIMDE_FLOAT16_VALUE( 25.086), SIMDE_FLOAT16_VALUE( 14.468), SIMDE_FLOAT16_VALUE( - 18.959), SIMDE_FLOAT16_VALUE( - 86.977) } }, + { { SIMDE_FLOAT16_VALUE( 30.458), SIMDE_FLOAT16_VALUE( - 38.116), SIMDE_FLOAT16_VALUE( - 23.410), SIMDE_FLOAT16_VALUE( - 76.968), + SIMDE_FLOAT16_VALUE( 94.449), SIMDE_FLOAT16_VALUE( - 25.593), SIMDE_FLOAT16_VALUE( - 22.524), SIMDE_FLOAT16_VALUE( 61.018) }, + { SIMDE_FLOAT16_VALUE( 52.150), SIMDE_FLOAT16_VALUE( 3.559), SIMDE_FLOAT16_VALUE( - 11.531), SIMDE_FLOAT16_VALUE( - 16.763), + SIMDE_FLOAT16_VALUE( 58.053), SIMDE_FLOAT16_VALUE( 59.411), SIMDE_FLOAT16_VALUE( - 87.074), SIMDE_FLOAT16_VALUE( 76.655) }, + { SIMDE_FLOAT16_VALUE( 31.620), SIMDE_FLOAT16_VALUE( - 8.034), SIMDE_FLOAT16_VALUE( 77.915), SIMDE_FLOAT16_VALUE( 90.009), + SIMDE_FLOAT16_VALUE( 40.231), SIMDE_FLOAT16_VALUE( - 28.817), SIMDE_FLOAT16_VALUE( - 12.330), SIMDE_FLOAT16_VALUE( - 39.982) }, + { SIMDE_FLOAT16_VALUE( 30.458), SIMDE_FLOAT16_VALUE( 52.150), SIMDE_FLOAT16_VALUE( 31.620), SIMDE_FLOAT16_VALUE( - 38.116), + SIMDE_FLOAT16_VALUE( 3.559), SIMDE_FLOAT16_VALUE( - 8.034), SIMDE_FLOAT16_VALUE( - 23.410), SIMDE_FLOAT16_VALUE( - 11.531), + SIMDE_FLOAT16_VALUE( 77.915), SIMDE_FLOAT16_VALUE( - 76.968), SIMDE_FLOAT16_VALUE( - 16.763), SIMDE_FLOAT16_VALUE( 90.009), + SIMDE_FLOAT16_VALUE( 94.449), SIMDE_FLOAT16_VALUE( 58.053), SIMDE_FLOAT16_VALUE( 40.231), SIMDE_FLOAT16_VALUE( - 25.593), + SIMDE_FLOAT16_VALUE( 59.411), SIMDE_FLOAT16_VALUE( - 28.817), SIMDE_FLOAT16_VALUE( - 22.524), SIMDE_FLOAT16_VALUE( - 87.074), + SIMDE_FLOAT16_VALUE( - 12.330), SIMDE_FLOAT16_VALUE( 61.018), SIMDE_FLOAT16_VALUE( 76.655), SIMDE_FLOAT16_VALUE( - 39.982) } }, + { { SIMDE_FLOAT16_VALUE( 3.549), SIMDE_FLOAT16_VALUE( - 62.385), SIMDE_FLOAT16_VALUE( - 33.808), SIMDE_FLOAT16_VALUE( 25.597), + SIMDE_FLOAT16_VALUE( - 26.574), SIMDE_FLOAT16_VALUE( 78.316), SIMDE_FLOAT16_VALUE( 6.102), SIMDE_FLOAT16_VALUE( 23.670) }, + { SIMDE_FLOAT16_VALUE( - 9.134), SIMDE_FLOAT16_VALUE( 38.254), SIMDE_FLOAT16_VALUE( 59.581), SIMDE_FLOAT16_VALUE( 25.105), + SIMDE_FLOAT16_VALUE( 24.218), SIMDE_FLOAT16_VALUE( - 76.984), SIMDE_FLOAT16_VALUE( - 55.415), SIMDE_FLOAT16_VALUE( 57.498) }, + { SIMDE_FLOAT16_VALUE( 75.669), SIMDE_FLOAT16_VALUE( 51.566), SIMDE_FLOAT16_VALUE( 76.383), SIMDE_FLOAT16_VALUE( - 88.090), + SIMDE_FLOAT16_VALUE( - 39.212), SIMDE_FLOAT16_VALUE( - 12.840), SIMDE_FLOAT16_VALUE( - 66.692), SIMDE_FLOAT16_VALUE( - 49.509) }, + { SIMDE_FLOAT16_VALUE( 3.549), SIMDE_FLOAT16_VALUE( - 9.134), SIMDE_FLOAT16_VALUE( 75.669), SIMDE_FLOAT16_VALUE( - 62.385), + SIMDE_FLOAT16_VALUE( 38.254), SIMDE_FLOAT16_VALUE( 51.566), SIMDE_FLOAT16_VALUE( - 33.808), SIMDE_FLOAT16_VALUE( 59.581), + SIMDE_FLOAT16_VALUE( 76.383), SIMDE_FLOAT16_VALUE( 25.597), SIMDE_FLOAT16_VALUE( 25.105), SIMDE_FLOAT16_VALUE( - 88.090), + SIMDE_FLOAT16_VALUE( - 26.574), SIMDE_FLOAT16_VALUE( 24.218), SIMDE_FLOAT16_VALUE( - 39.212), SIMDE_FLOAT16_VALUE( 78.316), + SIMDE_FLOAT16_VALUE( - 76.984), SIMDE_FLOAT16_VALUE( - 12.840), SIMDE_FLOAT16_VALUE( 6.102), SIMDE_FLOAT16_VALUE( - 55.415), + SIMDE_FLOAT16_VALUE( - 66.692), SIMDE_FLOAT16_VALUE( 23.670), SIMDE_FLOAT16_VALUE( 57.498), SIMDE_FLOAT16_VALUE( - 49.509) } }, + { { SIMDE_FLOAT16_VALUE( 77.925), SIMDE_FLOAT16_VALUE( 25.899), SIMDE_FLOAT16_VALUE( 36.333), SIMDE_FLOAT16_VALUE( 28.714), + SIMDE_FLOAT16_VALUE( - 36.012), SIMDE_FLOAT16_VALUE( - 29.170), SIMDE_FLOAT16_VALUE( - 11.929), SIMDE_FLOAT16_VALUE( 80.628) }, + { SIMDE_FLOAT16_VALUE( - 83.488), SIMDE_FLOAT16_VALUE( 9.307), SIMDE_FLOAT16_VALUE( 58.801), SIMDE_FLOAT16_VALUE( 94.273), + SIMDE_FLOAT16_VALUE( - 86.784), SIMDE_FLOAT16_VALUE( 18.524), SIMDE_FLOAT16_VALUE( 82.621), SIMDE_FLOAT16_VALUE( - 81.155) }, + { SIMDE_FLOAT16_VALUE( 4.254), SIMDE_FLOAT16_VALUE( 15.849), SIMDE_FLOAT16_VALUE( 96.241), SIMDE_FLOAT16_VALUE( - 5.090), + SIMDE_FLOAT16_VALUE( 47.936), SIMDE_FLOAT16_VALUE( - 88.844), SIMDE_FLOAT16_VALUE( 93.898), SIMDE_FLOAT16_VALUE( - 39.333) }, + { SIMDE_FLOAT16_VALUE( 77.925), SIMDE_FLOAT16_VALUE( - 83.488), SIMDE_FLOAT16_VALUE( 4.254), SIMDE_FLOAT16_VALUE( 25.899), + SIMDE_FLOAT16_VALUE( 9.307), SIMDE_FLOAT16_VALUE( 15.849), SIMDE_FLOAT16_VALUE( 36.333), SIMDE_FLOAT16_VALUE( 58.801), + SIMDE_FLOAT16_VALUE( 96.241), SIMDE_FLOAT16_VALUE( 28.714), SIMDE_FLOAT16_VALUE( 94.273), SIMDE_FLOAT16_VALUE( - 5.090), + SIMDE_FLOAT16_VALUE( - 36.012), SIMDE_FLOAT16_VALUE( - 86.784), SIMDE_FLOAT16_VALUE( 47.936), SIMDE_FLOAT16_VALUE( - 29.170), + SIMDE_FLOAT16_VALUE( 18.524), SIMDE_FLOAT16_VALUE( - 88.844), SIMDE_FLOAT16_VALUE( - 11.929), SIMDE_FLOAT16_VALUE( 82.621), + SIMDE_FLOAT16_VALUE( 93.898), SIMDE_FLOAT16_VALUE( 80.628), SIMDE_FLOAT16_VALUE( - 81.155), SIMDE_FLOAT16_VALUE( - 39.333) } }, + { { SIMDE_FLOAT16_VALUE( - 60.634), SIMDE_FLOAT16_VALUE( 75.923), SIMDE_FLOAT16_VALUE( - 88.231), SIMDE_FLOAT16_VALUE( - 87.014), + SIMDE_FLOAT16_VALUE( 31.833), SIMDE_FLOAT16_VALUE( - 64.054), SIMDE_FLOAT16_VALUE( 59.268), SIMDE_FLOAT16_VALUE( - 10.180) }, + { SIMDE_FLOAT16_VALUE( 89.023), SIMDE_FLOAT16_VALUE( - 72.712), SIMDE_FLOAT16_VALUE( 78.505), SIMDE_FLOAT16_VALUE( 11.950), + SIMDE_FLOAT16_VALUE( 37.332), SIMDE_FLOAT16_VALUE( - 36.100), SIMDE_FLOAT16_VALUE( - 81.490), SIMDE_FLOAT16_VALUE( 70.182) }, + { SIMDE_FLOAT16_VALUE( 83.870), SIMDE_FLOAT16_VALUE( - 68.922), SIMDE_FLOAT16_VALUE( - 62.692), SIMDE_FLOAT16_VALUE( - 32.504), + SIMDE_FLOAT16_VALUE( - 81.255), SIMDE_FLOAT16_VALUE( 91.033), SIMDE_FLOAT16_VALUE( - 71.163), SIMDE_FLOAT16_VALUE( - 22.896) }, + { SIMDE_FLOAT16_VALUE( - 60.634), SIMDE_FLOAT16_VALUE( 89.023), SIMDE_FLOAT16_VALUE( 83.870), SIMDE_FLOAT16_VALUE( 75.923), + SIMDE_FLOAT16_VALUE( - 72.712), SIMDE_FLOAT16_VALUE( - 68.922), SIMDE_FLOAT16_VALUE( - 88.231), SIMDE_FLOAT16_VALUE( 78.505), + SIMDE_FLOAT16_VALUE( - 62.692), SIMDE_FLOAT16_VALUE( - 87.014), SIMDE_FLOAT16_VALUE( 11.950), SIMDE_FLOAT16_VALUE( - 32.504), + SIMDE_FLOAT16_VALUE( 31.833), SIMDE_FLOAT16_VALUE( 37.332), SIMDE_FLOAT16_VALUE( - 81.255), SIMDE_FLOAT16_VALUE( - 64.054), + SIMDE_FLOAT16_VALUE( - 36.100), SIMDE_FLOAT16_VALUE( 91.033), SIMDE_FLOAT16_VALUE( 59.268), SIMDE_FLOAT16_VALUE( - 81.490), + SIMDE_FLOAT16_VALUE( - 71.163), SIMDE_FLOAT16_VALUE( - 10.180), SIMDE_FLOAT16_VALUE( 70.182), SIMDE_FLOAT16_VALUE( - 22.896) } }, + { { SIMDE_FLOAT16_VALUE( 30.680), SIMDE_FLOAT16_VALUE( 70.181), SIMDE_FLOAT16_VALUE( 61.927), SIMDE_FLOAT16_VALUE( 89.100), + SIMDE_FLOAT16_VALUE( - 41.719), SIMDE_FLOAT16_VALUE( 79.129), SIMDE_FLOAT16_VALUE( 27.325), SIMDE_FLOAT16_VALUE( - 19.893) }, + { SIMDE_FLOAT16_VALUE( - 95.074), SIMDE_FLOAT16_VALUE( 39.687), SIMDE_FLOAT16_VALUE( - 65.504), SIMDE_FLOAT16_VALUE( 87.309), + SIMDE_FLOAT16_VALUE( - 63.357), SIMDE_FLOAT16_VALUE( 37.794), SIMDE_FLOAT16_VALUE( 30.688), SIMDE_FLOAT16_VALUE( 3.602) }, + { SIMDE_FLOAT16_VALUE( - 90.304), SIMDE_FLOAT16_VALUE( - 57.865), SIMDE_FLOAT16_VALUE( 1.237), SIMDE_FLOAT16_VALUE( 95.036), + SIMDE_FLOAT16_VALUE( - 46.211), SIMDE_FLOAT16_VALUE( 17.337), SIMDE_FLOAT16_VALUE( 24.755), SIMDE_FLOAT16_VALUE( 20.183) }, + { SIMDE_FLOAT16_VALUE( 30.680), SIMDE_FLOAT16_VALUE( - 95.074), SIMDE_FLOAT16_VALUE( - 90.304), SIMDE_FLOAT16_VALUE( 70.181), + SIMDE_FLOAT16_VALUE( 39.687), SIMDE_FLOAT16_VALUE( - 57.865), SIMDE_FLOAT16_VALUE( 61.927), SIMDE_FLOAT16_VALUE( - 65.504), + SIMDE_FLOAT16_VALUE( 1.237), SIMDE_FLOAT16_VALUE( 89.100), SIMDE_FLOAT16_VALUE( 87.309), SIMDE_FLOAT16_VALUE( 95.036), + SIMDE_FLOAT16_VALUE( - 41.719), SIMDE_FLOAT16_VALUE( - 63.357), SIMDE_FLOAT16_VALUE( - 46.211), SIMDE_FLOAT16_VALUE( 79.129), + SIMDE_FLOAT16_VALUE( 37.794), SIMDE_FLOAT16_VALUE( 17.337), SIMDE_FLOAT16_VALUE( 27.325), SIMDE_FLOAT16_VALUE( 30.688), + SIMDE_FLOAT16_VALUE( 24.755), SIMDE_FLOAT16_VALUE( - 19.893), SIMDE_FLOAT16_VALUE( 3.602), SIMDE_FLOAT16_VALUE( 20.183) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -1997,6 +2015,22 @@ test_simde_vst3q_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x8_t r0 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x8_t r1 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x8_t r2 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x24_t a = simde_vst3q_f16(r0, r1, r2); + + simde_test_arm_neon_write_f16x8(2, r0, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r1, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r2, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x24(2, a, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st3_lane.c b/test/arm/neon/st3_lane.c index 5d0f08faa..d870e17a0 100644 --- a/test/arm/neon/st3_lane.c +++ b/test/arm/neon/st3_lane.c @@ -485,50 +485,50 @@ test_simde_vst3_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst3_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16_t a[3]; simde_float16_t val[3][4]; int lane; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 94.290), -SIMDE_FLOAT16_C( 50.509), SIMDE_FLOAT16_C( 23.704) }, - { { -SIMDE_FLOAT16_C( 0.571), -SIMDE_FLOAT16_C( 94.290), SIMDE_FLOAT16_C( 93.093), SIMDE_FLOAT16_C( 89.891) }, - { -SIMDE_FLOAT16_C( 59.956), -SIMDE_FLOAT16_C( 50.509), SIMDE_FLOAT16_C( 35.194), SIMDE_FLOAT16_C( 22.787) }, - { -SIMDE_FLOAT16_C( 24.560), SIMDE_FLOAT16_C( 23.704), -SIMDE_FLOAT16_C( 11.110), -SIMDE_FLOAT16_C( 19.691) } }, + { { SIMDE_FLOAT16_VALUE( - 94.290), SIMDE_FLOAT16_VALUE( - 50.509), SIMDE_FLOAT16_VALUE( 23.704) }, + { { SIMDE_FLOAT16_VALUE( - 0.571), SIMDE_FLOAT16_VALUE( - 94.290), SIMDE_FLOAT16_VALUE( 93.093), SIMDE_FLOAT16_VALUE( 89.891) }, + { SIMDE_FLOAT16_VALUE( - 59.956), SIMDE_FLOAT16_VALUE( - 50.509), SIMDE_FLOAT16_VALUE( 35.194), SIMDE_FLOAT16_VALUE( 22.787) }, + { SIMDE_FLOAT16_VALUE( - 24.560), SIMDE_FLOAT16_VALUE( 23.704), SIMDE_FLOAT16_VALUE( - 11.110), SIMDE_FLOAT16_VALUE( - 19.691) } }, INT8_C( 1) }, - { { -SIMDE_FLOAT16_C( 6.814), -SIMDE_FLOAT16_C( 31.127), -SIMDE_FLOAT16_C( 34.824) }, - { { -SIMDE_FLOAT16_C( 17.965), -SIMDE_FLOAT16_C( 6.814), -SIMDE_FLOAT16_C( 65.421), SIMDE_FLOAT16_C( 26.500) }, - { SIMDE_FLOAT16_C( 84.515), -SIMDE_FLOAT16_C( 31.127), SIMDE_FLOAT16_C( 85.025), -SIMDE_FLOAT16_C( 51.272) }, - { -SIMDE_FLOAT16_C( 38.529), -SIMDE_FLOAT16_C( 34.824), -SIMDE_FLOAT16_C( 81.647), SIMDE_FLOAT16_C( 47.194) } }, + { { SIMDE_FLOAT16_VALUE( - 6.814), SIMDE_FLOAT16_VALUE( - 31.127), SIMDE_FLOAT16_VALUE( - 34.824) }, + { { SIMDE_FLOAT16_VALUE( - 17.965), SIMDE_FLOAT16_VALUE( - 6.814), SIMDE_FLOAT16_VALUE( - 65.421), SIMDE_FLOAT16_VALUE( 26.500) }, + { SIMDE_FLOAT16_VALUE( 84.515), SIMDE_FLOAT16_VALUE( - 31.127), SIMDE_FLOAT16_VALUE( 85.025), SIMDE_FLOAT16_VALUE( - 51.272) }, + { SIMDE_FLOAT16_VALUE( - 38.529), SIMDE_FLOAT16_VALUE( - 34.824), SIMDE_FLOAT16_VALUE( - 81.647), SIMDE_FLOAT16_VALUE( 47.194) } }, INT8_C( 1) }, - { { -SIMDE_FLOAT16_C( 73.789), -SIMDE_FLOAT16_C( 3.383), -SIMDE_FLOAT16_C( 13.801) }, - { { -SIMDE_FLOAT16_C( 94.005), -SIMDE_FLOAT16_C( 35.738), -SIMDE_FLOAT16_C( 73.789), -SIMDE_FLOAT16_C( 45.230) }, - { SIMDE_FLOAT16_C( 12.330), SIMDE_FLOAT16_C( 74.051), -SIMDE_FLOAT16_C( 3.383), -SIMDE_FLOAT16_C( 10.054) }, - { -SIMDE_FLOAT16_C( 64.841), SIMDE_FLOAT16_C( 8.563), -SIMDE_FLOAT16_C( 13.801), SIMDE_FLOAT16_C( 10.504) } }, + { { SIMDE_FLOAT16_VALUE( - 73.789), SIMDE_FLOAT16_VALUE( - 3.383), SIMDE_FLOAT16_VALUE( - 13.801) }, + { { SIMDE_FLOAT16_VALUE( - 94.005), SIMDE_FLOAT16_VALUE( - 35.738), SIMDE_FLOAT16_VALUE( - 73.789), SIMDE_FLOAT16_VALUE( - 45.230) }, + { SIMDE_FLOAT16_VALUE( 12.330), SIMDE_FLOAT16_VALUE( 74.051), SIMDE_FLOAT16_VALUE( - 3.383), SIMDE_FLOAT16_VALUE( - 10.054) }, + { SIMDE_FLOAT16_VALUE( - 64.841), SIMDE_FLOAT16_VALUE( 8.563), SIMDE_FLOAT16_VALUE( - 13.801), SIMDE_FLOAT16_VALUE( 10.504) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 0.435), SIMDE_FLOAT16_C( 62.466), SIMDE_FLOAT16_C( 94.721) }, - { { SIMDE_FLOAT16_C( 0.435), -SIMDE_FLOAT16_C( 13.638), SIMDE_FLOAT16_C( 0.530), -SIMDE_FLOAT16_C( 61.496) }, - { SIMDE_FLOAT16_C( 62.466), SIMDE_FLOAT16_C( 24.828), SIMDE_FLOAT16_C( 9.968), -SIMDE_FLOAT16_C( 50.721) }, - { SIMDE_FLOAT16_C( 94.721), SIMDE_FLOAT16_C( 44.136), SIMDE_FLOAT16_C( 78.905), -SIMDE_FLOAT16_C( 55.458) } }, + { { SIMDE_FLOAT16_VALUE( 0.435), SIMDE_FLOAT16_VALUE( 62.466), SIMDE_FLOAT16_VALUE( 94.721) }, + { { SIMDE_FLOAT16_VALUE( 0.435), SIMDE_FLOAT16_VALUE( - 13.638), SIMDE_FLOAT16_VALUE( 0.530), SIMDE_FLOAT16_VALUE( - 61.496) }, + { SIMDE_FLOAT16_VALUE( 62.466), SIMDE_FLOAT16_VALUE( 24.828), SIMDE_FLOAT16_VALUE( 9.968), SIMDE_FLOAT16_VALUE( - 50.721) }, + { SIMDE_FLOAT16_VALUE( 94.721), SIMDE_FLOAT16_VALUE( 44.136), SIMDE_FLOAT16_VALUE( 78.905), SIMDE_FLOAT16_VALUE( - 55.458) } }, INT8_C( 0) }, - { { -SIMDE_FLOAT16_C( 22.144), SIMDE_FLOAT16_C( 90.977), -SIMDE_FLOAT16_C( 5.890) }, - { { SIMDE_FLOAT16_C( 26.172), -SIMDE_FLOAT16_C( 89.305), -SIMDE_FLOAT16_C( 59.818), -SIMDE_FLOAT16_C( 22.144) }, - { -SIMDE_FLOAT16_C( 44.719), -SIMDE_FLOAT16_C( 60.282), SIMDE_FLOAT16_C( 94.935), SIMDE_FLOAT16_C( 90.977) }, - { SIMDE_FLOAT16_C( 80.867), -SIMDE_FLOAT16_C( 45.339), -SIMDE_FLOAT16_C( 19.747), -SIMDE_FLOAT16_C( 5.890) } }, + { { SIMDE_FLOAT16_VALUE( - 22.144), SIMDE_FLOAT16_VALUE( 90.977), SIMDE_FLOAT16_VALUE( - 5.890) }, + { { SIMDE_FLOAT16_VALUE( 26.172), SIMDE_FLOAT16_VALUE( - 89.305), SIMDE_FLOAT16_VALUE( - 59.818), SIMDE_FLOAT16_VALUE( - 22.144) }, + { SIMDE_FLOAT16_VALUE( - 44.719), SIMDE_FLOAT16_VALUE( - 60.282), SIMDE_FLOAT16_VALUE( 94.935), SIMDE_FLOAT16_VALUE( 90.977) }, + { SIMDE_FLOAT16_VALUE( 80.867), SIMDE_FLOAT16_VALUE( - 45.339), SIMDE_FLOAT16_VALUE( - 19.747), SIMDE_FLOAT16_VALUE( - 5.890) } }, INT8_C( 3) }, - { { SIMDE_FLOAT16_C( 23.224), SIMDE_FLOAT16_C( 49.585), SIMDE_FLOAT16_C( 78.018) }, - { { -SIMDE_FLOAT16_C( 48.686), SIMDE_FLOAT16_C( 23.224), SIMDE_FLOAT16_C( 40.332), SIMDE_FLOAT16_C( 74.959) }, - { -SIMDE_FLOAT16_C( 65.641), SIMDE_FLOAT16_C( 49.585), SIMDE_FLOAT16_C( 6.886), SIMDE_FLOAT16_C( 98.862) }, - { -SIMDE_FLOAT16_C( 29.125), SIMDE_FLOAT16_C( 78.018), -SIMDE_FLOAT16_C( 4.487), SIMDE_FLOAT16_C( 50.278) } }, + { { SIMDE_FLOAT16_VALUE( 23.224), SIMDE_FLOAT16_VALUE( 49.585), SIMDE_FLOAT16_VALUE( 78.018) }, + { { SIMDE_FLOAT16_VALUE( - 48.686), SIMDE_FLOAT16_VALUE( 23.224), SIMDE_FLOAT16_VALUE( 40.332), SIMDE_FLOAT16_VALUE( 74.959) }, + { SIMDE_FLOAT16_VALUE( - 65.641), SIMDE_FLOAT16_VALUE( 49.585), SIMDE_FLOAT16_VALUE( 6.886), SIMDE_FLOAT16_VALUE( 98.862) }, + { SIMDE_FLOAT16_VALUE( - 29.125), SIMDE_FLOAT16_VALUE( 78.018), SIMDE_FLOAT16_VALUE( - 4.487), SIMDE_FLOAT16_VALUE( 50.278) } }, INT8_C( 1) }, - { { -SIMDE_FLOAT16_C( 90.627), -SIMDE_FLOAT16_C( 1.372), -SIMDE_FLOAT16_C( 87.387) }, - { { -SIMDE_FLOAT16_C( 58.435), SIMDE_FLOAT16_C( 67.021), -SIMDE_FLOAT16_C( 90.627), SIMDE_FLOAT16_C( 69.960) }, - { SIMDE_FLOAT16_C( 62.852), SIMDE_FLOAT16_C( 29.780), -SIMDE_FLOAT16_C( 1.372), SIMDE_FLOAT16_C( 41.058) }, - { SIMDE_FLOAT16_C( 43.350), -SIMDE_FLOAT16_C( 69.931), -SIMDE_FLOAT16_C( 87.387), SIMDE_FLOAT16_C( 98.569) } }, + { { SIMDE_FLOAT16_VALUE( - 90.627), SIMDE_FLOAT16_VALUE( - 1.372), SIMDE_FLOAT16_VALUE( - 87.387) }, + { { SIMDE_FLOAT16_VALUE( - 58.435), SIMDE_FLOAT16_VALUE( 67.021), SIMDE_FLOAT16_VALUE( - 90.627), SIMDE_FLOAT16_VALUE( 69.960) }, + { SIMDE_FLOAT16_VALUE( 62.852), SIMDE_FLOAT16_VALUE( 29.780), SIMDE_FLOAT16_VALUE( - 1.372), SIMDE_FLOAT16_VALUE( 41.058) }, + { SIMDE_FLOAT16_VALUE( 43.350), SIMDE_FLOAT16_VALUE( - 69.931), SIMDE_FLOAT16_VALUE( - 87.387), SIMDE_FLOAT16_VALUE( 98.569) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 33.021), SIMDE_FLOAT16_C( 22.025), SIMDE_FLOAT16_C( 69.528) }, - { { SIMDE_FLOAT16_C( 40.864), SIMDE_FLOAT16_C( 81.943), -SIMDE_FLOAT16_C( 40.609), SIMDE_FLOAT16_C( 33.021) }, - { SIMDE_FLOAT16_C( 93.909), SIMDE_FLOAT16_C( 69.201), SIMDE_FLOAT16_C( 43.541), SIMDE_FLOAT16_C( 22.025) }, - { SIMDE_FLOAT16_C( 45.748), -SIMDE_FLOAT16_C( 89.541), SIMDE_FLOAT16_C( 49.879), SIMDE_FLOAT16_C( 69.528) } }, + { { SIMDE_FLOAT16_VALUE( 33.021), SIMDE_FLOAT16_VALUE( 22.025), SIMDE_FLOAT16_VALUE( 69.528) }, + { { SIMDE_FLOAT16_VALUE( 40.864), SIMDE_FLOAT16_VALUE( 81.943), SIMDE_FLOAT16_VALUE( - 40.609), SIMDE_FLOAT16_VALUE( 33.021) }, + { SIMDE_FLOAT16_VALUE( 93.909), SIMDE_FLOAT16_VALUE( 69.201), SIMDE_FLOAT16_VALUE( 43.541), SIMDE_FLOAT16_VALUE( 22.025) }, + { SIMDE_FLOAT16_VALUE( 45.748), SIMDE_FLOAT16_VALUE( - 89.541), SIMDE_FLOAT16_VALUE( 49.879), SIMDE_FLOAT16_VALUE( 69.528) } }, INT8_C( 3) }, }; @@ -1175,74 +1175,74 @@ test_simde_vst3q_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst3q_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16_t a[3]; simde_float16_t val[3][8]; int lane; } test_vec[] = { - { { SIMDE_FLOAT16_C( 56.833), SIMDE_FLOAT16_C( 73.442), -SIMDE_FLOAT16_C( 22.618) }, - { { SIMDE_FLOAT16_C( 90.228), SIMDE_FLOAT16_C( 1.415), -SIMDE_FLOAT16_C( 54.694), SIMDE_FLOAT16_C( 41.258), - SIMDE_FLOAT16_C( 74.577), SIMDE_FLOAT16_C( 13.483), SIMDE_FLOAT16_C( 56.833), SIMDE_FLOAT16_C( 68.200) }, - { -SIMDE_FLOAT16_C( 65.650), -SIMDE_FLOAT16_C( 68.388), -SIMDE_FLOAT16_C( 13.278), -SIMDE_FLOAT16_C( 65.890), - SIMDE_FLOAT16_C( 16.926), -SIMDE_FLOAT16_C( 26.315), SIMDE_FLOAT16_C( 73.442), SIMDE_FLOAT16_C( 26.641) }, - { -SIMDE_FLOAT16_C( 42.649), SIMDE_FLOAT16_C( 80.336), SIMDE_FLOAT16_C( 27.756), SIMDE_FLOAT16_C( 8.267), - SIMDE_FLOAT16_C( 24.942), SIMDE_FLOAT16_C( 96.066), -SIMDE_FLOAT16_C( 22.618), -SIMDE_FLOAT16_C( 58.346) } }, + { { SIMDE_FLOAT16_VALUE( 56.833), SIMDE_FLOAT16_VALUE( 73.442), SIMDE_FLOAT16_VALUE( - 22.618) }, + { { SIMDE_FLOAT16_VALUE( 90.228), SIMDE_FLOAT16_VALUE( 1.415), SIMDE_FLOAT16_VALUE( - 54.694), SIMDE_FLOAT16_VALUE( 41.258), + SIMDE_FLOAT16_VALUE( 74.577), SIMDE_FLOAT16_VALUE( 13.483), SIMDE_FLOAT16_VALUE( 56.833), SIMDE_FLOAT16_VALUE( 68.200) }, + { SIMDE_FLOAT16_VALUE( - 65.650), SIMDE_FLOAT16_VALUE( - 68.388), SIMDE_FLOAT16_VALUE( - 13.278), SIMDE_FLOAT16_VALUE( - 65.890), + SIMDE_FLOAT16_VALUE( 16.926), SIMDE_FLOAT16_VALUE( - 26.315), SIMDE_FLOAT16_VALUE( 73.442), SIMDE_FLOAT16_VALUE( 26.641) }, + { SIMDE_FLOAT16_VALUE( - 42.649), SIMDE_FLOAT16_VALUE( 80.336), SIMDE_FLOAT16_VALUE( 27.756), SIMDE_FLOAT16_VALUE( 8.267), + SIMDE_FLOAT16_VALUE( 24.942), SIMDE_FLOAT16_VALUE( 96.066), SIMDE_FLOAT16_VALUE( - 22.618), SIMDE_FLOAT16_VALUE( - 58.346) } }, INT8_C( 6) }, - { { -SIMDE_FLOAT16_C( 74.185), -SIMDE_FLOAT16_C( 78.069), -SIMDE_FLOAT16_C( 86.364) }, - { { -SIMDE_FLOAT16_C( 69.189), -SIMDE_FLOAT16_C( 74.185), SIMDE_FLOAT16_C( 5.043), -SIMDE_FLOAT16_C( 18.088), - SIMDE_FLOAT16_C( 14.723), SIMDE_FLOAT16_C( 9.202), SIMDE_FLOAT16_C( 78.389), -SIMDE_FLOAT16_C( 87.305) }, - { -SIMDE_FLOAT16_C( 12.507), -SIMDE_FLOAT16_C( 78.069), -SIMDE_FLOAT16_C( 96.953), -SIMDE_FLOAT16_C( 96.401), - SIMDE_FLOAT16_C( 42.165), SIMDE_FLOAT16_C( 75.353), -SIMDE_FLOAT16_C( 82.128), SIMDE_FLOAT16_C( 17.448) }, - { SIMDE_FLOAT16_C( 57.653), -SIMDE_FLOAT16_C( 86.364), SIMDE_FLOAT16_C( 30.786), -SIMDE_FLOAT16_C( 50.101), - SIMDE_FLOAT16_C( 60.669), -SIMDE_FLOAT16_C( 26.173), SIMDE_FLOAT16_C( 10.148), -SIMDE_FLOAT16_C( 92.619) } }, + { { SIMDE_FLOAT16_VALUE( - 74.185), SIMDE_FLOAT16_VALUE( - 78.069), SIMDE_FLOAT16_VALUE( - 86.364) }, + { { SIMDE_FLOAT16_VALUE( - 69.189), SIMDE_FLOAT16_VALUE( - 74.185), SIMDE_FLOAT16_VALUE( 5.043), SIMDE_FLOAT16_VALUE( - 18.088), + SIMDE_FLOAT16_VALUE( 14.723), SIMDE_FLOAT16_VALUE( 9.202), SIMDE_FLOAT16_VALUE( 78.389), SIMDE_FLOAT16_VALUE( - 87.305) }, + { SIMDE_FLOAT16_VALUE( - 12.507), SIMDE_FLOAT16_VALUE( - 78.069), SIMDE_FLOAT16_VALUE( - 96.953), SIMDE_FLOAT16_VALUE( - 96.401), + SIMDE_FLOAT16_VALUE( 42.165), SIMDE_FLOAT16_VALUE( 75.353), SIMDE_FLOAT16_VALUE( - 82.128), SIMDE_FLOAT16_VALUE( 17.448) }, + { SIMDE_FLOAT16_VALUE( 57.653), SIMDE_FLOAT16_VALUE( - 86.364), SIMDE_FLOAT16_VALUE( 30.786), SIMDE_FLOAT16_VALUE( - 50.101), + SIMDE_FLOAT16_VALUE( 60.669), SIMDE_FLOAT16_VALUE( - 26.173), SIMDE_FLOAT16_VALUE( 10.148), SIMDE_FLOAT16_VALUE( - 92.619) } }, INT8_C( 1) }, - { { -SIMDE_FLOAT16_C( 30.210), -SIMDE_FLOAT16_C( 13.667), -SIMDE_FLOAT16_C( 47.603) }, - { { -SIMDE_FLOAT16_C( 96.908), -SIMDE_FLOAT16_C( 14.691), SIMDE_FLOAT16_C( 67.605), SIMDE_FLOAT16_C( 52.785), - SIMDE_FLOAT16_C( 10.770), SIMDE_FLOAT16_C( 49.923), SIMDE_FLOAT16_C( 79.174), -SIMDE_FLOAT16_C( 30.210) }, - { -SIMDE_FLOAT16_C( 86.230), -SIMDE_FLOAT16_C( 40.180), SIMDE_FLOAT16_C( 81.322), -SIMDE_FLOAT16_C( 4.303), - -SIMDE_FLOAT16_C( 25.810), SIMDE_FLOAT16_C( 19.169), -SIMDE_FLOAT16_C( 7.542), -SIMDE_FLOAT16_C( 13.667) }, - { SIMDE_FLOAT16_C( 48.690), -SIMDE_FLOAT16_C( 84.400), -SIMDE_FLOAT16_C( 42.388), -SIMDE_FLOAT16_C( 71.989), - SIMDE_FLOAT16_C( 81.668), SIMDE_FLOAT16_C( 61.074), SIMDE_FLOAT16_C( 68.365), -SIMDE_FLOAT16_C( 47.603) } }, + { { SIMDE_FLOAT16_VALUE( - 30.210), SIMDE_FLOAT16_VALUE( - 13.667), SIMDE_FLOAT16_VALUE( - 47.603) }, + { { SIMDE_FLOAT16_VALUE( - 96.908), SIMDE_FLOAT16_VALUE( - 14.691), SIMDE_FLOAT16_VALUE( 67.605), SIMDE_FLOAT16_VALUE( 52.785), + SIMDE_FLOAT16_VALUE( 10.770), SIMDE_FLOAT16_VALUE( 49.923), SIMDE_FLOAT16_VALUE( 79.174), SIMDE_FLOAT16_VALUE( - 30.210) }, + { SIMDE_FLOAT16_VALUE( - 86.230), SIMDE_FLOAT16_VALUE( - 40.180), SIMDE_FLOAT16_VALUE( 81.322), SIMDE_FLOAT16_VALUE( - 4.303), + SIMDE_FLOAT16_VALUE( - 25.810), SIMDE_FLOAT16_VALUE( 19.169), SIMDE_FLOAT16_VALUE( - 7.542), SIMDE_FLOAT16_VALUE( - 13.667) }, + { SIMDE_FLOAT16_VALUE( 48.690), SIMDE_FLOAT16_VALUE( - 84.400), SIMDE_FLOAT16_VALUE( - 42.388), SIMDE_FLOAT16_VALUE( - 71.989), + SIMDE_FLOAT16_VALUE( 81.668), SIMDE_FLOAT16_VALUE( 61.074), SIMDE_FLOAT16_VALUE( 68.365), SIMDE_FLOAT16_VALUE( - 47.603) } }, INT8_C( 7) }, - { { -SIMDE_FLOAT16_C( 74.022), SIMDE_FLOAT16_C( 72.818), SIMDE_FLOAT16_C( 75.403) }, - { { SIMDE_FLOAT16_C( 65.684), SIMDE_FLOAT16_C( 92.561), -SIMDE_FLOAT16_C( 76.038), SIMDE_FLOAT16_C( 75.659), - -SIMDE_FLOAT16_C( 74.022), SIMDE_FLOAT16_C( 74.037), -SIMDE_FLOAT16_C( 67.037), SIMDE_FLOAT16_C( 61.026) }, - { SIMDE_FLOAT16_C( 43.862), -SIMDE_FLOAT16_C( 42.260), -SIMDE_FLOAT16_C( 8.530), SIMDE_FLOAT16_C( 15.388), - SIMDE_FLOAT16_C( 72.818), -SIMDE_FLOAT16_C( 3.493), SIMDE_FLOAT16_C( 29.692), SIMDE_FLOAT16_C( 78.968) }, - { -SIMDE_FLOAT16_C( 91.120), SIMDE_FLOAT16_C( 22.041), -SIMDE_FLOAT16_C( 61.013), -SIMDE_FLOAT16_C( 71.187), - SIMDE_FLOAT16_C( 75.403), SIMDE_FLOAT16_C( 95.292), SIMDE_FLOAT16_C( 21.707), -SIMDE_FLOAT16_C( 88.034) } }, + { { SIMDE_FLOAT16_VALUE( - 74.022), SIMDE_FLOAT16_VALUE( 72.818), SIMDE_FLOAT16_VALUE( 75.403) }, + { { SIMDE_FLOAT16_VALUE( 65.684), SIMDE_FLOAT16_VALUE( 92.561), SIMDE_FLOAT16_VALUE( - 76.038), SIMDE_FLOAT16_VALUE( 75.659), + SIMDE_FLOAT16_VALUE( - 74.022), SIMDE_FLOAT16_VALUE( 74.037), SIMDE_FLOAT16_VALUE( - 67.037), SIMDE_FLOAT16_VALUE( 61.026) }, + { SIMDE_FLOAT16_VALUE( 43.862), SIMDE_FLOAT16_VALUE( - 42.260), SIMDE_FLOAT16_VALUE( - 8.530), SIMDE_FLOAT16_VALUE( 15.388), + SIMDE_FLOAT16_VALUE( 72.818), SIMDE_FLOAT16_VALUE( - 3.493), SIMDE_FLOAT16_VALUE( 29.692), SIMDE_FLOAT16_VALUE( 78.968) }, + { SIMDE_FLOAT16_VALUE( - 91.120), SIMDE_FLOAT16_VALUE( 22.041), SIMDE_FLOAT16_VALUE( - 61.013), SIMDE_FLOAT16_VALUE( - 71.187), + SIMDE_FLOAT16_VALUE( 75.403), SIMDE_FLOAT16_VALUE( 95.292), SIMDE_FLOAT16_VALUE( 21.707), SIMDE_FLOAT16_VALUE( - 88.034) } }, INT8_C( 4) }, - { { SIMDE_FLOAT16_C( 66.250), SIMDE_FLOAT16_C( 86.996), -SIMDE_FLOAT16_C( 40.809) }, - { { SIMDE_FLOAT16_C( 56.098), -SIMDE_FLOAT16_C( 69.469), -SIMDE_FLOAT16_C( 38.141), SIMDE_FLOAT16_C( 95.730), - SIMDE_FLOAT16_C( 66.250), SIMDE_FLOAT16_C( 88.246), -SIMDE_FLOAT16_C( 73.861), SIMDE_FLOAT16_C( 88.929) }, - { SIMDE_FLOAT16_C( 91.342), SIMDE_FLOAT16_C( 25.976), SIMDE_FLOAT16_C( 27.770), SIMDE_FLOAT16_C( 57.030), - SIMDE_FLOAT16_C( 86.996), SIMDE_FLOAT16_C( 24.429), SIMDE_FLOAT16_C( 36.571), SIMDE_FLOAT16_C( 25.024) }, - { -SIMDE_FLOAT16_C( 51.937), SIMDE_FLOAT16_C( 0.024), SIMDE_FLOAT16_C( 26.121), SIMDE_FLOAT16_C( 82.133), - -SIMDE_FLOAT16_C( 40.809), -SIMDE_FLOAT16_C( 89.179), -SIMDE_FLOAT16_C( 45.771), -SIMDE_FLOAT16_C( 76.817) } }, + { { SIMDE_FLOAT16_VALUE( 66.250), SIMDE_FLOAT16_VALUE( 86.996), SIMDE_FLOAT16_VALUE( - 40.809) }, + { { SIMDE_FLOAT16_VALUE( 56.098), SIMDE_FLOAT16_VALUE( - 69.469), SIMDE_FLOAT16_VALUE( - 38.141), SIMDE_FLOAT16_VALUE( 95.730), + SIMDE_FLOAT16_VALUE( 66.250), SIMDE_FLOAT16_VALUE( 88.246), SIMDE_FLOAT16_VALUE( - 73.861), SIMDE_FLOAT16_VALUE( 88.929) }, + { SIMDE_FLOAT16_VALUE( 91.342), SIMDE_FLOAT16_VALUE( 25.976), SIMDE_FLOAT16_VALUE( 27.770), SIMDE_FLOAT16_VALUE( 57.030), + SIMDE_FLOAT16_VALUE( 86.996), SIMDE_FLOAT16_VALUE( 24.429), SIMDE_FLOAT16_VALUE( 36.571), SIMDE_FLOAT16_VALUE( 25.024) }, + { SIMDE_FLOAT16_VALUE( - 51.937), SIMDE_FLOAT16_VALUE( 0.024), SIMDE_FLOAT16_VALUE( 26.121), SIMDE_FLOAT16_VALUE( 82.133), + SIMDE_FLOAT16_VALUE( - 40.809), SIMDE_FLOAT16_VALUE( - 89.179), SIMDE_FLOAT16_VALUE( - 45.771), SIMDE_FLOAT16_VALUE( - 76.817) } }, INT8_C( 4) }, - { { SIMDE_FLOAT16_C( 41.869), -SIMDE_FLOAT16_C( 27.827), -SIMDE_FLOAT16_C( 92.856) }, - { { -SIMDE_FLOAT16_C( 35.175), SIMDE_FLOAT16_C( 47.619), SIMDE_FLOAT16_C( 41.869), SIMDE_FLOAT16_C( 17.848), - -SIMDE_FLOAT16_C( 56.188), -SIMDE_FLOAT16_C( 50.409), SIMDE_FLOAT16_C( 65.876), -SIMDE_FLOAT16_C( 32.688) }, - { SIMDE_FLOAT16_C( 3.311), -SIMDE_FLOAT16_C( 49.604), -SIMDE_FLOAT16_C( 27.827), -SIMDE_FLOAT16_C( 2.760), - SIMDE_FLOAT16_C( 20.012), SIMDE_FLOAT16_C( 66.946), SIMDE_FLOAT16_C( 31.788), -SIMDE_FLOAT16_C( 52.736) }, - { -SIMDE_FLOAT16_C( 93.576), SIMDE_FLOAT16_C( 4.057), -SIMDE_FLOAT16_C( 92.856), SIMDE_FLOAT16_C( 68.167), - -SIMDE_FLOAT16_C( 17.311), -SIMDE_FLOAT16_C( 69.405), SIMDE_FLOAT16_C( 82.245), -SIMDE_FLOAT16_C( 7.897) } }, + { { SIMDE_FLOAT16_VALUE( 41.869), SIMDE_FLOAT16_VALUE( - 27.827), SIMDE_FLOAT16_VALUE( - 92.856) }, + { { SIMDE_FLOAT16_VALUE( - 35.175), SIMDE_FLOAT16_VALUE( 47.619), SIMDE_FLOAT16_VALUE( 41.869), SIMDE_FLOAT16_VALUE( 17.848), + SIMDE_FLOAT16_VALUE( - 56.188), SIMDE_FLOAT16_VALUE( - 50.409), SIMDE_FLOAT16_VALUE( 65.876), SIMDE_FLOAT16_VALUE( - 32.688) }, + { SIMDE_FLOAT16_VALUE( 3.311), SIMDE_FLOAT16_VALUE( - 49.604), SIMDE_FLOAT16_VALUE( - 27.827), SIMDE_FLOAT16_VALUE( - 2.760), + SIMDE_FLOAT16_VALUE( 20.012), SIMDE_FLOAT16_VALUE( 66.946), SIMDE_FLOAT16_VALUE( 31.788), SIMDE_FLOAT16_VALUE( - 52.736) }, + { SIMDE_FLOAT16_VALUE( - 93.576), SIMDE_FLOAT16_VALUE( 4.057), SIMDE_FLOAT16_VALUE( - 92.856), SIMDE_FLOAT16_VALUE( 68.167), + SIMDE_FLOAT16_VALUE( - 17.311), SIMDE_FLOAT16_VALUE( - 69.405), SIMDE_FLOAT16_VALUE( 82.245), SIMDE_FLOAT16_VALUE( - 7.897) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 84.635), -SIMDE_FLOAT16_C( 34.646), -SIMDE_FLOAT16_C( 57.874) }, - { { SIMDE_FLOAT16_C( 81.549), -SIMDE_FLOAT16_C( 2.028), SIMDE_FLOAT16_C( 84.635), -SIMDE_FLOAT16_C( 29.533), - -SIMDE_FLOAT16_C( 38.208), SIMDE_FLOAT16_C( 73.008), SIMDE_FLOAT16_C( 35.951), -SIMDE_FLOAT16_C( 30.779) }, - { SIMDE_FLOAT16_C( 42.215), -SIMDE_FLOAT16_C( 27.247), -SIMDE_FLOAT16_C( 34.646), -SIMDE_FLOAT16_C( 1.564), - SIMDE_FLOAT16_C( 71.796), -SIMDE_FLOAT16_C( 51.547), SIMDE_FLOAT16_C( 32.523), -SIMDE_FLOAT16_C( 43.421) }, - { SIMDE_FLOAT16_C( 0.439), SIMDE_FLOAT16_C( 13.866), -SIMDE_FLOAT16_C( 57.874), -SIMDE_FLOAT16_C( 87.206), - -SIMDE_FLOAT16_C( 61.660), SIMDE_FLOAT16_C( 80.530), -SIMDE_FLOAT16_C( 56.810), -SIMDE_FLOAT16_C( 20.126) } }, + { { SIMDE_FLOAT16_VALUE( 84.635), SIMDE_FLOAT16_VALUE( - 34.646), SIMDE_FLOAT16_VALUE( - 57.874) }, + { { SIMDE_FLOAT16_VALUE( 81.549), SIMDE_FLOAT16_VALUE( - 2.028), SIMDE_FLOAT16_VALUE( 84.635), SIMDE_FLOAT16_VALUE( - 29.533), + SIMDE_FLOAT16_VALUE( - 38.208), SIMDE_FLOAT16_VALUE( 73.008), SIMDE_FLOAT16_VALUE( 35.951), SIMDE_FLOAT16_VALUE( - 30.779) }, + { SIMDE_FLOAT16_VALUE( 42.215), SIMDE_FLOAT16_VALUE( - 27.247), SIMDE_FLOAT16_VALUE( - 34.646), SIMDE_FLOAT16_VALUE( - 1.564), + SIMDE_FLOAT16_VALUE( 71.796), SIMDE_FLOAT16_VALUE( - 51.547), SIMDE_FLOAT16_VALUE( 32.523), SIMDE_FLOAT16_VALUE( - 43.421) }, + { SIMDE_FLOAT16_VALUE( 0.439), SIMDE_FLOAT16_VALUE( 13.866), SIMDE_FLOAT16_VALUE( - 57.874), SIMDE_FLOAT16_VALUE( - 87.206), + SIMDE_FLOAT16_VALUE( - 61.660), SIMDE_FLOAT16_VALUE( 80.530), SIMDE_FLOAT16_VALUE( - 56.810), SIMDE_FLOAT16_VALUE( - 20.126) } }, INT8_C( 2) }, - { { -SIMDE_FLOAT16_C( 78.288), SIMDE_FLOAT16_C( 36.942), SIMDE_FLOAT16_C( 21.455) }, - { { -SIMDE_FLOAT16_C( 1.116), SIMDE_FLOAT16_C( 88.525), -SIMDE_FLOAT16_C( 54.747), SIMDE_FLOAT16_C( 70.086), - -SIMDE_FLOAT16_C( 0.981), -SIMDE_FLOAT16_C( 78.288), -SIMDE_FLOAT16_C( 64.328), SIMDE_FLOAT16_C( 72.247) }, - { SIMDE_FLOAT16_C( 50.505), SIMDE_FLOAT16_C( 62.460), SIMDE_FLOAT16_C( 55.021), SIMDE_FLOAT16_C( 63.023), - SIMDE_FLOAT16_C( 46.784), SIMDE_FLOAT16_C( 36.942), -SIMDE_FLOAT16_C( 96.105), -SIMDE_FLOAT16_C( 30.818) }, - { -SIMDE_FLOAT16_C( 28.408), -SIMDE_FLOAT16_C( 39.921), SIMDE_FLOAT16_C( 8.839), -SIMDE_FLOAT16_C( 70.832), - SIMDE_FLOAT16_C( 33.768), SIMDE_FLOAT16_C( 21.455), -SIMDE_FLOAT16_C( 89.062), SIMDE_FLOAT16_C( 97.215) } }, + { { SIMDE_FLOAT16_VALUE( - 78.288), SIMDE_FLOAT16_VALUE( 36.942), SIMDE_FLOAT16_VALUE( 21.455) }, + { { SIMDE_FLOAT16_VALUE( - 1.116), SIMDE_FLOAT16_VALUE( 88.525), SIMDE_FLOAT16_VALUE( - 54.747), SIMDE_FLOAT16_VALUE( 70.086), + SIMDE_FLOAT16_VALUE( - 0.981), SIMDE_FLOAT16_VALUE( - 78.288), SIMDE_FLOAT16_VALUE( - 64.328), SIMDE_FLOAT16_VALUE( 72.247) }, + { SIMDE_FLOAT16_VALUE( 50.505), SIMDE_FLOAT16_VALUE( 62.460), SIMDE_FLOAT16_VALUE( 55.021), SIMDE_FLOAT16_VALUE( 63.023), + SIMDE_FLOAT16_VALUE( 46.784), SIMDE_FLOAT16_VALUE( 36.942), SIMDE_FLOAT16_VALUE( - 96.105), SIMDE_FLOAT16_VALUE( - 30.818) }, + { SIMDE_FLOAT16_VALUE( - 28.408), SIMDE_FLOAT16_VALUE( - 39.921), SIMDE_FLOAT16_VALUE( 8.839), SIMDE_FLOAT16_VALUE( - 70.832), + SIMDE_FLOAT16_VALUE( 33.768), SIMDE_FLOAT16_VALUE( 21.455), SIMDE_FLOAT16_VALUE( - 89.062), SIMDE_FLOAT16_VALUE( 97.215) } }, INT8_C( 5) }, }; diff --git a/test/arm/neon/st4.c b/test/arm/neon/st4.c index 3483e9de4..d1f7af4db 100644 --- a/test/arm/neon/st4.c +++ b/test/arm/neon/st4.c @@ -20,77 +20,78 @@ static int test_simde_vst4_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 r0[4]; simde_float16 r1[4]; simde_float16 r2[4]; simde_float16 r3[4]; simde_float16 a[16]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 47.024), SIMDE_FLOAT16_C( 6.719), SIMDE_FLOAT16_C( 41.219), SIMDE_FLOAT16_C( 13.593) }, - { -SIMDE_FLOAT16_C( 94.191), SIMDE_FLOAT16_C( 54.699), SIMDE_FLOAT16_C( 93.339), -SIMDE_FLOAT16_C( 70.910) }, - { -SIMDE_FLOAT16_C( 57.135), -SIMDE_FLOAT16_C( 74.250), SIMDE_FLOAT16_C( 44.190), -SIMDE_FLOAT16_C( 50.049) }, - { SIMDE_FLOAT16_C( 4.436), SIMDE_FLOAT16_C( 57.399), SIMDE_FLOAT16_C( 71.170), -SIMDE_FLOAT16_C( 90.745) }, - { -SIMDE_FLOAT16_C( 47.024), -SIMDE_FLOAT16_C( 94.191), -SIMDE_FLOAT16_C( 57.135), SIMDE_FLOAT16_C( 4.436), - SIMDE_FLOAT16_C( 6.719), SIMDE_FLOAT16_C( 54.699), -SIMDE_FLOAT16_C( 74.250), SIMDE_FLOAT16_C( 57.399), - SIMDE_FLOAT16_C( 41.219), SIMDE_FLOAT16_C( 93.339), SIMDE_FLOAT16_C( 44.190), SIMDE_FLOAT16_C( 71.170), - SIMDE_FLOAT16_C( 13.593), -SIMDE_FLOAT16_C( 70.910), -SIMDE_FLOAT16_C( 50.049), -SIMDE_FLOAT16_C( 90.745) } }, - { { -SIMDE_FLOAT16_C( 57.272), -SIMDE_FLOAT16_C( 89.707), SIMDE_FLOAT16_C( 23.428), -SIMDE_FLOAT16_C( 9.662) }, - { -SIMDE_FLOAT16_C( 66.994), -SIMDE_FLOAT16_C( 28.587), -SIMDE_FLOAT16_C( 24.075), SIMDE_FLOAT16_C( 72.816) }, - { SIMDE_FLOAT16_C( 87.704), SIMDE_FLOAT16_C( 11.476), -SIMDE_FLOAT16_C( 9.653), SIMDE_FLOAT16_C( 93.611) }, - { SIMDE_FLOAT16_C( 96.922), SIMDE_FLOAT16_C( 35.294), SIMDE_FLOAT16_C( 9.081), SIMDE_FLOAT16_C( 56.455) }, - { -SIMDE_FLOAT16_C( 57.272), -SIMDE_FLOAT16_C( 66.994), SIMDE_FLOAT16_C( 87.704), SIMDE_FLOAT16_C( 96.922), - -SIMDE_FLOAT16_C( 89.707), -SIMDE_FLOAT16_C( 28.587), SIMDE_FLOAT16_C( 11.476), SIMDE_FLOAT16_C( 35.294), - SIMDE_FLOAT16_C( 23.428), -SIMDE_FLOAT16_C( 24.075), -SIMDE_FLOAT16_C( 9.653), SIMDE_FLOAT16_C( 9.081), - -SIMDE_FLOAT16_C( 9.662), SIMDE_FLOAT16_C( 72.816), SIMDE_FLOAT16_C( 93.611), SIMDE_FLOAT16_C( 56.455) } }, - { { -SIMDE_FLOAT16_C( 93.105), -SIMDE_FLOAT16_C( 3.401), SIMDE_FLOAT16_C( 38.259), -SIMDE_FLOAT16_C( 77.939) }, - { -SIMDE_FLOAT16_C( 61.605), -SIMDE_FLOAT16_C( 53.766), -SIMDE_FLOAT16_C( 79.385), SIMDE_FLOAT16_C( 51.701) }, - { -SIMDE_FLOAT16_C( 13.690), SIMDE_FLOAT16_C( 61.359), -SIMDE_FLOAT16_C( 48.410), SIMDE_FLOAT16_C( 83.577) }, - { -SIMDE_FLOAT16_C( 31.493), SIMDE_FLOAT16_C( 67.547), -SIMDE_FLOAT16_C( 49.486), -SIMDE_FLOAT16_C( 70.863) }, - { -SIMDE_FLOAT16_C( 93.105), -SIMDE_FLOAT16_C( 61.605), -SIMDE_FLOAT16_C( 13.690), -SIMDE_FLOAT16_C( 31.493), - -SIMDE_FLOAT16_C( 3.401), -SIMDE_FLOAT16_C( 53.766), SIMDE_FLOAT16_C( 61.359), SIMDE_FLOAT16_C( 67.547), - SIMDE_FLOAT16_C( 38.259), -SIMDE_FLOAT16_C( 79.385), -SIMDE_FLOAT16_C( 48.410), -SIMDE_FLOAT16_C( 49.486), - -SIMDE_FLOAT16_C( 77.939), SIMDE_FLOAT16_C( 51.701), SIMDE_FLOAT16_C( 83.577), -SIMDE_FLOAT16_C( 70.863) } }, - { { -SIMDE_FLOAT16_C( 59.131), -SIMDE_FLOAT16_C( 86.919), SIMDE_FLOAT16_C( 79.472), -SIMDE_FLOAT16_C( 8.816) }, - { SIMDE_FLOAT16_C( 1.504), -SIMDE_FLOAT16_C( 19.699), -SIMDE_FLOAT16_C( 54.045), SIMDE_FLOAT16_C( 80.818) }, - { SIMDE_FLOAT16_C( 96.502), SIMDE_FLOAT16_C( 74.467), -SIMDE_FLOAT16_C( 62.320), -SIMDE_FLOAT16_C( 13.596) }, - { SIMDE_FLOAT16_C( 93.177), -SIMDE_FLOAT16_C( 66.739), -SIMDE_FLOAT16_C( 38.338), SIMDE_FLOAT16_C( 99.656) }, - { -SIMDE_FLOAT16_C( 59.131), SIMDE_FLOAT16_C( 1.504), SIMDE_FLOAT16_C( 96.502), SIMDE_FLOAT16_C( 93.177), - -SIMDE_FLOAT16_C( 86.919), -SIMDE_FLOAT16_C( 19.699), SIMDE_FLOAT16_C( 74.467), -SIMDE_FLOAT16_C( 66.739), - SIMDE_FLOAT16_C( 79.472), -SIMDE_FLOAT16_C( 54.045), -SIMDE_FLOAT16_C( 62.320), -SIMDE_FLOAT16_C( 38.338), - -SIMDE_FLOAT16_C( 8.816), SIMDE_FLOAT16_C( 80.818), -SIMDE_FLOAT16_C( 13.596), SIMDE_FLOAT16_C( 99.656) } }, - { { -SIMDE_FLOAT16_C( 37.162), SIMDE_FLOAT16_C( 16.071), SIMDE_FLOAT16_C( 53.822), SIMDE_FLOAT16_C( 26.764) }, - { SIMDE_FLOAT16_C( 12.408), SIMDE_FLOAT16_C( 83.245), -SIMDE_FLOAT16_C( 72.788), SIMDE_FLOAT16_C( 33.763) }, - { SIMDE_FLOAT16_C( 62.702), SIMDE_FLOAT16_C( 47.064), -SIMDE_FLOAT16_C( 22.343), -SIMDE_FLOAT16_C( 73.798) }, - { SIMDE_FLOAT16_C( 47.563), -SIMDE_FLOAT16_C( 15.230), -SIMDE_FLOAT16_C( 20.486), SIMDE_FLOAT16_C( 9.512) }, - { -SIMDE_FLOAT16_C( 37.162), SIMDE_FLOAT16_C( 12.408), SIMDE_FLOAT16_C( 62.702), SIMDE_FLOAT16_C( 47.563), - SIMDE_FLOAT16_C( 16.071), SIMDE_FLOAT16_C( 83.245), SIMDE_FLOAT16_C( 47.064), -SIMDE_FLOAT16_C( 15.230), - SIMDE_FLOAT16_C( 53.822), -SIMDE_FLOAT16_C( 72.788), -SIMDE_FLOAT16_C( 22.343), -SIMDE_FLOAT16_C( 20.486), - SIMDE_FLOAT16_C( 26.764), SIMDE_FLOAT16_C( 33.763), -SIMDE_FLOAT16_C( 73.798), SIMDE_FLOAT16_C( 9.512) } }, - { { SIMDE_FLOAT16_C( 81.267), -SIMDE_FLOAT16_C( 14.419), -SIMDE_FLOAT16_C( 86.910), SIMDE_FLOAT16_C( 96.117) }, - { SIMDE_FLOAT16_C( 63.922), -SIMDE_FLOAT16_C( 13.784), SIMDE_FLOAT16_C( 60.900), -SIMDE_FLOAT16_C( 46.465) }, - { -SIMDE_FLOAT16_C( 8.848), -SIMDE_FLOAT16_C( 38.930), -SIMDE_FLOAT16_C( 83.013), -SIMDE_FLOAT16_C( 82.394) }, - { -SIMDE_FLOAT16_C( 76.512), SIMDE_FLOAT16_C( 98.430), -SIMDE_FLOAT16_C( 36.632), SIMDE_FLOAT16_C( 72.951) }, - { SIMDE_FLOAT16_C( 81.267), SIMDE_FLOAT16_C( 63.922), -SIMDE_FLOAT16_C( 8.848), -SIMDE_FLOAT16_C( 76.512), - -SIMDE_FLOAT16_C( 14.419), -SIMDE_FLOAT16_C( 13.784), -SIMDE_FLOAT16_C( 38.930), SIMDE_FLOAT16_C( 98.430), - -SIMDE_FLOAT16_C( 86.910), SIMDE_FLOAT16_C( 60.900), -SIMDE_FLOAT16_C( 83.013), -SIMDE_FLOAT16_C( 36.632), - SIMDE_FLOAT16_C( 96.117), -SIMDE_FLOAT16_C( 46.465), -SIMDE_FLOAT16_C( 82.394), SIMDE_FLOAT16_C( 72.951) } }, - { { -SIMDE_FLOAT16_C( 59.414), -SIMDE_FLOAT16_C( 0.156), SIMDE_FLOAT16_C( 25.048), SIMDE_FLOAT16_C( 72.088) }, - { -SIMDE_FLOAT16_C( 6.793), SIMDE_FLOAT16_C( 3.483), -SIMDE_FLOAT16_C( 70.169), -SIMDE_FLOAT16_C( 17.526) }, - { -SIMDE_FLOAT16_C( 45.584), SIMDE_FLOAT16_C( 48.819), SIMDE_FLOAT16_C( 99.172), -SIMDE_FLOAT16_C( 28.748) }, - { SIMDE_FLOAT16_C( 87.589), SIMDE_FLOAT16_C( 24.842), SIMDE_FLOAT16_C( 68.343), SIMDE_FLOAT16_C( 86.487) }, - { -SIMDE_FLOAT16_C( 59.414), -SIMDE_FLOAT16_C( 6.793), -SIMDE_FLOAT16_C( 45.584), SIMDE_FLOAT16_C( 87.589), - -SIMDE_FLOAT16_C( 0.156), SIMDE_FLOAT16_C( 3.483), SIMDE_FLOAT16_C( 48.819), SIMDE_FLOAT16_C( 24.842), - SIMDE_FLOAT16_C( 25.048), -SIMDE_FLOAT16_C( 70.169), SIMDE_FLOAT16_C( 99.172), SIMDE_FLOAT16_C( 68.343), - SIMDE_FLOAT16_C( 72.088), -SIMDE_FLOAT16_C( 17.526), -SIMDE_FLOAT16_C( 28.748), SIMDE_FLOAT16_C( 86.487) } }, - { { -SIMDE_FLOAT16_C( 20.140), -SIMDE_FLOAT16_C( 42.975), SIMDE_FLOAT16_C( 95.423), SIMDE_FLOAT16_C( 44.578) }, - { -SIMDE_FLOAT16_C( 89.956), SIMDE_FLOAT16_C( 30.266), -SIMDE_FLOAT16_C( 96.275), -SIMDE_FLOAT16_C( 86.081) }, - { -SIMDE_FLOAT16_C( 51.282), SIMDE_FLOAT16_C( 69.208), SIMDE_FLOAT16_C( 62.760), SIMDE_FLOAT16_C( 60.084) }, - { SIMDE_FLOAT16_C( 50.762), SIMDE_FLOAT16_C( 51.328), -SIMDE_FLOAT16_C( 5.349), SIMDE_FLOAT16_C( 8.335) }, - { -SIMDE_FLOAT16_C( 20.140), -SIMDE_FLOAT16_C( 89.956), -SIMDE_FLOAT16_C( 51.282), SIMDE_FLOAT16_C( 50.762), - -SIMDE_FLOAT16_C( 42.975), SIMDE_FLOAT16_C( 30.266), SIMDE_FLOAT16_C( 69.208), SIMDE_FLOAT16_C( 51.328), - SIMDE_FLOAT16_C( 95.423), -SIMDE_FLOAT16_C( 96.275), SIMDE_FLOAT16_C( 62.760), -SIMDE_FLOAT16_C( 5.349), - SIMDE_FLOAT16_C( 44.578), -SIMDE_FLOAT16_C( 86.081), SIMDE_FLOAT16_C( 60.084), SIMDE_FLOAT16_C( 8.335) } }, + { { SIMDE_FLOAT16_VALUE( - 47.024), SIMDE_FLOAT16_VALUE( 6.719), SIMDE_FLOAT16_VALUE( 41.219), SIMDE_FLOAT16_VALUE( 13.593) }, + { SIMDE_FLOAT16_VALUE( - 94.191), SIMDE_FLOAT16_VALUE( 54.699), SIMDE_FLOAT16_VALUE( 93.339), SIMDE_FLOAT16_VALUE( - 70.910) }, + { SIMDE_FLOAT16_VALUE( - 57.135), SIMDE_FLOAT16_VALUE( - 74.250), SIMDE_FLOAT16_VALUE( 44.190), SIMDE_FLOAT16_VALUE( - 50.049) }, + { SIMDE_FLOAT16_VALUE( 4.436), SIMDE_FLOAT16_VALUE( 57.399), SIMDE_FLOAT16_VALUE( 71.170), SIMDE_FLOAT16_VALUE( - 90.745) }, + { SIMDE_FLOAT16_VALUE( - 47.024), SIMDE_FLOAT16_VALUE( - 94.191), SIMDE_FLOAT16_VALUE( - 57.135), SIMDE_FLOAT16_VALUE( 4.436), + SIMDE_FLOAT16_VALUE( 6.719), SIMDE_FLOAT16_VALUE( 54.699), SIMDE_FLOAT16_VALUE( - 74.250), SIMDE_FLOAT16_VALUE( 57.399), + SIMDE_FLOAT16_VALUE( 41.219), SIMDE_FLOAT16_VALUE( 93.339), SIMDE_FLOAT16_VALUE( 44.190), SIMDE_FLOAT16_VALUE( 71.170), + SIMDE_FLOAT16_VALUE( 13.593), SIMDE_FLOAT16_VALUE( - 70.910), SIMDE_FLOAT16_VALUE( - 50.049), SIMDE_FLOAT16_VALUE( - 90.745) } }, + { { SIMDE_FLOAT16_VALUE( - 57.272), SIMDE_FLOAT16_VALUE( - 89.707), SIMDE_FLOAT16_VALUE( 23.428), SIMDE_FLOAT16_VALUE( - 9.662) }, + { SIMDE_FLOAT16_VALUE( - 66.994), SIMDE_FLOAT16_VALUE( - 28.587), SIMDE_FLOAT16_VALUE( - 24.075), SIMDE_FLOAT16_VALUE( 72.816) }, + { SIMDE_FLOAT16_VALUE( 87.704), SIMDE_FLOAT16_VALUE( 11.476), SIMDE_FLOAT16_VALUE( - 9.653), SIMDE_FLOAT16_VALUE( 93.611) }, + { SIMDE_FLOAT16_VALUE( 96.922), SIMDE_FLOAT16_VALUE( 35.294), SIMDE_FLOAT16_VALUE( 9.081), SIMDE_FLOAT16_VALUE( 56.455) }, + { SIMDE_FLOAT16_VALUE( - 57.272), SIMDE_FLOAT16_VALUE( - 66.994), SIMDE_FLOAT16_VALUE( 87.704), SIMDE_FLOAT16_VALUE( 96.922), + SIMDE_FLOAT16_VALUE( - 89.707), SIMDE_FLOAT16_VALUE( - 28.587), SIMDE_FLOAT16_VALUE( 11.476), SIMDE_FLOAT16_VALUE( 35.294), + SIMDE_FLOAT16_VALUE( 23.428), SIMDE_FLOAT16_VALUE( - 24.075), SIMDE_FLOAT16_VALUE( - 9.653), SIMDE_FLOAT16_VALUE( 9.081), + SIMDE_FLOAT16_VALUE( - 9.662), SIMDE_FLOAT16_VALUE( 72.816), SIMDE_FLOAT16_VALUE( 93.611), SIMDE_FLOAT16_VALUE( 56.455) } }, + { { SIMDE_FLOAT16_VALUE( - 93.105), SIMDE_FLOAT16_VALUE( - 3.401), SIMDE_FLOAT16_VALUE( 38.259), SIMDE_FLOAT16_VALUE( - 77.939) }, + { SIMDE_FLOAT16_VALUE( - 61.605), SIMDE_FLOAT16_VALUE( - 53.766), SIMDE_FLOAT16_VALUE( - 79.385), SIMDE_FLOAT16_VALUE( 51.701) }, + { SIMDE_FLOAT16_VALUE( - 13.690), SIMDE_FLOAT16_VALUE( 61.359), SIMDE_FLOAT16_VALUE( - 48.410), SIMDE_FLOAT16_VALUE( 83.577) }, + { SIMDE_FLOAT16_VALUE( - 31.493), SIMDE_FLOAT16_VALUE( 67.547), SIMDE_FLOAT16_VALUE( - 49.486), SIMDE_FLOAT16_VALUE( - 70.863) }, + { SIMDE_FLOAT16_VALUE( - 93.105), SIMDE_FLOAT16_VALUE( - 61.605), SIMDE_FLOAT16_VALUE( - 13.690), SIMDE_FLOAT16_VALUE( - 31.493), + SIMDE_FLOAT16_VALUE( - 3.401), SIMDE_FLOAT16_VALUE( - 53.766), SIMDE_FLOAT16_VALUE( 61.359), SIMDE_FLOAT16_VALUE( 67.547), + SIMDE_FLOAT16_VALUE( 38.259), SIMDE_FLOAT16_VALUE( - 79.385), SIMDE_FLOAT16_VALUE( - 48.410), SIMDE_FLOAT16_VALUE( - 49.486), + SIMDE_FLOAT16_VALUE( - 77.939), SIMDE_FLOAT16_VALUE( 51.701), SIMDE_FLOAT16_VALUE( 83.577), SIMDE_FLOAT16_VALUE( - 70.863) } }, + { { SIMDE_FLOAT16_VALUE( - 59.131), SIMDE_FLOAT16_VALUE( - 86.919), SIMDE_FLOAT16_VALUE( 79.472), SIMDE_FLOAT16_VALUE( - 8.816) }, + { SIMDE_FLOAT16_VALUE( 1.504), SIMDE_FLOAT16_VALUE( - 19.699), SIMDE_FLOAT16_VALUE( - 54.045), SIMDE_FLOAT16_VALUE( 80.818) }, + { SIMDE_FLOAT16_VALUE( 96.502), SIMDE_FLOAT16_VALUE( 74.467), SIMDE_FLOAT16_VALUE( - 62.320), SIMDE_FLOAT16_VALUE( - 13.596) }, + { SIMDE_FLOAT16_VALUE( 93.177), SIMDE_FLOAT16_VALUE( - 66.739), SIMDE_FLOAT16_VALUE( - 38.338), SIMDE_FLOAT16_VALUE( 99.656) }, + { SIMDE_FLOAT16_VALUE( - 59.131), SIMDE_FLOAT16_VALUE( 1.504), SIMDE_FLOAT16_VALUE( 96.502), SIMDE_FLOAT16_VALUE( 93.177), + SIMDE_FLOAT16_VALUE( - 86.919), SIMDE_FLOAT16_VALUE( - 19.699), SIMDE_FLOAT16_VALUE( 74.467), SIMDE_FLOAT16_VALUE( - 66.739), + SIMDE_FLOAT16_VALUE( 79.472), SIMDE_FLOAT16_VALUE( - 54.045), SIMDE_FLOAT16_VALUE( - 62.320), SIMDE_FLOAT16_VALUE( - 38.338), + SIMDE_FLOAT16_VALUE( - 8.816), SIMDE_FLOAT16_VALUE( 80.818), SIMDE_FLOAT16_VALUE( - 13.596), SIMDE_FLOAT16_VALUE( 99.656) } }, + { { SIMDE_FLOAT16_VALUE( - 37.162), SIMDE_FLOAT16_VALUE( 16.071), SIMDE_FLOAT16_VALUE( 53.822), SIMDE_FLOAT16_VALUE( 26.764) }, + { SIMDE_FLOAT16_VALUE( 12.408), SIMDE_FLOAT16_VALUE( 83.245), SIMDE_FLOAT16_VALUE( - 72.788), SIMDE_FLOAT16_VALUE( 33.763) }, + { SIMDE_FLOAT16_VALUE( 62.702), SIMDE_FLOAT16_VALUE( 47.064), SIMDE_FLOAT16_VALUE( - 22.343), SIMDE_FLOAT16_VALUE( - 73.798) }, + { SIMDE_FLOAT16_VALUE( 47.563), SIMDE_FLOAT16_VALUE( - 15.230), SIMDE_FLOAT16_VALUE( - 20.486), SIMDE_FLOAT16_VALUE( 9.512) }, + { SIMDE_FLOAT16_VALUE( - 37.162), SIMDE_FLOAT16_VALUE( 12.408), SIMDE_FLOAT16_VALUE( 62.702), SIMDE_FLOAT16_VALUE( 47.563), + SIMDE_FLOAT16_VALUE( 16.071), SIMDE_FLOAT16_VALUE( 83.245), SIMDE_FLOAT16_VALUE( 47.064), SIMDE_FLOAT16_VALUE( - 15.230), + SIMDE_FLOAT16_VALUE( 53.822), SIMDE_FLOAT16_VALUE( - 72.788), SIMDE_FLOAT16_VALUE( - 22.343), SIMDE_FLOAT16_VALUE( - 20.486), + SIMDE_FLOAT16_VALUE( 26.764), SIMDE_FLOAT16_VALUE( 33.763), SIMDE_FLOAT16_VALUE( - 73.798), SIMDE_FLOAT16_VALUE( 9.512) } }, + { { SIMDE_FLOAT16_VALUE( 81.267), SIMDE_FLOAT16_VALUE( - 14.419), SIMDE_FLOAT16_VALUE( - 86.910), SIMDE_FLOAT16_VALUE( 96.117) }, + { SIMDE_FLOAT16_VALUE( 63.922), SIMDE_FLOAT16_VALUE( - 13.784), SIMDE_FLOAT16_VALUE( 60.900), SIMDE_FLOAT16_VALUE( - 46.465) }, + { SIMDE_FLOAT16_VALUE( - 8.848), SIMDE_FLOAT16_VALUE( - 38.930), SIMDE_FLOAT16_VALUE( - 83.013), SIMDE_FLOAT16_VALUE( - 82.394) }, + { SIMDE_FLOAT16_VALUE( - 76.512), SIMDE_FLOAT16_VALUE( 98.430), SIMDE_FLOAT16_VALUE( - 36.632), SIMDE_FLOAT16_VALUE( 72.951) }, + { SIMDE_FLOAT16_VALUE( 81.267), SIMDE_FLOAT16_VALUE( 63.922), SIMDE_FLOAT16_VALUE( - 8.848), SIMDE_FLOAT16_VALUE( - 76.512), + SIMDE_FLOAT16_VALUE( - 14.419), SIMDE_FLOAT16_VALUE( - 13.784), SIMDE_FLOAT16_VALUE( - 38.930), SIMDE_FLOAT16_VALUE( 98.430), + SIMDE_FLOAT16_VALUE( - 86.910), SIMDE_FLOAT16_VALUE( 60.900), SIMDE_FLOAT16_VALUE( - 83.013), SIMDE_FLOAT16_VALUE( - 36.632), + SIMDE_FLOAT16_VALUE( 96.117), SIMDE_FLOAT16_VALUE( - 46.465), SIMDE_FLOAT16_VALUE( - 82.394), SIMDE_FLOAT16_VALUE( 72.951) } }, + { { SIMDE_FLOAT16_VALUE( - 59.414), SIMDE_FLOAT16_VALUE( - 0.156), SIMDE_FLOAT16_VALUE( 25.048), SIMDE_FLOAT16_VALUE( 72.088) }, + { SIMDE_FLOAT16_VALUE( - 6.793), SIMDE_FLOAT16_VALUE( 3.483), SIMDE_FLOAT16_VALUE( - 70.169), SIMDE_FLOAT16_VALUE( - 17.526) }, + { SIMDE_FLOAT16_VALUE( - 45.584), SIMDE_FLOAT16_VALUE( 48.819), SIMDE_FLOAT16_VALUE( 99.172), SIMDE_FLOAT16_VALUE( - 28.748) }, + { SIMDE_FLOAT16_VALUE( 87.589), SIMDE_FLOAT16_VALUE( 24.842), SIMDE_FLOAT16_VALUE( 68.343), SIMDE_FLOAT16_VALUE( 86.487) }, + { SIMDE_FLOAT16_VALUE( - 59.414), SIMDE_FLOAT16_VALUE( - 6.793), SIMDE_FLOAT16_VALUE( - 45.584), SIMDE_FLOAT16_VALUE( 87.589), + SIMDE_FLOAT16_VALUE( - 0.156), SIMDE_FLOAT16_VALUE( 3.483), SIMDE_FLOAT16_VALUE( 48.819), SIMDE_FLOAT16_VALUE( 24.842), + SIMDE_FLOAT16_VALUE( 25.048), SIMDE_FLOAT16_VALUE( - 70.169), SIMDE_FLOAT16_VALUE( 99.172), SIMDE_FLOAT16_VALUE( 68.343), + SIMDE_FLOAT16_VALUE( 72.088), SIMDE_FLOAT16_VALUE( - 17.526), SIMDE_FLOAT16_VALUE( - 28.748), SIMDE_FLOAT16_VALUE( 86.487) } }, + { { SIMDE_FLOAT16_VALUE( - 20.140), SIMDE_FLOAT16_VALUE( - 42.975), SIMDE_FLOAT16_VALUE( 95.423), SIMDE_FLOAT16_VALUE( 44.578) }, + { SIMDE_FLOAT16_VALUE( - 89.956), SIMDE_FLOAT16_VALUE( 30.266), SIMDE_FLOAT16_VALUE( - 96.275), SIMDE_FLOAT16_VALUE( - 86.081) }, + { SIMDE_FLOAT16_VALUE( - 51.282), SIMDE_FLOAT16_VALUE( 69.208), SIMDE_FLOAT16_VALUE( 62.760), SIMDE_FLOAT16_VALUE( 60.084) }, + { SIMDE_FLOAT16_VALUE( 50.762), SIMDE_FLOAT16_VALUE( 51.328), SIMDE_FLOAT16_VALUE( - 5.349), SIMDE_FLOAT16_VALUE( 8.335) }, + { SIMDE_FLOAT16_VALUE( - 20.140), SIMDE_FLOAT16_VALUE( - 89.956), SIMDE_FLOAT16_VALUE( - 51.282), SIMDE_FLOAT16_VALUE( 50.762), + SIMDE_FLOAT16_VALUE( - 42.975), SIMDE_FLOAT16_VALUE( 30.266), SIMDE_FLOAT16_VALUE( 69.208), SIMDE_FLOAT16_VALUE( 51.328), + SIMDE_FLOAT16_VALUE( 95.423), SIMDE_FLOAT16_VALUE( - 96.275), SIMDE_FLOAT16_VALUE( 62.760), SIMDE_FLOAT16_VALUE( - 5.349), + SIMDE_FLOAT16_VALUE( 44.578), SIMDE_FLOAT16_VALUE( - 86.081), SIMDE_FLOAT16_VALUE( 60.084), SIMDE_FLOAT16_VALUE( 8.335) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -111,6 +112,24 @@ test_simde_vst4_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x4_t r0 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x4_t r1 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x4_t r2 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x4_t r3 = simde_test_arm_neon_random_f16x4(-100.0f, 100.0f); + simde_float16x16_t a = simde_vst4_f16(r0, r1, r2, r3); + + simde_test_arm_neon_write_f16x4(2, r0, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x4(2, r1, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r2, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x16(2, a, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int @@ -2282,141 +2301,142 @@ test_simde_vst4_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst4q_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { +#if 1 + struct { simde_float16 r0[8]; simde_float16 r1[8]; simde_float16 r2[8]; simde_float16 r3[8]; simde_float16 a[32]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 14.743), SIMDE_FLOAT16_C( 96.869), SIMDE_FLOAT16_C( 35.732), -SIMDE_FLOAT16_C( 11.204), - -SIMDE_FLOAT16_C( 36.507), -SIMDE_FLOAT16_C( 87.762), -SIMDE_FLOAT16_C( 30.140), SIMDE_FLOAT16_C( 40.553) }, - { SIMDE_FLOAT16_C( 90.636), -SIMDE_FLOAT16_C( 74.102), -SIMDE_FLOAT16_C( 11.935), SIMDE_FLOAT16_C( 76.173), - -SIMDE_FLOAT16_C( 60.016), -SIMDE_FLOAT16_C( 12.468), -SIMDE_FLOAT16_C( 42.341), -SIMDE_FLOAT16_C( 48.188) }, - { -SIMDE_FLOAT16_C( 65.064), -SIMDE_FLOAT16_C( 77.067), -SIMDE_FLOAT16_C( 3.798), SIMDE_FLOAT16_C( 78.248), - -SIMDE_FLOAT16_C( 75.705), -SIMDE_FLOAT16_C( 81.300), SIMDE_FLOAT16_C( 41.755), SIMDE_FLOAT16_C( 0.822) }, - { SIMDE_FLOAT16_C( 45.696), -SIMDE_FLOAT16_C( 91.718), SIMDE_FLOAT16_C( 81.433), SIMDE_FLOAT16_C( 42.239), - SIMDE_FLOAT16_C( 70.791), SIMDE_FLOAT16_C( 21.361), SIMDE_FLOAT16_C( 51.896), -SIMDE_FLOAT16_C( 38.175) }, - { -SIMDE_FLOAT16_C( 14.743), SIMDE_FLOAT16_C( 90.636), -SIMDE_FLOAT16_C( 65.064), SIMDE_FLOAT16_C( 45.696), - SIMDE_FLOAT16_C( 96.869), -SIMDE_FLOAT16_C( 74.102), -SIMDE_FLOAT16_C( 77.067), -SIMDE_FLOAT16_C( 91.718), - SIMDE_FLOAT16_C( 35.732), -SIMDE_FLOAT16_C( 11.935), -SIMDE_FLOAT16_C( 3.798), SIMDE_FLOAT16_C( 81.433), - -SIMDE_FLOAT16_C( 11.204), SIMDE_FLOAT16_C( 76.173), SIMDE_FLOAT16_C( 78.248), SIMDE_FLOAT16_C( 42.239), - -SIMDE_FLOAT16_C( 36.507), -SIMDE_FLOAT16_C( 60.016), -SIMDE_FLOAT16_C( 75.705), SIMDE_FLOAT16_C( 70.791), - -SIMDE_FLOAT16_C( 87.762), -SIMDE_FLOAT16_C( 12.468), -SIMDE_FLOAT16_C( 81.300), SIMDE_FLOAT16_C( 21.361), - -SIMDE_FLOAT16_C( 30.140), -SIMDE_FLOAT16_C( 42.341), SIMDE_FLOAT16_C( 41.755), SIMDE_FLOAT16_C( 51.896), - SIMDE_FLOAT16_C( 40.553), -SIMDE_FLOAT16_C( 48.188), SIMDE_FLOAT16_C( 0.822), -SIMDE_FLOAT16_C( 38.175) } }, - { { SIMDE_FLOAT16_C( 20.836), -SIMDE_FLOAT16_C( 6.255), SIMDE_FLOAT16_C( 79.168), SIMDE_FLOAT16_C( 29.039), - SIMDE_FLOAT16_C( 96.927), SIMDE_FLOAT16_C( 41.696), -SIMDE_FLOAT16_C( 42.924), -SIMDE_FLOAT16_C( 7.066) }, - { SIMDE_FLOAT16_C( 14.370), SIMDE_FLOAT16_C( 7.192), -SIMDE_FLOAT16_C( 88.540), SIMDE_FLOAT16_C( 13.116), - SIMDE_FLOAT16_C( 64.603), -SIMDE_FLOAT16_C( 63.088), -SIMDE_FLOAT16_C( 11.758), SIMDE_FLOAT16_C( 14.850) }, - { SIMDE_FLOAT16_C( 27.807), SIMDE_FLOAT16_C( 11.530), -SIMDE_FLOAT16_C( 32.331), -SIMDE_FLOAT16_C( 44.759), - SIMDE_FLOAT16_C( 24.258), -SIMDE_FLOAT16_C( 86.786), -SIMDE_FLOAT16_C( 94.826), SIMDE_FLOAT16_C( 48.908) }, - { SIMDE_FLOAT16_C( 20.925), SIMDE_FLOAT16_C( 99.983), -SIMDE_FLOAT16_C( 59.823), SIMDE_FLOAT16_C( 71.958), - SIMDE_FLOAT16_C( 63.444), SIMDE_FLOAT16_C( 71.547), SIMDE_FLOAT16_C( 68.404), SIMDE_FLOAT16_C( 32.576) }, - { SIMDE_FLOAT16_C( 20.836), SIMDE_FLOAT16_C( 14.370), SIMDE_FLOAT16_C( 27.807), SIMDE_FLOAT16_C( 20.925), - -SIMDE_FLOAT16_C( 6.255), SIMDE_FLOAT16_C( 7.192), SIMDE_FLOAT16_C( 11.530), SIMDE_FLOAT16_C( 99.983), - SIMDE_FLOAT16_C( 79.168), -SIMDE_FLOAT16_C( 88.540), -SIMDE_FLOAT16_C( 32.331), -SIMDE_FLOAT16_C( 59.823), - SIMDE_FLOAT16_C( 29.039), SIMDE_FLOAT16_C( 13.116), -SIMDE_FLOAT16_C( 44.759), SIMDE_FLOAT16_C( 71.958), - SIMDE_FLOAT16_C( 96.927), SIMDE_FLOAT16_C( 64.603), SIMDE_FLOAT16_C( 24.258), SIMDE_FLOAT16_C( 63.444), - SIMDE_FLOAT16_C( 41.696), -SIMDE_FLOAT16_C( 63.088), -SIMDE_FLOAT16_C( 86.786), SIMDE_FLOAT16_C( 71.547), - -SIMDE_FLOAT16_C( 42.924), -SIMDE_FLOAT16_C( 11.758), -SIMDE_FLOAT16_C( 94.826), SIMDE_FLOAT16_C( 68.404), - -SIMDE_FLOAT16_C( 7.066), SIMDE_FLOAT16_C( 14.850), SIMDE_FLOAT16_C( 48.908), SIMDE_FLOAT16_C( 32.576) } }, - { { -SIMDE_FLOAT16_C( 98.651), SIMDE_FLOAT16_C( 8.370), SIMDE_FLOAT16_C( 5.212), -SIMDE_FLOAT16_C( 39.002), - -SIMDE_FLOAT16_C( 50.855), SIMDE_FLOAT16_C( 9.832), SIMDE_FLOAT16_C( 64.681), SIMDE_FLOAT16_C( 53.110) }, - { SIMDE_FLOAT16_C( 56.471), SIMDE_FLOAT16_C( 66.543), -SIMDE_FLOAT16_C( 19.108), SIMDE_FLOAT16_C( 57.884), - SIMDE_FLOAT16_C( 8.069), -SIMDE_FLOAT16_C( 92.092), SIMDE_FLOAT16_C( 21.120), -SIMDE_FLOAT16_C( 28.746) }, - { -SIMDE_FLOAT16_C( 33.477), SIMDE_FLOAT16_C( 94.776), SIMDE_FLOAT16_C( 39.423), -SIMDE_FLOAT16_C( 14.126), - -SIMDE_FLOAT16_C( 86.375), -SIMDE_FLOAT16_C( 35.066), SIMDE_FLOAT16_C( 93.908), -SIMDE_FLOAT16_C( 70.598) }, - { -SIMDE_FLOAT16_C( 47.494), -SIMDE_FLOAT16_C( 73.328), -SIMDE_FLOAT16_C( 6.515), SIMDE_FLOAT16_C( 64.596), - -SIMDE_FLOAT16_C( 85.478), -SIMDE_FLOAT16_C( 93.767), -SIMDE_FLOAT16_C( 96.092), -SIMDE_FLOAT16_C( 43.609) }, - { -SIMDE_FLOAT16_C( 98.651), SIMDE_FLOAT16_C( 56.471), -SIMDE_FLOAT16_C( 33.477), -SIMDE_FLOAT16_C( 47.494), - SIMDE_FLOAT16_C( 8.370), SIMDE_FLOAT16_C( 66.543), SIMDE_FLOAT16_C( 94.776), -SIMDE_FLOAT16_C( 73.328), - SIMDE_FLOAT16_C( 5.212), -SIMDE_FLOAT16_C( 19.108), SIMDE_FLOAT16_C( 39.423), -SIMDE_FLOAT16_C( 6.515), - -SIMDE_FLOAT16_C( 39.002), SIMDE_FLOAT16_C( 57.884), -SIMDE_FLOAT16_C( 14.126), SIMDE_FLOAT16_C( 64.596), - -SIMDE_FLOAT16_C( 50.855), SIMDE_FLOAT16_C( 8.069), -SIMDE_FLOAT16_C( 86.375), -SIMDE_FLOAT16_C( 85.478), - SIMDE_FLOAT16_C( 9.832), -SIMDE_FLOAT16_C( 92.092), -SIMDE_FLOAT16_C( 35.066), -SIMDE_FLOAT16_C( 93.767), - SIMDE_FLOAT16_C( 64.681), SIMDE_FLOAT16_C( 21.120), SIMDE_FLOAT16_C( 93.908), -SIMDE_FLOAT16_C( 96.092), - SIMDE_FLOAT16_C( 53.110), -SIMDE_FLOAT16_C( 28.746), -SIMDE_FLOAT16_C( 70.598), -SIMDE_FLOAT16_C( 43.609) } }, - { { SIMDE_FLOAT16_C( 32.009), -SIMDE_FLOAT16_C( 70.333), SIMDE_FLOAT16_C( 5.538), SIMDE_FLOAT16_C( 82.520), - -SIMDE_FLOAT16_C( 40.966), -SIMDE_FLOAT16_C( 11.607), -SIMDE_FLOAT16_C( 54.581), SIMDE_FLOAT16_C( 51.136) }, - { -SIMDE_FLOAT16_C( 80.277), SIMDE_FLOAT16_C( 70.486), -SIMDE_FLOAT16_C( 49.720), SIMDE_FLOAT16_C( 84.405), - -SIMDE_FLOAT16_C( 38.234), SIMDE_FLOAT16_C( 47.061), -SIMDE_FLOAT16_C( 27.953), -SIMDE_FLOAT16_C( 35.272) }, - { SIMDE_FLOAT16_C( 37.433), SIMDE_FLOAT16_C( 84.527), SIMDE_FLOAT16_C( 41.358), -SIMDE_FLOAT16_C( 69.610), - SIMDE_FLOAT16_C( 51.678), -SIMDE_FLOAT16_C( 94.404), -SIMDE_FLOAT16_C( 16.678), SIMDE_FLOAT16_C( 76.803) }, - { -SIMDE_FLOAT16_C( 82.082), -SIMDE_FLOAT16_C( 90.814), -SIMDE_FLOAT16_C( 62.857), -SIMDE_FLOAT16_C( 73.589), - SIMDE_FLOAT16_C( 77.514), -SIMDE_FLOAT16_C( 67.143), -SIMDE_FLOAT16_C( 66.907), SIMDE_FLOAT16_C( 66.753) }, - { SIMDE_FLOAT16_C( 32.009), -SIMDE_FLOAT16_C( 80.277), SIMDE_FLOAT16_C( 37.433), -SIMDE_FLOAT16_C( 82.082), - -SIMDE_FLOAT16_C( 70.333), SIMDE_FLOAT16_C( 70.486), SIMDE_FLOAT16_C( 84.527), -SIMDE_FLOAT16_C( 90.814), - SIMDE_FLOAT16_C( 5.538), -SIMDE_FLOAT16_C( 49.720), SIMDE_FLOAT16_C( 41.358), -SIMDE_FLOAT16_C( 62.857), - SIMDE_FLOAT16_C( 82.520), SIMDE_FLOAT16_C( 84.405), -SIMDE_FLOAT16_C( 69.610), -SIMDE_FLOAT16_C( 73.589), - -SIMDE_FLOAT16_C( 40.966), -SIMDE_FLOAT16_C( 38.234), SIMDE_FLOAT16_C( 51.678), SIMDE_FLOAT16_C( 77.514), - -SIMDE_FLOAT16_C( 11.607), SIMDE_FLOAT16_C( 47.061), -SIMDE_FLOAT16_C( 94.404), -SIMDE_FLOAT16_C( 67.143), - -SIMDE_FLOAT16_C( 54.581), -SIMDE_FLOAT16_C( 27.953), -SIMDE_FLOAT16_C( 16.678), -SIMDE_FLOAT16_C( 66.907), - SIMDE_FLOAT16_C( 51.136), -SIMDE_FLOAT16_C( 35.272), SIMDE_FLOAT16_C( 76.803), SIMDE_FLOAT16_C( 66.753) } }, - { { SIMDE_FLOAT16_C( 13.527), SIMDE_FLOAT16_C( 15.879), -SIMDE_FLOAT16_C( 25.658), SIMDE_FLOAT16_C( 64.222), - SIMDE_FLOAT16_C( 72.758), SIMDE_FLOAT16_C( 17.152), SIMDE_FLOAT16_C( 61.595), -SIMDE_FLOAT16_C( 25.744) }, - { SIMDE_FLOAT16_C( 73.965), SIMDE_FLOAT16_C( 66.305), -SIMDE_FLOAT16_C( 82.679), -SIMDE_FLOAT16_C( 48.114), - SIMDE_FLOAT16_C( 35.804), SIMDE_FLOAT16_C( 11.885), -SIMDE_FLOAT16_C( 98.287), SIMDE_FLOAT16_C( 61.933) }, - { -SIMDE_FLOAT16_C( 79.049), SIMDE_FLOAT16_C( 99.270), -SIMDE_FLOAT16_C( 46.729), SIMDE_FLOAT16_C( 30.358), - SIMDE_FLOAT16_C( 46.057), -SIMDE_FLOAT16_C( 87.368), SIMDE_FLOAT16_C( 82.236), -SIMDE_FLOAT16_C( 81.438) }, - { SIMDE_FLOAT16_C( 31.502), SIMDE_FLOAT16_C( 72.068), -SIMDE_FLOAT16_C( 3.689), SIMDE_FLOAT16_C( 42.230), - SIMDE_FLOAT16_C( 9.827), SIMDE_FLOAT16_C( 27.830), -SIMDE_FLOAT16_C( 62.111), -SIMDE_FLOAT16_C( 46.971) }, - { SIMDE_FLOAT16_C( 13.527), SIMDE_FLOAT16_C( 73.965), -SIMDE_FLOAT16_C( 79.049), SIMDE_FLOAT16_C( 31.502), - SIMDE_FLOAT16_C( 15.879), SIMDE_FLOAT16_C( 66.305), SIMDE_FLOAT16_C( 99.270), SIMDE_FLOAT16_C( 72.068), - -SIMDE_FLOAT16_C( 25.658), -SIMDE_FLOAT16_C( 82.679), -SIMDE_FLOAT16_C( 46.729), -SIMDE_FLOAT16_C( 3.689), - SIMDE_FLOAT16_C( 64.222), -SIMDE_FLOAT16_C( 48.114), SIMDE_FLOAT16_C( 30.358), SIMDE_FLOAT16_C( 42.230), - SIMDE_FLOAT16_C( 72.758), SIMDE_FLOAT16_C( 35.804), SIMDE_FLOAT16_C( 46.057), SIMDE_FLOAT16_C( 9.827), - SIMDE_FLOAT16_C( 17.152), SIMDE_FLOAT16_C( 11.885), -SIMDE_FLOAT16_C( 87.368), SIMDE_FLOAT16_C( 27.830), - SIMDE_FLOAT16_C( 61.595), -SIMDE_FLOAT16_C( 98.287), SIMDE_FLOAT16_C( 82.236), -SIMDE_FLOAT16_C( 62.111), - -SIMDE_FLOAT16_C( 25.744), SIMDE_FLOAT16_C( 61.933), -SIMDE_FLOAT16_C( 81.438), -SIMDE_FLOAT16_C( 46.971) } }, - { { -SIMDE_FLOAT16_C( 98.937), -SIMDE_FLOAT16_C( 75.185), SIMDE_FLOAT16_C( 51.461), SIMDE_FLOAT16_C( 34.040), - -SIMDE_FLOAT16_C( 18.490), SIMDE_FLOAT16_C( 2.435), -SIMDE_FLOAT16_C( 31.936), -SIMDE_FLOAT16_C( 44.440) }, - { SIMDE_FLOAT16_C( 51.617), SIMDE_FLOAT16_C( 92.309), -SIMDE_FLOAT16_C( 32.479), SIMDE_FLOAT16_C( 64.487), - SIMDE_FLOAT16_C( 33.205), SIMDE_FLOAT16_C( 26.250), -SIMDE_FLOAT16_C( 8.956), SIMDE_FLOAT16_C( 43.765) }, - { -SIMDE_FLOAT16_C( 80.764), -SIMDE_FLOAT16_C( 42.445), -SIMDE_FLOAT16_C( 77.677), SIMDE_FLOAT16_C( 54.417), - -SIMDE_FLOAT16_C( 58.892), SIMDE_FLOAT16_C( 67.912), -SIMDE_FLOAT16_C( 19.769), -SIMDE_FLOAT16_C( 94.018) }, - { SIMDE_FLOAT16_C( 32.228), -SIMDE_FLOAT16_C( 45.404), -SIMDE_FLOAT16_C( 11.380), SIMDE_FLOAT16_C( 85.317), - SIMDE_FLOAT16_C( 32.872), -SIMDE_FLOAT16_C( 10.946), SIMDE_FLOAT16_C( 93.337), SIMDE_FLOAT16_C( 94.934) }, - { -SIMDE_FLOAT16_C( 98.937), SIMDE_FLOAT16_C( 51.617), -SIMDE_FLOAT16_C( 80.764), SIMDE_FLOAT16_C( 32.228), - -SIMDE_FLOAT16_C( 75.185), SIMDE_FLOAT16_C( 92.309), -SIMDE_FLOAT16_C( 42.445), -SIMDE_FLOAT16_C( 45.404), - SIMDE_FLOAT16_C( 51.461), -SIMDE_FLOAT16_C( 32.479), -SIMDE_FLOAT16_C( 77.677), -SIMDE_FLOAT16_C( 11.380), - SIMDE_FLOAT16_C( 34.040), SIMDE_FLOAT16_C( 64.487), SIMDE_FLOAT16_C( 54.417), SIMDE_FLOAT16_C( 85.317), - -SIMDE_FLOAT16_C( 18.490), SIMDE_FLOAT16_C( 33.205), -SIMDE_FLOAT16_C( 58.892), SIMDE_FLOAT16_C( 32.872), - SIMDE_FLOAT16_C( 2.435), SIMDE_FLOAT16_C( 26.250), SIMDE_FLOAT16_C( 67.912), -SIMDE_FLOAT16_C( 10.946), - -SIMDE_FLOAT16_C( 31.936), -SIMDE_FLOAT16_C( 8.956), -SIMDE_FLOAT16_C( 19.769), SIMDE_FLOAT16_C( 93.337), - -SIMDE_FLOAT16_C( 44.440), SIMDE_FLOAT16_C( 43.765), -SIMDE_FLOAT16_C( 94.018), SIMDE_FLOAT16_C( 94.934) } }, - { { -SIMDE_FLOAT16_C( 82.721), -SIMDE_FLOAT16_C( 5.083), SIMDE_FLOAT16_C( 28.116), -SIMDE_FLOAT16_C( 2.078), - -SIMDE_FLOAT16_C( 8.045), SIMDE_FLOAT16_C( 98.088), SIMDE_FLOAT16_C( 77.205), -SIMDE_FLOAT16_C( 86.702) }, - { -SIMDE_FLOAT16_C( 75.686), -SIMDE_FLOAT16_C( 67.078), SIMDE_FLOAT16_C( 38.647), -SIMDE_FLOAT16_C( 7.111), - -SIMDE_FLOAT16_C( 74.933), -SIMDE_FLOAT16_C( 54.055), -SIMDE_FLOAT16_C( 51.905), SIMDE_FLOAT16_C( 53.734) }, - { -SIMDE_FLOAT16_C( 39.474), SIMDE_FLOAT16_C( 89.193), -SIMDE_FLOAT16_C( 72.210), -SIMDE_FLOAT16_C( 42.032), - SIMDE_FLOAT16_C( 61.321), -SIMDE_FLOAT16_C( 12.021), -SIMDE_FLOAT16_C( 35.830), -SIMDE_FLOAT16_C( 85.851) }, - { SIMDE_FLOAT16_C( 64.970), SIMDE_FLOAT16_C( 85.757), SIMDE_FLOAT16_C( 28.273), SIMDE_FLOAT16_C( 77.789), - SIMDE_FLOAT16_C( 50.825), SIMDE_FLOAT16_C( 95.876), SIMDE_FLOAT16_C( 44.735), -SIMDE_FLOAT16_C( 28.570) }, - { -SIMDE_FLOAT16_C( 82.721), -SIMDE_FLOAT16_C( 75.686), -SIMDE_FLOAT16_C( 39.474), SIMDE_FLOAT16_C( 64.970), - -SIMDE_FLOAT16_C( 5.083), -SIMDE_FLOAT16_C( 67.078), SIMDE_FLOAT16_C( 89.193), SIMDE_FLOAT16_C( 85.757), - SIMDE_FLOAT16_C( 28.116), SIMDE_FLOAT16_C( 38.647), -SIMDE_FLOAT16_C( 72.210), SIMDE_FLOAT16_C( 28.273), - -SIMDE_FLOAT16_C( 2.078), -SIMDE_FLOAT16_C( 7.111), -SIMDE_FLOAT16_C( 42.032), SIMDE_FLOAT16_C( 77.789), - -SIMDE_FLOAT16_C( 8.045), -SIMDE_FLOAT16_C( 74.933), SIMDE_FLOAT16_C( 61.321), SIMDE_FLOAT16_C( 50.825), - SIMDE_FLOAT16_C( 98.088), -SIMDE_FLOAT16_C( 54.055), -SIMDE_FLOAT16_C( 12.021), SIMDE_FLOAT16_C( 95.876), - SIMDE_FLOAT16_C( 77.205), -SIMDE_FLOAT16_C( 51.905), -SIMDE_FLOAT16_C( 35.830), SIMDE_FLOAT16_C( 44.735), - -SIMDE_FLOAT16_C( 86.702), SIMDE_FLOAT16_C( 53.734), -SIMDE_FLOAT16_C( 85.851), -SIMDE_FLOAT16_C( 28.570) } }, - { { SIMDE_FLOAT16_C( 56.021), -SIMDE_FLOAT16_C( 47.189), SIMDE_FLOAT16_C( 34.633), -SIMDE_FLOAT16_C( 48.482), - -SIMDE_FLOAT16_C( 13.024), -SIMDE_FLOAT16_C( 68.164), -SIMDE_FLOAT16_C( 38.493), -SIMDE_FLOAT16_C( 96.972) }, - { SIMDE_FLOAT16_C( 14.297), SIMDE_FLOAT16_C( 60.328), -SIMDE_FLOAT16_C( 55.132), SIMDE_FLOAT16_C( 61.549), - SIMDE_FLOAT16_C( 25.753), SIMDE_FLOAT16_C( 72.855), SIMDE_FLOAT16_C( 28.394), SIMDE_FLOAT16_C( 58.315) }, - { -SIMDE_FLOAT16_C( 52.297), -SIMDE_FLOAT16_C( 59.309), SIMDE_FLOAT16_C( 39.064), SIMDE_FLOAT16_C( 92.546), - SIMDE_FLOAT16_C( 29.222), SIMDE_FLOAT16_C( 18.830), SIMDE_FLOAT16_C( 78.006), -SIMDE_FLOAT16_C( 34.477) }, - { SIMDE_FLOAT16_C( 48.515), SIMDE_FLOAT16_C( 6.778), SIMDE_FLOAT16_C( 83.115), -SIMDE_FLOAT16_C( 15.075), - -SIMDE_FLOAT16_C( 64.544), -SIMDE_FLOAT16_C( 5.615), -SIMDE_FLOAT16_C( 79.529), -SIMDE_FLOAT16_C( 20.122) }, - { SIMDE_FLOAT16_C( 56.021), SIMDE_FLOAT16_C( 14.297), -SIMDE_FLOAT16_C( 52.297), SIMDE_FLOAT16_C( 48.515), - -SIMDE_FLOAT16_C( 47.189), SIMDE_FLOAT16_C( 60.328), -SIMDE_FLOAT16_C( 59.309), SIMDE_FLOAT16_C( 6.778), - SIMDE_FLOAT16_C( 34.633), -SIMDE_FLOAT16_C( 55.132), SIMDE_FLOAT16_C( 39.064), SIMDE_FLOAT16_C( 83.115), - -SIMDE_FLOAT16_C( 48.482), SIMDE_FLOAT16_C( 61.549), SIMDE_FLOAT16_C( 92.546), -SIMDE_FLOAT16_C( 15.075), - -SIMDE_FLOAT16_C( 13.024), SIMDE_FLOAT16_C( 25.753), SIMDE_FLOAT16_C( 29.222), -SIMDE_FLOAT16_C( 64.544), - -SIMDE_FLOAT16_C( 68.164), SIMDE_FLOAT16_C( 72.855), SIMDE_FLOAT16_C( 18.830), -SIMDE_FLOAT16_C( 5.615), - -SIMDE_FLOAT16_C( 38.493), SIMDE_FLOAT16_C( 28.394), SIMDE_FLOAT16_C( 78.006), -SIMDE_FLOAT16_C( 79.529), - -SIMDE_FLOAT16_C( 96.972), SIMDE_FLOAT16_C( 58.315), -SIMDE_FLOAT16_C( 34.477), -SIMDE_FLOAT16_C( 20.122) } }, + { { SIMDE_FLOAT16_VALUE( - 14.743), SIMDE_FLOAT16_VALUE( 96.869), SIMDE_FLOAT16_VALUE( 35.732), SIMDE_FLOAT16_VALUE( - 11.204), + SIMDE_FLOAT16_VALUE( - 36.507), SIMDE_FLOAT16_VALUE( - 87.762), SIMDE_FLOAT16_VALUE( - 30.140), SIMDE_FLOAT16_VALUE( 40.553) }, + { SIMDE_FLOAT16_VALUE( 90.636), SIMDE_FLOAT16_VALUE( - 74.102), SIMDE_FLOAT16_VALUE( - 11.935), SIMDE_FLOAT16_VALUE( 76.173), + SIMDE_FLOAT16_VALUE( - 60.016), SIMDE_FLOAT16_VALUE( - 12.468), SIMDE_FLOAT16_VALUE( - 42.341), SIMDE_FLOAT16_VALUE( - 48.188) }, + { SIMDE_FLOAT16_VALUE( - 65.064), SIMDE_FLOAT16_VALUE( - 77.067), SIMDE_FLOAT16_VALUE( - 3.798), SIMDE_FLOAT16_VALUE( 78.248), + SIMDE_FLOAT16_VALUE( - 75.705), SIMDE_FLOAT16_VALUE( - 81.300), SIMDE_FLOAT16_VALUE( 41.755), SIMDE_FLOAT16_VALUE( 0.822) }, + { SIMDE_FLOAT16_VALUE( 45.696), SIMDE_FLOAT16_VALUE( - 91.718), SIMDE_FLOAT16_VALUE( 81.433), SIMDE_FLOAT16_VALUE( 42.239), + SIMDE_FLOAT16_VALUE( 70.791), SIMDE_FLOAT16_VALUE( 21.361), SIMDE_FLOAT16_VALUE( 51.896), SIMDE_FLOAT16_VALUE( - 38.175) }, + { SIMDE_FLOAT16_VALUE( - 14.743), SIMDE_FLOAT16_VALUE( 90.636), SIMDE_FLOAT16_VALUE( - 65.064), SIMDE_FLOAT16_VALUE( 45.696), + SIMDE_FLOAT16_VALUE( 96.869), SIMDE_FLOAT16_VALUE( - 74.102), SIMDE_FLOAT16_VALUE( - 77.067), SIMDE_FLOAT16_VALUE( - 91.718), + SIMDE_FLOAT16_VALUE( 35.732), SIMDE_FLOAT16_VALUE( - 11.935), SIMDE_FLOAT16_VALUE( - 3.798), SIMDE_FLOAT16_VALUE( 81.433), + SIMDE_FLOAT16_VALUE( - 11.204), SIMDE_FLOAT16_VALUE( 76.173), SIMDE_FLOAT16_VALUE( 78.248), SIMDE_FLOAT16_VALUE( 42.239), + SIMDE_FLOAT16_VALUE( - 36.507), SIMDE_FLOAT16_VALUE( - 60.016), SIMDE_FLOAT16_VALUE( - 75.705), SIMDE_FLOAT16_VALUE( 70.791), + SIMDE_FLOAT16_VALUE( - 87.762), SIMDE_FLOAT16_VALUE( - 12.468), SIMDE_FLOAT16_VALUE( - 81.300), SIMDE_FLOAT16_VALUE( 21.361), + SIMDE_FLOAT16_VALUE( - 30.140), SIMDE_FLOAT16_VALUE( - 42.341), SIMDE_FLOAT16_VALUE( 41.755), SIMDE_FLOAT16_VALUE( 51.896), + SIMDE_FLOAT16_VALUE( 40.553), SIMDE_FLOAT16_VALUE( - 48.188), SIMDE_FLOAT16_VALUE( 0.822), SIMDE_FLOAT16_VALUE( - 38.175) } }, + { { SIMDE_FLOAT16_VALUE( 20.836), SIMDE_FLOAT16_VALUE( - 6.255), SIMDE_FLOAT16_VALUE( 79.168), SIMDE_FLOAT16_VALUE( 29.039), + SIMDE_FLOAT16_VALUE( 96.927), SIMDE_FLOAT16_VALUE( 41.696), SIMDE_FLOAT16_VALUE( - 42.924), SIMDE_FLOAT16_VALUE( - 7.066) }, + { SIMDE_FLOAT16_VALUE( 14.370), SIMDE_FLOAT16_VALUE( 7.192), SIMDE_FLOAT16_VALUE( - 88.540), SIMDE_FLOAT16_VALUE( 13.116), + SIMDE_FLOAT16_VALUE( 64.603), SIMDE_FLOAT16_VALUE( - 63.088), SIMDE_FLOAT16_VALUE( - 11.758), SIMDE_FLOAT16_VALUE( 14.850) }, + { SIMDE_FLOAT16_VALUE( 27.807), SIMDE_FLOAT16_VALUE( 11.530), SIMDE_FLOAT16_VALUE( - 32.331), SIMDE_FLOAT16_VALUE( - 44.759), + SIMDE_FLOAT16_VALUE( 24.258), SIMDE_FLOAT16_VALUE( - 86.786), SIMDE_FLOAT16_VALUE( - 94.826), SIMDE_FLOAT16_VALUE( 48.908) }, + { SIMDE_FLOAT16_VALUE( 20.925), SIMDE_FLOAT16_VALUE( 99.983), SIMDE_FLOAT16_VALUE( - 59.823), SIMDE_FLOAT16_VALUE( 71.958), + SIMDE_FLOAT16_VALUE( 63.444), SIMDE_FLOAT16_VALUE( 71.547), SIMDE_FLOAT16_VALUE( 68.404), SIMDE_FLOAT16_VALUE( 32.576) }, + { SIMDE_FLOAT16_VALUE( 20.836), SIMDE_FLOAT16_VALUE( 14.370), SIMDE_FLOAT16_VALUE( 27.807), SIMDE_FLOAT16_VALUE( 20.925), + SIMDE_FLOAT16_VALUE( - 6.255), SIMDE_FLOAT16_VALUE( 7.192), SIMDE_FLOAT16_VALUE( 11.530), SIMDE_FLOAT16_VALUE( 99.983), + SIMDE_FLOAT16_VALUE( 79.168), SIMDE_FLOAT16_VALUE( - 88.540), SIMDE_FLOAT16_VALUE( - 32.331), SIMDE_FLOAT16_VALUE( - 59.823), + SIMDE_FLOAT16_VALUE( 29.039), SIMDE_FLOAT16_VALUE( 13.116), SIMDE_FLOAT16_VALUE( - 44.759), SIMDE_FLOAT16_VALUE( 71.958), + SIMDE_FLOAT16_VALUE( 96.927), SIMDE_FLOAT16_VALUE( 64.603), SIMDE_FLOAT16_VALUE( 24.258), SIMDE_FLOAT16_VALUE( 63.444), + SIMDE_FLOAT16_VALUE( 41.696), SIMDE_FLOAT16_VALUE( - 63.088), SIMDE_FLOAT16_VALUE( - 86.786), SIMDE_FLOAT16_VALUE( 71.547), + SIMDE_FLOAT16_VALUE( - 42.924), SIMDE_FLOAT16_VALUE( - 11.758), SIMDE_FLOAT16_VALUE( - 94.826), SIMDE_FLOAT16_VALUE( 68.404), + SIMDE_FLOAT16_VALUE( - 7.066), SIMDE_FLOAT16_VALUE( 14.850), SIMDE_FLOAT16_VALUE( 48.908), SIMDE_FLOAT16_VALUE( 32.576) } }, + { { SIMDE_FLOAT16_VALUE( - 98.651), SIMDE_FLOAT16_VALUE( 8.370), SIMDE_FLOAT16_VALUE( 5.212), SIMDE_FLOAT16_VALUE( - 39.002), + SIMDE_FLOAT16_VALUE( - 50.855), SIMDE_FLOAT16_VALUE( 9.832), SIMDE_FLOAT16_VALUE( 64.681), SIMDE_FLOAT16_VALUE( 53.110) }, + { SIMDE_FLOAT16_VALUE( 56.471), SIMDE_FLOAT16_VALUE( 66.543), SIMDE_FLOAT16_VALUE( - 19.108), SIMDE_FLOAT16_VALUE( 57.884), + SIMDE_FLOAT16_VALUE( 8.069), SIMDE_FLOAT16_VALUE( - 92.092), SIMDE_FLOAT16_VALUE( 21.120), SIMDE_FLOAT16_VALUE( - 28.746) }, + { SIMDE_FLOAT16_VALUE( - 33.477), SIMDE_FLOAT16_VALUE( 94.776), SIMDE_FLOAT16_VALUE( 39.423), SIMDE_FLOAT16_VALUE( - 14.126), + SIMDE_FLOAT16_VALUE( - 86.375), SIMDE_FLOAT16_VALUE( - 35.066), SIMDE_FLOAT16_VALUE( 93.908), SIMDE_FLOAT16_VALUE( - 70.598) }, + { SIMDE_FLOAT16_VALUE( - 47.494), SIMDE_FLOAT16_VALUE( - 73.328), SIMDE_FLOAT16_VALUE( - 6.515), SIMDE_FLOAT16_VALUE( 64.596), + SIMDE_FLOAT16_VALUE( - 85.478), SIMDE_FLOAT16_VALUE( - 93.767), SIMDE_FLOAT16_VALUE( - 96.092), SIMDE_FLOAT16_VALUE( - 43.609) }, + { SIMDE_FLOAT16_VALUE( - 98.651), SIMDE_FLOAT16_VALUE( 56.471), SIMDE_FLOAT16_VALUE( - 33.477), SIMDE_FLOAT16_VALUE( - 47.494), + SIMDE_FLOAT16_VALUE( 8.370), SIMDE_FLOAT16_VALUE( 66.543), SIMDE_FLOAT16_VALUE( 94.776), SIMDE_FLOAT16_VALUE( - 73.328), + SIMDE_FLOAT16_VALUE( 5.212), SIMDE_FLOAT16_VALUE( - 19.108), SIMDE_FLOAT16_VALUE( 39.423), SIMDE_FLOAT16_VALUE( - 6.515), + SIMDE_FLOAT16_VALUE( - 39.002), SIMDE_FLOAT16_VALUE( 57.884), SIMDE_FLOAT16_VALUE( - 14.126), SIMDE_FLOAT16_VALUE( 64.596), + SIMDE_FLOAT16_VALUE( - 50.855), SIMDE_FLOAT16_VALUE( 8.069), SIMDE_FLOAT16_VALUE( - 86.375), SIMDE_FLOAT16_VALUE( - 85.478), + SIMDE_FLOAT16_VALUE( 9.832), SIMDE_FLOAT16_VALUE( - 92.092), SIMDE_FLOAT16_VALUE( - 35.066), SIMDE_FLOAT16_VALUE( - 93.767), + SIMDE_FLOAT16_VALUE( 64.681), SIMDE_FLOAT16_VALUE( 21.120), SIMDE_FLOAT16_VALUE( 93.908), SIMDE_FLOAT16_VALUE( - 96.092), + SIMDE_FLOAT16_VALUE( 53.110), SIMDE_FLOAT16_VALUE( - 28.746), SIMDE_FLOAT16_VALUE( - 70.598), SIMDE_FLOAT16_VALUE( - 43.609) } }, + { { SIMDE_FLOAT16_VALUE( 32.009), SIMDE_FLOAT16_VALUE( - 70.333), SIMDE_FLOAT16_VALUE( 5.538), SIMDE_FLOAT16_VALUE( 82.520), + SIMDE_FLOAT16_VALUE( - 40.966), SIMDE_FLOAT16_VALUE( - 11.607), SIMDE_FLOAT16_VALUE( - 54.581), SIMDE_FLOAT16_VALUE( 51.136) }, + { SIMDE_FLOAT16_VALUE( - 80.277), SIMDE_FLOAT16_VALUE( 70.486), SIMDE_FLOAT16_VALUE( - 49.720), SIMDE_FLOAT16_VALUE( 84.405), + SIMDE_FLOAT16_VALUE( - 38.234), SIMDE_FLOAT16_VALUE( 47.061), SIMDE_FLOAT16_VALUE( - 27.953), SIMDE_FLOAT16_VALUE( - 35.272) }, + { SIMDE_FLOAT16_VALUE( 37.433), SIMDE_FLOAT16_VALUE( 84.527), SIMDE_FLOAT16_VALUE( 41.358), SIMDE_FLOAT16_VALUE( - 69.610), + SIMDE_FLOAT16_VALUE( 51.678), SIMDE_FLOAT16_VALUE( - 94.404), SIMDE_FLOAT16_VALUE( - 16.678), SIMDE_FLOAT16_VALUE( 76.803) }, + { SIMDE_FLOAT16_VALUE( - 82.082), SIMDE_FLOAT16_VALUE( - 90.814), SIMDE_FLOAT16_VALUE( - 62.857), SIMDE_FLOAT16_VALUE( - 73.589), + SIMDE_FLOAT16_VALUE( 77.514), SIMDE_FLOAT16_VALUE( - 67.143), SIMDE_FLOAT16_VALUE( - 66.907), SIMDE_FLOAT16_VALUE( 66.753) }, + { SIMDE_FLOAT16_VALUE( 32.009), SIMDE_FLOAT16_VALUE( - 80.277), SIMDE_FLOAT16_VALUE( 37.433), SIMDE_FLOAT16_VALUE( - 82.082), + SIMDE_FLOAT16_VALUE( - 70.333), SIMDE_FLOAT16_VALUE( 70.486), SIMDE_FLOAT16_VALUE( 84.527), SIMDE_FLOAT16_VALUE( - 90.814), + SIMDE_FLOAT16_VALUE( 5.538), SIMDE_FLOAT16_VALUE( - 49.720), SIMDE_FLOAT16_VALUE( 41.358), SIMDE_FLOAT16_VALUE( - 62.857), + SIMDE_FLOAT16_VALUE( 82.520), SIMDE_FLOAT16_VALUE( 84.405), SIMDE_FLOAT16_VALUE( - 69.610), SIMDE_FLOAT16_VALUE( - 73.589), + SIMDE_FLOAT16_VALUE( - 40.966), SIMDE_FLOAT16_VALUE( - 38.234), SIMDE_FLOAT16_VALUE( 51.678), SIMDE_FLOAT16_VALUE( 77.514), + SIMDE_FLOAT16_VALUE( - 11.607), SIMDE_FLOAT16_VALUE( 47.061), SIMDE_FLOAT16_VALUE( - 94.404), SIMDE_FLOAT16_VALUE( - 67.143), + SIMDE_FLOAT16_VALUE( - 54.581), SIMDE_FLOAT16_VALUE( - 27.953), SIMDE_FLOAT16_VALUE( - 16.678), SIMDE_FLOAT16_VALUE( - 66.907), + SIMDE_FLOAT16_VALUE( 51.136), SIMDE_FLOAT16_VALUE( - 35.272), SIMDE_FLOAT16_VALUE( 76.803), SIMDE_FLOAT16_VALUE( 66.753) } }, + { { SIMDE_FLOAT16_VALUE( 13.527), SIMDE_FLOAT16_VALUE( 15.879), SIMDE_FLOAT16_VALUE( - 25.658), SIMDE_FLOAT16_VALUE( 64.222), + SIMDE_FLOAT16_VALUE( 72.758), SIMDE_FLOAT16_VALUE( 17.152), SIMDE_FLOAT16_VALUE( 61.595), SIMDE_FLOAT16_VALUE( - 25.744) }, + { SIMDE_FLOAT16_VALUE( 73.965), SIMDE_FLOAT16_VALUE( 66.305), SIMDE_FLOAT16_VALUE( - 82.679), SIMDE_FLOAT16_VALUE( - 48.114), + SIMDE_FLOAT16_VALUE( 35.804), SIMDE_FLOAT16_VALUE( 11.885), SIMDE_FLOAT16_VALUE( - 98.287), SIMDE_FLOAT16_VALUE( 61.933) }, + { SIMDE_FLOAT16_VALUE( - 79.049), SIMDE_FLOAT16_VALUE( 99.270), SIMDE_FLOAT16_VALUE( - 46.729), SIMDE_FLOAT16_VALUE( 30.358), + SIMDE_FLOAT16_VALUE( 46.057), SIMDE_FLOAT16_VALUE( - 87.368), SIMDE_FLOAT16_VALUE( 82.236), SIMDE_FLOAT16_VALUE( - 81.438) }, + { SIMDE_FLOAT16_VALUE( 31.502), SIMDE_FLOAT16_VALUE( 72.068), SIMDE_FLOAT16_VALUE( - 3.689), SIMDE_FLOAT16_VALUE( 42.230), + SIMDE_FLOAT16_VALUE( 9.827), SIMDE_FLOAT16_VALUE( 27.830), SIMDE_FLOAT16_VALUE( - 62.111), SIMDE_FLOAT16_VALUE( - 46.971) }, + { SIMDE_FLOAT16_VALUE( 13.527), SIMDE_FLOAT16_VALUE( 73.965), SIMDE_FLOAT16_VALUE( - 79.049), SIMDE_FLOAT16_VALUE( 31.502), + SIMDE_FLOAT16_VALUE( 15.879), SIMDE_FLOAT16_VALUE( 66.305), SIMDE_FLOAT16_VALUE( 99.270), SIMDE_FLOAT16_VALUE( 72.068), + SIMDE_FLOAT16_VALUE( - 25.658), SIMDE_FLOAT16_VALUE( - 82.679), SIMDE_FLOAT16_VALUE( - 46.729), SIMDE_FLOAT16_VALUE( - 3.689), + SIMDE_FLOAT16_VALUE( 64.222), SIMDE_FLOAT16_VALUE( - 48.114), SIMDE_FLOAT16_VALUE( 30.358), SIMDE_FLOAT16_VALUE( 42.230), + SIMDE_FLOAT16_VALUE( 72.758), SIMDE_FLOAT16_VALUE( 35.804), SIMDE_FLOAT16_VALUE( 46.057), SIMDE_FLOAT16_VALUE( 9.827), + SIMDE_FLOAT16_VALUE( 17.152), SIMDE_FLOAT16_VALUE( 11.885), SIMDE_FLOAT16_VALUE( - 87.368), SIMDE_FLOAT16_VALUE( 27.830), + SIMDE_FLOAT16_VALUE( 61.595), SIMDE_FLOAT16_VALUE( - 98.287), SIMDE_FLOAT16_VALUE( 82.236), SIMDE_FLOAT16_VALUE( - 62.111), + SIMDE_FLOAT16_VALUE( - 25.744), SIMDE_FLOAT16_VALUE( 61.933), SIMDE_FLOAT16_VALUE( - 81.438), SIMDE_FLOAT16_VALUE( - 46.971) } }, + { { SIMDE_FLOAT16_VALUE( - 98.937), SIMDE_FLOAT16_VALUE( - 75.185), SIMDE_FLOAT16_VALUE( 51.461), SIMDE_FLOAT16_VALUE( 34.040), + SIMDE_FLOAT16_VALUE( - 18.490), SIMDE_FLOAT16_VALUE( 2.435), SIMDE_FLOAT16_VALUE( - 31.936), SIMDE_FLOAT16_VALUE( - 44.440) }, + { SIMDE_FLOAT16_VALUE( 51.617), SIMDE_FLOAT16_VALUE( 92.309), SIMDE_FLOAT16_VALUE( - 32.479), SIMDE_FLOAT16_VALUE( 64.487), + SIMDE_FLOAT16_VALUE( 33.205), SIMDE_FLOAT16_VALUE( 26.250), SIMDE_FLOAT16_VALUE( - 8.956), SIMDE_FLOAT16_VALUE( 43.765) }, + { SIMDE_FLOAT16_VALUE( - 80.764), SIMDE_FLOAT16_VALUE( - 42.445), SIMDE_FLOAT16_VALUE( - 77.677), SIMDE_FLOAT16_VALUE( 54.417), + SIMDE_FLOAT16_VALUE( - 58.892), SIMDE_FLOAT16_VALUE( 67.912), SIMDE_FLOAT16_VALUE( - 19.769), SIMDE_FLOAT16_VALUE( - 94.018) }, + { SIMDE_FLOAT16_VALUE( 32.228), SIMDE_FLOAT16_VALUE( - 45.404), SIMDE_FLOAT16_VALUE( - 11.380), SIMDE_FLOAT16_VALUE( 85.317), + SIMDE_FLOAT16_VALUE( 32.872), SIMDE_FLOAT16_VALUE( - 10.946), SIMDE_FLOAT16_VALUE( 93.337), SIMDE_FLOAT16_VALUE( 94.934) }, + { SIMDE_FLOAT16_VALUE( - 98.937), SIMDE_FLOAT16_VALUE( 51.617), SIMDE_FLOAT16_VALUE( - 80.764), SIMDE_FLOAT16_VALUE( 32.228), + SIMDE_FLOAT16_VALUE( - 75.185), SIMDE_FLOAT16_VALUE( 92.309), SIMDE_FLOAT16_VALUE( - 42.445), SIMDE_FLOAT16_VALUE( - 45.404), + SIMDE_FLOAT16_VALUE( 51.461), SIMDE_FLOAT16_VALUE( - 32.479), SIMDE_FLOAT16_VALUE( - 77.677), SIMDE_FLOAT16_VALUE( - 11.380), + SIMDE_FLOAT16_VALUE( 34.040), SIMDE_FLOAT16_VALUE( 64.487), SIMDE_FLOAT16_VALUE( 54.417), SIMDE_FLOAT16_VALUE( 85.317), + SIMDE_FLOAT16_VALUE( - 18.490), SIMDE_FLOAT16_VALUE( 33.205), SIMDE_FLOAT16_VALUE( - 58.892), SIMDE_FLOAT16_VALUE( 32.872), + SIMDE_FLOAT16_VALUE( 2.435), SIMDE_FLOAT16_VALUE( 26.250), SIMDE_FLOAT16_VALUE( 67.912), SIMDE_FLOAT16_VALUE( - 10.946), + SIMDE_FLOAT16_VALUE( - 31.936), SIMDE_FLOAT16_VALUE( - 8.956), SIMDE_FLOAT16_VALUE( - 19.769), SIMDE_FLOAT16_VALUE( 93.337), + SIMDE_FLOAT16_VALUE( - 44.440), SIMDE_FLOAT16_VALUE( 43.765), SIMDE_FLOAT16_VALUE( - 94.018), SIMDE_FLOAT16_VALUE( 94.934) } }, + { { SIMDE_FLOAT16_VALUE( - 82.721), SIMDE_FLOAT16_VALUE( - 5.083), SIMDE_FLOAT16_VALUE( 28.116), SIMDE_FLOAT16_VALUE( - 2.078), + SIMDE_FLOAT16_VALUE( - 8.045), SIMDE_FLOAT16_VALUE( 98.088), SIMDE_FLOAT16_VALUE( 77.205), SIMDE_FLOAT16_VALUE( - 86.702) }, + { SIMDE_FLOAT16_VALUE( - 75.686), SIMDE_FLOAT16_VALUE( - 67.078), SIMDE_FLOAT16_VALUE( 38.647), SIMDE_FLOAT16_VALUE( - 7.111), + SIMDE_FLOAT16_VALUE( - 74.933), SIMDE_FLOAT16_VALUE( - 54.055), SIMDE_FLOAT16_VALUE( - 51.905), SIMDE_FLOAT16_VALUE( 53.734) }, + { SIMDE_FLOAT16_VALUE( - 39.474), SIMDE_FLOAT16_VALUE( 89.193), SIMDE_FLOAT16_VALUE( - 72.210), SIMDE_FLOAT16_VALUE( - 42.032), + SIMDE_FLOAT16_VALUE( 61.321), SIMDE_FLOAT16_VALUE( - 12.021), SIMDE_FLOAT16_VALUE( - 35.830), SIMDE_FLOAT16_VALUE( - 85.851) }, + { SIMDE_FLOAT16_VALUE( 64.970), SIMDE_FLOAT16_VALUE( 85.757), SIMDE_FLOAT16_VALUE( 28.273), SIMDE_FLOAT16_VALUE( 77.789), + SIMDE_FLOAT16_VALUE( 50.825), SIMDE_FLOAT16_VALUE( 95.876), SIMDE_FLOAT16_VALUE( 44.735), SIMDE_FLOAT16_VALUE( - 28.570) }, + { SIMDE_FLOAT16_VALUE( - 82.721), SIMDE_FLOAT16_VALUE( - 75.686), SIMDE_FLOAT16_VALUE( - 39.474), SIMDE_FLOAT16_VALUE( 64.970), + SIMDE_FLOAT16_VALUE( - 5.083), SIMDE_FLOAT16_VALUE( - 67.078), SIMDE_FLOAT16_VALUE( 89.193), SIMDE_FLOAT16_VALUE( 85.757), + SIMDE_FLOAT16_VALUE( 28.116), SIMDE_FLOAT16_VALUE( 38.647), SIMDE_FLOAT16_VALUE( - 72.210), SIMDE_FLOAT16_VALUE( 28.273), + SIMDE_FLOAT16_VALUE( - 2.078), SIMDE_FLOAT16_VALUE( - 7.111), SIMDE_FLOAT16_VALUE( - 42.032), SIMDE_FLOAT16_VALUE( 77.789), + SIMDE_FLOAT16_VALUE( - 8.045), SIMDE_FLOAT16_VALUE( - 74.933), SIMDE_FLOAT16_VALUE( 61.321), SIMDE_FLOAT16_VALUE( 50.825), + SIMDE_FLOAT16_VALUE( 98.088), SIMDE_FLOAT16_VALUE( - 54.055), SIMDE_FLOAT16_VALUE( - 12.021), SIMDE_FLOAT16_VALUE( 95.876), + SIMDE_FLOAT16_VALUE( 77.205), SIMDE_FLOAT16_VALUE( - 51.905), SIMDE_FLOAT16_VALUE( - 35.830), SIMDE_FLOAT16_VALUE( 44.735), + SIMDE_FLOAT16_VALUE( - 86.702), SIMDE_FLOAT16_VALUE( 53.734), SIMDE_FLOAT16_VALUE( - 85.851), SIMDE_FLOAT16_VALUE( - 28.570) } }, + { { SIMDE_FLOAT16_VALUE( 56.021), SIMDE_FLOAT16_VALUE( - 47.189), SIMDE_FLOAT16_VALUE( 34.633), SIMDE_FLOAT16_VALUE( - 48.482), + SIMDE_FLOAT16_VALUE( - 13.024), SIMDE_FLOAT16_VALUE( - 68.164), SIMDE_FLOAT16_VALUE( - 38.493), SIMDE_FLOAT16_VALUE( - 96.972) }, + { SIMDE_FLOAT16_VALUE( 14.297), SIMDE_FLOAT16_VALUE( 60.328), SIMDE_FLOAT16_VALUE( - 55.132), SIMDE_FLOAT16_VALUE( 61.549), + SIMDE_FLOAT16_VALUE( 25.753), SIMDE_FLOAT16_VALUE( 72.855), SIMDE_FLOAT16_VALUE( 28.394), SIMDE_FLOAT16_VALUE( 58.315) }, + { SIMDE_FLOAT16_VALUE( - 52.297), SIMDE_FLOAT16_VALUE( - 59.309), SIMDE_FLOAT16_VALUE( 39.064), SIMDE_FLOAT16_VALUE( 92.546), + SIMDE_FLOAT16_VALUE( 29.222), SIMDE_FLOAT16_VALUE( 18.830), SIMDE_FLOAT16_VALUE( 78.006), SIMDE_FLOAT16_VALUE( - 34.477) }, + { SIMDE_FLOAT16_VALUE( 48.515), SIMDE_FLOAT16_VALUE( 6.778), SIMDE_FLOAT16_VALUE( 83.115), SIMDE_FLOAT16_VALUE( - 15.075), + SIMDE_FLOAT16_VALUE( - 64.544), SIMDE_FLOAT16_VALUE( - 5.615), SIMDE_FLOAT16_VALUE( - 79.529), SIMDE_FLOAT16_VALUE( - 20.122) }, + { SIMDE_FLOAT16_VALUE( 56.021), SIMDE_FLOAT16_VALUE( 14.297), SIMDE_FLOAT16_VALUE( - 52.297), SIMDE_FLOAT16_VALUE( 48.515), + SIMDE_FLOAT16_VALUE( - 47.189), SIMDE_FLOAT16_VALUE( 60.328), SIMDE_FLOAT16_VALUE( - 59.309), SIMDE_FLOAT16_VALUE( 6.778), + SIMDE_FLOAT16_VALUE( 34.633), SIMDE_FLOAT16_VALUE( - 55.132), SIMDE_FLOAT16_VALUE( 39.064), SIMDE_FLOAT16_VALUE( 83.115), + SIMDE_FLOAT16_VALUE( - 48.482), SIMDE_FLOAT16_VALUE( 61.549), SIMDE_FLOAT16_VALUE( 92.546), SIMDE_FLOAT16_VALUE( - 15.075), + SIMDE_FLOAT16_VALUE( - 13.024), SIMDE_FLOAT16_VALUE( 25.753), SIMDE_FLOAT16_VALUE( 29.222), SIMDE_FLOAT16_VALUE( - 64.544), + SIMDE_FLOAT16_VALUE( - 68.164), SIMDE_FLOAT16_VALUE( 72.855), SIMDE_FLOAT16_VALUE( 18.830), SIMDE_FLOAT16_VALUE( - 5.615), + SIMDE_FLOAT16_VALUE( - 38.493), SIMDE_FLOAT16_VALUE( 28.394), SIMDE_FLOAT16_VALUE( 78.006), SIMDE_FLOAT16_VALUE( - 79.529), + SIMDE_FLOAT16_VALUE( - 96.972), SIMDE_FLOAT16_VALUE( 58.315), SIMDE_FLOAT16_VALUE( - 34.477), SIMDE_FLOAT16_VALUE( - 20.122) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -2437,6 +2457,24 @@ test_simde_vst4q_f16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_float16x8_t r0 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x8_t r1 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x8_t r2 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x8_t r3 = simde_test_arm_neon_random_f16x8(-100.0f, 100.0f); + simde_float16x32_t a = simde_vst4q_f16(r0, r1, r2, r3); + + simde_test_arm_neon_write_f16x8(2, r0, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f16x8(2, r1, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r2, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f16x32(2, a, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int diff --git a/test/arm/neon/st4_lane.c b/test/arm/neon/st4_lane.c index 245afbe93..bc0cd96de 100644 --- a/test/arm/neon/st4_lane.c +++ b/test/arm/neon/st4_lane.c @@ -529,58 +529,58 @@ test_simde_vst4_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst4_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16_t a[4]; simde_float16_t val[4][4]; int lane; } test_vec[] = { - { { SIMDE_FLOAT16_C( 60.083), SIMDE_FLOAT16_C( 58.683), SIMDE_FLOAT16_C( 26.432), SIMDE_FLOAT16_C( 26.942) }, - { { SIMDE_FLOAT16_C( 51.260), SIMDE_FLOAT16_C( 43.575), SIMDE_FLOAT16_C( 60.083), SIMDE_FLOAT16_C( 6.426) }, - { -SIMDE_FLOAT16_C( 54.660), -SIMDE_FLOAT16_C( 98.247), SIMDE_FLOAT16_C( 58.683), -SIMDE_FLOAT16_C( 59.385) }, - { -SIMDE_FLOAT16_C( 2.564), SIMDE_FLOAT16_C( 8.979), SIMDE_FLOAT16_C( 26.432), SIMDE_FLOAT16_C( 65.683) }, - { -SIMDE_FLOAT16_C( 27.627), -SIMDE_FLOAT16_C( 39.374), SIMDE_FLOAT16_C( 26.942), SIMDE_FLOAT16_C( 46.466) } }, + { { SIMDE_FLOAT16_VALUE( 60.083), SIMDE_FLOAT16_VALUE( 58.683), SIMDE_FLOAT16_VALUE( 26.432), SIMDE_FLOAT16_VALUE( 26.942) }, + { { SIMDE_FLOAT16_VALUE( 51.260), SIMDE_FLOAT16_VALUE( 43.575), SIMDE_FLOAT16_VALUE( 60.083), SIMDE_FLOAT16_VALUE( 6.426) }, + { SIMDE_FLOAT16_VALUE( - 54.660), SIMDE_FLOAT16_VALUE( - 98.247), SIMDE_FLOAT16_VALUE( 58.683), SIMDE_FLOAT16_VALUE( - 59.385) }, + { SIMDE_FLOAT16_VALUE( - 2.564), SIMDE_FLOAT16_VALUE( 8.979), SIMDE_FLOAT16_VALUE( 26.432), SIMDE_FLOAT16_VALUE( 65.683) }, + { SIMDE_FLOAT16_VALUE( - 27.627), SIMDE_FLOAT16_VALUE( - 39.374), SIMDE_FLOAT16_VALUE( 26.942), SIMDE_FLOAT16_VALUE( 46.466) } }, INT8_C( 2) }, - { { -SIMDE_FLOAT16_C( 37.067), SIMDE_FLOAT16_C( 55.701), -SIMDE_FLOAT16_C( 31.523), SIMDE_FLOAT16_C( 65.176) }, - { { -SIMDE_FLOAT16_C( 6.453), SIMDE_FLOAT16_C( 99.709), -SIMDE_FLOAT16_C( 82.488), -SIMDE_FLOAT16_C( 37.067) }, - { SIMDE_FLOAT16_C( 54.797), SIMDE_FLOAT16_C( 11.286), -SIMDE_FLOAT16_C( 73.371), SIMDE_FLOAT16_C( 55.701) }, - { -SIMDE_FLOAT16_C( 24.340), SIMDE_FLOAT16_C( 63.362), SIMDE_FLOAT16_C( 5.424), -SIMDE_FLOAT16_C( 31.523) }, - { -SIMDE_FLOAT16_C( 43.884), SIMDE_FLOAT16_C( 18.129), SIMDE_FLOAT16_C( 58.203), SIMDE_FLOAT16_C( 65.176) } }, + { { SIMDE_FLOAT16_VALUE( - 37.067), SIMDE_FLOAT16_VALUE( 55.701), SIMDE_FLOAT16_VALUE( - 31.523), SIMDE_FLOAT16_VALUE( 65.176) }, + { { SIMDE_FLOAT16_VALUE( - 6.453), SIMDE_FLOAT16_VALUE( 99.709), SIMDE_FLOAT16_VALUE( - 82.488), SIMDE_FLOAT16_VALUE( - 37.067) }, + { SIMDE_FLOAT16_VALUE( 54.797), SIMDE_FLOAT16_VALUE( 11.286), SIMDE_FLOAT16_VALUE( - 73.371), SIMDE_FLOAT16_VALUE( 55.701) }, + { SIMDE_FLOAT16_VALUE( - 24.340), SIMDE_FLOAT16_VALUE( 63.362), SIMDE_FLOAT16_VALUE( 5.424), SIMDE_FLOAT16_VALUE( - 31.523) }, + { SIMDE_FLOAT16_VALUE( - 43.884), SIMDE_FLOAT16_VALUE( 18.129), SIMDE_FLOAT16_VALUE( 58.203), SIMDE_FLOAT16_VALUE( 65.176) } }, INT8_C( 3) }, - { { -SIMDE_FLOAT16_C( 28.720), -SIMDE_FLOAT16_C( 49.573), SIMDE_FLOAT16_C( 24.949), SIMDE_FLOAT16_C( 49.280) }, - { { SIMDE_FLOAT16_C( 61.070), -SIMDE_FLOAT16_C( 5.625), -SIMDE_FLOAT16_C( 72.174), -SIMDE_FLOAT16_C( 28.720) }, - { SIMDE_FLOAT16_C( 40.072), -SIMDE_FLOAT16_C( 46.993), -SIMDE_FLOAT16_C( 84.710), -SIMDE_FLOAT16_C( 49.573) }, - { SIMDE_FLOAT16_C( 77.467), -SIMDE_FLOAT16_C( 72.848), -SIMDE_FLOAT16_C( 83.441), SIMDE_FLOAT16_C( 24.949) }, - { -SIMDE_FLOAT16_C( 55.436), -SIMDE_FLOAT16_C( 24.861), SIMDE_FLOAT16_C( 3.198), SIMDE_FLOAT16_C( 49.280) } }, + { { SIMDE_FLOAT16_VALUE( - 28.720), SIMDE_FLOAT16_VALUE( - 49.573), SIMDE_FLOAT16_VALUE( 24.949), SIMDE_FLOAT16_VALUE( 49.280) }, + { { SIMDE_FLOAT16_VALUE( 61.070), SIMDE_FLOAT16_VALUE( - 5.625), SIMDE_FLOAT16_VALUE( - 72.174), SIMDE_FLOAT16_VALUE( - 28.720) }, + { SIMDE_FLOAT16_VALUE( 40.072), SIMDE_FLOAT16_VALUE( - 46.993), SIMDE_FLOAT16_VALUE( - 84.710), SIMDE_FLOAT16_VALUE( - 49.573) }, + { SIMDE_FLOAT16_VALUE( 77.467), SIMDE_FLOAT16_VALUE( - 72.848), SIMDE_FLOAT16_VALUE( - 83.441), SIMDE_FLOAT16_VALUE( 24.949) }, + { SIMDE_FLOAT16_VALUE( - 55.436), SIMDE_FLOAT16_VALUE( - 24.861), SIMDE_FLOAT16_VALUE( 3.198), SIMDE_FLOAT16_VALUE( 49.280) } }, INT8_C( 3) }, - { { SIMDE_FLOAT16_C( 51.625), SIMDE_FLOAT16_C( 97.892), -SIMDE_FLOAT16_C( 17.597), SIMDE_FLOAT16_C( 5.577) }, - { { SIMDE_FLOAT16_C( 33.135), SIMDE_FLOAT16_C( 16.293), -SIMDE_FLOAT16_C( 26.543), SIMDE_FLOAT16_C( 51.625) }, - { SIMDE_FLOAT16_C( 81.686), SIMDE_FLOAT16_C( 51.696), -SIMDE_FLOAT16_C( 3.389), SIMDE_FLOAT16_C( 97.892) }, - { -SIMDE_FLOAT16_C( 88.988), SIMDE_FLOAT16_C( 33.960), -SIMDE_FLOAT16_C( 25.360), -SIMDE_FLOAT16_C( 17.597) }, - { -SIMDE_FLOAT16_C( 9.130), -SIMDE_FLOAT16_C( 32.157), SIMDE_FLOAT16_C( 22.866), SIMDE_FLOAT16_C( 5.577) } }, + { { SIMDE_FLOAT16_VALUE( 51.625), SIMDE_FLOAT16_VALUE( 97.892), SIMDE_FLOAT16_VALUE( - 17.597), SIMDE_FLOAT16_VALUE( 5.577) }, + { { SIMDE_FLOAT16_VALUE( 33.135), SIMDE_FLOAT16_VALUE( 16.293), SIMDE_FLOAT16_VALUE( - 26.543), SIMDE_FLOAT16_VALUE( 51.625) }, + { SIMDE_FLOAT16_VALUE( 81.686), SIMDE_FLOAT16_VALUE( 51.696), SIMDE_FLOAT16_VALUE( - 3.389), SIMDE_FLOAT16_VALUE( 97.892) }, + { SIMDE_FLOAT16_VALUE( - 88.988), SIMDE_FLOAT16_VALUE( 33.960), SIMDE_FLOAT16_VALUE( - 25.360), SIMDE_FLOAT16_VALUE( - 17.597) }, + { SIMDE_FLOAT16_VALUE( - 9.130), SIMDE_FLOAT16_VALUE( - 32.157), SIMDE_FLOAT16_VALUE( 22.866), SIMDE_FLOAT16_VALUE( 5.577) } }, INT8_C( 3) }, - { { -SIMDE_FLOAT16_C( 15.048), SIMDE_FLOAT16_C( 26.311), -SIMDE_FLOAT16_C( 35.219), -SIMDE_FLOAT16_C( 43.204) }, - { { -SIMDE_FLOAT16_C( 15.048), SIMDE_FLOAT16_C( 61.508), SIMDE_FLOAT16_C( 97.472), SIMDE_FLOAT16_C( 66.229) }, - { SIMDE_FLOAT16_C( 26.311), -SIMDE_FLOAT16_C( 60.377), SIMDE_FLOAT16_C( 34.214), -SIMDE_FLOAT16_C( 88.647) }, - { -SIMDE_FLOAT16_C( 35.219), -SIMDE_FLOAT16_C( 74.942), -SIMDE_FLOAT16_C( 75.514), SIMDE_FLOAT16_C( 85.620) }, - { -SIMDE_FLOAT16_C( 43.204), -SIMDE_FLOAT16_C( 55.337), SIMDE_FLOAT16_C( 10.157), SIMDE_FLOAT16_C( 62.595) } }, + { { SIMDE_FLOAT16_VALUE( - 15.048), SIMDE_FLOAT16_VALUE( 26.311), SIMDE_FLOAT16_VALUE( - 35.219), SIMDE_FLOAT16_VALUE( - 43.204) }, + { { SIMDE_FLOAT16_VALUE( - 15.048), SIMDE_FLOAT16_VALUE( 61.508), SIMDE_FLOAT16_VALUE( 97.472), SIMDE_FLOAT16_VALUE( 66.229) }, + { SIMDE_FLOAT16_VALUE( 26.311), SIMDE_FLOAT16_VALUE( - 60.377), SIMDE_FLOAT16_VALUE( 34.214), SIMDE_FLOAT16_VALUE( - 88.647) }, + { SIMDE_FLOAT16_VALUE( - 35.219), SIMDE_FLOAT16_VALUE( - 74.942), SIMDE_FLOAT16_VALUE( - 75.514), SIMDE_FLOAT16_VALUE( 85.620) }, + { SIMDE_FLOAT16_VALUE( - 43.204), SIMDE_FLOAT16_VALUE( - 55.337), SIMDE_FLOAT16_VALUE( 10.157), SIMDE_FLOAT16_VALUE( 62.595) } }, INT8_C( 0) }, - { { SIMDE_FLOAT16_C( 38.903), -SIMDE_FLOAT16_C( 77.987), SIMDE_FLOAT16_C( 20.926), SIMDE_FLOAT16_C( 9.521) }, - { { SIMDE_FLOAT16_C( 7.294), SIMDE_FLOAT16_C( 38.903), SIMDE_FLOAT16_C( 66.733), SIMDE_FLOAT16_C( 44.944) }, - { -SIMDE_FLOAT16_C( 96.975), -SIMDE_FLOAT16_C( 77.987), -SIMDE_FLOAT16_C( 39.390), -SIMDE_FLOAT16_C( 30.978) }, - { SIMDE_FLOAT16_C( 28.002), SIMDE_FLOAT16_C( 20.926), -SIMDE_FLOAT16_C( 14.789), SIMDE_FLOAT16_C( 24.786) }, - { -SIMDE_FLOAT16_C( 99.879), SIMDE_FLOAT16_C( 9.521), -SIMDE_FLOAT16_C( 88.263), SIMDE_FLOAT16_C( 1.612) } }, + { { SIMDE_FLOAT16_VALUE( 38.903), SIMDE_FLOAT16_VALUE( - 77.987), SIMDE_FLOAT16_VALUE( 20.926), SIMDE_FLOAT16_VALUE( 9.521) }, + { { SIMDE_FLOAT16_VALUE( 7.294), SIMDE_FLOAT16_VALUE( 38.903), SIMDE_FLOAT16_VALUE( 66.733), SIMDE_FLOAT16_VALUE( 44.944) }, + { SIMDE_FLOAT16_VALUE( - 96.975), SIMDE_FLOAT16_VALUE( - 77.987), SIMDE_FLOAT16_VALUE( - 39.390), SIMDE_FLOAT16_VALUE( - 30.978) }, + { SIMDE_FLOAT16_VALUE( 28.002), SIMDE_FLOAT16_VALUE( 20.926), SIMDE_FLOAT16_VALUE( - 14.789), SIMDE_FLOAT16_VALUE( 24.786) }, + { SIMDE_FLOAT16_VALUE( - 99.879), SIMDE_FLOAT16_VALUE( 9.521), SIMDE_FLOAT16_VALUE( - 88.263), SIMDE_FLOAT16_VALUE( 1.612) } }, INT8_C( 1) }, - { { -SIMDE_FLOAT16_C( 7.449), SIMDE_FLOAT16_C( 16.069), SIMDE_FLOAT16_C( 25.206), SIMDE_FLOAT16_C( 48.665) }, - { { -SIMDE_FLOAT16_C( 94.903), -SIMDE_FLOAT16_C( 7.449), SIMDE_FLOAT16_C( 42.096), -SIMDE_FLOAT16_C( 68.648) }, - { -SIMDE_FLOAT16_C( 6.593), SIMDE_FLOAT16_C( 16.069), SIMDE_FLOAT16_C( 0.945), -SIMDE_FLOAT16_C( 9.970) }, - { -SIMDE_FLOAT16_C( 77.854), SIMDE_FLOAT16_C( 25.206), -SIMDE_FLOAT16_C( 53.484), SIMDE_FLOAT16_C( 32.713) }, - { -SIMDE_FLOAT16_C( 73.085), SIMDE_FLOAT16_C( 48.665), -SIMDE_FLOAT16_C( 24.966), SIMDE_FLOAT16_C( 80.918) } }, + { { SIMDE_FLOAT16_VALUE( - 7.449), SIMDE_FLOAT16_VALUE( 16.069), SIMDE_FLOAT16_VALUE( 25.206), SIMDE_FLOAT16_VALUE( 48.665) }, + { { SIMDE_FLOAT16_VALUE( - 94.903), SIMDE_FLOAT16_VALUE( - 7.449), SIMDE_FLOAT16_VALUE( 42.096), SIMDE_FLOAT16_VALUE( - 68.648) }, + { SIMDE_FLOAT16_VALUE( - 6.593), SIMDE_FLOAT16_VALUE( 16.069), SIMDE_FLOAT16_VALUE( 0.945), SIMDE_FLOAT16_VALUE( - 9.970) }, + { SIMDE_FLOAT16_VALUE( - 77.854), SIMDE_FLOAT16_VALUE( 25.206), SIMDE_FLOAT16_VALUE( - 53.484), SIMDE_FLOAT16_VALUE( 32.713) }, + { SIMDE_FLOAT16_VALUE( - 73.085), SIMDE_FLOAT16_VALUE( 48.665), SIMDE_FLOAT16_VALUE( - 24.966), SIMDE_FLOAT16_VALUE( 80.918) } }, INT8_C( 1) }, - { { SIMDE_FLOAT16_C( 69.111), -SIMDE_FLOAT16_C( 96.976), -SIMDE_FLOAT16_C( 44.445), -SIMDE_FLOAT16_C( 63.048) }, - { { SIMDE_FLOAT16_C( 13.879), -SIMDE_FLOAT16_C( 95.193), SIMDE_FLOAT16_C( 98.700), SIMDE_FLOAT16_C( 69.111) }, - { -SIMDE_FLOAT16_C( 87.658), -SIMDE_FLOAT16_C( 62.304), SIMDE_FLOAT16_C( 59.211), -SIMDE_FLOAT16_C( 96.976) }, - { SIMDE_FLOAT16_C( 27.387), SIMDE_FLOAT16_C( 47.095), -SIMDE_FLOAT16_C( 84.285), -SIMDE_FLOAT16_C( 44.445) }, - { -SIMDE_FLOAT16_C( 79.622), -SIMDE_FLOAT16_C( 44.543), SIMDE_FLOAT16_C( 19.639), -SIMDE_FLOAT16_C( 63.048) } }, + { { SIMDE_FLOAT16_VALUE( 69.111), SIMDE_FLOAT16_VALUE( - 96.976), SIMDE_FLOAT16_VALUE( - 44.445), SIMDE_FLOAT16_VALUE( - 63.048) }, + { { SIMDE_FLOAT16_VALUE( 13.879), SIMDE_FLOAT16_VALUE( - 95.193), SIMDE_FLOAT16_VALUE( 98.700), SIMDE_FLOAT16_VALUE( 69.111) }, + { SIMDE_FLOAT16_VALUE( - 87.658), SIMDE_FLOAT16_VALUE( - 62.304), SIMDE_FLOAT16_VALUE( 59.211), SIMDE_FLOAT16_VALUE( - 96.976) }, + { SIMDE_FLOAT16_VALUE( 27.387), SIMDE_FLOAT16_VALUE( 47.095), SIMDE_FLOAT16_VALUE( - 84.285), SIMDE_FLOAT16_VALUE( - 44.445) }, + { SIMDE_FLOAT16_VALUE( - 79.622), SIMDE_FLOAT16_VALUE( - 44.543), SIMDE_FLOAT16_VALUE( 19.639), SIMDE_FLOAT16_VALUE( - 63.048) } }, INT8_C( 3) }, }; @@ -1293,90 +1293,90 @@ test_simde_vst4q_lane_u64 (SIMDE_MUNIT_TEST_ARGS) { static int test_simde_vst4q_lane_f16 (SIMDE_MUNIT_TEST_ARGS) { - static const struct { + struct { simde_float16_t a[4]; simde_float16_t val[4][8]; int lane; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 98.770), SIMDE_FLOAT16_C( 14.613), -SIMDE_FLOAT16_C( 84.301), SIMDE_FLOAT16_C( 5.731) }, - { { -SIMDE_FLOAT16_C( 98.770), SIMDE_FLOAT16_C( 72.336), SIMDE_FLOAT16_C( 54.135), SIMDE_FLOAT16_C( 2.463), - SIMDE_FLOAT16_C( 22.308), SIMDE_FLOAT16_C( 96.431), -SIMDE_FLOAT16_C( 70.869), -SIMDE_FLOAT16_C( 60.824) }, - { SIMDE_FLOAT16_C( 14.613), -SIMDE_FLOAT16_C( 44.363), SIMDE_FLOAT16_C( 22.697), -SIMDE_FLOAT16_C( 35.818), - SIMDE_FLOAT16_C( 3.415), -SIMDE_FLOAT16_C( 49.499), SIMDE_FLOAT16_C( 88.012), -SIMDE_FLOAT16_C( 62.649) }, - { -SIMDE_FLOAT16_C( 84.301), SIMDE_FLOAT16_C( 83.781), SIMDE_FLOAT16_C( 77.145), SIMDE_FLOAT16_C( 90.152), - -SIMDE_FLOAT16_C( 39.448), -SIMDE_FLOAT16_C( 61.272), -SIMDE_FLOAT16_C( 36.164), -SIMDE_FLOAT16_C( 80.754) }, - { SIMDE_FLOAT16_C( 5.731), SIMDE_FLOAT16_C( 35.555), SIMDE_FLOAT16_C( 50.103), SIMDE_FLOAT16_C( 5.404), - -SIMDE_FLOAT16_C( 91.869), -SIMDE_FLOAT16_C( 74.373), SIMDE_FLOAT16_C( 44.386), SIMDE_FLOAT16_C( 93.547) } }, + { { SIMDE_FLOAT16_VALUE( - 98.770), SIMDE_FLOAT16_VALUE( 14.613), SIMDE_FLOAT16_VALUE( - 84.301), SIMDE_FLOAT16_VALUE( 5.731) }, + { { SIMDE_FLOAT16_VALUE( - 98.770), SIMDE_FLOAT16_VALUE( 72.336), SIMDE_FLOAT16_VALUE( 54.135), SIMDE_FLOAT16_VALUE( 2.463), + SIMDE_FLOAT16_VALUE( 22.308), SIMDE_FLOAT16_VALUE( 96.431), SIMDE_FLOAT16_VALUE( - 70.869), SIMDE_FLOAT16_VALUE( - 60.824) }, + { SIMDE_FLOAT16_VALUE( 14.613), SIMDE_FLOAT16_VALUE( - 44.363), SIMDE_FLOAT16_VALUE( 22.697), SIMDE_FLOAT16_VALUE( - 35.818), + SIMDE_FLOAT16_VALUE( 3.415), SIMDE_FLOAT16_VALUE( - 49.499), SIMDE_FLOAT16_VALUE( 88.012), SIMDE_FLOAT16_VALUE( - 62.649) }, + { SIMDE_FLOAT16_VALUE( - 84.301), SIMDE_FLOAT16_VALUE( 83.781), SIMDE_FLOAT16_VALUE( 77.145), SIMDE_FLOAT16_VALUE( 90.152), + SIMDE_FLOAT16_VALUE( - 39.448), SIMDE_FLOAT16_VALUE( - 61.272), SIMDE_FLOAT16_VALUE( - 36.164), SIMDE_FLOAT16_VALUE( - 80.754) }, + { SIMDE_FLOAT16_VALUE( 5.731), SIMDE_FLOAT16_VALUE( 35.555), SIMDE_FLOAT16_VALUE( 50.103), SIMDE_FLOAT16_VALUE( 5.404), + SIMDE_FLOAT16_VALUE( - 91.869), SIMDE_FLOAT16_VALUE( - 74.373), SIMDE_FLOAT16_VALUE( 44.386), SIMDE_FLOAT16_VALUE( 93.547) } }, INT8_C( 0) }, - { { SIMDE_FLOAT16_C( 33.229), SIMDE_FLOAT16_C( 61.127), SIMDE_FLOAT16_C( 84.941), -SIMDE_FLOAT16_C( 60.142) }, - { { SIMDE_FLOAT16_C( 19.711), SIMDE_FLOAT16_C( 18.155), SIMDE_FLOAT16_C( 57.075), SIMDE_FLOAT16_C( 33.229), - SIMDE_FLOAT16_C( 76.025), SIMDE_FLOAT16_C( 51.787), -SIMDE_FLOAT16_C( 94.944), -SIMDE_FLOAT16_C( 15.758) }, - { -SIMDE_FLOAT16_C( 66.362), -SIMDE_FLOAT16_C( 34.575), -SIMDE_FLOAT16_C( 83.725), SIMDE_FLOAT16_C( 61.127), - -SIMDE_FLOAT16_C( 69.232), -SIMDE_FLOAT16_C( 49.809), -SIMDE_FLOAT16_C( 88.043), -SIMDE_FLOAT16_C( 6.273) }, - { SIMDE_FLOAT16_C( 99.864), SIMDE_FLOAT16_C( 93.575), -SIMDE_FLOAT16_C( 44.208), SIMDE_FLOAT16_C( 84.941), - SIMDE_FLOAT16_C( 88.583), -SIMDE_FLOAT16_C( 27.809), SIMDE_FLOAT16_C( 82.999), SIMDE_FLOAT16_C( 43.553) }, - { -SIMDE_FLOAT16_C( 9.077), -SIMDE_FLOAT16_C( 27.498), -SIMDE_FLOAT16_C( 91.044), -SIMDE_FLOAT16_C( 60.142), - -SIMDE_FLOAT16_C( 8.960), -SIMDE_FLOAT16_C( 42.727), SIMDE_FLOAT16_C( 83.794), -SIMDE_FLOAT16_C( 14.626) } }, + { { SIMDE_FLOAT16_VALUE( 33.229), SIMDE_FLOAT16_VALUE( 61.127), SIMDE_FLOAT16_VALUE( 84.941), SIMDE_FLOAT16_VALUE( - 60.142) }, + { { SIMDE_FLOAT16_VALUE( 19.711), SIMDE_FLOAT16_VALUE( 18.155), SIMDE_FLOAT16_VALUE( 57.075), SIMDE_FLOAT16_VALUE( 33.229), + SIMDE_FLOAT16_VALUE( 76.025), SIMDE_FLOAT16_VALUE( 51.787), SIMDE_FLOAT16_VALUE( - 94.944), SIMDE_FLOAT16_VALUE( - 15.758) }, + { SIMDE_FLOAT16_VALUE( - 66.362), SIMDE_FLOAT16_VALUE( - 34.575), SIMDE_FLOAT16_VALUE( - 83.725), SIMDE_FLOAT16_VALUE( 61.127), + SIMDE_FLOAT16_VALUE( - 69.232), SIMDE_FLOAT16_VALUE( - 49.809), SIMDE_FLOAT16_VALUE( - 88.043), SIMDE_FLOAT16_VALUE( - 6.273) }, + { SIMDE_FLOAT16_VALUE( 99.864), SIMDE_FLOAT16_VALUE( 93.575), SIMDE_FLOAT16_VALUE( - 44.208), SIMDE_FLOAT16_VALUE( 84.941), + SIMDE_FLOAT16_VALUE( 88.583), SIMDE_FLOAT16_VALUE( - 27.809), SIMDE_FLOAT16_VALUE( 82.999), SIMDE_FLOAT16_VALUE( 43.553) }, + { SIMDE_FLOAT16_VALUE( - 9.077), SIMDE_FLOAT16_VALUE( - 27.498), SIMDE_FLOAT16_VALUE( - 91.044), SIMDE_FLOAT16_VALUE( - 60.142), + SIMDE_FLOAT16_VALUE( - 8.960), SIMDE_FLOAT16_VALUE( - 42.727), SIMDE_FLOAT16_VALUE( 83.794), SIMDE_FLOAT16_VALUE( - 14.626) } }, INT8_C( 3) }, - { { -SIMDE_FLOAT16_C( 52.785), SIMDE_FLOAT16_C( 50.278), SIMDE_FLOAT16_C( 80.135), SIMDE_FLOAT16_C( 70.735) }, - { { -SIMDE_FLOAT16_C( 94.777), -SIMDE_FLOAT16_C( 52.785), SIMDE_FLOAT16_C( 1.541), SIMDE_FLOAT16_C( 6.163), - SIMDE_FLOAT16_C( 42.017), SIMDE_FLOAT16_C( 1.317), SIMDE_FLOAT16_C( 16.236), -SIMDE_FLOAT16_C( 96.325) }, - { -SIMDE_FLOAT16_C( 54.833), SIMDE_FLOAT16_C( 50.278), SIMDE_FLOAT16_C( 36.420), SIMDE_FLOAT16_C( 7.185), - -SIMDE_FLOAT16_C( 47.910), -SIMDE_FLOAT16_C( 92.387), -SIMDE_FLOAT16_C( 70.291), -SIMDE_FLOAT16_C( 87.456) }, - { SIMDE_FLOAT16_C( 98.589), SIMDE_FLOAT16_C( 80.135), SIMDE_FLOAT16_C( 90.248), -SIMDE_FLOAT16_C( 57.291), - SIMDE_FLOAT16_C( 78.782), -SIMDE_FLOAT16_C( 18.645), SIMDE_FLOAT16_C( 44.035), -SIMDE_FLOAT16_C( 69.060) }, - { -SIMDE_FLOAT16_C( 4.907), SIMDE_FLOAT16_C( 70.735), SIMDE_FLOAT16_C( 60.495), SIMDE_FLOAT16_C( 46.837), - SIMDE_FLOAT16_C( 48.727), SIMDE_FLOAT16_C( 11.956), SIMDE_FLOAT16_C( 63.488), SIMDE_FLOAT16_C( 54.092) } }, + { { SIMDE_FLOAT16_VALUE( - 52.785), SIMDE_FLOAT16_VALUE( 50.278), SIMDE_FLOAT16_VALUE( 80.135), SIMDE_FLOAT16_VALUE( 70.735) }, + { { SIMDE_FLOAT16_VALUE( - 94.777), SIMDE_FLOAT16_VALUE( - 52.785), SIMDE_FLOAT16_VALUE( 1.541), SIMDE_FLOAT16_VALUE( 6.163), + SIMDE_FLOAT16_VALUE( 42.017), SIMDE_FLOAT16_VALUE( 1.317), SIMDE_FLOAT16_VALUE( 16.236), SIMDE_FLOAT16_VALUE( - 96.325) }, + { SIMDE_FLOAT16_VALUE( - 54.833), SIMDE_FLOAT16_VALUE( 50.278), SIMDE_FLOAT16_VALUE( 36.420), SIMDE_FLOAT16_VALUE( 7.185), + SIMDE_FLOAT16_VALUE( - 47.910), SIMDE_FLOAT16_VALUE( - 92.387), SIMDE_FLOAT16_VALUE( - 70.291), SIMDE_FLOAT16_VALUE( - 87.456) }, + { SIMDE_FLOAT16_VALUE( 98.589), SIMDE_FLOAT16_VALUE( 80.135), SIMDE_FLOAT16_VALUE( 90.248), SIMDE_FLOAT16_VALUE( - 57.291), + SIMDE_FLOAT16_VALUE( 78.782), SIMDE_FLOAT16_VALUE( - 18.645), SIMDE_FLOAT16_VALUE( 44.035), SIMDE_FLOAT16_VALUE( - 69.060) }, + { SIMDE_FLOAT16_VALUE( - 4.907), SIMDE_FLOAT16_VALUE( 70.735), SIMDE_FLOAT16_VALUE( 60.495), SIMDE_FLOAT16_VALUE( 46.837), + SIMDE_FLOAT16_VALUE( 48.727), SIMDE_FLOAT16_VALUE( 11.956), SIMDE_FLOAT16_VALUE( 63.488), SIMDE_FLOAT16_VALUE( 54.092) } }, INT8_C( 1) }, - { { SIMDE_FLOAT16_C( 44.476), SIMDE_FLOAT16_C( 37.690), -SIMDE_FLOAT16_C( 71.366), SIMDE_FLOAT16_C( 65.597) }, - { { SIMDE_FLOAT16_C( 7.966), -SIMDE_FLOAT16_C( 89.954), SIMDE_FLOAT16_C( 44.476), SIMDE_FLOAT16_C( 93.979), - -SIMDE_FLOAT16_C( 92.909), -SIMDE_FLOAT16_C( 70.967), -SIMDE_FLOAT16_C( 95.756), SIMDE_FLOAT16_C( 4.963) }, - { -SIMDE_FLOAT16_C( 29.745), -SIMDE_FLOAT16_C( 67.014), SIMDE_FLOAT16_C( 37.690), -SIMDE_FLOAT16_C( 76.656), - -SIMDE_FLOAT16_C( 51.753), SIMDE_FLOAT16_C( 7.929), -SIMDE_FLOAT16_C( 70.420), SIMDE_FLOAT16_C( 43.684) }, - { SIMDE_FLOAT16_C( 44.722), SIMDE_FLOAT16_C( 15.111), -SIMDE_FLOAT16_C( 71.366), -SIMDE_FLOAT16_C( 97.766), - SIMDE_FLOAT16_C( 89.998), SIMDE_FLOAT16_C( 21.407), -SIMDE_FLOAT16_C( 19.366), -SIMDE_FLOAT16_C( 60.287) }, - { -SIMDE_FLOAT16_C( 34.807), -SIMDE_FLOAT16_C( 87.033), SIMDE_FLOAT16_C( 65.597), -SIMDE_FLOAT16_C( 27.301), - -SIMDE_FLOAT16_C( 70.444), SIMDE_FLOAT16_C( 60.262), -SIMDE_FLOAT16_C( 19.955), -SIMDE_FLOAT16_C( 71.415) } }, + { { SIMDE_FLOAT16_VALUE( 44.476), SIMDE_FLOAT16_VALUE( 37.690), SIMDE_FLOAT16_VALUE( - 71.366), SIMDE_FLOAT16_VALUE( 65.597) }, + { { SIMDE_FLOAT16_VALUE( 7.966), SIMDE_FLOAT16_VALUE( - 89.954), SIMDE_FLOAT16_VALUE( 44.476), SIMDE_FLOAT16_VALUE( 93.979), + SIMDE_FLOAT16_VALUE( - 92.909), SIMDE_FLOAT16_VALUE( - 70.967), SIMDE_FLOAT16_VALUE( - 95.756), SIMDE_FLOAT16_VALUE( 4.963) }, + { SIMDE_FLOAT16_VALUE( - 29.745), SIMDE_FLOAT16_VALUE( - 67.014), SIMDE_FLOAT16_VALUE( 37.690), SIMDE_FLOAT16_VALUE( - 76.656), + SIMDE_FLOAT16_VALUE( - 51.753), SIMDE_FLOAT16_VALUE( 7.929), SIMDE_FLOAT16_VALUE( - 70.420), SIMDE_FLOAT16_VALUE( 43.684) }, + { SIMDE_FLOAT16_VALUE( 44.722), SIMDE_FLOAT16_VALUE( 15.111), SIMDE_FLOAT16_VALUE( - 71.366), SIMDE_FLOAT16_VALUE( - 97.766), + SIMDE_FLOAT16_VALUE( 89.998), SIMDE_FLOAT16_VALUE( 21.407), SIMDE_FLOAT16_VALUE( - 19.366), SIMDE_FLOAT16_VALUE( - 60.287) }, + { SIMDE_FLOAT16_VALUE( - 34.807), SIMDE_FLOAT16_VALUE( - 87.033), SIMDE_FLOAT16_VALUE( 65.597), SIMDE_FLOAT16_VALUE( - 27.301), + SIMDE_FLOAT16_VALUE( - 70.444), SIMDE_FLOAT16_VALUE( 60.262), SIMDE_FLOAT16_VALUE( - 19.955), SIMDE_FLOAT16_VALUE( - 71.415) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 22.061), -SIMDE_FLOAT16_C( 54.172), -SIMDE_FLOAT16_C( 54.779), -SIMDE_FLOAT16_C( 43.246) }, - { { SIMDE_FLOAT16_C( 43.494), SIMDE_FLOAT16_C( 62.681), SIMDE_FLOAT16_C( 38.498), -SIMDE_FLOAT16_C( 23.142), - SIMDE_FLOAT16_C( 57.776), -SIMDE_FLOAT16_C( 16.032), SIMDE_FLOAT16_C( 22.061), -SIMDE_FLOAT16_C( 47.440) }, - { SIMDE_FLOAT16_C( 8.881), -SIMDE_FLOAT16_C( 4.877), SIMDE_FLOAT16_C( 93.213), -SIMDE_FLOAT16_C( 68.090), - -SIMDE_FLOAT16_C( 32.443), -SIMDE_FLOAT16_C( 46.325), -SIMDE_FLOAT16_C( 54.172), -SIMDE_FLOAT16_C( 13.517) }, - { SIMDE_FLOAT16_C( 77.177), -SIMDE_FLOAT16_C( 77.041), SIMDE_FLOAT16_C( 32.358), -SIMDE_FLOAT16_C( 42.327), - SIMDE_FLOAT16_C( 95.672), SIMDE_FLOAT16_C( 94.045), -SIMDE_FLOAT16_C( 54.779), -SIMDE_FLOAT16_C( 2.682) }, - { -SIMDE_FLOAT16_C( 84.388), -SIMDE_FLOAT16_C( 25.734), SIMDE_FLOAT16_C( 86.870), SIMDE_FLOAT16_C( 59.016), - SIMDE_FLOAT16_C( 59.342), SIMDE_FLOAT16_C( 28.672), -SIMDE_FLOAT16_C( 43.246), SIMDE_FLOAT16_C( 97.343) } }, + { { SIMDE_FLOAT16_VALUE( 22.061), SIMDE_FLOAT16_VALUE( - 54.172), SIMDE_FLOAT16_VALUE( - 54.779), SIMDE_FLOAT16_VALUE( - 43.246) }, + { { SIMDE_FLOAT16_VALUE( 43.494), SIMDE_FLOAT16_VALUE( 62.681), SIMDE_FLOAT16_VALUE( 38.498), SIMDE_FLOAT16_VALUE( - 23.142), + SIMDE_FLOAT16_VALUE( 57.776), SIMDE_FLOAT16_VALUE( - 16.032), SIMDE_FLOAT16_VALUE( 22.061), SIMDE_FLOAT16_VALUE( - 47.440) }, + { SIMDE_FLOAT16_VALUE( 8.881), SIMDE_FLOAT16_VALUE( - 4.877), SIMDE_FLOAT16_VALUE( 93.213), SIMDE_FLOAT16_VALUE( - 68.090), + SIMDE_FLOAT16_VALUE( - 32.443), SIMDE_FLOAT16_VALUE( - 46.325), SIMDE_FLOAT16_VALUE( - 54.172), SIMDE_FLOAT16_VALUE( - 13.517) }, + { SIMDE_FLOAT16_VALUE( 77.177), SIMDE_FLOAT16_VALUE( - 77.041), SIMDE_FLOAT16_VALUE( 32.358), SIMDE_FLOAT16_VALUE( - 42.327), + SIMDE_FLOAT16_VALUE( 95.672), SIMDE_FLOAT16_VALUE( 94.045), SIMDE_FLOAT16_VALUE( - 54.779), SIMDE_FLOAT16_VALUE( - 2.682) }, + { SIMDE_FLOAT16_VALUE( - 84.388), SIMDE_FLOAT16_VALUE( - 25.734), SIMDE_FLOAT16_VALUE( 86.870), SIMDE_FLOAT16_VALUE( 59.016), + SIMDE_FLOAT16_VALUE( 59.342), SIMDE_FLOAT16_VALUE( 28.672), SIMDE_FLOAT16_VALUE( - 43.246), SIMDE_FLOAT16_VALUE( 97.343) } }, INT8_C( 6) }, - { { -SIMDE_FLOAT16_C( 20.805), SIMDE_FLOAT16_C( 71.371), -SIMDE_FLOAT16_C( 89.862), SIMDE_FLOAT16_C( 25.312) }, - { { -SIMDE_FLOAT16_C( 71.695), -SIMDE_FLOAT16_C( 40.345), -SIMDE_FLOAT16_C( 20.805), SIMDE_FLOAT16_C( 38.667), - SIMDE_FLOAT16_C( 20.408), -SIMDE_FLOAT16_C( 86.972), -SIMDE_FLOAT16_C( 56.312), SIMDE_FLOAT16_C( 76.247) }, - { SIMDE_FLOAT16_C( 39.998), -SIMDE_FLOAT16_C( 79.719), SIMDE_FLOAT16_C( 71.371), SIMDE_FLOAT16_C( 7.846), - -SIMDE_FLOAT16_C( 94.570), -SIMDE_FLOAT16_C( 53.312), -SIMDE_FLOAT16_C( 72.990), SIMDE_FLOAT16_C( 58.388) }, - { SIMDE_FLOAT16_C( 8.013), -SIMDE_FLOAT16_C( 9.782), -SIMDE_FLOAT16_C( 89.862), -SIMDE_FLOAT16_C( 67.543), - SIMDE_FLOAT16_C( 13.264), SIMDE_FLOAT16_C( 29.069), -SIMDE_FLOAT16_C( 49.153), SIMDE_FLOAT16_C( 26.139) }, - { -SIMDE_FLOAT16_C( 18.425), -SIMDE_FLOAT16_C( 61.420), SIMDE_FLOAT16_C( 25.312), -SIMDE_FLOAT16_C( 25.551), - SIMDE_FLOAT16_C( 6.080), SIMDE_FLOAT16_C( 38.418), SIMDE_FLOAT16_C( 13.340), -SIMDE_FLOAT16_C( 56.124) } }, + { { SIMDE_FLOAT16_VALUE( - 20.805), SIMDE_FLOAT16_VALUE( 71.371), SIMDE_FLOAT16_VALUE( - 89.862), SIMDE_FLOAT16_VALUE( 25.312) }, + { { SIMDE_FLOAT16_VALUE( - 71.695), SIMDE_FLOAT16_VALUE( - 40.345), SIMDE_FLOAT16_VALUE( - 20.805), SIMDE_FLOAT16_VALUE( 38.667), + SIMDE_FLOAT16_VALUE( 20.408), SIMDE_FLOAT16_VALUE( - 86.972), SIMDE_FLOAT16_VALUE( - 56.312), SIMDE_FLOAT16_VALUE( 76.247) }, + { SIMDE_FLOAT16_VALUE( 39.998), SIMDE_FLOAT16_VALUE( - 79.719), SIMDE_FLOAT16_VALUE( 71.371), SIMDE_FLOAT16_VALUE( 7.846), + SIMDE_FLOAT16_VALUE( - 94.570), SIMDE_FLOAT16_VALUE( - 53.312), SIMDE_FLOAT16_VALUE( - 72.990), SIMDE_FLOAT16_VALUE( 58.388) }, + { SIMDE_FLOAT16_VALUE( 8.013), SIMDE_FLOAT16_VALUE( - 9.782), SIMDE_FLOAT16_VALUE( - 89.862), SIMDE_FLOAT16_VALUE( - 67.543), + SIMDE_FLOAT16_VALUE( 13.264), SIMDE_FLOAT16_VALUE( 29.069), SIMDE_FLOAT16_VALUE( - 49.153), SIMDE_FLOAT16_VALUE( 26.139) }, + { SIMDE_FLOAT16_VALUE( - 18.425), SIMDE_FLOAT16_VALUE( - 61.420), SIMDE_FLOAT16_VALUE( 25.312), SIMDE_FLOAT16_VALUE( - 25.551), + SIMDE_FLOAT16_VALUE( 6.080), SIMDE_FLOAT16_VALUE( 38.418), SIMDE_FLOAT16_VALUE( 13.340), SIMDE_FLOAT16_VALUE( - 56.124) } }, INT8_C( 2) }, - { { SIMDE_FLOAT16_C( 78.600), SIMDE_FLOAT16_C( 61.792), -SIMDE_FLOAT16_C( 25.973), SIMDE_FLOAT16_C( 76.425) }, - { { SIMDE_FLOAT16_C( 18.958), SIMDE_FLOAT16_C( 64.729), SIMDE_FLOAT16_C( 1.914), SIMDE_FLOAT16_C( 85.223), - SIMDE_FLOAT16_C( 96.281), SIMDE_FLOAT16_C( 78.600), SIMDE_FLOAT16_C( 71.180), SIMDE_FLOAT16_C( 43.076) }, - { -SIMDE_FLOAT16_C( 82.493), -SIMDE_FLOAT16_C( 47.753), -SIMDE_FLOAT16_C( 9.341), SIMDE_FLOAT16_C( 31.656), - -SIMDE_FLOAT16_C( 38.949), SIMDE_FLOAT16_C( 61.792), SIMDE_FLOAT16_C( 84.671), SIMDE_FLOAT16_C( 92.457) }, - { -SIMDE_FLOAT16_C( 78.210), SIMDE_FLOAT16_C( 24.820), SIMDE_FLOAT16_C( 65.528), SIMDE_FLOAT16_C( 46.437), - SIMDE_FLOAT16_C( 13.524), -SIMDE_FLOAT16_C( 25.973), -SIMDE_FLOAT16_C( 0.656), -SIMDE_FLOAT16_C( 10.110) }, - { SIMDE_FLOAT16_C( 50.870), -SIMDE_FLOAT16_C( 85.824), -SIMDE_FLOAT16_C( 65.392), SIMDE_FLOAT16_C( 38.653), - SIMDE_FLOAT16_C( 91.978), SIMDE_FLOAT16_C( 76.425), SIMDE_FLOAT16_C( 16.142), SIMDE_FLOAT16_C( 29.744) } }, + { { SIMDE_FLOAT16_VALUE( 78.600), SIMDE_FLOAT16_VALUE( 61.792), SIMDE_FLOAT16_VALUE( - 25.973), SIMDE_FLOAT16_VALUE( 76.425) }, + { { SIMDE_FLOAT16_VALUE( 18.958), SIMDE_FLOAT16_VALUE( 64.729), SIMDE_FLOAT16_VALUE( 1.914), SIMDE_FLOAT16_VALUE( 85.223), + SIMDE_FLOAT16_VALUE( 96.281), SIMDE_FLOAT16_VALUE( 78.600), SIMDE_FLOAT16_VALUE( 71.180), SIMDE_FLOAT16_VALUE( 43.076) }, + { SIMDE_FLOAT16_VALUE( - 82.493), SIMDE_FLOAT16_VALUE( - 47.753), SIMDE_FLOAT16_VALUE( - 9.341), SIMDE_FLOAT16_VALUE( 31.656), + SIMDE_FLOAT16_VALUE( - 38.949), SIMDE_FLOAT16_VALUE( 61.792), SIMDE_FLOAT16_VALUE( 84.671), SIMDE_FLOAT16_VALUE( 92.457) }, + { SIMDE_FLOAT16_VALUE( - 78.210), SIMDE_FLOAT16_VALUE( 24.820), SIMDE_FLOAT16_VALUE( 65.528), SIMDE_FLOAT16_VALUE( 46.437), + SIMDE_FLOAT16_VALUE( 13.524), SIMDE_FLOAT16_VALUE( - 25.973), SIMDE_FLOAT16_VALUE( - 0.656), SIMDE_FLOAT16_VALUE( - 10.110) }, + { SIMDE_FLOAT16_VALUE( 50.870), SIMDE_FLOAT16_VALUE( - 85.824), SIMDE_FLOAT16_VALUE( - 65.392), SIMDE_FLOAT16_VALUE( 38.653), + SIMDE_FLOAT16_VALUE( 91.978), SIMDE_FLOAT16_VALUE( 76.425), SIMDE_FLOAT16_VALUE( 16.142), SIMDE_FLOAT16_VALUE( 29.744) } }, INT8_C( 5) }, - { { -SIMDE_FLOAT16_C( 42.908), SIMDE_FLOAT16_C( 47.841), SIMDE_FLOAT16_C( 45.710), -SIMDE_FLOAT16_C( 13.391) }, - { { -SIMDE_FLOAT16_C( 33.961), SIMDE_FLOAT16_C( 18.906), -SIMDE_FLOAT16_C( 56.106), SIMDE_FLOAT16_C( 57.120), - -SIMDE_FLOAT16_C( 69.166), SIMDE_FLOAT16_C( 2.556), -SIMDE_FLOAT16_C( 71.425), -SIMDE_FLOAT16_C( 42.908) }, - { SIMDE_FLOAT16_C( 4.074), SIMDE_FLOAT16_C( 74.119), SIMDE_FLOAT16_C( 78.984), -SIMDE_FLOAT16_C( 24.515), - -SIMDE_FLOAT16_C( 21.240), -SIMDE_FLOAT16_C( 59.624), SIMDE_FLOAT16_C( 91.931), SIMDE_FLOAT16_C( 47.841) }, - { SIMDE_FLOAT16_C( 74.533), -SIMDE_FLOAT16_C( 22.329), -SIMDE_FLOAT16_C( 3.682), SIMDE_FLOAT16_C( 71.406), - SIMDE_FLOAT16_C( 65.214), SIMDE_FLOAT16_C( 18.547), -SIMDE_FLOAT16_C( 64.480), SIMDE_FLOAT16_C( 45.710) }, - { SIMDE_FLOAT16_C( 99.987), SIMDE_FLOAT16_C( 73.572), SIMDE_FLOAT16_C( 43.785), SIMDE_FLOAT16_C( 25.305), - -SIMDE_FLOAT16_C( 43.854), SIMDE_FLOAT16_C( 87.175), SIMDE_FLOAT16_C( 6.221), -SIMDE_FLOAT16_C( 13.391) } }, + { { SIMDE_FLOAT16_VALUE( - 42.908), SIMDE_FLOAT16_VALUE( 47.841), SIMDE_FLOAT16_VALUE( 45.710), SIMDE_FLOAT16_VALUE( - 13.391) }, + { { SIMDE_FLOAT16_VALUE( - 33.961), SIMDE_FLOAT16_VALUE( 18.906), SIMDE_FLOAT16_VALUE( - 56.106), SIMDE_FLOAT16_VALUE( 57.120), + SIMDE_FLOAT16_VALUE( - 69.166), SIMDE_FLOAT16_VALUE( 2.556), SIMDE_FLOAT16_VALUE( - 71.425), SIMDE_FLOAT16_VALUE( - 42.908) }, + { SIMDE_FLOAT16_VALUE( 4.074), SIMDE_FLOAT16_VALUE( 74.119), SIMDE_FLOAT16_VALUE( 78.984), SIMDE_FLOAT16_VALUE( - 24.515), + SIMDE_FLOAT16_VALUE( - 21.240), SIMDE_FLOAT16_VALUE( - 59.624), SIMDE_FLOAT16_VALUE( 91.931), SIMDE_FLOAT16_VALUE( 47.841) }, + { SIMDE_FLOAT16_VALUE( 74.533), SIMDE_FLOAT16_VALUE( - 22.329), SIMDE_FLOAT16_VALUE( - 3.682), SIMDE_FLOAT16_VALUE( 71.406), + SIMDE_FLOAT16_VALUE( 65.214), SIMDE_FLOAT16_VALUE( 18.547), SIMDE_FLOAT16_VALUE( - 64.480), SIMDE_FLOAT16_VALUE( 45.710) }, + { SIMDE_FLOAT16_VALUE( 99.987), SIMDE_FLOAT16_VALUE( 73.572), SIMDE_FLOAT16_VALUE( 43.785), SIMDE_FLOAT16_VALUE( 25.305), + SIMDE_FLOAT16_VALUE( - 43.854), SIMDE_FLOAT16_VALUE( 87.175), SIMDE_FLOAT16_VALUE( 6.221), SIMDE_FLOAT16_VALUE( - 13.391) } }, INT8_C( 7) }, }; diff --git a/test/arm/neon/trn.c b/test/arm/neon/trn.c index 5df17d82b..0461016fe 100644 --- a/test/arm/neon/trn.c +++ b/test/arm/neon/trn.c @@ -7,43 +7,44 @@ static int test_simde_vtrn_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 b[4]; simde_float16 r[2][4]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 66.320), SIMDE_FLOAT16_C( 36.495), -SIMDE_FLOAT16_C( 89.790), SIMDE_FLOAT16_C( 71.726) }, - { SIMDE_FLOAT16_C( 5.106), SIMDE_FLOAT16_C( 19.453), SIMDE_FLOAT16_C( 93.337), SIMDE_FLOAT16_C( 76.081) }, - { { SIMDE_FLOAT16_C( 66.320), SIMDE_FLOAT16_C( 5.106), -SIMDE_FLOAT16_C( 89.790), SIMDE_FLOAT16_C( 93.337) }, - { SIMDE_FLOAT16_C( 36.495), SIMDE_FLOAT16_C( 19.453), SIMDE_FLOAT16_C( 71.726), SIMDE_FLOAT16_C( 76.081) } } }, - { { -SIMDE_FLOAT16_C( 70.663), -SIMDE_FLOAT16_C( 22.827), -SIMDE_FLOAT16_C( 46.632), SIMDE_FLOAT16_C( 86.654) }, - { SIMDE_FLOAT16_C( 82.387), SIMDE_FLOAT16_C( 11.566), -SIMDE_FLOAT16_C( 69.654), SIMDE_FLOAT16_C( 8.208) }, - { { -SIMDE_FLOAT16_C( 70.663), SIMDE_FLOAT16_C( 82.387), -SIMDE_FLOAT16_C( 46.632), -SIMDE_FLOAT16_C( 69.654) }, - { -SIMDE_FLOAT16_C( 22.827), SIMDE_FLOAT16_C( 11.566), SIMDE_FLOAT16_C( 86.654), SIMDE_FLOAT16_C( 8.208) } } }, - { { -SIMDE_FLOAT16_C( 96.352), SIMDE_FLOAT16_C( 29.146), SIMDE_FLOAT16_C( 85.005), -SIMDE_FLOAT16_C( 71.890) }, - { -SIMDE_FLOAT16_C( 52.922), SIMDE_FLOAT16_C( 46.133), -SIMDE_FLOAT16_C( 81.316), -SIMDE_FLOAT16_C( 14.760) }, - { { -SIMDE_FLOAT16_C( 96.352), -SIMDE_FLOAT16_C( 52.922), SIMDE_FLOAT16_C( 85.005), -SIMDE_FLOAT16_C( 81.316) }, - { SIMDE_FLOAT16_C( 29.146), SIMDE_FLOAT16_C( 46.133), -SIMDE_FLOAT16_C( 71.890), -SIMDE_FLOAT16_C( 14.760) } } }, - { { SIMDE_FLOAT16_C( 43.402), SIMDE_FLOAT16_C( 54.648), SIMDE_FLOAT16_C( 97.496), SIMDE_FLOAT16_C( 14.606) }, - { SIMDE_FLOAT16_C( 22.113), -SIMDE_FLOAT16_C( 11.759), SIMDE_FLOAT16_C( 36.678), -SIMDE_FLOAT16_C( 73.712) }, - { { SIMDE_FLOAT16_C( 43.402), SIMDE_FLOAT16_C( 22.113), SIMDE_FLOAT16_C( 97.496), SIMDE_FLOAT16_C( 36.678) }, - { SIMDE_FLOAT16_C( 54.648), -SIMDE_FLOAT16_C( 11.759), SIMDE_FLOAT16_C( 14.606), -SIMDE_FLOAT16_C( 73.712) } } }, - { { -SIMDE_FLOAT16_C( 68.260), SIMDE_FLOAT16_C( 59.137), SIMDE_FLOAT16_C( 29.196), -SIMDE_FLOAT16_C( 69.831) }, - { SIMDE_FLOAT16_C( 54.264), SIMDE_FLOAT16_C( 8.480), -SIMDE_FLOAT16_C( 72.393), SIMDE_FLOAT16_C( 63.870) }, - { { -SIMDE_FLOAT16_C( 68.260), SIMDE_FLOAT16_C( 54.264), SIMDE_FLOAT16_C( 29.196), -SIMDE_FLOAT16_C( 72.393) }, - { SIMDE_FLOAT16_C( 59.137), SIMDE_FLOAT16_C( 8.480), -SIMDE_FLOAT16_C( 69.831), SIMDE_FLOAT16_C( 63.870) } } }, - { { SIMDE_FLOAT16_C( 59.923), SIMDE_FLOAT16_C( 35.065), SIMDE_FLOAT16_C( 6.417), -SIMDE_FLOAT16_C( 85.371) }, - { SIMDE_FLOAT16_C( 19.002), SIMDE_FLOAT16_C( 90.454), SIMDE_FLOAT16_C( 57.432), SIMDE_FLOAT16_C( 80.462) }, - { { SIMDE_FLOAT16_C( 59.923), SIMDE_FLOAT16_C( 19.002), SIMDE_FLOAT16_C( 6.417), SIMDE_FLOAT16_C( 57.432) }, - { SIMDE_FLOAT16_C( 35.065), SIMDE_FLOAT16_C( 90.454), -SIMDE_FLOAT16_C( 85.371), SIMDE_FLOAT16_C( 80.462) } } }, - { { -SIMDE_FLOAT16_C( 33.733), -SIMDE_FLOAT16_C( 87.485), -SIMDE_FLOAT16_C( 77.296), -SIMDE_FLOAT16_C( 17.408) }, - { SIMDE_FLOAT16_C( 97.524), SIMDE_FLOAT16_C( 69.470), SIMDE_FLOAT16_C( 73.726), SIMDE_FLOAT16_C( 84.744) }, - { { -SIMDE_FLOAT16_C( 33.733), SIMDE_FLOAT16_C( 97.524), -SIMDE_FLOAT16_C( 77.296), SIMDE_FLOAT16_C( 73.726) }, - { -SIMDE_FLOAT16_C( 87.485), SIMDE_FLOAT16_C( 69.470), -SIMDE_FLOAT16_C( 17.408), SIMDE_FLOAT16_C( 84.744) } } }, - { { -SIMDE_FLOAT16_C( 55.591), SIMDE_FLOAT16_C( 61.251), -SIMDE_FLOAT16_C( 65.213), -SIMDE_FLOAT16_C( 77.400) }, - { SIMDE_FLOAT16_C( 25.667), SIMDE_FLOAT16_C( 90.005), -SIMDE_FLOAT16_C( 46.475), SIMDE_FLOAT16_C( 28.899) }, - { { -SIMDE_FLOAT16_C( 55.591), SIMDE_FLOAT16_C( 25.667), -SIMDE_FLOAT16_C( 65.213), -SIMDE_FLOAT16_C( 46.475) }, - { SIMDE_FLOAT16_C( 61.251), SIMDE_FLOAT16_C( 90.005), -SIMDE_FLOAT16_C( 77.400), SIMDE_FLOAT16_C( 28.899) } } }, + { { SIMDE_FLOAT16_VALUE( 66.320), SIMDE_FLOAT16_VALUE( 36.495), SIMDE_FLOAT16_VALUE( - 89.790), SIMDE_FLOAT16_VALUE( 71.726) }, + { SIMDE_FLOAT16_VALUE( 5.106), SIMDE_FLOAT16_VALUE( 19.453), SIMDE_FLOAT16_VALUE( 93.337), SIMDE_FLOAT16_VALUE( 76.081) }, + { { SIMDE_FLOAT16_VALUE( 66.320), SIMDE_FLOAT16_VALUE( 5.106), SIMDE_FLOAT16_VALUE( - 89.790), SIMDE_FLOAT16_VALUE( 93.337) }, + { SIMDE_FLOAT16_VALUE( 36.495), SIMDE_FLOAT16_VALUE( 19.453), SIMDE_FLOAT16_VALUE( 71.726), SIMDE_FLOAT16_VALUE( 76.081) } } }, + { { SIMDE_FLOAT16_VALUE( - 70.663), SIMDE_FLOAT16_VALUE( - 22.827), SIMDE_FLOAT16_VALUE( - 46.632), SIMDE_FLOAT16_VALUE( 86.654) }, + { SIMDE_FLOAT16_VALUE( 82.387), SIMDE_FLOAT16_VALUE( 11.566), SIMDE_FLOAT16_VALUE( - 69.654), SIMDE_FLOAT16_VALUE( 8.208) }, + { { SIMDE_FLOAT16_VALUE( - 70.663), SIMDE_FLOAT16_VALUE( 82.387), SIMDE_FLOAT16_VALUE( - 46.632), SIMDE_FLOAT16_VALUE( - 69.654) }, + { SIMDE_FLOAT16_VALUE( - 22.827), SIMDE_FLOAT16_VALUE( 11.566), SIMDE_FLOAT16_VALUE( 86.654), SIMDE_FLOAT16_VALUE( 8.208) } } }, + { { SIMDE_FLOAT16_VALUE( - 96.352), SIMDE_FLOAT16_VALUE( 29.146), SIMDE_FLOAT16_VALUE( 85.005), SIMDE_FLOAT16_VALUE( - 71.890) }, + { SIMDE_FLOAT16_VALUE( - 52.922), SIMDE_FLOAT16_VALUE( 46.133), SIMDE_FLOAT16_VALUE( - 81.316), SIMDE_FLOAT16_VALUE( - 14.760) }, + { { SIMDE_FLOAT16_VALUE( - 96.352), SIMDE_FLOAT16_VALUE( - 52.922), SIMDE_FLOAT16_VALUE( 85.005), SIMDE_FLOAT16_VALUE( - 81.316) }, + { SIMDE_FLOAT16_VALUE( 29.146), SIMDE_FLOAT16_VALUE( 46.133), SIMDE_FLOAT16_VALUE( - 71.890), SIMDE_FLOAT16_VALUE( - 14.760) } } }, + { { SIMDE_FLOAT16_VALUE( 43.402), SIMDE_FLOAT16_VALUE( 54.648), SIMDE_FLOAT16_VALUE( 97.496), SIMDE_FLOAT16_VALUE( 14.606) }, + { SIMDE_FLOAT16_VALUE( 22.113), SIMDE_FLOAT16_VALUE( - 11.759), SIMDE_FLOAT16_VALUE( 36.678), SIMDE_FLOAT16_VALUE( - 73.712) }, + { { SIMDE_FLOAT16_VALUE( 43.402), SIMDE_FLOAT16_VALUE( 22.113), SIMDE_FLOAT16_VALUE( 97.496), SIMDE_FLOAT16_VALUE( 36.678) }, + { SIMDE_FLOAT16_VALUE( 54.648), SIMDE_FLOAT16_VALUE( - 11.759), SIMDE_FLOAT16_VALUE( 14.606), SIMDE_FLOAT16_VALUE( - 73.712) } } }, + { { SIMDE_FLOAT16_VALUE( - 68.260), SIMDE_FLOAT16_VALUE( 59.137), SIMDE_FLOAT16_VALUE( 29.196), SIMDE_FLOAT16_VALUE( - 69.831) }, + { SIMDE_FLOAT16_VALUE( 54.264), SIMDE_FLOAT16_VALUE( 8.480), SIMDE_FLOAT16_VALUE( - 72.393), SIMDE_FLOAT16_VALUE( 63.870) }, + { { SIMDE_FLOAT16_VALUE( - 68.260), SIMDE_FLOAT16_VALUE( 54.264), SIMDE_FLOAT16_VALUE( 29.196), SIMDE_FLOAT16_VALUE( - 72.393) }, + { SIMDE_FLOAT16_VALUE( 59.137), SIMDE_FLOAT16_VALUE( 8.480), SIMDE_FLOAT16_VALUE( - 69.831), SIMDE_FLOAT16_VALUE( 63.870) } } }, + { { SIMDE_FLOAT16_VALUE( 59.923), SIMDE_FLOAT16_VALUE( 35.065), SIMDE_FLOAT16_VALUE( 6.417), SIMDE_FLOAT16_VALUE( - 85.371) }, + { SIMDE_FLOAT16_VALUE( 19.002), SIMDE_FLOAT16_VALUE( 90.454), SIMDE_FLOAT16_VALUE( 57.432), SIMDE_FLOAT16_VALUE( 80.462) }, + { { SIMDE_FLOAT16_VALUE( 59.923), SIMDE_FLOAT16_VALUE( 19.002), SIMDE_FLOAT16_VALUE( 6.417), SIMDE_FLOAT16_VALUE( 57.432) }, + { SIMDE_FLOAT16_VALUE( 35.065), SIMDE_FLOAT16_VALUE( 90.454), SIMDE_FLOAT16_VALUE( - 85.371), SIMDE_FLOAT16_VALUE( 80.462) } } }, + { { SIMDE_FLOAT16_VALUE( - 33.733), SIMDE_FLOAT16_VALUE( - 87.485), SIMDE_FLOAT16_VALUE( - 77.296), SIMDE_FLOAT16_VALUE( - 17.408) }, + { SIMDE_FLOAT16_VALUE( 97.524), SIMDE_FLOAT16_VALUE( 69.470), SIMDE_FLOAT16_VALUE( 73.726), SIMDE_FLOAT16_VALUE( 84.744) }, + { { SIMDE_FLOAT16_VALUE( - 33.733), SIMDE_FLOAT16_VALUE( 97.524), SIMDE_FLOAT16_VALUE( - 77.296), SIMDE_FLOAT16_VALUE( 73.726) }, + { SIMDE_FLOAT16_VALUE( - 87.485), SIMDE_FLOAT16_VALUE( 69.470), SIMDE_FLOAT16_VALUE( - 17.408), SIMDE_FLOAT16_VALUE( 84.744) } } }, + { { SIMDE_FLOAT16_VALUE( - 55.591), SIMDE_FLOAT16_VALUE( 61.251), SIMDE_FLOAT16_VALUE( - 65.213), SIMDE_FLOAT16_VALUE( - 77.400) }, + { SIMDE_FLOAT16_VALUE( 25.667), SIMDE_FLOAT16_VALUE( 90.005), SIMDE_FLOAT16_VALUE( - 46.475), SIMDE_FLOAT16_VALUE( 28.899) }, + { { SIMDE_FLOAT16_VALUE( - 55.591), SIMDE_FLOAT16_VALUE( 25.667), SIMDE_FLOAT16_VALUE( - 65.213), SIMDE_FLOAT16_VALUE( - 46.475) }, + { SIMDE_FLOAT16_VALUE( 61.251), SIMDE_FLOAT16_VALUE( 90.005), SIMDE_FLOAT16_VALUE( - 77.400), SIMDE_FLOAT16_VALUE( 28.899) } } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -56,10 +57,25 @@ test_simde_vtrn_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16x2_t r[2] = simde_vtrn_f16(a, b); + + 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_f16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; simde_float32 b[2]; @@ -134,10 +150,25 @@ test_simde_vtrn_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_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float32x2_t r[2] = simde_vtrn_f32(a, b); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -212,10 +243,25 @@ test_simde_vtrn_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x2_t r[2] = simde_vtrn_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -290,10 +336,25 @@ test_simde_vtrn_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x2_t r[2] = simde_vtrn_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -368,10 +429,25 @@ test_simde_vtrn_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r[2] = simde_vtrn_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; uint8_t b[8]; @@ -446,10 +522,25 @@ test_simde_vtrn_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t b = simde_test_arm_neon_random_u8x8(); + simde_uint8x2_t r[2] = simde_vtrn_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; uint16_t b[4]; @@ -523,10 +614,25 @@ test_simde_vtrn_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t b = simde_test_arm_neon_random_u16x4(); + simde_uint16x2_t r[2] = simde_vtrn_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; uint32_t b[2]; @@ -600,79 +706,94 @@ test_simde_vtrn_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r[2] = simde_vtrn_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[2][8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 72.402), -SIMDE_FLOAT16_C( 27.275), -SIMDE_FLOAT16_C( 87.963), -SIMDE_FLOAT16_C( 3.927), - SIMDE_FLOAT16_C( 27.751), -SIMDE_FLOAT16_C( 91.569), -SIMDE_FLOAT16_C( 72.494), -SIMDE_FLOAT16_C( 63.937) }, - { SIMDE_FLOAT16_C( 31.848), SIMDE_FLOAT16_C( 16.416), -SIMDE_FLOAT16_C( 23.281), SIMDE_FLOAT16_C( 29.168), - -SIMDE_FLOAT16_C( 37.304), -SIMDE_FLOAT16_C( 59.759), SIMDE_FLOAT16_C( 51.039), SIMDE_FLOAT16_C( 87.698) }, - { { SIMDE_FLOAT16_C( 72.402), SIMDE_FLOAT16_C( 31.848), -SIMDE_FLOAT16_C( 87.963), -SIMDE_FLOAT16_C( 23.281), - SIMDE_FLOAT16_C( 27.751), -SIMDE_FLOAT16_C( 37.304), -SIMDE_FLOAT16_C( 72.494), SIMDE_FLOAT16_C( 51.039) }, - { -SIMDE_FLOAT16_C( 27.275), SIMDE_FLOAT16_C( 16.416), -SIMDE_FLOAT16_C( 3.927), SIMDE_FLOAT16_C( 29.168), - -SIMDE_FLOAT16_C( 91.569), -SIMDE_FLOAT16_C( 59.759), -SIMDE_FLOAT16_C( 63.937), SIMDE_FLOAT16_C( 87.698) } } }, - { { SIMDE_FLOAT16_C( 88.336), -SIMDE_FLOAT16_C( 46.110), SIMDE_FLOAT16_C( 53.634), SIMDE_FLOAT16_C( 1.307), - SIMDE_FLOAT16_C( 41.335), -SIMDE_FLOAT16_C( 93.616), SIMDE_FLOAT16_C( 39.662), SIMDE_FLOAT16_C( 95.339) }, - { SIMDE_FLOAT16_C( 66.944), SIMDE_FLOAT16_C( 3.046), SIMDE_FLOAT16_C( 64.921), SIMDE_FLOAT16_C( 14.665), - SIMDE_FLOAT16_C( 44.219), -SIMDE_FLOAT16_C( 22.965), -SIMDE_FLOAT16_C( 95.371), SIMDE_FLOAT16_C( 40.338) }, - { { SIMDE_FLOAT16_C( 88.336), SIMDE_FLOAT16_C( 66.944), SIMDE_FLOAT16_C( 53.634), SIMDE_FLOAT16_C( 64.921), - SIMDE_FLOAT16_C( 41.335), SIMDE_FLOAT16_C( 44.219), SIMDE_FLOAT16_C( 39.662), -SIMDE_FLOAT16_C( 95.371) }, - { -SIMDE_FLOAT16_C( 46.110), SIMDE_FLOAT16_C( 3.046), SIMDE_FLOAT16_C( 1.307), SIMDE_FLOAT16_C( 14.665), - -SIMDE_FLOAT16_C( 93.616), -SIMDE_FLOAT16_C( 22.965), SIMDE_FLOAT16_C( 95.339), SIMDE_FLOAT16_C( 40.338) } } }, - { { -SIMDE_FLOAT16_C( 73.328), SIMDE_FLOAT16_C( 78.977), SIMDE_FLOAT16_C( 37.493), -SIMDE_FLOAT16_C( 93.150), - SIMDE_FLOAT16_C( 57.450), SIMDE_FLOAT16_C( 94.268), -SIMDE_FLOAT16_C( 95.908), SIMDE_FLOAT16_C( 22.514) }, - { -SIMDE_FLOAT16_C( 79.810), -SIMDE_FLOAT16_C( 64.617), SIMDE_FLOAT16_C( 26.363), -SIMDE_FLOAT16_C( 66.259), - -SIMDE_FLOAT16_C( 22.866), -SIMDE_FLOAT16_C( 77.509), -SIMDE_FLOAT16_C( 94.614), SIMDE_FLOAT16_C( 39.092) }, - { { -SIMDE_FLOAT16_C( 73.328), -SIMDE_FLOAT16_C( 79.810), SIMDE_FLOAT16_C( 37.493), SIMDE_FLOAT16_C( 26.363), - SIMDE_FLOAT16_C( 57.450), -SIMDE_FLOAT16_C( 22.866), -SIMDE_FLOAT16_C( 95.908), -SIMDE_FLOAT16_C( 94.614) }, - { SIMDE_FLOAT16_C( 78.977), -SIMDE_FLOAT16_C( 64.617), -SIMDE_FLOAT16_C( 93.150), -SIMDE_FLOAT16_C( 66.259), - SIMDE_FLOAT16_C( 94.268), -SIMDE_FLOAT16_C( 77.509), SIMDE_FLOAT16_C( 22.514), SIMDE_FLOAT16_C( 39.092) } } }, - { { -SIMDE_FLOAT16_C( 16.026), -SIMDE_FLOAT16_C( 71.194), -SIMDE_FLOAT16_C( 85.000), SIMDE_FLOAT16_C( 93.544), - SIMDE_FLOAT16_C( 88.015), -SIMDE_FLOAT16_C( 93.133), -SIMDE_FLOAT16_C( 50.972), -SIMDE_FLOAT16_C( 13.782) }, - { SIMDE_FLOAT16_C( 53.753), -SIMDE_FLOAT16_C( 85.486), -SIMDE_FLOAT16_C( 7.617), -SIMDE_FLOAT16_C( 78.630), - SIMDE_FLOAT16_C( 90.258), -SIMDE_FLOAT16_C( 49.347), -SIMDE_FLOAT16_C( 53.331), -SIMDE_FLOAT16_C( 75.926) }, - { { -SIMDE_FLOAT16_C( 16.026), SIMDE_FLOAT16_C( 53.753), -SIMDE_FLOAT16_C( 85.000), -SIMDE_FLOAT16_C( 7.617), - SIMDE_FLOAT16_C( 88.015), SIMDE_FLOAT16_C( 90.258), -SIMDE_FLOAT16_C( 50.972), -SIMDE_FLOAT16_C( 53.331) }, - { -SIMDE_FLOAT16_C( 71.194), -SIMDE_FLOAT16_C( 85.486), SIMDE_FLOAT16_C( 93.544), -SIMDE_FLOAT16_C( 78.630), - -SIMDE_FLOAT16_C( 93.133), -SIMDE_FLOAT16_C( 49.347), -SIMDE_FLOAT16_C( 13.782), -SIMDE_FLOAT16_C( 75.926) } } }, - { { -SIMDE_FLOAT16_C( 35.438), SIMDE_FLOAT16_C( 55.067), SIMDE_FLOAT16_C( 44.514), SIMDE_FLOAT16_C( 13.056), - -SIMDE_FLOAT16_C( 7.241), SIMDE_FLOAT16_C( 30.924), SIMDE_FLOAT16_C( 96.856), SIMDE_FLOAT16_C( 46.739) }, - { SIMDE_FLOAT16_C( 2.315), -SIMDE_FLOAT16_C( 96.213), SIMDE_FLOAT16_C( 97.921), -SIMDE_FLOAT16_C( 14.954), - -SIMDE_FLOAT16_C( 37.120), -SIMDE_FLOAT16_C( 36.198), -SIMDE_FLOAT16_C( 5.285), -SIMDE_FLOAT16_C( 47.281) }, - { { -SIMDE_FLOAT16_C( 35.438), SIMDE_FLOAT16_C( 2.315), SIMDE_FLOAT16_C( 44.514), SIMDE_FLOAT16_C( 97.921), - -SIMDE_FLOAT16_C( 7.241), -SIMDE_FLOAT16_C( 37.120), SIMDE_FLOAT16_C( 96.856), -SIMDE_FLOAT16_C( 5.285) }, - { SIMDE_FLOAT16_C( 55.067), -SIMDE_FLOAT16_C( 96.213), SIMDE_FLOAT16_C( 13.056), -SIMDE_FLOAT16_C( 14.954), - SIMDE_FLOAT16_C( 30.924), -SIMDE_FLOAT16_C( 36.198), SIMDE_FLOAT16_C( 46.739), -SIMDE_FLOAT16_C( 47.281) } } }, - { { -SIMDE_FLOAT16_C( 31.935), -SIMDE_FLOAT16_C( 35.016), SIMDE_FLOAT16_C( 62.766), -SIMDE_FLOAT16_C( 76.317), - -SIMDE_FLOAT16_C( 36.406), SIMDE_FLOAT16_C( 52.789), SIMDE_FLOAT16_C( 25.725), -SIMDE_FLOAT16_C( 45.278) }, - { -SIMDE_FLOAT16_C( 31.370), -SIMDE_FLOAT16_C( 54.045), SIMDE_FLOAT16_C( 10.498), -SIMDE_FLOAT16_C( 13.009), - -SIMDE_FLOAT16_C( 6.750), SIMDE_FLOAT16_C( 32.058), SIMDE_FLOAT16_C( 40.207), SIMDE_FLOAT16_C( 43.579) }, - { { -SIMDE_FLOAT16_C( 31.935), -SIMDE_FLOAT16_C( 31.370), SIMDE_FLOAT16_C( 62.766), SIMDE_FLOAT16_C( 10.498), - -SIMDE_FLOAT16_C( 36.406), -SIMDE_FLOAT16_C( 6.750), SIMDE_FLOAT16_C( 25.725), SIMDE_FLOAT16_C( 40.207) }, - { -SIMDE_FLOAT16_C( 35.016), -SIMDE_FLOAT16_C( 54.045), -SIMDE_FLOAT16_C( 76.317), -SIMDE_FLOAT16_C( 13.009), - SIMDE_FLOAT16_C( 52.789), SIMDE_FLOAT16_C( 32.058), -SIMDE_FLOAT16_C( 45.278), SIMDE_FLOAT16_C( 43.579) } } }, - { { -SIMDE_FLOAT16_C( 40.893), -SIMDE_FLOAT16_C( 77.395), SIMDE_FLOAT16_C( 91.385), -SIMDE_FLOAT16_C( 33.021), - SIMDE_FLOAT16_C( 87.997), SIMDE_FLOAT16_C( 48.892), -SIMDE_FLOAT16_C( 22.163), -SIMDE_FLOAT16_C( 82.676) }, - { SIMDE_FLOAT16_C( 34.999), SIMDE_FLOAT16_C( 34.155), -SIMDE_FLOAT16_C( 52.404), -SIMDE_FLOAT16_C( 53.410), - -SIMDE_FLOAT16_C( 96.720), -SIMDE_FLOAT16_C( 99.174), SIMDE_FLOAT16_C( 31.360), SIMDE_FLOAT16_C( 73.126) }, - { { -SIMDE_FLOAT16_C( 40.893), SIMDE_FLOAT16_C( 34.999), SIMDE_FLOAT16_C( 91.385), -SIMDE_FLOAT16_C( 52.404), - SIMDE_FLOAT16_C( 87.997), -SIMDE_FLOAT16_C( 96.720), -SIMDE_FLOAT16_C( 22.163), SIMDE_FLOAT16_C( 31.360) }, - { -SIMDE_FLOAT16_C( 77.395), SIMDE_FLOAT16_C( 34.155), -SIMDE_FLOAT16_C( 33.021), -SIMDE_FLOAT16_C( 53.410), - SIMDE_FLOAT16_C( 48.892), -SIMDE_FLOAT16_C( 99.174), -SIMDE_FLOAT16_C( 82.676), SIMDE_FLOAT16_C( 73.126) } } }, - { { -SIMDE_FLOAT16_C( 85.597), SIMDE_FLOAT16_C( 2.289), SIMDE_FLOAT16_C( 38.799), SIMDE_FLOAT16_C( 7.382), - -SIMDE_FLOAT16_C( 8.076), -SIMDE_FLOAT16_C( 66.132), SIMDE_FLOAT16_C( 4.632), SIMDE_FLOAT16_C( 35.004) }, - { SIMDE_FLOAT16_C( 64.622), SIMDE_FLOAT16_C( 7.608), SIMDE_FLOAT16_C( 81.664), -SIMDE_FLOAT16_C( 22.375), - -SIMDE_FLOAT16_C( 85.186), -SIMDE_FLOAT16_C( 85.063), SIMDE_FLOAT16_C( 48.648), SIMDE_FLOAT16_C( 0.615) }, - { { -SIMDE_FLOAT16_C( 85.597), SIMDE_FLOAT16_C( 64.622), SIMDE_FLOAT16_C( 38.799), SIMDE_FLOAT16_C( 81.664), - -SIMDE_FLOAT16_C( 8.076), -SIMDE_FLOAT16_C( 85.186), SIMDE_FLOAT16_C( 4.632), SIMDE_FLOAT16_C( 48.648) }, - { SIMDE_FLOAT16_C( 2.289), SIMDE_FLOAT16_C( 7.608), SIMDE_FLOAT16_C( 7.382), -SIMDE_FLOAT16_C( 22.375), - -SIMDE_FLOAT16_C( 66.132), -SIMDE_FLOAT16_C( 85.063), SIMDE_FLOAT16_C( 35.004), SIMDE_FLOAT16_C( 0.615) } } }, + { { SIMDE_FLOAT16_VALUE( 72.402), SIMDE_FLOAT16_VALUE( - 27.275), SIMDE_FLOAT16_VALUE( - 87.963), SIMDE_FLOAT16_VALUE( - 3.927), + SIMDE_FLOAT16_VALUE( 27.751), SIMDE_FLOAT16_VALUE( - 91.569), SIMDE_FLOAT16_VALUE( - 72.494), SIMDE_FLOAT16_VALUE( - 63.937) }, + { SIMDE_FLOAT16_VALUE( 31.848), SIMDE_FLOAT16_VALUE( 16.416), SIMDE_FLOAT16_VALUE( - 23.281), SIMDE_FLOAT16_VALUE( 29.168), + SIMDE_FLOAT16_VALUE( - 37.304), SIMDE_FLOAT16_VALUE( - 59.759), SIMDE_FLOAT16_VALUE( 51.039), SIMDE_FLOAT16_VALUE( 87.698) }, + { { SIMDE_FLOAT16_VALUE( 72.402), SIMDE_FLOAT16_VALUE( 31.848), SIMDE_FLOAT16_VALUE( - 87.963), SIMDE_FLOAT16_VALUE( - 23.281), + SIMDE_FLOAT16_VALUE( 27.751), SIMDE_FLOAT16_VALUE( - 37.304), SIMDE_FLOAT16_VALUE( - 72.494), SIMDE_FLOAT16_VALUE( 51.039) }, + { SIMDE_FLOAT16_VALUE( - 27.275), SIMDE_FLOAT16_VALUE( 16.416), SIMDE_FLOAT16_VALUE( - 3.927), SIMDE_FLOAT16_VALUE( 29.168), + SIMDE_FLOAT16_VALUE( - 91.569), SIMDE_FLOAT16_VALUE( - 59.759), SIMDE_FLOAT16_VALUE( - 63.937), SIMDE_FLOAT16_VALUE( 87.698) } } }, + { { SIMDE_FLOAT16_VALUE( 88.336), SIMDE_FLOAT16_VALUE( - 46.110), SIMDE_FLOAT16_VALUE( 53.634), SIMDE_FLOAT16_VALUE( 1.307), + SIMDE_FLOAT16_VALUE( 41.335), SIMDE_FLOAT16_VALUE( - 93.616), SIMDE_FLOAT16_VALUE( 39.662), SIMDE_FLOAT16_VALUE( 95.339) }, + { SIMDE_FLOAT16_VALUE( 66.944), SIMDE_FLOAT16_VALUE( 3.046), SIMDE_FLOAT16_VALUE( 64.921), SIMDE_FLOAT16_VALUE( 14.665), + SIMDE_FLOAT16_VALUE( 44.219), SIMDE_FLOAT16_VALUE( - 22.965), SIMDE_FLOAT16_VALUE( - 95.371), SIMDE_FLOAT16_VALUE( 40.338) }, + { { SIMDE_FLOAT16_VALUE( 88.336), SIMDE_FLOAT16_VALUE( 66.944), SIMDE_FLOAT16_VALUE( 53.634), SIMDE_FLOAT16_VALUE( 64.921), + SIMDE_FLOAT16_VALUE( 41.335), SIMDE_FLOAT16_VALUE( 44.219), SIMDE_FLOAT16_VALUE( 39.662), SIMDE_FLOAT16_VALUE( - 95.371) }, + { SIMDE_FLOAT16_VALUE( - 46.110), SIMDE_FLOAT16_VALUE( 3.046), SIMDE_FLOAT16_VALUE( 1.307), SIMDE_FLOAT16_VALUE( 14.665), + SIMDE_FLOAT16_VALUE( - 93.616), SIMDE_FLOAT16_VALUE( - 22.965), SIMDE_FLOAT16_VALUE( 95.339), SIMDE_FLOAT16_VALUE( 40.338) } } }, + { { SIMDE_FLOAT16_VALUE( - 73.328), SIMDE_FLOAT16_VALUE( 78.977), SIMDE_FLOAT16_VALUE( 37.493), SIMDE_FLOAT16_VALUE( - 93.150), + SIMDE_FLOAT16_VALUE( 57.450), SIMDE_FLOAT16_VALUE( 94.268), SIMDE_FLOAT16_VALUE( - 95.908), SIMDE_FLOAT16_VALUE( 22.514) }, + { SIMDE_FLOAT16_VALUE( - 79.810), SIMDE_FLOAT16_VALUE( - 64.617), SIMDE_FLOAT16_VALUE( 26.363), SIMDE_FLOAT16_VALUE( - 66.259), + SIMDE_FLOAT16_VALUE( - 22.866), SIMDE_FLOAT16_VALUE( - 77.509), SIMDE_FLOAT16_VALUE( - 94.614), SIMDE_FLOAT16_VALUE( 39.092) }, + { { SIMDE_FLOAT16_VALUE( - 73.328), SIMDE_FLOAT16_VALUE( - 79.810), SIMDE_FLOAT16_VALUE( 37.493), SIMDE_FLOAT16_VALUE( 26.363), + SIMDE_FLOAT16_VALUE( 57.450), SIMDE_FLOAT16_VALUE( - 22.866), SIMDE_FLOAT16_VALUE( - 95.908), SIMDE_FLOAT16_VALUE( - 94.614) }, + { SIMDE_FLOAT16_VALUE( 78.977), SIMDE_FLOAT16_VALUE( - 64.617), SIMDE_FLOAT16_VALUE( - 93.150), SIMDE_FLOAT16_VALUE( - 66.259), + SIMDE_FLOAT16_VALUE( 94.268), SIMDE_FLOAT16_VALUE( - 77.509), SIMDE_FLOAT16_VALUE( 22.514), SIMDE_FLOAT16_VALUE( 39.092) } } }, + { { SIMDE_FLOAT16_VALUE( - 16.026), SIMDE_FLOAT16_VALUE( - 71.194), SIMDE_FLOAT16_VALUE( - 85.000), SIMDE_FLOAT16_VALUE( 93.544), + SIMDE_FLOAT16_VALUE( 88.015), SIMDE_FLOAT16_VALUE( - 93.133), SIMDE_FLOAT16_VALUE( - 50.972), SIMDE_FLOAT16_VALUE( - 13.782) }, + { SIMDE_FLOAT16_VALUE( 53.753), SIMDE_FLOAT16_VALUE( - 85.486), SIMDE_FLOAT16_VALUE( - 7.617), SIMDE_FLOAT16_VALUE( - 78.630), + SIMDE_FLOAT16_VALUE( 90.258), SIMDE_FLOAT16_VALUE( - 49.347), SIMDE_FLOAT16_VALUE( - 53.331), SIMDE_FLOAT16_VALUE( - 75.926) }, + { { SIMDE_FLOAT16_VALUE( - 16.026), SIMDE_FLOAT16_VALUE( 53.753), SIMDE_FLOAT16_VALUE( - 85.000), SIMDE_FLOAT16_VALUE( - 7.617), + SIMDE_FLOAT16_VALUE( 88.015), SIMDE_FLOAT16_VALUE( 90.258), SIMDE_FLOAT16_VALUE( - 50.972), SIMDE_FLOAT16_VALUE( - 53.331) }, + { SIMDE_FLOAT16_VALUE( - 71.194), SIMDE_FLOAT16_VALUE( - 85.486), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( - 78.630), + SIMDE_FLOAT16_VALUE( - 93.133), SIMDE_FLOAT16_VALUE( - 49.347), SIMDE_FLOAT16_VALUE( - 13.782), SIMDE_FLOAT16_VALUE( - 75.926) } } }, + { { SIMDE_FLOAT16_VALUE( - 35.438), SIMDE_FLOAT16_VALUE( 55.067), SIMDE_FLOAT16_VALUE( 44.514), SIMDE_FLOAT16_VALUE( 13.056), + SIMDE_FLOAT16_VALUE( - 7.241), SIMDE_FLOAT16_VALUE( 30.924), SIMDE_FLOAT16_VALUE( 96.856), SIMDE_FLOAT16_VALUE( 46.739) }, + { SIMDE_FLOAT16_VALUE( 2.315), SIMDE_FLOAT16_VALUE( - 96.213), SIMDE_FLOAT16_VALUE( 97.921), SIMDE_FLOAT16_VALUE( - 14.954), + SIMDE_FLOAT16_VALUE( - 37.120), SIMDE_FLOAT16_VALUE( - 36.198), SIMDE_FLOAT16_VALUE( - 5.285), SIMDE_FLOAT16_VALUE( - 47.281) }, + { { SIMDE_FLOAT16_VALUE( - 35.438), SIMDE_FLOAT16_VALUE( 2.315), SIMDE_FLOAT16_VALUE( 44.514), SIMDE_FLOAT16_VALUE( 97.921), + SIMDE_FLOAT16_VALUE( - 7.241), SIMDE_FLOAT16_VALUE( - 37.120), SIMDE_FLOAT16_VALUE( 96.856), SIMDE_FLOAT16_VALUE( - 5.285) }, + { SIMDE_FLOAT16_VALUE( 55.067), SIMDE_FLOAT16_VALUE( - 96.213), SIMDE_FLOAT16_VALUE( 13.056), SIMDE_FLOAT16_VALUE( - 14.954), + SIMDE_FLOAT16_VALUE( 30.924), SIMDE_FLOAT16_VALUE( - 36.198), SIMDE_FLOAT16_VALUE( 46.739), SIMDE_FLOAT16_VALUE( - 47.281) } } }, + { { SIMDE_FLOAT16_VALUE( - 31.935), SIMDE_FLOAT16_VALUE( - 35.016), SIMDE_FLOAT16_VALUE( 62.766), SIMDE_FLOAT16_VALUE( - 76.317), + SIMDE_FLOAT16_VALUE( - 36.406), SIMDE_FLOAT16_VALUE( 52.789), SIMDE_FLOAT16_VALUE( 25.725), SIMDE_FLOAT16_VALUE( - 45.278) }, + { SIMDE_FLOAT16_VALUE( - 31.370), SIMDE_FLOAT16_VALUE( - 54.045), SIMDE_FLOAT16_VALUE( 10.498), SIMDE_FLOAT16_VALUE( - 13.009), + SIMDE_FLOAT16_VALUE( - 6.750), SIMDE_FLOAT16_VALUE( 32.058), SIMDE_FLOAT16_VALUE( 40.207), SIMDE_FLOAT16_VALUE( 43.579) }, + { { SIMDE_FLOAT16_VALUE( - 31.935), SIMDE_FLOAT16_VALUE( - 31.370), SIMDE_FLOAT16_VALUE( 62.766), SIMDE_FLOAT16_VALUE( 10.498), + SIMDE_FLOAT16_VALUE( - 36.406), SIMDE_FLOAT16_VALUE( - 6.750), SIMDE_FLOAT16_VALUE( 25.725), SIMDE_FLOAT16_VALUE( 40.207) }, + { SIMDE_FLOAT16_VALUE( - 35.016), SIMDE_FLOAT16_VALUE( - 54.045), SIMDE_FLOAT16_VALUE( - 76.317), SIMDE_FLOAT16_VALUE( - 13.009), + SIMDE_FLOAT16_VALUE( 52.789), SIMDE_FLOAT16_VALUE( 32.058), SIMDE_FLOAT16_VALUE( - 45.278), SIMDE_FLOAT16_VALUE( 43.579) } } }, + { { SIMDE_FLOAT16_VALUE( - 40.893), SIMDE_FLOAT16_VALUE( - 77.395), SIMDE_FLOAT16_VALUE( 91.385), SIMDE_FLOAT16_VALUE( - 33.021), + SIMDE_FLOAT16_VALUE( 87.997), SIMDE_FLOAT16_VALUE( 48.892), SIMDE_FLOAT16_VALUE( - 22.163), SIMDE_FLOAT16_VALUE( - 82.676) }, + { SIMDE_FLOAT16_VALUE( 34.999), SIMDE_FLOAT16_VALUE( 34.155), SIMDE_FLOAT16_VALUE( - 52.404), SIMDE_FLOAT16_VALUE( - 53.410), + SIMDE_FLOAT16_VALUE( - 96.720), SIMDE_FLOAT16_VALUE( - 99.174), SIMDE_FLOAT16_VALUE( 31.360), SIMDE_FLOAT16_VALUE( 73.126) }, + { { SIMDE_FLOAT16_VALUE( - 40.893), SIMDE_FLOAT16_VALUE( 34.999), SIMDE_FLOAT16_VALUE( 91.385), SIMDE_FLOAT16_VALUE( - 52.404), + SIMDE_FLOAT16_VALUE( 87.997), SIMDE_FLOAT16_VALUE( - 96.720), SIMDE_FLOAT16_VALUE( - 22.163), SIMDE_FLOAT16_VALUE( 31.360) }, + { SIMDE_FLOAT16_VALUE( - 77.395), SIMDE_FLOAT16_VALUE( 34.155), SIMDE_FLOAT16_VALUE( - 33.021), SIMDE_FLOAT16_VALUE( - 53.410), + SIMDE_FLOAT16_VALUE( 48.892), SIMDE_FLOAT16_VALUE( - 99.174), SIMDE_FLOAT16_VALUE( - 82.676), SIMDE_FLOAT16_VALUE( 73.126) } } }, + { { SIMDE_FLOAT16_VALUE( - 85.597), SIMDE_FLOAT16_VALUE( 2.289), SIMDE_FLOAT16_VALUE( 38.799), SIMDE_FLOAT16_VALUE( 7.382), + SIMDE_FLOAT16_VALUE( - 8.076), SIMDE_FLOAT16_VALUE( - 66.132), SIMDE_FLOAT16_VALUE( 4.632), SIMDE_FLOAT16_VALUE( 35.004) }, + { SIMDE_FLOAT16_VALUE( 64.622), SIMDE_FLOAT16_VALUE( 7.608), SIMDE_FLOAT16_VALUE( 81.664), SIMDE_FLOAT16_VALUE( - 22.375), + SIMDE_FLOAT16_VALUE( - 85.186), SIMDE_FLOAT16_VALUE( - 85.063), SIMDE_FLOAT16_VALUE( 48.648), SIMDE_FLOAT16_VALUE( 0.615) }, + { { SIMDE_FLOAT16_VALUE( - 85.597), SIMDE_FLOAT16_VALUE( 64.622), SIMDE_FLOAT16_VALUE( 38.799), SIMDE_FLOAT16_VALUE( 81.664), + SIMDE_FLOAT16_VALUE( - 8.076), SIMDE_FLOAT16_VALUE( - 85.186), SIMDE_FLOAT16_VALUE( 4.632), SIMDE_FLOAT16_VALUE( 48.648) }, + { SIMDE_FLOAT16_VALUE( 2.289), SIMDE_FLOAT16_VALUE( 7.608), SIMDE_FLOAT16_VALUE( 7.382), SIMDE_FLOAT16_VALUE( - 22.375), + SIMDE_FLOAT16_VALUE( - 66.132), SIMDE_FLOAT16_VALUE( - 85.063), SIMDE_FLOAT16_VALUE( 35.004), SIMDE_FLOAT16_VALUE( 0.615) } } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -684,10 +805,25 @@ test_simde_vtrnq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16x2_t r[2] = simde_vtrnq_f16(a, b); + + 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_f16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float32 b[4]; @@ -761,10 +897,25 @@ test_simde_vtrnq_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_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float32x2_t r[2] = simde_vtrnq_f32(a, b); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -871,10 +1022,25 @@ test_simde_vtrnq_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x2_t r[2] = simde_vtrnq_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -949,10 +1115,25 @@ test_simde_vtrnq_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x2_t r[2] = simde_vtrnq_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -1026,10 +1207,25 @@ test_simde_vtrnq_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x2_t r[2] = simde_vtrnq_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; uint8_t b[16]; @@ -1136,10 +1332,25 @@ test_simde_vtrnq_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint8x2_t r[2] = simde_vtrnq_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; uint16_t b[8]; @@ -1213,10 +1424,25 @@ test_simde_vtrnq_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint16x2_t r[2] = simde_vtrnq_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrnq_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; uint32_t b[4]; @@ -1291,6 +1517,20 @@ test_simde_vtrnq_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint32x2_t r[2] = simde_vtrnq_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } #endif /* !defined(SIMDE_BUG_INTEL_857088) */ diff --git a/test/arm/neon/trn1.c b/test/arm/neon/trn1.c index d048a7c80..32733b0d7 100644 --- a/test/arm/neon/trn1.c +++ b/test/arm/neon/trn1.c @@ -5,35 +5,36 @@ static int test_simde_vtrn1_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 b[4]; simde_float16 r[4]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 11.105), -SIMDE_FLOAT16_C( 63.267), -SIMDE_FLOAT16_C( 15.443), -SIMDE_FLOAT16_C( 77.497) }, - { SIMDE_FLOAT16_C( 99.692), -SIMDE_FLOAT16_C( 68.474), -SIMDE_FLOAT16_C( 55.887), -SIMDE_FLOAT16_C( 21.106) }, - { SIMDE_FLOAT16_C( 11.105), SIMDE_FLOAT16_C( 99.692), -SIMDE_FLOAT16_C( 15.443), -SIMDE_FLOAT16_C( 55.887) } }, - { { -SIMDE_FLOAT16_C( 52.862), -SIMDE_FLOAT16_C( 88.095), SIMDE_FLOAT16_C( 55.948), -SIMDE_FLOAT16_C( 84.989) }, - { -SIMDE_FLOAT16_C( 27.479), -SIMDE_FLOAT16_C( 14.155), SIMDE_FLOAT16_C( 73.644), -SIMDE_FLOAT16_C( 71.624) }, - { -SIMDE_FLOAT16_C( 52.862), -SIMDE_FLOAT16_C( 27.479), SIMDE_FLOAT16_C( 55.948), SIMDE_FLOAT16_C( 73.644) } }, - { { SIMDE_FLOAT16_C( 57.467), -SIMDE_FLOAT16_C( 90.025), SIMDE_FLOAT16_C( 11.725), SIMDE_FLOAT16_C( 82.468) }, - { SIMDE_FLOAT16_C( 85.913), -SIMDE_FLOAT16_C( 65.687), -SIMDE_FLOAT16_C( 18.534), -SIMDE_FLOAT16_C( 19.093) }, - { SIMDE_FLOAT16_C( 57.467), SIMDE_FLOAT16_C( 85.913), SIMDE_FLOAT16_C( 11.725), -SIMDE_FLOAT16_C( 18.534) } }, - { { -SIMDE_FLOAT16_C( 27.762), SIMDE_FLOAT16_C( 58.179), -SIMDE_FLOAT16_C( 53.292), -SIMDE_FLOAT16_C( 33.595) }, - { -SIMDE_FLOAT16_C( 49.071), -SIMDE_FLOAT16_C( 66.212), -SIMDE_FLOAT16_C( 65.087), SIMDE_FLOAT16_C( 86.615) }, - { -SIMDE_FLOAT16_C( 27.762), -SIMDE_FLOAT16_C( 49.071), -SIMDE_FLOAT16_C( 53.292), -SIMDE_FLOAT16_C( 65.087) } }, - { { SIMDE_FLOAT16_C( 38.277), -SIMDE_FLOAT16_C( 95.558), SIMDE_FLOAT16_C( 26.475), -SIMDE_FLOAT16_C( 96.782) }, - { SIMDE_FLOAT16_C( 68.464), -SIMDE_FLOAT16_C( 65.232), SIMDE_FLOAT16_C( 26.296), SIMDE_FLOAT16_C( 11.376) }, - { SIMDE_FLOAT16_C( 38.277), SIMDE_FLOAT16_C( 68.464), SIMDE_FLOAT16_C( 26.475), SIMDE_FLOAT16_C( 26.296) } }, - { { -SIMDE_FLOAT16_C( 48.285), SIMDE_FLOAT16_C( 24.604), SIMDE_FLOAT16_C( 69.617), SIMDE_FLOAT16_C( 66.002) }, - { SIMDE_FLOAT16_C( 0.920), -SIMDE_FLOAT16_C( 90.358), SIMDE_FLOAT16_C( 2.468), -SIMDE_FLOAT16_C( 37.903) }, - { -SIMDE_FLOAT16_C( 48.285), SIMDE_FLOAT16_C( 0.920), SIMDE_FLOAT16_C( 69.617), SIMDE_FLOAT16_C( 2.468) } }, - { { -SIMDE_FLOAT16_C( 46.735), -SIMDE_FLOAT16_C( 76.326), -SIMDE_FLOAT16_C( 33.544), SIMDE_FLOAT16_C( 0.423) }, - { -SIMDE_FLOAT16_C( 37.682), -SIMDE_FLOAT16_C( 51.421), SIMDE_FLOAT16_C( 98.911), SIMDE_FLOAT16_C( 97.679) }, - { -SIMDE_FLOAT16_C( 46.735), -SIMDE_FLOAT16_C( 37.682), -SIMDE_FLOAT16_C( 33.544), SIMDE_FLOAT16_C( 98.911) } }, - { { -SIMDE_FLOAT16_C( 98.472), -SIMDE_FLOAT16_C( 2.386), -SIMDE_FLOAT16_C( 66.666), SIMDE_FLOAT16_C( 27.183) }, - { SIMDE_FLOAT16_C( 23.202), SIMDE_FLOAT16_C( 1.710), SIMDE_FLOAT16_C( 58.950), -SIMDE_FLOAT16_C( 44.528) }, - { -SIMDE_FLOAT16_C( 98.472), SIMDE_FLOAT16_C( 23.202), -SIMDE_FLOAT16_C( 66.666), SIMDE_FLOAT16_C( 58.950) } }, + { { SIMDE_FLOAT16_VALUE( 11.105), SIMDE_FLOAT16_VALUE( - 63.267), SIMDE_FLOAT16_VALUE( - 15.443), SIMDE_FLOAT16_VALUE( - 77.497) }, + { SIMDE_FLOAT16_VALUE( 99.692), SIMDE_FLOAT16_VALUE( - 68.474), SIMDE_FLOAT16_VALUE( - 55.887), SIMDE_FLOAT16_VALUE( - 21.106) }, + { SIMDE_FLOAT16_VALUE( 11.105), SIMDE_FLOAT16_VALUE( 99.692), SIMDE_FLOAT16_VALUE( - 15.443), SIMDE_FLOAT16_VALUE( - 55.887) } }, + { { SIMDE_FLOAT16_VALUE( - 52.862), SIMDE_FLOAT16_VALUE( - 88.095), SIMDE_FLOAT16_VALUE( 55.948), SIMDE_FLOAT16_VALUE( - 84.989) }, + { SIMDE_FLOAT16_VALUE( - 27.479), SIMDE_FLOAT16_VALUE( - 14.155), SIMDE_FLOAT16_VALUE( 73.644), SIMDE_FLOAT16_VALUE( - 71.624) }, + { SIMDE_FLOAT16_VALUE( - 52.862), SIMDE_FLOAT16_VALUE( - 27.479), SIMDE_FLOAT16_VALUE( 55.948), SIMDE_FLOAT16_VALUE( 73.644) } }, + { { SIMDE_FLOAT16_VALUE( 57.467), SIMDE_FLOAT16_VALUE( - 90.025), SIMDE_FLOAT16_VALUE( 11.725), SIMDE_FLOAT16_VALUE( 82.468) }, + { SIMDE_FLOAT16_VALUE( 85.913), SIMDE_FLOAT16_VALUE( - 65.687), SIMDE_FLOAT16_VALUE( - 18.534), SIMDE_FLOAT16_VALUE( - 19.093) }, + { SIMDE_FLOAT16_VALUE( 57.467), SIMDE_FLOAT16_VALUE( 85.913), SIMDE_FLOAT16_VALUE( 11.725), SIMDE_FLOAT16_VALUE( - 18.534) } }, + { { SIMDE_FLOAT16_VALUE( - 27.762), SIMDE_FLOAT16_VALUE( 58.179), SIMDE_FLOAT16_VALUE( - 53.292), SIMDE_FLOAT16_VALUE( - 33.595) }, + { SIMDE_FLOAT16_VALUE( - 49.071), SIMDE_FLOAT16_VALUE( - 66.212), SIMDE_FLOAT16_VALUE( - 65.087), SIMDE_FLOAT16_VALUE( 86.615) }, + { SIMDE_FLOAT16_VALUE( - 27.762), SIMDE_FLOAT16_VALUE( - 49.071), SIMDE_FLOAT16_VALUE( - 53.292), SIMDE_FLOAT16_VALUE( - 65.087) } }, + { { SIMDE_FLOAT16_VALUE( 38.277), SIMDE_FLOAT16_VALUE( - 95.558), SIMDE_FLOAT16_VALUE( 26.475), SIMDE_FLOAT16_VALUE( - 96.782) }, + { SIMDE_FLOAT16_VALUE( 68.464), SIMDE_FLOAT16_VALUE( - 65.232), SIMDE_FLOAT16_VALUE( 26.296), SIMDE_FLOAT16_VALUE( 11.376) }, + { SIMDE_FLOAT16_VALUE( 38.277), SIMDE_FLOAT16_VALUE( 68.464), SIMDE_FLOAT16_VALUE( 26.475), SIMDE_FLOAT16_VALUE( 26.296) } }, + { { SIMDE_FLOAT16_VALUE( - 48.285), SIMDE_FLOAT16_VALUE( 24.604), SIMDE_FLOAT16_VALUE( 69.617), SIMDE_FLOAT16_VALUE( 66.002) }, + { SIMDE_FLOAT16_VALUE( 0.920), SIMDE_FLOAT16_VALUE( - 90.358), SIMDE_FLOAT16_VALUE( 2.468), SIMDE_FLOAT16_VALUE( - 37.903) }, + { SIMDE_FLOAT16_VALUE( - 48.285), SIMDE_FLOAT16_VALUE( 0.920), SIMDE_FLOAT16_VALUE( 69.617), SIMDE_FLOAT16_VALUE( 2.468) } }, + { { SIMDE_FLOAT16_VALUE( - 46.735), SIMDE_FLOAT16_VALUE( - 76.326), SIMDE_FLOAT16_VALUE( - 33.544), SIMDE_FLOAT16_VALUE( 0.423) }, + { SIMDE_FLOAT16_VALUE( - 37.682), SIMDE_FLOAT16_VALUE( - 51.421), SIMDE_FLOAT16_VALUE( 98.911), SIMDE_FLOAT16_VALUE( 97.679) }, + { SIMDE_FLOAT16_VALUE( - 46.735), SIMDE_FLOAT16_VALUE( - 37.682), SIMDE_FLOAT16_VALUE( - 33.544), SIMDE_FLOAT16_VALUE( 98.911) } }, + { { SIMDE_FLOAT16_VALUE( - 98.472), SIMDE_FLOAT16_VALUE( - 2.386), SIMDE_FLOAT16_VALUE( - 66.666), SIMDE_FLOAT16_VALUE( 27.183) }, + { SIMDE_FLOAT16_VALUE( 23.202), SIMDE_FLOAT16_VALUE( 1.710), SIMDE_FLOAT16_VALUE( 58.950), SIMDE_FLOAT16_VALUE( - 44.528) }, + { SIMDE_FLOAT16_VALUE( - 98.472), SIMDE_FLOAT16_VALUE( 23.202), SIMDE_FLOAT16_VALUE( - 66.666), SIMDE_FLOAT16_VALUE( 58.950) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -45,10 +46,25 @@ test_simde_vtrn1_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vtrn1_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vtrn1_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; simde_float32 b[2]; @@ -89,10 +105,25 @@ test_simde_vtrn1_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_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float32x2_t r = simde_vtrn1_f32(a, b); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, b, 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_vtrn1_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -133,10 +164,25 @@ test_simde_vtrn1_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x8_t r = simde_vtrn1_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -177,10 +223,25 @@ test_simde_vtrn1_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x4_t r = simde_vtrn1_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -221,10 +282,25 @@ test_simde_vtrn1_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r = simde_vtrn1_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; uint8_t b[8]; @@ -265,10 +341,25 @@ test_simde_vtrn1_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t b = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t r = simde_vtrn1_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; uint16_t b[4]; @@ -308,10 +399,25 @@ test_simde_vtrn1_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t b = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t r = simde_vtrn1_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; uint32_t b[2]; @@ -351,63 +457,78 @@ test_simde_vtrn1_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r = simde_vtrn1_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 50.625), SIMDE_FLOAT16_C( 30.747), SIMDE_FLOAT16_C( 18.487), SIMDE_FLOAT16_C( 57.491), - -SIMDE_FLOAT16_C( 21.129), SIMDE_FLOAT16_C( 15.440), -SIMDE_FLOAT16_C( 52.593), -SIMDE_FLOAT16_C( 4.727) }, - { SIMDE_FLOAT16_C( 44.277), -SIMDE_FLOAT16_C( 25.789), -SIMDE_FLOAT16_C( 25.136), SIMDE_FLOAT16_C( 33.647), - -SIMDE_FLOAT16_C( 95.841), SIMDE_FLOAT16_C( 52.244), -SIMDE_FLOAT16_C( 21.627), SIMDE_FLOAT16_C( 66.122) }, - { -SIMDE_FLOAT16_C( 50.625), SIMDE_FLOAT16_C( 44.277), SIMDE_FLOAT16_C( 18.487), -SIMDE_FLOAT16_C( 25.136), - -SIMDE_FLOAT16_C( 21.129), -SIMDE_FLOAT16_C( 95.841), -SIMDE_FLOAT16_C( 52.593), -SIMDE_FLOAT16_C( 21.627) } }, - { { -SIMDE_FLOAT16_C( 6.913), -SIMDE_FLOAT16_C( 94.272), SIMDE_FLOAT16_C( 11.297), SIMDE_FLOAT16_C( 3.058), - -SIMDE_FLOAT16_C( 5.001), -SIMDE_FLOAT16_C( 7.243), SIMDE_FLOAT16_C( 48.542), -SIMDE_FLOAT16_C( 21.366) }, - { SIMDE_FLOAT16_C( 18.542), SIMDE_FLOAT16_C( 92.836), -SIMDE_FLOAT16_C( 53.782), -SIMDE_FLOAT16_C( 54.711), - SIMDE_FLOAT16_C( 46.595), SIMDE_FLOAT16_C( 50.270), SIMDE_FLOAT16_C( 64.443), -SIMDE_FLOAT16_C( 32.873) }, - { -SIMDE_FLOAT16_C( 6.913), SIMDE_FLOAT16_C( 18.542), SIMDE_FLOAT16_C( 11.297), -SIMDE_FLOAT16_C( 53.782), - -SIMDE_FLOAT16_C( 5.001), SIMDE_FLOAT16_C( 46.595), SIMDE_FLOAT16_C( 48.542), SIMDE_FLOAT16_C( 64.443) } }, - { { SIMDE_FLOAT16_C( 92.715), SIMDE_FLOAT16_C( 49.477), SIMDE_FLOAT16_C( 85.205), SIMDE_FLOAT16_C( 90.565), - -SIMDE_FLOAT16_C( 47.228), -SIMDE_FLOAT16_C( 61.293), SIMDE_FLOAT16_C( 80.419), SIMDE_FLOAT16_C( 32.831) }, - { -SIMDE_FLOAT16_C( 59.790), SIMDE_FLOAT16_C( 90.991), SIMDE_FLOAT16_C( 9.151), SIMDE_FLOAT16_C( 81.903), - SIMDE_FLOAT16_C( 36.535), -SIMDE_FLOAT16_C( 5.406), -SIMDE_FLOAT16_C( 73.592), SIMDE_FLOAT16_C( 52.041) }, - { SIMDE_FLOAT16_C( 92.715), -SIMDE_FLOAT16_C( 59.790), SIMDE_FLOAT16_C( 85.205), SIMDE_FLOAT16_C( 9.151), - -SIMDE_FLOAT16_C( 47.228), SIMDE_FLOAT16_C( 36.535), SIMDE_FLOAT16_C( 80.419), -SIMDE_FLOAT16_C( 73.592) } }, - { { -SIMDE_FLOAT16_C( 5.048), -SIMDE_FLOAT16_C( 15.367), -SIMDE_FLOAT16_C( 85.673), SIMDE_FLOAT16_C( 94.930), - SIMDE_FLOAT16_C( 82.348), -SIMDE_FLOAT16_C( 3.141), SIMDE_FLOAT16_C( 83.294), SIMDE_FLOAT16_C( 25.936) }, - { SIMDE_FLOAT16_C( 96.385), -SIMDE_FLOAT16_C( 79.579), -SIMDE_FLOAT16_C( 4.256), -SIMDE_FLOAT16_C( 34.022), - SIMDE_FLOAT16_C( 82.922), -SIMDE_FLOAT16_C( 1.174), SIMDE_FLOAT16_C( 40.213), SIMDE_FLOAT16_C( 55.100) }, - { -SIMDE_FLOAT16_C( 5.048), SIMDE_FLOAT16_C( 96.385), -SIMDE_FLOAT16_C( 85.673), -SIMDE_FLOAT16_C( 4.256), - SIMDE_FLOAT16_C( 82.348), SIMDE_FLOAT16_C( 82.922), SIMDE_FLOAT16_C( 83.294), SIMDE_FLOAT16_C( 40.213) } }, - { { SIMDE_FLOAT16_C( 19.062), SIMDE_FLOAT16_C( 43.816), -SIMDE_FLOAT16_C( 30.166), -SIMDE_FLOAT16_C( 39.978), - -SIMDE_FLOAT16_C( 39.433), SIMDE_FLOAT16_C( 11.691), SIMDE_FLOAT16_C( 7.837), SIMDE_FLOAT16_C( 17.290) }, - { SIMDE_FLOAT16_C( 8.433), SIMDE_FLOAT16_C( 16.426), -SIMDE_FLOAT16_C( 43.558), SIMDE_FLOAT16_C( 96.327), - -SIMDE_FLOAT16_C( 25.953), -SIMDE_FLOAT16_C( 22.456), -SIMDE_FLOAT16_C( 81.824), SIMDE_FLOAT16_C( 87.942) }, - { SIMDE_FLOAT16_C( 19.062), SIMDE_FLOAT16_C( 8.433), -SIMDE_FLOAT16_C( 30.166), -SIMDE_FLOAT16_C( 43.558), - -SIMDE_FLOAT16_C( 39.433), -SIMDE_FLOAT16_C( 25.953), SIMDE_FLOAT16_C( 7.837), -SIMDE_FLOAT16_C( 81.824) } }, - { { -SIMDE_FLOAT16_C( 11.648), -SIMDE_FLOAT16_C( 29.171), SIMDE_FLOAT16_C( 80.053), -SIMDE_FLOAT16_C( 68.578), - -SIMDE_FLOAT16_C( 48.654), -SIMDE_FLOAT16_C( 99.755), -SIMDE_FLOAT16_C( 90.352), SIMDE_FLOAT16_C( 89.383) }, - { -SIMDE_FLOAT16_C( 33.866), -SIMDE_FLOAT16_C( 47.474), -SIMDE_FLOAT16_C( 66.626), -SIMDE_FLOAT16_C( 97.760), - -SIMDE_FLOAT16_C( 84.997), SIMDE_FLOAT16_C( 67.434), -SIMDE_FLOAT16_C( 97.087), -SIMDE_FLOAT16_C( 32.962) }, - { -SIMDE_FLOAT16_C( 11.648), -SIMDE_FLOAT16_C( 33.866), SIMDE_FLOAT16_C( 80.053), -SIMDE_FLOAT16_C( 66.626), - -SIMDE_FLOAT16_C( 48.654), -SIMDE_FLOAT16_C( 84.997), -SIMDE_FLOAT16_C( 90.352), -SIMDE_FLOAT16_C( 97.087) } }, - { { SIMDE_FLOAT16_C( 99.618), -SIMDE_FLOAT16_C( 77.016), -SIMDE_FLOAT16_C( 80.554), -SIMDE_FLOAT16_C( 81.723), - SIMDE_FLOAT16_C( 10.169), SIMDE_FLOAT16_C( 23.695), -SIMDE_FLOAT16_C( 19.190), SIMDE_FLOAT16_C( 95.941) }, - { -SIMDE_FLOAT16_C( 51.304), -SIMDE_FLOAT16_C( 96.429), SIMDE_FLOAT16_C( 13.144), -SIMDE_FLOAT16_C( 7.245), - SIMDE_FLOAT16_C( 29.744), SIMDE_FLOAT16_C( 29.133), SIMDE_FLOAT16_C( 74.282), -SIMDE_FLOAT16_C( 74.127) }, - { SIMDE_FLOAT16_C( 99.618), -SIMDE_FLOAT16_C( 51.304), -SIMDE_FLOAT16_C( 80.554), SIMDE_FLOAT16_C( 13.144), - SIMDE_FLOAT16_C( 10.169), SIMDE_FLOAT16_C( 29.744), -SIMDE_FLOAT16_C( 19.190), SIMDE_FLOAT16_C( 74.282) } }, - { { SIMDE_FLOAT16_C( 83.161), -SIMDE_FLOAT16_C( 1.215), SIMDE_FLOAT16_C( 78.312), -SIMDE_FLOAT16_C( 84.448), - SIMDE_FLOAT16_C( 81.889), SIMDE_FLOAT16_C( 3.516), SIMDE_FLOAT16_C( 29.221), -SIMDE_FLOAT16_C( 43.978) }, - { SIMDE_FLOAT16_C( 5.808), -SIMDE_FLOAT16_C( 80.158), -SIMDE_FLOAT16_C( 16.019), SIMDE_FLOAT16_C( 94.441), - SIMDE_FLOAT16_C( 76.241), SIMDE_FLOAT16_C( 17.818), -SIMDE_FLOAT16_C( 76.931), SIMDE_FLOAT16_C( 91.708) }, - { SIMDE_FLOAT16_C( 83.161), SIMDE_FLOAT16_C( 5.808), SIMDE_FLOAT16_C( 78.312), -SIMDE_FLOAT16_C( 16.019), - SIMDE_FLOAT16_C( 81.889), SIMDE_FLOAT16_C( 76.241), SIMDE_FLOAT16_C( 29.221), -SIMDE_FLOAT16_C( 76.931) } }, + { { SIMDE_FLOAT16_VALUE( - 50.625), SIMDE_FLOAT16_VALUE( 30.747), SIMDE_FLOAT16_VALUE( 18.487), SIMDE_FLOAT16_VALUE( 57.491), + SIMDE_FLOAT16_VALUE( - 21.129), SIMDE_FLOAT16_VALUE( 15.440), SIMDE_FLOAT16_VALUE( - 52.593), SIMDE_FLOAT16_VALUE( - 4.727) }, + { SIMDE_FLOAT16_VALUE( 44.277), SIMDE_FLOAT16_VALUE( - 25.789), SIMDE_FLOAT16_VALUE( - 25.136), SIMDE_FLOAT16_VALUE( 33.647), + SIMDE_FLOAT16_VALUE( - 95.841), SIMDE_FLOAT16_VALUE( 52.244), SIMDE_FLOAT16_VALUE( - 21.627), SIMDE_FLOAT16_VALUE( 66.122) }, + { SIMDE_FLOAT16_VALUE( - 50.625), SIMDE_FLOAT16_VALUE( 44.277), SIMDE_FLOAT16_VALUE( 18.487), SIMDE_FLOAT16_VALUE( - 25.136), + SIMDE_FLOAT16_VALUE( - 21.129), SIMDE_FLOAT16_VALUE( - 95.841), SIMDE_FLOAT16_VALUE( - 52.593), SIMDE_FLOAT16_VALUE( - 21.627) } }, + { { SIMDE_FLOAT16_VALUE( - 6.913), SIMDE_FLOAT16_VALUE( - 94.272), SIMDE_FLOAT16_VALUE( 11.297), SIMDE_FLOAT16_VALUE( 3.058), + SIMDE_FLOAT16_VALUE( - 5.001), SIMDE_FLOAT16_VALUE( - 7.243), SIMDE_FLOAT16_VALUE( 48.542), SIMDE_FLOAT16_VALUE( - 21.366) }, + { SIMDE_FLOAT16_VALUE( 18.542), SIMDE_FLOAT16_VALUE( 92.836), SIMDE_FLOAT16_VALUE( - 53.782), SIMDE_FLOAT16_VALUE( - 54.711), + SIMDE_FLOAT16_VALUE( 46.595), SIMDE_FLOAT16_VALUE( 50.270), SIMDE_FLOAT16_VALUE( 64.443), SIMDE_FLOAT16_VALUE( - 32.873) }, + { SIMDE_FLOAT16_VALUE( - 6.913), SIMDE_FLOAT16_VALUE( 18.542), SIMDE_FLOAT16_VALUE( 11.297), SIMDE_FLOAT16_VALUE( - 53.782), + SIMDE_FLOAT16_VALUE( - 5.001), SIMDE_FLOAT16_VALUE( 46.595), SIMDE_FLOAT16_VALUE( 48.542), SIMDE_FLOAT16_VALUE( 64.443) } }, + { { SIMDE_FLOAT16_VALUE( 92.715), SIMDE_FLOAT16_VALUE( 49.477), SIMDE_FLOAT16_VALUE( 85.205), SIMDE_FLOAT16_VALUE( 90.565), + SIMDE_FLOAT16_VALUE( - 47.228), SIMDE_FLOAT16_VALUE( - 61.293), SIMDE_FLOAT16_VALUE( 80.419), SIMDE_FLOAT16_VALUE( 32.831) }, + { SIMDE_FLOAT16_VALUE( - 59.790), SIMDE_FLOAT16_VALUE( 90.991), SIMDE_FLOAT16_VALUE( 9.151), SIMDE_FLOAT16_VALUE( 81.903), + SIMDE_FLOAT16_VALUE( 36.535), SIMDE_FLOAT16_VALUE( - 5.406), SIMDE_FLOAT16_VALUE( - 73.592), SIMDE_FLOAT16_VALUE( 52.041) }, + { SIMDE_FLOAT16_VALUE( 92.715), SIMDE_FLOAT16_VALUE( - 59.790), SIMDE_FLOAT16_VALUE( 85.205), SIMDE_FLOAT16_VALUE( 9.151), + SIMDE_FLOAT16_VALUE( - 47.228), SIMDE_FLOAT16_VALUE( 36.535), SIMDE_FLOAT16_VALUE( 80.419), SIMDE_FLOAT16_VALUE( - 73.592) } }, + { { SIMDE_FLOAT16_VALUE( - 5.048), SIMDE_FLOAT16_VALUE( - 15.367), SIMDE_FLOAT16_VALUE( - 85.673), SIMDE_FLOAT16_VALUE( 94.930), + SIMDE_FLOAT16_VALUE( 82.348), SIMDE_FLOAT16_VALUE( - 3.141), SIMDE_FLOAT16_VALUE( 83.294), SIMDE_FLOAT16_VALUE( 25.936) }, + { SIMDE_FLOAT16_VALUE( 96.385), SIMDE_FLOAT16_VALUE( - 79.579), SIMDE_FLOAT16_VALUE( - 4.256), SIMDE_FLOAT16_VALUE( - 34.022), + SIMDE_FLOAT16_VALUE( 82.922), SIMDE_FLOAT16_VALUE( - 1.174), SIMDE_FLOAT16_VALUE( 40.213), SIMDE_FLOAT16_VALUE( 55.100) }, + { SIMDE_FLOAT16_VALUE( - 5.048), SIMDE_FLOAT16_VALUE( 96.385), SIMDE_FLOAT16_VALUE( - 85.673), SIMDE_FLOAT16_VALUE( - 4.256), + SIMDE_FLOAT16_VALUE( 82.348), SIMDE_FLOAT16_VALUE( 82.922), SIMDE_FLOAT16_VALUE( 83.294), SIMDE_FLOAT16_VALUE( 40.213) } }, + { { SIMDE_FLOAT16_VALUE( 19.062), SIMDE_FLOAT16_VALUE( 43.816), SIMDE_FLOAT16_VALUE( - 30.166), SIMDE_FLOAT16_VALUE( - 39.978), + SIMDE_FLOAT16_VALUE( - 39.433), SIMDE_FLOAT16_VALUE( 11.691), SIMDE_FLOAT16_VALUE( 7.837), SIMDE_FLOAT16_VALUE( 17.290) }, + { SIMDE_FLOAT16_VALUE( 8.433), SIMDE_FLOAT16_VALUE( 16.426), SIMDE_FLOAT16_VALUE( - 43.558), SIMDE_FLOAT16_VALUE( 96.327), + SIMDE_FLOAT16_VALUE( - 25.953), SIMDE_FLOAT16_VALUE( - 22.456), SIMDE_FLOAT16_VALUE( - 81.824), SIMDE_FLOAT16_VALUE( 87.942) }, + { SIMDE_FLOAT16_VALUE( 19.062), SIMDE_FLOAT16_VALUE( 8.433), SIMDE_FLOAT16_VALUE( - 30.166), SIMDE_FLOAT16_VALUE( - 43.558), + SIMDE_FLOAT16_VALUE( - 39.433), SIMDE_FLOAT16_VALUE( - 25.953), SIMDE_FLOAT16_VALUE( 7.837), SIMDE_FLOAT16_VALUE( - 81.824) } }, + { { SIMDE_FLOAT16_VALUE( - 11.648), SIMDE_FLOAT16_VALUE( - 29.171), SIMDE_FLOAT16_VALUE( 80.053), SIMDE_FLOAT16_VALUE( - 68.578), + SIMDE_FLOAT16_VALUE( - 48.654), SIMDE_FLOAT16_VALUE( - 99.755), SIMDE_FLOAT16_VALUE( - 90.352), SIMDE_FLOAT16_VALUE( 89.383) }, + { SIMDE_FLOAT16_VALUE( - 33.866), SIMDE_FLOAT16_VALUE( - 47.474), SIMDE_FLOAT16_VALUE( - 66.626), SIMDE_FLOAT16_VALUE( - 97.760), + SIMDE_FLOAT16_VALUE( - 84.997), SIMDE_FLOAT16_VALUE( 67.434), SIMDE_FLOAT16_VALUE( - 97.087), SIMDE_FLOAT16_VALUE( - 32.962) }, + { SIMDE_FLOAT16_VALUE( - 11.648), SIMDE_FLOAT16_VALUE( - 33.866), SIMDE_FLOAT16_VALUE( 80.053), SIMDE_FLOAT16_VALUE( - 66.626), + SIMDE_FLOAT16_VALUE( - 48.654), SIMDE_FLOAT16_VALUE( - 84.997), SIMDE_FLOAT16_VALUE( - 90.352), SIMDE_FLOAT16_VALUE( - 97.087) } }, + { { SIMDE_FLOAT16_VALUE( 99.618), SIMDE_FLOAT16_VALUE( - 77.016), SIMDE_FLOAT16_VALUE( - 80.554), SIMDE_FLOAT16_VALUE( - 81.723), + SIMDE_FLOAT16_VALUE( 10.169), SIMDE_FLOAT16_VALUE( 23.695), SIMDE_FLOAT16_VALUE( - 19.190), SIMDE_FLOAT16_VALUE( 95.941) }, + { SIMDE_FLOAT16_VALUE( - 51.304), SIMDE_FLOAT16_VALUE( - 96.429), SIMDE_FLOAT16_VALUE( 13.144), SIMDE_FLOAT16_VALUE( - 7.245), + SIMDE_FLOAT16_VALUE( 29.744), SIMDE_FLOAT16_VALUE( 29.133), SIMDE_FLOAT16_VALUE( 74.282), SIMDE_FLOAT16_VALUE( - 74.127) }, + { SIMDE_FLOAT16_VALUE( 99.618), SIMDE_FLOAT16_VALUE( - 51.304), SIMDE_FLOAT16_VALUE( - 80.554), SIMDE_FLOAT16_VALUE( 13.144), + SIMDE_FLOAT16_VALUE( 10.169), SIMDE_FLOAT16_VALUE( 29.744), SIMDE_FLOAT16_VALUE( - 19.190), SIMDE_FLOAT16_VALUE( 74.282) } }, + { { SIMDE_FLOAT16_VALUE( 83.161), SIMDE_FLOAT16_VALUE( - 1.215), SIMDE_FLOAT16_VALUE( 78.312), SIMDE_FLOAT16_VALUE( - 84.448), + SIMDE_FLOAT16_VALUE( 81.889), SIMDE_FLOAT16_VALUE( 3.516), SIMDE_FLOAT16_VALUE( 29.221), SIMDE_FLOAT16_VALUE( - 43.978) }, + { SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE( - 80.158), SIMDE_FLOAT16_VALUE( - 16.019), SIMDE_FLOAT16_VALUE( 94.441), + SIMDE_FLOAT16_VALUE( 76.241), SIMDE_FLOAT16_VALUE( 17.818), SIMDE_FLOAT16_VALUE( - 76.931), SIMDE_FLOAT16_VALUE( 91.708) }, + { SIMDE_FLOAT16_VALUE( 83.161), SIMDE_FLOAT16_VALUE( 5.808), SIMDE_FLOAT16_VALUE( 78.312), SIMDE_FLOAT16_VALUE( - 16.019), + SIMDE_FLOAT16_VALUE( 81.889), SIMDE_FLOAT16_VALUE( 76.241), SIMDE_FLOAT16_VALUE( 29.221), SIMDE_FLOAT16_VALUE( - 76.931) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -418,10 +539,25 @@ test_simde_vtrn1q_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vtrn1q_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float32 b[4]; @@ -461,10 +597,25 @@ test_simde_vtrn1q_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_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float32x4_t r = simde_vtrn1q_f32(a, b); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[2]; simde_float64 b[2]; @@ -505,10 +656,25 @@ test_simde_vtrn1q_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_float64x2_t b = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r = simde_vtrn1q_f64(a, b); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -573,10 +739,25 @@ test_simde_vtrn1q_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x16_t r = simde_vtrn1q_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -617,10 +798,25 @@ test_simde_vtrn1q_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t r = simde_vtrn1q_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -660,10 +856,25 @@ test_simde_vtrn1q_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t r = simde_vtrn1q_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[2]; int64_t b[2]; @@ -703,10 +914,25 @@ test_simde_vtrn1q_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t r = simde_vtrn1q_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; uint8_t b[16]; @@ -771,10 +997,25 @@ test_simde_vtrn1q_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t r = simde_vtrn1q_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; uint16_t b[8]; @@ -814,10 +1055,25 @@ test_simde_vtrn1q_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t r = simde_vtrn1q_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; uint32_t b[4]; @@ -858,10 +1114,25 @@ test_simde_vtrn1q_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t r = simde_vtrn1q_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn1q_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[2]; uint64_t b[2]; @@ -901,6 +1172,20 @@ test_simde_vtrn1q_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t r = simde_vtrn1q_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/trn2.c b/test/arm/neon/trn2.c index 9960ab87b..8e186c7ee 100644 --- a/test/arm/neon/trn2.c +++ b/test/arm/neon/trn2.c @@ -5,35 +5,36 @@ static int test_simde_vtrn2_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 b[4]; simde_float16 r[4]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 56.300), -SIMDE_FLOAT16_C( 9.279), -SIMDE_FLOAT16_C( 19.078), SIMDE_FLOAT16_C( 91.073) }, - { SIMDE_FLOAT16_C( 85.295), SIMDE_FLOAT16_C( 3.112), -SIMDE_FLOAT16_C( 91.891), SIMDE_FLOAT16_C( 4.800) }, - { -SIMDE_FLOAT16_C( 9.279), SIMDE_FLOAT16_C( 3.112), SIMDE_FLOAT16_C( 91.073), SIMDE_FLOAT16_C( 4.800) } }, - { { SIMDE_FLOAT16_C( 74.709), -SIMDE_FLOAT16_C( 26.125), -SIMDE_FLOAT16_C( 27.765), -SIMDE_FLOAT16_C( 99.458) }, - { SIMDE_FLOAT16_C( 89.694), -SIMDE_FLOAT16_C( 71.014), SIMDE_FLOAT16_C( 48.493), SIMDE_FLOAT16_C( 30.421) }, - { -SIMDE_FLOAT16_C( 26.125), -SIMDE_FLOAT16_C( 71.014), -SIMDE_FLOAT16_C( 99.458), SIMDE_FLOAT16_C( 30.421) } }, - { { SIMDE_FLOAT16_C( 73.102), SIMDE_FLOAT16_C( 41.016), -SIMDE_FLOAT16_C( 35.965), -SIMDE_FLOAT16_C( 89.249) }, - { SIMDE_FLOAT16_C( 85.101), SIMDE_FLOAT16_C( 59.074), SIMDE_FLOAT16_C( 55.450), -SIMDE_FLOAT16_C( 85.858) }, - { SIMDE_FLOAT16_C( 41.016), SIMDE_FLOAT16_C( 59.074), -SIMDE_FLOAT16_C( 89.249), -SIMDE_FLOAT16_C( 85.858) } }, - { { SIMDE_FLOAT16_C( 74.180), SIMDE_FLOAT16_C( 76.843), -SIMDE_FLOAT16_C( 60.751), -SIMDE_FLOAT16_C( 41.114) }, - { SIMDE_FLOAT16_C( 10.403), SIMDE_FLOAT16_C( 54.517), -SIMDE_FLOAT16_C( 73.384), SIMDE_FLOAT16_C( 65.706) }, - { SIMDE_FLOAT16_C( 76.843), SIMDE_FLOAT16_C( 54.517), -SIMDE_FLOAT16_C( 41.114), SIMDE_FLOAT16_C( 65.706) } }, - { { -SIMDE_FLOAT16_C( 73.108), -SIMDE_FLOAT16_C( 71.731), -SIMDE_FLOAT16_C( 42.349), -SIMDE_FLOAT16_C( 33.103) }, - { -SIMDE_FLOAT16_C( 37.091), -SIMDE_FLOAT16_C( 4.379), -SIMDE_FLOAT16_C( 56.871), -SIMDE_FLOAT16_C( 36.204) }, - { -SIMDE_FLOAT16_C( 71.731), -SIMDE_FLOAT16_C( 4.379), -SIMDE_FLOAT16_C( 33.103), -SIMDE_FLOAT16_C( 36.204) } }, - { { -SIMDE_FLOAT16_C( 12.826), SIMDE_FLOAT16_C( 44.335), -SIMDE_FLOAT16_C( 3.623), -SIMDE_FLOAT16_C( 89.419) }, - { -SIMDE_FLOAT16_C( 91.221), -SIMDE_FLOAT16_C( 5.349), -SIMDE_FLOAT16_C( 8.450), SIMDE_FLOAT16_C( 34.071) }, - { SIMDE_FLOAT16_C( 44.335), -SIMDE_FLOAT16_C( 5.349), -SIMDE_FLOAT16_C( 89.419), SIMDE_FLOAT16_C( 34.071) } }, - { { SIMDE_FLOAT16_C( 14.291), -SIMDE_FLOAT16_C( 9.864), SIMDE_FLOAT16_C( 72.841), -SIMDE_FLOAT16_C( 90.631) }, - { SIMDE_FLOAT16_C( 40.737), -SIMDE_FLOAT16_C( 40.555), -SIMDE_FLOAT16_C( 53.928), SIMDE_FLOAT16_C( 45.466) }, - { -SIMDE_FLOAT16_C( 9.864), -SIMDE_FLOAT16_C( 40.555), -SIMDE_FLOAT16_C( 90.631), SIMDE_FLOAT16_C( 45.466) } }, - { { SIMDE_FLOAT16_C( 77.115), SIMDE_FLOAT16_C( 37.620), SIMDE_FLOAT16_C( 28.892), -SIMDE_FLOAT16_C( 64.989) }, - { -SIMDE_FLOAT16_C( 18.627), -SIMDE_FLOAT16_C( 85.234), SIMDE_FLOAT16_C( 78.130), -SIMDE_FLOAT16_C( 13.349) }, - { SIMDE_FLOAT16_C( 37.620), -SIMDE_FLOAT16_C( 85.234), -SIMDE_FLOAT16_C( 64.989), -SIMDE_FLOAT16_C( 13.349) } }, + { { SIMDE_FLOAT16_VALUE( 56.300), SIMDE_FLOAT16_VALUE( - 9.279), SIMDE_FLOAT16_VALUE( - 19.078), SIMDE_FLOAT16_VALUE( 91.073) }, + { SIMDE_FLOAT16_VALUE( 85.295), SIMDE_FLOAT16_VALUE( 3.112), SIMDE_FLOAT16_VALUE( - 91.891), SIMDE_FLOAT16_VALUE( 4.800) }, + { SIMDE_FLOAT16_VALUE( - 9.279), SIMDE_FLOAT16_VALUE( 3.112), SIMDE_FLOAT16_VALUE( 91.073), SIMDE_FLOAT16_VALUE( 4.800) } }, + { { SIMDE_FLOAT16_VALUE( 74.709), SIMDE_FLOAT16_VALUE( - 26.125), SIMDE_FLOAT16_VALUE( - 27.765), SIMDE_FLOAT16_VALUE( - 99.458) }, + { SIMDE_FLOAT16_VALUE( 89.694), SIMDE_FLOAT16_VALUE( - 71.014), SIMDE_FLOAT16_VALUE( 48.493), SIMDE_FLOAT16_VALUE( 30.421) }, + { SIMDE_FLOAT16_VALUE( - 26.125), SIMDE_FLOAT16_VALUE( - 71.014), SIMDE_FLOAT16_VALUE( - 99.458), SIMDE_FLOAT16_VALUE( 30.421) } }, + { { SIMDE_FLOAT16_VALUE( 73.102), SIMDE_FLOAT16_VALUE( 41.016), SIMDE_FLOAT16_VALUE( - 35.965), SIMDE_FLOAT16_VALUE( - 89.249) }, + { SIMDE_FLOAT16_VALUE( 85.101), SIMDE_FLOAT16_VALUE( 59.074), SIMDE_FLOAT16_VALUE( 55.450), SIMDE_FLOAT16_VALUE( - 85.858) }, + { SIMDE_FLOAT16_VALUE( 41.016), SIMDE_FLOAT16_VALUE( 59.074), SIMDE_FLOAT16_VALUE( - 89.249), SIMDE_FLOAT16_VALUE( - 85.858) } }, + { { SIMDE_FLOAT16_VALUE( 74.180), SIMDE_FLOAT16_VALUE( 76.843), SIMDE_FLOAT16_VALUE( - 60.751), SIMDE_FLOAT16_VALUE( - 41.114) }, + { SIMDE_FLOAT16_VALUE( 10.403), SIMDE_FLOAT16_VALUE( 54.517), SIMDE_FLOAT16_VALUE( - 73.384), SIMDE_FLOAT16_VALUE( 65.706) }, + { SIMDE_FLOAT16_VALUE( 76.843), SIMDE_FLOAT16_VALUE( 54.517), SIMDE_FLOAT16_VALUE( - 41.114), SIMDE_FLOAT16_VALUE( 65.706) } }, + { { SIMDE_FLOAT16_VALUE( - 73.108), SIMDE_FLOAT16_VALUE( - 71.731), SIMDE_FLOAT16_VALUE( - 42.349), SIMDE_FLOAT16_VALUE( - 33.103) }, + { SIMDE_FLOAT16_VALUE( - 37.091), SIMDE_FLOAT16_VALUE( - 4.379), SIMDE_FLOAT16_VALUE( - 56.871), SIMDE_FLOAT16_VALUE( - 36.204) }, + { SIMDE_FLOAT16_VALUE( - 71.731), SIMDE_FLOAT16_VALUE( - 4.379), SIMDE_FLOAT16_VALUE( - 33.103), SIMDE_FLOAT16_VALUE( - 36.204) } }, + { { SIMDE_FLOAT16_VALUE( - 12.826), SIMDE_FLOAT16_VALUE( 44.335), SIMDE_FLOAT16_VALUE( - 3.623), SIMDE_FLOAT16_VALUE( - 89.419) }, + { SIMDE_FLOAT16_VALUE( - 91.221), SIMDE_FLOAT16_VALUE( - 5.349), SIMDE_FLOAT16_VALUE( - 8.450), SIMDE_FLOAT16_VALUE( 34.071) }, + { SIMDE_FLOAT16_VALUE( 44.335), SIMDE_FLOAT16_VALUE( - 5.349), SIMDE_FLOAT16_VALUE( - 89.419), SIMDE_FLOAT16_VALUE( 34.071) } }, + { { SIMDE_FLOAT16_VALUE( 14.291), SIMDE_FLOAT16_VALUE( - 9.864), SIMDE_FLOAT16_VALUE( 72.841), SIMDE_FLOAT16_VALUE( - 90.631) }, + { SIMDE_FLOAT16_VALUE( 40.737), SIMDE_FLOAT16_VALUE( - 40.555), SIMDE_FLOAT16_VALUE( - 53.928), SIMDE_FLOAT16_VALUE( 45.466) }, + { SIMDE_FLOAT16_VALUE( - 9.864), SIMDE_FLOAT16_VALUE( - 40.555), SIMDE_FLOAT16_VALUE( - 90.631), SIMDE_FLOAT16_VALUE( 45.466) } }, + { { SIMDE_FLOAT16_VALUE( 77.115), SIMDE_FLOAT16_VALUE( 37.620), SIMDE_FLOAT16_VALUE( 28.892), SIMDE_FLOAT16_VALUE( - 64.989) }, + { SIMDE_FLOAT16_VALUE( - 18.627), SIMDE_FLOAT16_VALUE( - 85.234), SIMDE_FLOAT16_VALUE( 78.130), SIMDE_FLOAT16_VALUE( - 13.349) }, + { SIMDE_FLOAT16_VALUE( 37.620), SIMDE_FLOAT16_VALUE( - 85.234), SIMDE_FLOAT16_VALUE( - 64.989), SIMDE_FLOAT16_VALUE( - 13.349) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -45,10 +46,25 @@ test_simde_vtrn2_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vtrn2_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vtrn2_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; simde_float32 b[2]; @@ -89,10 +105,25 @@ test_simde_vtrn2_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_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float32x2_t r = simde_vtrn2_f32(a, b); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, b, 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_vtrn2_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -133,10 +164,25 @@ test_simde_vtrn2_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x8_t r = simde_vtrn2_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -177,10 +223,25 @@ test_simde_vtrn2_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x4_t r = simde_vtrn2_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -221,10 +282,25 @@ test_simde_vtrn2_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r = simde_vtrn2_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; uint8_t b[8]; @@ -265,10 +341,25 @@ test_simde_vtrn2_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t b = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t r = simde_vtrn2_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; uint16_t b[4]; @@ -308,10 +399,25 @@ test_simde_vtrn2_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t b = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t r = simde_vtrn2_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; uint32_t b[2]; @@ -351,63 +457,78 @@ test_simde_vtrn2_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r = simde_vtrn2_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 72.335), SIMDE_FLOAT16_C( 7.554), -SIMDE_FLOAT16_C( 33.008), SIMDE_FLOAT16_C( 90.304), - -SIMDE_FLOAT16_C( 99.993), -SIMDE_FLOAT16_C( 50.693), -SIMDE_FLOAT16_C( 79.762), SIMDE_FLOAT16_C( 7.872) }, - { -SIMDE_FLOAT16_C( 8.557), SIMDE_FLOAT16_C( 96.325), -SIMDE_FLOAT16_C( 89.713), SIMDE_FLOAT16_C( 36.819), - SIMDE_FLOAT16_C( 5.553), SIMDE_FLOAT16_C( 14.489), SIMDE_FLOAT16_C( 5.427), SIMDE_FLOAT16_C( 32.305) }, - { SIMDE_FLOAT16_C( 7.554), SIMDE_FLOAT16_C( 96.325), SIMDE_FLOAT16_C( 90.304), SIMDE_FLOAT16_C( 36.819), - -SIMDE_FLOAT16_C( 50.693), SIMDE_FLOAT16_C( 14.489), SIMDE_FLOAT16_C( 7.872), SIMDE_FLOAT16_C( 32.305) } }, - { { SIMDE_FLOAT16_C( 74.913), -SIMDE_FLOAT16_C( 11.970), -SIMDE_FLOAT16_C( 42.824), -SIMDE_FLOAT16_C( 82.513), - -SIMDE_FLOAT16_C( 55.926), SIMDE_FLOAT16_C( 86.502), -SIMDE_FLOAT16_C( 85.855), SIMDE_FLOAT16_C( 25.208) }, - { SIMDE_FLOAT16_C( 6.209), SIMDE_FLOAT16_C( 90.752), -SIMDE_FLOAT16_C( 82.451), -SIMDE_FLOAT16_C( 91.435), - SIMDE_FLOAT16_C( 66.777), -SIMDE_FLOAT16_C( 74.104), -SIMDE_FLOAT16_C( 66.222), -SIMDE_FLOAT16_C( 49.415) }, - { -SIMDE_FLOAT16_C( 11.970), SIMDE_FLOAT16_C( 90.752), -SIMDE_FLOAT16_C( 82.513), -SIMDE_FLOAT16_C( 91.435), - SIMDE_FLOAT16_C( 86.502), -SIMDE_FLOAT16_C( 74.104), SIMDE_FLOAT16_C( 25.208), -SIMDE_FLOAT16_C( 49.415) } }, - { { -SIMDE_FLOAT16_C( 63.196), -SIMDE_FLOAT16_C( 52.466), -SIMDE_FLOAT16_C( 73.706), SIMDE_FLOAT16_C( 40.555), - -SIMDE_FLOAT16_C( 76.544), SIMDE_FLOAT16_C( 87.237), SIMDE_FLOAT16_C( 84.511), -SIMDE_FLOAT16_C( 75.225) }, - { SIMDE_FLOAT16_C( 44.539), SIMDE_FLOAT16_C( 21.319), SIMDE_FLOAT16_C( 66.231), -SIMDE_FLOAT16_C( 19.440), - SIMDE_FLOAT16_C( 72.319), -SIMDE_FLOAT16_C( 77.793), SIMDE_FLOAT16_C( 71.130), SIMDE_FLOAT16_C( 32.971) }, - { -SIMDE_FLOAT16_C( 52.466), SIMDE_FLOAT16_C( 21.319), SIMDE_FLOAT16_C( 40.555), -SIMDE_FLOAT16_C( 19.440), - SIMDE_FLOAT16_C( 87.237), -SIMDE_FLOAT16_C( 77.793), -SIMDE_FLOAT16_C( 75.225), SIMDE_FLOAT16_C( 32.971) } }, - { { -SIMDE_FLOAT16_C( 44.126), SIMDE_FLOAT16_C( 81.561), -SIMDE_FLOAT16_C( 38.052), SIMDE_FLOAT16_C( 19.498), - -SIMDE_FLOAT16_C( 93.987), SIMDE_FLOAT16_C( 83.750), -SIMDE_FLOAT16_C( 87.122), SIMDE_FLOAT16_C( 72.370) }, - { SIMDE_FLOAT16_C( 57.508), -SIMDE_FLOAT16_C( 39.509), -SIMDE_FLOAT16_C( 62.778), SIMDE_FLOAT16_C( 95.740), - -SIMDE_FLOAT16_C( 53.685), SIMDE_FLOAT16_C( 86.996), -SIMDE_FLOAT16_C( 59.984), SIMDE_FLOAT16_C( 75.447) }, - { SIMDE_FLOAT16_C( 81.561), -SIMDE_FLOAT16_C( 39.509), SIMDE_FLOAT16_C( 19.498), SIMDE_FLOAT16_C( 95.740), - SIMDE_FLOAT16_C( 83.750), SIMDE_FLOAT16_C( 86.996), SIMDE_FLOAT16_C( 72.370), SIMDE_FLOAT16_C( 75.447) } }, - { { SIMDE_FLOAT16_C( 84.124), SIMDE_FLOAT16_C( 57.505), -SIMDE_FLOAT16_C( 95.462), SIMDE_FLOAT16_C( 81.748), - SIMDE_FLOAT16_C( 24.643), SIMDE_FLOAT16_C( 70.285), -SIMDE_FLOAT16_C( 69.576), SIMDE_FLOAT16_C( 73.340) }, - { SIMDE_FLOAT16_C( 17.355), SIMDE_FLOAT16_C( 5.498), SIMDE_FLOAT16_C( 29.349), SIMDE_FLOAT16_C( 93.614), - SIMDE_FLOAT16_C( 78.556), -SIMDE_FLOAT16_C( 70.390), SIMDE_FLOAT16_C( 53.898), SIMDE_FLOAT16_C( 55.877) }, - { SIMDE_FLOAT16_C( 57.505), SIMDE_FLOAT16_C( 5.498), SIMDE_FLOAT16_C( 81.748), SIMDE_FLOAT16_C( 93.614), - SIMDE_FLOAT16_C( 70.285), -SIMDE_FLOAT16_C( 70.390), SIMDE_FLOAT16_C( 73.340), SIMDE_FLOAT16_C( 55.877) } }, - { { -SIMDE_FLOAT16_C( 9.431), -SIMDE_FLOAT16_C( 67.084), SIMDE_FLOAT16_C( 3.039), -SIMDE_FLOAT16_C( 23.339), - -SIMDE_FLOAT16_C( 70.932), -SIMDE_FLOAT16_C( 71.857), SIMDE_FLOAT16_C( 23.002), -SIMDE_FLOAT16_C( 46.362) }, - { SIMDE_FLOAT16_C( 43.482), SIMDE_FLOAT16_C( 21.428), -SIMDE_FLOAT16_C( 1.230), -SIMDE_FLOAT16_C( 40.972), - -SIMDE_FLOAT16_C( 47.974), SIMDE_FLOAT16_C( 73.628), -SIMDE_FLOAT16_C( 29.720), -SIMDE_FLOAT16_C( 90.383) }, - { -SIMDE_FLOAT16_C( 67.084), SIMDE_FLOAT16_C( 21.428), -SIMDE_FLOAT16_C( 23.339), -SIMDE_FLOAT16_C( 40.972), - -SIMDE_FLOAT16_C( 71.857), SIMDE_FLOAT16_C( 73.628), -SIMDE_FLOAT16_C( 46.362), -SIMDE_FLOAT16_C( 90.383) } }, - { { SIMDE_FLOAT16_C( 95.642), -SIMDE_FLOAT16_C( 87.854), -SIMDE_FLOAT16_C( 44.833), SIMDE_FLOAT16_C( 50.993), - -SIMDE_FLOAT16_C( 1.937), SIMDE_FLOAT16_C( 79.506), SIMDE_FLOAT16_C( 71.543), SIMDE_FLOAT16_C( 92.534) }, - { -SIMDE_FLOAT16_C( 89.081), -SIMDE_FLOAT16_C( 58.662), -SIMDE_FLOAT16_C( 70.366), -SIMDE_FLOAT16_C( 82.181), - -SIMDE_FLOAT16_C( 14.473), SIMDE_FLOAT16_C( 16.003), -SIMDE_FLOAT16_C( 24.386), SIMDE_FLOAT16_C( 17.897) }, - { -SIMDE_FLOAT16_C( 87.854), -SIMDE_FLOAT16_C( 58.662), SIMDE_FLOAT16_C( 50.993), -SIMDE_FLOAT16_C( 82.181), - SIMDE_FLOAT16_C( 79.506), SIMDE_FLOAT16_C( 16.003), SIMDE_FLOAT16_C( 92.534), SIMDE_FLOAT16_C( 17.897) } }, - { { SIMDE_FLOAT16_C( 7.217), -SIMDE_FLOAT16_C( 3.575), -SIMDE_FLOAT16_C( 54.338), -SIMDE_FLOAT16_C( 88.934), - -SIMDE_FLOAT16_C( 45.428), -SIMDE_FLOAT16_C( 96.685), -SIMDE_FLOAT16_C( 19.259), -SIMDE_FLOAT16_C( 78.009) }, - { SIMDE_FLOAT16_C( 59.084), -SIMDE_FLOAT16_C( 63.373), -SIMDE_FLOAT16_C( 74.830), SIMDE_FLOAT16_C( 65.237), - SIMDE_FLOAT16_C( 6.826), SIMDE_FLOAT16_C( 80.287), -SIMDE_FLOAT16_C( 55.550), -SIMDE_FLOAT16_C( 99.593) }, - { -SIMDE_FLOAT16_C( 3.575), -SIMDE_FLOAT16_C( 63.373), -SIMDE_FLOAT16_C( 88.934), SIMDE_FLOAT16_C( 65.237), - -SIMDE_FLOAT16_C( 96.685), SIMDE_FLOAT16_C( 80.287), -SIMDE_FLOAT16_C( 78.009), -SIMDE_FLOAT16_C( 99.593) } }, + { { SIMDE_FLOAT16_VALUE( 72.335), SIMDE_FLOAT16_VALUE( 7.554), SIMDE_FLOAT16_VALUE( - 33.008), SIMDE_FLOAT16_VALUE( 90.304), + SIMDE_FLOAT16_VALUE( - 99.993), SIMDE_FLOAT16_VALUE( - 50.693), SIMDE_FLOAT16_VALUE( - 79.762), SIMDE_FLOAT16_VALUE( 7.872) }, + { SIMDE_FLOAT16_VALUE( - 8.557), SIMDE_FLOAT16_VALUE( 96.325), SIMDE_FLOAT16_VALUE( - 89.713), SIMDE_FLOAT16_VALUE( 36.819), + SIMDE_FLOAT16_VALUE( 5.553), SIMDE_FLOAT16_VALUE( 14.489), SIMDE_FLOAT16_VALUE( 5.427), SIMDE_FLOAT16_VALUE( 32.305) }, + { SIMDE_FLOAT16_VALUE( 7.554), SIMDE_FLOAT16_VALUE( 96.325), SIMDE_FLOAT16_VALUE( 90.304), SIMDE_FLOAT16_VALUE( 36.819), + SIMDE_FLOAT16_VALUE( - 50.693), SIMDE_FLOAT16_VALUE( 14.489), SIMDE_FLOAT16_VALUE( 7.872), SIMDE_FLOAT16_VALUE( 32.305) } }, + { { SIMDE_FLOAT16_VALUE( 74.913), SIMDE_FLOAT16_VALUE( - 11.970), SIMDE_FLOAT16_VALUE( - 42.824), SIMDE_FLOAT16_VALUE( - 82.513), + SIMDE_FLOAT16_VALUE( - 55.926), SIMDE_FLOAT16_VALUE( 86.502), SIMDE_FLOAT16_VALUE( - 85.855), SIMDE_FLOAT16_VALUE( 25.208) }, + { SIMDE_FLOAT16_VALUE( 6.209), SIMDE_FLOAT16_VALUE( 90.752), SIMDE_FLOAT16_VALUE( - 82.451), SIMDE_FLOAT16_VALUE( - 91.435), + SIMDE_FLOAT16_VALUE( 66.777), SIMDE_FLOAT16_VALUE( - 74.104), SIMDE_FLOAT16_VALUE( - 66.222), SIMDE_FLOAT16_VALUE( - 49.415) }, + { SIMDE_FLOAT16_VALUE( - 11.970), SIMDE_FLOAT16_VALUE( 90.752), SIMDE_FLOAT16_VALUE( - 82.513), SIMDE_FLOAT16_VALUE( - 91.435), + SIMDE_FLOAT16_VALUE( 86.502), SIMDE_FLOAT16_VALUE( - 74.104), SIMDE_FLOAT16_VALUE( 25.208), SIMDE_FLOAT16_VALUE( - 49.415) } }, + { { SIMDE_FLOAT16_VALUE( - 63.196), SIMDE_FLOAT16_VALUE( - 52.466), SIMDE_FLOAT16_VALUE( - 73.706), SIMDE_FLOAT16_VALUE( 40.555), + SIMDE_FLOAT16_VALUE( - 76.544), SIMDE_FLOAT16_VALUE( 87.237), SIMDE_FLOAT16_VALUE( 84.511), SIMDE_FLOAT16_VALUE( - 75.225) }, + { SIMDE_FLOAT16_VALUE( 44.539), SIMDE_FLOAT16_VALUE( 21.319), SIMDE_FLOAT16_VALUE( 66.231), SIMDE_FLOAT16_VALUE( - 19.440), + SIMDE_FLOAT16_VALUE( 72.319), SIMDE_FLOAT16_VALUE( - 77.793), SIMDE_FLOAT16_VALUE( 71.130), SIMDE_FLOAT16_VALUE( 32.971) }, + { SIMDE_FLOAT16_VALUE( - 52.466), SIMDE_FLOAT16_VALUE( 21.319), SIMDE_FLOAT16_VALUE( 40.555), SIMDE_FLOAT16_VALUE( - 19.440), + SIMDE_FLOAT16_VALUE( 87.237), SIMDE_FLOAT16_VALUE( - 77.793), SIMDE_FLOAT16_VALUE( - 75.225), SIMDE_FLOAT16_VALUE( 32.971) } }, + { { SIMDE_FLOAT16_VALUE( - 44.126), SIMDE_FLOAT16_VALUE( 81.561), SIMDE_FLOAT16_VALUE( - 38.052), SIMDE_FLOAT16_VALUE( 19.498), + SIMDE_FLOAT16_VALUE( - 93.987), SIMDE_FLOAT16_VALUE( 83.750), SIMDE_FLOAT16_VALUE( - 87.122), SIMDE_FLOAT16_VALUE( 72.370) }, + { SIMDE_FLOAT16_VALUE( 57.508), SIMDE_FLOAT16_VALUE( - 39.509), SIMDE_FLOAT16_VALUE( - 62.778), SIMDE_FLOAT16_VALUE( 95.740), + SIMDE_FLOAT16_VALUE( - 53.685), SIMDE_FLOAT16_VALUE( 86.996), SIMDE_FLOAT16_VALUE( - 59.984), SIMDE_FLOAT16_VALUE( 75.447) }, + { SIMDE_FLOAT16_VALUE( 81.561), SIMDE_FLOAT16_VALUE( - 39.509), SIMDE_FLOAT16_VALUE( 19.498), SIMDE_FLOAT16_VALUE( 95.740), + SIMDE_FLOAT16_VALUE( 83.750), SIMDE_FLOAT16_VALUE( 86.996), SIMDE_FLOAT16_VALUE( 72.370), SIMDE_FLOAT16_VALUE( 75.447) } }, + { { SIMDE_FLOAT16_VALUE( 84.124), SIMDE_FLOAT16_VALUE( 57.505), SIMDE_FLOAT16_VALUE( - 95.462), SIMDE_FLOAT16_VALUE( 81.748), + SIMDE_FLOAT16_VALUE( 24.643), SIMDE_FLOAT16_VALUE( 70.285), SIMDE_FLOAT16_VALUE( - 69.576), SIMDE_FLOAT16_VALUE( 73.340) }, + { SIMDE_FLOAT16_VALUE( 17.355), SIMDE_FLOAT16_VALUE( 5.498), SIMDE_FLOAT16_VALUE( 29.349), SIMDE_FLOAT16_VALUE( 93.614), + SIMDE_FLOAT16_VALUE( 78.556), SIMDE_FLOAT16_VALUE( - 70.390), SIMDE_FLOAT16_VALUE( 53.898), SIMDE_FLOAT16_VALUE( 55.877) }, + { SIMDE_FLOAT16_VALUE( 57.505), SIMDE_FLOAT16_VALUE( 5.498), SIMDE_FLOAT16_VALUE( 81.748), SIMDE_FLOAT16_VALUE( 93.614), + SIMDE_FLOAT16_VALUE( 70.285), SIMDE_FLOAT16_VALUE( - 70.390), SIMDE_FLOAT16_VALUE( 73.340), SIMDE_FLOAT16_VALUE( 55.877) } }, + { { SIMDE_FLOAT16_VALUE( - 9.431), SIMDE_FLOAT16_VALUE( - 67.084), SIMDE_FLOAT16_VALUE( 3.039), SIMDE_FLOAT16_VALUE( - 23.339), + SIMDE_FLOAT16_VALUE( - 70.932), SIMDE_FLOAT16_VALUE( - 71.857), SIMDE_FLOAT16_VALUE( 23.002), SIMDE_FLOAT16_VALUE( - 46.362) }, + { SIMDE_FLOAT16_VALUE( 43.482), SIMDE_FLOAT16_VALUE( 21.428), SIMDE_FLOAT16_VALUE( - 1.230), SIMDE_FLOAT16_VALUE( - 40.972), + SIMDE_FLOAT16_VALUE( - 47.974), SIMDE_FLOAT16_VALUE( 73.628), SIMDE_FLOAT16_VALUE( - 29.720), SIMDE_FLOAT16_VALUE( - 90.383) }, + { SIMDE_FLOAT16_VALUE( - 67.084), SIMDE_FLOAT16_VALUE( 21.428), SIMDE_FLOAT16_VALUE( - 23.339), SIMDE_FLOAT16_VALUE( - 40.972), + SIMDE_FLOAT16_VALUE( - 71.857), SIMDE_FLOAT16_VALUE( 73.628), SIMDE_FLOAT16_VALUE( - 46.362), SIMDE_FLOAT16_VALUE( - 90.383) } }, + { { SIMDE_FLOAT16_VALUE( 95.642), SIMDE_FLOAT16_VALUE( - 87.854), SIMDE_FLOAT16_VALUE( - 44.833), SIMDE_FLOAT16_VALUE( 50.993), + SIMDE_FLOAT16_VALUE( - 1.937), SIMDE_FLOAT16_VALUE( 79.506), SIMDE_FLOAT16_VALUE( 71.543), SIMDE_FLOAT16_VALUE( 92.534) }, + { SIMDE_FLOAT16_VALUE( - 89.081), SIMDE_FLOAT16_VALUE( - 58.662), SIMDE_FLOAT16_VALUE( - 70.366), SIMDE_FLOAT16_VALUE( - 82.181), + SIMDE_FLOAT16_VALUE( - 14.473), SIMDE_FLOAT16_VALUE( 16.003), SIMDE_FLOAT16_VALUE( - 24.386), SIMDE_FLOAT16_VALUE( 17.897) }, + { SIMDE_FLOAT16_VALUE( - 87.854), SIMDE_FLOAT16_VALUE( - 58.662), SIMDE_FLOAT16_VALUE( 50.993), SIMDE_FLOAT16_VALUE( - 82.181), + SIMDE_FLOAT16_VALUE( 79.506), SIMDE_FLOAT16_VALUE( 16.003), SIMDE_FLOAT16_VALUE( 92.534), SIMDE_FLOAT16_VALUE( 17.897) } }, + { { SIMDE_FLOAT16_VALUE( 7.217), SIMDE_FLOAT16_VALUE( - 3.575), SIMDE_FLOAT16_VALUE( - 54.338), SIMDE_FLOAT16_VALUE( - 88.934), + SIMDE_FLOAT16_VALUE( - 45.428), SIMDE_FLOAT16_VALUE( - 96.685), SIMDE_FLOAT16_VALUE( - 19.259), SIMDE_FLOAT16_VALUE( - 78.009) }, + { SIMDE_FLOAT16_VALUE( 59.084), SIMDE_FLOAT16_VALUE( - 63.373), SIMDE_FLOAT16_VALUE( - 74.830), SIMDE_FLOAT16_VALUE( 65.237), + SIMDE_FLOAT16_VALUE( 6.826), SIMDE_FLOAT16_VALUE( 80.287), SIMDE_FLOAT16_VALUE( - 55.550), SIMDE_FLOAT16_VALUE( - 99.593) }, + { SIMDE_FLOAT16_VALUE( - 3.575), SIMDE_FLOAT16_VALUE( - 63.373), SIMDE_FLOAT16_VALUE( - 88.934), SIMDE_FLOAT16_VALUE( 65.237), + SIMDE_FLOAT16_VALUE( - 96.685), SIMDE_FLOAT16_VALUE( 80.287), SIMDE_FLOAT16_VALUE( - 78.009), SIMDE_FLOAT16_VALUE( - 99.593) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -418,10 +539,25 @@ test_simde_vtrn2q_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vtrn2q_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float32 b[4]; @@ -461,10 +597,25 @@ test_simde_vtrn2q_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_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float32x4_t r = simde_vtrn2q_f32(a, b); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[2]; simde_float64 b[2]; @@ -505,10 +656,25 @@ test_simde_vtrn2q_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_float64x2_t b = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r = simde_vtrn2q_f64(a, b); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -573,10 +739,25 @@ test_simde_vtrn2q_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x16_t r = simde_vtrn2q_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -617,10 +798,25 @@ test_simde_vtrn2q_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t r = simde_vtrn2q_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -660,10 +856,25 @@ test_simde_vtrn2q_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t r = simde_vtrn2q_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[2]; int64_t b[2]; @@ -703,10 +914,25 @@ test_simde_vtrn2q_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t r = simde_vtrn2q_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; uint8_t b[16]; @@ -771,10 +997,25 @@ test_simde_vtrn2q_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t r = simde_vtrn2q_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; uint16_t b[8]; @@ -814,10 +1055,25 @@ test_simde_vtrn2q_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t r = simde_vtrn2q_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; uint32_t b[4]; @@ -858,10 +1114,25 @@ test_simde_vtrn2q_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t r = simde_vtrn2q_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vtrn2q_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[2]; uint64_t b[2]; @@ -901,6 +1172,20 @@ test_simde_vtrn2q_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t r = simde_vtrn2q_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/uzp.c b/test/arm/neon/uzp.c index 3e3bd9942..6a2fd6e28 100644 --- a/test/arm/neon/uzp.c +++ b/test/arm/neon/uzp.c @@ -7,43 +7,44 @@ static int test_simde_vuzp_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 b[4]; simde_float16 r[2][4]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 59.585), -SIMDE_FLOAT16_C( 87.027), -SIMDE_FLOAT16_C( 74.361), -SIMDE_FLOAT16_C( 30.649) }, - { SIMDE_FLOAT16_C( 93.073), -SIMDE_FLOAT16_C( 31.922), SIMDE_FLOAT16_C( 17.320), -SIMDE_FLOAT16_C( 55.446) }, - { { SIMDE_FLOAT16_C( 59.585), -SIMDE_FLOAT16_C( 74.361), SIMDE_FLOAT16_C( 93.073), SIMDE_FLOAT16_C( 17.320) }, - { -SIMDE_FLOAT16_C( 87.027), -SIMDE_FLOAT16_C( 30.649), -SIMDE_FLOAT16_C( 31.922), -SIMDE_FLOAT16_C( 55.446) } } }, - { { SIMDE_FLOAT16_C( 9.958), SIMDE_FLOAT16_C( 85.170), -SIMDE_FLOAT16_C( 72.074), -SIMDE_FLOAT16_C( 27.806) }, - { SIMDE_FLOAT16_C( 78.386), SIMDE_FLOAT16_C( 6.905), SIMDE_FLOAT16_C( 69.743), SIMDE_FLOAT16_C( 45.300) }, - { { SIMDE_FLOAT16_C( 9.958), -SIMDE_FLOAT16_C( 72.074), SIMDE_FLOAT16_C( 78.386), SIMDE_FLOAT16_C( 69.743) }, - { SIMDE_FLOAT16_C( 85.170), -SIMDE_FLOAT16_C( 27.806), SIMDE_FLOAT16_C( 6.905), SIMDE_FLOAT16_C( 45.300) } } }, - { { -SIMDE_FLOAT16_C( 69.822), -SIMDE_FLOAT16_C( 45.174), -SIMDE_FLOAT16_C( 30.230), -SIMDE_FLOAT16_C( 86.717) }, - { SIMDE_FLOAT16_C( 40.263), SIMDE_FLOAT16_C( 89.268), SIMDE_FLOAT16_C( 94.905), SIMDE_FLOAT16_C( 59.037) }, - { { -SIMDE_FLOAT16_C( 69.822), -SIMDE_FLOAT16_C( 30.230), SIMDE_FLOAT16_C( 40.263), SIMDE_FLOAT16_C( 94.905) }, - { -SIMDE_FLOAT16_C( 45.174), -SIMDE_FLOAT16_C( 86.717), SIMDE_FLOAT16_C( 89.268), SIMDE_FLOAT16_C( 59.037) } } }, - { { SIMDE_FLOAT16_C( 0.579), SIMDE_FLOAT16_C( 53.168), -SIMDE_FLOAT16_C( 49.281), -SIMDE_FLOAT16_C( 2.295) }, - { SIMDE_FLOAT16_C( 64.385), SIMDE_FLOAT16_C( 51.685), SIMDE_FLOAT16_C( 44.562), SIMDE_FLOAT16_C( 6.481) }, - { { SIMDE_FLOAT16_C( 0.579), -SIMDE_FLOAT16_C( 49.281), SIMDE_FLOAT16_C( 64.385), SIMDE_FLOAT16_C( 44.562) }, - { SIMDE_FLOAT16_C( 53.168), -SIMDE_FLOAT16_C( 2.295), SIMDE_FLOAT16_C( 51.685), SIMDE_FLOAT16_C( 6.481) } } }, - { { -SIMDE_FLOAT16_C( 86.361), -SIMDE_FLOAT16_C( 69.966), SIMDE_FLOAT16_C( 26.111), SIMDE_FLOAT16_C( 5.103) }, - { -SIMDE_FLOAT16_C( 54.134), -SIMDE_FLOAT16_C( 87.125), SIMDE_FLOAT16_C( 29.118), -SIMDE_FLOAT16_C( 4.129) }, - { { -SIMDE_FLOAT16_C( 86.361), SIMDE_FLOAT16_C( 26.111), -SIMDE_FLOAT16_C( 54.134), SIMDE_FLOAT16_C( 29.118) }, - { -SIMDE_FLOAT16_C( 69.966), SIMDE_FLOAT16_C( 5.103), -SIMDE_FLOAT16_C( 87.125), -SIMDE_FLOAT16_C( 4.129) } } }, - { { SIMDE_FLOAT16_C( 88.320), SIMDE_FLOAT16_C( 36.543), SIMDE_FLOAT16_C( 16.274), SIMDE_FLOAT16_C( 89.586) }, - { -SIMDE_FLOAT16_C( 43.919), -SIMDE_FLOAT16_C( 42.540), SIMDE_FLOAT16_C( 43.983), SIMDE_FLOAT16_C( 48.582) }, - { { SIMDE_FLOAT16_C( 88.320), SIMDE_FLOAT16_C( 16.274), -SIMDE_FLOAT16_C( 43.919), SIMDE_FLOAT16_C( 43.983) }, - { SIMDE_FLOAT16_C( 36.543), SIMDE_FLOAT16_C( 89.586), -SIMDE_FLOAT16_C( 42.540), SIMDE_FLOAT16_C( 48.582) } } }, - { { SIMDE_FLOAT16_C( 41.012), SIMDE_FLOAT16_C( 97.838), SIMDE_FLOAT16_C( 17.977), SIMDE_FLOAT16_C( 3.700) }, - { -SIMDE_FLOAT16_C( 3.857), -SIMDE_FLOAT16_C( 64.852), -SIMDE_FLOAT16_C( 33.562), SIMDE_FLOAT16_C( 17.944) }, - { { SIMDE_FLOAT16_C( 41.012), SIMDE_FLOAT16_C( 17.977), -SIMDE_FLOAT16_C( 3.857), -SIMDE_FLOAT16_C( 33.562) }, - { SIMDE_FLOAT16_C( 97.838), SIMDE_FLOAT16_C( 3.700), -SIMDE_FLOAT16_C( 64.852), SIMDE_FLOAT16_C( 17.944) } } }, - { { -SIMDE_FLOAT16_C( 74.409), -SIMDE_FLOAT16_C( 5.545), -SIMDE_FLOAT16_C( 17.427), -SIMDE_FLOAT16_C( 74.159) }, - { -SIMDE_FLOAT16_C( 93.810), SIMDE_FLOAT16_C( 50.112), SIMDE_FLOAT16_C( 65.086), SIMDE_FLOAT16_C( 63.782) }, - { { -SIMDE_FLOAT16_C( 74.409), -SIMDE_FLOAT16_C( 17.427), -SIMDE_FLOAT16_C( 93.810), SIMDE_FLOAT16_C( 65.086) }, - { -SIMDE_FLOAT16_C( 5.545), -SIMDE_FLOAT16_C( 74.159), SIMDE_FLOAT16_C( 50.112), SIMDE_FLOAT16_C( 63.782) } } }, + { { SIMDE_FLOAT16_VALUE( 59.585), SIMDE_FLOAT16_VALUE( - 87.027), SIMDE_FLOAT16_VALUE( - 74.361), SIMDE_FLOAT16_VALUE( - 30.649) }, + { SIMDE_FLOAT16_VALUE( 93.073), SIMDE_FLOAT16_VALUE( - 31.922), SIMDE_FLOAT16_VALUE( 17.320), SIMDE_FLOAT16_VALUE( - 55.446) }, + { { SIMDE_FLOAT16_VALUE( 59.585), SIMDE_FLOAT16_VALUE( - 74.361), SIMDE_FLOAT16_VALUE( 93.073), SIMDE_FLOAT16_VALUE( 17.320) }, + { SIMDE_FLOAT16_VALUE( - 87.027), SIMDE_FLOAT16_VALUE( - 30.649), SIMDE_FLOAT16_VALUE( - 31.922), SIMDE_FLOAT16_VALUE( - 55.446) } } }, + { { SIMDE_FLOAT16_VALUE( 9.958), SIMDE_FLOAT16_VALUE( 85.170), SIMDE_FLOAT16_VALUE( - 72.074), SIMDE_FLOAT16_VALUE( - 27.806) }, + { SIMDE_FLOAT16_VALUE( 78.386), SIMDE_FLOAT16_VALUE( 6.905), SIMDE_FLOAT16_VALUE( 69.743), SIMDE_FLOAT16_VALUE( 45.300) }, + { { SIMDE_FLOAT16_VALUE( 9.958), SIMDE_FLOAT16_VALUE( - 72.074), SIMDE_FLOAT16_VALUE( 78.386), SIMDE_FLOAT16_VALUE( 69.743) }, + { SIMDE_FLOAT16_VALUE( 85.170), SIMDE_FLOAT16_VALUE( - 27.806), SIMDE_FLOAT16_VALUE( 6.905), SIMDE_FLOAT16_VALUE( 45.300) } } }, + { { SIMDE_FLOAT16_VALUE( - 69.822), SIMDE_FLOAT16_VALUE( - 45.174), SIMDE_FLOAT16_VALUE( - 30.230), SIMDE_FLOAT16_VALUE( - 86.717) }, + { SIMDE_FLOAT16_VALUE( 40.263), SIMDE_FLOAT16_VALUE( 89.268), SIMDE_FLOAT16_VALUE( 94.905), SIMDE_FLOAT16_VALUE( 59.037) }, + { { SIMDE_FLOAT16_VALUE( - 69.822), SIMDE_FLOAT16_VALUE( - 30.230), SIMDE_FLOAT16_VALUE( 40.263), SIMDE_FLOAT16_VALUE( 94.905) }, + { SIMDE_FLOAT16_VALUE( - 45.174), SIMDE_FLOAT16_VALUE( - 86.717), SIMDE_FLOAT16_VALUE( 89.268), SIMDE_FLOAT16_VALUE( 59.037) } } }, + { { SIMDE_FLOAT16_VALUE( 0.579), SIMDE_FLOAT16_VALUE( 53.168), SIMDE_FLOAT16_VALUE( - 49.281), SIMDE_FLOAT16_VALUE( - 2.295) }, + { SIMDE_FLOAT16_VALUE( 64.385), SIMDE_FLOAT16_VALUE( 51.685), SIMDE_FLOAT16_VALUE( 44.562), SIMDE_FLOAT16_VALUE( 6.481) }, + { { SIMDE_FLOAT16_VALUE( 0.579), SIMDE_FLOAT16_VALUE( - 49.281), SIMDE_FLOAT16_VALUE( 64.385), SIMDE_FLOAT16_VALUE( 44.562) }, + { SIMDE_FLOAT16_VALUE( 53.168), SIMDE_FLOAT16_VALUE( - 2.295), SIMDE_FLOAT16_VALUE( 51.685), SIMDE_FLOAT16_VALUE( 6.481) } } }, + { { SIMDE_FLOAT16_VALUE( - 86.361), SIMDE_FLOAT16_VALUE( - 69.966), SIMDE_FLOAT16_VALUE( 26.111), SIMDE_FLOAT16_VALUE( 5.103) }, + { SIMDE_FLOAT16_VALUE( - 54.134), SIMDE_FLOAT16_VALUE( - 87.125), SIMDE_FLOAT16_VALUE( 29.118), SIMDE_FLOAT16_VALUE( - 4.129) }, + { { SIMDE_FLOAT16_VALUE( - 86.361), SIMDE_FLOAT16_VALUE( 26.111), SIMDE_FLOAT16_VALUE( - 54.134), SIMDE_FLOAT16_VALUE( 29.118) }, + { SIMDE_FLOAT16_VALUE( - 69.966), SIMDE_FLOAT16_VALUE( 5.103), SIMDE_FLOAT16_VALUE( - 87.125), SIMDE_FLOAT16_VALUE( - 4.129) } } }, + { { SIMDE_FLOAT16_VALUE( 88.320), SIMDE_FLOAT16_VALUE( 36.543), SIMDE_FLOAT16_VALUE( 16.274), SIMDE_FLOAT16_VALUE( 89.586) }, + { SIMDE_FLOAT16_VALUE( - 43.919), SIMDE_FLOAT16_VALUE( - 42.540), SIMDE_FLOAT16_VALUE( 43.983), SIMDE_FLOAT16_VALUE( 48.582) }, + { { SIMDE_FLOAT16_VALUE( 88.320), SIMDE_FLOAT16_VALUE( 16.274), SIMDE_FLOAT16_VALUE( - 43.919), SIMDE_FLOAT16_VALUE( 43.983) }, + { SIMDE_FLOAT16_VALUE( 36.543), SIMDE_FLOAT16_VALUE( 89.586), SIMDE_FLOAT16_VALUE( - 42.540), SIMDE_FLOAT16_VALUE( 48.582) } } }, + { { SIMDE_FLOAT16_VALUE( 41.012), SIMDE_FLOAT16_VALUE( 97.838), SIMDE_FLOAT16_VALUE( 17.977), SIMDE_FLOAT16_VALUE( 3.700) }, + { SIMDE_FLOAT16_VALUE( - 3.857), SIMDE_FLOAT16_VALUE( - 64.852), SIMDE_FLOAT16_VALUE( - 33.562), SIMDE_FLOAT16_VALUE( 17.944) }, + { { SIMDE_FLOAT16_VALUE( 41.012), SIMDE_FLOAT16_VALUE( 17.977), SIMDE_FLOAT16_VALUE( - 3.857), SIMDE_FLOAT16_VALUE( - 33.562) }, + { SIMDE_FLOAT16_VALUE( 97.838), SIMDE_FLOAT16_VALUE( 3.700), SIMDE_FLOAT16_VALUE( - 64.852), SIMDE_FLOAT16_VALUE( 17.944) } } }, + { { SIMDE_FLOAT16_VALUE( - 74.409), SIMDE_FLOAT16_VALUE( - 5.545), SIMDE_FLOAT16_VALUE( - 17.427), SIMDE_FLOAT16_VALUE( - 74.159) }, + { SIMDE_FLOAT16_VALUE( - 93.810), SIMDE_FLOAT16_VALUE( 50.112), SIMDE_FLOAT16_VALUE( 65.086), SIMDE_FLOAT16_VALUE( 63.782) }, + { { SIMDE_FLOAT16_VALUE( - 74.409), SIMDE_FLOAT16_VALUE( - 17.427), SIMDE_FLOAT16_VALUE( - 93.810), SIMDE_FLOAT16_VALUE( 65.086) }, + { SIMDE_FLOAT16_VALUE( - 5.545), SIMDE_FLOAT16_VALUE( - 74.159), SIMDE_FLOAT16_VALUE( 50.112), SIMDE_FLOAT16_VALUE( 63.782) } } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -56,10 +57,25 @@ test_simde_vuzp_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16x2_t r[2] = simde_vuzp_f16(a, b); + + 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_f16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; simde_float32 b[2]; @@ -134,10 +150,25 @@ test_simde_vuzp_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_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float32x2_t r[2] = simde_vuzp_f32(a, b); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -212,10 +243,25 @@ test_simde_vuzp_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x2_t r[2] = simde_vuzp_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -290,10 +336,25 @@ test_simde_vuzp_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x2_t r[2] = simde_vuzp_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -368,10 +429,25 @@ test_simde_vuzp_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r[2] = simde_vuzp_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; uint8_t b[8]; @@ -446,10 +522,25 @@ test_simde_vuzp_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t b = simde_test_arm_neon_random_u8x8(); + simde_uint8x2_t r[2] = simde_vuzp_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; uint16_t b[4]; @@ -523,10 +614,25 @@ test_simde_vuzp_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t b = simde_test_arm_neon_random_u16x4(); + simde_uint16x2_t r[2] = simde_vuzp_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; uint32_t b[2]; @@ -600,79 +706,94 @@ test_simde_vuzp_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r[2] = simde_vuzp_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[2][8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 73.721), SIMDE_FLOAT16_C( 46.339), -SIMDE_FLOAT16_C( 10.427), -SIMDE_FLOAT16_C( 38.234), - -SIMDE_FLOAT16_C( 26.097), SIMDE_FLOAT16_C( 16.887), -SIMDE_FLOAT16_C( 35.759), SIMDE_FLOAT16_C( 44.147) }, - { -SIMDE_FLOAT16_C( 60.955), -SIMDE_FLOAT16_C( 22.797), SIMDE_FLOAT16_C( 18.481), SIMDE_FLOAT16_C( 74.071), - -SIMDE_FLOAT16_C( 22.559), -SIMDE_FLOAT16_C( 85.762), SIMDE_FLOAT16_C( 19.915), SIMDE_FLOAT16_C( 70.645) }, - { { SIMDE_FLOAT16_C( 73.721), -SIMDE_FLOAT16_C( 10.427), -SIMDE_FLOAT16_C( 26.097), -SIMDE_FLOAT16_C( 35.759), - -SIMDE_FLOAT16_C( 60.955), SIMDE_FLOAT16_C( 18.481), -SIMDE_FLOAT16_C( 22.559), SIMDE_FLOAT16_C( 19.915) }, - { SIMDE_FLOAT16_C( 46.339), -SIMDE_FLOAT16_C( 38.234), SIMDE_FLOAT16_C( 16.887), SIMDE_FLOAT16_C( 44.147), - -SIMDE_FLOAT16_C( 22.797), SIMDE_FLOAT16_C( 74.071), -SIMDE_FLOAT16_C( 85.762), SIMDE_FLOAT16_C( 70.645) } } }, - { { -SIMDE_FLOAT16_C( 40.265), -SIMDE_FLOAT16_C( 2.182), SIMDE_FLOAT16_C( 72.917), SIMDE_FLOAT16_C( 13.517), - -SIMDE_FLOAT16_C( 43.058), -SIMDE_FLOAT16_C( 92.395), SIMDE_FLOAT16_C( 74.671), SIMDE_FLOAT16_C( 43.330) }, - { -SIMDE_FLOAT16_C( 30.362), SIMDE_FLOAT16_C( 8.299), -SIMDE_FLOAT16_C( 59.100), SIMDE_FLOAT16_C( 42.001), - SIMDE_FLOAT16_C( 3.619), -SIMDE_FLOAT16_C( 9.776), SIMDE_FLOAT16_C( 59.224), -SIMDE_FLOAT16_C( 70.831) }, - { { -SIMDE_FLOAT16_C( 40.265), SIMDE_FLOAT16_C( 72.917), -SIMDE_FLOAT16_C( 43.058), SIMDE_FLOAT16_C( 74.671), - -SIMDE_FLOAT16_C( 30.362), -SIMDE_FLOAT16_C( 59.100), SIMDE_FLOAT16_C( 3.619), SIMDE_FLOAT16_C( 59.224) }, - { -SIMDE_FLOAT16_C( 2.182), SIMDE_FLOAT16_C( 13.517), -SIMDE_FLOAT16_C( 92.395), SIMDE_FLOAT16_C( 43.330), - SIMDE_FLOAT16_C( 8.299), SIMDE_FLOAT16_C( 42.001), -SIMDE_FLOAT16_C( 9.776), -SIMDE_FLOAT16_C( 70.831) } } }, - { { SIMDE_FLOAT16_C( 5.621), -SIMDE_FLOAT16_C( 81.247), SIMDE_FLOAT16_C( 88.883), -SIMDE_FLOAT16_C( 67.993), - -SIMDE_FLOAT16_C( 42.899), SIMDE_FLOAT16_C( 93.583), -SIMDE_FLOAT16_C( 78.748), -SIMDE_FLOAT16_C( 91.309) }, - { SIMDE_FLOAT16_C( 81.834), -SIMDE_FLOAT16_C( 9.827), SIMDE_FLOAT16_C( 45.970), -SIMDE_FLOAT16_C( 17.700), - SIMDE_FLOAT16_C( 29.375), SIMDE_FLOAT16_C( 29.732), SIMDE_FLOAT16_C( 6.694), -SIMDE_FLOAT16_C( 39.767) }, - { { SIMDE_FLOAT16_C( 5.621), SIMDE_FLOAT16_C( 88.883), -SIMDE_FLOAT16_C( 42.899), -SIMDE_FLOAT16_C( 78.748), - SIMDE_FLOAT16_C( 81.834), SIMDE_FLOAT16_C( 45.970), SIMDE_FLOAT16_C( 29.375), SIMDE_FLOAT16_C( 6.694) }, - { -SIMDE_FLOAT16_C( 81.247), -SIMDE_FLOAT16_C( 67.993), SIMDE_FLOAT16_C( 93.583), -SIMDE_FLOAT16_C( 91.309), - -SIMDE_FLOAT16_C( 9.827), -SIMDE_FLOAT16_C( 17.700), SIMDE_FLOAT16_C( 29.732), -SIMDE_FLOAT16_C( 39.767) } } }, - { { -SIMDE_FLOAT16_C( 46.220), -SIMDE_FLOAT16_C( 82.527), SIMDE_FLOAT16_C( 16.982), -SIMDE_FLOAT16_C( 71.688), - SIMDE_FLOAT16_C( 87.960), SIMDE_FLOAT16_C( 65.171), -SIMDE_FLOAT16_C( 7.922), SIMDE_FLOAT16_C( 7.006) }, - { -SIMDE_FLOAT16_C( 65.689), SIMDE_FLOAT16_C( 3.075), -SIMDE_FLOAT16_C( 37.945), SIMDE_FLOAT16_C( 93.491), - -SIMDE_FLOAT16_C( 96.072), -SIMDE_FLOAT16_C( 91.531), -SIMDE_FLOAT16_C( 19.597), -SIMDE_FLOAT16_C( 43.425) }, - { { -SIMDE_FLOAT16_C( 46.220), SIMDE_FLOAT16_C( 16.982), SIMDE_FLOAT16_C( 87.960), -SIMDE_FLOAT16_C( 7.922), - -SIMDE_FLOAT16_C( 65.689), -SIMDE_FLOAT16_C( 37.945), -SIMDE_FLOAT16_C( 96.072), -SIMDE_FLOAT16_C( 19.597) }, - { -SIMDE_FLOAT16_C( 82.527), -SIMDE_FLOAT16_C( 71.688), SIMDE_FLOAT16_C( 65.171), SIMDE_FLOAT16_C( 7.006), - SIMDE_FLOAT16_C( 3.075), SIMDE_FLOAT16_C( 93.491), -SIMDE_FLOAT16_C( 91.531), -SIMDE_FLOAT16_C( 43.425) } } }, - { { SIMDE_FLOAT16_C( 2.917), SIMDE_FLOAT16_C( 56.631), -SIMDE_FLOAT16_C( 8.652), -SIMDE_FLOAT16_C( 52.253), - -SIMDE_FLOAT16_C( 58.261), -SIMDE_FLOAT16_C( 54.516), -SIMDE_FLOAT16_C( 72.534), -SIMDE_FLOAT16_C( 2.400) }, - { SIMDE_FLOAT16_C( 16.476), -SIMDE_FLOAT16_C( 79.379), -SIMDE_FLOAT16_C( 98.048), SIMDE_FLOAT16_C( 82.106), - SIMDE_FLOAT16_C( 39.266), -SIMDE_FLOAT16_C( 94.860), SIMDE_FLOAT16_C( 35.909), -SIMDE_FLOAT16_C( 75.766) }, - { { SIMDE_FLOAT16_C( 2.917), -SIMDE_FLOAT16_C( 8.652), -SIMDE_FLOAT16_C( 58.261), -SIMDE_FLOAT16_C( 72.534), - SIMDE_FLOAT16_C( 16.476), -SIMDE_FLOAT16_C( 98.048), SIMDE_FLOAT16_C( 39.266), SIMDE_FLOAT16_C( 35.909) }, - { SIMDE_FLOAT16_C( 56.631), -SIMDE_FLOAT16_C( 52.253), -SIMDE_FLOAT16_C( 54.516), -SIMDE_FLOAT16_C( 2.400), - -SIMDE_FLOAT16_C( 79.379), SIMDE_FLOAT16_C( 82.106), -SIMDE_FLOAT16_C( 94.860), -SIMDE_FLOAT16_C( 75.766) } } }, - { { SIMDE_FLOAT16_C( 44.120), SIMDE_FLOAT16_C( 3.642), -SIMDE_FLOAT16_C( 74.784), SIMDE_FLOAT16_C( 65.438), - SIMDE_FLOAT16_C( 4.092), SIMDE_FLOAT16_C( 98.436), SIMDE_FLOAT16_C( 58.246), -SIMDE_FLOAT16_C( 60.461) }, - { SIMDE_FLOAT16_C( 76.015), -SIMDE_FLOAT16_C( 62.906), -SIMDE_FLOAT16_C( 27.211), -SIMDE_FLOAT16_C( 53.115), - -SIMDE_FLOAT16_C( 19.255), SIMDE_FLOAT16_C( 64.714), -SIMDE_FLOAT16_C( 24.123), -SIMDE_FLOAT16_C( 77.006) }, - { { SIMDE_FLOAT16_C( 44.120), -SIMDE_FLOAT16_C( 74.784), SIMDE_FLOAT16_C( 4.092), SIMDE_FLOAT16_C( 58.246), - SIMDE_FLOAT16_C( 76.015), -SIMDE_FLOAT16_C( 27.211), -SIMDE_FLOAT16_C( 19.255), -SIMDE_FLOAT16_C( 24.123) }, - { SIMDE_FLOAT16_C( 3.642), SIMDE_FLOAT16_C( 65.438), SIMDE_FLOAT16_C( 98.436), -SIMDE_FLOAT16_C( 60.461), - -SIMDE_FLOAT16_C( 62.906), -SIMDE_FLOAT16_C( 53.115), SIMDE_FLOAT16_C( 64.714), -SIMDE_FLOAT16_C( 77.006) } } }, - { { SIMDE_FLOAT16_C( 28.681), SIMDE_FLOAT16_C( 95.430), -SIMDE_FLOAT16_C( 1.556), SIMDE_FLOAT16_C( 56.474), - -SIMDE_FLOAT16_C( 8.834), SIMDE_FLOAT16_C( 57.675), -SIMDE_FLOAT16_C( 74.749), SIMDE_FLOAT16_C( 76.983) }, - { -SIMDE_FLOAT16_C( 99.195), -SIMDE_FLOAT16_C( 28.023), SIMDE_FLOAT16_C( 87.270), -SIMDE_FLOAT16_C( 1.591), - SIMDE_FLOAT16_C( 11.636), -SIMDE_FLOAT16_C( 6.493), -SIMDE_FLOAT16_C( 32.712), -SIMDE_FLOAT16_C( 72.389) }, - { { SIMDE_FLOAT16_C( 28.681), -SIMDE_FLOAT16_C( 1.556), -SIMDE_FLOAT16_C( 8.834), -SIMDE_FLOAT16_C( 74.749), - -SIMDE_FLOAT16_C( 99.195), SIMDE_FLOAT16_C( 87.270), SIMDE_FLOAT16_C( 11.636), -SIMDE_FLOAT16_C( 32.712) }, - { SIMDE_FLOAT16_C( 95.430), SIMDE_FLOAT16_C( 56.474), SIMDE_FLOAT16_C( 57.675), SIMDE_FLOAT16_C( 76.983), - -SIMDE_FLOAT16_C( 28.023), -SIMDE_FLOAT16_C( 1.591), -SIMDE_FLOAT16_C( 6.493), -SIMDE_FLOAT16_C( 72.389) } } }, - { { SIMDE_FLOAT16_C( 77.839), -SIMDE_FLOAT16_C( 60.894), -SIMDE_FLOAT16_C( 29.168), -SIMDE_FLOAT16_C( 10.467), - -SIMDE_FLOAT16_C( 99.954), SIMDE_FLOAT16_C( 6.428), -SIMDE_FLOAT16_C( 12.713), SIMDE_FLOAT16_C( 92.257) }, - { SIMDE_FLOAT16_C( 5.688), SIMDE_FLOAT16_C( 43.890), SIMDE_FLOAT16_C( 48.122), -SIMDE_FLOAT16_C( 2.823), - SIMDE_FLOAT16_C( 65.174), SIMDE_FLOAT16_C( 27.456), SIMDE_FLOAT16_C( 71.730), SIMDE_FLOAT16_C( 27.816) }, - { { SIMDE_FLOAT16_C( 77.839), -SIMDE_FLOAT16_C( 29.168), -SIMDE_FLOAT16_C( 99.954), -SIMDE_FLOAT16_C( 12.713), - SIMDE_FLOAT16_C( 5.688), SIMDE_FLOAT16_C( 48.122), SIMDE_FLOAT16_C( 65.174), SIMDE_FLOAT16_C( 71.730) }, - { -SIMDE_FLOAT16_C( 60.894), -SIMDE_FLOAT16_C( 10.467), SIMDE_FLOAT16_C( 6.428), SIMDE_FLOAT16_C( 92.257), - SIMDE_FLOAT16_C( 43.890), -SIMDE_FLOAT16_C( 2.823), SIMDE_FLOAT16_C( 27.456), SIMDE_FLOAT16_C( 27.816) } } }, + { { SIMDE_FLOAT16_VALUE( 73.721), SIMDE_FLOAT16_VALUE( 46.339), SIMDE_FLOAT16_VALUE( - 10.427), SIMDE_FLOAT16_VALUE( - 38.234), + SIMDE_FLOAT16_VALUE( - 26.097), SIMDE_FLOAT16_VALUE( 16.887), SIMDE_FLOAT16_VALUE( - 35.759), SIMDE_FLOAT16_VALUE( 44.147) }, + { SIMDE_FLOAT16_VALUE( - 60.955), SIMDE_FLOAT16_VALUE( - 22.797), SIMDE_FLOAT16_VALUE( 18.481), SIMDE_FLOAT16_VALUE( 74.071), + SIMDE_FLOAT16_VALUE( - 22.559), SIMDE_FLOAT16_VALUE( - 85.762), SIMDE_FLOAT16_VALUE( 19.915), SIMDE_FLOAT16_VALUE( 70.645) }, + { { SIMDE_FLOAT16_VALUE( 73.721), SIMDE_FLOAT16_VALUE( - 10.427), SIMDE_FLOAT16_VALUE( - 26.097), SIMDE_FLOAT16_VALUE( - 35.759), + SIMDE_FLOAT16_VALUE( - 60.955), SIMDE_FLOAT16_VALUE( 18.481), SIMDE_FLOAT16_VALUE( - 22.559), SIMDE_FLOAT16_VALUE( 19.915) }, + { SIMDE_FLOAT16_VALUE( 46.339), SIMDE_FLOAT16_VALUE( - 38.234), SIMDE_FLOAT16_VALUE( 16.887), SIMDE_FLOAT16_VALUE( 44.147), + SIMDE_FLOAT16_VALUE( - 22.797), SIMDE_FLOAT16_VALUE( 74.071), SIMDE_FLOAT16_VALUE( - 85.762), SIMDE_FLOAT16_VALUE( 70.645) } } }, + { { SIMDE_FLOAT16_VALUE( - 40.265), SIMDE_FLOAT16_VALUE( - 2.182), SIMDE_FLOAT16_VALUE( 72.917), SIMDE_FLOAT16_VALUE( 13.517), + SIMDE_FLOAT16_VALUE( - 43.058), SIMDE_FLOAT16_VALUE( - 92.395), SIMDE_FLOAT16_VALUE( 74.671), SIMDE_FLOAT16_VALUE( 43.330) }, + { SIMDE_FLOAT16_VALUE( - 30.362), SIMDE_FLOAT16_VALUE( 8.299), SIMDE_FLOAT16_VALUE( - 59.100), SIMDE_FLOAT16_VALUE( 42.001), + SIMDE_FLOAT16_VALUE( 3.619), SIMDE_FLOAT16_VALUE( - 9.776), SIMDE_FLOAT16_VALUE( 59.224), SIMDE_FLOAT16_VALUE( - 70.831) }, + { { SIMDE_FLOAT16_VALUE( - 40.265), SIMDE_FLOAT16_VALUE( 72.917), SIMDE_FLOAT16_VALUE( - 43.058), SIMDE_FLOAT16_VALUE( 74.671), + SIMDE_FLOAT16_VALUE( - 30.362), SIMDE_FLOAT16_VALUE( - 59.100), SIMDE_FLOAT16_VALUE( 3.619), SIMDE_FLOAT16_VALUE( 59.224) }, + { SIMDE_FLOAT16_VALUE( - 2.182), SIMDE_FLOAT16_VALUE( 13.517), SIMDE_FLOAT16_VALUE( - 92.395), SIMDE_FLOAT16_VALUE( 43.330), + SIMDE_FLOAT16_VALUE( 8.299), SIMDE_FLOAT16_VALUE( 42.001), SIMDE_FLOAT16_VALUE( - 9.776), SIMDE_FLOAT16_VALUE( - 70.831) } } }, + { { SIMDE_FLOAT16_VALUE( 5.621), SIMDE_FLOAT16_VALUE( - 81.247), SIMDE_FLOAT16_VALUE( 88.883), SIMDE_FLOAT16_VALUE( - 67.993), + SIMDE_FLOAT16_VALUE( - 42.899), SIMDE_FLOAT16_VALUE( 93.583), SIMDE_FLOAT16_VALUE( - 78.748), SIMDE_FLOAT16_VALUE( - 91.309) }, + { SIMDE_FLOAT16_VALUE( 81.834), SIMDE_FLOAT16_VALUE( - 9.827), SIMDE_FLOAT16_VALUE( 45.970), SIMDE_FLOAT16_VALUE( - 17.700), + SIMDE_FLOAT16_VALUE( 29.375), SIMDE_FLOAT16_VALUE( 29.732), SIMDE_FLOAT16_VALUE( 6.694), SIMDE_FLOAT16_VALUE( - 39.767) }, + { { SIMDE_FLOAT16_VALUE( 5.621), SIMDE_FLOAT16_VALUE( 88.883), SIMDE_FLOAT16_VALUE( - 42.899), SIMDE_FLOAT16_VALUE( - 78.748), + SIMDE_FLOAT16_VALUE( 81.834), SIMDE_FLOAT16_VALUE( 45.970), SIMDE_FLOAT16_VALUE( 29.375), SIMDE_FLOAT16_VALUE( 6.694) }, + { SIMDE_FLOAT16_VALUE( - 81.247), SIMDE_FLOAT16_VALUE( - 67.993), SIMDE_FLOAT16_VALUE( 93.583), SIMDE_FLOAT16_VALUE( - 91.309), + SIMDE_FLOAT16_VALUE( - 9.827), SIMDE_FLOAT16_VALUE( - 17.700), SIMDE_FLOAT16_VALUE( 29.732), SIMDE_FLOAT16_VALUE( - 39.767) } } }, + { { SIMDE_FLOAT16_VALUE( - 46.220), SIMDE_FLOAT16_VALUE( - 82.527), SIMDE_FLOAT16_VALUE( 16.982), SIMDE_FLOAT16_VALUE( - 71.688), + SIMDE_FLOAT16_VALUE( 87.960), SIMDE_FLOAT16_VALUE( 65.171), SIMDE_FLOAT16_VALUE( - 7.922), SIMDE_FLOAT16_VALUE( 7.006) }, + { SIMDE_FLOAT16_VALUE( - 65.689), SIMDE_FLOAT16_VALUE( 3.075), SIMDE_FLOAT16_VALUE( - 37.945), SIMDE_FLOAT16_VALUE( 93.491), + SIMDE_FLOAT16_VALUE( - 96.072), SIMDE_FLOAT16_VALUE( - 91.531), SIMDE_FLOAT16_VALUE( - 19.597), SIMDE_FLOAT16_VALUE( - 43.425) }, + { { SIMDE_FLOAT16_VALUE( - 46.220), SIMDE_FLOAT16_VALUE( 16.982), SIMDE_FLOAT16_VALUE( 87.960), SIMDE_FLOAT16_VALUE( - 7.922), + SIMDE_FLOAT16_VALUE( - 65.689), SIMDE_FLOAT16_VALUE( - 37.945), SIMDE_FLOAT16_VALUE( - 96.072), SIMDE_FLOAT16_VALUE( - 19.597) }, + { SIMDE_FLOAT16_VALUE( - 82.527), SIMDE_FLOAT16_VALUE( - 71.688), SIMDE_FLOAT16_VALUE( 65.171), SIMDE_FLOAT16_VALUE( 7.006), + SIMDE_FLOAT16_VALUE( 3.075), SIMDE_FLOAT16_VALUE( 93.491), SIMDE_FLOAT16_VALUE( - 91.531), SIMDE_FLOAT16_VALUE( - 43.425) } } }, + { { SIMDE_FLOAT16_VALUE( 2.917), SIMDE_FLOAT16_VALUE( 56.631), SIMDE_FLOAT16_VALUE( - 8.652), SIMDE_FLOAT16_VALUE( - 52.253), + SIMDE_FLOAT16_VALUE( - 58.261), SIMDE_FLOAT16_VALUE( - 54.516), SIMDE_FLOAT16_VALUE( - 72.534), SIMDE_FLOAT16_VALUE( - 2.400) }, + { SIMDE_FLOAT16_VALUE( 16.476), SIMDE_FLOAT16_VALUE( - 79.379), SIMDE_FLOAT16_VALUE( - 98.048), SIMDE_FLOAT16_VALUE( 82.106), + SIMDE_FLOAT16_VALUE( 39.266), SIMDE_FLOAT16_VALUE( - 94.860), SIMDE_FLOAT16_VALUE( 35.909), SIMDE_FLOAT16_VALUE( - 75.766) }, + { { SIMDE_FLOAT16_VALUE( 2.917), SIMDE_FLOAT16_VALUE( - 8.652), SIMDE_FLOAT16_VALUE( - 58.261), SIMDE_FLOAT16_VALUE( - 72.534), + SIMDE_FLOAT16_VALUE( 16.476), SIMDE_FLOAT16_VALUE( - 98.048), SIMDE_FLOAT16_VALUE( 39.266), SIMDE_FLOAT16_VALUE( 35.909) }, + { SIMDE_FLOAT16_VALUE( 56.631), SIMDE_FLOAT16_VALUE( - 52.253), SIMDE_FLOAT16_VALUE( - 54.516), SIMDE_FLOAT16_VALUE( - 2.400), + SIMDE_FLOAT16_VALUE( - 79.379), SIMDE_FLOAT16_VALUE( 82.106), SIMDE_FLOAT16_VALUE( - 94.860), SIMDE_FLOAT16_VALUE( - 75.766) } } }, + { { SIMDE_FLOAT16_VALUE( 44.120), SIMDE_FLOAT16_VALUE( 3.642), SIMDE_FLOAT16_VALUE( - 74.784), SIMDE_FLOAT16_VALUE( 65.438), + SIMDE_FLOAT16_VALUE( 4.092), SIMDE_FLOAT16_VALUE( 98.436), SIMDE_FLOAT16_VALUE( 58.246), SIMDE_FLOAT16_VALUE( - 60.461) }, + { SIMDE_FLOAT16_VALUE( 76.015), SIMDE_FLOAT16_VALUE( - 62.906), SIMDE_FLOAT16_VALUE( - 27.211), SIMDE_FLOAT16_VALUE( - 53.115), + SIMDE_FLOAT16_VALUE( - 19.255), SIMDE_FLOAT16_VALUE( 64.714), SIMDE_FLOAT16_VALUE( - 24.123), SIMDE_FLOAT16_VALUE( - 77.006) }, + { { SIMDE_FLOAT16_VALUE( 44.120), SIMDE_FLOAT16_VALUE( - 74.784), SIMDE_FLOAT16_VALUE( 4.092), SIMDE_FLOAT16_VALUE( 58.246), + SIMDE_FLOAT16_VALUE( 76.015), SIMDE_FLOAT16_VALUE( - 27.211), SIMDE_FLOAT16_VALUE( - 19.255), SIMDE_FLOAT16_VALUE( - 24.123) }, + { SIMDE_FLOAT16_VALUE( 3.642), SIMDE_FLOAT16_VALUE( 65.438), SIMDE_FLOAT16_VALUE( 98.436), SIMDE_FLOAT16_VALUE( - 60.461), + SIMDE_FLOAT16_VALUE( - 62.906), SIMDE_FLOAT16_VALUE( - 53.115), SIMDE_FLOAT16_VALUE( 64.714), SIMDE_FLOAT16_VALUE( - 77.006) } } }, + { { SIMDE_FLOAT16_VALUE( 28.681), SIMDE_FLOAT16_VALUE( 95.430), SIMDE_FLOAT16_VALUE( - 1.556), SIMDE_FLOAT16_VALUE( 56.474), + SIMDE_FLOAT16_VALUE( - 8.834), SIMDE_FLOAT16_VALUE( 57.675), SIMDE_FLOAT16_VALUE( - 74.749), SIMDE_FLOAT16_VALUE( 76.983) }, + { SIMDE_FLOAT16_VALUE( - 99.195), SIMDE_FLOAT16_VALUE( - 28.023), SIMDE_FLOAT16_VALUE( 87.270), SIMDE_FLOAT16_VALUE( - 1.591), + SIMDE_FLOAT16_VALUE( 11.636), SIMDE_FLOAT16_VALUE( - 6.493), SIMDE_FLOAT16_VALUE( - 32.712), SIMDE_FLOAT16_VALUE( - 72.389) }, + { { SIMDE_FLOAT16_VALUE( 28.681), SIMDE_FLOAT16_VALUE( - 1.556), SIMDE_FLOAT16_VALUE( - 8.834), SIMDE_FLOAT16_VALUE( - 74.749), + SIMDE_FLOAT16_VALUE( - 99.195), SIMDE_FLOAT16_VALUE( 87.270), SIMDE_FLOAT16_VALUE( 11.636), SIMDE_FLOAT16_VALUE( - 32.712) }, + { SIMDE_FLOAT16_VALUE( 95.430), SIMDE_FLOAT16_VALUE( 56.474), SIMDE_FLOAT16_VALUE( 57.675), SIMDE_FLOAT16_VALUE( 76.983), + SIMDE_FLOAT16_VALUE( - 28.023), SIMDE_FLOAT16_VALUE( - 1.591), SIMDE_FLOAT16_VALUE( - 6.493), SIMDE_FLOAT16_VALUE( - 72.389) } } }, + { { SIMDE_FLOAT16_VALUE( 77.839), SIMDE_FLOAT16_VALUE( - 60.894), SIMDE_FLOAT16_VALUE( - 29.168), SIMDE_FLOAT16_VALUE( - 10.467), + SIMDE_FLOAT16_VALUE( - 99.954), SIMDE_FLOAT16_VALUE( 6.428), SIMDE_FLOAT16_VALUE( - 12.713), SIMDE_FLOAT16_VALUE( 92.257) }, + { SIMDE_FLOAT16_VALUE( 5.688), SIMDE_FLOAT16_VALUE( 43.890), SIMDE_FLOAT16_VALUE( 48.122), SIMDE_FLOAT16_VALUE( - 2.823), + SIMDE_FLOAT16_VALUE( 65.174), SIMDE_FLOAT16_VALUE( 27.456), SIMDE_FLOAT16_VALUE( 71.730), SIMDE_FLOAT16_VALUE( 27.816) }, + { { SIMDE_FLOAT16_VALUE( 77.839), SIMDE_FLOAT16_VALUE( - 29.168), SIMDE_FLOAT16_VALUE( - 99.954), SIMDE_FLOAT16_VALUE( - 12.713), + SIMDE_FLOAT16_VALUE( 5.688), SIMDE_FLOAT16_VALUE( 48.122), SIMDE_FLOAT16_VALUE( 65.174), SIMDE_FLOAT16_VALUE( 71.730) }, + { SIMDE_FLOAT16_VALUE( - 60.894), SIMDE_FLOAT16_VALUE( - 10.467), SIMDE_FLOAT16_VALUE( 6.428), SIMDE_FLOAT16_VALUE( 92.257), + SIMDE_FLOAT16_VALUE( 43.890), SIMDE_FLOAT16_VALUE( - 2.823), SIMDE_FLOAT16_VALUE( 27.456), SIMDE_FLOAT16_VALUE( 27.816) } } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -684,10 +805,25 @@ test_simde_vuzpq_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_float16x2_t r[2] = simde_vuzpq_f16(a, b); + + 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_f16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float32 b[4]; @@ -761,10 +897,25 @@ test_simde_vuzpq_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_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float32x2_t r[2] = simde_vuzpq_f32(a, b); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -871,10 +1022,25 @@ test_simde_vuzpq_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x2_t r[2] = simde_vuzpq_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -949,10 +1115,25 @@ test_simde_vuzpq_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x2_t r[2] = simde_vuzpq_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -1026,10 +1207,25 @@ test_simde_vuzpq_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x2_t r[2] = simde_vuzpq_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; uint8_t b[16]; @@ -1136,10 +1332,25 @@ test_simde_vuzpq_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint8x2_t r[2] = simde_vuzpq_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; uint16_t b[8]; @@ -1213,10 +1424,25 @@ test_simde_vuzpq_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint16x2_t r[2] = simde_vuzpq_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzpq_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; uint32_t b[4]; @@ -1291,6 +1517,20 @@ test_simde_vuzpq_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint32x2_t r[2] = simde_vuzpq_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r[2], SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } #endif /* !defined(SIMDE_BUG_INTEL_857088) */ diff --git a/test/arm/neon/uzp1.c b/test/arm/neon/uzp1.c index de494249c..fc61c0622 100644 --- a/test/arm/neon/uzp1.c +++ b/test/arm/neon/uzp1.c @@ -5,6 +5,7 @@ static int test_simde_vuzp1_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 b[4]; @@ -47,10 +48,25 @@ test_simde_vuzp1_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vuzp1_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vuzp1_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; simde_float32 b[2]; @@ -93,10 +109,25 @@ test_simde_vuzp1_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_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float32x2_t r = simde_vuzp1_f32(a, b); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, b, 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_vuzp1_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -137,10 +168,25 @@ test_simde_vuzp1_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x8_t r = simde_vuzp1_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -181,10 +227,25 @@ test_simde_vuzp1_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x4_t r = simde_vuzp1_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -225,10 +286,25 @@ test_simde_vuzp1_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r = simde_vuzp1_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; uint8_t b[8]; @@ -269,10 +345,25 @@ test_simde_vuzp1_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t b = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t r = simde_vuzp1_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; uint16_t b[4]; @@ -312,10 +403,25 @@ test_simde_vuzp1_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t b = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t r = simde_vuzp1_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; uint32_t b[2]; @@ -355,63 +461,78 @@ test_simde_vuzp1_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r = simde_vuzp1_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[8]; } test_vec[] = { - { { -SIMDE_FLOAT16_C( 97.687), -SIMDE_FLOAT16_C( 79.004), -SIMDE_FLOAT16_C( 89.890), SIMDE_FLOAT16_C( 40.738), - -SIMDE_FLOAT16_C( 65.793), -SIMDE_FLOAT16_C( 23.168), -SIMDE_FLOAT16_C( 5.072), SIMDE_FLOAT16_C( 43.484) }, - { -SIMDE_FLOAT16_C( 84.405), SIMDE_FLOAT16_C( 65.922), -SIMDE_FLOAT16_C( 58.324), -SIMDE_FLOAT16_C( 27.090), - SIMDE_FLOAT16_C( 15.688), -SIMDE_FLOAT16_C( 30.522), SIMDE_FLOAT16_C( 24.014), -SIMDE_FLOAT16_C( 74.725) }, - { -SIMDE_FLOAT16_C( 97.687), -SIMDE_FLOAT16_C( 89.890), -SIMDE_FLOAT16_C( 65.793), -SIMDE_FLOAT16_C( 5.072), - -SIMDE_FLOAT16_C( 84.405), -SIMDE_FLOAT16_C( 58.324), SIMDE_FLOAT16_C( 15.688), SIMDE_FLOAT16_C( 24.014) } }, - { { -SIMDE_FLOAT16_C( 75.826), -SIMDE_FLOAT16_C( 94.734), -SIMDE_FLOAT16_C( 19.540), SIMDE_FLOAT16_C( 46.550), - SIMDE_FLOAT16_C( 82.958), SIMDE_FLOAT16_C( 77.773), SIMDE_FLOAT16_C( 19.467), SIMDE_FLOAT16_C( 62.504) }, - { SIMDE_FLOAT16_C( 18.734), SIMDE_FLOAT16_C( 47.806), SIMDE_FLOAT16_C( 3.703), -SIMDE_FLOAT16_C( 50.129), - -SIMDE_FLOAT16_C( 8.807), -SIMDE_FLOAT16_C( 57.665), SIMDE_FLOAT16_C( 19.634), -SIMDE_FLOAT16_C( 49.723) }, - { -SIMDE_FLOAT16_C( 75.826), -SIMDE_FLOAT16_C( 19.540), SIMDE_FLOAT16_C( 82.958), SIMDE_FLOAT16_C( 19.467), - SIMDE_FLOAT16_C( 18.734), SIMDE_FLOAT16_C( 3.703), -SIMDE_FLOAT16_C( 8.807), SIMDE_FLOAT16_C( 19.634) } }, - { { -SIMDE_FLOAT16_C( 22.928), -SIMDE_FLOAT16_C( 24.929), -SIMDE_FLOAT16_C( 92.576), SIMDE_FLOAT16_C( 66.926), - -SIMDE_FLOAT16_C( 61.278), -SIMDE_FLOAT16_C( 16.213), SIMDE_FLOAT16_C( 46.549), SIMDE_FLOAT16_C( 41.416) }, - { SIMDE_FLOAT16_C( 2.906), SIMDE_FLOAT16_C( 40.984), SIMDE_FLOAT16_C( 33.772), SIMDE_FLOAT16_C( 94.502), - SIMDE_FLOAT16_C( 29.055), SIMDE_FLOAT16_C( 48.251), -SIMDE_FLOAT16_C( 53.444), -SIMDE_FLOAT16_C( 10.038) }, - { -SIMDE_FLOAT16_C( 22.928), -SIMDE_FLOAT16_C( 92.576), -SIMDE_FLOAT16_C( 61.278), SIMDE_FLOAT16_C( 46.549), - SIMDE_FLOAT16_C( 2.906), SIMDE_FLOAT16_C( 33.772), SIMDE_FLOAT16_C( 29.055), -SIMDE_FLOAT16_C( 53.444) } }, - { { -SIMDE_FLOAT16_C( 43.188), -SIMDE_FLOAT16_C( 66.409), SIMDE_FLOAT16_C( 35.235), -SIMDE_FLOAT16_C( 72.208), - -SIMDE_FLOAT16_C( 97.543), SIMDE_FLOAT16_C( 90.132), -SIMDE_FLOAT16_C( 47.254), SIMDE_FLOAT16_C( 89.145) }, - { -SIMDE_FLOAT16_C( 92.430), -SIMDE_FLOAT16_C( 24.436), -SIMDE_FLOAT16_C( 87.694), SIMDE_FLOAT16_C( 77.935), - -SIMDE_FLOAT16_C( 17.203), -SIMDE_FLOAT16_C( 52.392), SIMDE_FLOAT16_C( 38.656), SIMDE_FLOAT16_C( 26.074) }, - { -SIMDE_FLOAT16_C( 43.188), SIMDE_FLOAT16_C( 35.235), -SIMDE_FLOAT16_C( 97.543), -SIMDE_FLOAT16_C( 47.254), - -SIMDE_FLOAT16_C( 92.430), -SIMDE_FLOAT16_C( 87.694), -SIMDE_FLOAT16_C( 17.203), SIMDE_FLOAT16_C( 38.656) } }, - { { -SIMDE_FLOAT16_C( 65.868), SIMDE_FLOAT16_C( 10.356), -SIMDE_FLOAT16_C( 59.186), SIMDE_FLOAT16_C( 59.722), - -SIMDE_FLOAT16_C( 89.649), -SIMDE_FLOAT16_C( 81.545), SIMDE_FLOAT16_C( 7.064), SIMDE_FLOAT16_C( 29.273) }, - { SIMDE_FLOAT16_C( 99.268), SIMDE_FLOAT16_C( 59.929), SIMDE_FLOAT16_C( 54.246), -SIMDE_FLOAT16_C( 9.983), - SIMDE_FLOAT16_C( 23.574), -SIMDE_FLOAT16_C( 94.576), -SIMDE_FLOAT16_C( 16.893), SIMDE_FLOAT16_C( 24.448) }, - { -SIMDE_FLOAT16_C( 65.868), -SIMDE_FLOAT16_C( 59.186), -SIMDE_FLOAT16_C( 89.649), SIMDE_FLOAT16_C( 7.064), - SIMDE_FLOAT16_C( 99.268), SIMDE_FLOAT16_C( 54.246), SIMDE_FLOAT16_C( 23.574), -SIMDE_FLOAT16_C( 16.893) } }, - { { -SIMDE_FLOAT16_C( 24.032), -SIMDE_FLOAT16_C( 24.501), -SIMDE_FLOAT16_C( 16.286), -SIMDE_FLOAT16_C( 43.379), - -SIMDE_FLOAT16_C( 89.719), -SIMDE_FLOAT16_C( 44.948), -SIMDE_FLOAT16_C( 26.410), SIMDE_FLOAT16_C( 47.907) }, - { SIMDE_FLOAT16_C( 80.290), -SIMDE_FLOAT16_C( 61.861), SIMDE_FLOAT16_C( 99.823), -SIMDE_FLOAT16_C( 33.955), - -SIMDE_FLOAT16_C( 96.942), -SIMDE_FLOAT16_C( 21.953), -SIMDE_FLOAT16_C( 83.239), -SIMDE_FLOAT16_C( 80.026) }, - { -SIMDE_FLOAT16_C( 24.032), -SIMDE_FLOAT16_C( 16.286), -SIMDE_FLOAT16_C( 89.719), -SIMDE_FLOAT16_C( 26.410), - SIMDE_FLOAT16_C( 80.290), SIMDE_FLOAT16_C( 99.823), -SIMDE_FLOAT16_C( 96.942), -SIMDE_FLOAT16_C( 83.239) } }, - { { -SIMDE_FLOAT16_C( 55.230), -SIMDE_FLOAT16_C( 23.393), SIMDE_FLOAT16_C( 12.967), -SIMDE_FLOAT16_C( 8.488), - SIMDE_FLOAT16_C( 32.610), -SIMDE_FLOAT16_C( 20.642), -SIMDE_FLOAT16_C( 49.605), SIMDE_FLOAT16_C( 85.964) }, - { SIMDE_FLOAT16_C( 86.315), SIMDE_FLOAT16_C( 91.729), -SIMDE_FLOAT16_C( 6.684), SIMDE_FLOAT16_C( 31.160), - -SIMDE_FLOAT16_C( 10.924), -SIMDE_FLOAT16_C( 90.352), SIMDE_FLOAT16_C( 33.044), -SIMDE_FLOAT16_C( 55.391) }, - { -SIMDE_FLOAT16_C( 55.230), SIMDE_FLOAT16_C( 12.967), SIMDE_FLOAT16_C( 32.610), -SIMDE_FLOAT16_C( 49.605), - SIMDE_FLOAT16_C( 86.315), -SIMDE_FLOAT16_C( 6.684), -SIMDE_FLOAT16_C( 10.924), SIMDE_FLOAT16_C( 33.044) } }, - { { SIMDE_FLOAT16_C( 63.752), -SIMDE_FLOAT16_C( 40.489), -SIMDE_FLOAT16_C( 58.676), -SIMDE_FLOAT16_C( 83.592), - SIMDE_FLOAT16_C( 74.115), -SIMDE_FLOAT16_C( 76.605), SIMDE_FLOAT16_C( 25.040), SIMDE_FLOAT16_C( 69.197) }, - { SIMDE_FLOAT16_C( 16.183), SIMDE_FLOAT16_C( 14.003), -SIMDE_FLOAT16_C( 41.902), -SIMDE_FLOAT16_C( 14.309), - -SIMDE_FLOAT16_C( 63.990), -SIMDE_FLOAT16_C( 92.928), -SIMDE_FLOAT16_C( 54.163), SIMDE_FLOAT16_C( 94.671) }, - { SIMDE_FLOAT16_C( 63.752), -SIMDE_FLOAT16_C( 58.676), SIMDE_FLOAT16_C( 74.115), SIMDE_FLOAT16_C( 25.040), - SIMDE_FLOAT16_C( 16.183), -SIMDE_FLOAT16_C( 41.902), -SIMDE_FLOAT16_C( 63.990), -SIMDE_FLOAT16_C( 54.163) } }, + { { SIMDE_FLOAT16_VALUE( - 97.687), SIMDE_FLOAT16_VALUE( - 79.004), SIMDE_FLOAT16_VALUE( - 89.890), SIMDE_FLOAT16_VALUE( 40.738), + SIMDE_FLOAT16_VALUE( - 65.793), SIMDE_FLOAT16_VALUE( - 23.168), SIMDE_FLOAT16_VALUE( - 5.072), SIMDE_FLOAT16_VALUE( 43.484) }, + { SIMDE_FLOAT16_VALUE( - 84.405), SIMDE_FLOAT16_VALUE( 65.922), SIMDE_FLOAT16_VALUE( - 58.324), SIMDE_FLOAT16_VALUE( - 27.090), + SIMDE_FLOAT16_VALUE( 15.688), SIMDE_FLOAT16_VALUE( - 30.522), SIMDE_FLOAT16_VALUE( 24.014), SIMDE_FLOAT16_VALUE( - 74.725) }, + { SIMDE_FLOAT16_VALUE( - 97.687), SIMDE_FLOAT16_VALUE( - 89.890), SIMDE_FLOAT16_VALUE( - 65.793), SIMDE_FLOAT16_VALUE( - 5.072), + SIMDE_FLOAT16_VALUE( - 84.405), SIMDE_FLOAT16_VALUE( - 58.324), SIMDE_FLOAT16_VALUE( 15.688), SIMDE_FLOAT16_VALUE( 24.014) } }, + { { SIMDE_FLOAT16_VALUE( - 75.826), SIMDE_FLOAT16_VALUE( - 94.734), SIMDE_FLOAT16_VALUE( - 19.540), SIMDE_FLOAT16_VALUE( 46.550), + SIMDE_FLOAT16_VALUE( 82.958), SIMDE_FLOAT16_VALUE( 77.773), SIMDE_FLOAT16_VALUE( 19.467), SIMDE_FLOAT16_VALUE( 62.504) }, + { SIMDE_FLOAT16_VALUE( 18.734), SIMDE_FLOAT16_VALUE( 47.806), SIMDE_FLOAT16_VALUE( 3.703), SIMDE_FLOAT16_VALUE( - 50.129), + SIMDE_FLOAT16_VALUE( - 8.807), SIMDE_FLOAT16_VALUE( - 57.665), SIMDE_FLOAT16_VALUE( 19.634), SIMDE_FLOAT16_VALUE( - 49.723) }, + { SIMDE_FLOAT16_VALUE( - 75.826), SIMDE_FLOAT16_VALUE( - 19.540), SIMDE_FLOAT16_VALUE( 82.958), SIMDE_FLOAT16_VALUE( 19.467), + SIMDE_FLOAT16_VALUE( 18.734), SIMDE_FLOAT16_VALUE( 3.703), SIMDE_FLOAT16_VALUE( - 8.807), SIMDE_FLOAT16_VALUE( 19.634) } }, + { { SIMDE_FLOAT16_VALUE( - 22.928), SIMDE_FLOAT16_VALUE( - 24.929), SIMDE_FLOAT16_VALUE( - 92.576), SIMDE_FLOAT16_VALUE( 66.926), + SIMDE_FLOAT16_VALUE( - 61.278), SIMDE_FLOAT16_VALUE( - 16.213), SIMDE_FLOAT16_VALUE( 46.549), SIMDE_FLOAT16_VALUE( 41.416) }, + { SIMDE_FLOAT16_VALUE( 2.906), SIMDE_FLOAT16_VALUE( 40.984), SIMDE_FLOAT16_VALUE( 33.772), SIMDE_FLOAT16_VALUE( 94.502), + SIMDE_FLOAT16_VALUE( 29.055), SIMDE_FLOAT16_VALUE( 48.251), SIMDE_FLOAT16_VALUE( - 53.444), SIMDE_FLOAT16_VALUE( - 10.038) }, + { SIMDE_FLOAT16_VALUE( - 22.928), SIMDE_FLOAT16_VALUE( - 92.576), SIMDE_FLOAT16_VALUE( - 61.278), SIMDE_FLOAT16_VALUE( 46.549), + SIMDE_FLOAT16_VALUE( 2.906), SIMDE_FLOAT16_VALUE( 33.772), SIMDE_FLOAT16_VALUE( 29.055), SIMDE_FLOAT16_VALUE( - 53.444) } }, + { { SIMDE_FLOAT16_VALUE( - 43.188), SIMDE_FLOAT16_VALUE( - 66.409), SIMDE_FLOAT16_VALUE( 35.235), SIMDE_FLOAT16_VALUE( - 72.208), + SIMDE_FLOAT16_VALUE( - 97.543), SIMDE_FLOAT16_VALUE( 90.132), SIMDE_FLOAT16_VALUE( - 47.254), SIMDE_FLOAT16_VALUE( 89.145) }, + { SIMDE_FLOAT16_VALUE( - 92.430), SIMDE_FLOAT16_VALUE( - 24.436), SIMDE_FLOAT16_VALUE( - 87.694), SIMDE_FLOAT16_VALUE( 77.935), + SIMDE_FLOAT16_VALUE( - 17.203), SIMDE_FLOAT16_VALUE( - 52.392), SIMDE_FLOAT16_VALUE( 38.656), SIMDE_FLOAT16_VALUE( 26.074) }, + { SIMDE_FLOAT16_VALUE( - 43.188), SIMDE_FLOAT16_VALUE( 35.235), SIMDE_FLOAT16_VALUE( - 97.543), SIMDE_FLOAT16_VALUE( - 47.254), + SIMDE_FLOAT16_VALUE( - 92.430), SIMDE_FLOAT16_VALUE( - 87.694), SIMDE_FLOAT16_VALUE( - 17.203), SIMDE_FLOAT16_VALUE( 38.656) } }, + { { SIMDE_FLOAT16_VALUE( - 65.868), SIMDE_FLOAT16_VALUE( 10.356), SIMDE_FLOAT16_VALUE( - 59.186), SIMDE_FLOAT16_VALUE( 59.722), + SIMDE_FLOAT16_VALUE( - 89.649), SIMDE_FLOAT16_VALUE( - 81.545), SIMDE_FLOAT16_VALUE( 7.064), SIMDE_FLOAT16_VALUE( 29.273) }, + { SIMDE_FLOAT16_VALUE( 99.268), SIMDE_FLOAT16_VALUE( 59.929), SIMDE_FLOAT16_VALUE( 54.246), SIMDE_FLOAT16_VALUE( - 9.983), + SIMDE_FLOAT16_VALUE( 23.574), SIMDE_FLOAT16_VALUE( - 94.576), SIMDE_FLOAT16_VALUE( - 16.893), SIMDE_FLOAT16_VALUE( 24.448) }, + { SIMDE_FLOAT16_VALUE( - 65.868), SIMDE_FLOAT16_VALUE( - 59.186), SIMDE_FLOAT16_VALUE( - 89.649), SIMDE_FLOAT16_VALUE( 7.064), + SIMDE_FLOAT16_VALUE( 99.268), SIMDE_FLOAT16_VALUE( 54.246), SIMDE_FLOAT16_VALUE( 23.574), SIMDE_FLOAT16_VALUE( - 16.893) } }, + { { SIMDE_FLOAT16_VALUE( - 24.032), SIMDE_FLOAT16_VALUE( - 24.501), SIMDE_FLOAT16_VALUE( - 16.286), SIMDE_FLOAT16_VALUE( - 43.379), + SIMDE_FLOAT16_VALUE( - 89.719), SIMDE_FLOAT16_VALUE( - 44.948), SIMDE_FLOAT16_VALUE( - 26.410), SIMDE_FLOAT16_VALUE( 47.907) }, + { SIMDE_FLOAT16_VALUE( 80.290), SIMDE_FLOAT16_VALUE( - 61.861), SIMDE_FLOAT16_VALUE( 99.823), SIMDE_FLOAT16_VALUE( - 33.955), + SIMDE_FLOAT16_VALUE( - 96.942), SIMDE_FLOAT16_VALUE( - 21.953), SIMDE_FLOAT16_VALUE( - 83.239), SIMDE_FLOAT16_VALUE( - 80.026) }, + { SIMDE_FLOAT16_VALUE( - 24.032), SIMDE_FLOAT16_VALUE( - 16.286), SIMDE_FLOAT16_VALUE( - 89.719), SIMDE_FLOAT16_VALUE( - 26.410), + SIMDE_FLOAT16_VALUE( 80.290), SIMDE_FLOAT16_VALUE( 99.823), SIMDE_FLOAT16_VALUE( - 96.942), SIMDE_FLOAT16_VALUE( - 83.239) } }, + { { SIMDE_FLOAT16_VALUE( - 55.230), SIMDE_FLOAT16_VALUE( - 23.393), SIMDE_FLOAT16_VALUE( 12.967), SIMDE_FLOAT16_VALUE( - 8.488), + SIMDE_FLOAT16_VALUE( 32.610), SIMDE_FLOAT16_VALUE( - 20.642), SIMDE_FLOAT16_VALUE( - 49.605), SIMDE_FLOAT16_VALUE( 85.964) }, + { SIMDE_FLOAT16_VALUE( 86.315), SIMDE_FLOAT16_VALUE( 91.729), SIMDE_FLOAT16_VALUE( - 6.684), SIMDE_FLOAT16_VALUE( 31.160), + SIMDE_FLOAT16_VALUE( - 10.924), SIMDE_FLOAT16_VALUE( - 90.352), SIMDE_FLOAT16_VALUE( 33.044), SIMDE_FLOAT16_VALUE( - 55.391) }, + { SIMDE_FLOAT16_VALUE( - 55.230), SIMDE_FLOAT16_VALUE( 12.967), SIMDE_FLOAT16_VALUE( 32.610), SIMDE_FLOAT16_VALUE( - 49.605), + SIMDE_FLOAT16_VALUE( 86.315), SIMDE_FLOAT16_VALUE( - 6.684), SIMDE_FLOAT16_VALUE( - 10.924), SIMDE_FLOAT16_VALUE( 33.044) } }, + { { SIMDE_FLOAT16_VALUE( 63.752), SIMDE_FLOAT16_VALUE( - 40.489), SIMDE_FLOAT16_VALUE( - 58.676), SIMDE_FLOAT16_VALUE( - 83.592), + SIMDE_FLOAT16_VALUE( 74.115), SIMDE_FLOAT16_VALUE( - 76.605), SIMDE_FLOAT16_VALUE( 25.040), SIMDE_FLOAT16_VALUE( 69.197) }, + { SIMDE_FLOAT16_VALUE( 16.183), SIMDE_FLOAT16_VALUE( 14.003), SIMDE_FLOAT16_VALUE( - 41.902), SIMDE_FLOAT16_VALUE( - 14.309), + SIMDE_FLOAT16_VALUE( - 63.990), SIMDE_FLOAT16_VALUE( - 92.928), SIMDE_FLOAT16_VALUE( - 54.163), SIMDE_FLOAT16_VALUE( 94.671) }, + { SIMDE_FLOAT16_VALUE( 63.752), SIMDE_FLOAT16_VALUE( - 58.676), SIMDE_FLOAT16_VALUE( 74.115), SIMDE_FLOAT16_VALUE( 25.040), + SIMDE_FLOAT16_VALUE( 16.183), SIMDE_FLOAT16_VALUE( - 41.902), SIMDE_FLOAT16_VALUE( - 63.990), SIMDE_FLOAT16_VALUE( - 54.163) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -422,10 +543,25 @@ test_simde_vuzp1q_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vuzp1q_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float32 b[4]; @@ -465,10 +601,25 @@ test_simde_vuzp1q_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_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float32x4_t r = simde_vuzp1q_f32(a, b); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[2]; simde_float64 b[2]; @@ -509,10 +660,25 @@ test_simde_vuzp1q_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_float64x2_t b = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r = simde_vuzp1q_f64(a, b); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -577,10 +743,25 @@ test_simde_vuzp1q_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x16_t r = simde_vuzp1q_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -621,10 +802,25 @@ test_simde_vuzp1q_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t r = simde_vuzp1q_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -664,10 +860,25 @@ test_simde_vuzp1q_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t r = simde_vuzp1q_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[2]; int64_t b[2]; @@ -707,10 +918,25 @@ test_simde_vuzp1q_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t r = simde_vuzp1q_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; uint8_t b[16]; @@ -775,10 +1001,25 @@ test_simde_vuzp1q_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t r = simde_vuzp1q_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; uint16_t b[8]; @@ -818,10 +1059,25 @@ test_simde_vuzp1q_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t r = simde_vuzp1q_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; uint32_t b[4]; @@ -862,10 +1118,25 @@ test_simde_vuzp1q_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t r = simde_vuzp1q_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp1q_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[2]; uint64_t b[2]; @@ -905,6 +1176,20 @@ test_simde_vuzp1q_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t r = simde_vuzp1q_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN diff --git a/test/arm/neon/uzp2.c b/test/arm/neon/uzp2.c index 524ba0b98..c2c604b7f 100644 --- a/test/arm/neon/uzp2.c +++ b/test/arm/neon/uzp2.c @@ -5,6 +5,7 @@ static int test_simde_vuzp2_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[4]; simde_float16 b[4]; @@ -35,10 +36,25 @@ test_simde_vuzp2_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vuzp2_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vuzp2_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[2]; simde_float32 b[2]; @@ -81,10 +97,25 @@ test_simde_vuzp2_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_float32x2_t b = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f); + simde_float32x2_t r = simde_vuzp2_f32(a, b); + + simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x2(2, b, 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_vuzp2_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[8]; int8_t b[8]; @@ -125,10 +156,25 @@ test_simde_vuzp2_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_int8x8_t b = simde_test_arm_neon_random_i8x8(); + simde_int8x8_t r = simde_vuzp2_s8(a, b); + + simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[4]; int16_t b[4]; @@ -169,10 +215,25 @@ test_simde_vuzp2_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_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x4_t r = simde_vuzp2_s16(a, b); + + simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[2]; int32_t b[2]; @@ -213,10 +274,25 @@ test_simde_vuzp2_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_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r = simde_vuzp2_s32(a, b); + + simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[8]; uint8_t b[8]; @@ -257,10 +333,25 @@ test_simde_vuzp2_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x8_t a = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t b = simde_test_arm_neon_random_u8x8(); + simde_uint8x8_t r = simde_vuzp2_u8(a, b); + + simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[4]; uint16_t b[4]; @@ -300,10 +391,25 @@ test_simde_vuzp2_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x4_t a = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t b = simde_test_arm_neon_random_u16x4(); + simde_uint16x4_t r = simde_vuzp2_u16(a, b); + + simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[2]; uint32_t b[2]; @@ -343,63 +449,78 @@ test_simde_vuzp2_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r = simde_vuzp2_u32(a, b); + + simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_f16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float16 a[8]; simde_float16 b[8]; simde_float16 r[8]; } test_vec[] = { - { { SIMDE_FLOAT16_C( 90.452), SIMDE_FLOAT16_C( 17.701), -SIMDE_FLOAT16_C( 49.009), -SIMDE_FLOAT16_C( 88.786), - -SIMDE_FLOAT16_C( 29.009), -SIMDE_FLOAT16_C( 37.203), -SIMDE_FLOAT16_C( 58.225), SIMDE_FLOAT16_C( 98.368) }, - { SIMDE_FLOAT16_C( 19.440), -SIMDE_FLOAT16_C( 1.659), SIMDE_FLOAT16_C( 42.542), -SIMDE_FLOAT16_C( 99.688), - -SIMDE_FLOAT16_C( 88.443), SIMDE_FLOAT16_C( 34.706), -SIMDE_FLOAT16_C( 85.533), -SIMDE_FLOAT16_C( 56.781) }, - { SIMDE_FLOAT16_C( 17.701), -SIMDE_FLOAT16_C( 88.786), -SIMDE_FLOAT16_C( 37.203), SIMDE_FLOAT16_C( 98.368), - -SIMDE_FLOAT16_C( 1.659), -SIMDE_FLOAT16_C( 99.688), SIMDE_FLOAT16_C( 34.706), -SIMDE_FLOAT16_C( 56.781) } }, - { { SIMDE_FLOAT16_C( 33.998), SIMDE_FLOAT16_C( 9.488), -SIMDE_FLOAT16_C( 57.721), -SIMDE_FLOAT16_C( 25.485), - -SIMDE_FLOAT16_C( 94.073), -SIMDE_FLOAT16_C( 82.899), SIMDE_FLOAT16_C( 44.365), -SIMDE_FLOAT16_C( 99.238) }, - { SIMDE_FLOAT16_C( 9.551), SIMDE_FLOAT16_C( 89.969), -SIMDE_FLOAT16_C( 86.075), -SIMDE_FLOAT16_C( 77.835), - SIMDE_FLOAT16_C( 0.704), -SIMDE_FLOAT16_C( 29.406), SIMDE_FLOAT16_C( 20.191), -SIMDE_FLOAT16_C( 38.311) }, - { SIMDE_FLOAT16_C( 9.488), -SIMDE_FLOAT16_C( 25.485), -SIMDE_FLOAT16_C( 82.899), -SIMDE_FLOAT16_C( 99.238), - SIMDE_FLOAT16_C( 89.969), -SIMDE_FLOAT16_C( 77.835), -SIMDE_FLOAT16_C( 29.406), -SIMDE_FLOAT16_C( 38.311) } }, - { { SIMDE_FLOAT16_C( 77.669), SIMDE_FLOAT16_C( 71.372), SIMDE_FLOAT16_C( 54.402), SIMDE_FLOAT16_C( 77.171), - SIMDE_FLOAT16_C( 37.815), SIMDE_FLOAT16_C( 41.042), -SIMDE_FLOAT16_C( 13.386), SIMDE_FLOAT16_C( 20.748) }, - { -SIMDE_FLOAT16_C( 98.103), -SIMDE_FLOAT16_C( 63.759), -SIMDE_FLOAT16_C( 16.397), -SIMDE_FLOAT16_C( 83.256), - -SIMDE_FLOAT16_C( 23.909), -SIMDE_FLOAT16_C( 69.358), SIMDE_FLOAT16_C( 53.308), SIMDE_FLOAT16_C( 92.091) }, - { SIMDE_FLOAT16_C( 71.372), SIMDE_FLOAT16_C( 77.171), SIMDE_FLOAT16_C( 41.042), SIMDE_FLOAT16_C( 20.748), - -SIMDE_FLOAT16_C( 63.759), -SIMDE_FLOAT16_C( 83.256), -SIMDE_FLOAT16_C( 69.358), SIMDE_FLOAT16_C( 92.091) } }, - { { SIMDE_FLOAT16_C( 0.764), -SIMDE_FLOAT16_C( 93.449), SIMDE_FLOAT16_C( 78.083), SIMDE_FLOAT16_C( 10.810), - SIMDE_FLOAT16_C( 94.958), SIMDE_FLOAT16_C( 38.118), SIMDE_FLOAT16_C( 48.405), SIMDE_FLOAT16_C( 98.273) }, - { -SIMDE_FLOAT16_C( 11.121), -SIMDE_FLOAT16_C( 18.789), -SIMDE_FLOAT16_C( 60.496), -SIMDE_FLOAT16_C( 49.152), - -SIMDE_FLOAT16_C( 38.385), -SIMDE_FLOAT16_C( 40.755), SIMDE_FLOAT16_C( 93.481), SIMDE_FLOAT16_C( 93.409) }, - { -SIMDE_FLOAT16_C( 93.449), SIMDE_FLOAT16_C( 10.810), SIMDE_FLOAT16_C( 38.118), SIMDE_FLOAT16_C( 98.273), - -SIMDE_FLOAT16_C( 18.789), -SIMDE_FLOAT16_C( 49.152), -SIMDE_FLOAT16_C( 40.755), SIMDE_FLOAT16_C( 93.409) } }, - { { SIMDE_FLOAT16_C( 60.980), SIMDE_FLOAT16_C( 44.087), SIMDE_FLOAT16_C( 4.420), -SIMDE_FLOAT16_C( 86.379), - -SIMDE_FLOAT16_C( 21.956), SIMDE_FLOAT16_C( 66.211), SIMDE_FLOAT16_C( 40.919), SIMDE_FLOAT16_C( 44.341) }, - { -SIMDE_FLOAT16_C( 6.654), SIMDE_FLOAT16_C( 74.703), SIMDE_FLOAT16_C( 90.296), -SIMDE_FLOAT16_C( 32.224), - -SIMDE_FLOAT16_C( 62.184), SIMDE_FLOAT16_C( 60.075), SIMDE_FLOAT16_C( 54.181), -SIMDE_FLOAT16_C( 32.279) }, - { SIMDE_FLOAT16_C( 44.087), -SIMDE_FLOAT16_C( 86.379), SIMDE_FLOAT16_C( 66.211), SIMDE_FLOAT16_C( 44.341), - SIMDE_FLOAT16_C( 74.703), -SIMDE_FLOAT16_C( 32.224), SIMDE_FLOAT16_C( 60.075), -SIMDE_FLOAT16_C( 32.279) } }, - { { -SIMDE_FLOAT16_C( 18.086), -SIMDE_FLOAT16_C( 93.397), SIMDE_FLOAT16_C( 80.704), -SIMDE_FLOAT16_C( 25.237), - SIMDE_FLOAT16_C( 67.082), SIMDE_FLOAT16_C( 45.500), -SIMDE_FLOAT16_C( 42.821), SIMDE_FLOAT16_C( 30.047) }, - { SIMDE_FLOAT16_C( 33.473), -SIMDE_FLOAT16_C( 16.060), SIMDE_FLOAT16_C( 82.753), -SIMDE_FLOAT16_C( 97.939), - SIMDE_FLOAT16_C( 55.855), SIMDE_FLOAT16_C( 32.741), SIMDE_FLOAT16_C( 82.947), -SIMDE_FLOAT16_C( 16.162) }, - { -SIMDE_FLOAT16_C( 93.397), -SIMDE_FLOAT16_C( 25.237), SIMDE_FLOAT16_C( 45.500), SIMDE_FLOAT16_C( 30.047), - -SIMDE_FLOAT16_C( 16.060), -SIMDE_FLOAT16_C( 97.939), SIMDE_FLOAT16_C( 32.741), -SIMDE_FLOAT16_C( 16.162) } }, - { { SIMDE_FLOAT16_C( 39.481), -SIMDE_FLOAT16_C( 43.751), SIMDE_FLOAT16_C( 46.517), SIMDE_FLOAT16_C( 73.973), - -SIMDE_FLOAT16_C( 63.824), -SIMDE_FLOAT16_C( 81.545), SIMDE_FLOAT16_C( 80.086), SIMDE_FLOAT16_C( 5.275) }, - { SIMDE_FLOAT16_C( 47.213), SIMDE_FLOAT16_C( 95.067), -SIMDE_FLOAT16_C( 53.211), SIMDE_FLOAT16_C( 47.692), - SIMDE_FLOAT16_C( 71.401), -SIMDE_FLOAT16_C( 54.682), SIMDE_FLOAT16_C( 74.308), -SIMDE_FLOAT16_C( 33.162) }, - { -SIMDE_FLOAT16_C( 43.751), SIMDE_FLOAT16_C( 73.973), -SIMDE_FLOAT16_C( 81.545), SIMDE_FLOAT16_C( 5.275), - SIMDE_FLOAT16_C( 95.067), SIMDE_FLOAT16_C( 47.692), -SIMDE_FLOAT16_C( 54.682), -SIMDE_FLOAT16_C( 33.162) } }, - { { SIMDE_FLOAT16_C( 93.150), -SIMDE_FLOAT16_C( 92.626), SIMDE_FLOAT16_C( 71.362), -SIMDE_FLOAT16_C( 72.353), - SIMDE_FLOAT16_C( 24.600), -SIMDE_FLOAT16_C( 79.615), -SIMDE_FLOAT16_C( 49.427), -SIMDE_FLOAT16_C( 48.559) }, - { -SIMDE_FLOAT16_C( 35.290), -SIMDE_FLOAT16_C( 24.706), SIMDE_FLOAT16_C( 98.487), SIMDE_FLOAT16_C( 58.278), - -SIMDE_FLOAT16_C( 53.949), -SIMDE_FLOAT16_C( 40.152), SIMDE_FLOAT16_C( 29.818), SIMDE_FLOAT16_C( 53.465) }, - { -SIMDE_FLOAT16_C( 92.626), -SIMDE_FLOAT16_C( 72.353), -SIMDE_FLOAT16_C( 79.615), -SIMDE_FLOAT16_C( 48.559), - -SIMDE_FLOAT16_C( 24.706), SIMDE_FLOAT16_C( 58.278), -SIMDE_FLOAT16_C( 40.152), SIMDE_FLOAT16_C( 53.465) } }, + { { SIMDE_FLOAT16_VALUE( 90.452), SIMDE_FLOAT16_VALUE( 17.701), SIMDE_FLOAT16_VALUE( - 49.009), SIMDE_FLOAT16_VALUE( - 88.786), + SIMDE_FLOAT16_VALUE( - 29.009), SIMDE_FLOAT16_VALUE( - 37.203), SIMDE_FLOAT16_VALUE( - 58.225), SIMDE_FLOAT16_VALUE( 98.368) }, + { SIMDE_FLOAT16_VALUE( 19.440), SIMDE_FLOAT16_VALUE( - 1.659), SIMDE_FLOAT16_VALUE( 42.542), SIMDE_FLOAT16_VALUE( - 99.688), + SIMDE_FLOAT16_VALUE( - 88.443), SIMDE_FLOAT16_VALUE( 34.706), SIMDE_FLOAT16_VALUE( - 85.533), SIMDE_FLOAT16_VALUE( - 56.781) }, + { SIMDE_FLOAT16_VALUE( 17.701), SIMDE_FLOAT16_VALUE( - 88.786), SIMDE_FLOAT16_VALUE( - 37.203), SIMDE_FLOAT16_VALUE( 98.368), + SIMDE_FLOAT16_VALUE( - 1.659), SIMDE_FLOAT16_VALUE( - 99.688), SIMDE_FLOAT16_VALUE( 34.706), SIMDE_FLOAT16_VALUE( - 56.781) } }, + { { SIMDE_FLOAT16_VALUE( 33.998), SIMDE_FLOAT16_VALUE( 9.488), SIMDE_FLOAT16_VALUE( - 57.721), SIMDE_FLOAT16_VALUE( - 25.485), + SIMDE_FLOAT16_VALUE( - 94.073), SIMDE_FLOAT16_VALUE( - 82.899), SIMDE_FLOAT16_VALUE( 44.365), SIMDE_FLOAT16_VALUE( - 99.238) }, + { SIMDE_FLOAT16_VALUE( 9.551), SIMDE_FLOAT16_VALUE( 89.969), SIMDE_FLOAT16_VALUE( - 86.075), SIMDE_FLOAT16_VALUE( - 77.835), + SIMDE_FLOAT16_VALUE( 0.704), SIMDE_FLOAT16_VALUE( - 29.406), SIMDE_FLOAT16_VALUE( 20.191), SIMDE_FLOAT16_VALUE( - 38.311) }, + { SIMDE_FLOAT16_VALUE( 9.488), SIMDE_FLOAT16_VALUE( - 25.485), SIMDE_FLOAT16_VALUE( - 82.899), SIMDE_FLOAT16_VALUE( - 99.238), + SIMDE_FLOAT16_VALUE( 89.969), SIMDE_FLOAT16_VALUE( - 77.835), SIMDE_FLOAT16_VALUE( - 29.406), SIMDE_FLOAT16_VALUE( - 38.311) } }, + { { SIMDE_FLOAT16_VALUE( 77.669), SIMDE_FLOAT16_VALUE( 71.372), SIMDE_FLOAT16_VALUE( 54.402), SIMDE_FLOAT16_VALUE( 77.171), + SIMDE_FLOAT16_VALUE( 37.815), SIMDE_FLOAT16_VALUE( 41.042), SIMDE_FLOAT16_VALUE( - 13.386), SIMDE_FLOAT16_VALUE( 20.748) }, + { SIMDE_FLOAT16_VALUE( - 98.103), SIMDE_FLOAT16_VALUE( - 63.759), SIMDE_FLOAT16_VALUE( - 16.397), SIMDE_FLOAT16_VALUE( - 83.256), + SIMDE_FLOAT16_VALUE( - 23.909), SIMDE_FLOAT16_VALUE( - 69.358), SIMDE_FLOAT16_VALUE( 53.308), SIMDE_FLOAT16_VALUE( 92.091) }, + { SIMDE_FLOAT16_VALUE( 71.372), SIMDE_FLOAT16_VALUE( 77.171), SIMDE_FLOAT16_VALUE( 41.042), SIMDE_FLOAT16_VALUE( 20.748), + SIMDE_FLOAT16_VALUE( - 63.759), SIMDE_FLOAT16_VALUE( - 83.256), SIMDE_FLOAT16_VALUE( - 69.358), SIMDE_FLOAT16_VALUE( 92.091) } }, + { { SIMDE_FLOAT16_VALUE( 0.764), SIMDE_FLOAT16_VALUE( - 93.449), SIMDE_FLOAT16_VALUE( 78.083), SIMDE_FLOAT16_VALUE( 10.810), + SIMDE_FLOAT16_VALUE( 94.958), SIMDE_FLOAT16_VALUE( 38.118), SIMDE_FLOAT16_VALUE( 48.405), SIMDE_FLOAT16_VALUE( 98.273) }, + { SIMDE_FLOAT16_VALUE( - 11.121), SIMDE_FLOAT16_VALUE( - 18.789), SIMDE_FLOAT16_VALUE( - 60.496), SIMDE_FLOAT16_VALUE( - 49.152), + SIMDE_FLOAT16_VALUE( - 38.385), SIMDE_FLOAT16_VALUE( - 40.755), SIMDE_FLOAT16_VALUE( 93.481), SIMDE_FLOAT16_VALUE( 93.409) }, + { SIMDE_FLOAT16_VALUE( - 93.449), SIMDE_FLOAT16_VALUE( 10.810), SIMDE_FLOAT16_VALUE( 38.118), SIMDE_FLOAT16_VALUE( 98.273), + SIMDE_FLOAT16_VALUE( - 18.789), SIMDE_FLOAT16_VALUE( - 49.152), SIMDE_FLOAT16_VALUE( - 40.755), SIMDE_FLOAT16_VALUE( 93.409) } }, + { { SIMDE_FLOAT16_VALUE( 60.980), SIMDE_FLOAT16_VALUE( 44.087), SIMDE_FLOAT16_VALUE( 4.420), SIMDE_FLOAT16_VALUE( - 86.379), + SIMDE_FLOAT16_VALUE( - 21.956), SIMDE_FLOAT16_VALUE( 66.211), SIMDE_FLOAT16_VALUE( 40.919), SIMDE_FLOAT16_VALUE( 44.341) }, + { SIMDE_FLOAT16_VALUE( - 6.654), SIMDE_FLOAT16_VALUE( 74.703), SIMDE_FLOAT16_VALUE( 90.296), SIMDE_FLOAT16_VALUE( - 32.224), + SIMDE_FLOAT16_VALUE( - 62.184), SIMDE_FLOAT16_VALUE( 60.075), SIMDE_FLOAT16_VALUE( 54.181), SIMDE_FLOAT16_VALUE( - 32.279) }, + { SIMDE_FLOAT16_VALUE( 44.087), SIMDE_FLOAT16_VALUE( - 86.379), SIMDE_FLOAT16_VALUE( 66.211), SIMDE_FLOAT16_VALUE( 44.341), + SIMDE_FLOAT16_VALUE( 74.703), SIMDE_FLOAT16_VALUE( - 32.224), SIMDE_FLOAT16_VALUE( 60.075), SIMDE_FLOAT16_VALUE( - 32.279) } }, + { { SIMDE_FLOAT16_VALUE( - 18.086), SIMDE_FLOAT16_VALUE( - 93.397), SIMDE_FLOAT16_VALUE( 80.704), SIMDE_FLOAT16_VALUE( - 25.237), + SIMDE_FLOAT16_VALUE( 67.082), SIMDE_FLOAT16_VALUE( 45.500), SIMDE_FLOAT16_VALUE( - 42.821), SIMDE_FLOAT16_VALUE( 30.047) }, + { SIMDE_FLOAT16_VALUE( 33.473), SIMDE_FLOAT16_VALUE( - 16.060), SIMDE_FLOAT16_VALUE( 82.753), SIMDE_FLOAT16_VALUE( - 97.939), + SIMDE_FLOAT16_VALUE( 55.855), SIMDE_FLOAT16_VALUE( 32.741), SIMDE_FLOAT16_VALUE( 82.947), SIMDE_FLOAT16_VALUE( - 16.162) }, + { SIMDE_FLOAT16_VALUE( - 93.397), SIMDE_FLOAT16_VALUE( - 25.237), SIMDE_FLOAT16_VALUE( 45.500), SIMDE_FLOAT16_VALUE( 30.047), + SIMDE_FLOAT16_VALUE( - 16.060), SIMDE_FLOAT16_VALUE( - 97.939), SIMDE_FLOAT16_VALUE( 32.741), SIMDE_FLOAT16_VALUE( - 16.162) } }, + { { SIMDE_FLOAT16_VALUE( 39.481), SIMDE_FLOAT16_VALUE( - 43.751), SIMDE_FLOAT16_VALUE( 46.517), SIMDE_FLOAT16_VALUE( 73.973), + SIMDE_FLOAT16_VALUE( - 63.824), SIMDE_FLOAT16_VALUE( - 81.545), SIMDE_FLOAT16_VALUE( 80.086), SIMDE_FLOAT16_VALUE( 5.275) }, + { SIMDE_FLOAT16_VALUE( 47.213), SIMDE_FLOAT16_VALUE( 95.067), SIMDE_FLOAT16_VALUE( - 53.211), SIMDE_FLOAT16_VALUE( 47.692), + SIMDE_FLOAT16_VALUE( 71.401), SIMDE_FLOAT16_VALUE( - 54.682), SIMDE_FLOAT16_VALUE( 74.308), SIMDE_FLOAT16_VALUE( - 33.162) }, + { SIMDE_FLOAT16_VALUE( - 43.751), SIMDE_FLOAT16_VALUE( 73.973), SIMDE_FLOAT16_VALUE( - 81.545), SIMDE_FLOAT16_VALUE( 5.275), + SIMDE_FLOAT16_VALUE( 95.067), SIMDE_FLOAT16_VALUE( 47.692), SIMDE_FLOAT16_VALUE( - 54.682), SIMDE_FLOAT16_VALUE( - 33.162) } }, + { { SIMDE_FLOAT16_VALUE( 93.150), SIMDE_FLOAT16_VALUE( - 92.626), SIMDE_FLOAT16_VALUE( 71.362), SIMDE_FLOAT16_VALUE( - 72.353), + SIMDE_FLOAT16_VALUE( 24.600), SIMDE_FLOAT16_VALUE( - 79.615), SIMDE_FLOAT16_VALUE( - 49.427), SIMDE_FLOAT16_VALUE( - 48.559) }, + { SIMDE_FLOAT16_VALUE( - 35.290), SIMDE_FLOAT16_VALUE( - 24.706), SIMDE_FLOAT16_VALUE( 98.487), SIMDE_FLOAT16_VALUE( 58.278), + SIMDE_FLOAT16_VALUE( - 53.949), SIMDE_FLOAT16_VALUE( - 40.152), SIMDE_FLOAT16_VALUE( 29.818), SIMDE_FLOAT16_VALUE( 53.465) }, + { SIMDE_FLOAT16_VALUE( - 92.626), SIMDE_FLOAT16_VALUE( - 72.353), SIMDE_FLOAT16_VALUE( - 79.615), SIMDE_FLOAT16_VALUE( - 48.559), + SIMDE_FLOAT16_VALUE( - 24.706), SIMDE_FLOAT16_VALUE( 58.278), SIMDE_FLOAT16_VALUE( - 40.152), SIMDE_FLOAT16_VALUE( 53.465) } }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { @@ -410,10 +531,25 @@ test_simde_vuzp2q_f16 (SIMDE_MUNIT_TEST_ARGS) { } 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_vuzp2q_f16(a, b); + + 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_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_f32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float32 a[4]; simde_float32 b[4]; @@ -453,10 +589,25 @@ test_simde_vuzp2q_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_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f); + simde_float32x4_t r = simde_vuzp2q_f32(a, b); + + simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_f64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { simde_float64 a[2]; simde_float64 b[2]; @@ -497,10 +648,25 @@ test_simde_vuzp2q_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_float64x2_t b = simde_test_arm_neon_random_f64x2(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); + simde_float64x2_t r = simde_vuzp2q_f64(a, b); + + simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_f64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_f64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_s8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int8_t a[16]; int8_t b[16]; @@ -565,10 +731,25 @@ test_simde_vuzp2q_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_int8x16_t b = simde_test_arm_neon_random_i8x16(); + simde_int8x16_t r = simde_vuzp2q_s8(a, b); + + simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_s16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int16_t a[8]; int16_t b[8]; @@ -609,10 +790,25 @@ test_simde_vuzp2q_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_int16x8_t b = simde_test_arm_neon_random_i16x8(); + simde_int16x8_t r = simde_vuzp2q_s16(a, b); + + simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_s32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int32_t a[4]; int32_t b[4]; @@ -652,10 +848,25 @@ test_simde_vuzp2q_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_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t r = simde_vuzp2q_s32(a, b); + + simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_s64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { int64_t a[2]; int64_t b[2]; @@ -695,10 +906,25 @@ test_simde_vuzp2q_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_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t r = simde_vuzp2q_s64(a, b); + + simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_u8 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint8_t a[16]; uint8_t b[16]; @@ -763,10 +989,25 @@ test_simde_vuzp2q_u8 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint8x16_t a = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t b = simde_test_arm_neon_random_u8x16(); + simde_uint8x16_t r = simde_vuzp2q_u8(a, b); + + simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u8x16(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_u16 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint16_t a[8]; uint16_t b[8]; @@ -806,10 +1047,25 @@ test_simde_vuzp2q_u16 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint16x8_t a = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t b = simde_test_arm_neon_random_u16x8(); + simde_uint16x8_t r = simde_vuzp2q_u16(a, b); + + simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u16x8(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_u32 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint32_t a[4]; uint32_t b[4]; @@ -850,10 +1106,25 @@ test_simde_vuzp2q_u32 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint32x4_t a = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t b = simde_test_arm_neon_random_u32x4(); + simde_uint32x4_t r = simde_vuzp2q_u32(a, b); + + simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x4(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } static int test_simde_vuzp2q_u64 (SIMDE_MUNIT_TEST_ARGS) { +#if 1 struct { uint64_t a[2]; uint64_t b[2]; @@ -893,6 +1164,20 @@ test_simde_vuzp2q_u64 (SIMDE_MUNIT_TEST_ARGS) { } return 0; + +#else + fputc('\n', stdout); + for (int i = 0 ; i < 8 ; i++) { + simde_uint64x2_t a = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t b = simde_test_arm_neon_random_u64x2(); + simde_uint64x2_t r = simde_vuzp2q_u64(a, b); + + simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); + simde_test_arm_neon_write_u64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST); + } + return 1; +#endif } SIMDE_TEST_FUNC_LIST_BEGIN