#define SIMDE_TEST_ARM_NEON_INSN ceq
#include "test-neon.h"
#include "../../../simde/arm/neon/ceq.h"
static int
test_simde_vceqs_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 a;
simde_float32 b;
uint32_t r;
} test_vec[] = {
#if !defined(SIMDE_FAST_NANS)
{ SIMDE_MATH_NANF,
SIMDE_FLOAT32_C( 3.14),
0 },
{ SIMDE_FLOAT32_C( 1.62),
SIMDE_MATH_NANF,
0 },
{ SIMDE_MATH_NANF,
SIMDE_MATH_NANF,
0 },
#endif
{ SIMDE_FLOAT32_C( -56.05),
SIMDE_FLOAT32_C( -39.63),
UINT32_C( 0) },
{ SIMDE_FLOAT32_C( 841.90),
SIMDE_FLOAT32_C( 841.90),
UINT32_MAX },
{ SIMDE_FLOAT32_C( -705.13),
SIMDE_FLOAT32_C( -696.24),
UINT32_C( 0) },
{ SIMDE_FLOAT32_C( -60.94),
SIMDE_FLOAT32_C( -60.94),
UINT32_MAX },
{ SIMDE_FLOAT32_C( 769.23),
SIMDE_FLOAT32_C( -998.79),
UINT32_C( 0) },
{ SIMDE_FLOAT32_C( -11.03),
SIMDE_FLOAT32_C( -11.03),
UINT32_MAX },
{ SIMDE_FLOAT32_C( 173.25),
SIMDE_FLOAT32_C( 724.98),
UINT32_C( 0) },
{ SIMDE_FLOAT32_C( 709.16),
SIMDE_FLOAT32_C( 709.16),
UINT32_MAX }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
uint32_t r = simde_vceqs_f32(test_vec[i].a, test_vec[i].b);
simde_assert_equal_u32(r, test_vec[i].r);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float32_t a = simde_test_codegen_random_f32(-1000.0f, 1000.0f);
simde_float32_t b = (i & 1) ? a : simde_test_codegen_random_f32(-1000.0f, 1000.0f);
uint32_t r = simde_vceqs_f32(a, b);
simde_test_codegen_write_f32(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_f32(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_codegen_write_u32(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceqd_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 a;
simde_float64 b;
uint64_t r;
} test_vec[] = {
#if !defined(SIMDE_FAST_NANS)
{ SIMDE_MATH_NAN,
SIMDE_FLOAT64_C( 3.14),
0 },
{ SIMDE_FLOAT64_C( 1.62),
SIMDE_MATH_NAN,
0 },
{ SIMDE_MATH_NAN,
SIMDE_MATH_NAN,
0 },
#endif
{ SIMDE_FLOAT64_C( -577.65),
SIMDE_FLOAT64_C( -703.85),
UINT64_C( 0) },
{ SIMDE_FLOAT64_C( 325.12),
SIMDE_FLOAT64_C( 325.12),
UINT64_MAX },
{ SIMDE_FLOAT64_C( -527.91),
SIMDE_FLOAT64_C( -305.80),
UINT64_C( 0) },
{ SIMDE_FLOAT64_C( -646.92),
SIMDE_FLOAT64_C( -646.92),
UINT64_MAX },
{ SIMDE_FLOAT64_C( 438.65),
SIMDE_FLOAT64_C( -673.26),
UINT64_C( 0) },
{ SIMDE_FLOAT64_C( -155.60),
SIMDE_FLOAT64_C( -155.60),
UINT64_MAX },
{ SIMDE_FLOAT64_C( -252.03),
SIMDE_FLOAT64_C( -719.74),
UINT64_C( 0) },
{ SIMDE_FLOAT64_C( 6.27),
SIMDE_FLOAT64_C( 6.27),
UINT64_MAX },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
uint64_t r = simde_vceqd_f64(test_vec[i].a, test_vec[i].b);
simde_assert_equal_u64(r, test_vec[i].r);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float64_t a = simde_test_codegen_random_f64(-1000.0, 1000.0);
simde_float64_t b = (i & 1) ? a : simde_test_codegen_random_f64(-1000.0, 1000.0);
uint64_t r = simde_vceqd_f64(a, b);
simde_test_codegen_write_f64(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_f64(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_codegen_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceqd_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a;
int64_t b;
uint64_t r;
} test_vec[] = {
{ -INT64_C( 3883316718465380623),
-INT64_C( 6525049216541933883),
UINT64_C( 0) },
{ INT64_C( 144722424870567505),
INT64_C( 144722424870567505),
UINT64_MAX },
{ -INT64_C( 4864164897981339177),
INT64_C( 9142243167308417297),
UINT64_C( 0) },
{ -INT64_C( 6739643088005172605),
-INT64_C( 6739643088005172605),
UINT64_MAX },
{ -INT64_C( 1746559855114065800),
-INT64_C( 4942034653442889758),
UINT64_C( 0) },
{ INT64_C( 6601627071088235366),
INT64_C( 6601627071088235366),
UINT64_MAX },
{ -INT64_C( 7451588071995398749),
INT64_C( 7531456216826416525),
UINT64_C( 0) },
{ INT64_C( 2677530438617359042),
INT64_C( 2677530438617359042),
UINT64_MAX },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
uint64_t r = simde_vceqd_s64(test_vec[i].a, test_vec[i].b);
simde_assert_equal_u64(r, test_vec[i].r);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int64_t a = simde_test_codegen_random_i64();
int64_t b = (i & 1) ? a : simde_test_codegen_random_i64();
uint64_t r = simde_vceqd_s64(a, b);
simde_test_codegen_write_i64(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_i64(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_codegen_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceqd_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t a;
uint64_t b;
uint64_t r;
} test_vec[] = {
{ UINT64_C( 5604696383346243987),
UINT64_C( 2792187346781598727),
UINT64_C( 0) },
{ UINT64_C(17677270875201804388),
UINT64_C(17677270875201804388),
UINT64_MAX },
{ UINT64_C( 8831712695312082859),
UINT64_C(13653696593774630020),
UINT64_C( 0) },
{ UINT64_C(17825427177876012193),
UINT64_C(17825427177876012193),
UINT64_MAX },
{ UINT64_C( 1721557500519588795),
UINT64_C( 6267904372928235163),
UINT64_C( 0) },
{ UINT64_C( 3411758805221171686),
UINT64_C( 3411758805221171686),
UINT64_MAX },
{ UINT64_C(11261191358522146236),
UINT64_C(17829590792684579308),
UINT64_C( 0) },
{ UINT64_C(16779414965382148533),
UINT64_C(16779414965382148533),
UINT64_MAX },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
uint64_t r = simde_vceqd_u64(test_vec[i].a, test_vec[i].b);
simde_assert_equal_u64(r, test_vec[i].r);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint64_t a = simde_test_codegen_random_u64();
uint64_t b = (i & 1) ? a : simde_test_codegen_random_u64();
uint64_t r = simde_vceqd_u64(a, b);
simde_test_codegen_write_u64(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_u64(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_codegen_write_u64(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
simde_float16_t b[4];
uint16_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -304.25), SIMDE_FLOAT16_VALUE( -310.25), SIMDE_FLOAT16_VALUE( -816.50), SIMDE_FLOAT16_VALUE( -947.50) },
{ SIMDE_FLOAT16_VALUE( -304.25), SIMDE_FLOAT16_VALUE( -310.25), SIMDE_FLOAT16_VALUE( -446.25), SIMDE_FLOAT16_VALUE( -947.50) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 271.50), SIMDE_FLOAT16_VALUE( -723.50), SIMDE_FLOAT16_VALUE( 595.00), SIMDE_FLOAT16_VALUE( 684.00) },
{ SIMDE_FLOAT16_VALUE( 271.50), SIMDE_FLOAT16_VALUE( -723.50), SIMDE_FLOAT16_VALUE( -921.50), SIMDE_FLOAT16_VALUE( 684.00) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -22.67), SIMDE_FLOAT16_VALUE( -950.50), SIMDE_FLOAT16_VALUE( -523.50), SIMDE_FLOAT16_VALUE( 976.00) },
{ SIMDE_FLOAT16_VALUE( 791.00), SIMDE_FLOAT16_VALUE( 509.50), SIMDE_FLOAT16_VALUE( -974.50), SIMDE_FLOAT16_VALUE( 976.00) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 251.00), SIMDE_FLOAT16_VALUE( -497.25), SIMDE_FLOAT16_VALUE( -357.25), SIMDE_FLOAT16_VALUE( 809.50) },
{ SIMDE_FLOAT16_VALUE( 251.00), SIMDE_FLOAT16_VALUE( -594.50), SIMDE_FLOAT16_VALUE( 126.00), SIMDE_FLOAT16_VALUE( 809.50) },
{ UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -2.75), SIMDE_FLOAT16_VALUE( 669.50), SIMDE_FLOAT16_VALUE( 425.75), SIMDE_FLOAT16_VALUE( -866.50) },
{ SIMDE_FLOAT16_VALUE( -554.00), SIMDE_FLOAT16_VALUE( 669.50), SIMDE_FLOAT16_VALUE( 425.75), SIMDE_FLOAT16_VALUE( 423.50) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( 411.75), SIMDE_FLOAT16_VALUE( -339.50), SIMDE_FLOAT16_VALUE( 896.00), SIMDE_FLOAT16_VALUE( 768.50) },
{ SIMDE_FLOAT16_VALUE( -130.50), SIMDE_FLOAT16_VALUE( 435.00), SIMDE_FLOAT16_VALUE( 896.00), SIMDE_FLOAT16_VALUE( 768.50) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( -55.66), SIMDE_FLOAT16_VALUE( -630.50), SIMDE_FLOAT16_VALUE( -780.00), SIMDE_FLOAT16_VALUE( 946.50) },
{ SIMDE_FLOAT16_VALUE( 511.25), SIMDE_FLOAT16_VALUE( -630.50), SIMDE_FLOAT16_VALUE( -780.00), SIMDE_FLOAT16_VALUE( -491.50) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( 847.50), SIMDE_FLOAT16_VALUE( -675.50), SIMDE_FLOAT16_VALUE( 689.50), SIMDE_FLOAT16_VALUE( 381.75) },
{ SIMDE_FLOAT16_VALUE( 970.00), SIMDE_FLOAT16_VALUE( -675.50), SIMDE_FLOAT16_VALUE( 76.06), SIMDE_FLOAT16_VALUE( 381.75) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16x4_t a = simde_vld1_f16(test_vec[i].a);
simde_float16x4_t b = simde_vld1_f16(test_vec[i].b);
simde_uint16x4_t r = simde_vceq_f16(a, b);
simde_test_arm_neon_assert_equal_u16x4(r, simde_vld1_u16(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float16_t a_[4], b_[4];
simde_test_codegen_random_vf16(sizeof(a_) / sizeof(a_[0]), a_, -1000.0, 1000.0);
simde_test_codegen_random_vf16(sizeof(b_) / sizeof(b_[0]), b_, -1000.0, 1000.0);
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint16x4_t r = simde_vceq_f16(simde_vld1_f16(a_), simde_vld1_f16(b_));
simde_test_codegen_write_vf16(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vf16(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 a[2];
simde_float32 b[2];
uint32_t r[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 83.80), SIMDE_FLOAT32_C( 475.91) },
{ SIMDE_FLOAT32_C( 83.80), SIMDE_FLOAT32_C( 475.91) },
{ UINT32_MAX, UINT32_MAX } },
{ { SIMDE_FLOAT32_C( 315.96), SIMDE_FLOAT32_C( 49.13) },
{ SIMDE_FLOAT32_C( 315.96), SIMDE_FLOAT32_C( 49.13) },
{ UINT32_MAX, UINT32_MAX } },
{ { SIMDE_FLOAT32_C( 275.23), SIMDE_FLOAT32_C( -410.87) },
{ SIMDE_FLOAT32_C( 275.23), SIMDE_FLOAT32_C( 115.66) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { SIMDE_FLOAT32_C( 336.04), SIMDE_FLOAT32_C( -887.79) },
{ SIMDE_FLOAT32_C( 336.04), SIMDE_FLOAT32_C( 388.16) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { SIMDE_FLOAT32_C( 612.02), SIMDE_FLOAT32_C( 443.88) },
{ SIMDE_FLOAT32_C( 612.02), SIMDE_FLOAT32_C( 786.43) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { SIMDE_FLOAT32_C( -252.76), SIMDE_FLOAT32_C( 831.05) },
{ SIMDE_FLOAT32_C( 465.97), SIMDE_FLOAT32_C( 831.05) },
{ UINT32_C( 0), UINT32_MAX } },
{ { SIMDE_FLOAT32_C( -686.12), SIMDE_FLOAT32_C( 807.98) },
{ SIMDE_FLOAT32_C( -686.12), SIMDE_FLOAT32_C( 169.08) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { SIMDE_FLOAT32_C( -388.06), SIMDE_FLOAT32_C( 887.17) },
{ SIMDE_FLOAT32_C( -568.13), SIMDE_FLOAT32_C( 887.17) },
{ UINT32_C( 0), UINT32_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float32x2_t a = simde_vld1_f32(test_vec[i].a);
simde_float32x2_t b = simde_vld1_f32(test_vec[i].b);
simde_uint32x2_t r = simde_vceq_f32(a, b);
simde_test_arm_neon_assert_equal_u32x2(r, simde_vld1_u32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float32 a_[2], b_[2];
simde_test_codegen_random_vf32(sizeof(a_) / sizeof(a_[0]), a_, -1000.0, 1000.0);
simde_test_codegen_random_vf32(sizeof(b_) / sizeof(b_[0]), b_, -1000.0, 1000.0);
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint32x2_t r = simde_vceq_f32(simde_vld1_f32(a_), simde_vld1_f32(b_));
simde_test_codegen_write_vf32(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vf32(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 a[1];
simde_float64 b[1];
uint64_t r[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 885.81) },
{ SIMDE_FLOAT64_C( 885.81) },
{ UINT64_MAX } },
{ { SIMDE_FLOAT64_C( 40.20) },
{ SIMDE_FLOAT64_C( 40.20) },
{ UINT64_MAX } },
{ { SIMDE_FLOAT64_C( -943.53) },
{ SIMDE_FLOAT64_C( -943.53) },
{ UINT64_MAX } },
{ { SIMDE_FLOAT64_C( 766.97) },
{ SIMDE_FLOAT64_C( 766.97) },
{ UINT64_MAX } },
{ { SIMDE_FLOAT64_C( 492.60) },
{ SIMDE_FLOAT64_C( -737.06) },
{ UINT64_C( 0) } },
{ { SIMDE_FLOAT64_C( 465.88) },
{ SIMDE_FLOAT64_C( 465.88) },
{ UINT64_MAX } },
{ { SIMDE_FLOAT64_C( -665.29) },
{ SIMDE_FLOAT64_C( -902.43) },
{ UINT64_C( 0) } },
{ { SIMDE_FLOAT64_C( -382.78) },
{ SIMDE_FLOAT64_C( -377.85) },
{ UINT64_C( 0) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float64x1_t a = simde_vld1_f64(test_vec[i].a);
simde_float64x1_t b = simde_vld1_f64(test_vec[i].b);
simde_uint64x1_t r = simde_vceq_f64(a, b);
simde_test_arm_neon_assert_equal_u64x1(r, simde_vld1_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float64 a_[1], b_[1];
simde_test_codegen_random_vf64(sizeof(a_) / sizeof(a_[0]), a_, -1000.0, 1000.0);
simde_test_codegen_random_vf64(sizeof(b_) / sizeof(b_[0]), b_, -1000.0, 1000.0);
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint64x1_t r = simde_vceq_f64(simde_vld1_f64(a_), simde_vld1_f64(b_));
simde_test_codegen_write_vf64(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vf64(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t a[8];
int8_t b[8];
uint8_t r[8];
} test_vec[] = {
{ { -INT8_C( 6), -INT8_C( 44), INT8_C( 28), INT8_C( 95), -INT8_C( 61), INT8_C( 16), INT8_C( 5), -INT8_C( 50) },
{ -INT8_C( 6), -INT8_C( 88), INT8_C( 27), INT8_C( 22), -INT8_C( 61), INT8_C( 34), -INT8_C( 63), -INT8_C( 8) },
{ UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { INT8_C( 114), -INT8_C( 100), -INT8_C( 127), INT8_C( 77), -INT8_C( 6), -INT8_C( 19), -INT8_C( 116), -INT8_C( 77) },
{ -INT8_C( 63), -INT8_C( 88), -INT8_C( 127), INT8_C( 19), -INT8_C( 71), -INT8_C( 122), -INT8_C( 31), -INT8_C( 77) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX } },
{ { -INT8_C( 104), -INT8_C( 76), -INT8_C( 104), -INT8_C( 83), -INT8_C( 97), -INT8_C( 5), INT8_C( 119), INT8_C( 96) },
{ -INT8_C( 104), -INT8_C( 78), -INT8_C( 104), -INT8_C( 110), -INT8_C( 97), INT8_C( 37), -INT8_C( 77), INT8_C( 96) },
{ UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX } },
{ { INT8_C( 122), INT8_C( 3), -INT8_C( 37), INT8_C( 110), -INT8_C( 46), -INT8_C( 119), INT8_C( 113), INT8_C( 100) },
{ INT8_C( 122), -INT8_C( 42), INT8_C( 18), INT8_C( 82), -INT8_C( 46), -INT8_C( 119), -INT8_C( 99), INT8_C( 106) },
{ UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0) } },
{ { -INT8_C( 20), INT8_C( 100), -INT8_C( 81), INT8_C( 122), INT8_C( 1), INT8_C( 48), -INT8_C( 33), INT8_C( 81) },
{ -INT8_C( 20), INT8_C( 100), -INT8_C( 65), INT8_C( 122), INT8_C( 41), INT8_C( 48), -INT8_C( 33), -INT8_C( 93) },
{ UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0) } },
{ { -INT8_C( 55), -INT8_C( 4), -INT8_C( 112), INT8_C( 122), -INT8_C( 27), -INT8_C( 6), -INT8_C( 53), -INT8_C( 46) },
{ INT8_C( 120), -INT8_C( 4), INT8_C( 113), INT8_C( 122), -INT8_C( 27), -INT8_C( 6), -INT8_C( 53), -INT8_C( 47) },
{ UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0) } },
{ { INT8_C( 29), INT8_C( 33), -INT8_C( 101), -INT8_C( 106), -INT8_C( 76), -INT8_C( 34), INT8_C( 76), INT8_C( 126) },
{ INT8_C( 29), -INT8_C( 35), -INT8_C( 94), INT8_C( 12), -INT8_C( 88), -INT8_C( 17), -INT8_C( 34), INT8_C( 32) },
{ UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { INT8_C( 123), -INT8_C( 18), INT8_C( 47), INT8_C( 48), INT8_C( 25), INT8_C( 24), -INT8_C( 82), INT8_C( 6) },
{ INT8_C( 123), INT8_C( 10), -INT8_C( 53), INT8_C( 48), -INT8_C( 23), INT8_C( 24), -INT8_C( 82), INT8_C( 6) },
{ UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int8x8_t a = simde_vld1_s8(test_vec[i].a);
simde_int8x8_t b = simde_vld1_s8(test_vec[i].b);
simde_uint8x8_t r = simde_vceq_s8(a, b);
simde_test_arm_neon_assert_equal_u8x8(r, simde_vld1_u8(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int8_t a_[8], b_[8];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint8x8_t r = simde_vceq_s8(simde_vld1_s8(a_), simde_vld1_s8(b_));
simde_test_codegen_write_vi8(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi8(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t a[4];
int16_t b[4];
uint16_t r[4];
} test_vec[] = {
{ { -INT16_C( 10359), INT16_C( 9925), INT16_C( 3010), INT16_C( 26232) },
{ INT16_C( 851), INT16_C( 9925), -INT16_C( 16151), -INT16_C( 25263) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { INT16_C( 24614), -INT16_C( 1678), INT16_C( 3577), -INT16_C( 17548) },
{ INT16_C( 8550), -INT16_C( 4287), INT16_C( 3577), -INT16_C( 17548) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { -INT16_C( 5626), INT16_C( 11378), -INT16_C( 6838), INT16_C( 17189) },
{ -INT16_C( 5626), INT16_C( 11378), -INT16_C( 6838), INT16_C( 17189) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { -INT16_C( 28630), INT16_C( 23584), -INT16_C( 32611), -INT16_C( 18978) },
{ -INT16_C( 147), INT16_C( 23584), -INT16_C( 19739), -INT16_C( 29899) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { INT16_C( 29173), INT16_C( 8094), -INT16_C( 21759), -INT16_C( 32478) },
{ INT16_C( 29173), INT16_C( 8094), -INT16_C( 21759), -INT16_C( 25021) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { INT16_C( 1238), INT16_C( 27477), INT16_C( 7144), -INT16_C( 17774) },
{ INT16_C( 1238), INT16_C( 27477), INT16_C( 7144), -INT16_C( 19893) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { -INT16_C( 11809), -INT16_C( 8164), INT16_C( 13638), -INT16_C( 22401) },
{ -INT16_C( 11648), -INT16_C( 24256), INT16_C( 13638), INT16_C( 27816) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { INT16_C( 31806), INT16_C( 9889), -INT16_C( 18467), INT16_C( 22809) },
{ INT16_C( 2906), INT16_C( 14747), -INT16_C( 18467), INT16_C( 22809) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int16x4_t a = simde_vld1_s16(test_vec[i].a);
simde_int16x4_t b = simde_vld1_s16(test_vec[i].b);
simde_uint16x4_t r = simde_vceq_s16(a, b);
simde_test_arm_neon_assert_equal_u16x4(r, simde_vld1_u16(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int16_t a_[4], b_[4];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint16x4_t r = simde_vceq_s16(simde_vld1_s16(a_), simde_vld1_s16(b_));
simde_test_codegen_write_vi16(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi16(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t a[2];
int32_t b[2];
uint32_t r[2];
} test_vec[] = {
{ { INT32_C( 1874778135), INT32_C( 443140088) },
{ INT32_C( 126021491), INT32_C( 207635942) },
{ UINT32_C( 0), UINT32_C( 0) } },
{ { INT32_C( 854773045), INT32_C( 2091071115) },
{ INT32_C( 53628719), -INT32_C( 1394914834) },
{ UINT32_C( 0), UINT32_C( 0) } },
{ { -INT32_C( 1710993738), -INT32_C( 135368431) },
{ -INT32_C( 1710993738), INT32_C( 1432828258) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { -INT32_C( 1167126645), INT32_C( 1287561566) },
{ -INT32_C( 1560700438), INT32_C( 1556311405) },
{ UINT32_C( 0), UINT32_C( 0) } },
{ { INT32_C( 1967686665), -INT32_C( 216149872) },
{ INT32_C( 1967686665), -INT32_C( 427502729) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { INT32_C( 1898924935), INT32_C( 1999338411) },
{ -INT32_C( 374417771), INT32_C( 1999338411) },
{ UINT32_C( 0), UINT32_MAX } },
{ { INT32_C( 1476217289), INT32_C( 1537377324) },
{ INT32_C( 1476217289), INT32_C( 1537377324) },
{ UINT32_MAX, UINT32_MAX } },
{ { INT32_C( 416942211), -INT32_C( 1996388130) },
{ INT32_C( 33565700), -INT32_C( 1776400409) },
{ UINT32_C( 0), UINT32_C( 0) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int32x2_t a = simde_vld1_s32(test_vec[i].a);
simde_int32x2_t b = simde_vld1_s32(test_vec[i].b);
simde_uint32x2_t r = simde_vceq_s32(a, b);
simde_test_arm_neon_assert_equal_u32x2(r, simde_vld1_u32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int32_t a_[2], b_[2];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint32x2_t r = simde_vceq_s32(simde_vld1_s32(a_), simde_vld1_s32(b_));
simde_test_codegen_write_vi32(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi32(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a[1];
int64_t b[1];
uint64_t r[1];
} test_vec[] = {
{ { INT64_C( 8535823101435549350) },
{ -INT64_C( 68493279294832619) },
{ UINT64_C( 0) } },
{ { -INT64_C( 6450899593806032554) },
{ -INT64_C( 8184543586398563143) },
{ UINT64_C( 0) } },
{ { INT64_C( 644778802918027581) },
{ INT64_C( 9064137101271018600) },
{ UINT64_C( 0) } },
{ { INT64_C( 2793435887488105527) },
{ -INT64_C( 4849783837811557109) },
{ UINT64_C( 0) } },
{ { INT64_C( 6774498698231718756) },
{ -INT64_C( 6318717217871057330) },
{ UINT64_C( 0) } },
{ { INT64_C( 3230373444996287677) },
{ INT64_C( 3230373444996287677) },
{ UINT64_MAX } },
{ { INT64_C( 8905651318291695689) },
{ INT64_C( 8905651318291695689) },
{ UINT64_MAX } },
{ { INT64_C( 3813610299838181612) },
{ INT64_C( 3813610299838181612) },
{ UINT64_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int64x1_t a = simde_vld1_s64(test_vec[i].a);
simde_int64x1_t b = simde_vld1_s64(test_vec[i].b);
simde_uint64x1_t r = simde_vceq_s64(a, b);
simde_test_arm_neon_assert_equal_u64x1(r, simde_vld1_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int64_t a_[1], b_[1];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint64x1_t r = simde_vceq_s64(simde_vld1_s64(a_), simde_vld1_s64(b_));
simde_test_codegen_write_vi64(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi64(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t a[8];
uint8_t b[8];
uint8_t r[8];
} test_vec[] = {
{ { UINT8_C(228), UINT8_C(114), UINT8_C( 18), UINT8_C(209), UINT8_C(222), UINT8_C(238), UINT8_C(135), UINT8_C( 83) },
{ UINT8_C(120), UINT8_C( 62), UINT8_C( 18), UINT8_C( 17), UINT8_C(222), UINT8_C( 31), UINT8_C(135), UINT8_C( 19) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0) } },
{ { UINT8_C(102), UINT8_C( 52), UINT8_C(143), UINT8_C( 47), UINT8_C(218), UINT8_C(224), UINT8_C(199), UINT8_C(190) },
{ UINT8_C(178), UINT8_C( 52), UINT8_C(143), UINT8_C(116), UINT8_C( 34), UINT8_C(224), UINT8_C(199), UINT8_C(155) },
{ UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0) } },
{ { UINT8_C( 42), UINT8_C( 74), UINT8_C(211), UINT8_C( 7), UINT8_C(134), UINT8_C(117), UINT8_C(195), UINT8_C(236) },
{ UINT8_C( 42), UINT8_C( 20), UINT8_C( 28), UINT8_C( 4), UINT8_C( 83), UINT8_C(117), UINT8_C(195), UINT8_C( 5) },
{ UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0) } },
{ { UINT8_C( 27), UINT8_C(189), UINT8_C(145), UINT8_C( 19), UINT8_C( 70), UINT8_C( 91), UINT8_C( 25), UINT8_C(138) },
{ UINT8_C(166), UINT8_C(189), UINT8_C(145), UINT8_C( 44), UINT8_C( 95), UINT8_C( 22), UINT8_C( 25), UINT8_C(137) },
{ UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0) } },
{ { UINT8_C(163), UINT8_C(253), UINT8_C( 32), UINT8_C(224), UINT8_C(206), UINT8_C( 87), UINT8_C( 38), UINT8_C(116) },
{ UINT8_C(154), UINT8_C(114), UINT8_C(109), UINT8_C(224), UINT8_C(206), UINT8_C( 87), UINT8_C(107), UINT8_C(116) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX } },
{ { UINT8_C( 60), UINT8_C( 13), UINT8_C(187), UINT8_C(123), UINT8_C(218), UINT8_C(121), UINT8_C(213), UINT8_C( 46) },
{ UINT8_C( 60), UINT8_C( 13), UINT8_C( 83), UINT8_C(123), UINT8_C(148), UINT8_C(121), UINT8_C(213), UINT8_C( 46) },
{ UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX } },
{ { UINT8_C(169), UINT8_C(206), UINT8_C( 15), UINT8_C(131), UINT8_C(193), UINT8_C( 31), UINT8_C( 1), UINT8_C(118) },
{ UINT8_C(169), UINT8_C(130), UINT8_C( 15), UINT8_C(131), UINT8_C(193), UINT8_C(252), UINT8_C( 1), UINT8_C(253) },
{ UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0) } },
{ { UINT8_C(145), UINT8_C(217), UINT8_C( 82), UINT8_C(245), UINT8_C( 83), UINT8_C(159), UINT8_C(107), UINT8_C(197) },
{ UINT8_C(109), UINT8_C(253), UINT8_C( 82), UINT8_C(245), UINT8_C( 28), UINT8_C( 24), UINT8_C(107), UINT8_C(197) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint8x8_t a = simde_vld1_u8(test_vec[i].a);
simde_uint8x8_t b = simde_vld1_u8(test_vec[i].b);
simde_uint8x8_t r = simde_vceq_u8(a, b);
simde_test_arm_neon_assert_equal_u8x8(r, simde_vld1_u8(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint8_t a_[8], b_[8];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint8x8_t r = simde_vceq_u8(simde_vld1_u8(a_), simde_vld1_u8(b_));
simde_test_codegen_write_vu8(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu8(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t a[4];
uint16_t b[4];
uint16_t r[4];
} test_vec[] = {
{ { UINT16_C(29979), UINT16_C(15451), UINT16_C(55565), UINT16_C( 2788) },
{ UINT16_C(29979), UINT16_C(15451), UINT16_C(55565), UINT16_C(52687) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { UINT16_C(18039), UINT16_C( 7331), UINT16_C(33155), UINT16_C( 8027) },
{ UINT16_C(60406), UINT16_C(58586), UINT16_C(28391), UINT16_C(26862) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } },
{ { UINT16_C( 9069), UINT16_C(21606), UINT16_C(21866), UINT16_C(60672) },
{ UINT16_C( 9069), UINT16_C(58546), UINT16_C(21866), UINT16_C(60672) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { UINT16_C( 2674), UINT16_C(12209), UINT16_C(62680), UINT16_C(25495) },
{ UINT16_C( 2674), UINT16_C(47757), UINT16_C(62680), UINT16_C(32526) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { UINT16_C(10068), UINT16_C( 7713), UINT16_C(31613), UINT16_C(62541) },
{ UINT16_C(47319), UINT16_C( 7713), UINT16_C(53919), UINT16_C(62541) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { UINT16_C(48094), UINT16_C(12953), UINT16_C( 5346), UINT16_C( 838) },
{ UINT16_C(48094), UINT16_C(12953), UINT16_C( 5346), UINT16_C(24560) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { UINT16_C(16567), UINT16_C(42750), UINT16_C(53927), UINT16_C(65389) },
{ UINT16_C(16567), UINT16_C(42750), UINT16_C(40229), UINT16_C(65389) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { UINT16_C(25574), UINT16_C(20571), UINT16_C(19375), UINT16_C(16048) },
{ UINT16_C(25574), UINT16_C(15012), UINT16_C(10552), UINT16_C(57134) },
{ UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint16x4_t a = simde_vld1_u16(test_vec[i].a);
simde_uint16x4_t b = simde_vld1_u16(test_vec[i].b);
simde_uint16x4_t r = simde_vceq_u16(a, b);
simde_test_arm_neon_assert_equal_u16x4(r, simde_vld1_u16(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint16_t a_[4], b_[4];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint16x4_t r = simde_vceq_u16(simde_vld1_u16(a_), simde_vld1_u16(b_));
simde_test_codegen_write_vu16(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu16(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t a[2];
uint32_t b[2];
uint32_t r[2];
} test_vec[] = {
{ { UINT32_C(4068292116), UINT32_C(1657391483) },
{ UINT32_C(2579237544), UINT32_C(3419376549) },
{ UINT32_C( 0), UINT32_C( 0) } },
{ { UINT32_C(3471013382), UINT32_C(1572021813) },
{ UINT32_C(3471013382), UINT32_C( 755365807) },
{ UINT32_MAX, UINT32_C( 0) } },
{ { UINT32_C(3576563242), UINT32_C( 591969003) },
{ UINT32_C(3576563242), UINT32_C( 591969003) },
{ UINT32_MAX, UINT32_MAX } },
{ { UINT32_C(1339722057), UINT32_C(2253574819) },
{ UINT32_C(2682004405), UINT32_C(2253574819) },
{ UINT32_C( 0), UINT32_MAX } },
{ { UINT32_C( 817654875), UINT32_C(3300460009) },
{ UINT32_C( 817654875), UINT32_C(3300460009) },
{ UINT32_MAX, UINT32_MAX } },
{ { UINT32_C( 929592194), UINT32_C(2855199800) },
{ UINT32_C(2260674582), UINT32_C(2855199800) },
{ UINT32_C( 0), UINT32_MAX } },
{ { UINT32_C(2792773707), UINT32_C(2933273541) },
{ UINT32_C(2373095480), UINT32_C(2969629769) },
{ UINT32_C( 0), UINT32_C( 0) } },
{ { UINT32_C( 198181621), UINT32_C( 318789789) },
{ UINT32_C(2819473524), UINT32_C( 318789789) },
{ UINT32_C( 0), UINT32_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint32x2_t a = simde_vld1_u32(test_vec[i].a);
simde_uint32x2_t b = simde_vld1_u32(test_vec[i].b);
simde_uint32x2_t r = simde_vceq_u32(a, b);
simde_test_arm_neon_assert_equal_u32x2(r, simde_vld1_u32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint32_t a_[2], b_[2];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint32x2_t r = simde_vceq_u32(simde_vld1_u32(a_), simde_vld1_u32(b_));
simde_test_codegen_write_vu32(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu32(2, sizeof(b_) / sizeof(b_[0]), 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_vceq_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t a[1];
uint64_t b[1];
uint64_t r[1];
} test_vec[] = {
{ { UINT64_C( 462129490676742370) },
{ UINT64_C( 3396253101468774017) },
{ UINT64_C( 0) } },
{ { UINT64_C(15200919614915212372) },
{ UINT64_C(15200919614915212372) },
{ UINT64_MAX } },
{ { UINT64_C(16437398615333454713) },
{ UINT64_C(16437398615333454713) },
{ UINT64_MAX } },
{ { UINT64_C( 1324451836855196340) },
{ UINT64_C( 1324451836855196340) },
{ UINT64_MAX } },
{ { UINT64_C( 4023702131190414723) },
{ UINT64_C( 4659676053606091433) },
{ UINT64_C( 0) } },
{ { UINT64_C(10209850915128622795) },
{ UINT64_C(10209850915128622795) },
{ UINT64_MAX } },
{ { UINT64_C( 2190433362220569284) },
{ UINT64_C(11845426152445055938) },
{ UINT64_C( 0) } },
{ { UINT64_C( 6586157150835866609) },
{ UINT64_C( 6586157150835866609) },
{ UINT64_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint64x1_t a = simde_vld1_u64(test_vec[i].a);
simde_uint64x1_t b = simde_vld1_u64(test_vec[i].b);
simde_uint64x1_t r = simde_vceq_u64(a, b);
simde_test_arm_neon_assert_equal_u64x1(r, simde_vld1_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint64_t a_[1], b_[1];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint64x1_t r = simde_vceq_u64(simde_vld1_u64(a_), simde_vld1_u64(b_));
simde_test_codegen_write_vu64(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu64(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
simde_float16_t b[8];
uint16_t r[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -258.75), SIMDE_FLOAT16_VALUE( 657.50), SIMDE_FLOAT16_VALUE( -817.50), SIMDE_FLOAT16_VALUE( 764.00),
SIMDE_FLOAT16_VALUE( -975.00), SIMDE_FLOAT16_VALUE( -855.00), SIMDE_FLOAT16_VALUE( 492.50), SIMDE_FLOAT16_VALUE( -36.75) },
{ SIMDE_FLOAT16_VALUE( 179.62), SIMDE_FLOAT16_VALUE( 657.50), SIMDE_FLOAT16_VALUE( -817.50), SIMDE_FLOAT16_VALUE( 929.50),
SIMDE_FLOAT16_VALUE( 787.50), SIMDE_FLOAT16_VALUE( -855.00), SIMDE_FLOAT16_VALUE( 492.50), SIMDE_FLOAT16_VALUE( -36.75) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 591.00), SIMDE_FLOAT16_VALUE( -247.50), SIMDE_FLOAT16_VALUE( 330.50), SIMDE_FLOAT16_VALUE( 616.00),
SIMDE_FLOAT16_VALUE( 690.50), SIMDE_FLOAT16_VALUE( 316.00), SIMDE_FLOAT16_VALUE( -955.50), SIMDE_FLOAT16_VALUE( -568.00) },
{ SIMDE_FLOAT16_VALUE( 591.00), SIMDE_FLOAT16_VALUE( -247.50), SIMDE_FLOAT16_VALUE( -804.00), SIMDE_FLOAT16_VALUE( 616.00),
SIMDE_FLOAT16_VALUE( -906.00), SIMDE_FLOAT16_VALUE( 316.00), SIMDE_FLOAT16_VALUE( -83.75), SIMDE_FLOAT16_VALUE( 273.75) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -796.50), SIMDE_FLOAT16_VALUE( 659.00), SIMDE_FLOAT16_VALUE( -852.00), SIMDE_FLOAT16_VALUE( 197.25),
SIMDE_FLOAT16_VALUE( 932.00), SIMDE_FLOAT16_VALUE( 900.50), SIMDE_FLOAT16_VALUE( -671.50), SIMDE_FLOAT16_VALUE( -740.00) },
{ SIMDE_FLOAT16_VALUE( -796.50), SIMDE_FLOAT16_VALUE( 659.00), SIMDE_FLOAT16_VALUE( 855.50), SIMDE_FLOAT16_VALUE( 894.00),
SIMDE_FLOAT16_VALUE( 718.00), SIMDE_FLOAT16_VALUE( 900.50), SIMDE_FLOAT16_VALUE( -673.50), SIMDE_FLOAT16_VALUE( 309.25) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -187.50), SIMDE_FLOAT16_VALUE( 223.62), SIMDE_FLOAT16_VALUE( 127.12), SIMDE_FLOAT16_VALUE( -255.38),
SIMDE_FLOAT16_VALUE( -969.00), SIMDE_FLOAT16_VALUE( 455.50), SIMDE_FLOAT16_VALUE( 4.81), SIMDE_FLOAT16_VALUE( 930.00) },
{ SIMDE_FLOAT16_VALUE( -187.50), SIMDE_FLOAT16_VALUE( 78.31), SIMDE_FLOAT16_VALUE( 127.12), SIMDE_FLOAT16_VALUE( -255.38),
SIMDE_FLOAT16_VALUE( -969.00), SIMDE_FLOAT16_VALUE( 455.50), SIMDE_FLOAT16_VALUE( 4.81), SIMDE_FLOAT16_VALUE( -765.50) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( -23.00), SIMDE_FLOAT16_VALUE( 66.69), SIMDE_FLOAT16_VALUE( -839.50), SIMDE_FLOAT16_VALUE( 323.50),
SIMDE_FLOAT16_VALUE( -504.50), SIMDE_FLOAT16_VALUE( -819.50), SIMDE_FLOAT16_VALUE( 626.50), SIMDE_FLOAT16_VALUE( 308.00) },
{ SIMDE_FLOAT16_VALUE( 404.25), SIMDE_FLOAT16_VALUE( 199.00), SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( 323.50),
SIMDE_FLOAT16_VALUE( -504.50), SIMDE_FLOAT16_VALUE( -38.09), SIMDE_FLOAT16_VALUE( 253.38), SIMDE_FLOAT16_VALUE( 308.00) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX } },
{ { SIMDE_FLOAT16_VALUE( 918.00), SIMDE_FLOAT16_VALUE( -747.50), SIMDE_FLOAT16_VALUE( 783.00), SIMDE_FLOAT16_VALUE( 899.00),
SIMDE_FLOAT16_VALUE( -111.38), SIMDE_FLOAT16_VALUE( -692.50), SIMDE_FLOAT16_VALUE( -908.00), SIMDE_FLOAT16_VALUE( 865.50) },
{ SIMDE_FLOAT16_VALUE( -8.81), SIMDE_FLOAT16_VALUE( -747.50), SIMDE_FLOAT16_VALUE( -319.25), SIMDE_FLOAT16_VALUE( 899.00),
SIMDE_FLOAT16_VALUE( -567.00), SIMDE_FLOAT16_VALUE( -692.50), SIMDE_FLOAT16_VALUE( 747.00), SIMDE_FLOAT16_VALUE( 837.50) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( 591.00), SIMDE_FLOAT16_VALUE( 362.50), SIMDE_FLOAT16_VALUE( 16.50), SIMDE_FLOAT16_VALUE( -520.00),
SIMDE_FLOAT16_VALUE( -580.00), SIMDE_FLOAT16_VALUE( 108.62), SIMDE_FLOAT16_VALUE( -654.50), SIMDE_FLOAT16_VALUE( -662.00) },
{ SIMDE_FLOAT16_VALUE( 591.00), SIMDE_FLOAT16_VALUE( 364.50), SIMDE_FLOAT16_VALUE( 16.50), SIMDE_FLOAT16_VALUE( -520.00),
SIMDE_FLOAT16_VALUE( 289.00), SIMDE_FLOAT16_VALUE( 108.62), SIMDE_FLOAT16_VALUE( -654.50), SIMDE_FLOAT16_VALUE( -720.00) },
{ UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0) } },
{ { SIMDE_FLOAT16_VALUE( 705.50), SIMDE_FLOAT16_VALUE( -207.62), SIMDE_FLOAT16_VALUE( -158.12), SIMDE_FLOAT16_VALUE( -553.50),
SIMDE_FLOAT16_VALUE( 206.75), SIMDE_FLOAT16_VALUE( -786.00), SIMDE_FLOAT16_VALUE( -728.00), SIMDE_FLOAT16_VALUE( -171.88) },
{ SIMDE_FLOAT16_VALUE( 514.50), SIMDE_FLOAT16_VALUE( -920.50), SIMDE_FLOAT16_VALUE( -367.25), SIMDE_FLOAT16_VALUE( 934.00),
SIMDE_FLOAT16_VALUE( 237.00), SIMDE_FLOAT16_VALUE( -786.00), SIMDE_FLOAT16_VALUE( -728.00), SIMDE_FLOAT16_VALUE( -171.88) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float16x8_t a = simde_vld1q_f16(test_vec[i].a);
simde_float16x8_t b = simde_vld1q_f16(test_vec[i].b);
simde_uint16x8_t r = simde_vceqq_f16(a, b);
simde_test_arm_neon_assert_equal_u16x8(r, simde_vld1q_u16(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float16_t a_[8], b_[8];
simde_test_codegen_random_vf16(sizeof(a_) / sizeof(a_[0]), a_, -1000.0, 1000.0);
simde_test_codegen_random_vf16(sizeof(b_) / sizeof(b_[0]), b_, -1000.0, 1000.0);
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint16x8_t r = simde_vceqq_f16(simde_vld1q_f16(a_), simde_vld1q_f16(b_));
simde_test_codegen_write_vf16(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vf16(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 a[4];
simde_float32 b[4];
uint32_t r[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 151.95), SIMDE_FLOAT32_C( 801.55), SIMDE_FLOAT32_C( 470.19), SIMDE_FLOAT32_C( 494.12) },
{ SIMDE_FLOAT32_C( -614.47), SIMDE_FLOAT32_C( 801.55), SIMDE_FLOAT32_C( 128.44), SIMDE_FLOAT32_C( 494.12) },
{ UINT32_C( 0), UINT32_MAX, UINT32_C( 0), UINT32_MAX } },
{ { SIMDE_FLOAT32_C( -211.99), SIMDE_FLOAT32_C( 401.96), SIMDE_FLOAT32_C( -113.21), SIMDE_FLOAT32_C( 64.60) },
{ SIMDE_FLOAT32_C( -211.99), SIMDE_FLOAT32_C( 68.77), SIMDE_FLOAT32_C( -113.21), SIMDE_FLOAT32_C( 64.60) },
{ UINT32_MAX, UINT32_C( 0), UINT32_MAX, UINT32_MAX } },
{ { SIMDE_FLOAT32_C( 843.56), SIMDE_FLOAT32_C( 416.97), SIMDE_FLOAT32_C( 36.69), SIMDE_FLOAT32_C( -30.43) },
{ SIMDE_FLOAT32_C( 54.01), SIMDE_FLOAT32_C( 416.97), SIMDE_FLOAT32_C( 36.69), SIMDE_FLOAT32_C( -794.04) },
{ UINT32_C( 0), UINT32_MAX, UINT32_MAX, UINT32_C( 0) } },
{ { SIMDE_FLOAT32_C( 264.61), SIMDE_FLOAT32_C( -269.86), SIMDE_FLOAT32_C( -951.46), SIMDE_FLOAT32_C( -765.17) },
{ SIMDE_FLOAT32_C( 264.61), SIMDE_FLOAT32_C( 341.73), SIMDE_FLOAT32_C( -453.78), SIMDE_FLOAT32_C( -765.17) },
{ UINT32_MAX, UINT32_C( 0), UINT32_C( 0), UINT32_MAX } },
{ { SIMDE_FLOAT32_C( -863.16), SIMDE_FLOAT32_C( 964.02), SIMDE_FLOAT32_C( -403.70), SIMDE_FLOAT32_C( 980.39) },
{ SIMDE_FLOAT32_C( -863.16), SIMDE_FLOAT32_C( -832.51), SIMDE_FLOAT32_C( -252.53), SIMDE_FLOAT32_C( 980.39) },
{ UINT32_MAX, UINT32_C( 0), UINT32_C( 0), UINT32_MAX } },
{ { SIMDE_FLOAT32_C( -506.48), SIMDE_FLOAT32_C( 986.65), SIMDE_FLOAT32_C( 541.36), SIMDE_FLOAT32_C( -198.05) },
{ SIMDE_FLOAT32_C( -506.48), SIMDE_FLOAT32_C( 852.79), SIMDE_FLOAT32_C( 541.36), SIMDE_FLOAT32_C( -198.05) },
{ UINT32_MAX, UINT32_C( 0), UINT32_MAX, UINT32_MAX } },
{ { SIMDE_FLOAT32_C( -68.37), SIMDE_FLOAT32_C( -248.88), SIMDE_FLOAT32_C( -917.64), SIMDE_FLOAT32_C( -455.58) },
{ SIMDE_FLOAT32_C( -886.61), SIMDE_FLOAT32_C( 159.60), SIMDE_FLOAT32_C( 207.02), SIMDE_FLOAT32_C( -455.58) },
{ UINT32_C( 0), UINT32_C( 0), UINT32_C( 0), UINT32_MAX } },
{ { SIMDE_FLOAT32_C( 970.82), SIMDE_FLOAT32_C( -809.19), SIMDE_FLOAT32_C( 240.85), SIMDE_FLOAT32_C( -38.07) },
{ SIMDE_FLOAT32_C( 332.11), SIMDE_FLOAT32_C( -809.19), SIMDE_FLOAT32_C( 7.05), SIMDE_FLOAT32_C( -849.83) },
{ UINT32_C( 0), UINT32_MAX, UINT32_C( 0), UINT32_C( 0) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float32x4_t a = simde_vld1q_f32(test_vec[i].a);
simde_float32x4_t b = simde_vld1q_f32(test_vec[i].b);
simde_uint32x4_t r = simde_vceqq_f32(a, b);
simde_test_arm_neon_assert_equal_u32x4(r, simde_vld1q_u32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float32 a_[4], b_[4];
simde_test_codegen_random_vf32(sizeof(a_) / sizeof(a_[0]), a_, -1000.0, 1000.0);
simde_test_codegen_random_vf32(sizeof(b_) / sizeof(b_[0]), b_, -1000.0, 1000.0);
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint32x4_t r = simde_vceqq_f32(simde_vld1q_f32(a_), simde_vld1q_f32(b_));
simde_test_codegen_write_vf32(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vf32(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 a[2];
simde_float64 b[2];
uint64_t r[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 211.07), SIMDE_FLOAT64_C( -652.68) },
{ SIMDE_FLOAT64_C( -764.13), SIMDE_FLOAT64_C( -652.68) },
{ UINT64_C( 0), UINT64_MAX } },
{ { SIMDE_FLOAT64_C( -650.75), SIMDE_FLOAT64_C( -819.92) },
{ SIMDE_FLOAT64_C( -825.40), SIMDE_FLOAT64_C( -295.90) },
{ UINT64_C( 0), UINT64_C( 0) } },
{ { SIMDE_FLOAT64_C( 934.40), SIMDE_FLOAT64_C( -562.53) },
{ SIMDE_FLOAT64_C( 934.40), SIMDE_FLOAT64_C( 790.23) },
{ UINT64_MAX, UINT64_C( 0) } },
{ { SIMDE_FLOAT64_C( -625.41), SIMDE_FLOAT64_C( 22.91) },
{ SIMDE_FLOAT64_C( -625.41), SIMDE_FLOAT64_C( 22.91) },
{ UINT64_MAX, UINT64_MAX } },
{ { SIMDE_FLOAT64_C( 523.75), SIMDE_FLOAT64_C( 311.54) },
{ SIMDE_FLOAT64_C( 286.95), SIMDE_FLOAT64_C( 311.54) },
{ UINT64_C( 0), UINT64_MAX } },
{ { SIMDE_FLOAT64_C( 41.17), SIMDE_FLOAT64_C( 277.04) },
{ SIMDE_FLOAT64_C( 630.41), SIMDE_FLOAT64_C( 277.04) },
{ UINT64_C( 0), UINT64_MAX } },
{ { SIMDE_FLOAT64_C( -701.97), SIMDE_FLOAT64_C( -163.42) },
{ SIMDE_FLOAT64_C( -701.97), SIMDE_FLOAT64_C( 980.64) },
{ UINT64_MAX, UINT64_C( 0) } },
{ { SIMDE_FLOAT64_C( 144.09), SIMDE_FLOAT64_C( -754.88) },
{ SIMDE_FLOAT64_C( -879.09), SIMDE_FLOAT64_C( 78.48) },
{ UINT64_C( 0), UINT64_C( 0) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float64x2_t a = simde_vld1q_f64(test_vec[i].a);
simde_float64x2_t b = simde_vld1q_f64(test_vec[i].b);
simde_uint64x2_t r = simde_vceqq_f64(a, b);
simde_test_arm_neon_assert_equal_u64x2(r, simde_vld1q_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_float64 a_[2], b_[2];
simde_test_codegen_random_vf64(sizeof(a_) / sizeof(a_[0]), a_, -1000.0, 1000.0);
simde_test_codegen_random_vf64(sizeof(b_) / sizeof(b_[0]), b_, -1000.0, 1000.0);
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint64x2_t r = simde_vceqq_f64(simde_vld1q_f64(a_), simde_vld1q_f64(b_));
simde_test_codegen_write_vf64(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vf64(2, sizeof(b_) / sizeof(b_[0]), b_, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceqq_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t a[16];
int8_t b[16];
uint8_t r[16];
} test_vec[] = {
{ { -INT8_C( 9), -INT8_C( 9), -INT8_C( 98), INT8_C( 88), INT8_C( 87), -INT8_C( 10), -INT8_C( 23), -INT8_C( 78),
-INT8_C( 51), -INT8_C( 101), INT8_C( 84), -INT8_C( 61), -INT8_C( 126), INT8_C( 45), INT8_C( 125), INT8_C( 85) },
{ INT8_C( 33), -INT8_C( 9), INT8_C( 48), -INT8_C( 50), -INT8_C( 123), -INT8_C( 10), INT8_C( 109), -INT8_C( 12),
INT8_C( 61), INT8_C( 6), INT8_C( 84), -INT8_C( 65), INT8_C( 94), INT8_C( 46), INT8_C( 97), INT8_C( 85) },
{ UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0),
UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX } },
{ { -INT8_C( 32), -INT8_C( 24), INT8_C( 19), -INT8_C( 51), INT8_MAX, INT8_MIN, -INT8_C( 121), -INT8_C( 63),
INT8_C( 56), INT8_C( 4), INT8_MIN, INT8_C( 92), -INT8_C( 2), -INT8_C( 31), -INT8_C( 95), -INT8_C( 17) },
{ -INT8_C( 32), -INT8_C( 24), -INT8_C( 110), -INT8_C( 51), INT8_MAX, INT8_C( 66), -INT8_C( 121), -INT8_C( 79),
INT8_C( 56), INT8_C( 4), INT8_C( 101), INT8_C( 92), -INT8_C( 2), -INT8_C( 61), -INT8_C( 95), -INT8_C( 17) },
{ UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0),
UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX } },
{ { -INT8_C( 62), -INT8_C( 93), INT8_C( 65), INT8_C( 6), -INT8_C( 27), -INT8_C( 40), -INT8_C( 14), -INT8_C( 27),
-INT8_C( 17), INT8_C( 87), INT8_C( 98), -INT8_C( 24), INT8_C( 26), INT8_C( 27), -INT8_C( 62), INT8_C( 107) },
{ -INT8_C( 48), -INT8_C( 123), INT8_C( 65), INT8_C( 6), INT8_C( 85), -INT8_C( 40), -INT8_C( 62), -INT8_C( 27),
-INT8_C( 17), INT8_C( 98), INT8_C( 98), -INT8_C( 24), INT8_C( 61), INT8_C( 115), -INT8_C( 62), -INT8_C( 1) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX,
UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0) } },
{ { INT8_C( 44), INT8_C( 38), -INT8_C( 124), -INT8_C( 62), INT8_C( 42), INT8_C( 70), -INT8_C( 118), -INT8_C( 27),
INT8_C( 102), -INT8_C( 127), -INT8_C( 118), -INT8_C( 26), -INT8_C( 105), -INT8_C( 60), -INT8_C( 27), INT8_C( 50) },
{ INT8_C( 44), INT8_C( 38), -INT8_C( 69), -INT8_C( 62), INT8_C( 90), -INT8_C( 44), -INT8_C( 118), -INT8_C( 27),
INT8_C( 102), -INT8_C( 127), -INT8_C( 118), INT8_C( 20), -INT8_C( 105), -INT8_C( 101), -INT8_C( 109), INT8_C( 50) },
{ UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX,
UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX } },
{ { -INT8_C( 7), -INT8_C( 36), -INT8_C( 26), INT8_C( 83), -INT8_C( 44), INT8_C( 112), -INT8_C( 76), -INT8_C( 112),
-INT8_C( 15), -INT8_C( 62), -INT8_C( 91), -INT8_C( 120), INT8_C( 94), INT8_C( 56), -INT8_C( 70), INT8_C( 109) },
{ INT8_C( 79), -INT8_C( 36), INT8_C( 99), -INT8_C( 83), -INT8_C( 44), -INT8_C( 108), -INT8_C( 76), INT8_C( 4),
-INT8_C( 57), -INT8_C( 95), -INT8_C( 34), -INT8_C( 66), INT8_C( 116), INT8_C( 120), -INT8_C( 31), INT8_C( 109) },
{ UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0),
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX } },
{ { INT8_C( 71), -INT8_C( 57), INT8_C( 99), -INT8_C( 64), INT8_C( 91), INT8_C( 23), -INT8_C( 23), INT8_C( 12),
-INT8_C( 12), -INT8_C( 103), -INT8_C( 32), INT8_C( 90), INT8_C( 118), -INT8_C( 63), -INT8_C( 102), INT8_C( 75) },
{ -INT8_C( 119), INT8_C( 90), INT8_C( 61), -INT8_C( 64), INT8_C( 82), -INT8_C( 58), -INT8_C( 23), INT8_C( 12),
-INT8_C( 12), -INT8_C( 103), INT8_C( 37), INT8_C( 90), INT8_C( 4), -INT8_C( 119), INT8_C( 15), INT8_C( 75) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX,
UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX } },
{ { INT8_C( 100), -INT8_C( 16), -INT8_C( 72), -INT8_C( 101), INT8_C( 65), -INT8_C( 95), -INT8_C( 62), -INT8_C( 7),
INT8_C( 58), INT8_C( 78), -INT8_C( 13), INT8_C( 62), INT8_C( 88), INT8_C( 49), INT8_C( 75), -INT8_C( 64) },
{ INT8_C( 17), -INT8_C( 16), INT8_C( 107), -INT8_C( 101), INT8_C( 118), INT8_C( 56), -INT8_C( 34), -INT8_C( 7),
-INT8_C( 27), INT8_C( 78), -INT8_C( 13), INT8_C( 84), INT8_C( 88), INT8_C( 49), INT8_C( 75), -INT8_C( 68) },
{ UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX,
UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0) } },
{ { -INT8_C( 105), -INT8_C( 72), -INT8_C( 61), INT8_C( 30), -INT8_C( 30), -INT8_C( 39), -INT8_C( 3), -INT8_C( 2),
-INT8_C( 106), -INT8_C( 7), INT8_C( 42), INT8_MAX, INT8_C( 42), INT8_C( 118), INT8_C( 59), INT8_C( 88) },
{ INT8_C( 121), -INT8_C( 83), -INT8_C( 61), INT8_C( 30), -INT8_C( 30), -INT8_C( 27), -INT8_C( 3), -INT8_C( 2),
-INT8_C( 106), INT8_C( 26), -INT8_C( 118), -INT8_C( 26), -INT8_C( 63), -INT8_C( 41), INT8_C( 70), INT8_C( 88) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX,
UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int8x16_t a = simde_vld1q_s8(test_vec[i].a);
simde_int8x16_t b = simde_vld1q_s8(test_vec[i].b);
simde_uint8x16_t r = simde_vceqq_s8(a, b);
simde_test_arm_neon_assert_equal_u8x16(r, simde_vld1q_u8(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int8_t a_[16], b_[16];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint8x16_t r = simde_vceqq_s8(simde_vld1q_s8(a_), simde_vld1q_s8(b_));
simde_test_codegen_write_vi8(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi8(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t a[8];
int16_t b[8];
uint16_t r[8];
} test_vec[] = {
{ { INT16_C( 30689), INT16_C( 17219), INT16_C( 24342), -INT16_C( 6278), -INT16_C( 13469), -INT16_C( 11550), -INT16_C( 32354), INT16_C( 32558) },
{ INT16_C( 2591), INT16_C( 17219), INT16_C( 24342), INT16_C( 11098), -INT16_C( 31655), -INT16_C( 11550), -INT16_C( 32354), INT16_C( 32558) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { INT16_C( 13658), -INT16_C( 1829), INT16_C( 1817), INT16_C( 14349), INT16_C( 20497), INT16_C( 2181), INT16_C( 17067), INT16_C( 19767) },
{ INT16_C( 13658), -INT16_C( 1829), INT16_C( 2742), -INT16_C( 20873), -INT16_C( 11205), INT16_C( 2181), INT16_C( 17067), INT16_C( 19767) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { INT16_C( 8203), -INT16_C( 17794), INT16_C( 9266), INT16_C( 20931), -INT16_C( 24826), -INT16_C( 17335), -INT16_C( 26633), -INT16_C( 7061) },
{ -INT16_C( 3947), INT16_C( 16876), INT16_C( 9266), -INT16_C( 31090), INT16_C( 15459), -INT16_C( 22030), -INT16_C( 26633), INT16_C( 512) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { INT16_C( 6571), -INT16_C( 23607), -INT16_C( 13904), INT16_C( 26789), INT16_C( 25160), -INT16_C( 24352), INT16_C( 5859), INT16_C( 750) },
{ INT16_C( 6571), -INT16_C( 23607), -INT16_C( 13904), INT16_C( 26789), INT16_C( 25160), -INT16_C( 26601), INT16_C( 5859), INT16_C( 750) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { -INT16_C( 593), -INT16_C( 28062), -INT16_C( 19368), INT16_C( 1263), -INT16_C( 17971), -INT16_C( 11555), INT16_C( 19586), -INT16_C( 5697) },
{ -INT16_C( 593), -INT16_C( 28062), INT16_C( 20756), INT16_C( 29588), INT16_C( 24402), -INT16_C( 11555), -INT16_C( 6441), -INT16_C( 5697) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { -INT16_C( 11424), INT16_C( 11397), INT16_C( 13343), -INT16_C( 12627), -INT16_C( 12910), -INT16_C( 27533), -INT16_C( 2719), -INT16_C( 10908) },
{ -INT16_C( 27052), INT16_C( 11397), INT16_C( 17788), INT16_C( 19221), -INT16_C( 12910), -INT16_C( 27533), -INT16_C( 24716), -INT16_C( 10908) },
{ UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { -INT16_C( 16011), -INT16_C( 10660), -INT16_C( 8314), INT16_C( 2698), INT16_C( 6801), INT16_C( 30346), INT16_C( 19284), -INT16_C( 2675) },
{ -INT16_C( 6632), -INT16_C( 29317), -INT16_C( 8314), -INT16_C( 1950), INT16_C( 6801), INT16_C( 30346), -INT16_C( 5249), -INT16_C( 2675) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX } },
{ { INT16_C( 13584), -INT16_C( 28925), INT16_C( 17902), INT16_C( 1952), INT16_C( 20602), -INT16_C( 19820), -INT16_C( 25947), INT16_C( 2597) },
{ INT16_C( 13584), -INT16_C( 28925), -INT16_C( 28640), -INT16_C( 13180), INT16_C( 20602), INT16_C( 31278), -INT16_C( 25947), INT16_C( 2597) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int16x8_t a = simde_vld1q_s16(test_vec[i].a);
simde_int16x8_t b = simde_vld1q_s16(test_vec[i].b);
simde_uint16x8_t r = simde_vceqq_s16(a, b);
simde_test_arm_neon_assert_equal_u16x8(r, simde_vld1q_u16(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int16_t a_[8], b_[8];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint16x8_t r = simde_vceqq_s16(simde_vld1q_s16(a_), simde_vld1q_s16(b_));
simde_test_codegen_write_vi16(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi16(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t a[4];
int32_t b[4];
uint32_t r[4];
} test_vec[] = {
{ { INT32_C( 68585909), -INT32_C( 304121191), -INT32_C( 1443602637), -INT32_C( 449347537) },
{ -INT32_C( 6934970), INT32_C( 1969593714), -INT32_C( 1443602637), -INT32_C( 449347537) },
{ UINT32_C( 0), UINT32_C( 0), UINT32_MAX, UINT32_MAX } },
{ { INT32_C( 1418774728), -INT32_C( 350283357), INT32_C( 1677692505), INT32_C( 1864817917) },
{ -INT32_C( 1377530759), INT32_C( 441899499), INT32_C( 1677692505), -INT32_C( 1543051044) },
{ UINT32_C( 0), UINT32_C( 0), UINT32_MAX, UINT32_C( 0) } },
{ { -INT32_C( 1858135888), INT32_C( 1238200173), INT32_C( 149803864), INT32_C( 442295914) },
{ INT32_C( 1769004816), INT32_C( 1238200173), INT32_C( 149803864), INT32_C( 442295914) },
{ UINT32_C( 0), UINT32_MAX, UINT32_MAX, UINT32_MAX } },
{ { -INT32_C( 2084019423), -INT32_C( 1403118783), INT32_C( 1324392016), INT32_C( 1513331513) },
{ INT32_C( 964466913), -INT32_C( 700356244), INT32_C( 1324392016), INT32_C( 1513331513) },
{ UINT32_C( 0), UINT32_C( 0), UINT32_MAX, UINT32_MAX } },
{ { INT32_C( 1366407681), -INT32_C( 1851760296), -INT32_C( 85142532), -INT32_C( 1686595537) },
{ INT32_C( 1366407681), -INT32_C( 1851760296), -INT32_C( 85142532), -INT32_C( 432420401) },
{ UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_C( 0) } },
{ { INT32_C( 1880168978), INT32_C( 1531164812), -INT32_C( 948229947), -INT32_C( 1280339551) },
{ INT32_C( 1238153293), INT32_C( 1531164812), -INT32_C( 2025685887), -INT32_C( 1280339551) },
{ UINT32_C( 0), UINT32_MAX, UINT32_C( 0), UINT32_MAX } },
{ { -INT32_C( 1271016210), -INT32_C( 1683589639), -INT32_C( 1286712057), INT32_C( 84963862) },
{ INT32_C( 523468189), -INT32_C( 1683589639), -INT32_C( 1286712057), INT32_C( 84963862) },
{ UINT32_C( 0), UINT32_MAX, UINT32_MAX, UINT32_MAX } },
{ { -INT32_C( 1679457388), INT32_C( 328874951), -INT32_C( 302752090), -INT32_C( 1338987093) },
{ -INT32_C( 1679457388), -INT32_C( 280087335), -INT32_C( 302752090), -INT32_C( 1338987093) },
{ UINT32_MAX, UINT32_C( 0), UINT32_MAX, UINT32_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int32x4_t a = simde_vld1q_s32(test_vec[i].a);
simde_int32x4_t b = simde_vld1q_s32(test_vec[i].b);
simde_uint32x4_t r = simde_vceqq_s32(a, b);
simde_test_arm_neon_assert_equal_u32x4(r, simde_vld1q_u32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int32_t a_[4], b_[4];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint32x4_t r = simde_vceqq_s32(simde_vld1q_s32(a_), simde_vld1q_s32(b_));
simde_test_codegen_write_vi32(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi32(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a[2];
int64_t b[2];
uint64_t r[2];
} test_vec[] = {
{ { INT64_C( 122496343496134342), -INT64_C( 8871796291912087289) },
{ -INT64_C( 1619632953150757040), -INT64_C( 1315802993512906350) },
{ UINT64_C( 0), UINT64_C( 0) } },
{ { INT64_C( 2083288838247884909), INT64_C( 652781822731857462) },
{ INT64_C( 8036705605673239169), INT64_C( 652781822731857462) },
{ UINT64_C( 0), UINT64_MAX } },
{ { -INT64_C( 5840191344206578756), -INT64_C( 4478792894918717845) },
{ -INT64_C( 5840191344206578756), -INT64_C( 4478792894918717845) },
{ UINT64_MAX, UINT64_MAX } },
{ { INT64_C( 2165879478655069652), -INT64_C( 8949288324055110036) },
{ INT64_C( 240926292617560533), -INT64_C( 8949288324055110036) },
{ UINT64_C( 0), UINT64_MAX } },
{ { -INT64_C( 4084512031659993958), INT64_C( 681759254808292176) },
{ INT64_C( 8087071077733255670), INT64_C( 681759254808292176) },
{ UINT64_C( 0), UINT64_MAX } },
{ { -INT64_C( 135823057901789263), -INT64_C( 4749785724592454897) },
{ INT64_C( 6527389508598676334), -INT64_C( 4749785724592454897) },
{ UINT64_C( 0), UINT64_MAX } },
{ { INT64_C( 946894890669630655), INT64_C( 7671867306212125913) },
{ INT64_C( 6188038121830254663), INT64_C( 7671867306212125913) },
{ UINT64_C( 0), UINT64_MAX } },
{ { INT64_C( 2558880696443476662), -INT64_C( 3803050708524976813) },
{ INT64_C( 2558880696443476662), -INT64_C( 2390307941852566042) },
{ UINT64_MAX, UINT64_C( 0) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int64x2_t a = simde_vld1q_s64(test_vec[i].a);
simde_int64x2_t b = simde_vld1q_s64(test_vec[i].b);
simde_uint64x2_t r = simde_vceqq_s64(a, b);
simde_test_arm_neon_assert_equal_u64x2(r, simde_vld1q_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
int64_t a_[2], b_[2];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint64x2_t r = simde_vceqq_s64(simde_vld1q_s64(a_), simde_vld1q_s64(b_));
simde_test_codegen_write_vi64(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vi64(2, sizeof(b_) / sizeof(b_[0]), b_, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceqq_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t a[16];
uint8_t b[16];
uint8_t r[16];
} test_vec[] = {
{ { UINT8_C(113), UINT8_C( 65), UINT8_C( 13), UINT8_C( 19), UINT8_C(188), UINT8_C( 30), UINT8_C(127), UINT8_C( 46),
UINT8_C( 5), UINT8_C(161), UINT8_C(152), UINT8_C(201), UINT8_C(221), UINT8_C( 11), UINT8_C(234), UINT8_C(187) },
{ UINT8_C(113), UINT8_C( 65), UINT8_C(119), UINT8_C(215), UINT8_C( 83), UINT8_C( 30), UINT8_C( 66), UINT8_C( 46),
UINT8_C( 5), UINT8_C(160), UINT8_C( 36), UINT8_C( 28), UINT8_C(221), UINT8_C(166), UINT8_C(124), UINT8_C( 52) },
{ UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX,
UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { UINT8_MAX, UINT8_C(125), UINT8_C(194), UINT8_C( 32), UINT8_C(198), UINT8_C( 9), UINT8_C( 43), UINT8_C( 47),
UINT8_C(164), UINT8_MAX, UINT8_C(121), UINT8_C(240), UINT8_C( 75), UINT8_C( 56), UINT8_C(182), UINT8_C( 97) },
{ UINT8_C(194), UINT8_C(254), UINT8_C( 51), UINT8_C( 32), UINT8_C(198), UINT8_C( 9), UINT8_C( 43), UINT8_C( 47),
UINT8_C(119), UINT8_MAX, UINT8_C(121), UINT8_C(240), UINT8_C(189), UINT8_C(127), UINT8_C(218), UINT8_C(189) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX,
UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { UINT8_C(124), UINT8_C( 21), UINT8_C(254), UINT8_C(157), UINT8_C( 30), UINT8_C( 54), UINT8_C(113), UINT8_C(139),
UINT8_C( 57), UINT8_C(235), UINT8_C(133), UINT8_C(247), UINT8_C(106), UINT8_C( 96), UINT8_C( 67), UINT8_C(103) },
{ UINT8_C(252), UINT8_C(196), UINT8_C(254), UINT8_C(157), UINT8_C( 85), UINT8_C( 54), UINT8_C(227), UINT8_C(139),
UINT8_C( 41), UINT8_C(170), UINT8_C( 12), UINT8_C( 85), UINT8_C( 40), UINT8_C(239), UINT8_C( 67), UINT8_C(165) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX,
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0) } },
{ { UINT8_C( 94), UINT8_C( 20), UINT8_C( 55), UINT8_C(234), UINT8_C(211), UINT8_C(240), UINT8_C(176), UINT8_C( 23),
UINT8_C(197), UINT8_C( 33), UINT8_C(198), UINT8_C(238), UINT8_C( 16), UINT8_C( 12), UINT8_C(102), UINT8_C( 17) },
{ UINT8_C( 94), UINT8_C(122), UINT8_C( 55), UINT8_C(234), UINT8_C(211), UINT8_C(240), UINT8_C(176), UINT8_C( 23),
UINT8_C( 46), UINT8_C(108), UINT8_C(198), UINT8_C(204), UINT8_C(221), UINT8_C(219), UINT8_C(102), UINT8_C( 17) },
{ UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX,
UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX } },
{ { UINT8_C( 27), UINT8_C( 44), UINT8_C( 48), UINT8_C( 78), UINT8_C( 33), UINT8_C(221), UINT8_C(101), UINT8_C(241),
UINT8_C(232), UINT8_C(193), UINT8_C( 22), UINT8_C(213), UINT8_C( 7), UINT8_C(199), UINT8_C(214), UINT8_C( 59) },
{ UINT8_C( 27), UINT8_C(113), UINT8_C( 48), UINT8_C(213), UINT8_C( 33), UINT8_C(221), UINT8_C( 84), UINT8_C(241),
UINT8_C( 83), UINT8_C(193), UINT8_C(210), UINT8_C(213), UINT8_C(193), UINT8_C(199), UINT8_C(182), UINT8_C( 59) },
{ UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX,
UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX } },
{ { UINT8_C(242), UINT8_C(121), UINT8_C(222), UINT8_C(131), UINT8_C(104), UINT8_C(252), UINT8_C(105), UINT8_C(131),
UINT8_C(243), UINT8_C( 19), UINT8_C(164), UINT8_C(180), UINT8_C(148), UINT8_C(188), UINT8_C(240), UINT8_C(135) },
{ UINT8_C(134), UINT8_C(121), UINT8_C(161), UINT8_C(131), UINT8_C(104), UINT8_C(252), UINT8_C(105), UINT8_C(131),
UINT8_C(109), UINT8_C( 19), UINT8_C(164), UINT8_C( 91), UINT8_C(148), UINT8_C(188), UINT8_C(100), UINT8_C(135) },
{ UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX,
UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX } },
{ { UINT8_C(179), UINT8_C( 71), UINT8_C( 1), UINT8_C(239), UINT8_C( 67), UINT8_C(163), UINT8_C(145), UINT8_C( 69),
UINT8_C(121), UINT8_C( 23), UINT8_C( 11), UINT8_C( 13), UINT8_C(211), UINT8_MAX, UINT8_C(148), UINT8_C( 67) },
{ UINT8_C(179), UINT8_C( 47), UINT8_C( 1), UINT8_C( 40), UINT8_C(206), UINT8_C(163), UINT8_C(145), UINT8_C( 69),
UINT8_C(146), UINT8_C(175), UINT8_C( 89), UINT8_C(133), UINT8_C(188), UINT8_MAX, UINT8_C(254), UINT8_C( 67) },
{ UINT8_MAX, UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX,
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_C( 0), UINT8_MAX } },
{ { UINT8_C( 28), UINT8_C( 5), UINT8_C(232), UINT8_C(124), UINT8_C(171), UINT8_C( 35), UINT8_C(189), UINT8_C(103),
UINT8_C(105), UINT8_C( 59), UINT8_C( 35), UINT8_C(143), UINT8_C(182), UINT8_C( 95), UINT8_C(137), UINT8_C( 96) },
{ UINT8_C( 28), UINT8_C( 5), UINT8_C(232), UINT8_C(124), UINT8_C(171), UINT8_C( 35), UINT8_C( 85), UINT8_C(103),
UINT8_C(105), UINT8_C( 59), UINT8_C(247), UINT8_C( 32), UINT8_C(182), UINT8_C( 95), UINT8_C(137), UINT8_C( 96) },
{ UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_MAX,
UINT8_MAX, UINT8_MAX, UINT8_C( 0), UINT8_C( 0), UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint8x16_t a = simde_vld1q_u8(test_vec[i].a);
simde_uint8x16_t b = simde_vld1q_u8(test_vec[i].b);
simde_uint8x16_t r = simde_vceqq_u8(a, b);
simde_test_arm_neon_assert_equal_u8x16(r, simde_vld1q_u8(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint8_t a_[16], b_[16];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint8x16_t r = simde_vceqq_u8(simde_vld1q_u8(a_), simde_vld1q_u8(b_));
simde_test_codegen_write_vu8(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu8(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t a[8];
uint16_t b[8];
uint16_t r[8];
} test_vec[] = {
{ { UINT16_C(44578), UINT16_C(17527), UINT16_C(33032), UINT16_C(22568), UINT16_C(39320), UINT16_C(43487), UINT16_C( 5405), UINT16_C(39565) },
{ UINT16_C(44578), UINT16_C(17527), UINT16_C(33032), UINT16_C(49551), UINT16_C(39320), UINT16_C(33295), UINT16_C(53936), UINT16_C(39565) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX } },
{ { UINT16_C(27399), UINT16_C(49584), UINT16_C(15701), UINT16_C(41884), UINT16_C(20596), UINT16_C(45799), UINT16_C( 9582), UINT16_C(11635) },
{ UINT16_C(33552), UINT16_C(49584), UINT16_C(15701), UINT16_C(25947), UINT16_C(20596), UINT16_C(39065), UINT16_C( 9582), UINT16_C(30039) },
{ UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_C( 0) } },
{ { UINT16_C(39753), UINT16_C(56856), UINT16_C(35858), UINT16_C( 8716), UINT16_C(48143), UINT16_C(25827), UINT16_C(56130), UINT16_C(35901) },
{ UINT16_C(25231), UINT16_C(64774), UINT16_C(23943), UINT16_C( 6003), UINT16_C( 3100), UINT16_C(55080), UINT16_C(56130), UINT16_C(35901) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX } },
{ { UINT16_C(36402), UINT16_C(11349), UINT16_C(11812), UINT16_C(39591), UINT16_C( 4740), UINT16_C(26147), UINT16_C(52872), UINT16_C(47959) },
{ UINT16_C(18649), UINT16_C( 7152), UINT16_C(11812), UINT16_C(39591), UINT16_C( 4740), UINT16_C(26147), UINT16_C(52872), UINT16_C(47959) },
{ UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { UINT16_C(41049), UINT16_C(57919), UINT16_C(30379), UINT16_C(33847), UINT16_C(10175), UINT16_C( 3828), UINT16_C(31237), UINT16_C( 9819) },
{ UINT16_C(41049), UINT16_C(57919), UINT16_C(38510), UINT16_C(52125), UINT16_C(33859), UINT16_C( 3828), UINT16_C(31237), UINT16_C( 9819) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } },
{ { UINT16_C( 5837), UINT16_C(54009), UINT16_C(21648), UINT16_C(51921), UINT16_C( 4584), UINT16_C(12013), UINT16_C(18855), UINT16_C(59937) },
{ UINT16_C( 5837), UINT16_C(54009), UINT16_C(21648), UINT16_C(59896), UINT16_C(15366), UINT16_C(12013), UINT16_C(30391), UINT16_C(22805) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_MAX, UINT16_C( 0), UINT16_C( 0) } },
{ { UINT16_C( 930), UINT16_C(22855), UINT16_C(34511), UINT16_C(40134), UINT16_C(49052), UINT16_C(11374), UINT16_C(26131), UINT16_C( 6421) },
{ UINT16_C( 930), UINT16_C(22855), UINT16_C(23673), UINT16_C( 6578), UINT16_C( 1083), UINT16_C(25129), UINT16_C( 807), UINT16_C(23408) },
{ UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) } },
{ { UINT16_C(63865), UINT16_C(41002), UINT16_C(39676), UINT16_C(34299), UINT16_C(12349), UINT16_C(52445), UINT16_C(53550), UINT16_C(60100) },
{ UINT16_C(63865), UINT16_C(41002), UINT16_C(39676), UINT16_C(34299), UINT16_C(12912), UINT16_C(52445), UINT16_C(53550), UINT16_C(60100) },
{ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_C( 0), UINT16_MAX, UINT16_MAX, UINT16_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint16x8_t a = simde_vld1q_u16(test_vec[i].a);
simde_uint16x8_t b = simde_vld1q_u16(test_vec[i].b);
simde_uint16x8_t r = simde_vceqq_u16(a, b);
simde_test_arm_neon_assert_equal_u16x8(r, simde_vld1q_u16(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint16_t a_[8], b_[8];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint16x8_t r = simde_vceqq_u16(simde_vld1q_u16(a_), simde_vld1q_u16(b_));
simde_test_codegen_write_vu16(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu16(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t a[4];
uint32_t b[4];
uint32_t r[4];
} test_vec[] = {
{ { UINT32_C(3263161029), UINT32_C( 101765053), UINT32_C(1816709255), UINT32_C(3169297405) },
{ UINT32_C(3263161029), UINT32_C( 27782043), UINT32_C(2243996519), UINT32_C(3169297405) },
{ UINT32_MAX, UINT32_C( 0), UINT32_C( 0), UINT32_MAX } },
{ { UINT32_C(2907166278), UINT32_C(2117207937), UINT32_C(1826343079), UINT32_C(3235830277) },
{ UINT32_C(2907166278), UINT32_C(2117207937), UINT32_C(1698306474), UINT32_C(3235830277) },
{ UINT32_MAX, UINT32_MAX, UINT32_C( 0), UINT32_MAX } },
{ { UINT32_C(3422007588), UINT32_C( 607638393), UINT32_C(1953130030), UINT32_C(3173101884) },
{ UINT32_C(1648055224), UINT32_C(1908962924), UINT32_C(3677464144), UINT32_C( 685716228) },
{ UINT32_C( 0), UINT32_C( 0), UINT32_C( 0), UINT32_C( 0) } },
{ { UINT32_C(3615632297), UINT32_C(3444305297), UINT32_C(1468689566), UINT32_C(3343075357) },
{ UINT32_C(2359066940), UINT32_C( 745065768), UINT32_C(3847505665), UINT32_C(3343075357) },
{ UINT32_C( 0), UINT32_C( 0), UINT32_C( 0), UINT32_MAX } },
{ { UINT32_C(1372842675), UINT32_C(3096611995), UINT32_C(1598120483), UINT32_C( 200072931) },
{ UINT32_C(2889307307), UINT32_C(3096611995), UINT32_C(1216337364), UINT32_C(1313742491) },
{ UINT32_C( 0), UINT32_MAX, UINT32_C( 0), UINT32_C( 0) } },
{ { UINT32_C(2725529726), UINT32_C(4017755219), UINT32_C( 977127474), UINT32_C(3706507585) },
{ UINT32_C( 831880797), UINT32_C(4017755219), UINT32_C( 977127474), UINT32_C(1738137065) },
{ UINT32_C( 0), UINT32_MAX, UINT32_MAX, UINT32_C( 0) } },
{ { UINT32_C(1465781187), UINT32_C(2184020377), UINT32_C( 639009737), UINT32_C(2538992595) },
{ UINT32_C(4064530880), UINT32_C(2184020377), UINT32_C(2229978718), UINT32_C(2538992595) },
{ UINT32_C( 0), UINT32_MAX, UINT32_C( 0), UINT32_MAX } },
{ { UINT32_C(2178929186), UINT32_C(1812318616), UINT32_C(3009344243), UINT32_C(3115512078) },
{ UINT32_C(2178929186), UINT32_C(1812318616), UINT32_C(3137559229), UINT32_C(3115512078) },
{ UINT32_MAX, UINT32_MAX, UINT32_C( 0), UINT32_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint32x4_t a = simde_vld1q_u32(test_vec[i].a);
simde_uint32x4_t b = simde_vld1q_u32(test_vec[i].b);
simde_uint32x4_t r = simde_vceqq_u32(a, b);
simde_test_arm_neon_assert_equal_u32x4(r, simde_vld1q_u32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint32_t a_[4], b_[4];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint32x4_t r = simde_vceqq_u32(simde_vld1q_u32(a_), simde_vld1q_u32(b_));
simde_test_codegen_write_vu32(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu32(2, sizeof(b_) / sizeof(b_[0]), 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_vceqq_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t a[2];
uint64_t b[2];
uint64_t r[2];
} test_vec[] = {
{ { UINT64_C( 5192497038293950529), UINT64_C( 8988655146390972230) },
{ UINT64_C( 7654138344029671543), UINT64_C( 8988655146390972230) },
{ UINT64_C( 0), UINT64_MAX } },
{ { UINT64_C(18144684993376973743), UINT64_C(11614340388918583195) },
{ UINT64_C(18144684993376973743), UINT64_C(11129125334456797487) },
{ UINT64_MAX, UINT64_C( 0) } },
{ { UINT64_C( 3127155335287534526), UINT64_C(16538076718182468773) },
{ UINT64_C(15278101899158077231), UINT64_C(16538076718182468773) },
{ UINT64_C( 0), UINT64_MAX } },
{ { UINT64_C(17870817187791419502), UINT64_C( 8595970968818886908) },
{ UINT64_C(17870817187791419502), UINT64_C( 8595970968818886908) },
{ UINT64_MAX, UINT64_MAX } },
{ { UINT64_C(15626440220401441863), UINT64_C(11761352064860019587) },
{ UINT64_C(14003244560131081260), UINT64_C( 2326113439418180100) },
{ UINT64_C( 0), UINT64_C( 0) } },
{ { UINT64_C(13483908073591550313), UINT64_C(13996729257435331014) },
{ UINT64_C(13483908073591550313), UINT64_C(13996729257435331014) },
{ UINT64_MAX, UINT64_MAX } },
{ { UINT64_C( 966342067865953351), UINT64_C(12496042449812497273) },
{ UINT64_C(16683983017028644208), UINT64_C(12496042449812497273) },
{ UINT64_C( 0), UINT64_MAX } },
{ { UINT64_C(10354616983512965509), UINT64_C( 1816336881116977332) },
{ UINT64_C(10354616983512965509), UINT64_C( 1816336881116977332) },
{ UINT64_MAX, UINT64_MAX } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint64x2_t a = simde_vld1q_u64(test_vec[i].a);
simde_uint64x2_t b = simde_vld1q_u64(test_vec[i].b);
simde_uint64x2_t r = simde_vceqq_u64(a, b);
simde_test_arm_neon_assert_equal_u64x2(r, simde_vld1q_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
uint64_t a_[2], b_[2];
simde_test_codegen_random_memory(sizeof(a_), HEDLEY_REINTERPRET_CAST(uint8_t*, a_));
simde_test_codegen_random_memory(sizeof(b_), HEDLEY_REINTERPRET_CAST(uint8_t*, b_));
for (size_t j = 0 ; j < (sizeof(a_) / sizeof(a_[0])) ; j++) {
if (simde_test_codegen_random_i8() & 1) {
a_[j] = b_[j];
}
}
simde_uint64x2_t r = simde_vceqq_u64(simde_vld1q_u64(a_), simde_vld1q_u64(b_));
simde_test_codegen_write_vu64(2, sizeof(a_) / sizeof(a_[0]), a_, SIMDE_TEST_VEC_POS_FIRST);
simde_test_codegen_write_vu64(2, sizeof(b_) / sizeof(b_[0]), b_, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_u64x2(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vceq_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly8_t a[8];
simde_poly8_t b[8];
uint8_t r[8];
} test_vec[] = {
{ { SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(142), SIMDE_POLY8_C(213), SIMDE_POLY8_C(180), SIMDE_POLY8_C(224), SIMDE_POLY8_C(230), SIMDE_POLY8_C( 27) },
{ SIMDE_POLY8_C(204), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 42) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { SIMDE_POLY8_C(234), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(155), SIMDE_POLY8_C(154), SIMDE_POLY8_C(144) },
{ SIMDE_POLY8_C(219), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(101), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 67) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { SIMDE_POLY8_C(129), SIMDE_POLY8_C(144), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(112), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 61) },
{ SIMDE_POLY8_C( 5), SIMDE_POLY8_C(211), SIMDE_POLY8_C(126), SIMDE_POLY8_C( 92), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(205), SIMDE_POLY8_C(134), SIMDE_POLY8_C(242) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(101), SIMDE_POLY8_C(211), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 65) },
{ SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 1), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 40) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly8x8_t a = simde_vld1_p8(test_vec[i].a);
simde_poly8x8_t b = simde_vld1_p8(test_vec[i].b);
simde_uint8x8_t r = simde_vceq_p8(a, b);
simde_test_arm_neon_assert_equal_u8x8(r, simde_vld1_u8(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_poly8x8_t b = simde_test_arm_neon_random_p8x8();
simde_uint8x8_t r = simde_vceq_p8(a, b);
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p8x8(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_vceqq_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly8_t a[16];
simde_poly8_t b[16];
uint8_t r[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(207), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(242), SIMDE_POLY8_C(151), SIMDE_POLY8_C(194), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(224), SIMDE_POLY8_C( 56),
SIMDE_POLY8_C( 4), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(124), SIMDE_POLY8_C(254), SIMDE_POLY8_C(247), SIMDE_POLY8_C( 52), SIMDE_POLY8_C(254) },
{ SIMDE_POLY8_C(174), SIMDE_POLY8_C(147), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(218), SIMDE_POLY8_C(195), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 7),
SIMDE_POLY8_C(233), SIMDE_POLY8_C(131), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(171), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 8) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0),
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { SIMDE_POLY8_C(180), SIMDE_POLY8_C(215), SIMDE_POLY8_C(159), SIMDE_POLY8_C(118), SIMDE_POLY8_C(218), SIMDE_POLY8_C(128), SIMDE_POLY8_C(174), SIMDE_POLY8_C(223),
SIMDE_POLY8_C( 50), SIMDE_POLY8_C(230), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(222), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(140) },
{ SIMDE_POLY8_C( 35), SIMDE_POLY8_C(179), SIMDE_POLY8_C(178), SIMDE_POLY8_C(253), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 96),
SIMDE_POLY8_C(191), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(207), SIMDE_POLY8_C(247), SIMDE_POLY8_C(205), SIMDE_POLY8_C(180), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(129) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0),
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { SIMDE_POLY8_C(139), SIMDE_POLY8_C(159), SIMDE_POLY8_C(248), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C(141), SIMDE_POLY8_C(159), SIMDE_POLY8_C(129), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(175), SIMDE_POLY8_C(247), SIMDE_POLY8_C( 82) },
{ SIMDE_POLY8_C( 98), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(217), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(164),
SIMDE_POLY8_C(117), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(156), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(188), SIMDE_POLY8_C(155), SIMDE_POLY8_C(195), SIMDE_POLY8_C( 71) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0),
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
{ { SIMDE_POLY8_C( 58), SIMDE_POLY8_C(187), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(241), SIMDE_POLY8_C(170), SIMDE_POLY8_C(239),
SIMDE_POLY8_C(145), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(192), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 61) },
{ SIMDE_POLY8_C(251), SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(224), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 41),
SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(247) },
{ UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0),
UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly8x16_t a = simde_vld1q_p8(test_vec[i].a);
simde_poly8x16_t b = simde_vld1q_p8(test_vec[i].b);
simde_uint8x16_t r = simde_vceqq_p8(a, b);
simde_test_arm_neon_assert_equal_u8x16(r, simde_vld1q_u8(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_poly8x16_t b = simde_test_arm_neon_random_p8x16();
simde_uint8x16_t r = simde_vceqq_p8(a, b);
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p8x16(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_vceq_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t a[1];
simde_poly64_t b[1];
uint64_t r[1];
} test_vec[] = {
{ { SIMDE_POLY64_C(10610109697062965137) },
{ SIMDE_POLY64_C(13797470745777978753) },
{ UINT64_C( 0) } },
{ { SIMDE_POLY64_C(13179714523377415233) },
{ SIMDE_POLY64_C( 8771991626746292205) },
{ UINT64_C( 0) } },
{ { SIMDE_POLY64_C( 5265193710122572527) },
{ SIMDE_POLY64_C(13312443097528992118) },
{ UINT64_C( 0) } },
{ { SIMDE_POLY64_C( 7223006856558393088) },
{ SIMDE_POLY64_C( 8470907536629376557) },
{ UINT64_C( 0) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly64x1_t a = simde_vld1_p64(test_vec[i].a);
simde_poly64x1_t b = simde_vld1_p64(test_vec[i].b);
simde_uint64x1_t r = simde_vceq_p64(a, b);
simde_test_arm_neon_assert_equal_u64x1(r, simde_vld1_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_poly64x1_t b = simde_test_arm_neon_random_p64x1();
simde_uint64x1_t r = simde_vceq_p64(a, b);
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p64x1(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_vceqq_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t a[2];
simde_poly64_t b[2];
uint64_t r[2];
} test_vec[] = {
{ { SIMDE_POLY64_C(10032889647338621162), SIMDE_POLY64_C(16302570947868333350) },
{ SIMDE_POLY64_C(18058387373179425982), SIMDE_POLY64_C( 2385898683381974888) },
{ UINT64_C( 0), UINT64_C( 0) } },
{ { SIMDE_POLY64_C(10301888934299135090), SIMDE_POLY64_C( 6703552653777912382) },
{ SIMDE_POLY64_C( 8844625541774494241), SIMDE_POLY64_C(12235078660442279283) },
{ UINT64_C( 0), UINT64_C( 0) } },
{ { SIMDE_POLY64_C( 2314021045957703719), SIMDE_POLY64_C(11118628241148324944) },
{ SIMDE_POLY64_C(18204144019198319895), SIMDE_POLY64_C( 2651056658354422249) },
{ UINT64_C( 0), UINT64_C( 0) } },
{ { SIMDE_POLY64_C( 4443875176000774314), SIMDE_POLY64_C( 6165280825713488252) },
{ SIMDE_POLY64_C(17517911874136305047), SIMDE_POLY64_C(16033620840378778465) },
{ UINT64_C( 0), UINT64_C( 0) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly64x2_t a = simde_vld1q_p64(test_vec[i].a);
simde_poly64x2_t b = simde_vld1q_p64(test_vec[i].b);
simde_uint64x2_t r = simde_vceqq_p64(a, b);
simde_test_arm_neon_assert_equal_u64x2(r, simde_vld1q_u64(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_poly64x2_t b = simde_test_arm_neon_random_p64x2();
simde_uint64x2_t r = simde_vceqq_p64(a, b);
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p64x2(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
SIMDE_TEST_FUNC_LIST_ENTRY(vceqs_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqd_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqd_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqd_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vceq_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vceqq_p64)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"