#define SIMDE_TEST_ARM_NEON_INSN reinterpret
#include "test-neon.h"
#include "../../../simde/arm/neon/reinterpret.h"
static int
test_simde_vreinterpret_f32_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 42), INT8_C( 92), INT8_C( 93), INT8_C( 70), INT8_C( 89), -INT8_C( 37), -INT8_C( 103), -INT8_C( 92) },
},
{ { INT8_C( 40), -INT8_C( 95), -INT8_C( 44), INT8_C( 67), -INT8_C( 63), -INT8_C( 92), -INT8_C( 108), INT8_C( 10) },
},
{ { INT8_C( 37), INT8_C( 114), -INT8_C( 8), -INT8_C( 112), -INT8_C( 60), -INT8_C( 12), -INT8_C( 68), -INT8_C( 73) },
},
{ { -INT8_C( 40), -INT8_C( 11), -INT8_C( 75), INT8_C( 51), -INT8_C( 124), -INT8_C( 99), INT8_C( 109), INT8_C( 90) },
},
{ { -INT8_C( 7), -INT8_C( 54), -INT8_C( 95), INT8_C( 82), -INT8_C( 91), INT8_C( 58), -INT8_C( 10), -INT8_C( 50) },
},
{ { -INT8_C( 37), -INT8_C( 54), INT8_C( 17), -INT8_C( 100), INT8_C( 110), -INT8_C( 91), -INT8_C( 90), -INT8_C( 108) },
},
{ { INT8_C( 23), -INT8_C( 97), INT8_C( 36), -INT8_C( 36), -INT8_C( 109), -INT8_C( 31), -INT8_C( 109), INT8_C( 107) },
},
{ { -INT8_C( 42), INT8_C( 73), -INT8_C( 97), INT8_C( 91), -INT8_C( 26), INT8_C( 12), -INT8_C( 75), -INT8_C( 33) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_s8(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 5), INT8_C( 109), -INT8_C( 72), -INT8_C( 54), INT8_C( 91), -INT8_C( 8), INT8_C( 66), INT8_C( 119) },
},
{ { INT8_C( 115), INT8_C( 82), INT8_C( 13), -INT8_C( 69), INT8_C( 12), -INT8_C( 98), INT8_C( 10), INT8_C( 113) },
},
{ { -INT8_C( 12), INT8_C( 18), INT8_C( 58), INT8_C( 77), -INT8_C( 60), INT8_C( 73), INT8_C( 48), INT8_C( 23) },
},
{ { -INT8_C( 71), INT8_MAX, -INT8_C( 101), INT8_C( 99), INT8_C( 32), -INT8_C( 47), INT8_C( 84), INT8_C( 28) },
},
{ { INT8_C( 62), INT8_C( 13), -INT8_C( 26), -INT8_C( 102), INT8_C( 5), INT8_C( 41), INT8_C( 17), INT8_C( 120) },
},
{ { INT8_C( 123), INT8_C( 30), INT8_C( 51), -INT8_C( 121), -INT8_C( 68), INT8_C( 61), -INT8_C( 8), -INT8_C( 80) },
},
{ { INT8_C( 79), INT8_C( 50), -INT8_C( 3), INT8_C( 19), INT8_C( 124), INT8_C( 46), INT8_C( 42), INT8_C( 53) },
},
{ { -INT8_C( 83), -INT8_C( 59), -INT8_C( 104), -INT8_C( 51), -INT8_C( 106), -INT8_C( 19), -INT8_C( 23), -INT8_C( 43) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_s8(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 119), INT8_C( 49), INT8_C( 78), INT8_C( 105), -INT8_C( 127), -INT8_C( 66), -INT8_C( 26), -INT8_C( 61) },
},
{ { INT8_C( 30), -INT8_C( 27), -INT8_C( 30), INT8_C( 39), INT8_C( 99), INT8_C( 61), -INT8_C( 126), -INT8_C( 122) },
},
{ { -INT8_C( 69), -INT8_C( 3), INT8_C( 53), INT8_C( 18), INT8_C( 42), -INT8_C( 110), -INT8_C( 95), INT8_C( 32) },
},
{ { INT8_C( 65), INT8_C( 49), INT8_C( 29), INT8_C( 105), INT8_C( 80), -INT8_C( 105), -INT8_C( 59), -INT8_C( 38) },
},
{ { -INT8_C( 55), INT8_C( 19), INT8_C( 67), INT8_C( 74), -INT8_C( 47), INT8_C( 41), INT8_C( 13), -INT8_C( 17) },
},
{ { INT8_C( 14), -INT8_C( 17), INT8_C( 22), INT8_C( 113), INT8_C( 44), -INT8_C( 103), -INT8_C( 9), -INT8_C( 25) },
},
{ { -INT8_C( 106), INT8_C( 44), -INT8_C( 7), -INT8_C( 64), -INT8_C( 66), -INT8_C( 101), -INT8_C( 32), INT8_C( 0) },
},
{ { -INT8_C( 52), -INT8_C( 3), INT8_C( 105), INT8_C( 28), -INT8_C( 107), INT8_C( 46), -INT8_C( 10), INT8_C( 94) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_s8(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { INT8_C( 34), INT8_C( 75), INT8_C( 84), -INT8_C( 29), -INT8_C( 85), INT8_C( 72), INT8_C( 5), -INT8_C( 60) },
},
{ { INT8_C( 105), INT8_C( 5), -INT8_C( 90), -INT8_C( 42), INT8_C( 51), INT8_C( 40), -INT8_C( 85), INT8_C( 88) },
},
{ { INT8_C( 100), INT8_C( 114), -INT8_C( 58), -INT8_C( 66), INT8_C( 110), INT8_C( 62), INT8_C( 12), -INT8_C( 14) },
},
{ { -INT8_C( 56), -INT8_C( 14), -INT8_C( 105), INT8_C( 107), INT8_C( 56), INT8_C( 104), -INT8_C( 65), INT8_C( 90) },
},
{ { -INT8_C( 77), INT8_C( 19), INT8_C( 61), INT8_C( 94), INT8_C( 91), INT8_C( 66), INT8_C( 34), -INT8_C( 60) },
},
{ { INT8_C( 72), -INT8_C( 56), -INT8_C( 102), INT8_C( 123), -INT8_C( 15), INT8_C( 69), -INT8_C( 44), INT8_C( 85) },
},
{ { -INT8_C( 72), -INT8_C( 102), INT8_C( 20), INT8_C( 38), -INT8_C( 40), INT8_C( 32), INT8_C( 25), -INT8_C( 96) },
},
{ { INT8_C( 18), -INT8_C( 80), INT8_C( 11), INT8_C( 74), INT8_C( 24), -INT8_C( 54), -INT8_C( 92), -INT8_C( 53) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_s8(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 102), -INT8_C( 98), INT8_C( 81), -INT8_C( 77), -INT8_C( 94), -INT8_C( 9), -INT8_C( 74), INT8_C( 34) },
},
{ { INT8_C( 104), -INT8_C( 72), INT8_C( 117), -INT8_C( 60), INT8_C( 71), INT8_C( 68), INT8_C( 51), INT8_C( 73) },
},
{ { INT8_C( 17), INT8_C( 79), -INT8_C( 67), INT8_C( 89), -INT8_C( 92), -INT8_C( 5), -INT8_C( 54), INT8_C( 76) },
},
{ { -INT8_C( 117), -INT8_C( 98), -INT8_C( 82), INT8_C( 106), -INT8_C( 80), INT8_C( 15), -INT8_C( 30), INT8_C( 74) },
},
{ { -INT8_C( 83), INT8_C( 51), -INT8_C( 2), INT8_C( 79), INT8_C( 43), -INT8_C( 76), INT8_C( 114), -INT8_C( 109) },
},
{ { INT8_C( 109), -INT8_C( 25), INT8_C( 87), -INT8_C( 76), INT8_C( 44), -INT8_C( 117), -INT8_C( 3), INT8_C( 61) },
},
{ { -INT8_C( 38), -INT8_C( 69), -INT8_C( 105), INT8_C( 126), -INT8_C( 74), INT8_C( 97), -INT8_C( 53), INT8_C( 65) },
},
{ { -INT8_C( 1), INT8_C( 121), -INT8_C( 85), -INT8_C( 81), -INT8_C( 120), -INT8_C( 115), -INT8_C( 6), INT8_C( 53) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_s8(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { INT8_C( 73), -INT8_C( 58), -INT8_C( 54), INT8_C( 0), INT8_MAX, -INT8_C( 14), -INT8_C( 96), INT8_C( 124) },
},
{ { INT8_C( 61), -INT8_C( 81), -INT8_C( 61), INT8_C( 43), INT8_C( 92), INT8_C( 16), -INT8_C( 94), INT8_C( 125) },
},
{ { -INT8_C( 46), INT8_C( 72), -INT8_C( 42), INT8_C( 56), INT8_C( 3), INT8_C( 67), -INT8_C( 58), -INT8_C( 39) },
},
{ { INT8_C( 44), -INT8_C( 82), INT8_C( 29), -INT8_C( 51), INT8_C( 70), INT8_C( 74), -INT8_C( 65), -INT8_C( 113) },
},
{ { INT8_C( 17), -INT8_C( 119), -INT8_C( 112), -INT8_C( 112), INT8_C( 124), INT8_C( 48), INT8_C( 12), -INT8_C( 71) },
},
{ { -INT8_C( 33), -INT8_C( 49), -INT8_C( 28), INT8_C( 59), -INT8_C( 33), -INT8_C( 122), -INT8_C( 71), -INT8_C( 78) },
},
{ { -INT8_C( 50), -INT8_C( 113), -INT8_C( 22), -INT8_C( 47), -INT8_C( 46), -INT8_C( 80), -INT8_C( 86), -INT8_C( 1) },
},
{ { INT8_C( 94), -INT8_C( 57), -INT8_C( 52), -INT8_C( 92), INT8_C( 18), -INT8_C( 116), INT8_C( 52), INT8_C( 35) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_s8(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 44), INT8_C( 17), -INT8_C( 26), -INT8_C( 99), INT8_C( 57), -INT8_C( 92), INT8_C( 3), INT8_C( 58) },
},
{ { INT8_C( 16), -INT8_C( 90), -INT8_C( 123), -INT8_C( 127), -INT8_C( 28), INT8_C( 59), -INT8_C( 66), INT8_C( 8) },
},
{ { -INT8_C( 117), INT8_C( 95), INT8_C( 102), -INT8_C( 39), INT8_C( 9), -INT8_C( 100), INT8_C( 76), INT8_C( 94) },
},
{ { -INT8_C( 50), INT8_C( 29), -INT8_C( 46), -INT8_C( 119), INT8_C( 8), -INT8_C( 74), INT8_C( 98), -INT8_C( 36) },
},
{ { -INT8_C( 57), INT8_C( 72), INT8_C( 122), INT8_C( 0), -INT8_C( 19), INT8_C( 125), INT8_C( 58), -INT8_C( 3) },
},
{ { INT8_C( 35), -INT8_C( 65), INT8_C( 126), INT8_C( 8), -INT8_C( 6), INT8_C( 60), INT8_C( 16), -INT8_C( 122) },
},
{ { -INT8_C( 101), INT8_C( 118), INT8_C( 95), -INT8_C( 92), INT8_C( 18), -INT8_C( 85), INT8_C( 2), -INT8_C( 31) },
},
{ { -INT8_C( 55), -INT8_C( 43), INT8_C( 106), -INT8_C( 47), -INT8_C( 117), -INT8_C( 52), -INT8_C( 83), INT8_C( 82) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_s8(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { INT8_C( 74), INT8_C( 41), -INT8_C( 7), INT8_C( 78), -INT8_C( 65), INT8_C( 66), -INT8_C( 17), -INT8_C( 70) },
},
{ { INT8_C( 81), -INT8_C( 71), INT8_C( 49), -INT8_C( 102), INT8_C( 15), -INT8_C( 59), -INT8_C( 56), INT8_C( 99) },
},
{ { -INT8_C( 40), -INT8_C( 40), -INT8_C( 17), -INT8_C( 13), -INT8_C( 46), -INT8_C( 41), INT8_C( 71), INT8_C( 66) },
},
{ { INT8_C( 40), INT8_C( 64), -INT8_C( 25), -INT8_C( 112), INT8_C( 50), INT8_C( 85), -INT8_C( 27), INT8_C( 124) },
},
{ { INT8_C( 126), -INT8_C( 34), -INT8_C( 53), INT8_C( 61), INT8_C( 32), -INT8_C( 70), -INT8_C( 9), INT8_C( 113) },
},
{ { INT8_C( 116), INT8_C( 41), INT8_C( 11), -INT8_C( 125), -INT8_C( 18), -INT8_C( 44), -INT8_C( 25), -INT8_C( 58) },
},
{ { -INT8_C( 84), -INT8_C( 42), -INT8_C( 70), INT8_MAX, -INT8_C( 83), INT8_C( 1), -INT8_C( 63), -INT8_C( 43) },
},
{ { INT8_C( 65), -INT8_C( 88), INT8_C( 102), INT8_C( 115), -INT8_C( 3), INT8_C( 75), -INT8_C( 16), INT8_C( 123) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_s8(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { INT8_C( 40), INT8_C( 42), INT8_C( 95), INT8_C( 87), INT8_C( 71), -INT8_C( 53), -INT8_C( 100), INT8_C( 99) },
},
{ { INT8_C( 42), -INT8_C( 25), INT8_C( 55), INT8_C( 109), -INT8_C( 110), -INT8_C( 120), -INT8_C( 78), -INT8_C( 7) },
},
{ { -INT8_C( 97), -INT8_C( 1), -INT8_C( 38), INT8_C( 60), INT8_C( 58), INT8_C( 58), INT8_C( 80), INT8_C( 75) },
},
{ { INT8_C( 18), INT8_C( 38), -INT8_C( 40), INT8_C( 0), -INT8_C( 110), INT8_C( 19), INT8_C( 60), -INT8_C( 69) },
},
{ { INT8_C( 61), -INT8_C( 101), INT8_C( 18), -INT8_C( 124), INT8_C( 102), -INT8_C( 82), -INT8_C( 25), -INT8_C( 111) },
},
{ { -INT8_C( 107), INT8_C( 31), -INT8_C( 2), INT8_C( 40), -INT8_C( 89), -INT8_C( 80), INT8_C( 33), INT8_C( 70) },
},
{ { -INT8_C( 80), -INT8_C( 4), -INT8_C( 126), -INT8_C( 22), INT8_C( 54), -INT8_C( 46), INT8_C( 54), INT8_C( 73) },
},
{ { -INT8_C( 8), INT8_C( 14), INT8_C( 73), -INT8_C( 118), INT8_C( 33), -INT8_C( 123), INT8_C( 69), INT8_C( 94) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_s8(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { INT8_C( 126), -INT8_C( 42), INT8_C( 86), -INT8_C( 114), -INT8_C( 16), INT8_C( 92), -INT8_C( 85), INT8_C( 13),
-INT8_C( 40), INT8_C( 5), INT8_C( 82), INT8_C( 85), INT8_C( 58), INT8_MIN, -INT8_C( 124), -INT8_C( 105) },
},
{ { INT8_C( 11), INT8_C( 67), INT8_C( 88), INT8_C( 58), -INT8_C( 6), -INT8_C( 66), -INT8_C( 54), INT8_C( 93),
-INT8_C( 80), -INT8_C( 34), -INT8_C( 77), -INT8_C( 9), INT8_C( 108), INT8_C( 83), -INT8_C( 44), -INT8_C( 22) },
},
{ { INT8_C( 41), INT8_C( 42), INT8_C( 120), INT8_C( 26), -INT8_C( 122), INT8_C( 35), INT8_C( 39), INT8_C( 95),
INT8_C( 41), INT8_C( 121), -INT8_C( 76), INT8_C( 99), -INT8_C( 7), INT8_C( 56), -INT8_C( 6), INT8_C( 4) },
},
{ { INT8_C( 124), INT8_C( 82), INT8_C( 62), INT8_C( 118), INT8_C( 16), INT8_C( 8), -INT8_C( 45), -INT8_C( 63),
-INT8_C( 25), -INT8_C( 122), -INT8_C( 72), INT8_C( 83), -INT8_C( 39), -INT8_C( 116), INT8_C( 61), INT8_C( 3) },
},
{ { -INT8_C( 74), -INT8_C( 75), INT8_C( 29), INT8_C( 61), -INT8_C( 40), INT8_C( 68), -INT8_C( 100), INT8_C( 1),
-INT8_C( 67), INT8_C( 80), INT8_C( 100), -INT8_C( 74), -INT8_C( 120), INT8_C( 95), -INT8_C( 69), INT8_C( 4) },
},
{ { -INT8_C( 79), -INT8_C( 7), INT8_C( 122), -INT8_C( 62), INT8_C( 2), INT8_C( 77), -INT8_C( 125), -INT8_C( 23),
-INT8_C( 45), INT8_C( 59), INT8_C( 60), -INT8_C( 83), -INT8_C( 57), INT8_C( 121), -INT8_C( 80), INT8_C( 125) },
},
{ { INT8_C( 46), -INT8_C( 51), -INT8_C( 70), INT8_C( 6), INT8_C( 17), INT8_C( 86), INT8_C( 8), -INT8_C( 50),
-INT8_C( 90), INT8_C( 108), -INT8_C( 124), INT8_C( 47), -INT8_C( 53), INT8_C( 63), INT8_C( 51), INT8_C( 125) },
},
{ { INT8_C( 57), -INT8_C( 82), INT8_C( 63), INT8_C( 59), -INT8_C( 5), -INT8_C( 62), INT8_C( 36), -INT8_C( 49),
-INT8_C( 3), INT8_C( 96), INT8_C( 124), -INT8_C( 60), -INT8_C( 39), INT8_C( 44), INT8_C( 65), INT8_C( 7) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_s8(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 26), INT8_C( 77), -INT8_C( 93), INT8_C( 31), -INT8_C( 92), INT8_C( 89), -INT8_C( 113), INT8_C( 91),
-INT8_C( 124), -INT8_C( 5), INT8_C( 6), INT8_C( 118), INT8_C( 47), -INT8_C( 29), INT8_C( 24), INT8_C( 83) },
},
{ { INT8_C( 14), INT8_C( 2), -INT8_C( 123), -INT8_C( 119), -INT8_C( 9), INT8_C( 101), -INT8_C( 52), INT8_C( 85),
-INT8_C( 102), -INT8_C( 80), -INT8_C( 112), -INT8_C( 37), INT8_C( 68), INT8_C( 37), -INT8_C( 82), INT8_C( 42) },
},
{ { INT8_C( 114), INT8_C( 81), INT8_C( 73), INT8_C( 22), -INT8_C( 85), -INT8_C( 40), INT8_C( 114), INT8_C( 47),
-INT8_C( 45), INT8_C( 120), -INT8_C( 91), INT8_C( 3), INT8_C( 91), -INT8_C( 66), INT8_C( 86), INT8_C( 106) },
},
{ { -INT8_C( 64), -INT8_C( 37), -INT8_C( 13), -INT8_C( 72), INT8_C( 64), -INT8_C( 65), INT8_C( 13), -INT8_C( 37),
INT8_C( 111), -INT8_C( 99), -INT8_C( 74), -INT8_C( 77), -INT8_C( 62), INT8_C( 100), -INT8_C( 35), INT8_C( 53) },
},
{ { -INT8_C( 74), INT8_C( 38), INT8_C( 75), INT8_C( 97), -INT8_C( 2), -INT8_C( 67), -INT8_C( 112), -INT8_C( 46),
INT8_C( 53), INT8_C( 53), -INT8_C( 43), -INT8_C( 111), -INT8_C( 13), INT8_C( 43), -INT8_C( 5), -INT8_C( 76) },
},
{ { INT8_C( 6), -INT8_C( 18), INT8_C( 108), INT8_C( 70), -INT8_C( 83), INT8_C( 121), INT8_C( 33), INT8_C( 29),
INT8_C( 22), -INT8_C( 41), -INT8_C( 48), -INT8_C( 40), INT8_C( 60), -INT8_C( 82), INT8_C( 13), -INT8_C( 14) },
},
{ { -INT8_C( 44), INT8_C( 89), INT8_C( 83), -INT8_C( 45), INT8_C( 22), -INT8_C( 29), -INT8_C( 91), INT8_C( 76),
INT8_C( 24), INT8_C( 122), -INT8_C( 35), INT8_C( 12), -INT8_C( 91), -INT8_C( 40), -INT8_C( 64), -INT8_C( 85) },
},
{ { -INT8_C( 58), INT8_C( 44), -INT8_C( 15), INT8_C( 115), -INT8_C( 91), INT8_C( 19), -INT8_C( 112), -INT8_C( 69),
-INT8_C( 22), INT8_C( 97), -INT8_C( 109), INT8_C( 38), INT8_C( 15), -INT8_C( 95), INT8_C( 24), -INT8_C( 29) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_s8(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 120), -INT8_C( 31), -INT8_C( 33), -INT8_C( 41), INT8_C( 89), INT8_C( 93), -INT8_C( 91), -INT8_C( 75),
-INT8_C( 105), INT8_C( 73), -INT8_C( 6), -INT8_C( 100), -INT8_C( 115), -INT8_C( 75), -INT8_C( 112), INT8_C( 36) },
},
{ { -INT8_C( 81), -INT8_C( 38), -INT8_C( 58), INT8_C( 33), -INT8_C( 61), INT8_C( 54), INT8_C( 89), INT8_C( 86),
-INT8_C( 9), -INT8_C( 91), -INT8_C( 108), -INT8_C( 53), INT8_C( 44), -INT8_C( 109), INT8_C( 118), -INT8_C( 75) },
},
{ { INT8_C( 116), INT8_C( 85), -INT8_C( 116), -INT8_C( 50), -INT8_C( 77), INT8_C( 50), -INT8_C( 125), INT8_C( 74),
INT8_C( 123), INT8_C( 126), -INT8_C( 26), INT8_C( 9), INT8_C( 51), INT8_C( 118), INT8_C( 45), -INT8_C( 30) },
},
{ { INT8_C( 81), -INT8_C( 13), INT8_C( 3), INT8_C( 20), INT8_C( 41), INT8_C( 93), INT8_C( 106), INT8_C( 32),
INT8_C( 2), -INT8_C( 1), -INT8_C( 21), INT8_C( 46), -INT8_C( 110), INT8_C( 97), -INT8_C( 29), INT8_C( 6) },
},
{ { -INT8_C( 73), INT8_C( 112), -INT8_C( 44), INT8_C( 106), -INT8_C( 94), INT8_C( 88), -INT8_C( 76), INT8_C( 29),
-INT8_C( 42), -INT8_C( 101), INT8_C( 38), INT8_C( 9), INT8_C( 17), INT8_C( 83), -INT8_C( 20), INT8_C( 98) },
},
{ { INT8_C( 71), -INT8_C( 17), INT8_C( 118), INT8_C( 112), INT8_C( 76), -INT8_C( 31), -INT8_C( 111), INT8_C( 78),
-INT8_C( 32), INT8_C( 124), INT8_C( 125), INT8_C( 114), -INT8_C( 34), INT8_C( 96), INT8_C( 120), -INT8_C( 107) },
},
{ { -INT8_C( 48), INT8_C( 77), -INT8_C( 1), INT8_C( 114), -INT8_C( 91), -INT8_C( 77), -INT8_C( 112), INT8_C( 123),
INT8_C( 78), -INT8_C( 74), -INT8_C( 124), INT8_C( 96), INT8_C( 10), INT8_C( 112), -INT8_C( 62), INT8_C( 81) },
},
{ { INT8_C( 96), INT8_C( 57), -INT8_C( 63), -INT8_C( 84), INT8_C( 26), INT8_C( 82), -INT8_C( 5), -INT8_C( 6),
-INT8_C( 49), INT8_C( 120), INT8_C( 108), -INT8_C( 83), -INT8_C( 40), -INT8_C( 28), INT8_C( 66), -INT8_C( 87) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_s8(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 26), -INT8_C( 70), INT8_C( 65), -INT8_C( 95), -INT8_C( 121), -INT8_C( 30), INT8_C( 64), -INT8_C( 26),
INT8_C( 11), INT8_C( 80), INT8_C( 104), INT8_C( 24), -INT8_C( 39), INT8_C( 118), INT8_C( 71), INT8_C( 40) },
},
{ { INT8_C( 86), INT8_C( 6), -INT8_C( 116), INT8_C( 44), INT8_C( 39), -INT8_C( 8), INT8_C( 58), INT8_C( 70),
-INT8_C( 67), -INT8_C( 15), -INT8_C( 45), INT8_C( 124), INT8_C( 104), INT8_C( 2), INT8_C( 7), INT8_C( 78) },
},
{ { -INT8_C( 67), INT8_C( 73), -INT8_C( 17), INT8_C( 68), INT8_C( 43), INT8_C( 48), INT8_C( 42), INT8_C( 54),
INT8_MIN, -INT8_C( 110), INT8_C( 78), INT8_C( 90), INT8_C( 9), -INT8_C( 107), -INT8_C( 126), INT8_C( 95) },
},
{ { -INT8_C( 100), INT8_C( 15), -INT8_C( 117), -INT8_C( 61), INT8_C( 7), -INT8_C( 59), INT8_C( 9), -INT8_C( 60),
-INT8_C( 73), -INT8_C( 35), INT8_C( 64), INT8_C( 31), -INT8_C( 33), INT8_C( 72), INT8_C( 109), -INT8_C( 100) },
},
{ { -INT8_C( 111), INT8_C( 92), -INT8_C( 32), -INT8_C( 68), -INT8_C( 116), INT8_C( 10), -INT8_C( 13), INT8_C( 13),
-INT8_C( 99), INT8_C( 65), INT8_C( 103), -INT8_C( 90), -INT8_C( 41), -INT8_C( 23), INT8_C( 5), INT8_C( 115) },
},
{ { -INT8_C( 8), -INT8_C( 112), INT8_C( 54), -INT8_C( 1), INT8_C( 85), INT8_C( 63), -INT8_C( 61), INT8_C( 12),
INT8_C( 28), INT8_C( 4), INT8_C( 43), -INT8_C( 4), INT8_C( 76), -INT8_C( 104), -INT8_C( 104), -INT8_C( 35) },
},
{ { -INT8_C( 11), INT8_C( 121), -INT8_C( 103), -INT8_C( 127), -INT8_C( 125), -INT8_C( 116), -INT8_C( 114), INT8_C( 32),
-INT8_C( 50), -INT8_C( 11), -INT8_C( 58), -INT8_C( 91), -INT8_C( 33), -INT8_C( 53), INT8_C( 24), -INT8_C( 41) },
},
{ { INT8_C( 91), INT8_C( 78), -INT8_C( 41), -INT8_C( 79), -INT8_C( 115), -INT8_C( 102), -INT8_C( 67), -INT8_C( 86),
-INT8_C( 98), -INT8_C( 23), -INT8_C( 90), -INT8_C( 22), -INT8_C( 127), INT8_C( 62), -INT8_C( 57), INT8_C( 118) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_s8(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { INT8_C( 40), -INT8_C( 64), INT8_C( 94), INT8_C( 110), -INT8_C( 13), -INT8_C( 103), -INT8_C( 107), INT8_C( 8),
-INT8_C( 65), -INT8_C( 53), -INT8_C( 27), -INT8_C( 10), INT8_C( 108), -INT8_C( 74), INT8_C( 4), INT8_C( 22) },
},
{ { -INT8_C( 26), -INT8_C( 37), INT8_C( 97), -INT8_C( 37), -INT8_C( 111), INT8_C( 80), INT8_C( 10), -INT8_C( 66),
-INT8_C( 125), -INT8_C( 101), INT8_C( 97), -INT8_C( 59), -INT8_C( 114), -INT8_C( 86), -INT8_C( 58), -INT8_C( 73) },
},
{ { INT8_C( 106), INT8_C( 36), INT8_C( 37), INT8_C( 93), -INT8_C( 67), -INT8_C( 70), INT8_C( 102), INT8_C( 124),
-INT8_C( 123), INT8_C( 75), INT8_C( 114), -INT8_C( 15), INT8_C( 1), INT8_C( 119), INT8_C( 8), -INT8_C( 25) },
},
{ { INT8_C( 82), INT8_C( 105), -INT8_C( 62), -INT8_C( 29), -INT8_C( 70), -INT8_C( 51), -INT8_C( 95), INT8_C( 61),
INT8_C( 104), INT8_C( 3), INT8_C( 2), -INT8_C( 10), -INT8_C( 83), -INT8_C( 56), -INT8_C( 83), INT8_C( 23) },
},
{ { -INT8_C( 20), -INT8_C( 46), INT8_C( 117), -INT8_C( 86), -INT8_C( 116), -INT8_C( 37), INT8_C( 38), INT8_C( 17),
INT8_C( 38), -INT8_C( 103), INT8_C( 3), INT8_C( 39), INT8_C( 16), INT8_C( 11), INT8_C( 15), INT8_C( 98) },
},
{ { INT8_C( 116), -INT8_C( 47), INT8_C( 69), INT8_C( 46), -INT8_C( 98), -INT8_C( 25), INT8_C( 107), INT8_C( 6),
-INT8_C( 22), INT8_C( 109), -INT8_C( 3), -INT8_C( 105), INT8_C( 53), -INT8_C( 86), -INT8_C( 82), INT8_C( 34) },
},
{ { INT8_C( 125), INT8_C( 35), -INT8_C( 52), INT8_C( 9), -INT8_C( 2), -INT8_C( 14), INT8_C( 27), INT8_C( 36),
-INT8_C( 117), INT8_C( 30), INT8_C( 76), -INT8_C( 101), INT8_C( 41), INT8_C( 91), -INT8_C( 3), -INT8_C( 99) },
},
{ { INT8_C( 44), INT8_C( 67), -INT8_C( 52), -INT8_C( 53), INT8_C( 42), INT8_C( 55), -INT8_C( 47), INT8_C( 20),
-INT8_C( 91), -INT8_C( 50), -INT8_C( 85), -INT8_C( 38), INT8_C( 121), INT8_C( 89), -INT8_C( 4), -INT8_C( 10) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_s8(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 47), -INT8_C( 102), -INT8_C( 31), INT8_C( 11), INT8_C( 32), -INT8_C( 41), -INT8_C( 85), -INT8_C( 54),
INT8_C( 70), -INT8_C( 47), INT8_C( 16), -INT8_C( 62), INT8_C( 57), -INT8_C( 93), -INT8_C( 83), INT8_C( 62) },
},
{ { -INT8_C( 12), INT8_C( 20), -INT8_C( 76), INT8_C( 35), -INT8_C( 2), -INT8_C( 107), -INT8_C( 1), -INT8_C( 124),
INT8_C( 58), INT8_C( 57), -INT8_C( 54), -INT8_C( 62), INT8_C( 112), INT8_C( 79), INT8_C( 71), INT8_C( 65) },
},
{ { -INT8_C( 23), INT8_C( 41), INT8_C( 76), INT8_C( 9), INT8_C( 0), -INT8_C( 9), -INT8_C( 45), INT8_C( 70),
-INT8_C( 55), -INT8_C( 29), INT8_C( 8), INT8_C( 2), -INT8_C( 121), -INT8_C( 75), INT8_C( 64), INT8_C( 123) },
},
{ { -INT8_C( 55), -INT8_C( 12), -INT8_C( 98), -INT8_C( 57), -INT8_C( 119), -INT8_C( 99), INT8_C( 76), -INT8_C( 60),
-INT8_C( 41), INT8_C( 22), -INT8_C( 122), INT8_C( 71), INT8_C( 101), -INT8_C( 50), -INT8_C( 119), INT8_C( 78) },
},
{ { -INT8_C( 9), -INT8_C( 43), INT8_C( 88), -INT8_C( 9), -INT8_C( 51), INT8_C( 43), INT8_C( 61), -INT8_C( 106),
INT8_C( 15), INT8_C( 69), -INT8_C( 104), -INT8_C( 106), -INT8_C( 6), -INT8_C( 39), INT8_C( 17), -INT8_C( 61) },
},
{ { -INT8_C( 51), -INT8_C( 81), -INT8_C( 118), INT8_C( 87), INT8_C( 77), -INT8_C( 42), INT8_C( 27), INT8_C( 36),
-INT8_C( 19), -INT8_C( 95), INT8_C( 107), INT8_C( 82), INT8_C( 111), -INT8_C( 12), -INT8_C( 95), INT8_C( 102) },
},
{ { -INT8_C( 54), -INT8_C( 7), INT8_C( 93), -INT8_C( 105), INT8_C( 36), -INT8_C( 102), INT8_C( 45), INT8_C( 51),
-INT8_C( 33), -INT8_C( 59), -INT8_C( 55), -INT8_C( 39), -INT8_C( 98), -INT8_C( 38), -INT8_C( 100), INT8_C( 108) },
},
{ { -INT8_C( 118), INT8_C( 39), -INT8_C( 61), -INT8_C( 41), -INT8_C( 3), -INT8_C( 34), -INT8_C( 5), -INT8_C( 22),
INT8_MAX, INT8_C( 102), INT8_C( 61), -INT8_C( 17), INT8_C( 91), -INT8_C( 34), INT8_C( 85), INT8_C( 37) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_s8(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 32), INT8_C( 116), INT8_C( 72), INT8_C( 76), INT8_C( 122), INT8_MAX, -INT8_C( 53), INT8_C( 119),
-INT8_C( 39), INT8_C( 60), -INT8_C( 101), -INT8_C( 31), INT8_C( 40), INT8_C( 95), -INT8_C( 92), -INT8_C( 22) },
},
{ { INT8_C( 41), INT8_C( 0), INT8_C( 1), INT8_C( 27), -INT8_C( 65), -INT8_C( 19), -INT8_C( 52), INT8_C( 119),
INT8_C( 114), -INT8_C( 122), -INT8_C( 126), INT8_C( 22), -INT8_C( 64), -INT8_C( 26), INT8_C( 34), -INT8_C( 96) },
},
{ { INT8_C( 90), INT8_C( 106), -INT8_C( 19), -INT8_C( 43), -INT8_C( 22), -INT8_C( 72), INT8_C( 76), -INT8_C( 61),
-INT8_C( 11), -INT8_C( 25), -INT8_C( 92), INT8_C( 29), INT8_C( 70), INT8_C( 73), INT8_C( 7), INT8_C( 111) },
},
{ { INT8_C( 73), INT8_C( 8), -INT8_C( 118), INT8_C( 8), -INT8_C( 11), INT8_C( 86), INT8_MAX, INT8_C( 104),
-INT8_C( 36), INT8_C( 1), INT8_C( 126), -INT8_C( 99), -INT8_C( 25), -INT8_C( 95), INT8_C( 61), INT8_C( 66) },
},
{ { INT8_C( 11), INT8_C( 42), INT8_C( 23), -INT8_C( 11), -INT8_C( 29), INT8_C( 99), -INT8_C( 72), -INT8_C( 40),
INT8_C( 74), INT8_C( 93), -INT8_C( 11), -INT8_C( 111), -INT8_C( 90), -INT8_C( 4), INT8_C( 0), -INT8_C( 17) },
},
{ { INT8_C( 4), -INT8_C( 117), -INT8_C( 9), -INT8_C( 7), -INT8_C( 31), INT8_C( 118), INT8_C( 97), -INT8_C( 66),
INT8_C( 119), -INT8_C( 32), INT8_C( 91), INT8_C( 95), -INT8_C( 127), -INT8_C( 104), -INT8_C( 95), -INT8_C( 116) },
},
{ { -INT8_C( 61), -INT8_C( 72), -INT8_C( 126), -INT8_C( 90), INT8_C( 27), INT8_C( 58), INT8_C( 126), INT8_C( 101),
-INT8_C( 105), INT8_C( 115), -INT8_C( 10), INT8_C( 61), INT8_C( 111), -INT8_C( 9), INT8_C( 44), INT8_C( 115) },
},
{ { -INT8_C( 126), INT8_C( 35), INT8_C( 108), INT8_C( 99), -INT8_C( 103), -INT8_C( 50), INT8_C( 33), INT8_C( 17),
-INT8_C( 82), INT8_C( 124), INT8_C( 112), INT8_C( 47), INT8_C( 21), INT8_C( 17), -INT8_C( 69), -INT8_C( 40) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_s8(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 76), -INT8_C( 67), -INT8_C( 11), INT8_C( 4), INT8_C( 27), -INT8_C( 63), -INT8_C( 79), -INT8_C( 10),
-INT8_C( 12), -INT8_C( 102), INT8_C( 114), -INT8_C( 58), INT8_C( 1), -INT8_C( 93), -INT8_C( 72), INT8_C( 46) },
},
{ { INT8_C( 100), INT8_C( 106), INT8_C( 0), INT8_C( 63), INT8_C( 60), -INT8_C( 12), INT8_C( 6), INT8_C( 24),
INT8_C( 41), INT8_C( 105), -INT8_C( 29), INT8_C( 97), -INT8_C( 73), INT8_C( 105), INT8_C( 22), INT8_C( 108) },
},
{ { INT8_C( 38), INT8_C( 11), INT8_C( 112), INT8_C( 65), -INT8_C( 52), INT8_C( 34), INT8_C( 55), -INT8_C( 64),
-INT8_C( 68), -INT8_C( 86), -INT8_C( 122), -INT8_C( 66), INT8_C( 77), INT8_C( 62), -INT8_C( 20), -INT8_C( 79) },
},
{ { -INT8_C( 88), -INT8_C( 20), -INT8_C( 16), -INT8_C( 28), -INT8_C( 32), -INT8_C( 10), -INT8_C( 4), INT8_C( 9),
INT8_C( 96), -INT8_C( 33), INT8_C( 106), INT8_C( 23), INT8_C( 72), INT8_MIN, -INT8_C( 125), INT8_C( 110) },
},
{ { -INT8_C( 117), -INT8_C( 12), -INT8_C( 80), INT8_C( 87), INT8_C( 22), -INT8_C( 25), INT8_C( 23), -INT8_C( 46),
-INT8_C( 111), -INT8_C( 99), -INT8_C( 112), -INT8_C( 34), -INT8_C( 37), INT8_C( 125), -INT8_C( 112), -INT8_C( 125) },
},
{ { INT8_C( 105), INT8_MIN, INT8_C( 103), INT8_C( 74), INT8_C( 119), INT8_C( 99), INT8_C( 83), -INT8_C( 41),
INT8_C( 66), -INT8_C( 66), -INT8_C( 18), -INT8_C( 118), INT8_C( 62), INT8_C( 114), -INT8_C( 7), -INT8_C( 54) },
},
{ { INT8_C( 102), -INT8_C( 87), INT8_C( 33), INT8_C( 124), -INT8_C( 112), INT8_C( 57), INT8_C( 78), INT8_C( 34),
-INT8_C( 42), -INT8_C( 33), INT8_C( 0), -INT8_C( 78), INT8_C( 92), -INT8_C( 112), INT8_C( 53), -INT8_C( 59) },
},
{ { INT8_C( 17), -INT8_C( 99), INT8_C( 15), -INT8_C( 120), INT8_C( 0), INT8_C( 99), INT8_C( 95), INT8_C( 67),
INT8_C( 33), INT8_C( 77), -INT8_C( 51), INT8_C( 95), -INT8_C( 65), -INT8_C( 58), INT8_C( 41), INT8_C( 37) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_s8(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { INT8_C( 3), INT8_C( 10), -INT8_C( 37), INT8_C( 49), INT8_C( 25), INT8_C( 54), -INT8_C( 41), -INT8_C( 110),
-INT8_C( 34), -INT8_C( 112), INT8_C( 93), INT8_C( 12), -INT8_C( 122), INT8_C( 85), -INT8_C( 15), -INT8_C( 94) },
},
{ { INT8_C( 81), -INT8_C( 62), INT8_C( 63), INT8_C( 114), -INT8_C( 14), INT8_C( 116), INT8_C( 118), -INT8_C( 98),
-INT8_C( 118), INT8_C( 40), INT8_C( 49), INT8_C( 103), -INT8_C( 67), -INT8_C( 35), INT8_C( 31), -INT8_C( 64) },
},
{ { -INT8_C( 25), -INT8_C( 6), -INT8_C( 15), INT8_C( 0), INT8_C( 49), -INT8_C( 56), -INT8_C( 109), INT8_C( 15),
INT8_C( 88), -INT8_C( 16), INT8_C( 28), -INT8_C( 34), INT8_C( 69), INT8_C( 13), -INT8_C( 127), -INT8_C( 106) },
},
{ { -INT8_C( 49), -INT8_C( 64), INT8_C( 8), -INT8_C( 63), INT8_C( 53), INT8_MAX, INT8_C( 96), -INT8_C( 65),
-INT8_C( 89), -INT8_C( 111), INT8_C( 38), INT8_C( 100), INT8_C( 110), INT8_C( 69), INT8_C( 36), INT8_C( 85) },
},
{ { INT8_C( 63), INT8_C( 21), INT8_C( 85), INT8_C( 112), -INT8_C( 35), -INT8_C( 24), INT8_MIN, INT8_C( 53),
-INT8_C( 40), -INT8_C( 100), INT8_C( 19), INT8_C( 29), -INT8_C( 87), -INT8_C( 108), -INT8_C( 76), INT8_C( 120) },
},
{ { INT8_C( 85), -INT8_C( 68), INT8_C( 57), -INT8_C( 118), INT8_C( 59), -INT8_C( 103), INT8_C( 73), -INT8_C( 30),
INT8_C( 42), INT8_C( 111), INT8_C( 70), -INT8_C( 104), -INT8_C( 76), INT8_C( 106), -INT8_C( 19), -INT8_C( 13) },
},
{ { INT8_MAX, INT8_C( 67), INT8_C( 100), INT8_C( 92), INT8_C( 43), -INT8_C( 28), -INT8_C( 111), INT8_C( 4),
INT8_MIN, -INT8_C( 91), INT8_C( 33), INT8_C( 41), INT8_C( 57), -INT8_C( 43), -INT8_C( 95), -INT8_C( 114) },
},
{ { -INT8_C( 110), -INT8_C( 38), INT8_C( 24), -INT8_C( 51), INT8_C( 116), INT8_C( 97), -INT8_C( 80), -INT8_C( 98),
-INT8_C( 48), -INT8_C( 10), INT8_C( 55), -INT8_C( 124), INT8_C( 97), INT8_C( 36), INT8_C( 120), -INT8_C( 32) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_s8(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 27026), -INT16_C( 5702), -INT16_C( 32251), -INT16_C( 22224) },
},
{ { INT16_C( 18627), -INT16_C( 18788), INT16_C( 28877), INT16_C( 229) },
},
{ { -INT16_C( 22464), INT16_C( 10858), -INT16_C( 1223), -INT16_C( 1199) },
},
{ { INT16_C( 17727), INT16_C( 2234), INT16_C( 24935), -INT16_C( 10779) },
},
{ { -INT16_C( 24584), -INT16_C( 578), -INT16_C( 4575), -INT16_C( 6746) },
},
{ { INT16_C( 16951), INT16_C( 1179), -INT16_C( 32590), -INT16_C( 3324) },
},
{ { INT16_C( 28456), INT16_C( 24861), INT16_C( 28522), -INT16_C( 22180) },
},
{ { INT16_C( 5812), INT16_C( 7090), -INT16_C( 26760), INT16_C( 28912) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_s16(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 19849), -INT16_C( 26238), INT16_C( 31751), INT16_C( 20490) },
},
{ { INT16_C( 6833), INT16_C( 28856), -INT16_C( 28586), INT16_C( 25538) },
},
{ { INT16_C( 10997), -INT16_C( 12172), INT16_C( 29916), INT16_C( 9088) },
},
{ { -INT16_C( 332), -INT16_C( 390), -INT16_C( 25049), -INT16_C( 24659) },
},
{ { INT16_C( 12368), INT16_C( 22584), INT16_C( 17068), INT16_C( 23976) },
},
{ { INT16_C( 24669), -INT16_C( 19506), -INT16_C( 28432), -INT16_C( 6634) },
},
{ { -INT16_C( 29765), -INT16_C( 26698), INT16_C( 14079), -INT16_C( 19526) },
},
{ { INT16_C( 13364), INT16_C( 23474), INT16_C( 24530), INT16_C( 9210) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_s16(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { INT16_C( 12325), -INT16_C( 26211), INT16_C( 30570), -INT16_C( 5405) },
},
{ { -INT16_C( 15356), -INT16_C( 17829), INT16_C( 1543), INT16_C( 26527) },
},
{ { -INT16_C( 21602), -INT16_C( 10929), -INT16_C( 5199), INT16_C( 544) },
},
{ { -INT16_C( 22429), -INT16_C( 24560), INT16_C( 11069), INT16_C( 25227) },
},
{ { INT16_C( 10331), -INT16_C( 14852), -INT16_C( 8289), -INT16_C( 23376) },
},
{ { INT16_C( 2979), -INT16_C( 21666), -INT16_C( 750), -INT16_C( 20462) },
},
{ { INT16_C( 25000), INT16_C( 22917), -INT16_C( 22964), -INT16_C( 20645) },
},
{ { INT16_C( 27470), -INT16_C( 29872), -INT16_C( 9322), -INT16_C( 3602) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_s16(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 12560), INT16_C( 27946), -INT16_C( 10148), INT16_C( 28958) },
},
{ { -INT16_C( 22095), INT16_C( 22767), -INT16_C( 18596), INT16_C( 14570) },
},
{ { -INT16_C( 21018), -INT16_C( 20461), -INT16_C( 11786), -INT16_C( 29585) },
},
{ { -INT16_C( 11749), INT16_C( 8247), -INT16_C( 16711), -INT16_C( 21988) },
},
{ { INT16_C( 18316), -INT16_C( 6121), INT16_C( 13599), -INT16_C( 12199) },
},
{ { INT16_C( 18654), INT16_C( 14888), INT16_C( 4608), -INT16_C( 6541) },
},
{ { -INT16_C( 31041), -INT16_C( 18793), INT16_C( 1623), INT16_C( 29250) },
},
{ { INT16_C( 31193), -INT16_C( 28014), -INT16_C( 20681), -INT16_C( 15556) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_s16(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { INT16_C( 25283), INT16_C( 6672), -INT16_C( 6113), -INT16_C( 12546) },
},
{ { -INT16_C( 14626), INT16_C( 3187), INT16_C( 15843), INT16_C( 15972) },
},
{ { -INT16_C( 2508), INT16_C( 29996), -INT16_C( 16259), -INT16_C( 15064) },
},
{ { -INT16_C( 967), INT16_C( 5267), -INT16_C( 1862), INT16_C( 32247) },
},
{ { INT16_C( 2138), INT16_C( 31127), -INT16_C( 27152), -INT16_C( 12473) },
},
{ { -INT16_C( 17572), INT16_C( 16347), INT16_C( 16376), INT16_C( 11390) },
},
{ { -INT16_C( 21962), -INT16_C( 19550), -INT16_C( 13718), -INT16_C( 23687) },
},
{ { INT16_C( 3271), -INT16_C( 32329), -INT16_C( 20732), INT16_C( 24318) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_s16(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 32486), -INT16_C( 2660), INT16_C( 7883), -INT16_C( 15352) },
},
{ { -INT16_C( 12203), -INT16_C( 9918), INT16_C( 13929), -INT16_C( 4761) },
},
{ { -INT16_C( 15816), INT16_C( 30875), INT16_C( 6606), -INT16_C( 29294) },
},
{ { INT16_C( 23764), -INT16_C( 4001), INT16_C( 15786), -INT16_C( 15111) },
},
{ { -INT16_C( 26946), -INT16_C( 30023), -INT16_C( 15948), INT16_C( 2382) },
},
{ { -INT16_C( 28527), -INT16_C( 1053), INT16_C( 19142), -INT16_C( 24) },
},
{ { -INT16_C( 31988), -INT16_C( 9353), INT16_C( 2461), INT16_C( 29032) },
},
{ { -INT16_C( 14491), INT16_C( 3937), INT16_C( 23301), -INT16_C( 15404) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_s16(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 13698), -INT16_C( 2016), INT16_C( 7173), INT16_C( 8812) },
},
{ { INT16_C( 14693), -INT16_C( 20452), -INT16_C( 11625), INT16_C( 2112) },
},
{ { INT16_C( 12150), -INT16_C( 13614), INT16_C( 29200), -INT16_C( 12138) },
},
{ { INT16_C( 5371), INT16_C( 14148), -INT16_C( 22854), INT16_C( 14568) },
},
{ { INT16_C( 2160), INT16_C( 30256), -INT16_C( 25564), -INT16_C( 30312) },
},
{ { -INT16_C( 18987), INT16_C( 27961), INT16_C( 31111), -INT16_C( 395) },
},
{ { INT16_C( 18345), -INT16_C( 17976), INT16_C( 24249), -INT16_C( 19062) },
},
{ { -INT16_C( 12685), INT16_C( 11756), -INT16_C( 11148), -INT16_C( 6811) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_s16(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 27149), -INT16_C( 16278), INT16_C( 23388), INT16_C( 23522) },
},
{ { INT16_C( 27458), -INT16_C( 32273), INT16_C( 2040), -INT16_C( 22817) },
},
{ { INT16_C( 19568), -INT16_C( 31411), -INT16_C( 28489), INT16_C( 18863) },
},
{ { INT16_C( 32598), -INT16_C( 30228), INT16_C( 9375), -INT16_C( 28005) },
},
{ { INT16_C( 1721), INT16_C( 5459), INT16_C( 13665), -INT16_C( 23695) },
},
{ { INT16_C( 24737), -INT16_C( 26332), INT16_C( 1127), -INT16_C( 10433) },
},
{ { -INT16_C( 29360), INT16_C( 1885), INT16_C( 3101), INT16_C( 29520) },
},
{ { INT16_C( 15500), INT16_C( 11260), -INT16_C( 26528), INT16_C( 6845) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_s16(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 19422), INT16_C( 4112), -INT16_C( 6132), -INT16_C( 22247) },
},
{ { INT16_C( 17482), INT16_C( 22232), INT16_C( 7090), INT16_C( 19055) },
},
{ { INT16_C( 7162), -INT16_C( 12732), INT16_C( 25546), -INT16_C( 12846) },
},
{ { INT16_C( 32293), INT16_C( 15899), -INT16_C( 27923), INT16_C( 4212) },
},
{ { -INT16_C( 31674), INT16_C( 21024), INT16_C( 14700), -INT16_C( 18436) },
},
{ { -INT16_C( 11139), INT16_C( 12045), INT16_C( 31983), -INT16_C( 5767) },
},
{ { -INT16_C( 16745), INT16_C( 25016), -INT16_C( 30175), INT16_C( 17966) },
},
{ { INT16_C( 18953), -INT16_C( 2428), -INT16_C( 1828), INT16_C( 8710) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_s16(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { INT16_C( 26800), INT16_C( 6579), INT16_C( 6869), INT16_C( 1599), -INT16_C( 6376), -INT16_C( 21236), INT16_C( 31152), INT16_C( 26129) },
},
{ { INT16_C( 4862), -INT16_C( 26934), -INT16_C( 17327), -INT16_C( 8418), INT16_C( 12000), -INT16_C( 10920), -INT16_C( 22979), -INT16_C( 4503) },
},
{ { INT16_C( 7438), -INT16_C( 7417), INT16_C( 17975), INT16_C( 20713), -INT16_C( 2770), -INT16_C( 8451), INT16_C( 3694), INT16_C( 27972) },
},
{ { INT16_C( 3616), INT16_C( 28931), INT16_C( 8650), -INT16_C( 21936), -INT16_C( 22449), -INT16_C( 29313), -INT16_C( 6066), INT16_C( 23675) },
},
{ { -INT16_C( 32251), INT16_C( 15679), INT16_C( 10441), -INT16_C( 2163), -INT16_C( 30179), -INT16_C( 29483), INT16_C( 6552), -INT16_C( 18183) },
},
{ { -INT16_C( 985), -INT16_C( 3798), INT16_C( 31261), INT16_C( 28059), INT16_C( 6691), INT16_C( 29178), INT16_C( 29954), INT16_C( 2254) },
},
{ { INT16_C( 3575), -INT16_C( 16315), -INT16_C( 11722), INT16_C( 21431), -INT16_C( 29604), -INT16_C( 2849), -INT16_C( 10075), -INT16_C( 13140) },
},
{ { -INT16_C( 10540), -INT16_C( 3395), INT16_C( 22609), INT16_C( 29791), INT16_C( 22898), INT16_C( 30181), -INT16_C( 19506), -INT16_C( 14979) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_s16(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 29595), -INT16_C( 8184), INT16_C( 4671), INT16_C( 8346), -INT16_C( 13564), INT16_C( 18435), -INT16_C( 4990), INT16_C( 23480) },
},
{ { -INT16_C( 21848), -INT16_C( 19785), -INT16_C( 22100), INT16_C( 15114), INT16_C( 15366), -INT16_C( 9798), INT16_C( 30430), INT16_C( 17186) },
},
{ { INT16_C( 10754), INT16_C( 16675), -INT16_C( 16836), INT16_C( 16482), INT16_C( 25993), INT16_C( 3209), INT16_C( 16721), -INT16_C( 1433) },
},
{ { INT16_C( 8171), -INT16_C( 26708), -INT16_C( 18744), -INT16_C( 12589), -INT16_C( 29198), -INT16_C( 12121), -INT16_C( 14077), INT16_C( 1300) },
},
{ { INT16_C( 14323), INT16_C( 12103), -INT16_C( 22027), INT16_C( 32624), -INT16_C( 1778), INT16_C( 24715), -INT16_C( 3526), INT16_C( 9562) },
},
{ { INT16_C( 1553), -INT16_C( 9796), -INT16_C( 28740), -INT16_C( 20569), INT16_C( 19997), INT16_C( 8319), -INT16_C( 27881), INT16_C( 2598) },
},
{ { INT16_C( 28107), -INT16_C( 16326), -INT16_C( 21994), INT16_C( 9279), -INT16_C( 13661), -INT16_C( 8828), -INT16_C( 8515), -INT16_C( 12798) },
},
{ { -INT16_C( 16668), -INT16_C( 24152), INT16_C( 20302), INT16_C( 27472), -INT16_C( 12386), -INT16_C( 19061), -INT16_C( 20125), INT16_C( 11968) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_s16(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { INT16_C( 25297), INT16_C( 2610), INT16_C( 31420), INT16_C( 20877), -INT16_C( 22947), -INT16_C( 6853), -INT16_C( 14640), INT16_C( 23706) },
},
{ { INT16_C( 19927), INT16_C( 10263), INT16_C( 461), INT16_C( 18282), INT16_C( 15045), INT16_C( 19626), -INT16_C( 25667), -INT16_C( 28937) },
},
{ { INT16_C( 11006), -INT16_C( 17768), INT16_C( 9636), INT16_C( 268), INT16_C( 18380), -INT16_C( 25370), -INT16_C( 32755), -INT16_C( 6920) },
},
{ { INT16_C( 4045), -INT16_C( 25843), INT16_C( 30480), -INT16_C( 10526), -INT16_C( 29519), INT16_C( 28450), INT16_C( 6439), INT16_C( 9725) },
},
{ { -INT16_C( 27069), -INT16_C( 6176), -INT16_C( 4933), -INT16_C( 30744), -INT16_C( 12493), INT16_C( 16676), INT16_C( 7247), INT16_C( 7461) },
},
{ { INT16_C( 12844), INT16_C( 15544), -INT16_C( 25942), INT16_C( 23314), INT16_C( 13350), INT16_C( 19914), -INT16_C( 14258), -INT16_C( 28301) },
},
{ { INT16_C( 21342), INT16_C( 6521), INT16_C( 24895), INT16_C( 29345), -INT16_C( 15056), -INT16_C( 32589), -INT16_C( 9759), INT16_C( 3485) },
},
{ { INT16_C( 21771), -INT16_C( 19126), INT16_C( 23791), INT16_C( 5393), -INT16_C( 9327), -INT16_C( 8350), -INT16_C( 10845), INT16_C( 368) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_s16(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { INT16_C( 3755), -INT16_C( 28039), INT16_C( 32547), -INT16_C( 16414), INT16_C( 16253), INT16_C( 9054), -INT16_C( 6945), -INT16_C( 4111) },
},
{ { -INT16_C( 24673), INT16_C( 14711), INT16_C( 11169), INT16_C( 31468), -INT16_C( 11576), -INT16_C( 26149), -INT16_C( 11247), -INT16_C( 17209) },
},
{ { INT16_C( 16610), INT16_C( 1614), INT16_C( 12736), INT16_C( 15813), INT16_C( 9328), INT16_C( 20321), INT16_C( 21000), -INT16_C( 22465) },
},
{ { -INT16_C( 18703), -INT16_C( 27935), -INT16_C( 12574), -INT16_C( 22004), -INT16_C( 6240), -INT16_C( 20156), INT16_C( 3003), -INT16_C( 25234) },
},
{ { -INT16_C( 17332), INT16_C( 3235), INT16_C( 27117), INT16_C( 23881), -INT16_C( 21875), -INT16_C( 27219), -INT16_C( 4868), -INT16_C( 4803) },
},
{ { INT16_C( 8098), -INT16_C( 31617), -INT16_C( 29715), -INT16_C( 29393), INT16_C( 29554), INT16_C( 11582), -INT16_C( 21378), -INT16_C( 13621) },
},
{ { INT16_C( 28265), INT16_C( 22230), INT16_C( 8407), INT16_C( 25780), INT16_C( 25034), -INT16_C( 14342), INT16_C( 14157), -INT16_C( 4172) },
},
{ { INT16_C( 13398), INT16_C( 17268), -INT16_C( 23617), INT16_C( 13008), INT16_C( 3862), -INT16_C( 27553), INT16_C( 10939), INT16_C( 9311) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_s16(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { INT16_C( 20294), -INT16_C( 29983), INT16_C( 20382), INT16_C( 509), INT16_C( 3811), INT16_C( 8932), INT16_C( 11235), -INT16_C( 11050) },
},
{ { INT16_C( 12292), INT16_C( 26311), INT16_C( 3982), -INT16_C( 17091), -INT16_C( 25962), INT16_C( 3530), INT16_C( 13008), INT16_C( 5801) },
},
{ { -INT16_C( 30079), INT16_C( 8352), -INT16_C( 25126), -INT16_C( 17119), INT16_C( 1451), -INT16_C( 28705), -INT16_C( 18896), INT16_C( 13411) },
},
{ { INT16_C( 10982), INT16_C( 29850), -INT16_C( 10439), -INT16_C( 12494), -INT16_C( 910), INT16_C( 17117), -INT16_C( 31186), -INT16_C( 20648) },
},
{ { -INT16_C( 1776), -INT16_C( 5425), -INT16_C( 3690), INT16_C( 17063), -INT16_C( 30730), INT16_C( 10193), INT16_C( 13373), INT16_C( 9051) },
},
{ { -INT16_C( 2466), -INT16_C( 26728), -INT16_C( 13619), INT16_C( 16230), INT16_C( 17350), -INT16_C( 2943), -INT16_C( 9527), -INT16_C( 9565) },
},
{ { INT16_C( 29651), INT16_C( 27076), INT16_C( 27748), INT16_C( 23211), INT16_C( 31987), INT16_C( 12417), -INT16_C( 8784), INT16_C( 3667) },
},
{ { -INT16_C( 5165), -INT16_C( 24411), INT16_C( 3253), INT16_C( 31712), INT16_C( 24911), INT16_C( 6511), INT16_C( 4923), INT16_C( 3827) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_s16(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 10869), -INT16_C( 3074), -INT16_C( 14055), -INT16_C( 27820), -INT16_C( 19316), INT16_C( 10278), INT16_C( 16875), -INT16_C( 26815) },
},
{ { INT16_C( 10309), -INT16_C( 521), -INT16_C( 22342), INT16_C( 24239), -INT16_C( 29301), INT16_C( 29629), INT16_C( 2522), INT16_C( 25958) },
},
{ { INT16_C( 25822), -INT16_C( 1960), -INT16_C( 21203), -INT16_C( 18037), -INT16_C( 19871), INT16_C( 19682), INT16_C( 9203), INT16_C( 14564) },
},
{ { -INT16_C( 9397), INT16_C( 1333), -INT16_C( 7037), INT16_C( 3939), INT16_C( 8305), INT16_C( 19330), -INT16_C( 6102), INT16_C( 2224) },
},
{ { INT16_C( 2380), INT16_C( 30976), -INT16_C( 29514), INT16_C( 5939), INT16_C( 5438), INT16_C( 12644), INT16_C( 18488), -INT16_C( 31895) },
},
{ { -INT16_C( 25053), -INT16_C( 22904), -INT16_C( 5246), -INT16_C( 3147), INT16_C( 14348), INT16_C( 13887), -INT16_C( 4320), INT16_C( 27966) },
},
{ { INT16_C( 16376), -INT16_C( 20762), INT16_C( 6603), INT16_C( 2502), INT16_C( 10798), INT16_C( 26170), -INT16_C( 23694), -INT16_C( 27159) },
},
{ { INT16_C( 28993), -INT16_C( 15557), -INT16_C( 3747), INT16_C( 27062), -INT16_C( 2775), INT16_C( 18847), -INT16_C( 8731), -INT16_C( 8778) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_s16(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 2701), INT16_C( 26145), -INT16_C( 32458), -INT16_C( 9044), INT16_C( 23783), -INT16_C( 21411), INT16_C( 2922), INT16_C( 2234) },
},
{ { -INT16_C( 386), INT16_C( 27701), -INT16_C( 15086), INT16_C( 23162), -INT16_C( 2118), -INT16_C( 6704), -INT16_C( 27867), -INT16_C( 26378) },
},
{ { INT16_C( 6024), -INT16_C( 16642), -INT16_C( 21863), -INT16_C( 32614), -INT16_C( 2298), INT16_C( 28717), -INT16_C( 6398), -INT16_C( 32391) },
},
{ { -INT16_C( 20763), -INT16_C( 2067), INT16_C( 26740), INT16_C( 11858), INT16_C( 8799), -INT16_C( 31724), INT16_C( 2742), INT16_C( 15900) },
},
{ { INT16_C( 6690), -INT16_C( 17411), -INT16_C( 26684), -INT16_C( 13765), INT16_C( 26767), -INT16_C( 28358), -INT16_C( 19632), INT16_C( 13586) },
},
{ { INT16_C( 98), -INT16_C( 10707), INT16_C( 32616), -INT16_C( 14588), INT16_C( 6305), INT16_C( 22347), INT16_C( 26403), INT16_C( 17814) },
},
{ { -INT16_C( 27775), INT16_C( 17664), INT16_C( 15146), -INT16_C( 18161), INT16_C( 18852), -INT16_C( 2997), INT16_C( 24061), INT16_C( 24361) },
},
{ { INT16_C( 22109), -INT16_C( 15051), INT16_C( 14805), INT16_C( 30604), -INT16_C( 10414), INT16_C( 30158), INT16_C( 25662), -INT16_C( 16454) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_s16(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 21556), -INT16_C( 15853), INT16_C( 13986), -INT16_C( 10777), -INT16_C( 13968), -INT16_C( 19349), INT16_C( 19197), INT16_C( 747) },
},
{ { INT16_C( 22270), INT16_C( 22312), -INT16_C( 26423), INT16_C( 13709), -INT16_C( 3407), INT16_C( 28470), -INT16_C( 11245), -INT16_C( 8339) },
},
{ { -INT16_C( 32385), INT16_C( 8865), -INT16_C( 30281), INT16_C( 10231), INT16_C( 25170), INT16_C( 20444), -INT16_C( 14420), -INT16_C( 21935) },
},
{ { INT16_C( 31262), -INT16_C( 6399), -INT16_C( 29166), -INT16_C( 15587), INT16_C( 21376), -INT16_C( 27598), -INT16_C( 24793), -INT16_C( 22669) },
},
{ { INT16_C( 5408), -INT16_C( 10295), -INT16_C( 16226), -INT16_C( 3841), -INT16_C( 9438), -INT16_C( 12736), -INT16_C( 28254), -INT16_C( 16264) },
},
{ { INT16_C( 30987), INT16_C( 7592), -INT16_C( 15096), -INT16_C( 30496), INT16_C( 4632), INT16_C( 16156), -INT16_C( 28494), -INT16_C( 11546) },
},
{ { -INT16_C( 20571), INT16_C( 17322), -INT16_C( 22161), -INT16_C( 28365), INT16_C( 29572), INT16_C( 9823), -INT16_C( 10491), INT16_C( 4327) },
},
{ { -INT16_C( 28847), INT16_C( 22830), INT16_C( 3668), INT16_C( 27873), -INT16_C( 479), -INT16_C( 11349), -INT16_C( 28018), INT16_C( 13221) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_s16(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 20852), -INT16_C( 25483), INT16_C( 22713), -INT16_C( 29124), -INT16_C( 29678), -INT16_C( 23696), INT16_C( 9074), -INT16_C( 27927) },
},
{ { -INT16_C( 21498), -INT16_C( 8110), INT16_C( 928), -INT16_C( 30088), INT16_C( 7327), INT16_C( 28745), INT16_C( 15894), -INT16_C( 23830) },
},
{ { INT16_C( 24556), -INT16_C( 23234), INT16_C( 31671), -INT16_C( 13773), -INT16_C( 23801), INT16_C( 31085), INT16_C( 22214), -INT16_C( 13300) },
},
{ { INT16_C( 24067), -INT16_C( 23636), INT16_C( 9313), INT16_C( 46), INT16_C( 30529), INT16_C( 22385), INT16_C( 23477), -INT16_C( 24071) },
},
{ { INT16_C( 14523), INT16_C( 29254), INT16_C( 31155), -INT16_C( 17860), -INT16_C( 22244), -INT16_C( 7629), INT16_C( 16128), INT16_C( 942) },
},
{ { INT16_C( 23453), -INT16_C( 90), -INT16_C( 11137), -INT16_C( 16129), INT16_C( 28748), INT16_C( 279), INT16_C( 4556), -INT16_C( 30813) },
},
{ { -INT16_C( 5815), -INT16_C( 775), INT16_C( 13923), INT16_C( 32694), -INT16_C( 5665), -INT16_C( 8350), INT16_C( 4137), -INT16_C( 14622) },
},
{ { -INT16_C( 30357), -INT16_C( 5179), -INT16_C( 15011), -INT16_C( 22101), -INT16_C( 15563), INT16_C( 427), INT16_C( 20180), INT16_C( 7560) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_s16(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { INT32_C( 1942756607), INT32_C( 1141729398) },
},
{ { INT32_C( 1475419083), INT32_C( 1695451994) },
},
{ { -INT32_C( 1030043290), -INT32_C( 1608484645) },
},
{ { INT32_C( 563301726), INT32_C( 833684529) },
},
{ { -INT32_C( 1767604960), -INT32_C( 1311067675) },
},
{ { INT32_C( 638110924), -INT32_C( 1114892713) },
},
{ { -INT32_C( 1149294881), -INT32_C( 61104226) },
},
{ { INT32_C( 505278188), INT32_C( 323997683) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_s32(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 115647159), INT32_C( 1543473707) },
},
{ { -INT32_C( 414762519), -INT32_C( 1092812093) },
},
{ { -INT32_C( 524899849), -INT32_C( 1091006359) },
},
{ { INT32_C( 1246431952), -INT32_C( 91088719) },
},
{ { -INT32_C( 1577865867), INT32_C( 570225207) },
},
{ { -INT32_C( 301448405), INT32_C( 1017963845) },
},
{ { -INT32_C( 149134450), -INT32_C( 994765581) },
},
{ { -INT32_C( 821166050), -INT32_C( 1899388904) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_s32(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 1326109008), INT32_C( 1640452524) },
},
{ { INT32_C( 708537460), -INT32_C( 1325793864) },
},
{ { -INT32_C( 2091701145), INT32_C( 605343901) },
},
{ { -INT32_C( 117296960), INT32_C( 536353390) },
},
{ { -INT32_C( 187699640), -INT32_C( 1269459137) },
},
{ { -INT32_C( 1143041789), -INT32_C( 177416050) },
},
{ { -INT32_C( 1585922300), INT32_C( 1338346895) },
},
{ { INT32_C( 726255549), INT32_C( 709509601) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_s32(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { INT32_C( 762512963), INT32_C( 1517888677) },
},
{ { INT32_C( 2109169374), INT32_C( 948011566) },
},
{ { INT32_C( 354883301), -INT32_C( 206442941) },
},
{ { INT32_C( 151649563), -INT32_C( 1321787282) },
},
{ { -INT32_C( 874599898), -INT32_C( 1406838578) },
},
{ { -INT32_C( 467018314), INT32_C( 1142729311) },
},
{ { INT32_C( 72958912), INT32_C( 1308035890) },
},
{ { INT32_C( 1985413128), INT32_C( 1176997408) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_s32(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 1772159451), -INT32_C( 273705620) },
},
{ { -INT32_C( 1746436879), -INT32_C( 1982011284) },
},
{ { -INT32_C( 777181111), -INT32_C( 1931103660) },
},
{ { -INT32_C( 1359005937), -INT32_C( 550167878) },
},
{ { -INT32_C( 2072603624), INT32_C( 443819305) },
},
{ { INT32_C( 246504353), -INT32_C( 1936224957) },
},
{ { INT32_C( 157173173), INT32_C( 110511095) },
},
{ { INT32_C( 884315514), -INT32_C( 938153297) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_s32(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 995763866), -INT32_C( 546679899) },
},
{ { INT32_C( 53825220), -INT32_C( 1775030743) },
},
{ { INT32_C( 1938520045), -INT32_C( 1292661555) },
},
{ { INT32_C( 417415971), -INT32_C( 1253875889) },
},
{ { -INT32_C( 579147720), INT32_C( 12444732) },
},
{ { INT32_C( 1526985266), INT32_C( 233911840) },
},
{ { INT32_C( 2072018350), INT32_C( 741241609) },
},
{ { INT32_C( 88412086), -INT32_C( 1480882065) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_s32(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 149455343), -INT32_C( 818642956) },
},
{ { INT32_C( 2049044700), -INT32_C( 1172643403) },
},
{ { -INT32_C( 1629876328), -INT32_C( 1237868355) },
},
{ { -INT32_C( 1013774000), INT32_C( 406067718) },
},
{ { -INT32_C( 1945154664), -INT32_C( 1487125301) },
},
{ { -INT32_C( 383681228), -INT32_C( 157074594) },
},
{ { INT32_C( 143949130), INT32_C( 1857997854) },
},
{ { -INT32_C( 617524779), INT32_C( 66283115) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_s32(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 630456070), -INT32_C( 527501120) },
},
{ { INT32_C( 283556507), INT32_C( 426914223) },
},
{ { INT32_C( 981302759), -INT32_C( 427316278) },
},
{ { INT32_C( 1365974946), INT32_C( 2124495236) },
},
{ { -INT32_C( 111669959), -INT32_C( 1596332283) },
},
{ { INT32_C( 1353760929), -INT32_C( 664198415) },
},
{ { INT32_C( 1779623840), INT32_C( 894474642) },
},
{ { INT32_C( 1015462840), INT32_C( 767240180) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_s32(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 895446699), INT32_C( 1960405026) },
},
{ { INT32_C( 439627100), -INT32_C( 1280121677) },
},
{ { -INT32_C( 41083772), INT32_C( 1619246791) },
},
{ { -INT32_C( 1666539493), -INT32_C( 179584609) },
},
{ { INT32_C( 1975511890), -INT32_C( 1326868140) },
},
{ { INT32_C( 2043289030), -INT32_C( 2043839230) },
},
{ { INT32_C( 1636022937), -INT32_C( 1816066440) },
},
{ { INT32_C( 1160735654), INT32_C( 2134538796) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_s32(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 337377293), INT32_C( 1436377999), INT32_C( 759437979), INT32_C( 598356123) },
},
{ { -INT32_C( 1245575572), -INT32_C( 608506485), INT32_C( 1163288433), -INT32_C( 702091293) },
},
{ { -INT32_C( 2034169097), INT32_C( 165371501), INT32_C( 339091576), -INT32_C( 1120411568) },
},
{ { INT32_C( 1920137702), INT32_C( 1464675814), INT32_C( 1872536460), -INT32_C( 1975139437) },
},
{ { INT32_C( 990906061), -INT32_C( 582685851), INT32_C( 1559329291), INT32_C( 1092167770) },
},
{ { INT32_C( 129207073), INT32_C( 1163788472), INT32_C( 917830563), -INT32_C( 1950287170) },
},
{ { INT32_C( 1707528192), -INT32_C( 951907652), -INT32_C( 551340924), INT32_C( 2116041821) },
},
{ { -INT32_C( 2138647608), INT32_C( 1992680659), -INT32_C( 1649575201), INT32_C( 1948872052) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_s32(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { INT32_C( 623130355), INT32_C( 1449239400), -INT32_C( 1128746035), -INT32_C( 1367149809) },
},
{ { -INT32_C( 2072522775), -INT32_C( 1280826145), INT32_C( 2128924204), -INT32_C( 1000200240) },
},
{ { -INT32_C( 957774242), -INT32_C( 149075415), INT32_C( 229889534), -INT32_C( 1296353591) },
},
{ { -INT32_C( 449367547), -INT32_C( 2087133353), INT32_C( 2114026925), INT32_C( 37905316) },
},
{ { INT32_C( 331951082), INT32_C( 1946871414), -INT32_C( 2071871813), -INT32_C( 113820428) },
},
{ { -INT32_C( 958501265), -INT32_C( 95848627), -INT32_C( 1736946700), -INT32_C( 1734624594) },
},
{ { INT32_C( 1554801894), INT32_C( 97564234), INT32_C( 1753895284), -INT32_C( 60636787) },
},
{ { INT32_C( 2093105199), -INT32_C( 1418326857), INT32_C( 88403799), -INT32_C( 1885413463) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_s32(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { INT32_C( 1739808067), -INT32_C( 119151266), INT32_C( 1625226765), INT32_C( 376018564) },
},
{ { INT32_C( 977616236), -INT32_C( 549451966), INT32_C( 391248997), -INT32_C( 1320634002) },
},
{ { INT32_C( 1964636950), -INT32_C( 294781215), -INT32_C( 2125509636), INT32_C( 1301788897) },
},
{ { INT32_C( 948493557), INT32_C( 1209518307), INT32_C( 845179076), INT32_C( 954443810) },
},
{ { -INT32_C( 2052195164), -INT32_C( 143451397), INT32_C( 1182319205), INT32_C( 1888751738) },
},
{ { -INT32_C( 794288916), -INT32_C( 1474773020), INT32_C( 1239054375), -INT32_C( 981287647) },
},
{ { -INT32_C( 1253429318), -INT32_C( 1347633846), -INT32_C( 84531840), INT32_C( 560630325) },
},
{ { -INT32_C( 1963912538), -INT32_C( 114160943), -INT32_C( 1555952510), -INT32_C( 2090285879) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_s32(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 305018345), -INT32_C( 408795924), INT32_C( 1280110211), INT32_C( 1591486194) },
},
{ { -INT32_C( 614138690), INT32_C( 905999471), INT32_C( 1411049404), -INT32_C( 422389809) },
},
{ { -INT32_C( 1915509855), INT32_C( 1802860008), INT32_C( 1454948708), -INT32_C( 1514892057) },
},
{ { -INT32_C( 8382320), INT32_C( 1228243340), INT32_C( 933056616), -INT32_C( 937595097) },
},
{ { -INT32_C( 78254061), -INT32_C( 916010395), INT32_C( 1931484811), INT32_C( 1125700786) },
},
{ { INT32_C( 2034407917), -INT32_C( 2101184486), -INT32_C( 273063736), -INT32_C( 491268401) },
},
{ { INT32_C( 735907014), INT32_C( 1660241111), INT32_C( 366286178), -INT32_C( 698814743) },
},
{ { -INT32_C( 1588553081), -INT32_C( 635235822), INT32_C( 1120525426), INT32_C( 2015658162) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_s32(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { INT32_C( 912293310), INT32_C( 204558552), -INT32_C( 1953009825), -INT32_C( 2006297133) },
},
{ { INT32_C( 1220891744), INT32_C( 2091956675), -INT32_C( 783740282), INT32_C( 1164829574) },
},
{ { INT32_C( 947637600), INT32_C( 2084875293), -INT32_C( 301474789), -INT32_C( 1854443215) },
},
{ { -INT32_C( 1982251834), INT32_C( 2080737782), INT32_C( 575491740), -INT32_C( 1838695886) },
},
{ { -INT32_C( 1513364601), -INT32_C( 1423896689), INT32_C( 496577003), INT32_C( 1622020250) },
},
{ { INT32_C( 1139378253), -INT32_C( 1379930351), INT32_C( 1875905853), INT32_C( 1325545415) },
},
{ { -INT32_C( 1426797286), -INT32_C( 933947940), -INT32_C( 639242690), INT32_C( 1278841855) },
},
{ { INT32_C( 764355355), INT32_C( 1339706898), INT32_C( 599763547), -INT32_C( 59588126) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_s32(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 689895481), -INT32_C( 1859332607), -INT32_C( 1547664472), -INT32_C( 1320526320) },
},
{ { INT32_C( 689737540), INT32_C( 2062555401), -INT32_C( 448572611), INT32_C( 340183628) },
},
{ { -INT32_C( 756406063), -INT32_C( 1503389954), -INT32_C( 1438047079), -INT32_C( 950299518) },
},
{ { INT32_C( 753956643), -INT32_C( 844701552), -INT32_C( 2135693005), -INT32_C( 2070611533) },
},
{ { INT32_C( 525827617), INT32_C( 784776085), INT32_C( 1641549791), -INT32_C( 970443613) },
},
{ { INT32_C( 1022498987), INT32_C( 738826489), INT32_C( 900512898), -INT32_C( 675659594) },
},
{ { INT32_C( 1425478079), -INT32_C( 1417495092), INT32_C( 1879858124), INT32_C( 976631183) },
},
{ { INT32_C( 1182148941), INT32_C( 1131643073), -INT32_C( 226943172), INT32_C( 533345120) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_s32(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 1719971275), INT32_C( 1718980383), INT32_C( 225699668), INT32_C( 2059234434) },
},
{ { INT32_C( 356859972), -INT32_C( 729828136), -INT32_C( 1784676808), INT32_C( 1301308951) },
},
{ { -INT32_C( 656012359), -INT32_C( 297902950), -INT32_C( 956518077), INT32_C( 1631631645) },
},
{ { -INT32_C( 780695815), INT32_C( 1923479098), INT32_C( 185091316), INT32_C( 1683527851) },
},
{ { INT32_C( 1044135844), -INT32_C( 567444837), INT32_C( 1218717995), -INT32_C( 609622558) },
},
{ { -INT32_C( 1515446165), INT32_C( 169300502), INT32_C( 1091968918), INT32_C( 1554345656) },
},
{ { INT32_C( 1218109869), -INT32_C( 2044213413), -INT32_C( 758199312), INT32_C( 464353456) },
},
{ { -INT32_C( 1346348392), INT32_C( 1119475884), -INT32_C( 1350250505), -INT32_C( 351590082) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_s32(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 1711092359), INT32_C( 1337709846), -INT32_C( 858119927), -INT32_C( 1460755540) },
},
{ { INT32_C( 490966487), INT32_C( 167270093), -INT32_C( 89510034), INT32_C( 150734735) },
},
{ { -INT32_C( 358416684), -INT32_C( 583442989), INT32_C( 732500863), -INT32_C( 1915512906) },
},
{ { -INT32_C( 223668444), -INT32_C( 587488403), INT32_C( 1658234323), -INT32_C( 2140417364) },
},
{ { -INT32_C( 1536553520), -INT32_C( 360602517), INT32_C( 1846880951), -INT32_C( 419698238) },
},
{ { INT32_C( 1842914816), INT32_C( 491377482), INT32_C( 629088377), -INT32_C( 1012471054) },
},
{ { INT32_C( 1667698936), INT32_C( 1817045172), -INT32_C( 723885550), INT32_C( 1270601035) },
},
{ { -INT32_C( 960916612), -INT32_C( 521993625), INT32_C( 352674338), INT32_C( 1171827533) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_s32(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 836308430), -INT32_C( 20823114), -INT32_C( 1341228176), -INT32_C( 1296687314) },
},
{ { -INT32_C( 1443363026), -INT32_C( 1323579037), -INT32_C( 865858227), -INT32_C( 196110654) },
},
{ { INT32_C( 1069774217), INT32_C( 691897784), INT32_C( 785992448), -INT32_C( 1730048150) },
},
{ { -INT32_C( 113124970), -INT32_C( 257270622), INT32_C( 750521962), INT32_C( 757140388) },
},
{ { INT32_C( 963437697), INT32_C( 1768073577), INT32_C( 1586969588), INT32_C( 1626765514) },
},
{ { -INT32_C( 195479471), -INT32_C( 18611308), -INT32_C( 1238654959), INT32_C( 769871020) },
},
{ { -INT32_C( 1721348048), -INT32_C( 301807111), -INT32_C( 817063676), INT32_C( 1664041746) },
},
{ { INT32_C( 257395067), -INT32_C( 1643234420), -INT32_C( 2007746084), -INT32_C( 1246414971) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_s32(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { INT64_C( 6507368899876856448) },
},
{ { -INT64_C( 5606110019210035735) },
},
{ { INT64_C( 5538191326012830769) },
},
{ { -INT64_C( 3913861957691473674) },
},
{ { -INT64_C( 93860817958845234) },
},
{ { INT64_C( 3899560943408114888) },
},
{ { -INT64_C( 3174423257829653766) },
},
{ { -INT64_C( 3548350518083791698) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_s64(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { INT64_C( 3937832030626636539) },
},
{ { -INT64_C( 1574507081372615631) },
},
{ { INT64_C( 9162081502117003319) },
},
{ { -INT64_C( 7690620279898524097) },
},
{ { INT64_C( 2009877472910240848) },
},
{ { -INT64_C( 4012408675839158720) },
},
{ { -INT64_C( 6006878943899013745) },
},
{ { -INT64_C( 7193353285132165379) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_s64(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { INT64_C( 6328377202146038951) },
},
{ { INT64_C( 3619715714540190062) },
},
{ { INT64_C( 9155081246081012001) },
},
{ { -INT64_C( 2351362546501486091) },
},
{ { INT64_C( 5583888352263927452) },
},
{ { -INT64_C( 9177717705129095379) },
},
{ { INT64_C( 8675559626524729859) },
},
{ { -INT64_C( 1740451813690375232) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_s64(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 3168462482490462822) },
},
{ { -INT64_C( 1219849104769322211) },
},
{ { INT64_C( 4676971831165581582) },
},
{ { -INT64_C( 740107272915334304) },
},
{ { INT64_C( 3784936939007031946) },
},
{ { INT64_C( 8422026410167249983) },
},
{ { INT64_C( 6151963219461210886) },
},
{ { -INT64_C( 5096855216589139212) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_s64(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 7114466497633344375) },
},
{ { -INT64_C( 982042139150972563) },
},
{ { INT64_C( 6098053910720327655) },
},
{ { INT64_C( 6897172487366335938) },
},
{ { -INT64_C( 6892269724810748847) },
},
{ { -INT64_C( 4064317378932651322) },
},
{ { -INT64_C( 6313913748120124845) },
},
{ { INT64_C( 8073265418032673237) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_s64(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 7859406109924154012) },
},
{ { INT64_C( 8049504884380889405) },
},
{ { INT64_C( 9100164763748731086) },
},
{ { INT64_C( 4674145817308398404) },
},
{ { INT64_C( 5901648540621360268) },
},
{ { -INT64_C( 7509089612126145969) },
},
{ { INT64_C( 1982760133211688802) },
},
{ { INT64_C( 201577274414764208) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_s64(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 9087886216328385184) },
},
{ { -INT64_C( 5531611665732542435) },
},
{ { INT64_C( 1909430669626039079) },
},
{ { INT64_C( 3587155385237390099) },
},
{ { -INT64_C( 3444164426624836849) },
},
{ { -INT64_C( 5120178736133780034) },
},
{ { -INT64_C( 540421074411963309) },
},
{ { -INT64_C( 1778925326933183155) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_s64(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 1016733158405359620) },
},
{ { -INT64_C( 2089216970221742623) },
},
{ { -INT64_C( 5254723309699434506) },
},
{ { INT64_C( 1763286918682342951) },
},
{ { INT64_C( 1382685565763607467) },
},
{ { -INT64_C( 397112793860774050) },
},
{ { -INT64_C( 8982532413052755037) },
},
{ { -INT64_C( 7111970021676646888) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_s64(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 5582127008471794557) },
},
{ { INT64_C( 7674704104200227240) },
},
{ { -INT64_C( 3567127553411135658) },
},
{ { INT64_C( 1415740588118772255) },
},
{ { -INT64_C( 8703974978045111948) },
},
{ { -INT64_C( 6291395285151757427) },
},
{ { INT64_C( 4499629426767960896) },
},
{ { -INT64_C( 8461345510972825873) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_s64(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 7111391188455227457), -INT64_C( 3254191077044569329) },
},
{ { -INT64_C( 1650031472652397181), -INT64_C( 309481479475721661) },
},
{ { INT64_C( 5693002100524252415), -INT64_C( 3378233746908740393) },
},
{ { -INT64_C( 6847697544965884688), -INT64_C( 4550811824021290590) },
},
{ { -INT64_C( 7507740545089526719), INT64_C( 2218023018207253417) },
},
{ { -INT64_C( 9191243350082271628), -INT64_C( 8581830885716983195) },
},
{ { -INT64_C( 2760187395494638758), INT64_C( 664167231916119275) },
},
{ { -INT64_C( 1243752674535709601), -INT64_C( 6115893445395211696) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_s64(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { INT64_C( 8185646939337236695), INT64_C( 2688673206683960774) },
},
{ { -INT64_C( 2164464113465532920), -INT64_C( 4581510018376765077) },
},
{ { INT64_C( 7623174301693993172), INT64_C( 7721143809931890169) },
},
{ { -INT64_C( 6296687322834995615), INT64_C( 7549887383541079837) },
},
{ { INT64_C( 1153919958250496759), INT64_C( 1848510735015130585) },
},
{ { INT64_C( 2744226032286850352), -INT64_C( 3616685348569136941) },
},
{ { -INT64_C( 775628366577954795), -INT64_C( 5119791744112570848) },
},
{ { INT64_C( 1037017840322201653), -INT64_C( 7341356102690958982) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_s64(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 5478452947858036060), INT64_C( 3027308422447858654) },
},
{ { INT64_C( 5308556797850632463), -INT64_C( 8026805502122097337) },
},
{ { INT64_C( 6106164720098399992), -INT64_C( 9071691710817547528) },
},
{ { INT64_C( 699266036727281954), -INT64_C( 7616685799744106289) },
},
{ { INT64_C( 3870946397987588590), -INT64_C( 7450009907100281433) },
},
{ { INT64_C( 6125940608990329656), -INT64_C( 8683961970705989561) },
},
{ { INT64_C( 2349370996918262823), INT64_C( 3983389888589053753) },
},
{ { INT64_C( 5183137398324808211), -INT64_C( 8803225149115662156) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_s64(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { INT64_C( 7635004779189560581), -INT64_C( 7876646184904941736) },
},
{ { INT64_C( 1169612658643635266), INT64_C( 6731539315348642040) },
},
{ { -INT64_C( 4616652067830273248), INT64_C( 509575005423484026) },
},
{ { -INT64_C( 7493878042357771413), INT64_C( 5310470915378310909) },
},
{ { -INT64_C( 1285850860918728448), -INT64_C( 6861936389400897798) },
},
{ { INT64_C( 5912259103237926868), -INT64_C( 3679060685047253378) },
},
{ { INT64_C( 8706685679711862898), -INT64_C( 7491460063933611470) },
},
{ { -INT64_C( 6372003961623504661), INT64_C( 353322092022675790) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_s64(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { INT64_C( 1900666753600127530), -INT64_C( 3669406538694196815) },
},
{ { INT64_C( 274910012553665461), INT64_C( 4245955537745086196) },
},
{ { -INT64_C( 2441454381005625427), INT64_C( 2105070435390701879) },
},
{ { INT64_C( 5514684512187493202), INT64_C( 5073867488594489119) },
},
{ { -INT64_C( 5930561804499730522), INT64_C( 6823035952845641003) },
},
{ { INT64_C( 3502229382316161526), INT64_C( 5997326498957077850) },
},
{ { INT64_C( 1885559016628126983), -INT64_C( 9108145918797070545) },
},
{ { INT64_C( 4798702945091746902), -INT64_C( 4028627368431650792) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_s64(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 3917874066034605442), -INT64_C( 1949064800907001111) },
},
{ { INT64_C( 546159014590848953), INT64_C( 396535052162892911) },
},
{ { -INT64_C( 7089481973961799031), -INT64_C( 7610395224178797157) },
},
{ { -INT64_C( 4984901720799776239), INT64_C( 5450384428367346454) },
},
{ { -INT64_C( 3403951431896589199), -INT64_C( 4357881682333843182) },
},
{ { INT64_C( 3218210159869166500), -INT64_C( 1627648328125984676) },
},
{ { INT64_C( 6309491700457769098), INT64_C( 3785499309450386962) },
},
{ { -INT64_C( 3165524243452323889), -INT64_C( 3098938020335461220) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_s64(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { INT64_C( 2688746253838422578), INT64_C( 6716962639529351604) },
},
{ { -INT64_C( 7712284921796853919), INT64_C( 2773637878869444097) },
},
{ { -INT64_C( 4818748208638480254), -INT64_C( 6250232908632565769) },
},
{ { INT64_C( 7747105512504161589), -INT64_C( 8565703520504441083) },
},
{ { -INT64_C( 9009270136648749774), INT64_C( 7164569695744980859) },
},
{ { -INT64_C( 543294039713008481), INT64_C( 3421630694511770347) },
},
{ { INT64_C( 2255567448309366847), -INT64_C( 42415447632333351) },
},
{ { INT64_C( 8930496842383866627), INT64_C( 3613551510055412217) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_s64(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 1402027193207326413), -INT64_C( 2166409925850784429) },
},
{ { INT64_C( 5097930609605478085), -INT64_C( 2295136319892064806) },
},
{ { -INT64_C( 1648147493708327294), INT64_C( 846785885976717368) },
},
{ { INT64_C( 3932184930325291114), -INT64_C( 2814545987810144925) },
},
{ { -INT64_C( 3184276263924858800), INT64_C( 1254095984874570518) },
},
{ { -INT64_C( 1881399073800678063), -INT64_C( 9193845543012043206) },
},
{ { -INT64_C( 5092386302282271258), -INT64_C( 3949520022139500936) },
},
{ { -INT64_C( 5514276790526899183), INT64_C( 4287616322038361808) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_s64(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 7785086221317720197), -INT64_C( 3333025110275361121) },
},
{ { INT64_C( 557425576608416606), INT64_C( 2865286261606638736) },
},
{ { -INT64_C( 4239772750377888703), -INT64_C( 3177635380408631869) },
},
{ { INT64_C( 5524890609138883593), INT64_C( 6201906476984207934) },
},
{ { INT64_C( 8779790245809580525), -INT64_C( 5973333706829537326) },
},
{ { INT64_C( 5825966948614322385), INT64_C( 3887533678598467464) },
},
{ { -INT64_C( 4186904048721928523), -INT64_C( 5093246922952772609) },
},
{ { INT64_C( 3044468128483812318), INT64_C( 8884400049866898126) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_s64(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(112), UINT8_C(213), UINT8_C(254), UINT8_C(209), UINT8_C( 81), UINT8_C(219), UINT8_C(117), UINT8_C(223) },
},
{ { UINT8_C(124), UINT8_C(231), UINT8_C(194), UINT8_C(124), UINT8_C(243), UINT8_C( 26), UINT8_C(211), UINT8_C(153) },
},
{ { UINT8_C(234), UINT8_C( 24), UINT8_C(169), UINT8_C(251), UINT8_C( 31), UINT8_C(217), UINT8_C(225), UINT8_C(202) },
},
{ { UINT8_C( 55), UINT8_C(239), UINT8_C( 94), UINT8_C(148), UINT8_C(180), UINT8_C(176), UINT8_C( 71), UINT8_C( 36) },
},
{ { UINT8_C(133), UINT8_C( 70), UINT8_C(245), UINT8_C(214), UINT8_C( 33), UINT8_C(106), UINT8_C(181), UINT8_C(157) },
},
{ { UINT8_C( 81), UINT8_C(119), UINT8_C( 26), UINT8_C( 68), UINT8_C(145), UINT8_C(237), UINT8_C(222), UINT8_C(123) },
},
{ { UINT8_C( 6), UINT8_C(135), UINT8_C(118), UINT8_C( 37), UINT8_C( 96), UINT8_C( 87), UINT8_C(240), UINT8_C(151) },
},
{ { UINT8_C( 70), UINT8_C( 78), UINT8_C( 43), UINT8_C(250), UINT8_C(254), UINT8_C(115), UINT8_C( 30), UINT8_C(131) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_u8(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C( 51), UINT8_C( 43), UINT8_C(203), UINT8_C(240), UINT8_C(137), UINT8_C( 63), UINT8_C(125), UINT8_C( 11) },
},
{ { UINT8_C( 45), UINT8_C( 94), UINT8_C( 82), UINT8_C(205), UINT8_C(174), UINT8_C( 96), UINT8_C(128), UINT8_C( 2) },
},
{ { UINT8_C( 53), UINT8_C(179), UINT8_C(197), UINT8_C( 89), UINT8_C(162), UINT8_C( 51), UINT8_C( 97), UINT8_C(235) },
},
{ { UINT8_C(108), UINT8_C( 15), UINT8_C(237), UINT8_C(107), UINT8_C( 76), UINT8_C(137), UINT8_C( 47), UINT8_C(128) },
},
{ { UINT8_C(180), UINT8_C(250), UINT8_C(112), UINT8_C( 61), UINT8_C( 58), UINT8_C(237), UINT8_C( 73), UINT8_C(103) },
},
{ { UINT8_C( 76), UINT8_C(155), UINT8_C( 52), UINT8_C(250), UINT8_C(251), UINT8_C(180), UINT8_C(252), UINT8_C( 49) },
},
{ { UINT8_C(104), UINT8_C(194), UINT8_C(138), UINT8_C( 10), UINT8_C(245), UINT8_C(235), UINT8_C(246), UINT8_C( 97) },
},
{ { UINT8_C(250), UINT8_C(227), UINT8_C(205), UINT8_C( 71), UINT8_C(108), UINT8_C(252), UINT8_C(199), UINT8_C( 32) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_u8(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(147), UINT8_C(243), UINT8_C( 65), UINT8_C(112), UINT8_C(131), UINT8_C( 66), UINT8_C( 5), UINT8_C(171) },
},
{ { UINT8_C( 45), UINT8_C(204), UINT8_C(175), UINT8_C(204), UINT8_C(142), UINT8_C(231), UINT8_C(239), UINT8_C(114) },
},
{ { UINT8_C(166), UINT8_C(159), UINT8_C(214), UINT8_C( 13), UINT8_C(153), UINT8_C( 94), UINT8_C( 63), UINT8_C(236) },
},
{ { UINT8_C(218), UINT8_C( 50), UINT8_C( 76), UINT8_C(184), UINT8_C( 58), UINT8_C(231), UINT8_C( 21), UINT8_C(205) },
},
{ { UINT8_C(218), UINT8_C( 87), UINT8_C( 62), UINT8_C( 93), UINT8_C(153), UINT8_C( 67), UINT8_C( 8), UINT8_C(198) },
},
{ { UINT8_C( 15), UINT8_C(183), UINT8_C(147), UINT8_C(157), UINT8_C(159), UINT8_C(130), UINT8_C( 15), UINT8_C( 69) },
},
{ { UINT8_C( 34), UINT8_C(229), UINT8_C( 82), UINT8_C(187), UINT8_C( 67), UINT8_C(146), UINT8_C(168), UINT8_C( 29) },
},
{ { UINT8_C(196), UINT8_C(244), UINT8_C(214), UINT8_C(254), UINT8_C(219), UINT8_C(235), UINT8_C(204), UINT8_C(182) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_u8(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(167), UINT8_C( 27), UINT8_C( 14), UINT8_C(245), UINT8_C(156), UINT8_C(104), UINT8_C(159), UINT8_C(125) },
},
{ { UINT8_C(167), UINT8_C( 59), UINT8_C(147), UINT8_C(116), UINT8_C(103), UINT8_C( 23), UINT8_C(182), UINT8_C( 28) },
},
{ { UINT8_C( 55), UINT8_C(112), UINT8_C(154), UINT8_C(182), UINT8_C(106), UINT8_C(171), UINT8_C(127), UINT8_C(159) },
},
{ { UINT8_C( 56), UINT8_C(206), UINT8_C(241), UINT8_C( 68), UINT8_C(100), UINT8_C( 28), UINT8_C( 38), UINT8_C( 11) },
},
{ { UINT8_C( 55), UINT8_C( 52), UINT8_C( 0), UINT8_C(211), UINT8_C(157), UINT8_C(159), UINT8_C( 80), UINT8_C( 68) },
},
{ { UINT8_C(219), UINT8_C(227), UINT8_C(184), UINT8_C( 66), UINT8_C(251), UINT8_C(111), UINT8_C( 94), UINT8_C( 50) },
},
{ { UINT8_C(223), UINT8_C(248), UINT8_C(232), UINT8_C( 73), UINT8_C(163), UINT8_C(104), UINT8_C(232), UINT8_C(219) },
},
{ { UINT8_C( 54), UINT8_C(218), UINT8_C( 32), UINT8_C(155), UINT8_C(246), UINT8_C( 70), UINT8_C(166), UINT8_C( 45) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_u8(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(226), UINT8_C(243), UINT8_C( 11), UINT8_C( 58), UINT8_C(188), UINT8_C(180), UINT8_C(226), UINT8_C( 20) },
},
{ { UINT8_C(127), UINT8_C(241), UINT8_C(231), UINT8_C( 32), UINT8_C(223), UINT8_C(190), UINT8_C( 44), UINT8_C(190) },
},
{ { UINT8_C( 90), UINT8_C(254), UINT8_C(207), UINT8_C( 71), UINT8_C(211), UINT8_C(206), UINT8_C( 43), UINT8_C(172) },
},
{ { UINT8_C(184), UINT8_C(201), UINT8_C( 96), UINT8_C(102), UINT8_C( 4), UINT8_C(196), UINT8_C( 2), UINT8_C(231) },
},
{ { UINT8_C(183), UINT8_C( 14), UINT8_C( 33), UINT8_C(116), UINT8_C(194), UINT8_C( 4), UINT8_C(136), UINT8_C( 65) },
},
{ { UINT8_C(245), UINT8_C(111), UINT8_C( 97), UINT8_C(212), UINT8_C( 46), UINT8_C(141), UINT8_C(146), UINT8_C(136) },
},
{ { UINT8_C(139), UINT8_C( 97), UINT8_C(208), UINT8_C( 95), UINT8_C( 47), UINT8_C(251), UINT8_C( 11), UINT8_C(231) },
},
{ { UINT8_C(197), UINT8_C(108), UINT8_C( 77), UINT8_C(201), UINT8_C( 48), UINT8_C( 79), UINT8_C(176), UINT8_C(231) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_u8(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(128), UINT8_C( 94), UINT8_C(134), UINT8_C(227), UINT8_C(176), UINT8_C(188), UINT8_C(228), UINT8_C(209) },
},
{ { UINT8_C(168), UINT8_C(199), UINT8_C(161), UINT8_C( 80), UINT8_C(249), UINT8_C( 54), UINT8_C( 47), UINT8_C( 39) },
},
{ { UINT8_C(186), UINT8_C(119), UINT8_C(105), UINT8_C(148), UINT8_C( 32), UINT8_C( 60), UINT8_C( 67), UINT8_C(249) },
},
{ { UINT8_C(230), UINT8_C( 73), UINT8_C( 95), UINT8_C(201), UINT8_C(179), UINT8_C(210), UINT8_C(243), UINT8_C( 51) },
},
{ { UINT8_C( 48), UINT8_C(121), UINT8_C( 22), UINT8_C(225), UINT8_C( 53), UINT8_C(250), UINT8_C(178), UINT8_C(222) },
},
{ { UINT8_C(193), UINT8_C( 83), UINT8_C( 46), UINT8_C(187), UINT8_C(138), UINT8_C( 93), UINT8_C(226), UINT8_C( 68) },
},
{ { UINT8_C(212), UINT8_C( 75), UINT8_C(216), UINT8_C(244), UINT8_C(135), UINT8_C( 27), UINT8_C(238), UINT8_C(110) },
},
{ { UINT8_C(101), UINT8_C( 77), UINT8_C( 55), UINT8_C( 24), UINT8_C( 31), UINT8_C( 42), UINT8_C( 75), UINT8_C( 79) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_u8(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C( 36), UINT8_C(221), UINT8_C( 60), UINT8_C(229), UINT8_C( 49), UINT8_C(244), UINT8_C(111), UINT8_C(188) },
},
{ { UINT8_C(160), UINT8_C(192), UINT8_C( 80), UINT8_C( 43), UINT8_C(104), UINT8_C(116), UINT8_C(107), UINT8_C( 44) },
},
{ { UINT8_C(222), UINT8_C(125), UINT8_C( 68), UINT8_C( 25), UINT8_C(191), UINT8_C(146), UINT8_C(106), UINT8_C(110) },
},
{ { UINT8_C(218), UINT8_C( 61), UINT8_C(146), UINT8_C(203), UINT8_C( 45), UINT8_C( 95), UINT8_C( 11), UINT8_C( 81) },
},
{ { UINT8_C( 61), UINT8_C( 72), UINT8_C( 55), UINT8_C(110), UINT8_C( 60), UINT8_C(166), UINT8_C( 42), UINT8_C(220) },
},
{ { UINT8_C(102), UINT8_C(122), UINT8_C( 7), UINT8_C(206), UINT8_C(239), UINT8_C(115), UINT8_C(251), UINT8_C(205) },
},
{ { UINT8_C(240), UINT8_C( 63), UINT8_C(230), UINT8_C(176), UINT8_C(209), UINT8_C( 80), UINT8_C( 30), UINT8_C(171) },
},
{ { UINT8_C(141), UINT8_C(177), UINT8_C(118), UINT8_C(186), UINT8_C( 16), UINT8_C(130), UINT8_C( 12), UINT8_C( 77) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_u8(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(186), UINT8_C( 4), UINT8_C( 77), UINT8_C( 72), UINT8_C(170), UINT8_C( 40), UINT8_C(217), UINT8_C(200) },
},
{ { UINT8_C( 11), UINT8_C(193), UINT8_C( 28), UINT8_C( 12), UINT8_C(113), UINT8_C(159), UINT8_C( 50), UINT8_C(171) },
},
{ { UINT8_C( 1), UINT8_C(131), UINT8_C(236), UINT8_C(170), UINT8_C(169), UINT8_C(148), UINT8_C(243), UINT8_C(225) },
},
{ { UINT8_C(201), UINT8_C(223), UINT8_C(238), UINT8_C(192), UINT8_C( 25), UINT8_C( 88), UINT8_C(105), UINT8_C(211) },
},
{ { UINT8_C( 92), UINT8_C(182), UINT8_C( 27), UINT8_C( 7), UINT8_C(222), UINT8_C(244), UINT8_C(207), UINT8_C(234) },
},
{ { UINT8_C(181), UINT8_C(236), UINT8_C(246), UINT8_C( 39), UINT8_C(139), UINT8_C( 40), UINT8_C(210), UINT8_C(140) },
},
{ { UINT8_C(172), UINT8_C(190), UINT8_C( 54), UINT8_C( 85), UINT8_C( 82), UINT8_C( 41), UINT8_C( 54), UINT8_C( 27) },
},
{ { UINT8_C( 8), UINT8_C( 36), UINT8_C(219), UINT8_C( 33), UINT8_C(125), UINT8_C( 68), UINT8_C(244), UINT8_C(217) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_u8(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(147), UINT8_C( 20), UINT8_C( 14), UINT8_C(234), UINT8_C(152), UINT8_C(134), UINT8_C( 74), UINT8_C(158) },
},
{ { UINT8_C(207), UINT8_C( 18), UINT8_C( 79), UINT8_C( 23), UINT8_C(206), UINT8_C( 14), UINT8_C(245), UINT8_C(245) },
},
{ { UINT8_C(157), UINT8_C( 76), UINT8_C(191), UINT8_C(160), UINT8_C(210), UINT8_C(250), UINT8_C(214), UINT8_C( 44) },
},
{ { UINT8_C(171), UINT8_C( 35), UINT8_C( 36), UINT8_C(253), UINT8_C( 89), UINT8_C( 67), UINT8_C(191), UINT8_C(237) },
},
{ { UINT8_C( 88), UINT8_C(206), UINT8_C(215), UINT8_C(240), UINT8_C( 84), UINT8_C( 34), UINT8_C(142), UINT8_C( 35) },
},
{ { UINT8_C( 52), UINT8_C(222), UINT8_C( 59), UINT8_C( 2), UINT8_C(236), UINT8_C( 48), UINT8_C(247), UINT8_C(137) },
},
{ { UINT8_C(124), UINT8_C(182), UINT8_C( 41), UINT8_C( 78), UINT8_C(176), UINT8_C( 0), UINT8_C(122), UINT8_C( 91) },
},
{ { UINT8_C( 35), UINT8_C(158), UINT8_C( 88), UINT8_C(124), UINT8_C(226), UINT8_C( 24), UINT8_C(105), UINT8_C( 58) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_u8(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 74), UINT8_C( 19), UINT8_C( 69), UINT8_C( 21), UINT8_C( 71), UINT8_C( 59), UINT8_C(199), UINT8_C(127),
UINT8_C( 82), UINT8_C(179), UINT8_C(169), UINT8_C(199), UINT8_C( 92), UINT8_C( 94), UINT8_C( 56), UINT8_C(138) },
},
{ { UINT8_C(242), UINT8_C(208), UINT8_C( 27), UINT8_C( 42), UINT8_MAX, UINT8_C(136), UINT8_C( 16), UINT8_C(131),
UINT8_C( 2), UINT8_C( 11), UINT8_C( 23), UINT8_C(252), UINT8_C(182), UINT8_C(246), UINT8_C(201), UINT8_C( 0) },
},
{ { UINT8_C( 10), UINT8_C( 14), UINT8_C( 22), UINT8_C( 81), UINT8_C( 73), UINT8_C(221), UINT8_C(208), UINT8_C(156),
UINT8_C(144), UINT8_C(121), UINT8_C( 99), UINT8_C(236), UINT8_C(215), UINT8_C(155), UINT8_C(118), UINT8_C(202) },
},
{ { UINT8_C(108), UINT8_C(145), UINT8_C(244), UINT8_C(107), UINT8_C( 25), UINT8_C( 4), UINT8_C(239), UINT8_C( 28),
UINT8_C( 15), UINT8_C( 6), UINT8_C( 24), UINT8_C(197), UINT8_C(253), UINT8_C(225), UINT8_C(198), UINT8_C( 7) },
},
{ { UINT8_C(240), UINT8_C(220), UINT8_C( 88), UINT8_C( 57), UINT8_C(185), UINT8_C( 40), UINT8_C(213), UINT8_C( 73),
UINT8_C(161), UINT8_C( 56), UINT8_C( 53), UINT8_C(120), UINT8_C(212), UINT8_C(172), UINT8_C( 66), UINT8_C( 64) },
},
{ { UINT8_C( 61), UINT8_C( 54), UINT8_C(171), UINT8_C( 87), UINT8_C( 58), UINT8_C(154), UINT8_C(115), UINT8_C( 74),
UINT8_C(161), UINT8_C(139), UINT8_C( 15), UINT8_C(158), UINT8_C(108), UINT8_C(213), UINT8_C(165), UINT8_C( 92) },
},
{ { UINT8_C(177), UINT8_C(253), UINT8_C(150), UINT8_C(106), UINT8_C( 37), UINT8_C(107), UINT8_C(179), UINT8_C(198),
UINT8_C(164), UINT8_C(233), UINT8_C( 62), UINT8_C(120), UINT8_C(149), UINT8_C(129), UINT8_C(184), UINT8_C(210) },
},
{ { UINT8_C(183), UINT8_C( 99), UINT8_C( 41), UINT8_C(242), UINT8_C(254), UINT8_C(156), UINT8_C( 60), UINT8_C(159),
UINT8_C( 39), UINT8_C( 75), UINT8_C( 61), UINT8_C(148), UINT8_C( 33), UINT8_C(226), UINT8_C(240), UINT8_C(210) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_u8(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 87), UINT8_C(122), UINT8_C(239), UINT8_C(208), UINT8_C(235), UINT8_C( 38), UINT8_C(133), UINT8_C(157),
UINT8_C( 51), UINT8_C(250), UINT8_C( 84), UINT8_C( 64), UINT8_C( 33), UINT8_C(196), UINT8_C(113), UINT8_C(243) },
},
{ { UINT8_C(192), UINT8_C(103), UINT8_C( 78), UINT8_C(158), UINT8_C( 75), UINT8_C(154), UINT8_C(226), UINT8_C( 23),
UINT8_C(169), UINT8_C( 97), UINT8_C( 50), UINT8_C( 85), UINT8_C(198), UINT8_C(111), UINT8_C( 46), UINT8_C( 29) },
},
{ { UINT8_C(233), UINT8_C( 29), UINT8_C(238), UINT8_C(212), UINT8_C( 67), UINT8_C(115), UINT8_C(113), UINT8_C(118),
UINT8_C(109), UINT8_C(197), UINT8_C(182), UINT8_C(142), UINT8_C(137), UINT8_C( 40), UINT8_C(129), UINT8_C( 73) },
},
{ { UINT8_C(143), UINT8_C(208), UINT8_C(231), UINT8_C(219), UINT8_C(106), UINT8_C(201), UINT8_C(242), UINT8_C( 20),
UINT8_C( 43), UINT8_C( 36), UINT8_C(105), UINT8_C(241), UINT8_C(147), UINT8_C(151), UINT8_C( 14), UINT8_C(124) },
},
{ { UINT8_C(180), UINT8_C(252), UINT8_C( 80), UINT8_C(248), UINT8_C(112), UINT8_C(193), UINT8_C(110), UINT8_C(221),
UINT8_C(135), UINT8_C( 37), UINT8_C(108), UINT8_C( 16), UINT8_C( 77), UINT8_C(237), UINT8_C( 90), UINT8_C(220) },
},
{ { UINT8_C(189), UINT8_C( 65), UINT8_C(183), UINT8_C( 40), UINT8_C( 11), UINT8_C(169), UINT8_C( 60), UINT8_C( 54),
UINT8_C(205), UINT8_C(165), UINT8_C( 39), UINT8_C( 96), UINT8_C( 60), UINT8_C( 53), UINT8_C(220), UINT8_C(240) },
},
{ { UINT8_C( 50), UINT8_C( 44), UINT8_C(232), UINT8_C(162), UINT8_C(238), UINT8_C( 87), UINT8_C(127), UINT8_C(117),
UINT8_C(124), UINT8_C(235), UINT8_C(133), UINT8_C(201), UINT8_C(217), UINT8_C(223), UINT8_C(165), UINT8_C(150) },
},
{ { UINT8_C( 33), UINT8_C( 93), UINT8_C(190), UINT8_C( 44), UINT8_C( 6), UINT8_C(250), UINT8_C( 98), UINT8_C(212),
UINT8_C(159), UINT8_C(137), UINT8_C( 52), UINT8_C(219), UINT8_C(190), UINT8_C( 17), UINT8_C(204), UINT8_C(240) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_u8(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C(186), UINT8_C( 15), UINT8_C(251), UINT8_C( 19), UINT8_C(208), UINT8_C( 70), UINT8_C(122), UINT8_C(225),
UINT8_C( 58), UINT8_C(175), UINT8_C( 82), UINT8_C(136), UINT8_C(204), UINT8_C(209), UINT8_C( 23), UINT8_C(150) },
},
{ { UINT8_C(222), UINT8_C( 56), UINT8_C(218), UINT8_C( 62), UINT8_C( 18), UINT8_C(198), UINT8_C(207), UINT8_C(180),
UINT8_C( 84), UINT8_C(208), UINT8_C( 98), UINT8_C(169), UINT8_C(186), UINT8_C(173), UINT8_C( 76), UINT8_C(116) },
},
{ { UINT8_C(188), UINT8_C( 71), UINT8_C(136), UINT8_C(140), UINT8_C(142), UINT8_C( 2), UINT8_C(110), UINT8_C(200),
UINT8_C(177), UINT8_C(192), UINT8_C( 80), UINT8_C(125), UINT8_C(145), UINT8_C(103), UINT8_C( 19), UINT8_C(111) },
},
{ { UINT8_C(160), UINT8_C(238), UINT8_C(173), UINT8_C(178), UINT8_C(180), UINT8_C(124), UINT8_C(102), UINT8_C( 9),
UINT8_C( 76), UINT8_C(200), UINT8_C(178), UINT8_C( 6), UINT8_C(117), UINT8_C(254), UINT8_C(123), UINT8_C( 49) },
},
{ { UINT8_C( 70), UINT8_C( 3), UINT8_C(190), UINT8_C(212), UINT8_C( 5), UINT8_C( 44), UINT8_C(156), UINT8_C(182),
UINT8_C(236), UINT8_C(236), UINT8_C( 51), UINT8_C(125), UINT8_C( 83), UINT8_C( 70), UINT8_C(236), UINT8_C(243) },
},
{ { UINT8_C( 52), UINT8_C(153), UINT8_C(165), UINT8_C(233), UINT8_C( 22), UINT8_C( 12), UINT8_C(242), UINT8_C( 98),
UINT8_C(212), UINT8_C(164), UINT8_C(105), UINT8_C( 74), UINT8_C(163), UINT8_C(228), UINT8_C(123), UINT8_C(233) },
},
{ { UINT8_C(231), UINT8_C( 57), UINT8_C(189), UINT8_C(236), UINT8_C(101), UINT8_C( 89), UINT8_C(162), UINT8_C( 81),
UINT8_C( 69), UINT8_C(213), UINT8_C(206), UINT8_C(152), UINT8_C( 27), UINT8_C(186), UINT8_C(140), UINT8_C( 80) },
},
{ { UINT8_C( 84), UINT8_C( 49), UINT8_C( 57), UINT8_C(106), UINT8_C( 61), UINT8_C( 43), UINT8_C(204), UINT8_C( 18),
UINT8_C(207), UINT8_C( 53), UINT8_C( 92), UINT8_C(114), UINT8_C( 25), UINT8_C(215), UINT8_C( 91), UINT8_C( 0) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_u8(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C(221), UINT8_C( 34), UINT8_C( 9), UINT8_C( 16), UINT8_C( 32), UINT8_C(148), UINT8_C( 20), UINT8_C(161),
UINT8_C( 71), UINT8_C(215), UINT8_C(169), UINT8_C(199), UINT8_C(183), UINT8_C( 29), UINT8_C(178), UINT8_C( 97) },
},
{ { UINT8_C(126), UINT8_C(133), UINT8_C(121), UINT8_C( 62), UINT8_C(164), UINT8_C( 32), UINT8_C(194), UINT8_C(193),
UINT8_C( 79), UINT8_C( 90), UINT8_C(204), UINT8_C( 21), UINT8_C(238), UINT8_C(210), UINT8_C( 9), UINT8_C(203) },
},
{ { UINT8_C(244), UINT8_C( 19), UINT8_C(220), UINT8_C( 20), UINT8_C(167), UINT8_C(240), UINT8_C(181), UINT8_C(239),
UINT8_C(199), UINT8_C( 94), UINT8_C(182), UINT8_C(126), UINT8_C(124), UINT8_C(104), UINT8_C(223), UINT8_C(250) },
},
{ { UINT8_C(237), UINT8_C( 89), UINT8_C( 56), UINT8_C(145), UINT8_C(121), UINT8_C(250), UINT8_C( 83), UINT8_C(200),
UINT8_C( 84), UINT8_C( 31), UINT8_C(222), UINT8_C( 66), UINT8_C(241), UINT8_C(231), UINT8_C( 14), UINT8_C(229) },
},
{ { UINT8_C(250), UINT8_C(234), UINT8_C(249), UINT8_C(162), UINT8_C(218), UINT8_C(175), UINT8_C(145), UINT8_C(162),
UINT8_C( 13), UINT8_C( 71), UINT8_C( 32), UINT8_C(137), UINT8_C(176), UINT8_C( 0), UINT8_C(132), UINT8_C(157) },
},
{ { UINT8_C( 89), UINT8_C(188), UINT8_C( 47), UINT8_C(210), UINT8_C(183), UINT8_C(130), UINT8_C(155), UINT8_C( 11),
UINT8_C(161), UINT8_C(121), UINT8_C( 78), UINT8_C(147), UINT8_C( 96), UINT8_C( 92), UINT8_C(120), UINT8_C( 91) },
},
{ { UINT8_C( 70), UINT8_C(114), UINT8_C(253), UINT8_C( 32), UINT8_C( 33), UINT8_C(142), UINT8_C(194), UINT8_C( 46),
UINT8_C(213), UINT8_C(227), UINT8_C(184), UINT8_C(133), UINT8_C(227), UINT8_C( 60), UINT8_C( 35), UINT8_C( 60) },
},
{ { UINT8_C(248), UINT8_C( 82), UINT8_C( 14), UINT8_C(175), UINT8_C(212), UINT8_C(169), UINT8_C(187), UINT8_C(117),
UINT8_C( 34), UINT8_C( 9), UINT8_C( 8), UINT8_C(131), UINT8_C(101), UINT8_C(129), UINT8_C(222), UINT8_C(171) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_u8(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 91), UINT8_C( 51), UINT8_C( 32), UINT8_C(225), UINT8_C(239), UINT8_C( 3), UINT8_C( 10), UINT8_C(134),
UINT8_C( 49), UINT8_C(209), UINT8_C(250), UINT8_C(165), UINT8_C( 94), UINT8_C(196), UINT8_C( 3), UINT8_C(217) },
},
{ { UINT8_C( 35), UINT8_C(151), UINT8_C(185), UINT8_C( 81), UINT8_C(166), UINT8_C( 25), UINT8_C(152), UINT8_C( 24),
UINT8_C( 26), UINT8_C(151), UINT8_C( 31), UINT8_C(115), UINT8_C(134), UINT8_C(199), UINT8_C( 5), UINT8_C(225) },
},
{ { UINT8_C(250), UINT8_C( 37), UINT8_C(194), UINT8_C(234), UINT8_C( 40), UINT8_C(205), UINT8_C(112), UINT8_C( 90),
UINT8_C(158), UINT8_C(106), UINT8_MAX, UINT8_C(252), UINT8_C( 46), UINT8_C( 2), UINT8_C(213), UINT8_C( 82) },
},
{ { UINT8_C(154), UINT8_C(142), UINT8_C(163), UINT8_C( 64), UINT8_C(168), UINT8_C( 59), UINT8_C( 88), UINT8_C(194),
UINT8_C(211), UINT8_C(120), UINT8_C( 53), UINT8_C( 89), UINT8_C( 63), UINT8_C( 58), UINT8_C( 58), UINT8_C( 57) },
},
{ { UINT8_C( 95), UINT8_C(253), UINT8_C( 35), UINT8_C(135), UINT8_C(202), UINT8_C(147), UINT8_C(225), UINT8_C(104),
UINT8_C(253), UINT8_C(224), UINT8_C(100), UINT8_C( 44), UINT8_C(227), UINT8_C( 57), UINT8_C(126), UINT8_C(125) },
},
{ { UINT8_C(200), UINT8_C( 33), UINT8_C(189), UINT8_C(112), UINT8_C( 93), UINT8_C( 22), UINT8_C( 50), UINT8_C( 48),
UINT8_C(142), UINT8_C(103), UINT8_C(137), UINT8_C(205), UINT8_C(161), UINT8_C(195), UINT8_C( 6), UINT8_C( 0) },
},
{ { UINT8_C(192), UINT8_C( 42), UINT8_C(135), UINT8_C(138), UINT8_C(189), UINT8_C(105), UINT8_C(242), UINT8_C(187),
UINT8_C( 73), UINT8_C( 86), UINT8_C(231), UINT8_C( 44), UINT8_C(144), UINT8_C(101), UINT8_C(169), UINT8_C( 88) },
},
{ { UINT8_C(134), UINT8_C(103), UINT8_C(200), UINT8_C(227), UINT8_C(125), UINT8_C(250), UINT8_C( 19), UINT8_C( 11),
UINT8_C( 97), UINT8_C(156), UINT8_C(216), UINT8_C( 2), UINT8_C( 96), UINT8_C(222), UINT8_C( 2), UINT8_C( 32) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_u8(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 46), UINT8_C(245), UINT8_C(233), UINT8_C(253), UINT8_C( 19), UINT8_C(131), UINT8_C( 29), UINT8_C( 10),
UINT8_C(144), UINT8_C(167), UINT8_C(104), UINT8_C(229), UINT8_C(128), UINT8_C(142), UINT8_C( 14), UINT8_C( 54) },
},
{ { UINT8_C(127), UINT8_C(158), UINT8_C(248), UINT8_C(141), UINT8_C( 40), UINT8_C(252), UINT8_C(110), UINT8_C( 25),
UINT8_C( 81), UINT8_C( 49), UINT8_C( 20), UINT8_C(242), UINT8_C(154), UINT8_C(241), UINT8_C(214), UINT8_C(201) },
},
{ { UINT8_C(231), UINT8_C(191), UINT8_C(198), UINT8_C(250), UINT8_C( 66), UINT8_C(227), UINT8_C( 4), UINT8_C(210),
UINT8_C(139), UINT8_C(108), UINT8_C(184), UINT8_C( 11), UINT8_C(250), UINT8_C(198), UINT8_C( 65), UINT8_C(121) },
},
{ { UINT8_C(100), UINT8_C( 57), UINT8_C( 6), UINT8_C(140), UINT8_C( 54), UINT8_C(117), UINT8_C(165), UINT8_C(135),
UINT8_C(166), UINT8_C(185), UINT8_C(121), UINT8_C( 64), UINT8_C(170), UINT8_C( 79), UINT8_C( 9), UINT8_C(145) },
},
{ { UINT8_C( 14), UINT8_C(208), UINT8_C(139), UINT8_C( 80), UINT8_C(179), UINT8_C(144), UINT8_C( 34), UINT8_C( 62),
UINT8_C(252), UINT8_C(218), UINT8_C( 73), UINT8_C(247), UINT8_C(160), UINT8_C(138), UINT8_C(112), UINT8_C( 4) },
},
{ { UINT8_C(196), UINT8_C(119), UINT8_C(144), UINT8_C(250), UINT8_C(236), UINT8_C( 53), UINT8_C(129), UINT8_C(146),
UINT8_C(238), UINT8_C(250), UINT8_C(210), UINT8_C(153), UINT8_C( 73), UINT8_C(220), UINT8_C( 42), UINT8_C( 87) },
},
{ { UINT8_C(172), UINT8_C(182), UINT8_C(167), UINT8_C( 95), UINT8_C( 70), UINT8_C(201), UINT8_C(158), UINT8_C( 66),
UINT8_C(164), UINT8_C(231), UINT8_C( 57), UINT8_C( 68), UINT8_C(114), UINT8_C(170), UINT8_C( 73), UINT8_C( 54) },
},
{ { UINT8_C( 33), UINT8_C(217), UINT8_C( 48), UINT8_C( 13), UINT8_C( 15), UINT8_C(177), UINT8_C(159), UINT8_C(253),
UINT8_C(171), UINT8_C(113), UINT8_C(150), UINT8_C(244), UINT8_C( 77), UINT8_C(193), UINT8_C( 75), UINT8_C(249) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_u8(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 82), UINT8_C(199), UINT8_C(185), UINT8_C(196), UINT8_C(158), UINT8_C( 47), UINT8_C( 61), UINT8_C(140),
UINT8_C(219), UINT8_C(212), UINT8_C(210), UINT8_C(116), UINT8_C(240), UINT8_C(118), UINT8_C(167), UINT8_C( 68) },
},
{ { UINT8_C( 44), UINT8_C(199), UINT8_C( 11), UINT8_C( 1), UINT8_C( 43), UINT8_C( 34), UINT8_C( 2), UINT8_C(208),
UINT8_C( 89), UINT8_C(217), UINT8_C( 35), UINT8_C( 35), UINT8_C(216), UINT8_C(154), UINT8_C(143), UINT8_C( 42) },
},
{ { UINT8_C( 97), UINT8_C( 72), UINT8_C(239), UINT8_MAX, UINT8_C(119), UINT8_C( 44), UINT8_C(140), UINT8_C( 82),
UINT8_C( 1), UINT8_C( 94), UINT8_C(199), UINT8_C(241), UINT8_C(213), UINT8_C(110), UINT8_C( 53), UINT8_C( 1) },
},
{ { UINT8_C( 53), UINT8_C( 64), UINT8_C( 2), UINT8_C( 96), UINT8_C( 99), UINT8_C( 5), UINT8_C( 48), UINT8_C(188),
UINT8_C(222), UINT8_C( 83), UINT8_C(223), UINT8_C(183), UINT8_C(237), UINT8_C(110), UINT8_C(225), UINT8_C( 78) },
},
{ { UINT8_C(182), UINT8_C(208), UINT8_C( 78), UINT8_C( 45), UINT8_C(253), UINT8_C(218), UINT8_C(128), UINT8_C(254),
UINT8_C( 56), UINT8_C( 71), UINT8_C(239), UINT8_C( 13), UINT8_C(181), UINT8_C( 36), UINT8_C( 15), UINT8_C(234) },
},
{ { UINT8_C(101), UINT8_C( 17), UINT8_C( 74), UINT8_C(200), UINT8_C( 22), UINT8_C(122), UINT8_C(132), UINT8_C(245),
UINT8_C(205), UINT8_C( 99), UINT8_C(172), UINT8_C(186), UINT8_C(209), UINT8_C(141), UINT8_C( 8), UINT8_C(135) },
},
{ { UINT8_C( 94), UINT8_C( 86), UINT8_C(180), UINT8_C( 91), UINT8_C( 48), UINT8_C( 52), UINT8_C( 89), UINT8_C(105),
UINT8_C(123), UINT8_C( 72), UINT8_C(118), UINT8_C( 48), UINT8_C(108), UINT8_C(133), UINT8_C( 26), UINT8_C(209) },
},
{ { UINT8_C(151), UINT8_C(100), UINT8_C(153), UINT8_C(173), UINT8_C(222), UINT8_C( 29), UINT8_C(162), UINT8_C(171),
UINT8_C(128), UINT8_C( 78), UINT8_C(101), UINT8_C( 81), UINT8_C(220), UINT8_C(110), UINT8_C(216), UINT8_C( 58) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_u8(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 82), UINT8_C( 69), UINT8_C(228), UINT8_C(116), UINT8_C(114), UINT8_C(137), UINT8_C(229), UINT8_C( 73),
UINT8_C( 23), UINT8_C(171), UINT8_C(101), UINT8_C(203), UINT8_C(170), UINT8_C(220), UINT8_C(186), UINT8_C( 4) },
},
{ { UINT8_C( 57), UINT8_C(134), UINT8_C(119), UINT8_C(221), UINT8_C(153), UINT8_C(228), UINT8_C( 75), UINT8_C( 17),
UINT8_C(120), UINT8_C(139), UINT8_C(153), UINT8_C( 31), UINT8_C( 13), UINT8_C( 56), UINT8_C(176), UINT8_C( 96) },
},
{ { UINT8_C(125), UINT8_C(149), UINT8_C(212), UINT8_C(240), UINT8_C( 30), UINT8_C(186), UINT8_C( 57), UINT8_C( 54),
UINT8_C(101), UINT8_C(158), UINT8_C( 1), UINT8_C( 15), UINT8_C(123), UINT8_C(187), UINT8_C( 19), UINT8_C(180) },
},
{ { UINT8_C( 66), UINT8_C(138), UINT8_C(146), UINT8_C(219), UINT8_C(110), UINT8_C(221), UINT8_C(236), UINT8_C(231),
UINT8_C(105), UINT8_C(133), UINT8_C( 6), UINT8_C(118), UINT8_C(189), UINT8_C(183), UINT8_C(214), UINT8_C( 59) },
},
{ { UINT8_C( 76), UINT8_C(171), UINT8_C( 43), UINT8_C(106), UINT8_C(101), UINT8_C(100), UINT8_C(160), UINT8_C(202),
UINT8_C( 3), UINT8_C(162), UINT8_C(218), UINT8_C(126), UINT8_C( 93), UINT8_C(237), UINT8_C( 50), UINT8_C(159) },
},
{ { UINT8_C(120), UINT8_C(196), UINT8_C(122), UINT8_C(230), UINT8_C(162), UINT8_C(102), UINT8_C(205), UINT8_C( 11),
UINT8_C(235), UINT8_C(212), UINT8_C(129), UINT8_C(169), UINT8_C(139), UINT8_C( 88), UINT8_C(228), UINT8_C(215) },
},
{ { UINT8_C( 3), UINT8_C( 15), UINT8_C( 65), UINT8_C(104), UINT8_C(115), UINT8_C(226), UINT8_C( 50), UINT8_C(118),
UINT8_C(132), UINT8_C( 12), UINT8_C(244), UINT8_C(225), UINT8_C(250), UINT8_C( 39), UINT8_C(129), UINT8_C(114) },
},
{ { UINT8_C(235), UINT8_C(251), UINT8_C( 88), UINT8_C(141), UINT8_C( 98), UINT8_C( 38), UINT8_C(152), UINT8_C( 77),
UINT8_C(250), UINT8_C( 26), UINT8_C(246), UINT8_C(133), UINT8_C(114), UINT8_C(218), UINT8_C( 92), UINT8_C(117) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_u8(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C(176), UINT8_C( 47), UINT8_C( 11), UINT8_C( 58), UINT8_C( 97), UINT8_C( 66), UINT8_C(184), UINT8_C( 12),
UINT8_C(238), UINT8_C(198), UINT8_C( 66), UINT8_C(160), UINT8_C( 22), UINT8_C( 35), UINT8_C(163), UINT8_C(194) },
},
{ { UINT8_C( 84), UINT8_C(146), UINT8_C( 13), UINT8_C( 43), UINT8_C( 21), UINT8_C( 80), UINT8_C(164), UINT8_C( 8),
UINT8_C(252), UINT8_C( 83), UINT8_C( 68), UINT8_C(251), UINT8_C( 2), UINT8_C(231), UINT8_C( 63), UINT8_C(178) },
},
{ { UINT8_C( 22), UINT8_C( 74), UINT8_C(237), UINT8_C(119), UINT8_C(141), UINT8_C(165), UINT8_C(131), UINT8_C(123),
UINT8_C(107), UINT8_C(197), UINT8_C( 27), UINT8_C(130), UINT8_C(232), UINT8_C(190), UINT8_C( 68), UINT8_C( 60) },
},
{ { UINT8_C( 80), UINT8_C( 82), UINT8_C(104), UINT8_C(102), UINT8_C(162), UINT8_C( 12), UINT8_C(110), UINT8_C(158),
UINT8_C( 95), UINT8_C(178), UINT8_C(154), UINT8_C( 97), UINT8_C(153), UINT8_C(217), UINT8_C( 19), UINT8_C(175) },
},
{ { UINT8_C( 35), UINT8_C( 0), UINT8_C( 38), UINT8_C(176), UINT8_C(165), UINT8_C(170), UINT8_C( 44), UINT8_C( 17),
UINT8_C(111), UINT8_C( 71), UINT8_C(147), UINT8_C( 88), UINT8_C( 6), UINT8_C(215), UINT8_C(148), UINT8_C( 86) },
},
{ { UINT8_C( 41), UINT8_C(252), UINT8_C(188), UINT8_C(203), UINT8_C( 8), UINT8_C( 43), UINT8_C(106), UINT8_C(103),
UINT8_C(221), UINT8_C( 4), UINT8_C(200), UINT8_C(119), UINT8_C(221), UINT8_C(220), UINT8_C( 38), UINT8_C( 0) },
},
{ { UINT8_C(220), UINT8_C( 77), UINT8_C(177), UINT8_C(130), UINT8_C(247), UINT8_C(221), UINT8_C(147), UINT8_C(102),
UINT8_C( 36), UINT8_C( 38), UINT8_C(190), UINT8_C( 42), UINT8_C(253), UINT8_C( 83), UINT8_C(129), UINT8_C( 39) },
},
{ { UINT8_C( 79), UINT8_C( 61), UINT8_C(242), UINT8_C( 88), UINT8_C(104), UINT8_C( 92), UINT8_C(191), UINT8_C( 70),
UINT8_C( 96), UINT8_C(136), UINT8_C(189), UINT8_C( 61), UINT8_C(100), UINT8_C(227), UINT8_C( 62), UINT8_C( 64) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_u8(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(33507), UINT16_C(59494), UINT16_C(30007), UINT16_C(35832) },
},
{ { UINT16_C(46775), UINT16_C(12032), UINT16_C( 8902), UINT16_C( 8337) },
},
{ { UINT16_C(43537), UINT16_C(37876), UINT16_C(10452), UINT16_C(56119) },
},
{ { UINT16_C( 4464), UINT16_C(52152), UINT16_C( 3403), UINT16_C(11777) },
},
{ { UINT16_C(26511), UINT16_C(50966), UINT16_C( 3804), UINT16_C(37714) },
},
{ { UINT16_C(21189), UINT16_C(35779), UINT16_C(21621), UINT16_C(34475) },
},
{ { UINT16_C(41215), UINT16_C(54041), UINT16_C(20936), UINT16_C(14511) },
},
{ { UINT16_C(26466), UINT16_C(44291), UINT16_C( 1140), UINT16_C( 987) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_u16(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C( 9483), UINT16_C(16427), UINT16_C(61280), UINT16_C(61320) },
},
{ { UINT16_C(61708), UINT16_C(37798), UINT16_C(33678), UINT16_C(42947) },
},
{ { UINT16_C( 8615), UINT16_C(53267), UINT16_C(40577), UINT16_C(13982) },
},
{ { UINT16_C( 7345), UINT16_C(32884), UINT16_C(39065), UINT16_C(42079) },
},
{ { UINT16_C(35518), UINT16_C( 7908), UINT16_C(27769), UINT16_C(34062) },
},
{ { UINT16_C(46173), UINT16_C(60185), UINT16_C(56375), UINT16_C(56979) },
},
{ { UINT16_C(42749), UINT16_C(32430), UINT16_C(19524), UINT16_C(62900) },
},
{ { UINT16_C(10601), UINT16_C( 629), UINT16_C(54465), UINT16_C(32678) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_u16(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(37850), UINT16_C(12094), UINT16_C(28613), UINT16_C(54167) },
},
{ { UINT16_C(14611), UINT16_C(56465), UINT16_C(40885), UINT16_C(23652) },
},
{ { UINT16_C(18906), UINT16_C( 5146), UINT16_C(32725), UINT16_C(39195) },
},
{ { UINT16_C( 7126), UINT16_C(50291), UINT16_C(33501), UINT16_C(47348) },
},
{ { UINT16_C(12821), UINT16_C(56039), UINT16_C(32417), UINT16_C(46510) },
},
{ { UINT16_C(16312), UINT16_C(28049), UINT16_C(63198), UINT16_C(47305) },
},
{ { UINT16_C(58175), UINT16_C( 5324), UINT16_C(59491), UINT16_C(14765) },
},
{ { UINT16_C( 8195), UINT16_C(57853), UINT16_C(62114), UINT16_C(47257) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_u16(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(56181), UINT16_C(42985), UINT16_C(47798), UINT16_C( 3233) },
},
{ { UINT16_C(58242), UINT16_C(62873), UINT16_C(49449), UINT16_C(33758) },
},
{ { UINT16_C(50296), UINT16_C(42295), UINT16_C(65104), UINT16_C(15723) },
},
{ { UINT16_C(19339), UINT16_C(59497), UINT16_C(22037), UINT16_C(35422) },
},
{ { UINT16_C(18225), UINT16_C(59441), UINT16_C(53761), UINT16_C(33780) },
},
{ { UINT16_C(36277), UINT16_C(57208), UINT16_C(22094), UINT16_C(50786) },
},
{ { UINT16_C(39195), UINT16_C(27499), UINT16_C(54936), UINT16_C( 9129) },
},
{ { UINT16_C( 4642), UINT16_C(14091), UINT16_C(26984), UINT16_C(39617) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_u16(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(24639), UINT16_C(32629), UINT16_C(14135), UINT16_C(61730) },
},
{ { UINT16_C(40550), UINT16_C(48618), UINT16_C(12348), UINT16_C(20638) },
},
{ { UINT16_C(51024), UINT16_C(16956), UINT16_C(15191), UINT16_C(39519) },
},
{ { UINT16_C(13932), UINT16_C(62692), UINT16_C(19741), UINT16_C(23705) },
},
{ { UINT16_C( 3757), UINT16_C(58843), UINT16_C(65093), UINT16_C(44246) },
},
{ { UINT16_C(49308), UINT16_C(55401), UINT16_C( 2032), UINT16_C(16424) },
},
{ { UINT16_C(25807), UINT16_C( 9858), UINT16_C(58015), UINT16_C( 3008) },
},
{ { UINT16_C(42008), UINT16_C(13568), UINT16_C(39410), UINT16_C(40850) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_u16(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C( 5357), UINT16_C(26804), UINT16_C( 1844), UINT16_C(34757) },
},
{ { UINT16_C(13646), UINT16_C(39978), UINT16_C(48856), UINT16_C(33659) },
},
{ { UINT16_C(30572), UINT16_C( 5381), UINT16_C(23799), UINT16_C(32271) },
},
{ { UINT16_C(12043), UINT16_C(62789), UINT16_C(38605), UINT16_C(47698) },
},
{ { UINT16_C( 1706), UINT16_C(56866), UINT16_C(59405), UINT16_C(23398) },
},
{ { UINT16_C(36893), UINT16_C(62967), UINT16_C(29262), UINT16_C(47737) },
},
{ { UINT16_C(32489), UINT16_C(57551), UINT16_C(57307), UINT16_C(58975) },
},
{ { UINT16_C(41998), UINT16_C(56283), UINT16_C(11579), UINT16_C(58774) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_u16(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(22055), UINT16_C(19585), UINT16_C(41250), UINT16_C( 5379) },
},
{ { UINT16_C(46099), UINT16_C(50569), UINT16_C(55295), UINT16_C(25373) },
},
{ { UINT16_C(12707), UINT16_C(64309), UINT16_C(48160), UINT16_C(47304) },
},
{ { UINT16_C( 8583), UINT16_C(32183), UINT16_C(59924), UINT16_C(15474) },
},
{ { UINT16_C(62272), UINT16_C(25224), UINT16_C(35988), UINT16_C(43127) },
},
{ { UINT16_C( 64), UINT16_C(16493), UINT16_C(35799), UINT16_C(31395) },
},
{ { UINT16_C(55484), UINT16_C(56437), UINT16_C(16020), UINT16_C( 7316) },
},
{ { UINT16_C(19295), UINT16_C(29593), UINT16_C( 3125), UINT16_C(30383) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_u16(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(26673), UINT16_C(47249), UINT16_C(35372), UINT16_C(15460) },
},
{ { UINT16_C(57841), UINT16_C(41900), UINT16_C(63910), UINT16_C(58747) },
},
{ { UINT16_C( 6975), UINT16_C(23152), UINT16_C(12482), UINT16_C(40118) },
},
{ { UINT16_C(35860), UINT16_C(44337), UINT16_C(45683), UINT16_C(42280) },
},
{ { UINT16_C(47387), UINT16_C(18269), UINT16_C(49731), UINT16_C(13443) },
},
{ { UINT16_C(12195), UINT16_C(18904), UINT16_C(21289), UINT16_C(26670) },
},
{ { UINT16_C(40558), UINT16_C(12738), UINT16_C(30926), UINT16_C(58061) },
},
{ { UINT16_C(65028), UINT16_C(30863), UINT16_C(47025), UINT16_C(52253) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_u16(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(26293), UINT16_C( 7173), UINT16_C(54818), UINT16_C(60544) },
},
{ { UINT16_C(24048), UINT16_C(55271), UINT16_C(28786), UINT16_C(63191) },
},
{ { UINT16_C(50441), UINT16_C(40165), UINT16_C(56905), UINT16_C( 1621) },
},
{ { UINT16_C(60501), UINT16_C(36105), UINT16_C(15052), UINT16_C(33289) },
},
{ { UINT16_C( 3744), UINT16_C(50078), UINT16_C( 7908), UINT16_C(54703) },
},
{ { UINT16_C(38523), UINT16_C(61100), UINT16_C(33542), UINT16_C( 4068) },
},
{ { UINT16_C(51528), UINT16_C(37292), UINT16_C( 424), UINT16_C(64920) },
},
{ { UINT16_C(41454), UINT16_C(47754), UINT16_C(38108), UINT16_C(31804) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_u16(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(14787), UINT16_C(26040), UINT16_C(47560), UINT16_C(54334), UINT16_C(46659), UINT16_C(43287), UINT16_C(28461), UINT16_C(11270) },
},
{ { UINT16_C(40851), UINT16_C( 3614), UINT16_C(37884), UINT16_C(13423), UINT16_C(40879), UINT16_C(26781), UINT16_C(54165), UINT16_C(22680) },
},
{ { UINT16_C(20748), UINT16_C(54461), UINT16_C(64522), UINT16_C(19880), UINT16_C(49074), UINT16_C(57334), UINT16_C(64814), UINT16_C(49419) },
},
{ { UINT16_C(10652), UINT16_C(39375), UINT16_C(16060), UINT16_C(27853), UINT16_C(27614), UINT16_C(29652), UINT16_C(27710), UINT16_C(19147) },
},
{ { UINT16_C(35261), UINT16_C(50974), UINT16_C(50821), UINT16_C(14100), UINT16_C( 2949), UINT16_C(45846), UINT16_C( 8456), UINT16_C(42100) },
},
{ { UINT16_C(17226), UINT16_C( 1597), UINT16_C( 2945), UINT16_C(24434), UINT16_C(18038), UINT16_C(46290), UINT16_C(40627), UINT16_C(28926) },
},
{ { UINT16_C( 7207), UINT16_C(44088), UINT16_C(19682), UINT16_C(26595), UINT16_C(63831), UINT16_C(24346), UINT16_C(36378), UINT16_C(25604) },
},
{ { UINT16_C(16849), UINT16_C(21098), UINT16_C(56652), UINT16_C(49842), UINT16_C(33827), UINT16_C(54902), UINT16_C(29730), UINT16_C(18759) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_u16(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(27485), UINT16_C(34613), UINT16_C( 7236), UINT16_C(17212), UINT16_C(26790), UINT16_C(14469), UINT16_C(59015), UINT16_C(59527) },
},
{ { UINT16_C( 6749), UINT16_C(54543), UINT16_C(64291), UINT16_C(27971), UINT16_C(35201), UINT16_C(33391), UINT16_C(41499), UINT16_C(30814) },
},
{ { UINT16_C(37645), UINT16_C(20736), UINT16_C(15535), UINT16_C(22164), UINT16_C( 6820), UINT16_C(11150), UINT16_C( 5632), UINT16_C(23828) },
},
{ { UINT16_C( 9008), UINT16_C(21298), UINT16_C(29982), UINT16_C(41153), UINT16_C(12542), UINT16_C( 6434), UINT16_C(33234), UINT16_C(57234) },
},
{ { UINT16_C(37396), UINT16_C(50224), UINT16_C(50638), UINT16_C(29466), UINT16_C(43231), UINT16_C(57246), UINT16_C(45758), UINT16_C(61244) },
},
{ { UINT16_C(28373), UINT16_C(62530), UINT16_C( 996), UINT16_C(58004), UINT16_C(46643), UINT16_C( 1532), UINT16_C(36407), UINT16_C(19684) },
},
{ { UINT16_C( 5408), UINT16_C(60944), UINT16_C(10970), UINT16_C(47457), UINT16_C( 210), UINT16_C(37272), UINT16_C(54450), UINT16_C(34944) },
},
{ { UINT16_C(49730), UINT16_C( 9852), UINT16_C( 4294), UINT16_C(63753), UINT16_C( 1478), UINT16_C(65279), UINT16_C(58259), UINT16_C(45898) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_u16(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(30244), UINT16_C(34430), UINT16_C(25246), UINT16_C(16862), UINT16_C(65193), UINT16_C( 4868), UINT16_C(60789), UINT16_C(43837) },
},
{ { UINT16_C(50205), UINT16_C(31533), UINT16_C(19434), UINT16_C(59923), UINT16_C( 3352), UINT16_C(55771), UINT16_C( 534), UINT16_C(15315) },
},
{ { UINT16_C(21112), UINT16_C( 6081), UINT16_C(40884), UINT16_C(23896), UINT16_C(23709), UINT16_C( 4976), UINT16_C(44362), UINT16_C(26558) },
},
{ { UINT16_C(60273), UINT16_C(23522), UINT16_C(63030), UINT16_C(20037), UINT16_C( 8195), UINT16_C( 6695), UINT16_C(64290), UINT16_C(39765) },
},
{ { UINT16_C( 5709), UINT16_C( 434), UINT16_C( 2741), UINT16_C(21342), UINT16_C(52838), UINT16_C(45158), UINT16_C( 9339), UINT16_C(60440) },
},
{ { UINT16_C(64015), UINT16_C(17991), UINT16_C(36336), UINT16_C(62612), UINT16_C(48301), UINT16_C(53262), UINT16_C(25527), UINT16_C( 1131) },
},
{ { UINT16_C( 7545), UINT16_C(11781), UINT16_C(25383), UINT16_C(36225), UINT16_C(59185), UINT16_C(44094), UINT16_C(22027), UINT16_C( 7064) },
},
{ { UINT16_C(57168), UINT16_C(16737), UINT16_C(62828), UINT16_C( 6709), UINT16_C(17329), UINT16_C(26858), UINT16_C(21926), UINT16_C( 8044) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_u16(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(37371), UINT16_C( 426), UINT16_C( 2791), UINT16_C(64987), UINT16_C(18284), UINT16_C(18051), UINT16_C( 6331), UINT16_C(40537) },
},
{ { UINT16_C( 8541), UINT16_C(40133), UINT16_C(10784), UINT16_C(43297), UINT16_C(16042), UINT16_C( 6646), UINT16_C(19594), UINT16_C(34381) },
},
{ { UINT16_C(63454), UINT16_C(50567), UINT16_C(25090), UINT16_C(28355), UINT16_C(18089), UINT16_C(25780), UINT16_C( 3422), UINT16_C(48130) },
},
{ { UINT16_C(50991), UINT16_C(20312), UINT16_C(31474), UINT16_C(40184), UINT16_C(61368), UINT16_C(17078), UINT16_C( 827), UINT16_C( 6600) },
},
{ { UINT16_C(20474), UINT16_C(64735), UINT16_C(41649), UINT16_C(23146), UINT16_C( 7912), UINT16_C(18110), UINT16_C(49452), UINT16_C(23298) },
},
{ { UINT16_C(23432), UINT16_C(31402), UINT16_C(41685), UINT16_C(36119), UINT16_C(52625), UINT16_C(52687), UINT16_C(39120), UINT16_C(51942) },
},
{ { UINT16_C(50663), UINT16_C(39367), UINT16_C(12647), UINT16_C(20467), UINT16_C(45648), UINT16_C(31894), UINT16_C(39027), UINT16_C(64471) },
},
{ { UINT16_C(33267), UINT16_C(51318), UINT16_C(36131), UINT16_C(46421), UINT16_C( 9562), UINT16_C(10882), UINT16_C(26813), UINT16_C(42228) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_u16(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(61872), UINT16_C(58906), UINT16_C(40218), UINT16_C(57729), UINT16_C( 4514), UINT16_C(43884), UINT16_C(60853), UINT16_C(48362) },
},
{ { UINT16_C(27639), UINT16_C(10283), UINT16_C(29782), UINT16_C( 9365), UINT16_C(13242), UINT16_C(29738), UINT16_C( 2313), UINT16_C(47770) },
},
{ { UINT16_C(46330), UINT16_C( 5280), UINT16_C( 8785), UINT16_C(62454), UINT16_C(25139), UINT16_C(59550), UINT16_C(35151), UINT16_C(18084) },
},
{ { UINT16_C(53236), UINT16_C(19054), UINT16_C( 835), UINT16_C(64878), UINT16_C(39222), UINT16_C(16498), UINT16_C( 3234), UINT16_C(40186) },
},
{ { UINT16_C(39616), UINT16_C( 4528), UINT16_C(42684), UINT16_C(61188), UINT16_C(41480), UINT16_C(22487), UINT16_C(31531), UINT16_C( 8350) },
},
{ { UINT16_C( 3146), UINT16_C(36202), UINT16_C(55568), UINT16_C(18059), UINT16_C(64882), UINT16_C( 5254), UINT16_C(32777), UINT16_C(51632) },
},
{ { UINT16_C(24603), UINT16_C(55258), UINT16_C(56839), UINT16_C( 4039), UINT16_C(40576), UINT16_C(44135), UINT16_C( 1306), UINT16_C(25804) },
},
{ { UINT16_C(13841), UINT16_C( 8690), UINT16_C(32015), UINT16_C(33128), UINT16_C(61050), UINT16_C(33685), UINT16_C(17775), UINT16_C(35404) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_u16(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C( 2822), UINT16_C(48884), UINT16_C(29973), UINT16_C( 1714), UINT16_C(13637), UINT16_C(55111), UINT16_C(52574), UINT16_C( 269) },
},
{ { UINT16_C(20351), UINT16_C(21891), UINT16_C(12725), UINT16_C(62731), UINT16_C( 548), UINT16_C(51419), UINT16_C(42962), UINT16_C(55479) },
},
{ { UINT16_C(43954), UINT16_C(51350), UINT16_C(18465), UINT16_C(26318), UINT16_C( 5502), UINT16_C(56381), UINT16_C(19171), UINT16_C(25310) },
},
{ { UINT16_C(24986), UINT16_C(20408), UINT16_C(50066), UINT16_C(46916), UINT16_C( 8389), UINT16_C(38783), UINT16_C(14023), UINT16_C(31087) },
},
{ { UINT16_C( 1505), UINT16_C( 577), UINT16_C( 3918), UINT16_C(52328), UINT16_C(42277), UINT16_C( 2216), UINT16_C(34544), UINT16_C(35434) },
},
{ { UINT16_C( 8936), UINT16_C(31449), UINT16_C( 7909), UINT16_C(43569), UINT16_C(45118), UINT16_C( 1345), UINT16_C(45286), UINT16_C(51326) },
},
{ { UINT16_C(49334), UINT16_C( 1226), UINT16_C(13263), UINT16_C(62672), UINT16_C(30936), UINT16_C(51452), UINT16_C(26623), UINT16_C(59218) },
},
{ { UINT16_C(11401), UINT16_C(28513), UINT16_C(37706), UINT16_C(34841), UINT16_C(23363), UINT16_C(10893), UINT16_C( 2827), UINT16_C(49650) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_u16(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(31179), UINT16_C(62043), UINT16_C(34234), UINT16_C(60575), UINT16_C(14522), UINT16_C(65218), UINT16_C(28205), UINT16_C( 2962) },
},
{ { UINT16_C(26700), UINT16_C( 7147), UINT16_C(59748), UINT16_C( 4323), UINT16_C(15518), UINT16_C(23427), UINT16_C(47621), UINT16_C(53345) },
},
{ { UINT16_C(48179), UINT16_C(60866), UINT16_C(24898), UINT16_C(64729), UINT16_C(40089), UINT16_C(51194), UINT16_C(35850), UINT16_C(22482) },
},
{ { UINT16_C(48884), UINT16_C(22898), UINT16_C(21927), UINT16_C(17769), UINT16_C(60562), UINT16_C(38816), UINT16_C( 423), UINT16_C(55911) },
},
{ { UINT16_C(10686), UINT16_C( 200), UINT16_C(41354), UINT16_C( 9468), UINT16_C(63037), UINT16_C(18667), UINT16_C(48515), UINT16_C(30623) },
},
{ { UINT16_C( 4475), UINT16_C( 8912), UINT16_C(14694), UINT16_C(63591), UINT16_C( 2086), UINT16_C(52623), UINT16_C(62985), UINT16_C(51111) },
},
{ { UINT16_C(28447), UINT16_C(43719), UINT16_C(49937), UINT16_C(20174), UINT16_C(47546), UINT16_C(15766), UINT16_C(13686), UINT16_C(62132) },
},
{ { UINT16_C(34118), UINT16_C(44308), UINT16_C(31934), UINT16_C(58533), UINT16_C(13700), UINT16_C(36273), UINT16_C(22827), UINT16_C(19285) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_u16(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(40287), UINT16_C(10453), UINT16_C( 270), UINT16_C(62770), UINT16_C(21454), UINT16_C(20905), UINT16_C(54272), UINT16_C(28818) },
},
{ { UINT16_C( 1885), UINT16_C(52960), UINT16_C(24818), UINT16_C(27591), UINT16_C(57828), UINT16_C(35098), UINT16_C(11676), UINT16_C(64676) },
},
{ { UINT16_C(31178), UINT16_C(55588), UINT16_C(22138), UINT16_C(18894), UINT16_C(30634), UINT16_C(43674), UINT16_C(11339), UINT16_C(43290) },
},
{ { UINT16_C(64052), UINT16_C( 9847), UINT16_C(15963), UINT16_C(16273), UINT16_C(44063), UINT16_C(48329), UINT16_C(28121), UINT16_C(41912) },
},
{ { UINT16_C(56550), UINT16_C(24956), UINT16_C(18995), UINT16_C(56746), UINT16_C(17602), UINT16_C( 3463), UINT16_C(41329), UINT16_C(42422) },
},
{ { UINT16_C(11931), UINT16_C(63179), UINT16_C(23660), UINT16_C(35894), UINT16_C(65288), UINT16_C(57672), UINT16_C( 108), UINT16_C(21125) },
},
{ { UINT16_C( 476), UINT16_C( 4019), UINT16_C(23884), UINT16_C( 3820), UINT16_C(29602), UINT16_C( 4891), UINT16_C(53780), UINT16_C(45240) },
},
{ { UINT16_C(33536), UINT16_C(27814), UINT16_C(56543), UINT16_C(59640), UINT16_C(16603), UINT16_C(18377), UINT16_C(20032), UINT16_C( 7578) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_u16(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(37256), UINT16_C( 7287), UINT16_C(13665), UINT16_C(19885), UINT16_C(39602), UINT16_C(36139), UINT16_C(23663), UINT16_C(43651) },
},
{ { UINT16_C(43283), UINT16_C(33404), UINT16_C(53825), UINT16_C(39703), UINT16_C(31803), UINT16_C( 7036), UINT16_C(31574), UINT16_C(56904) },
},
{ { UINT16_C(49164), UINT16_C(28154), UINT16_C(43253), UINT16_C(43194), UINT16_C(58690), UINT16_C(45365), UINT16_C(47426), UINT16_C(21851) },
},
{ { UINT16_C(55394), UINT16_C(41943), UINT16_C(61098), UINT16_C(58687), UINT16_C(47979), UINT16_C(49408), UINT16_C(18742), UINT16_C(17056) },
},
{ { UINT16_C(39433), UINT16_C(65199), UINT16_C(26946), UINT16_C(33958), UINT16_C(56399), UINT16_C(37174), UINT16_C(37269), UINT16_C(63462) },
},
{ { UINT16_C(48489), UINT16_C( 5019), UINT16_C(55980), UINT16_C( 6137), UINT16_C(63893), UINT16_C(52440), UINT16_C(30786), UINT16_C(19214) },
},
{ { UINT16_C(48659), UINT16_C(21834), UINT16_C(61479), UINT16_C(30426), UINT16_C( 4300), UINT16_C(24839), UINT16_C(60833), UINT16_C( 2905) },
},
{ { UINT16_C(62635), UINT16_C(22302), UINT16_C( 6094), UINT16_C(25454), UINT16_C(17937), UINT16_C(21295), UINT16_C(16063), UINT16_C(53919) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_u16(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C( 7282), UINT16_C(35752), UINT16_C(40216), UINT16_C(10637) }},
{ { UINT16_C(31845), UINT16_C(38227), UINT16_C( 6865), UINT16_C( 6420) }},
{ { UINT16_C(40987), UINT16_C(34469), UINT16_C(18021), UINT16_C(31566) }},
{ { UINT16_C(39961), UINT16_C(37015), UINT16_C(56150), UINT16_C(51347) }},
{ { UINT16_C(15351), UINT16_C( 3923), UINT16_C(57560), UINT16_C(15929) }},
{ { UINT16_C(35932), UINT16_C(11731), UINT16_C(59302), UINT16_C(49478) }},
{ { UINT16_C(60295), UINT16_C(60743), UINT16_C(38449), UINT16_C(19304) }},
{ { UINT16_C(65330), UINT16_C(35035), UINT16_C(28379), UINT16_C(53840) }},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_u16(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C( 455684687), UINT32_C(1949574478) },
},
{ { UINT32_C( 629409756), UINT32_C(2117591771) },
},
{ { UINT32_C( 273504167), UINT32_C( 926363004) },
},
{ { UINT32_C(3937451016), UINT32_C(3913249434) },
},
{ { UINT32_C(4060440740), UINT32_C(1785084301) },
},
{ { UINT32_C( 479193921), UINT32_C(1956300749) },
},
{ { UINT32_C(2592401182), UINT32_C( 500284181) },
},
{ { UINT32_C( 285704823), UINT32_C(2583381748) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_u32(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(3803574018), UINT32_C( 183881149) },
},
{ { UINT32_C( 881972491), UINT32_C(2577490452) },
},
{ { UINT32_C( 231932657), UINT32_C(1707981836) },
},
{ { UINT32_C(2565105070), UINT32_C(1101186879) },
},
{ { UINT32_C(1931696054), UINT32_C( 813504548) },
},
{ { UINT32_C( 40111854), UINT32_C(1654326640) },
},
{ { UINT32_C( 342846983), UINT32_C(3631824170) },
},
{ { UINT32_C(3782303138), UINT32_C(3676508964) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_u32(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(1082916978), UINT32_C(3918184476) },
},
{ { UINT32_C(1406603480), UINT32_C( 187667497) },
},
{ { UINT32_C(2444684576), UINT32_C(2102212792) },
},
{ { UINT32_C(1162164356), UINT32_C( 839518400) },
},
{ { UINT32_C( 611489288), UINT32_C( 789445718) },
},
{ { UINT32_C( 897770764), UINT32_C(2571153785) },
},
{ { UINT32_C(1445656222), UINT32_C(3017045806) },
},
{ { UINT32_C(1878530479), UINT32_C( 715194913) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_u32(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(1188544432), UINT32_C(1237954591) },
},
{ { UINT32_C(2327464733), UINT32_C(2915838870) },
},
{ { UINT32_C( 986850432), UINT32_C(3609662263) },
},
{ { UINT32_C(2346378695), UINT32_C(1891232960) },
},
{ { UINT32_C(3400962219), UINT32_C(1578336065) },
},
{ { UINT32_C(1642646986), UINT32_C(2031006969) },
},
{ { UINT32_C( 263447000), UINT32_C(3152468724) },
},
{ { UINT32_C(2152120767), UINT32_C(1508966317) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_u32(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(4190303205), UINT32_C(3421135521) },
},
{ { UINT32_C(3069286763), UINT32_C(2460414754) },
},
{ { UINT32_C(1055798285), UINT32_C( 328962366) },
},
{ { UINT32_C(3891361501), UINT32_C(2664096697) },
},
{ { UINT32_C(2006420950), UINT32_C(1531150831) },
},
{ { UINT32_C(1024537626), UINT32_C( 886028071) },
},
{ { UINT32_C( 712228332), UINT32_C( 725421646) },
},
{ { UINT32_C(1024667268), UINT32_C(3906788625) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_u32(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(1737799811), UINT32_C(4184346154) },
},
{ { UINT32_C(3557854092), UINT32_C(4004696328) },
},
{ { UINT32_C( 692391293), UINT32_C(3828726549) },
},
{ { UINT32_C(1512595862), UINT32_C( 685172645) },
},
{ { UINT32_C(3381684895), UINT32_C( 96663672) },
},
{ { UINT32_C(2346308227), UINT32_C( 544836515) },
},
{ { UINT32_C(2924134040), UINT32_C( 278036345) },
},
{ { UINT32_C(2238364384), UINT32_C(1085161633) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_u32(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(4009940214), UINT32_C(2454320358) },
},
{ { UINT32_C(2871745685), UINT32_C(2450177441) },
},
{ { UINT32_C(3471242743), UINT32_C(3298534337) },
},
{ { UINT32_C(1355394572), UINT32_C( 983668291) },
},
{ { UINT32_C(1361683306), UINT32_C( 753103511) },
},
{ { UINT32_C(1893207758), UINT32_C(3254969035) },
},
{ { UINT32_C(2576410840), UINT32_C(2556243084) },
},
{ { UINT32_C( 501819098), UINT32_C( 660048572) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_u32(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(2334051580), UINT32_C(4009237040) },
},
{ { UINT32_C(2584288261), UINT32_C(1769017581) },
},
{ { UINT32_C(2631474304), UINT32_C(1500364826) },
},
{ { UINT32_C(2537112437), UINT32_C( 134299660) },
},
{ { UINT32_C(1033117709), UINT32_C(1059818554) },
},
{ { UINT32_C(2514105768), UINT32_C(3321776965) },
},
{ { UINT32_C(2170673255), UINT32_C( 232509336) },
},
{ { UINT32_C( 514069522), UINT32_C(1629922900) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_u32(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C( 870101165), UINT32_C(2209815297) },
},
{ { UINT32_C(2428866423), UINT32_C( 306277594) },
},
{ { UINT32_C( 381273794), UINT32_C( 528924364) },
},
{ { UINT32_C(1140512921), UINT32_C(3548919590) },
},
{ { UINT32_C(3892798695), UINT32_C(4151033472) },
},
{ { UINT32_C( 679948622), UINT32_C(1597687965) },
},
{ { UINT32_C(1517679758), UINT32_C(1266351282) },
},
{ { UINT32_C(4220417236), UINT32_C(2479756972) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_u32(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C( 4779), UINT16_C( 1479), UINT16_C(49141), UINT16_C(57936), UINT16_C(57134), UINT16_C( 3057), UINT16_C(61752), UINT16_C(10708) }},
{ { UINT16_C(33733), UINT16_C(35388), UINT16_C( 7219), UINT16_C(61816), UINT16_C(50702), UINT16_C(56093), UINT16_C(28083), UINT16_C(24275) }},
{ { UINT16_C(39551), UINT16_C(29795), UINT16_C(46169), UINT16_C(34647), UINT16_C(18579), UINT16_C(52114), UINT16_C(26426), UINT16_C(65524) }},
{ { UINT16_C(12522), UINT16_C( 7818), UINT16_C( 588), UINT16_C(23311), UINT16_C(11464), UINT16_C(31542), UINT16_C( 2713), UINT16_C( 6361) }},
{ { UINT16_C(15780), UINT16_C(65165), UINT16_C(58609), UINT16_C(33925), UINT16_C( 6188), UINT16_C(26191), UINT16_C(17535), UINT16_C(26982) }},
{ { UINT16_C(61556), UINT16_C(49543), UINT16_C(38642), UINT16_C(47900), UINT16_C(21186), UINT16_C(23350), UINT16_C( 4188), UINT16_C( 372) }},
{ { UINT16_C( 333), UINT16_C(16127), UINT16_C(34021), UINT16_C( 4546), UINT16_C( 4508), UINT16_C( 7032), UINT16_C(56917), UINT16_C(51845) }},
{ { UINT16_C( 3278), UINT16_C(49291), UINT16_C(42915), UINT16_C(25979), UINT16_C(45817), UINT16_C(22209), UINT16_C(13762), UINT16_C( 3927) }},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_u16(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(3279084377), UINT32_C(2161745592), UINT32_C(3654801364), UINT32_C(3056199879) },
},
{ { UINT32_C(1218747532), UINT32_C( 135127342), UINT32_C(1086738445), UINT32_C(2027280927) },
},
{ { UINT32_C(1832601525), UINT32_C(3119322341), UINT32_C(2995963115), UINT32_C( 946453676) },
},
{ { UINT32_C(2273316184), UINT32_C(4220489454), UINT32_C(4248524254), UINT32_C(3832942639) },
},
{ { UINT32_C(1011986775), UINT32_C(2985705158), UINT32_C(2942601219), UINT32_C(2649279812) },
},
{ { UINT32_C(3374606554), UINT32_C(3586438134), UINT32_C( 936509448), UINT32_C(1746618384) },
},
{ { UINT32_C(3232001274), UINT32_C(2909903530), UINT32_C(1734202659), UINT32_C(2097431970) },
},
{ { UINT32_C(2756061357), UINT32_C(3816360667), UINT32_C( 454707978), UINT32_C(2390963604) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_u32(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C( 798628804), UINT32_C(2308740029), UINT32_C(1010183400), UINT32_C( 499135747) },
},
{ { UINT32_C(3302186879), UINT32_C(1617207352), UINT32_C(1291082784), UINT32_C(3849247008) },
},
{ { UINT32_C(2970880244), UINT32_C(2201727131), UINT32_C(3753865692), UINT32_C( 654147750) },
},
{ { UINT32_C( 401264863), UINT32_C(2423803504), UINT32_C(3420220587), UINT32_C( 967854661) },
},
{ { UINT32_C(4008428627), UINT32_C(1366435444), UINT32_C(1026568599), UINT32_C(2439196081) },
},
{ { UINT32_C(1839746813), UINT32_C(1207771292), UINT32_C(3524516237), UINT32_C(1997325092) },
},
{ { UINT32_C(4234540936), UINT32_C(3025000221), UINT32_C(3136388617), UINT32_C(2840286635) },
},
{ { UINT32_C(1058469027), UINT32_C(2709984276), UINT32_C( 292854509), UINT32_C(3850928221) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_u32(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C( 298228994), UINT32_C( 760894604), UINT32_C(3945189982), UINT32_C(1190286776) },
},
{ { UINT32_C(1621610492), UINT32_C(1517645912), UINT32_C( 933037971), UINT32_C(2965300397) },
},
{ { UINT32_C( 247563394), UINT32_C( 909843416), UINT32_C(2787271149), UINT32_C(3018593463) },
},
{ { UINT32_C(1007916259), UINT32_C(2543224836), UINT32_C(1036989328), UINT32_C(2599259416) },
},
{ { UINT32_C(3936923154), UINT32_C(3072451786), UINT32_C(4233970501), UINT32_C(1001343575) },
},
{ { UINT32_C(3799499742), UINT32_C(3682143563), UINT32_C(1478051904), UINT32_C(3908175574) },
},
{ { UINT32_C(2144508853), UINT32_C(3291935615), UINT32_C(2395051062), UINT32_C(3167318238) },
},
{ { UINT32_C(2141077555), UINT32_C(2371491661), UINT32_C( 921072480), UINT32_C( 790550650) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_u32(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2708620229), UINT32_C( 717266002), UINT32_C(1782875301), UINT32_C(1655354358) },
},
{ { UINT32_C(1944699603), UINT32_C(2523708845), UINT32_C(3280833691), UINT32_C(3291942911) },
},
{ { UINT32_C(2774903122), UINT32_C(3939444037), UINT32_C(2689864618), UINT32_C(2583887814) },
},
{ { UINT32_C(1846406081), UINT32_C(1141144232), UINT32_C( 84381958), UINT32_C(4090052257) },
},
{ { UINT32_C( 764948456), UINT32_C(4263012180), UINT32_C(1100901498), UINT32_C( 752590955) },
},
{ { UINT32_C( 882567307), UINT32_C(1752735586), UINT32_C(3513614128), UINT32_C(2781165501) },
},
{ { UINT32_C(3134414182), UINT32_C(1069149125), UINT32_C(3279968087), UINT32_C(2213501944) },
},
{ { UINT32_C(2797046340), UINT32_C(1494167337), UINT32_C(1814789294), UINT32_C( 420606131) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_u32(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(1237267332), UINT32_C(4212671649), UINT32_C( 854252956), UINT32_C(3669148588) },
},
{ { UINT32_C( 180018859), UINT32_C(1066799467), UINT32_C( 265430687), UINT32_C(3192201018) },
},
{ { UINT32_C(4077323346), UINT32_C(3840811080), UINT32_C(2853624317), UINT32_C(1199884444) },
},
{ { UINT32_C( 307314343), UINT32_C(3998345295), UINT32_C(1224614670), UINT32_C(2483503938) },
},
{ { UINT32_C(2408058439), UINT32_C( 745764398), UINT32_C(3956705871), UINT32_C(4180826706) },
},
{ { UINT32_C(3893068952), UINT32_C(2060868716), UINT32_C(3267548288), UINT32_C(1582811415) },
},
{ { UINT32_C( 116252632), UINT32_C(2771542357), UINT32_C(1032849643), UINT32_C(4214735714) },
},
{ { UINT32_C(3018015303), UINT32_C( 523090335), UINT32_C(2783047566), UINT32_C(2432972985) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_u32(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C( 904851114), UINT32_C( 357340730), UINT32_C(4279416342), UINT32_C(2212412929) },
},
{ { UINT32_C( 954152116), UINT32_C(3376279475), UINT32_C( 588881638), UINT32_C(2462761447) },
},
{ { UINT32_C(3922180527), UINT32_C(1711149903), UINT32_C(3412332746), UINT32_C(2202944206) },
},
{ { UINT32_C( 716909943), UINT32_C( 49543452), UINT32_C(2116357527), UINT32_C(2098262222) },
},
{ { UINT32_C(4167554985), UINT32_C(3042797035), UINT32_C(1149288822), UINT32_C(2076691972) },
},
{ { UINT32_C( 413500411), UINT32_C( 320510332), UINT32_C(1955676326), UINT32_C(3656491568) },
},
{ { UINT32_C(1691441273), UINT32_C( 874065598), UINT32_C(4084767215), UINT32_C(1668169831) },
},
{ { UINT32_C(1065030851), UINT32_C(1397921197), UINT32_C( 96986069), UINT32_C(4292786309) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_u32(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(1105538222), UINT32_C(3755743071), UINT32_C(1126146626), UINT32_C(2100132933) },
},
{ { UINT32_C(2827012237), UINT32_C(1563107933), UINT32_C(1378456288), UINT32_C( 200370268) },
},
{ { UINT32_C(4081899156), UINT32_C( 802367725), UINT32_C( 275968715), UINT32_C(4237139823) },
},
{ { UINT32_C(3315863144), UINT32_C( 270716720), UINT32_C(3194178401), UINT32_C(1204376755) },
},
{ { UINT32_C( 406525227), UINT32_C( 155717182), UINT32_C(1863956992), UINT32_C(3261834842) },
},
{ { UINT32_C(3850833844), UINT32_C(1089841886), UINT32_C(2852018421), UINT32_C(3639658413) },
},
{ { UINT32_C( 451947484), UINT32_C( 975386681), UINT32_C(1302936819), UINT32_C(2534348259) },
},
{ { UINT32_C( 58496548), UINT32_C( 910389824), UINT32_C(2011120074), UINT32_C(3830435592) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_u32(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2012347191), UINT32_C( 228853529), UINT32_C(3184606882), UINT32_C(2192724089) },
},
{ { UINT32_C(3249853973), UINT32_C( 441778337), UINT32_C(2784320210), UINT32_C(1495580194) },
},
{ { UINT32_C(3536852409), UINT32_C(3202315292), UINT32_C( 729526706), UINT32_C( 397225473) },
},
{ { UINT32_C(2782421252), UINT32_C( 884944482), UINT32_C(2866394504), UINT32_C( 738524531) },
},
{ { UINT32_C( 805229586), UINT32_C(4226670153), UINT32_C(2418502031), UINT32_C(2611467415) },
},
{ { UINT32_C(2554429494), UINT32_C( 919339182), UINT32_C( 685811381), UINT32_C(3059016867) },
},
{ { UINT32_C( 48583609), UINT32_C(3237859889), UINT32_C(3528467515), UINT32_C( 795801849) },
},
{ { UINT32_C( 650620792), UINT32_C(1700565935), UINT32_C(3717020729), UINT32_C(3667124769) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_u32(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2570512756), UINT32_C(3830718427), UINT32_C(3229057798), UINT32_C(1611638719) },
},
{ { UINT32_C(3729645958), UINT32_C(1980229974), UINT32_C(3183866417), UINT32_C(4227508103) },
},
{ { UINT32_C(1804873872), UINT32_C(1448142928), UINT32_C( 722913131), UINT32_C(4102760046) },
},
{ { UINT32_C(1574164487), UINT32_C(4074035905), UINT32_C(1420794317), UINT32_C(3494881600) },
},
{ { UINT32_C( 691790809), UINT32_C( 931105739), UINT32_C(3227686482), UINT32_C(3283479996) },
},
{ { UINT32_C(2250279109), UINT32_C( 796456034), UINT32_C(3447924621), UINT32_C(2845692624) },
},
{ { UINT32_C(2178144693), UINT32_C(3082310244), UINT32_C(2759269096), UINT32_C(3429313543) },
},
{ { UINT32_C( 391284916), UINT32_C( 172411516), UINT32_C(3252144881), UINT32_C(1382708636) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_u32(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 8779430749390950521) },
},
{ { UINT64_C( 5787192216487944357) },
},
{ { UINT64_C( 1212378576244495394) },
},
{ { UINT64_C(11587186962892113876) },
},
{ { UINT64_C(15419974588312544197) },
},
{ { UINT64_C( 584303456178448674) },
},
{ { UINT64_C( 9413963231737312176) },
},
{ { UINT64_C(10928834220922494436) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_u64(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C(16607055731308338601) },
},
{ { UINT64_C( 50860304274552481) },
},
{ { UINT64_C( 9862794963658077786) },
},
{ { UINT64_C(12392464720683648170) },
},
{ { UINT64_C( 8689486400691157374) },
},
{ { UINT64_C( 1541513907969526327) },
},
{ { UINT64_C( 1716032456096988804) },
},
{ { UINT64_C( 1658292891718957143) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_u64(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 6944854049650135482) },
},
{ { UINT64_C( 2643384172688610151) },
},
{ { UINT64_C( 9694401264440423225) },
},
{ { UINT64_C(15030064565503554144) },
},
{ { UINT64_C( 7145989937937443285) },
},
{ { UINT64_C(10467610559678064954) },
},
{ { UINT64_C( 2610778010878432799) },
},
{ { UINT64_C(11146599043610132938) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_u64(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 3986353266778962006) },
},
{ { UINT64_C( 7176681434443920232) },
},
{ { UINT64_C( 9525955270665666247) },
},
{ { UINT64_C(13394712871255028064) },
},
{ { UINT64_C( 4535400624906860172) },
},
{ { UINT64_C(10650597281808260014) },
},
{ { UINT64_C( 8458283561633060611) },
},
{ { UINT64_C( 300254048795550477) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_u64(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C(18361485350794555758) },
},
{ { UINT64_C( 4996426384215785705) },
},
{ { UINT64_C(11006711228546924526) },
},
{ { UINT64_C(10812642598701388252) },
},
{ { UINT64_C(13100146462438765355) },
},
{ { UINT64_C( 3308471443271409489) },
},
{ { UINT64_C( 5760322122107306700) },
},
{ { UINT64_C( 3446722680712776215) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_u64(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 5657919274295558869) },
},
{ { UINT64_C( 3965159768771266939) },
},
{ { UINT64_C( 5087912792556967306) },
},
{ { UINT64_C( 256521758694905530) },
},
{ { UINT64_C( 4270793162607544667) },
},
{ { UINT64_C( 3095497553213558000) },
},
{ { UINT64_C( 1981335759696853887) },
},
{ { UINT64_C( 6874422688824928820) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_u64(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 8751185780542309541) },
},
{ { UINT64_C( 1964445804772003291) },
},
{ { UINT64_C(10563097091345027527) },
},
{ { UINT64_C(14780275390623131008) },
},
{ { UINT64_C( 1886520334338935450) },
},
{ { UINT64_C( 322713523396222801) },
},
{ { UINT64_C( 4033920933575331731) },
},
{ { UINT64_C( 3996921152915932802) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_u64(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C(15807686447648144263) },
},
{ { UINT64_C(13586087338080146970) },
},
{ { UINT64_C( 1229395662396261383) },
},
{ { UINT64_C( 3399258566591543321) },
},
{ { UINT64_C( 5224131783317520018) },
},
{ { UINT64_C(12978948260242732014) },
},
{ { UINT64_C( 8100327936849454977) },
},
{ { UINT64_C(17831050982460608157) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_u64(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 9719491169896031772) },
},
{ { UINT64_C(12281698703164900773) },
},
{ { UINT64_C( 6074207952736949374) },
},
{ { UINT64_C(12717252293388281153) },
},
{ { UINT64_C(16494333851909467816) },
},
{ { UINT64_C( 5060794498848419243) },
},
{ { UINT64_C( 2731966319390488994) },
},
{ { UINT64_C(13928960856351069961) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_u64(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 1234218851471792026), UINT64_C( 2677674681134575894) },
},
{ { UINT64_C(14515460789981832380), UINT64_C( 8215729928409844471) },
},
{ { UINT64_C(18432155657786037817), UINT64_C(11578942536244388252) },
},
{ { UINT64_C(16827624080118754063), UINT64_C( 5552162173842289092) },
},
{ { UINT64_C(16230363121171568980), UINT64_C( 8591211574267264694) },
},
{ { UINT64_C( 117863513551373256), UINT64_C( 8002802099049782445) },
},
{ { UINT64_C(11810948322241091523), UINT64_C( 4217752382814901672) },
},
{ { UINT64_C( 2754116619510988282), UINT64_C( 4755228904491897970) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_u64(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C(15792920702104947431), UINT64_C( 4521637955443876984) },
},
{ { UINT64_C(11707834749182451748), UINT64_C(15274192250269424470) },
},
{ { UINT64_C( 661533889626495134), UINT64_C(10242121696137139489) },
},
{ { UINT64_C( 883403401688261107), UINT64_C( 762781161339000790) },
},
{ { UINT64_C( 388589280762374089), UINT64_C( 4528384042351654880) },
},
{ { UINT64_C( 3022232369636497454), UINT64_C(11830534945542760887) },
},
{ { UINT64_C(17731062154276080423), UINT64_C( 3955312798166219611) },
},
{ { UINT64_C(11127563320735482609), UINT64_C( 32628938752481525) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_u64(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 2322636136670922143), UINT64_C( 5598901547067610440) },
},
{ { UINT64_C(13672952454968309605), UINT64_C(14002346704856045130) },
},
{ { UINT64_C( 305025124668412889), UINT64_C( 5032682288508933183) },
},
{ { UINT64_C( 7364161768165345188), UINT64_C( 3313994378587537432) },
},
{ { UINT64_C( 6161068422823701695), UINT64_C(14644779267273947415) },
},
{ { UINT64_C( 1819015547946221244), UINT64_C( 428495374170495345) },
},
{ { UINT64_C(15359808819437779646), UINT64_C( 8749097411148515194) },
},
{ { UINT64_C(10259639877273561927), UINT64_C(14228074120516711721) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_u64(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 4207544517074619564), UINT64_C(17983195729350452668) },
},
{ { UINT64_C(14769595933460037143), UINT64_C( 2242542422084417963) },
},
{ { UINT64_C(17209837690262716200), UINT64_C( 5997420568642393605) },
},
{ { UINT64_C(18206080017375701916), UINT64_C( 110807516602613238) },
},
{ { UINT64_C( 7695087595622811049), UINT64_C( 1303202160156891015) },
},
{ { UINT64_C( 963653872485538323), UINT64_C( 4409023572102015572) },
},
{ { UINT64_C(14093140080987851716), UINT64_C( 4306456267775623227) },
},
{ { UINT64_C(11230286730154127797), UINT64_C( 1421440177691774952) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_u64(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C(15092064537549437282), UINT64_C(10864827923211013704) },
},
{ { UINT64_C( 5535174154542260813), UINT64_C(10136250544302758728) },
},
{ { UINT64_C(11761525752944890796), UINT64_C(16296547469103199523) },
},
{ { UINT64_C(13760420417112478233), UINT64_C( 6568748200859368817) },
},
{ { UINT64_C( 9543969152595921780), UINT64_C(12855874340911424243) },
},
{ { UINT64_C(13043640873963515600), UINT64_C(10293671953509136847) },
},
{ { UINT64_C(10333738717266419332), UINT64_C(10069345882703560306) },
},
{ { UINT64_C( 4316653424248691182), UINT64_C( 3798949770022238223) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_u64(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 2573975289093980101), UINT64_C(12987093788008753529) },
},
{ { UINT64_C(10893662621074775982), UINT64_C( 9071823841222376635) },
},
{ { UINT64_C( 728885576711600406), UINT64_C( 2945388765883141678) },
},
{ { UINT64_C(14412968017312414975), UINT64_C(12400870028522094562) },
},
{ { UINT64_C(10975768628114679222), UINT64_C( 6085387108246304209) },
},
{ { UINT64_C( 8391551434180684704), UINT64_C(13909410374581439942) },
},
{ { UINT64_C( 4759841299535277580), UINT64_C( 1528972579837956751) },
},
{ { UINT64_C( 9759642074302577259), UINT64_C(12992863654388138115) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_u64(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 9602034079943150237), UINT64_C(15071447892160942436) },
},
{ { UINT64_C( 7977050267529101445), UINT64_C(15152987898855457686) },
},
{ { UINT64_C( 3074072634548977156), UINT64_C(14497327183391996253) },
},
{ { UINT64_C( 8357763767761154458), UINT64_C( 5568845286471110208) },
},
{ { UINT64_C(18226659911175066113), UINT64_C( 1720527327522890708) },
},
{ { UINT64_C(16612550484748069179), UINT64_C( 5208029548622103729) },
},
{ { UINT64_C(12002096110392883190), UINT64_C(12770693919310474149) },
},
{ { UINT64_C( 3752436936427036807), UINT64_C( 623876170662637081) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_u64(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 4581232213571832684), UINT64_C( 1476113207327915279) },
},
{ { UINT64_C( 1473717667153826830), UINT64_C( 3779245527683887938) },
},
{ { UINT64_C(15405631003950577694), UINT64_C( 1801577341105853896) },
},
{ { UINT64_C(16199323197070044241), UINT64_C( 1548692872333386625) },
},
{ { UINT64_C( 5306202986939200775), UINT64_C( 8315111807944860737) },
},
{ { UINT64_C(10277774060136857378), UINT64_C( 6083332082561989985) },
},
{ { UINT64_C(13390826188593827083), UINT64_C( 7133537160237746794) },
},
{ { UINT64_C(10125996505298054890), UINT64_C(13808688142819286529) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_u64(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 9421253059950992200), UINT64_C(18190508131208484342) },
},
{ { UINT64_C( 3715591700242667934), UINT64_C( 6523973211315662879) },
},
{ { UINT64_C(17575881375336364714), UINT64_C(13558360581878608743) },
},
{ { UINT64_C( 1206238956071125651), UINT64_C(15728700958152614108) },
},
{ { UINT64_C( 1548441871217433484), UINT64_C(10482243575994123678) },
},
{ { UINT64_C(11163255515110986731), UINT64_C( 1316123692325467193) },
},
{ { UINT64_C( 5633185853516514410), UINT64_C(13955954676396092701) },
},
{ { UINT64_C(15865768773427186133), UINT64_C(17299602177782036092) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_u64(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 640.27), SIMDE_FLOAT32_C( -585.88) },
},
{ { SIMDE_FLOAT32_C( 495.02), SIMDE_FLOAT32_C( -454.59) },
},
{ { SIMDE_FLOAT32_C( -794.50), SIMDE_FLOAT32_C( -757.76) },
},
{ { SIMDE_FLOAT32_C( -987.01), SIMDE_FLOAT32_C( -967.63) },
},
{ { SIMDE_FLOAT32_C( 776.12), SIMDE_FLOAT32_C( -392.25) },
},
{ { SIMDE_FLOAT32_C( 488.06), SIMDE_FLOAT32_C( -965.22) },
},
{ { SIMDE_FLOAT32_C( -118.01), SIMDE_FLOAT32_C( 15.16) },
},
{ { SIMDE_FLOAT32_C( -392.02), SIMDE_FLOAT32_C( 26.20) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_f32(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -587.63), SIMDE_FLOAT32_C( 585.48) },
},
{ { SIMDE_FLOAT32_C( -661.12), SIMDE_FLOAT32_C( -256.06) },
},
{ { SIMDE_FLOAT32_C( 118.35), SIMDE_FLOAT32_C( 805.41) },
},
{ { SIMDE_FLOAT32_C( 505.78), SIMDE_FLOAT32_C( -965.54) },
},
{ { SIMDE_FLOAT32_C( -758.58), SIMDE_FLOAT32_C( 899.30) },
},
{ { SIMDE_FLOAT32_C( -523.55), SIMDE_FLOAT32_C( -97.39) },
},
{ { SIMDE_FLOAT32_C( -615.32), SIMDE_FLOAT32_C( -397.40) },
},
{ { SIMDE_FLOAT32_C( -120.59), SIMDE_FLOAT32_C( 913.00) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_f32(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 965.56), SIMDE_FLOAT32_C( 406.80) },
},
{ { SIMDE_FLOAT32_C( -967.05), SIMDE_FLOAT32_C( -359.28) },
},
{ { SIMDE_FLOAT32_C( -12.20), SIMDE_FLOAT32_C( 830.53) },
},
{ { SIMDE_FLOAT32_C( -617.07), SIMDE_FLOAT32_C( 419.80) },
},
{ { SIMDE_FLOAT32_C( -178.92), SIMDE_FLOAT32_C( 378.69) },
},
{ { SIMDE_FLOAT32_C( 707.86), SIMDE_FLOAT32_C( 990.09) },
},
{ { SIMDE_FLOAT32_C( 19.78), SIMDE_FLOAT32_C( -485.54) },
},
{ { SIMDE_FLOAT32_C( 4.31), SIMDE_FLOAT32_C( 85.98) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_f32(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 795.77), SIMDE_FLOAT32_C( 550.43) },
},
{ { SIMDE_FLOAT32_C( -83.89), SIMDE_FLOAT32_C( 973.87) },
},
{ { SIMDE_FLOAT32_C( 261.17), SIMDE_FLOAT32_C( 160.88) },
},
{ { SIMDE_FLOAT32_C( -625.84), SIMDE_FLOAT32_C( 282.41) },
},
{ { SIMDE_FLOAT32_C( 796.67), SIMDE_FLOAT32_C( -170.27) },
},
{ { SIMDE_FLOAT32_C( 520.80), SIMDE_FLOAT32_C( 944.18) },
},
{ { SIMDE_FLOAT32_C( -80.46), SIMDE_FLOAT32_C( 719.27) },
},
{ { SIMDE_FLOAT32_C( 319.33), SIMDE_FLOAT32_C( -849.20) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_f32(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 516.10), SIMDE_FLOAT32_C( -198.61) },
},
{ { SIMDE_FLOAT32_C( -669.75), SIMDE_FLOAT32_C( -733.34) },
},
{ { SIMDE_FLOAT32_C( -1.26), SIMDE_FLOAT32_C( -21.15) },
},
{ { SIMDE_FLOAT32_C( 991.35), SIMDE_FLOAT32_C( -65.88) },
},
{ { SIMDE_FLOAT32_C( 207.04), SIMDE_FLOAT32_C( -249.79) },
},
{ { SIMDE_FLOAT32_C( -595.20), SIMDE_FLOAT32_C( 987.70) },
},
{ { SIMDE_FLOAT32_C( -316.55), SIMDE_FLOAT32_C( 458.49) },
},
{ { SIMDE_FLOAT32_C( 515.32), SIMDE_FLOAT32_C( -268.29) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_f32(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -703.61), SIMDE_FLOAT32_C( -199.03) },
},
{ { SIMDE_FLOAT32_C( -275.51), SIMDE_FLOAT32_C( -704.61) },
},
{ { SIMDE_FLOAT32_C( 166.82), SIMDE_FLOAT32_C( 78.78) },
},
{ { SIMDE_FLOAT32_C( 393.16), SIMDE_FLOAT32_C( 135.85) },
},
{ { SIMDE_FLOAT32_C( -375.89), SIMDE_FLOAT32_C( -388.41) },
},
{ { SIMDE_FLOAT32_C( 975.54), SIMDE_FLOAT32_C( 66.77) },
},
{ { SIMDE_FLOAT32_C( -130.34), SIMDE_FLOAT32_C( -425.75) },
},
{ { SIMDE_FLOAT32_C( 31.57), SIMDE_FLOAT32_C( 530.63) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_f32(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 679.90), SIMDE_FLOAT32_C( 888.01) },
},
{ { SIMDE_FLOAT32_C( 262.65), SIMDE_FLOAT32_C( 704.41) },
},
{ { SIMDE_FLOAT32_C( -705.92), SIMDE_FLOAT32_C( -576.78) },
},
{ { SIMDE_FLOAT32_C( 514.37), SIMDE_FLOAT32_C( -767.53) },
},
{ { SIMDE_FLOAT32_C( 476.11), SIMDE_FLOAT32_C( -765.14) },
},
{ { SIMDE_FLOAT32_C( 623.02), SIMDE_FLOAT32_C( -915.78) },
},
{ { SIMDE_FLOAT32_C( -765.19), SIMDE_FLOAT32_C( -713.01) },
},
{ { SIMDE_FLOAT32_C( 118.88), SIMDE_FLOAT32_C( 271.57) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_f32(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{{ SIMDE_FLOAT16_VALUE( -937.50), SIMDE_FLOAT16_VALUE( 311.75), SIMDE_FLOAT16_VALUE( -23.30), SIMDE_FLOAT16_VALUE( 600.50) }},
{{ SIMDE_FLOAT16_VALUE( 438.25), SIMDE_FLOAT16_VALUE( -31.77), SIMDE_FLOAT16_VALUE( -916.50), SIMDE_FLOAT16_VALUE( 172.62) }},
{{ SIMDE_FLOAT16_VALUE( -668.50), SIMDE_FLOAT16_VALUE( 294.75), SIMDE_FLOAT16_VALUE( -77.69), SIMDE_FLOAT16_VALUE( -135.62) }},
{{ SIMDE_FLOAT16_VALUE( -130.88), SIMDE_FLOAT16_VALUE( 569.00), SIMDE_FLOAT16_VALUE( -618.50), SIMDE_FLOAT16_VALUE( -238.50) }},
{{ SIMDE_FLOAT16_VALUE( -396.00), SIMDE_FLOAT16_VALUE( -605.50), SIMDE_FLOAT16_VALUE( -576.50), SIMDE_FLOAT16_VALUE( 8.46) }},
{{ SIMDE_FLOAT16_VALUE( 902.00), SIMDE_FLOAT16_VALUE( 283.50), SIMDE_FLOAT16_VALUE( -336.75), SIMDE_FLOAT16_VALUE( 741.00) }},
{{ SIMDE_FLOAT16_VALUE( -499.00), SIMDE_FLOAT16_VALUE( 515.00), SIMDE_FLOAT16_VALUE( -923.50), SIMDE_FLOAT16_VALUE( 880.00) }},
{{ SIMDE_FLOAT16_VALUE( 410.75), SIMDE_FLOAT16_VALUE( 970.50), SIMDE_FLOAT16_VALUE( -704.50), SIMDE_FLOAT16_VALUE( 473.25) }}
};
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_private a_ = simde_float16x4_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_f16(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 661.50), SIMDE_FLOAT32_C( -338.84) },
},
{ { SIMDE_FLOAT32_C( 472.10), SIMDE_FLOAT32_C( -850.16) },
},
{ { SIMDE_FLOAT32_C( 915.36), SIMDE_FLOAT32_C( -912.72) },
},
{ { SIMDE_FLOAT32_C( 252.30), SIMDE_FLOAT32_C( 744.88) },
},
{ { SIMDE_FLOAT32_C( 220.69), SIMDE_FLOAT32_C( -108.88) },
},
{ { SIMDE_FLOAT32_C( -892.39), SIMDE_FLOAT32_C( 442.34) },
},
{ { SIMDE_FLOAT32_C( -537.40), SIMDE_FLOAT32_C( -490.27) },
},
{ { SIMDE_FLOAT32_C( -224.54), SIMDE_FLOAT32_C( 427.88) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_f32(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -519.07), SIMDE_FLOAT32_C( -844.22) },
},
{ { SIMDE_FLOAT32_C( -231.95), SIMDE_FLOAT32_C( -916.84) },
},
{ { SIMDE_FLOAT32_C( 514.42), SIMDE_FLOAT32_C( -429.97) },
},
{ { SIMDE_FLOAT32_C( 411.33), SIMDE_FLOAT32_C( -473.13) },
},
{ { SIMDE_FLOAT32_C( 825.45), SIMDE_FLOAT32_C( -559.04) },
},
{ { SIMDE_FLOAT32_C( 33.66), SIMDE_FLOAT32_C( -851.23) },
},
{ { SIMDE_FLOAT32_C( -750.80), SIMDE_FLOAT32_C( 708.79) },
},
{ { SIMDE_FLOAT32_C( 71.84), SIMDE_FLOAT32_C( 585.91) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_f32(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -811.50), SIMDE_FLOAT32_C( 514.96), SIMDE_FLOAT32_C( -136.00), SIMDE_FLOAT32_C( -141.79) },
},
{ { SIMDE_FLOAT32_C( 61.02), SIMDE_FLOAT32_C( 477.62), SIMDE_FLOAT32_C( 148.51), SIMDE_FLOAT32_C( 991.88) },
},
{ { SIMDE_FLOAT32_C( -930.50), SIMDE_FLOAT32_C( 415.23), SIMDE_FLOAT32_C( -261.81), SIMDE_FLOAT32_C( 239.22) },
},
{ { SIMDE_FLOAT32_C( -235.74), SIMDE_FLOAT32_C( -683.57), SIMDE_FLOAT32_C( -77.80), SIMDE_FLOAT32_C( 884.34) },
},
{ { SIMDE_FLOAT32_C( -663.55), SIMDE_FLOAT32_C( 620.01), SIMDE_FLOAT32_C( -701.35), SIMDE_FLOAT32_C( 534.67) },
},
{ { SIMDE_FLOAT32_C( -55.34), SIMDE_FLOAT32_C( 286.47), SIMDE_FLOAT32_C( -242.86), SIMDE_FLOAT32_C( -763.34) },
},
{ { SIMDE_FLOAT32_C( 995.87), SIMDE_FLOAT32_C( 465.38), SIMDE_FLOAT32_C( 128.46), SIMDE_FLOAT32_C( -623.09) },
},
{ { SIMDE_FLOAT32_C( 144.58), SIMDE_FLOAT32_C( 923.36), SIMDE_FLOAT32_C( -420.92), SIMDE_FLOAT32_C( 333.08) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_f32(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -715.28), SIMDE_FLOAT32_C( 33.48), SIMDE_FLOAT32_C( 229.63), SIMDE_FLOAT32_C( -742.42) },
},
{ { SIMDE_FLOAT32_C( 472.64), SIMDE_FLOAT32_C( -446.37), SIMDE_FLOAT32_C( 664.03), SIMDE_FLOAT32_C( 26.76) },
},
{ { SIMDE_FLOAT32_C( -329.58), SIMDE_FLOAT32_C( 330.64), SIMDE_FLOAT32_C( -243.69), SIMDE_FLOAT32_C( -277.14) },
},
{ { SIMDE_FLOAT32_C( 610.24), SIMDE_FLOAT32_C( 639.80), SIMDE_FLOAT32_C( -784.18), SIMDE_FLOAT32_C( -365.62) },
},
{ { SIMDE_FLOAT32_C( 114.54), SIMDE_FLOAT32_C( -652.97), SIMDE_FLOAT32_C( -379.89), SIMDE_FLOAT32_C( -610.92) },
},
{ { SIMDE_FLOAT32_C( 952.14), SIMDE_FLOAT32_C( -538.54), SIMDE_FLOAT32_C( -682.53), SIMDE_FLOAT32_C( 242.56) },
},
{ { SIMDE_FLOAT32_C( -333.51), SIMDE_FLOAT32_C( 450.97), SIMDE_FLOAT32_C( -236.98), SIMDE_FLOAT32_C( 47.06) },
},
{ { SIMDE_FLOAT32_C( 18.38), SIMDE_FLOAT32_C( 953.45), SIMDE_FLOAT32_C( 221.44), SIMDE_FLOAT32_C( 303.10) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_f32(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -765.62), SIMDE_FLOAT32_C( 361.08), SIMDE_FLOAT32_C( 970.49), SIMDE_FLOAT32_C( 464.20) },
},
{ { SIMDE_FLOAT32_C( -945.27), SIMDE_FLOAT32_C( -68.63), SIMDE_FLOAT32_C( 229.51), SIMDE_FLOAT32_C( -351.34) },
},
{ { SIMDE_FLOAT32_C( 542.83), SIMDE_FLOAT32_C( -123.36), SIMDE_FLOAT32_C( 927.83), SIMDE_FLOAT32_C( -243.91) },
},
{ { SIMDE_FLOAT32_C( -330.95), SIMDE_FLOAT32_C( 461.31), SIMDE_FLOAT32_C( 836.57), SIMDE_FLOAT32_C( 92.21) },
},
{ { SIMDE_FLOAT32_C( -186.44), SIMDE_FLOAT32_C( -562.27), SIMDE_FLOAT32_C( -320.25), SIMDE_FLOAT32_C( -379.25) },
},
{ { SIMDE_FLOAT32_C( 306.79), SIMDE_FLOAT32_C( -832.12), SIMDE_FLOAT32_C( 438.15), SIMDE_FLOAT32_C( -467.18) },
},
{ { SIMDE_FLOAT32_C( -657.92), SIMDE_FLOAT32_C( -254.81), SIMDE_FLOAT32_C( 831.78), SIMDE_FLOAT32_C( 236.89) },
},
{ { SIMDE_FLOAT32_C( 865.09), SIMDE_FLOAT32_C( 532.74), SIMDE_FLOAT32_C( -968.34), SIMDE_FLOAT32_C( -900.54) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_f32(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -932.02), SIMDE_FLOAT32_C( -132.75), SIMDE_FLOAT32_C( -699.06), SIMDE_FLOAT32_C( -679.87) },
},
{ { SIMDE_FLOAT32_C( -936.24), SIMDE_FLOAT32_C( 610.41), SIMDE_FLOAT32_C( -391.45), SIMDE_FLOAT32_C( 201.79) },
},
{ { SIMDE_FLOAT32_C( -432.76), SIMDE_FLOAT32_C( 405.49), SIMDE_FLOAT32_C( 203.70), SIMDE_FLOAT32_C( -940.94) },
},
{ { SIMDE_FLOAT32_C( -913.18), SIMDE_FLOAT32_C( 765.98), SIMDE_FLOAT32_C( -413.09), SIMDE_FLOAT32_C( -839.58) },
},
{ { SIMDE_FLOAT32_C( 525.54), SIMDE_FLOAT32_C( -423.97), SIMDE_FLOAT32_C( -466.96), SIMDE_FLOAT32_C( 911.94) },
},
{ { SIMDE_FLOAT32_C( 614.98), SIMDE_FLOAT32_C( 805.06), SIMDE_FLOAT32_C( -958.00), SIMDE_FLOAT32_C( -950.16) },
},
{ { SIMDE_FLOAT32_C( -656.23), SIMDE_FLOAT32_C( 55.72), SIMDE_FLOAT32_C( 110.93), SIMDE_FLOAT32_C( 458.68) },
},
{ { SIMDE_FLOAT32_C( -160.98), SIMDE_FLOAT32_C( 817.98), SIMDE_FLOAT32_C( 396.81), SIMDE_FLOAT32_C( -92.99) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_f32(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 518.36), SIMDE_FLOAT32_C( -882.32), SIMDE_FLOAT32_C( -73.64), SIMDE_FLOAT32_C( 749.12) },
},
{ { SIMDE_FLOAT32_C( -496.02), SIMDE_FLOAT32_C( -306.74), SIMDE_FLOAT32_C( -922.59), SIMDE_FLOAT32_C( 847.19) },
},
{ { SIMDE_FLOAT32_C( 777.17), SIMDE_FLOAT32_C( 196.12), SIMDE_FLOAT32_C( -547.27), SIMDE_FLOAT32_C( -497.25) },
},
{ { SIMDE_FLOAT32_C( -324.90), SIMDE_FLOAT32_C( -358.94), SIMDE_FLOAT32_C( -741.14), SIMDE_FLOAT32_C( -164.39) },
},
{ { SIMDE_FLOAT32_C( -823.67), SIMDE_FLOAT32_C( -347.30), SIMDE_FLOAT32_C( 683.23), SIMDE_FLOAT32_C( -581.31) },
},
{ { SIMDE_FLOAT32_C( -908.06), SIMDE_FLOAT32_C( 681.07), SIMDE_FLOAT32_C( -895.66), SIMDE_FLOAT32_C( -13.27) },
},
{ { SIMDE_FLOAT32_C( 38.57), SIMDE_FLOAT32_C( -801.68), SIMDE_FLOAT32_C( -141.46), SIMDE_FLOAT32_C( 275.72) },
},
{ { SIMDE_FLOAT32_C( -841.66), SIMDE_FLOAT32_C( -993.81), SIMDE_FLOAT32_C( -416.02), SIMDE_FLOAT32_C( 676.69) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_f32(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 666.23), SIMDE_FLOAT32_C( -544.03), SIMDE_FLOAT32_C( 130.05), SIMDE_FLOAT32_C( -777.18) },
},
{ { SIMDE_FLOAT32_C( 521.70), SIMDE_FLOAT32_C( 33.98), SIMDE_FLOAT32_C( -958.60), SIMDE_FLOAT32_C( -408.56) },
},
{ { SIMDE_FLOAT32_C( 396.34), SIMDE_FLOAT32_C( -364.03), SIMDE_FLOAT32_C( 719.77), SIMDE_FLOAT32_C( 483.05) },
},
{ { SIMDE_FLOAT32_C( 307.42), SIMDE_FLOAT32_C( 916.12), SIMDE_FLOAT32_C( -506.50), SIMDE_FLOAT32_C( 167.94) },
},
{ { SIMDE_FLOAT32_C( 796.69), SIMDE_FLOAT32_C( -227.61), SIMDE_FLOAT32_C( 168.78), SIMDE_FLOAT32_C( 769.87) },
},
{ { SIMDE_FLOAT32_C( 237.37), SIMDE_FLOAT32_C( -942.90), SIMDE_FLOAT32_C( 126.56), SIMDE_FLOAT32_C( -99.19) },
},
{ { SIMDE_FLOAT32_C( 684.50), SIMDE_FLOAT32_C( 809.18), SIMDE_FLOAT32_C( 523.87), SIMDE_FLOAT32_C( 945.93) },
},
{ { SIMDE_FLOAT32_C( 492.61), SIMDE_FLOAT32_C( 718.52), SIMDE_FLOAT32_C( -237.77), SIMDE_FLOAT32_C( 158.83) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_f32(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -555.05), SIMDE_FLOAT32_C( 929.17), SIMDE_FLOAT32_C( -878.30), SIMDE_FLOAT32_C( 403.08) },
},
{ { SIMDE_FLOAT32_C( -814.23), SIMDE_FLOAT32_C( 72.21), SIMDE_FLOAT32_C( -782.92), SIMDE_FLOAT32_C( -545.57) },
},
{ { SIMDE_FLOAT32_C( -150.39), SIMDE_FLOAT32_C( -981.73), SIMDE_FLOAT32_C( 393.48), SIMDE_FLOAT32_C( -162.45) },
},
{ { SIMDE_FLOAT32_C( -204.82), SIMDE_FLOAT32_C( -148.81), SIMDE_FLOAT32_C( -48.01), SIMDE_FLOAT32_C( -385.48) },
},
{ { SIMDE_FLOAT32_C( -745.95), SIMDE_FLOAT32_C( 651.42), SIMDE_FLOAT32_C( 885.60), SIMDE_FLOAT32_C( 882.69) },
},
{ { SIMDE_FLOAT32_C( 987.57), SIMDE_FLOAT32_C( -664.87), SIMDE_FLOAT32_C( -294.19), SIMDE_FLOAT32_C( 570.81) },
},
{ { SIMDE_FLOAT32_C( -549.84), SIMDE_FLOAT32_C( 623.57), SIMDE_FLOAT32_C( -114.75), SIMDE_FLOAT32_C( -564.92) },
},
{ { SIMDE_FLOAT32_C( 165.89), SIMDE_FLOAT32_C( -376.09), SIMDE_FLOAT32_C( 997.79), SIMDE_FLOAT32_C( 610.84) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_f32(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_f16(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -639.27), SIMDE_FLOAT32_C( 2.23), SIMDE_FLOAT32_C( -265.16), SIMDE_FLOAT32_C( -362.94) },
},
{ { SIMDE_FLOAT32_C( -445.88), SIMDE_FLOAT32_C( 968.53), SIMDE_FLOAT32_C( 312.26), SIMDE_FLOAT32_C( 936.91) },
},
{ { SIMDE_FLOAT32_C( -465.40), SIMDE_FLOAT32_C( -23.17), SIMDE_FLOAT32_C( 673.23), SIMDE_FLOAT32_C( -603.22) },
},
{ { SIMDE_FLOAT32_C( -429.30), SIMDE_FLOAT32_C( 406.19), SIMDE_FLOAT32_C( 726.96), SIMDE_FLOAT32_C( -436.99) },
},
{ { SIMDE_FLOAT32_C( 52.93), SIMDE_FLOAT32_C( -904.72), SIMDE_FLOAT32_C( 225.27), SIMDE_FLOAT32_C( -62.92) },
},
{ { SIMDE_FLOAT32_C( -719.26), SIMDE_FLOAT32_C( 97.89), SIMDE_FLOAT32_C( -808.00), SIMDE_FLOAT32_C( 701.29) },
},
{ { SIMDE_FLOAT32_C( 151.65), SIMDE_FLOAT32_C( 842.19), SIMDE_FLOAT32_C( 331.08), SIMDE_FLOAT32_C( 329.68) },
},
{ { SIMDE_FLOAT32_C( 304.95), SIMDE_FLOAT32_C( 771.15), SIMDE_FLOAT32_C( 630.46), SIMDE_FLOAT32_C( 665.69) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_f32(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 231.72), SIMDE_FLOAT32_C( 123.26), SIMDE_FLOAT32_C( -786.91), SIMDE_FLOAT32_C( -138.95) },
},
{ { SIMDE_FLOAT32_C( 166.21), SIMDE_FLOAT32_C( 199.26), SIMDE_FLOAT32_C( -881.03), SIMDE_FLOAT32_C( 363.41) },
},
{ { SIMDE_FLOAT32_C( -208.25), SIMDE_FLOAT32_C( -126.94), SIMDE_FLOAT32_C( -663.57), SIMDE_FLOAT32_C( -651.99) },
},
{ { SIMDE_FLOAT32_C( -722.64), SIMDE_FLOAT32_C( -951.85), SIMDE_FLOAT32_C( -94.46), SIMDE_FLOAT32_C( 924.65) },
},
{ { SIMDE_FLOAT32_C( 896.69), SIMDE_FLOAT32_C( -6.54), SIMDE_FLOAT32_C( -785.89), SIMDE_FLOAT32_C( -806.08) },
},
{ { SIMDE_FLOAT32_C( -595.88), SIMDE_FLOAT32_C( 347.71), SIMDE_FLOAT32_C( 118.81), SIMDE_FLOAT32_C( -850.69) },
},
{ { SIMDE_FLOAT32_C( -873.62), SIMDE_FLOAT32_C( 679.36), SIMDE_FLOAT32_C( 461.45), SIMDE_FLOAT32_C( -429.35) },
},
{ { SIMDE_FLOAT32_C( -437.13), SIMDE_FLOAT32_C( -811.02), SIMDE_FLOAT32_C( 684.01), SIMDE_FLOAT32_C( 794.59) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_f32(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 28.67) },
},
{ { SIMDE_FLOAT64_C( 473.75) },
},
{ { SIMDE_FLOAT64_C( 415.56) },
},
{ { SIMDE_FLOAT64_C( 753.78) },
},
{ { SIMDE_FLOAT64_C( 619.03) },
},
{ { SIMDE_FLOAT64_C( 870.52) },
},
{ { SIMDE_FLOAT64_C( -321.27) },
},
{ { SIMDE_FLOAT64_C( -568.79) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_f64(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -39.43) },
},
{ { SIMDE_FLOAT64_C( 241.14) },
},
{ { SIMDE_FLOAT64_C( 480.99) },
},
{ { SIMDE_FLOAT64_C( 763.77) },
},
{ { SIMDE_FLOAT64_C( 486.92) },
},
{ { SIMDE_FLOAT64_C( -31.94) },
},
{ { SIMDE_FLOAT64_C( 873.55) },
},
{ { SIMDE_FLOAT64_C( 804.51) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_f64(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 937.89) },
},
{ { SIMDE_FLOAT64_C( -770.55) },
},
{ { SIMDE_FLOAT64_C( 954.11) },
},
{ { SIMDE_FLOAT64_C( -761.79) },
},
{ { SIMDE_FLOAT64_C( -483.85) },
},
{ { SIMDE_FLOAT64_C( -722.69) },
},
{ { SIMDE_FLOAT64_C( 63.26) },
},
{ { SIMDE_FLOAT64_C( 347.83) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_f64(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -321.48) },
},
{ { SIMDE_FLOAT64_C( 239.70) },
},
{ { SIMDE_FLOAT64_C( -593.78) },
},
{ { SIMDE_FLOAT64_C( -961.46) },
},
{ { SIMDE_FLOAT64_C( -714.06) },
},
{ { SIMDE_FLOAT64_C( 876.41) },
},
{ { SIMDE_FLOAT64_C( 192.37) },
},
{ { SIMDE_FLOAT64_C( 113.12) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_f64(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -679.32) },
},
{ { SIMDE_FLOAT64_C( 926.71) },
},
{ { SIMDE_FLOAT64_C( 780.61) },
},
{ { SIMDE_FLOAT64_C( 116.09) },
},
{ { SIMDE_FLOAT64_C( 481.72) },
},
{ { SIMDE_FLOAT64_C( -377.58) },
},
{ { SIMDE_FLOAT64_C( -976.13) },
},
{ { SIMDE_FLOAT64_C( -213.49) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_f64(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 642.50) },
},
{ { SIMDE_FLOAT64_C( -99.78) },
},
{ { SIMDE_FLOAT64_C( 942.91) },
},
{ { SIMDE_FLOAT64_C( -784.51) },
},
{ { SIMDE_FLOAT64_C( 20.18) },
},
{ { SIMDE_FLOAT64_C( 600.51) },
},
{ { SIMDE_FLOAT64_C( -214.07) },
},
{ { SIMDE_FLOAT64_C( -775.71) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_f64(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -646.34) },
},
{ { SIMDE_FLOAT64_C( 355.80) },
},
{ { SIMDE_FLOAT64_C( -63.18) },
},
{ { SIMDE_FLOAT64_C( 300.54) },
},
{ { SIMDE_FLOAT64_C( -572.37) },
},
{ { SIMDE_FLOAT64_C( -193.89) },
},
{ { SIMDE_FLOAT64_C( -662.99) },
},
{ { SIMDE_FLOAT64_C( 16.90) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_f64(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -775.04) },
},
{ { SIMDE_FLOAT64_C( -75.64) },
},
{ { SIMDE_FLOAT64_C( -833.77) },
},
{ { SIMDE_FLOAT64_C( 676.43) },
},
{ { SIMDE_FLOAT64_C( -944.49) },
},
{ { SIMDE_FLOAT64_C( -660.68) },
},
{ { SIMDE_FLOAT64_C( 634.14) },
},
{ { SIMDE_FLOAT64_C( 224.28) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_f64(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 417.49) },
},
{ { SIMDE_FLOAT64_C( -757.56) },
},
{ { SIMDE_FLOAT64_C( -880.56) },
},
{ { SIMDE_FLOAT64_C( 795.04) },
},
{ { SIMDE_FLOAT64_C( -500.89) },
},
{ { SIMDE_FLOAT64_C( -877.89) },
},
{ { SIMDE_FLOAT64_C( 559.74) },
},
{ { SIMDE_FLOAT64_C( 235.55) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_f64(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -143.25), SIMDE_FLOAT64_C( 834.85) },
},
{ { SIMDE_FLOAT64_C( -261.67), SIMDE_FLOAT64_C( -140.07) },
},
{ { SIMDE_FLOAT64_C( 513.01), SIMDE_FLOAT64_C( -658.64) },
},
{ { SIMDE_FLOAT64_C( -687.83), SIMDE_FLOAT64_C( 764.02) },
},
{ { SIMDE_FLOAT64_C( -465.12), SIMDE_FLOAT64_C( -765.44) },
},
{ { SIMDE_FLOAT64_C( 433.84), SIMDE_FLOAT64_C( -259.91) },
},
{ { SIMDE_FLOAT64_C( -578.38), SIMDE_FLOAT64_C( 507.83) },
},
{ { SIMDE_FLOAT64_C( 973.67), SIMDE_FLOAT64_C( -82.78) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_f64(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 458.52), SIMDE_FLOAT64_C( 987.27) },
},
{ { SIMDE_FLOAT64_C( -744.09), SIMDE_FLOAT64_C( -287.82) },
},
{ { SIMDE_FLOAT64_C( -721.99), SIMDE_FLOAT64_C( 994.43) },
},
{ { SIMDE_FLOAT64_C( 754.99), SIMDE_FLOAT64_C( -258.36) },
},
{ { SIMDE_FLOAT64_C( 866.04), SIMDE_FLOAT64_C( -587.02) },
},
{ { SIMDE_FLOAT64_C( -745.20), SIMDE_FLOAT64_C( 415.92) },
},
{ { SIMDE_FLOAT64_C( -203.46), SIMDE_FLOAT64_C( 889.41) },
},
{ { SIMDE_FLOAT64_C( 665.61), SIMDE_FLOAT64_C( 69.19) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_f64(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 94.42), SIMDE_FLOAT64_C( 818.93) },
},
{ { SIMDE_FLOAT64_C( -692.67), SIMDE_FLOAT64_C( 786.34) },
},
{ { SIMDE_FLOAT64_C( 928.43), SIMDE_FLOAT64_C( -189.58) },
},
{ { SIMDE_FLOAT64_C( -918.60), SIMDE_FLOAT64_C( 199.44) },
},
{ { SIMDE_FLOAT64_C( 503.38), SIMDE_FLOAT64_C( 887.65) },
},
{ { SIMDE_FLOAT64_C( -468.72), SIMDE_FLOAT64_C( -389.59) },
},
{ { SIMDE_FLOAT64_C( 846.67), SIMDE_FLOAT64_C( -751.14) },
},
{ { SIMDE_FLOAT64_C( -515.92), SIMDE_FLOAT64_C( 180.13) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_f64(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 528.55), SIMDE_FLOAT64_C( 688.78) },
},
{ { SIMDE_FLOAT64_C( 610.11), SIMDE_FLOAT64_C( 611.13) },
},
{ { SIMDE_FLOAT64_C( -578.07), SIMDE_FLOAT64_C( 982.36) },
},
{ { SIMDE_FLOAT64_C( 364.66), SIMDE_FLOAT64_C( -506.04) },
},
{ { SIMDE_FLOAT64_C( -873.02), SIMDE_FLOAT64_C( 793.52) },
},
{ { SIMDE_FLOAT64_C( 431.73), SIMDE_FLOAT64_C( -420.86) },
},
{ { SIMDE_FLOAT64_C( -966.64), SIMDE_FLOAT64_C( 749.49) },
},
{ { SIMDE_FLOAT64_C( 468.95), SIMDE_FLOAT64_C( 678.54) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_f64(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 499.96), SIMDE_FLOAT64_C( 483.36) },
},
{ { SIMDE_FLOAT64_C( -570.97), SIMDE_FLOAT64_C( -986.77) },
},
{ { SIMDE_FLOAT64_C( 388.29), SIMDE_FLOAT64_C( -157.42) },
},
{ { SIMDE_FLOAT64_C( -500.62), SIMDE_FLOAT64_C( -196.54) },
},
{ { SIMDE_FLOAT64_C( -186.43), SIMDE_FLOAT64_C( 777.44) },
},
{ { SIMDE_FLOAT64_C( -393.24), SIMDE_FLOAT64_C( -993.29) },
},
{ { SIMDE_FLOAT64_C( 813.36), SIMDE_FLOAT64_C( 797.87) },
},
{ { SIMDE_FLOAT64_C( 890.64), SIMDE_FLOAT64_C( 177.04) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_f64(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 774.17), SIMDE_FLOAT64_C( -982.31) },
},
{ { SIMDE_FLOAT64_C( 150.95), SIMDE_FLOAT64_C( 568.12) },
},
{ { SIMDE_FLOAT64_C( -697.86), SIMDE_FLOAT64_C( -585.35) },
},
{ { SIMDE_FLOAT64_C( -726.09), SIMDE_FLOAT64_C( -258.24) },
},
{ { SIMDE_FLOAT64_C( 225.96), SIMDE_FLOAT64_C( 612.94) },
},
{ { SIMDE_FLOAT64_C( 513.18), SIMDE_FLOAT64_C( 503.15) },
},
{ { SIMDE_FLOAT64_C( 963.82), SIMDE_FLOAT64_C( -77.66) },
},
{ { SIMDE_FLOAT64_C( -796.08), SIMDE_FLOAT64_C( 2.44) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_f64(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 366.50), SIMDE_FLOAT64_C( -291.14) },
},
{ { SIMDE_FLOAT64_C( -469.92), SIMDE_FLOAT64_C( -958.99) },
},
{ { SIMDE_FLOAT64_C( -979.93), SIMDE_FLOAT64_C( -904.00) },
},
{ { SIMDE_FLOAT64_C( -442.71), SIMDE_FLOAT64_C( -363.03) },
},
{ { SIMDE_FLOAT64_C( -172.73), SIMDE_FLOAT64_C( 76.80) },
},
{ { SIMDE_FLOAT64_C( 876.29), SIMDE_FLOAT64_C( -629.97) },
},
{ { SIMDE_FLOAT64_C( 360.30), SIMDE_FLOAT64_C( 944.37) },
},
{ { SIMDE_FLOAT64_C( -412.04), SIMDE_FLOAT64_C( 375.13) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_f64(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -625.30), SIMDE_FLOAT64_C( -492.95) },
},
{ { SIMDE_FLOAT64_C( 940.16), SIMDE_FLOAT64_C( 246.25) },
},
{ { SIMDE_FLOAT64_C( -129.68), SIMDE_FLOAT64_C( -65.50) },
},
{ { SIMDE_FLOAT64_C( -587.78), SIMDE_FLOAT64_C( -371.92) },
},
{ { SIMDE_FLOAT64_C( 254.10), SIMDE_FLOAT64_C( 929.33) },
},
{ { SIMDE_FLOAT64_C( 369.23), SIMDE_FLOAT64_C( -348.00) },
},
{ { SIMDE_FLOAT64_C( 551.76), SIMDE_FLOAT64_C( 388.09) },
},
{ { SIMDE_FLOAT64_C( -849.56), SIMDE_FLOAT64_C( 541.39) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_f64(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 261.11), SIMDE_FLOAT64_C( 328.35) },
},
{ { SIMDE_FLOAT64_C( 953.99), SIMDE_FLOAT64_C( 268.54) },
},
{ { SIMDE_FLOAT64_C( 860.91), SIMDE_FLOAT64_C( 685.66) },
},
{ { SIMDE_FLOAT64_C( -379.72), SIMDE_FLOAT64_C( 849.19) },
},
{ { SIMDE_FLOAT64_C( -182.32), SIMDE_FLOAT64_C( 565.54) },
},
{ { SIMDE_FLOAT64_C( 593.89), SIMDE_FLOAT64_C( 988.09) },
},
{ { SIMDE_FLOAT64_C( 564.35), SIMDE_FLOAT64_C( 771.05) },
},
{ { SIMDE_FLOAT64_C( -993.11), SIMDE_FLOAT64_C( -315.73) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_f64(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 640.27), SIMDE_FLOAT32_C( -585.88) },
},
{ { SIMDE_FLOAT32_C( 495.02), SIMDE_FLOAT32_C( -454.59) },
},
{ { SIMDE_FLOAT32_C( -794.50), SIMDE_FLOAT32_C( -757.76) },
},
{ { SIMDE_FLOAT32_C( -987.01), SIMDE_FLOAT32_C( -967.63) },
},
{ { SIMDE_FLOAT32_C( 776.12), SIMDE_FLOAT32_C( -392.25) },
},
{ { SIMDE_FLOAT32_C( 488.06), SIMDE_FLOAT32_C( -965.22) },
},
{ { SIMDE_FLOAT32_C( -118.01), SIMDE_FLOAT32_C( 15.16) },
},
{ { SIMDE_FLOAT32_C( -392.02), SIMDE_FLOAT32_C( 26.20) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_f32(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 27026), -INT16_C( 5702), -INT16_C( 32251), -INT16_C( 22224) },
},
{ { INT16_C( 18627), -INT16_C( 18788), INT16_C( 28877), INT16_C( 229) },
},
{ { -INT16_C( 22464), INT16_C( 10858), -INT16_C( 1223), -INT16_C( 1199) },
},
{ { INT16_C( 17727), INT16_C( 2234), INT16_C( 24935), -INT16_C( 10779) },
},
{ { -INT16_C( 24584), -INT16_C( 578), -INT16_C( 4575), -INT16_C( 6746) },
},
{ { INT16_C( 16951), INT16_C( 1179), -INT16_C( 32590), -INT16_C( 3324) },
},
{ { INT16_C( 28456), INT16_C( 24861), INT16_C( 28522), -INT16_C( 22180) },
},
{ { INT16_C( 5812), INT16_C( 7090), -INT16_C( 26760), INT16_C( 28912) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_s16(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 115647159), INT32_C( 1543473707) },
},
{ { -INT32_C( 414762519), -INT32_C( 1092812093) },
},
{ { -INT32_C( 524899849), -INT32_C( 1091006359) },
},
{ { INT32_C( 1246431952), -INT32_C( 91088719) },
},
{ { -INT32_C( 1577865867), INT32_C( 570225207) },
},
{ { -INT32_C( 301448405), INT32_C( 1017963845) },
},
{ { -INT32_C( 149134450), -INT32_C( 994765581) },
},
{ { -INT32_C( 821166050), -INT32_C( 1899388904) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_s32(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { INT64_C( 6507368899876856448) },
},
{ { -INT64_C( 5606110019210035735) },
},
{ { INT64_C( 5538191326012830769) },
},
{ { -INT64_C( 3913861957691473674) },
},
{ { -INT64_C( 93860817958845234) },
},
{ { INT64_C( 3899560943408114888) },
},
{ { -INT64_C( 3174423257829653766) },
},
{ { -INT64_C( 3548350518083791698) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_s64(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 42), INT8_C( 92), INT8_C( 93), INT8_C( 70), INT8_C( 89), -INT8_C( 37), -INT8_C( 103), -INT8_C( 92) },
},
{ { INT8_C( 40), -INT8_C( 95), -INT8_C( 44), INT8_C( 67), -INT8_C( 63), -INT8_C( 92), -INT8_C( 108), INT8_C( 10) },
},
{ { INT8_C( 37), INT8_C( 114), -INT8_C( 8), -INT8_C( 112), -INT8_C( 60), -INT8_C( 12), -INT8_C( 68), -INT8_C( 73) },
},
{ { -INT8_C( 40), -INT8_C( 11), -INT8_C( 75), INT8_C( 51), -INT8_C( 124), -INT8_C( 99), INT8_C( 109), INT8_C( 90) },
},
{ { -INT8_C( 7), -INT8_C( 54), -INT8_C( 95), INT8_C( 82), -INT8_C( 91), INT8_C( 58), -INT8_C( 10), -INT8_C( 50) },
},
{ { -INT8_C( 37), -INT8_C( 54), INT8_C( 17), -INT8_C( 100), INT8_C( 110), -INT8_C( 91), -INT8_C( 90), -INT8_C( 108) },
},
{ { INT8_C( 23), -INT8_C( 97), INT8_C( 36), -INT8_C( 36), -INT8_C( 109), -INT8_C( 31), -INT8_C( 109), INT8_C( 107) },
},
{ { -INT8_C( 42), INT8_C( 73), -INT8_C( 97), INT8_C( 91), -INT8_C( 26), INT8_C( 12), -INT8_C( 75), -INT8_C( 33) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_s8(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(3803574018), UINT32_C( 183881149) },
},
{ { UINT32_C( 881972491), UINT32_C(2577490452) },
},
{ { UINT32_C( 231932657), UINT32_C(1707981836) },
},
{ { UINT32_C(2565105070), UINT32_C(1101186879) },
},
{ { UINT32_C(1931696054), UINT32_C( 813504548) },
},
{ { UINT32_C( 40111854), UINT32_C(1654326640) },
},
{ { UINT32_C( 342846983), UINT32_C(3631824170) },
},
{ { UINT32_C(3782303138), UINT32_C(3676508964) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_u32(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 8779430749390950521) },
},
{ { UINT64_C( 5787192216487944357) },
},
{ { UINT64_C( 1212378576244495394) },
},
{ { UINT64_C(11587186962892113876) },
},
{ { UINT64_C(15419974588312544197) },
},
{ { UINT64_C( 584303456178448674) },
},
{ { UINT64_C( 9413963231737312176) },
},
{ { UINT64_C(10928834220922494436) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_u64(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(112), UINT8_C(213), UINT8_C(254), UINT8_C(209), UINT8_C( 81), UINT8_C(219), UINT8_C(117), UINT8_C(223) },
},
{ { UINT8_C(124), UINT8_C(231), UINT8_C(194), UINT8_C(124), UINT8_C(243), UINT8_C( 26), UINT8_C(211), UINT8_C(153) },
},
{ { UINT8_C(234), UINT8_C( 24), UINT8_C(169), UINT8_C(251), UINT8_C( 31), UINT8_C(217), UINT8_C(225), UINT8_C(202) },
},
{ { UINT8_C( 55), UINT8_C(239), UINT8_C( 94), UINT8_C(148), UINT8_C(180), UINT8_C(176), UINT8_C( 71), UINT8_C( 36) },
},
{ { UINT8_C(133), UINT8_C( 70), UINT8_C(245), UINT8_C(214), UINT8_C( 33), UINT8_C(106), UINT8_C(181), UINT8_C(157) },
},
{ { UINT8_C( 81), UINT8_C(119), UINT8_C( 26), UINT8_C( 68), UINT8_C(145), UINT8_C(237), UINT8_C(222), UINT8_C(123) },
},
{ { UINT8_C( 6), UINT8_C(135), UINT8_C(118), UINT8_C( 37), UINT8_C( 96), UINT8_C( 87), UINT8_C(240), UINT8_C(151) },
},
{ { UINT8_C( 70), UINT8_C( 78), UINT8_C( 43), UINT8_C(250), UINT8_C(254), UINT8_C(115), UINT8_C( 30), UINT8_C(131) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_u8(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -811.50), SIMDE_FLOAT32_C( 514.96), SIMDE_FLOAT32_C( -136.00), SIMDE_FLOAT32_C( -141.79) },
},
{ { SIMDE_FLOAT32_C( 61.02), SIMDE_FLOAT32_C( 477.62), SIMDE_FLOAT32_C( 148.51), SIMDE_FLOAT32_C( 991.88) },
},
{ { SIMDE_FLOAT32_C( -930.50), SIMDE_FLOAT32_C( 415.23), SIMDE_FLOAT32_C( -261.81), SIMDE_FLOAT32_C( 239.22) },
},
{ { SIMDE_FLOAT32_C( -235.74), SIMDE_FLOAT32_C( -683.57), SIMDE_FLOAT32_C( -77.80), SIMDE_FLOAT32_C( 884.34) },
},
{ { SIMDE_FLOAT32_C( -663.55), SIMDE_FLOAT32_C( 620.01), SIMDE_FLOAT32_C( -701.35), SIMDE_FLOAT32_C( 534.67) },
},
{ { SIMDE_FLOAT32_C( -55.34), SIMDE_FLOAT32_C( 286.47), SIMDE_FLOAT32_C( -242.86), SIMDE_FLOAT32_C( -763.34) },
},
{ { SIMDE_FLOAT32_C( 995.87), SIMDE_FLOAT32_C( 465.38), SIMDE_FLOAT32_C( 128.46), SIMDE_FLOAT32_C( -623.09) },
},
{ { SIMDE_FLOAT32_C( 144.58), SIMDE_FLOAT32_C( 923.36), SIMDE_FLOAT32_C( -420.92), SIMDE_FLOAT32_C( 333.08) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_f32(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { INT16_C( 26800), INT16_C( 6579), INT16_C( 6869), INT16_C( 1599), -INT16_C( 6376), -INT16_C( 21236), INT16_C( 31152), INT16_C( 26129) },
},
{ { INT16_C( 4862), -INT16_C( 26934), -INT16_C( 17327), -INT16_C( 8418), INT16_C( 12000), -INT16_C( 10920), -INT16_C( 22979), -INT16_C( 4503) },
},
{ { INT16_C( 7438), -INT16_C( 7417), INT16_C( 17975), INT16_C( 20713), -INT16_C( 2770), -INT16_C( 8451), INT16_C( 3694), INT16_C( 27972) },
},
{ { INT16_C( 3616), INT16_C( 28931), INT16_C( 8650), -INT16_C( 21936), -INT16_C( 22449), -INT16_C( 29313), -INT16_C( 6066), INT16_C( 23675) },
},
{ { -INT16_C( 32251), INT16_C( 15679), INT16_C( 10441), -INT16_C( 2163), -INT16_C( 30179), -INT16_C( 29483), INT16_C( 6552), -INT16_C( 18183) },
},
{ { -INT16_C( 985), -INT16_C( 3798), INT16_C( 31261), INT16_C( 28059), INT16_C( 6691), INT16_C( 29178), INT16_C( 29954), INT16_C( 2254) },
},
{ { INT16_C( 3575), -INT16_C( 16315), -INT16_C( 11722), INT16_C( 21431), -INT16_C( 29604), -INT16_C( 2849), -INT16_C( 10075), -INT16_C( 13140) },
},
{ { -INT16_C( 10540), -INT16_C( 3395), INT16_C( 22609), INT16_C( 29791), INT16_C( 22898), INT16_C( 30181), -INT16_C( 19506), -INT16_C( 14979) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_s16(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { INT32_C( 623130355), INT32_C( 1449239400), -INT32_C( 1128746035), -INT32_C( 1367149809) },
},
{ { -INT32_C( 2072522775), -INT32_C( 1280826145), INT32_C( 2128924204), -INT32_C( 1000200240) },
},
{ { -INT32_C( 957774242), -INT32_C( 149075415), INT32_C( 229889534), -INT32_C( 1296353591) },
},
{ { -INT32_C( 449367547), -INT32_C( 2087133353), INT32_C( 2114026925), INT32_C( 37905316) },
},
{ { INT32_C( 331951082), INT32_C( 1946871414), -INT32_C( 2071871813), -INT32_C( 113820428) },
},
{ { -INT32_C( 958501265), -INT32_C( 95848627), -INT32_C( 1736946700), -INT32_C( 1734624594) },
},
{ { INT32_C( 1554801894), INT32_C( 97564234), INT32_C( 1753895284), -INT32_C( 60636787) },
},
{ { INT32_C( 2093105199), -INT32_C( 1418326857), INT32_C( 88403799), -INT32_C( 1885413463) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_s32(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 7111391188455227457), -INT64_C( 3254191077044569329) },
},
{ { -INT64_C( 1650031472652397181), -INT64_C( 309481479475721661) },
},
{ { INT64_C( 5693002100524252415), -INT64_C( 3378233746908740393) },
},
{ { -INT64_C( 6847697544965884688), -INT64_C( 4550811824021290590) },
},
{ { -INT64_C( 7507740545089526719), INT64_C( 2218023018207253417) },
},
{ { -INT64_C( 9191243350082271628), -INT64_C( 8581830885716983195) },
},
{ { -INT64_C( 2760187395494638758), INT64_C( 664167231916119275) },
},
{ { -INT64_C( 1243752674535709601), -INT64_C( 6115893445395211696) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_s64(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { INT8_C( 126), -INT8_C( 42), INT8_C( 86), -INT8_C( 114), -INT8_C( 16), INT8_C( 92), -INT8_C( 85), INT8_C( 13),
-INT8_C( 40), INT8_C( 5), INT8_C( 82), INT8_C( 85), INT8_C( 58), INT8_MIN, -INT8_C( 124), -INT8_C( 105) },
},
{ { INT8_C( 11), INT8_C( 67), INT8_C( 88), INT8_C( 58), -INT8_C( 6), -INT8_C( 66), -INT8_C( 54), INT8_C( 93),
-INT8_C( 80), -INT8_C( 34), -INT8_C( 77), -INT8_C( 9), INT8_C( 108), INT8_C( 83), -INT8_C( 44), -INT8_C( 22) },
},
{ { INT8_C( 41), INT8_C( 42), INT8_C( 120), INT8_C( 26), -INT8_C( 122), INT8_C( 35), INT8_C( 39), INT8_C( 95),
INT8_C( 41), INT8_C( 121), -INT8_C( 76), INT8_C( 99), -INT8_C( 7), INT8_C( 56), -INT8_C( 6), INT8_C( 4) },
},
{ { INT8_C( 124), INT8_C( 82), INT8_C( 62), INT8_C( 118), INT8_C( 16), INT8_C( 8), -INT8_C( 45), -INT8_C( 63),
-INT8_C( 25), -INT8_C( 122), -INT8_C( 72), INT8_C( 83), -INT8_C( 39), -INT8_C( 116), INT8_C( 61), INT8_C( 3) },
},
{ { -INT8_C( 74), -INT8_C( 75), INT8_C( 29), INT8_C( 61), -INT8_C( 40), INT8_C( 68), -INT8_C( 100), INT8_C( 1),
-INT8_C( 67), INT8_C( 80), INT8_C( 100), -INT8_C( 74), -INT8_C( 120), INT8_C( 95), -INT8_C( 69), INT8_C( 4) },
},
{ { -INT8_C( 79), -INT8_C( 7), INT8_C( 122), -INT8_C( 62), INT8_C( 2), INT8_C( 77), -INT8_C( 125), -INT8_C( 23),
-INT8_C( 45), INT8_C( 59), INT8_C( 60), -INT8_C( 83), -INT8_C( 57), INT8_C( 121), -INT8_C( 80), INT8_C( 125) },
},
{ { INT8_C( 46), -INT8_C( 51), -INT8_C( 70), INT8_C( 6), INT8_C( 17), INT8_C( 86), INT8_C( 8), -INT8_C( 50),
-INT8_C( 90), INT8_C( 108), -INT8_C( 124), INT8_C( 47), -INT8_C( 53), INT8_C( 63), INT8_C( 51), INT8_C( 125) },
},
{ { INT8_C( 57), -INT8_C( 82), INT8_C( 63), INT8_C( 59), -INT8_C( 5), -INT8_C( 62), INT8_C( 36), -INT8_C( 49),
-INT8_C( 3), INT8_C( 96), INT8_C( 124), -INT8_C( 60), -INT8_C( 39), INT8_C( 44), INT8_C( 65), INT8_C( 7) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_s8(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C( 798628804), UINT32_C(2308740029), UINT32_C(1010183400), UINT32_C( 499135747) },
},
{ { UINT32_C(3302186879), UINT32_C(1617207352), UINT32_C(1291082784), UINT32_C(3849247008) },
},
{ { UINT32_C(2970880244), UINT32_C(2201727131), UINT32_C(3753865692), UINT32_C( 654147750) },
},
{ { UINT32_C( 401264863), UINT32_C(2423803504), UINT32_C(3420220587), UINT32_C( 967854661) },
},
{ { UINT32_C(4008428627), UINT32_C(1366435444), UINT32_C(1026568599), UINT32_C(2439196081) },
},
{ { UINT32_C(1839746813), UINT32_C(1207771292), UINT32_C(3524516237), UINT32_C(1997325092) },
},
{ { UINT32_C(4234540936), UINT32_C(3025000221), UINT32_C(3136388617), UINT32_C(2840286635) },
},
{ { UINT32_C(1058469027), UINT32_C(2709984276), UINT32_C( 292854509), UINT32_C(3850928221) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_u32(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 1234218851471792026), UINT64_C( 2677674681134575894) },
},
{ { UINT64_C(14515460789981832380), UINT64_C( 8215729928409844471) },
},
{ { UINT64_C(18432155657786037817), UINT64_C(11578942536244388252) },
},
{ { UINT64_C(16827624080118754063), UINT64_C( 5552162173842289092) },
},
{ { UINT64_C(16230363121171568980), UINT64_C( 8591211574267264694) },
},
{ { UINT64_C( 117863513551373256), UINT64_C( 8002802099049782445) },
},
{ { UINT64_C(11810948322241091523), UINT64_C( 4217752382814901672) },
},
{ { UINT64_C( 2754116619510988282), UINT64_C( 4755228904491897970) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_u64(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 74), UINT8_C( 19), UINT8_C( 69), UINT8_C( 21), UINT8_C( 71), UINT8_C( 59), UINT8_C(199), UINT8_C(127),
UINT8_C( 82), UINT8_C(179), UINT8_C(169), UINT8_C(199), UINT8_C( 92), UINT8_C( 94), UINT8_C( 56), UINT8_C(138) },
},
{ { UINT8_C(242), UINT8_C(208), UINT8_C( 27), UINT8_C( 42), UINT8_MAX, UINT8_C(136), UINT8_C( 16), UINT8_C(131),
UINT8_C( 2), UINT8_C( 11), UINT8_C( 23), UINT8_C(252), UINT8_C(182), UINT8_C(246), UINT8_C(201), UINT8_C( 0) },
},
{ { UINT8_C( 10), UINT8_C( 14), UINT8_C( 22), UINT8_C( 81), UINT8_C( 73), UINT8_C(221), UINT8_C(208), UINT8_C(156),
UINT8_C(144), UINT8_C(121), UINT8_C( 99), UINT8_C(236), UINT8_C(215), UINT8_C(155), UINT8_C(118), UINT8_C(202) },
},
{ { UINT8_C(108), UINT8_C(145), UINT8_C(244), UINT8_C(107), UINT8_C( 25), UINT8_C( 4), UINT8_C(239), UINT8_C( 28),
UINT8_C( 15), UINT8_C( 6), UINT8_C( 24), UINT8_C(197), UINT8_C(253), UINT8_C(225), UINT8_C(198), UINT8_C( 7) },
},
{ { UINT8_C(240), UINT8_C(220), UINT8_C( 88), UINT8_C( 57), UINT8_C(185), UINT8_C( 40), UINT8_C(213), UINT8_C( 73),
UINT8_C(161), UINT8_C( 56), UINT8_C( 53), UINT8_C(120), UINT8_C(212), UINT8_C(172), UINT8_C( 66), UINT8_C( 64) },
},
{ { UINT8_C( 61), UINT8_C( 54), UINT8_C(171), UINT8_C( 87), UINT8_C( 58), UINT8_C(154), UINT8_C(115), UINT8_C( 74),
UINT8_C(161), UINT8_C(139), UINT8_C( 15), UINT8_C(158), UINT8_C(108), UINT8_C(213), UINT8_C(165), UINT8_C( 92) },
},
{ { UINT8_C(177), UINT8_C(253), UINT8_C(150), UINT8_C(106), UINT8_C( 37), UINT8_C(107), UINT8_C(179), UINT8_C(198),
UINT8_C(164), UINT8_C(233), UINT8_C( 62), UINT8_C(120), UINT8_C(149), UINT8_C(129), UINT8_C(184), UINT8_C(210) },
},
{ { UINT8_C(183), UINT8_C( 99), UINT8_C( 41), UINT8_C(242), UINT8_C(254), UINT8_C(156), UINT8_C( 60), UINT8_C(159),
UINT8_C( 39), UINT8_C( 75), UINT8_C( 61), UINT8_C(148), UINT8_C( 33), UINT8_C(226), UINT8_C(240), UINT8_C(210) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_u8(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 28.67) },
},
{ { SIMDE_FLOAT64_C( 473.75) },
},
{ { SIMDE_FLOAT64_C( 415.56) },
},
{ { SIMDE_FLOAT64_C( 753.78) },
},
{ { SIMDE_FLOAT64_C( 619.03) },
},
{ { SIMDE_FLOAT64_C( 870.52) },
},
{ { SIMDE_FLOAT64_C( -321.27) },
},
{ { SIMDE_FLOAT64_C( -568.79) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_f64(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -143.25), SIMDE_FLOAT64_C( 834.85) },
},
{ { SIMDE_FLOAT64_C( -261.67), SIMDE_FLOAT64_C( -140.07) },
},
{ { SIMDE_FLOAT64_C( 513.01), SIMDE_FLOAT64_C( -658.64) },
},
{ { SIMDE_FLOAT64_C( -687.83), SIMDE_FLOAT64_C( 764.02) },
},
{ { SIMDE_FLOAT64_C( -465.12), SIMDE_FLOAT64_C( -765.44) },
},
{ { SIMDE_FLOAT64_C( 433.84), SIMDE_FLOAT64_C( -259.91) },
},
{ { SIMDE_FLOAT64_C( -578.38), SIMDE_FLOAT64_C( 507.83) },
},
{ { SIMDE_FLOAT64_C( 973.67), SIMDE_FLOAT64_C( -82.78) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_f64(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_f16(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_f16(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_f16(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_f16(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_f16(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_f16(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_f16(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_f16(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_f16(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_f16(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_f16(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_f16(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_f16(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_f16(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_f16(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_f16(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_f16(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_f16(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { INT8_C( 73), -INT8_C( 58), -INT8_C( 54), INT8_C( 0), INT8_MAX, -INT8_C( 14), -INT8_C( 96), INT8_C( 124) },
},
{ { INT8_C( 61), -INT8_C( 81), -INT8_C( 61), INT8_C( 43), INT8_C( 92), INT8_C( 16), -INT8_C( 94), INT8_C( 125) },
},
{ { -INT8_C( 46), INT8_C( 72), -INT8_C( 42), INT8_C( 56), INT8_C( 3), INT8_C( 67), -INT8_C( 58), -INT8_C( 39) },
},
{ { INT8_C( 44), -INT8_C( 82), INT8_C( 29), -INT8_C( 51), INT8_C( 70), INT8_C( 74), -INT8_C( 65), -INT8_C( 113) },
},
{ { INT8_C( 17), -INT8_C( 119), -INT8_C( 112), -INT8_C( 112), INT8_C( 124), INT8_C( 48), INT8_C( 12), -INT8_C( 71) },
},
{ { -INT8_C( 33), -INT8_C( 49), -INT8_C( 28), INT8_C( 59), -INT8_C( 33), -INT8_C( 122), -INT8_C( 71), -INT8_C( 78) },
},
{ { -INT8_C( 50), -INT8_C( 113), -INT8_C( 22), -INT8_C( 47), -INT8_C( 46), -INT8_C( 80), -INT8_C( 86), -INT8_C( 1) },
},
{ { INT8_C( 94), -INT8_C( 57), -INT8_C( 52), -INT8_C( 92), INT8_C( 18), -INT8_C( 116), INT8_C( 52), INT8_C( 35) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_s8(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 44), INT8_C( 17), -INT8_C( 26), -INT8_C( 99), INT8_C( 57), -INT8_C( 92), INT8_C( 3), INT8_C( 58) },
},
{ { INT8_C( 16), -INT8_C( 90), -INT8_C( 123), -INT8_C( 127), -INT8_C( 28), INT8_C( 59), -INT8_C( 66), INT8_C( 8) },
},
{ { -INT8_C( 117), INT8_C( 95), INT8_C( 102), -INT8_C( 39), INT8_C( 9), -INT8_C( 100), INT8_C( 76), INT8_C( 94) },
},
{ { -INT8_C( 50), INT8_C( 29), -INT8_C( 46), -INT8_C( 119), INT8_C( 8), -INT8_C( 74), INT8_C( 98), -INT8_C( 36) },
},
{ { -INT8_C( 57), INT8_C( 72), INT8_C( 122), INT8_C( 0), -INT8_C( 19), INT8_C( 125), INT8_C( 58), -INT8_C( 3) },
},
{ { INT8_C( 35), -INT8_C( 65), INT8_C( 126), INT8_C( 8), -INT8_C( 6), INT8_C( 60), INT8_C( 16), -INT8_C( 122) },
},
{ { -INT8_C( 101), INT8_C( 118), INT8_C( 95), -INT8_C( 92), INT8_C( 18), -INT8_C( 85), INT8_C( 2), -INT8_C( 31) },
},
{ { -INT8_C( 55), -INT8_C( 43), INT8_C( 106), -INT8_C( 47), -INT8_C( 117), -INT8_C( 52), -INT8_C( 83), INT8_C( 82) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_s8(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[8];
} test_vec[] = {
{ { INT8_C( 40), INT8_C( 42), INT8_C( 95), INT8_C( 87), INT8_C( 71), -INT8_C( 53), -INT8_C( 100), INT8_C( 99) },
},
{ { INT8_C( 42), -INT8_C( 25), INT8_C( 55), INT8_C( 109), -INT8_C( 110), -INT8_C( 120), -INT8_C( 78), -INT8_C( 7) },
},
{ { -INT8_C( 97), -INT8_C( 1), -INT8_C( 38), INT8_C( 60), INT8_C( 58), INT8_C( 58), INT8_C( 80), INT8_C( 75) },
},
{ { INT8_C( 18), INT8_C( 38), -INT8_C( 40), INT8_C( 0), -INT8_C( 110), INT8_C( 19), INT8_C( 60), -INT8_C( 69) },
},
{ { INT8_C( 61), -INT8_C( 101), INT8_C( 18), -INT8_C( 124), INT8_C( 102), -INT8_C( 82), -INT8_C( 25), -INT8_C( 111) },
},
{ { -INT8_C( 107), INT8_C( 31), -INT8_C( 2), INT8_C( 40), -INT8_C( 89), -INT8_C( 80), INT8_C( 33), INT8_C( 70) },
},
{ { -INT8_C( 80), -INT8_C( 4), -INT8_C( 126), -INT8_C( 22), INT8_C( 54), -INT8_C( 46), INT8_C( 54), INT8_C( 73) },
},
{ { -INT8_C( 8), INT8_C( 14), INT8_C( 73), -INT8_C( 118), INT8_C( 33), -INT8_C( 123), INT8_C( 69), INT8_C( 94) },
},
};
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_private a_ = simde_int8x8_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_s8(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 32486), -INT16_C( 2660), INT16_C( 7883), -INT16_C( 15352) },
},
{ { -INT16_C( 12203), -INT16_C( 9918), INT16_C( 13929), -INT16_C( 4761) },
},
{ { -INT16_C( 15816), INT16_C( 30875), INT16_C( 6606), -INT16_C( 29294) },
},
{ { INT16_C( 23764), -INT16_C( 4001), INT16_C( 15786), -INT16_C( 15111) },
},
{ { -INT16_C( 26946), -INT16_C( 30023), -INT16_C( 15948), INT16_C( 2382) },
},
{ { -INT16_C( 28527), -INT16_C( 1053), INT16_C( 19142), -INT16_C( 24) },
},
{ { -INT16_C( 31988), -INT16_C( 9353), INT16_C( 2461), INT16_C( 29032) },
},
{ { -INT16_C( 14491), INT16_C( 3937), INT16_C( 23301), -INT16_C( 15404) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_s16(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 13698), -INT16_C( 2016), INT16_C( 7173), INT16_C( 8812) },
},
{ { INT16_C( 14693), -INT16_C( 20452), -INT16_C( 11625), INT16_C( 2112) },
},
{ { INT16_C( 12150), -INT16_C( 13614), INT16_C( 29200), -INT16_C( 12138) },
},
{ { INT16_C( 5371), INT16_C( 14148), -INT16_C( 22854), INT16_C( 14568) },
},
{ { INT16_C( 2160), INT16_C( 30256), -INT16_C( 25564), -INT16_C( 30312) },
},
{ { -INT16_C( 18987), INT16_C( 27961), INT16_C( 31111), -INT16_C( 395) },
},
{ { INT16_C( 18345), -INT16_C( 17976), INT16_C( 24249), -INT16_C( 19062) },
},
{ { -INT16_C( 12685), INT16_C( 11756), -INT16_C( 11148), -INT16_C( 6811) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_s16(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[4];
} test_vec[] = {
{ { -INT16_C( 19422), INT16_C( 4112), -INT16_C( 6132), -INT16_C( 22247) },
},
{ { INT16_C( 17482), INT16_C( 22232), INT16_C( 7090), INT16_C( 19055) },
},
{ { INT16_C( 7162), -INT16_C( 12732), INT16_C( 25546), -INT16_C( 12846) },
},
{ { INT16_C( 32293), INT16_C( 15899), -INT16_C( 27923), INT16_C( 4212) },
},
{ { -INT16_C( 31674), INT16_C( 21024), INT16_C( 14700), -INT16_C( 18436) },
},
{ { -INT16_C( 11139), INT16_C( 12045), INT16_C( 31983), -INT16_C( 5767) },
},
{ { -INT16_C( 16745), INT16_C( 25016), -INT16_C( 30175), INT16_C( 17966) },
},
{ { INT16_C( 18953), -INT16_C( 2428), -INT16_C( 1828), INT16_C( 8710) },
},
};
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_private a_ = simde_int16x4_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_s16(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 995763866), -INT32_C( 546679899) },
},
{ { INT32_C( 53825220), -INT32_C( 1775030743) },
},
{ { INT32_C( 1938520045), -INT32_C( 1292661555) },
},
{ { INT32_C( 417415971), -INT32_C( 1253875889) },
},
{ { -INT32_C( 579147720), INT32_C( 12444732) },
},
{ { INT32_C( 1526985266), INT32_C( 233911840) },
},
{ { INT32_C( 2072018350), INT32_C( 741241609) },
},
{ { INT32_C( 88412086), -INT32_C( 1480882065) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_s32(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 149455343), -INT32_C( 818642956) },
},
{ { INT32_C( 2049044700), -INT32_C( 1172643403) },
},
{ { -INT32_C( 1629876328), -INT32_C( 1237868355) },
},
{ { -INT32_C( 1013774000), INT32_C( 406067718) },
},
{ { -INT32_C( 1945154664), -INT32_C( 1487125301) },
},
{ { -INT32_C( 383681228), -INT32_C( 157074594) },
},
{ { INT32_C( 143949130), INT32_C( 1857997854) },
},
{ { -INT32_C( 617524779), INT32_C( 66283115) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_s32(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 895446699), INT32_C( 1960405026) },
},
{ { INT32_C( 439627100), -INT32_C( 1280121677) },
},
{ { -INT32_C( 41083772), INT32_C( 1619246791) },
},
{ { -INT32_C( 1666539493), -INT32_C( 179584609) },
},
{ { INT32_C( 1975511890), -INT32_C( 1326868140) },
},
{ { INT32_C( 2043289030), -INT32_C( 2043839230) },
},
{ { INT32_C( 1636022937), -INT32_C( 1816066440) },
},
{ { INT32_C( 1160735654), INT32_C( 2134538796) },
},
};
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_private a_ = simde_int32x2_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_s32(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 7859406109924154012) },
},
{ { INT64_C( 8049504884380889405) },
},
{ { INT64_C( 9100164763748731086) },
},
{ { INT64_C( 4674145817308398404) },
},
{ { INT64_C( 5901648540621360268) },
},
{ { -INT64_C( 7509089612126145969) },
},
{ { INT64_C( 1982760133211688802) },
},
{ { INT64_C( 201577274414764208) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_s64(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[1];
} test_vec[] = {
{ { -INT64_C( 9087886216328385184) },
},
{ { -INT64_C( 5531611665732542435) },
},
{ { INT64_C( 1909430669626039079) },
},
{ { INT64_C( 3587155385237390099) },
},
{ { -INT64_C( 3444164426624836849) },
},
{ { -INT64_C( 5120178736133780034) },
},
{ { -INT64_C( 540421074411963309) },
},
{ { -INT64_C( 1778925326933183155) },
},
};
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_private a_ = simde_int64x1_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_s64(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C( 36), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(244), SIMDE_POLY8_C(111), SIMDE_POLY8_C(188) },
},
{ { SIMDE_POLY8_C(160), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(104), SIMDE_POLY8_C(116), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 44) },
},
{ { SIMDE_POLY8_C(222), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(191), SIMDE_POLY8_C(146), SIMDE_POLY8_C(106), SIMDE_POLY8_C(110) },
},
{ { SIMDE_POLY8_C(218), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(146), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 81) },
},
{ { SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(220) },
},
{ { SIMDE_POLY8_C(102), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(206), SIMDE_POLY8_C(239), SIMDE_POLY8_C(115), SIMDE_POLY8_C(251), SIMDE_POLY8_C(205) },
},
{ { SIMDE_POLY8_C(240), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(230), SIMDE_POLY8_C(176), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(171) },
},
{ { SIMDE_POLY8_C(141), SIMDE_POLY8_C(177), SIMDE_POLY8_C(118), SIMDE_POLY8_C(186), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 12), SIMDE_POLY8_C( 77) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_p8(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(147), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(234), SIMDE_POLY8_C(152), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(158) },
},
{ { SIMDE_POLY8_C(207), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(245), SIMDE_POLY8_C(245) },
},
{ { SIMDE_POLY8_C(157), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(191), SIMDE_POLY8_C(160), SIMDE_POLY8_C(210), SIMDE_POLY8_C(250), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 44) },
},
{ { SIMDE_POLY8_C(171), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(191), SIMDE_POLY8_C(237) },
},
{ { SIMDE_POLY8_C( 88), SIMDE_POLY8_C(206), SIMDE_POLY8_C(215), SIMDE_POLY8_C(240), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 34), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 35) },
},
{ { SIMDE_POLY8_C( 52), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(247), SIMDE_POLY8_C(137) },
},
{ { SIMDE_POLY8_C(124), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 0), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 91) },
},
{ { SIMDE_POLY8_C( 35), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(124), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 58) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_p8(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(22055), SIMDE_POLY16_C(19585), SIMDE_POLY16_C(41250), SIMDE_POLY16_C( 5379) },
},
{ { SIMDE_POLY16_C(46099), SIMDE_POLY16_C(50569), SIMDE_POLY16_C(55295), SIMDE_POLY16_C(25373) },
},
{ { SIMDE_POLY16_C(12707), SIMDE_POLY16_C(64309), SIMDE_POLY16_C(48160), SIMDE_POLY16_C(47304) },
},
{ { SIMDE_POLY16_C( 8583), SIMDE_POLY16_C(32183), SIMDE_POLY16_C(59924), SIMDE_POLY16_C(15474) },
},
{ { SIMDE_POLY16_C(62272), SIMDE_POLY16_C(25224), SIMDE_POLY16_C(35988), SIMDE_POLY16_C(43127) },
},
{ { SIMDE_POLY16_C( 64), SIMDE_POLY16_C(16493), SIMDE_POLY16_C(35799), SIMDE_POLY16_C(31395) },
},
{ { SIMDE_POLY16_C(55484), SIMDE_POLY16_C(56437), SIMDE_POLY16_C(16020), SIMDE_POLY16_C( 7316) },
},
{ { SIMDE_POLY16_C(19295), SIMDE_POLY16_C(29593), SIMDE_POLY16_C( 3125), SIMDE_POLY16_C(30383) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_p16(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(26293), SIMDE_POLY16_C( 7173), SIMDE_POLY16_C(54818), SIMDE_POLY16_C(60544) },
},
{ { SIMDE_POLY16_C(24048), SIMDE_POLY16_C(55271), SIMDE_POLY16_C(28786), SIMDE_POLY16_C(63191) },
},
{ { SIMDE_POLY16_C(50441), SIMDE_POLY16_C(40165), SIMDE_POLY16_C(56905), SIMDE_POLY16_C( 1621) },
},
{ { SIMDE_POLY16_C(60501), SIMDE_POLY16_C(36105), SIMDE_POLY16_C(15052), SIMDE_POLY16_C(33289) },
},
{ { SIMDE_POLY16_C( 3744), SIMDE_POLY16_C(50078), SIMDE_POLY16_C( 7908), SIMDE_POLY16_C(54703) },
},
{ { SIMDE_POLY16_C(38523), SIMDE_POLY16_C(61100), SIMDE_POLY16_C(33542), SIMDE_POLY16_C( 4068) },
},
{ { SIMDE_POLY16_C(51528), SIMDE_POLY16_C(37292), SIMDE_POLY16_C( 424), SIMDE_POLY16_C(64920) },
},
{ { SIMDE_POLY16_C(41454), SIMDE_POLY16_C(47754), SIMDE_POLY16_C(38108), SIMDE_POLY16_C(31804) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_p16(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 8751185780542309541) },
},
{ { SIMDE_POLY64_C( 1964445804772003291) },
},
{ { SIMDE_POLY64_C(10563097091345027527) },
},
{ { SIMDE_POLY64_C(14780275390623131008) },
},
{ { SIMDE_POLY64_C( 1886520334338935450) },
},
{ { SIMDE_POLY64_C( 322713523396222801) },
},
{ { SIMDE_POLY64_C( 4033920933575331731) },
},
{ { SIMDE_POLY64_C( 3996921152915932802) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_p64(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C(15807686447648144263) },
},
{ { SIMDE_POLY64_C(13586087338080146970) },
},
{ { SIMDE_POLY64_C( 1229395662396261383) },
},
{ { SIMDE_POLY64_C( 3399258566591543321) },
},
{ { SIMDE_POLY64_C( 5224131783317520018) },
},
{ { SIMDE_POLY64_C(12978948260242732014) },
},
{ { SIMDE_POLY64_C( 8100327936849454977) },
},
{ { SIMDE_POLY64_C(17831050982460608157) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_p64(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -703.61), SIMDE_FLOAT32_C( -199.03) },
},
{ { SIMDE_FLOAT32_C( -275.51), SIMDE_FLOAT32_C( -704.61) },
},
{ { SIMDE_FLOAT32_C( 166.82), SIMDE_FLOAT32_C( 78.78) },
},
{ { SIMDE_FLOAT32_C( 393.16), SIMDE_FLOAT32_C( 135.85) },
},
{ { SIMDE_FLOAT32_C( -375.89), SIMDE_FLOAT32_C( -388.41) },
},
{ { SIMDE_FLOAT32_C( 975.54), SIMDE_FLOAT32_C( 66.77) },
},
{ { SIMDE_FLOAT32_C( -130.34), SIMDE_FLOAT32_C( -425.75) },
},
{ { SIMDE_FLOAT32_C( 31.57), SIMDE_FLOAT32_C( 530.63) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_f32(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 679.90), SIMDE_FLOAT32_C( 888.01) },
},
{ { SIMDE_FLOAT32_C( 262.65), SIMDE_FLOAT32_C( 704.41) },
},
{ { SIMDE_FLOAT32_C( -705.92), SIMDE_FLOAT32_C( -576.78) },
},
{ { SIMDE_FLOAT32_C( 514.37), SIMDE_FLOAT32_C( -767.53) },
},
{ { SIMDE_FLOAT32_C( 476.11), SIMDE_FLOAT32_C( -765.14) },
},
{ { SIMDE_FLOAT32_C( 623.02), SIMDE_FLOAT32_C( -915.78) },
},
{ { SIMDE_FLOAT32_C( -765.19), SIMDE_FLOAT32_C( -713.01) },
},
{ { SIMDE_FLOAT32_C( 118.88), SIMDE_FLOAT32_C( 271.57) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_f32(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
} test_vec[] = {
{{ SIMDE_FLOAT16_VALUE( -937.50), SIMDE_FLOAT16_VALUE( 311.75), SIMDE_FLOAT16_VALUE( -23.30), SIMDE_FLOAT16_VALUE( 600.50) }},
{{ SIMDE_FLOAT16_VALUE( 438.25), SIMDE_FLOAT16_VALUE( -31.77), SIMDE_FLOAT16_VALUE( -916.50), SIMDE_FLOAT16_VALUE( 172.62) }},
{{ SIMDE_FLOAT16_VALUE( -668.50), SIMDE_FLOAT16_VALUE( 294.75), SIMDE_FLOAT16_VALUE( -77.69), SIMDE_FLOAT16_VALUE( -135.62) }},
{{ SIMDE_FLOAT16_VALUE( -130.88), SIMDE_FLOAT16_VALUE( 569.00), SIMDE_FLOAT16_VALUE( -618.50), SIMDE_FLOAT16_VALUE( -238.50) }},
{{ SIMDE_FLOAT16_VALUE( -396.00), SIMDE_FLOAT16_VALUE( -605.50), SIMDE_FLOAT16_VALUE( -576.50), SIMDE_FLOAT16_VALUE( 8.46) }},
{{ SIMDE_FLOAT16_VALUE( 902.00), SIMDE_FLOAT16_VALUE( 283.50), SIMDE_FLOAT16_VALUE( -336.75), SIMDE_FLOAT16_VALUE( 741.00) }},
{{ SIMDE_FLOAT16_VALUE( -499.00), SIMDE_FLOAT16_VALUE( 515.00), SIMDE_FLOAT16_VALUE( -923.50), SIMDE_FLOAT16_VALUE( 880.00) }},
{{ SIMDE_FLOAT16_VALUE( 410.75), SIMDE_FLOAT16_VALUE( 970.50), SIMDE_FLOAT16_VALUE( -704.50), SIMDE_FLOAT16_VALUE( 473.25) }}
};
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_private a_ = simde_float16x4_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_f16(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -519.07), SIMDE_FLOAT32_C( -844.22) },
},
{ { SIMDE_FLOAT32_C( -231.95), SIMDE_FLOAT32_C( -916.84) },
},
{ { SIMDE_FLOAT32_C( 514.42), SIMDE_FLOAT32_C( -429.97) },
},
{ { SIMDE_FLOAT32_C( 411.33), SIMDE_FLOAT32_C( -473.13) },
},
{ { SIMDE_FLOAT32_C( 825.45), SIMDE_FLOAT32_C( -559.04) },
},
{ { SIMDE_FLOAT32_C( 33.66), SIMDE_FLOAT32_C( -851.23) },
},
{ { SIMDE_FLOAT32_C( -750.80), SIMDE_FLOAT32_C( 708.79) },
},
{ { SIMDE_FLOAT32_C( 71.84), SIMDE_FLOAT32_C( 585.91) },
},
};
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_private a_ = simde_float32x2_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_f32(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 642.50) },
},
{ { SIMDE_FLOAT64_C( -99.78) },
},
{ { SIMDE_FLOAT64_C( 942.91) },
},
{ { SIMDE_FLOAT64_C( -784.51) },
},
{ { SIMDE_FLOAT64_C( 20.18) },
},
{ { SIMDE_FLOAT64_C( 600.51) },
},
{ { SIMDE_FLOAT64_C( -214.07) },
},
{ { SIMDE_FLOAT64_C( -775.71) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_f64(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -646.34) },
},
{ { SIMDE_FLOAT64_C( 355.80) },
},
{ { SIMDE_FLOAT64_C( -63.18) },
},
{ { SIMDE_FLOAT64_C( 300.54) },
},
{ { SIMDE_FLOAT64_C( -572.37) },
},
{ { SIMDE_FLOAT64_C( -193.89) },
},
{ { SIMDE_FLOAT64_C( -662.99) },
},
{ { SIMDE_FLOAT64_C( 16.90) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_f64(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 417.49) },
},
{ { SIMDE_FLOAT64_C( -757.56) },
},
{ { SIMDE_FLOAT64_C( -880.56) },
},
{ { SIMDE_FLOAT64_C( 795.04) },
},
{ { SIMDE_FLOAT64_C( -500.89) },
},
{ { SIMDE_FLOAT64_C( -877.89) },
},
{ { SIMDE_FLOAT64_C( 559.74) },
},
{ { SIMDE_FLOAT64_C( 235.55) },
},
};
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_private a_ = simde_float64x1_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_f64(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_f16(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_f16(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( -49.28), SIMDE_FLOAT16_VALUE( -109.00), SIMDE_FLOAT16_VALUE( -626.50), SIMDE_FLOAT16_VALUE( -567.00) } },
{ { SIMDE_FLOAT16_VALUE( -178.88), SIMDE_FLOAT16_VALUE( 10.22), SIMDE_FLOAT16_VALUE( 976.50), SIMDE_FLOAT16_VALUE( -31.19) } },
{ { SIMDE_FLOAT16_VALUE( -228.12), SIMDE_FLOAT16_VALUE( -98.75), SIMDE_FLOAT16_VALUE( 350.00), SIMDE_FLOAT16_VALUE( -598.00) } },
{ { SIMDE_FLOAT16_VALUE( -226.00), SIMDE_FLOAT16_VALUE( -520.50), SIMDE_FLOAT16_VALUE( -252.38), SIMDE_FLOAT16_VALUE( -407.50) } },
{ { SIMDE_FLOAT16_VALUE( 89.44), SIMDE_FLOAT16_VALUE( -200.50), SIMDE_FLOAT16_VALUE( -439.75), SIMDE_FLOAT16_VALUE( -450.75) } },
{ { SIMDE_FLOAT16_VALUE( -136.50), SIMDE_FLOAT16_VALUE( -721.00), SIMDE_FLOAT16_VALUE( -692.00), SIMDE_FLOAT16_VALUE( -858.00) } },
{ { SIMDE_FLOAT16_VALUE( -833.00), SIMDE_FLOAT16_VALUE( -714.00), SIMDE_FLOAT16_VALUE( 428.50), SIMDE_FLOAT16_VALUE( 871.50) } },
{ { SIMDE_FLOAT16_VALUE( -157.12), SIMDE_FLOAT16_VALUE( 972.50), SIMDE_FLOAT16_VALUE( 298.75), SIMDE_FLOAT16_VALUE( -919.50) } },
{ { SIMDE_FLOAT16_VALUE( -990.00), SIMDE_FLOAT16_VALUE( 258.50), SIMDE_FLOAT16_VALUE( 727.00), SIMDE_FLOAT16_VALUE( -48.00) } },
};
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_private a_ = simde_float16x4_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_f16(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
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_test_arm_neon_write_f16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_f16(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 47), -INT8_C( 102), -INT8_C( 31), INT8_C( 11), INT8_C( 32), -INT8_C( 41), -INT8_C( 85), -INT8_C( 54),
INT8_C( 70), -INT8_C( 47), INT8_C( 16), -INT8_C( 62), INT8_C( 57), -INT8_C( 93), -INT8_C( 83), INT8_C( 62) },
},
{ { -INT8_C( 12), INT8_C( 20), -INT8_C( 76), INT8_C( 35), -INT8_C( 2), -INT8_C( 107), -INT8_C( 1), -INT8_C( 124),
INT8_C( 58), INT8_C( 57), -INT8_C( 54), -INT8_C( 62), INT8_C( 112), INT8_C( 79), INT8_C( 71), INT8_C( 65) },
},
{ { -INT8_C( 23), INT8_C( 41), INT8_C( 76), INT8_C( 9), INT8_C( 0), -INT8_C( 9), -INT8_C( 45), INT8_C( 70),
-INT8_C( 55), -INT8_C( 29), INT8_C( 8), INT8_C( 2), -INT8_C( 121), -INT8_C( 75), INT8_C( 64), INT8_C( 123) },
},
{ { -INT8_C( 55), -INT8_C( 12), -INT8_C( 98), -INT8_C( 57), -INT8_C( 119), -INT8_C( 99), INT8_C( 76), -INT8_C( 60),
-INT8_C( 41), INT8_C( 22), -INT8_C( 122), INT8_C( 71), INT8_C( 101), -INT8_C( 50), -INT8_C( 119), INT8_C( 78) },
},
{ { -INT8_C( 9), -INT8_C( 43), INT8_C( 88), -INT8_C( 9), -INT8_C( 51), INT8_C( 43), INT8_C( 61), -INT8_C( 106),
INT8_C( 15), INT8_C( 69), -INT8_C( 104), -INT8_C( 106), -INT8_C( 6), -INT8_C( 39), INT8_C( 17), -INT8_C( 61) },
},
{ { -INT8_C( 51), -INT8_C( 81), -INT8_C( 118), INT8_C( 87), INT8_C( 77), -INT8_C( 42), INT8_C( 27), INT8_C( 36),
-INT8_C( 19), -INT8_C( 95), INT8_C( 107), INT8_C( 82), INT8_C( 111), -INT8_C( 12), -INT8_C( 95), INT8_C( 102) },
},
{ { -INT8_C( 54), -INT8_C( 7), INT8_C( 93), -INT8_C( 105), INT8_C( 36), -INT8_C( 102), INT8_C( 45), INT8_C( 51),
-INT8_C( 33), -INT8_C( 59), -INT8_C( 55), -INT8_C( 39), -INT8_C( 98), -INT8_C( 38), -INT8_C( 100), INT8_C( 108) },
},
{ { -INT8_C( 118), INT8_C( 39), -INT8_C( 61), -INT8_C( 41), -INT8_C( 3), -INT8_C( 34), -INT8_C( 5), -INT8_C( 22),
INT8_MAX, INT8_C( 102), INT8_C( 61), -INT8_C( 17), INT8_C( 91), -INT8_C( 34), INT8_C( 85), INT8_C( 37) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_s8(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 32), INT8_C( 116), INT8_C( 72), INT8_C( 76), INT8_C( 122), INT8_MAX, -INT8_C( 53), INT8_C( 119),
-INT8_C( 39), INT8_C( 60), -INT8_C( 101), -INT8_C( 31), INT8_C( 40), INT8_C( 95), -INT8_C( 92), -INT8_C( 22) },
},
{ { INT8_C( 41), INT8_C( 0), INT8_C( 1), INT8_C( 27), -INT8_C( 65), -INT8_C( 19), -INT8_C( 52), INT8_C( 119),
INT8_C( 114), -INT8_C( 122), -INT8_C( 126), INT8_C( 22), -INT8_C( 64), -INT8_C( 26), INT8_C( 34), -INT8_C( 96) },
},
{ { INT8_C( 90), INT8_C( 106), -INT8_C( 19), -INT8_C( 43), -INT8_C( 22), -INT8_C( 72), INT8_C( 76), -INT8_C( 61),
-INT8_C( 11), -INT8_C( 25), -INT8_C( 92), INT8_C( 29), INT8_C( 70), INT8_C( 73), INT8_C( 7), INT8_C( 111) },
},
{ { INT8_C( 73), INT8_C( 8), -INT8_C( 118), INT8_C( 8), -INT8_C( 11), INT8_C( 86), INT8_MAX, INT8_C( 104),
-INT8_C( 36), INT8_C( 1), INT8_C( 126), -INT8_C( 99), -INT8_C( 25), -INT8_C( 95), INT8_C( 61), INT8_C( 66) },
},
{ { INT8_C( 11), INT8_C( 42), INT8_C( 23), -INT8_C( 11), -INT8_C( 29), INT8_C( 99), -INT8_C( 72), -INT8_C( 40),
INT8_C( 74), INT8_C( 93), -INT8_C( 11), -INT8_C( 111), -INT8_C( 90), -INT8_C( 4), INT8_C( 0), -INT8_C( 17) },
},
{ { INT8_C( 4), -INT8_C( 117), -INT8_C( 9), -INT8_C( 7), -INT8_C( 31), INT8_C( 118), INT8_C( 97), -INT8_C( 66),
INT8_C( 119), -INT8_C( 32), INT8_C( 91), INT8_C( 95), -INT8_C( 127), -INT8_C( 104), -INT8_C( 95), -INT8_C( 116) },
},
{ { -INT8_C( 61), -INT8_C( 72), -INT8_C( 126), -INT8_C( 90), INT8_C( 27), INT8_C( 58), INT8_C( 126), INT8_C( 101),
-INT8_C( 105), INT8_C( 115), -INT8_C( 10), INT8_C( 61), INT8_C( 111), -INT8_C( 9), INT8_C( 44), INT8_C( 115) },
},
{ { -INT8_C( 126), INT8_C( 35), INT8_C( 108), INT8_C( 99), -INT8_C( 103), -INT8_C( 50), INT8_C( 33), INT8_C( 17),
-INT8_C( 82), INT8_C( 124), INT8_C( 112), INT8_C( 47), INT8_C( 21), INT8_C( 17), -INT8_C( 69), -INT8_C( 40) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_s8(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { INT8_C( 3), INT8_C( 10), -INT8_C( 37), INT8_C( 49), INT8_C( 25), INT8_C( 54), -INT8_C( 41), -INT8_C( 110),
-INT8_C( 34), -INT8_C( 112), INT8_C( 93), INT8_C( 12), -INT8_C( 122), INT8_C( 85), -INT8_C( 15), -INT8_C( 94) },
},
{ { INT8_C( 81), -INT8_C( 62), INT8_C( 63), INT8_C( 114), -INT8_C( 14), INT8_C( 116), INT8_C( 118), -INT8_C( 98),
-INT8_C( 118), INT8_C( 40), INT8_C( 49), INT8_C( 103), -INT8_C( 67), -INT8_C( 35), INT8_C( 31), -INT8_C( 64) },
},
{ { -INT8_C( 25), -INT8_C( 6), -INT8_C( 15), INT8_C( 0), INT8_C( 49), -INT8_C( 56), -INT8_C( 109), INT8_C( 15),
INT8_C( 88), -INT8_C( 16), INT8_C( 28), -INT8_C( 34), INT8_C( 69), INT8_C( 13), -INT8_C( 127), -INT8_C( 106) },
},
{ { -INT8_C( 49), -INT8_C( 64), INT8_C( 8), -INT8_C( 63), INT8_C( 53), INT8_MAX, INT8_C( 96), -INT8_C( 65),
-INT8_C( 89), -INT8_C( 111), INT8_C( 38), INT8_C( 100), INT8_C( 110), INT8_C( 69), INT8_C( 36), INT8_C( 85) },
},
{ { INT8_C( 63), INT8_C( 21), INT8_C( 85), INT8_C( 112), -INT8_C( 35), -INT8_C( 24), INT8_MIN, INT8_C( 53),
-INT8_C( 40), -INT8_C( 100), INT8_C( 19), INT8_C( 29), -INT8_C( 87), -INT8_C( 108), -INT8_C( 76), INT8_C( 120) },
},
{ { INT8_C( 85), -INT8_C( 68), INT8_C( 57), -INT8_C( 118), INT8_C( 59), -INT8_C( 103), INT8_C( 73), -INT8_C( 30),
INT8_C( 42), INT8_C( 111), INT8_C( 70), -INT8_C( 104), -INT8_C( 76), INT8_C( 106), -INT8_C( 19), -INT8_C( 13) },
},
{ { INT8_MAX, INT8_C( 67), INT8_C( 100), INT8_C( 92), INT8_C( 43), -INT8_C( 28), -INT8_C( 111), INT8_C( 4),
INT8_MIN, -INT8_C( 91), INT8_C( 33), INT8_C( 41), INT8_C( 57), -INT8_C( 43), -INT8_C( 95), -INT8_C( 114) },
},
{ { -INT8_C( 110), -INT8_C( 38), INT8_C( 24), -INT8_C( 51), INT8_C( 116), INT8_C( 97), -INT8_C( 80), -INT8_C( 98),
-INT8_C( 48), -INT8_C( 10), INT8_C( 55), -INT8_C( 124), INT8_C( 97), INT8_C( 36), INT8_C( 120), -INT8_C( 32) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_s8(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 10869), -INT16_C( 3074), -INT16_C( 14055), -INT16_C( 27820), -INT16_C( 19316), INT16_C( 10278), INT16_C( 16875), -INT16_C( 26815) },
},
{ { INT16_C( 10309), -INT16_C( 521), -INT16_C( 22342), INT16_C( 24239), -INT16_C( 29301), INT16_C( 29629), INT16_C( 2522), INT16_C( 25958) },
},
{ { INT16_C( 25822), -INT16_C( 1960), -INT16_C( 21203), -INT16_C( 18037), -INT16_C( 19871), INT16_C( 19682), INT16_C( 9203), INT16_C( 14564) },
},
{ { -INT16_C( 9397), INT16_C( 1333), -INT16_C( 7037), INT16_C( 3939), INT16_C( 8305), INT16_C( 19330), -INT16_C( 6102), INT16_C( 2224) },
},
{ { INT16_C( 2380), INT16_C( 30976), -INT16_C( 29514), INT16_C( 5939), INT16_C( 5438), INT16_C( 12644), INT16_C( 18488), -INT16_C( 31895) },
},
{ { -INT16_C( 25053), -INT16_C( 22904), -INT16_C( 5246), -INT16_C( 3147), INT16_C( 14348), INT16_C( 13887), -INT16_C( 4320), INT16_C( 27966) },
},
{ { INT16_C( 16376), -INT16_C( 20762), INT16_C( 6603), INT16_C( 2502), INT16_C( 10798), INT16_C( 26170), -INT16_C( 23694), -INT16_C( 27159) },
},
{ { INT16_C( 28993), -INT16_C( 15557), -INT16_C( 3747), INT16_C( 27062), -INT16_C( 2775), INT16_C( 18847), -INT16_C( 8731), -INT16_C( 8778) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_s16(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 2701), INT16_C( 26145), -INT16_C( 32458), -INT16_C( 9044), INT16_C( 23783), -INT16_C( 21411), INT16_C( 2922), INT16_C( 2234) },
},
{ { -INT16_C( 386), INT16_C( 27701), -INT16_C( 15086), INT16_C( 23162), -INT16_C( 2118), -INT16_C( 6704), -INT16_C( 27867), -INT16_C( 26378) },
},
{ { INT16_C( 6024), -INT16_C( 16642), -INT16_C( 21863), -INT16_C( 32614), -INT16_C( 2298), INT16_C( 28717), -INT16_C( 6398), -INT16_C( 32391) },
},
{ { -INT16_C( 20763), -INT16_C( 2067), INT16_C( 26740), INT16_C( 11858), INT16_C( 8799), -INT16_C( 31724), INT16_C( 2742), INT16_C( 15900) },
},
{ { INT16_C( 6690), -INT16_C( 17411), -INT16_C( 26684), -INT16_C( 13765), INT16_C( 26767), -INT16_C( 28358), -INT16_C( 19632), INT16_C( 13586) },
},
{ { INT16_C( 98), -INT16_C( 10707), INT16_C( 32616), -INT16_C( 14588), INT16_C( 6305), INT16_C( 22347), INT16_C( 26403), INT16_C( 17814) },
},
{ { -INT16_C( 27775), INT16_C( 17664), INT16_C( 15146), -INT16_C( 18161), INT16_C( 18852), -INT16_C( 2997), INT16_C( 24061), INT16_C( 24361) },
},
{ { INT16_C( 22109), -INT16_C( 15051), INT16_C( 14805), INT16_C( 30604), -INT16_C( 10414), INT16_C( 30158), INT16_C( 25662), -INT16_C( 16454) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_s16(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 20852), -INT16_C( 25483), INT16_C( 22713), -INT16_C( 29124), -INT16_C( 29678), -INT16_C( 23696), INT16_C( 9074), -INT16_C( 27927) },
},
{ { -INT16_C( 21498), -INT16_C( 8110), INT16_C( 928), -INT16_C( 30088), INT16_C( 7327), INT16_C( 28745), INT16_C( 15894), -INT16_C( 23830) },
},
{ { INT16_C( 24556), -INT16_C( 23234), INT16_C( 31671), -INT16_C( 13773), -INT16_C( 23801), INT16_C( 31085), INT16_C( 22214), -INT16_C( 13300) },
},
{ { INT16_C( 24067), -INT16_C( 23636), INT16_C( 9313), INT16_C( 46), INT16_C( 30529), INT16_C( 22385), INT16_C( 23477), -INT16_C( 24071) },
},
{ { INT16_C( 14523), INT16_C( 29254), INT16_C( 31155), -INT16_C( 17860), -INT16_C( 22244), -INT16_C( 7629), INT16_C( 16128), INT16_C( 942) },
},
{ { INT16_C( 23453), -INT16_C( 90), -INT16_C( 11137), -INT16_C( 16129), INT16_C( 28748), INT16_C( 279), INT16_C( 4556), -INT16_C( 30813) },
},
{ { -INT16_C( 5815), -INT16_C( 775), INT16_C( 13923), INT16_C( 32694), -INT16_C( 5665), -INT16_C( 8350), INT16_C( 4137), -INT16_C( 14622) },
},
{ { -INT16_C( 30357), -INT16_C( 5179), -INT16_C( 15011), -INT16_C( 22101), -INT16_C( 15563), INT16_C( 427), INT16_C( 20180), INT16_C( 7560) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_s16(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 689895481), -INT32_C( 1859332607), -INT32_C( 1547664472), -INT32_C( 1320526320) },
},
{ { INT32_C( 689737540), INT32_C( 2062555401), -INT32_C( 448572611), INT32_C( 340183628) },
},
{ { -INT32_C( 756406063), -INT32_C( 1503389954), -INT32_C( 1438047079), -INT32_C( 950299518) },
},
{ { INT32_C( 753956643), -INT32_C( 844701552), -INT32_C( 2135693005), -INT32_C( 2070611533) },
},
{ { INT32_C( 525827617), INT32_C( 784776085), INT32_C( 1641549791), -INT32_C( 970443613) },
},
{ { INT32_C( 1022498987), INT32_C( 738826489), INT32_C( 900512898), -INT32_C( 675659594) },
},
{ { INT32_C( 1425478079), -INT32_C( 1417495092), INT32_C( 1879858124), INT32_C( 976631183) },
},
{ { INT32_C( 1182148941), INT32_C( 1131643073), -INT32_C( 226943172), INT32_C( 533345120) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_s32(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 1719971275), INT32_C( 1718980383), INT32_C( 225699668), INT32_C( 2059234434) },
},
{ { INT32_C( 356859972), -INT32_C( 729828136), -INT32_C( 1784676808), INT32_C( 1301308951) },
},
{ { -INT32_C( 656012359), -INT32_C( 297902950), -INT32_C( 956518077), INT32_C( 1631631645) },
},
{ { -INT32_C( 780695815), INT32_C( 1923479098), INT32_C( 185091316), INT32_C( 1683527851) },
},
{ { INT32_C( 1044135844), -INT32_C( 567444837), INT32_C( 1218717995), -INT32_C( 609622558) },
},
{ { -INT32_C( 1515446165), INT32_C( 169300502), INT32_C( 1091968918), INT32_C( 1554345656) },
},
{ { INT32_C( 1218109869), -INT32_C( 2044213413), -INT32_C( 758199312), INT32_C( 464353456) },
},
{ { -INT32_C( 1346348392), INT32_C( 1119475884), -INT32_C( 1350250505), -INT32_C( 351590082) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_s32(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 836308430), -INT32_C( 20823114), -INT32_C( 1341228176), -INT32_C( 1296687314) },
},
{ { -INT32_C( 1443363026), -INT32_C( 1323579037), -INT32_C( 865858227), -INT32_C( 196110654) },
},
{ { INT32_C( 1069774217), INT32_C( 691897784), INT32_C( 785992448), -INT32_C( 1730048150) },
},
{ { -INT32_C( 113124970), -INT32_C( 257270622), INT32_C( 750521962), INT32_C( 757140388) },
},
{ { INT32_C( 963437697), INT32_C( 1768073577), INT32_C( 1586969588), INT32_C( 1626765514) },
},
{ { -INT32_C( 195479471), -INT32_C( 18611308), -INT32_C( 1238654959), INT32_C( 769871020) },
},
{ { -INT32_C( 1721348048), -INT32_C( 301807111), -INT32_C( 817063676), INT32_C( 1664041746) },
},
{ { INT32_C( 257395067), -INT32_C( 1643234420), -INT32_C( 2007746084), -INT32_C( 1246414971) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_s32(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 3917874066034605442), -INT64_C( 1949064800907001111) },
},
{ { INT64_C( 546159014590848953), INT64_C( 396535052162892911) },
},
{ { -INT64_C( 7089481973961799031), -INT64_C( 7610395224178797157) },
},
{ { -INT64_C( 4984901720799776239), INT64_C( 5450384428367346454) },
},
{ { -INT64_C( 3403951431896589199), -INT64_C( 4357881682333843182) },
},
{ { INT64_C( 3218210159869166500), -INT64_C( 1627648328125984676) },
},
{ { INT64_C( 6309491700457769098), INT64_C( 3785499309450386962) },
},
{ { -INT64_C( 3165524243452323889), -INT64_C( 3098938020335461220) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_s64(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { INT64_C( 2688746253838422578), INT64_C( 6716962639529351604) },
},
{ { -INT64_C( 7712284921796853919), INT64_C( 2773637878869444097) },
},
{ { -INT64_C( 4818748208638480254), -INT64_C( 6250232908632565769) },
},
{ { INT64_C( 7747105512504161589), -INT64_C( 8565703520504441083) },
},
{ { -INT64_C( 9009270136648749774), INT64_C( 7164569695744980859) },
},
{ { -INT64_C( 543294039713008481), INT64_C( 3421630694511770347) },
},
{ { INT64_C( 2255567448309366847), -INT64_C( 42415447632333351) },
},
{ { INT64_C( 8930496842383866627), INT64_C( 3613551510055412217) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_s64(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 7785086221317720197), -INT64_C( 3333025110275361121) },
},
{ { INT64_C( 557425576608416606), INT64_C( 2865286261606638736) },
},
{ { -INT64_C( 4239772750377888703), -INT64_C( 3177635380408631869) },
},
{ { INT64_C( 5524890609138883593), INT64_C( 6201906476984207934) },
},
{ { INT64_C( 8779790245809580525), -INT64_C( 5973333706829537326) },
},
{ { INT64_C( 5825966948614322385), INT64_C( 3887533678598467464) },
},
{ { -INT64_C( 4186904048721928523), -INT64_C( 5093246922952772609) },
},
{ { INT64_C( 3044468128483812318), INT64_C( 8884400049866898126) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_s64(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 82), SIMDE_POLY8_C(199), SIMDE_POLY8_C(185), SIMDE_POLY8_C(196), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(140),
SIMDE_POLY8_C(219), SIMDE_POLY8_C(212), SIMDE_POLY8_C(210), SIMDE_POLY8_C(116), SIMDE_POLY8_C(240), SIMDE_POLY8_C(118), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 68) },
},
{ { SIMDE_POLY8_C( 44), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(208),
SIMDE_POLY8_C( 89), SIMDE_POLY8_C(217), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(216), SIMDE_POLY8_C(154), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 42) },
},
{ { SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(239), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(119), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 82),
SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(199), SIMDE_POLY8_C(241), SIMDE_POLY8_C(213), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 1) },
},
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(188),
SIMDE_POLY8_C(222), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(223), SIMDE_POLY8_C(183), SIMDE_POLY8_C(237), SIMDE_POLY8_C(110), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 78) },
},
{ { SIMDE_POLY8_C(182), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(253), SIMDE_POLY8_C(218), SIMDE_POLY8_C(128), SIMDE_POLY8_C(254),
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(234) },
},
{ { SIMDE_POLY8_C(101), SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(122), SIMDE_POLY8_C(132), SIMDE_POLY8_C(245),
SIMDE_POLY8_C(205), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(172), SIMDE_POLY8_C(186), SIMDE_POLY8_C(209), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(135) },
},
{ { SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(105),
SIMDE_POLY8_C(123), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(108), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(209) },
},
{ { SIMDE_POLY8_C(151), SIMDE_POLY8_C(100), SIMDE_POLY8_C(153), SIMDE_POLY8_C(173), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(162), SIMDE_POLY8_C(171),
SIMDE_POLY8_C(128), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(220), SIMDE_POLY8_C(110), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 58) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_p8(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(176), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 12),
SIMDE_POLY8_C(238), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(160), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(163), SIMDE_POLY8_C(194) },
},
{ { SIMDE_POLY8_C( 84), SIMDE_POLY8_C(146), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(164), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C(252), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(178) },
},
{ { SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(237), SIMDE_POLY8_C(119), SIMDE_POLY8_C(141), SIMDE_POLY8_C(165), SIMDE_POLY8_C(131), SIMDE_POLY8_C(123),
SIMDE_POLY8_C(107), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(130), SIMDE_POLY8_C(232), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 60) },
},
{ { SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(104), SIMDE_POLY8_C(102), SIMDE_POLY8_C(162), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(110), SIMDE_POLY8_C(158),
SIMDE_POLY8_C( 95), SIMDE_POLY8_C(178), SIMDE_POLY8_C(154), SIMDE_POLY8_C( 97), SIMDE_POLY8_C(153), SIMDE_POLY8_C(217), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(175) },
},
{ { SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(176), SIMDE_POLY8_C(165), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 17),
SIMDE_POLY8_C(111), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(215), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 86) },
},
{ { SIMDE_POLY8_C( 41), SIMDE_POLY8_C(252), SIMDE_POLY8_C(188), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(106), SIMDE_POLY8_C(103),
SIMDE_POLY8_C(221), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(200), SIMDE_POLY8_C(119), SIMDE_POLY8_C(221), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 0) },
},
{ { SIMDE_POLY8_C(220), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(177), SIMDE_POLY8_C(130), SIMDE_POLY8_C(247), SIMDE_POLY8_C(221), SIMDE_POLY8_C(147), SIMDE_POLY8_C(102),
SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 39) },
},
{ { SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(191), SIMDE_POLY8_C( 70),
SIMDE_POLY8_C( 96), SIMDE_POLY8_C(136), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(100), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 64) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_p8(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(31179), SIMDE_POLY16_C(62043), SIMDE_POLY16_C(34234), SIMDE_POLY16_C(60575), SIMDE_POLY16_C(14522), SIMDE_POLY16_C(65218), SIMDE_POLY16_C(28205), SIMDE_POLY16_C( 2962) },
},
{ { SIMDE_POLY16_C(26700), SIMDE_POLY16_C( 7147), SIMDE_POLY16_C(59748), SIMDE_POLY16_C( 4323), SIMDE_POLY16_C(15518), SIMDE_POLY16_C(23427), SIMDE_POLY16_C(47621), SIMDE_POLY16_C(53345) },
},
{ { SIMDE_POLY16_C(48179), SIMDE_POLY16_C(60866), SIMDE_POLY16_C(24898), SIMDE_POLY16_C(64729), SIMDE_POLY16_C(40089), SIMDE_POLY16_C(51194), SIMDE_POLY16_C(35850), SIMDE_POLY16_C(22482) },
},
{ { SIMDE_POLY16_C(48884), SIMDE_POLY16_C(22898), SIMDE_POLY16_C(21927), SIMDE_POLY16_C(17769), SIMDE_POLY16_C(60562), SIMDE_POLY16_C(38816), SIMDE_POLY16_C( 423), SIMDE_POLY16_C(55911) },
},
{ { SIMDE_POLY16_C(10686), SIMDE_POLY16_C( 200), SIMDE_POLY16_C(41354), SIMDE_POLY16_C( 9468), SIMDE_POLY16_C(63037), SIMDE_POLY16_C(18667), SIMDE_POLY16_C(48515), SIMDE_POLY16_C(30623) },
},
{ { SIMDE_POLY16_C( 4475), SIMDE_POLY16_C( 8912), SIMDE_POLY16_C(14694), SIMDE_POLY16_C(63591), SIMDE_POLY16_C( 2086), SIMDE_POLY16_C(52623), SIMDE_POLY16_C(62985), SIMDE_POLY16_C(51111) },
},
{ { SIMDE_POLY16_C(28447), SIMDE_POLY16_C(43719), SIMDE_POLY16_C(49937), SIMDE_POLY16_C(20174), SIMDE_POLY16_C(47546), SIMDE_POLY16_C(15766), SIMDE_POLY16_C(13686), SIMDE_POLY16_C(62132) },
},
{ { SIMDE_POLY16_C(34118), SIMDE_POLY16_C(44308), SIMDE_POLY16_C(31934), SIMDE_POLY16_C(58533), SIMDE_POLY16_C(13700), SIMDE_POLY16_C(36273), SIMDE_POLY16_C(22827), SIMDE_POLY16_C(19285) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_p16(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(37256), SIMDE_POLY16_C( 7287), SIMDE_POLY16_C(13665), SIMDE_POLY16_C(19885), SIMDE_POLY16_C(39602), SIMDE_POLY16_C(36139), SIMDE_POLY16_C(23663), SIMDE_POLY16_C(43651) },
},
{ { SIMDE_POLY16_C(43283), SIMDE_POLY16_C(33404), SIMDE_POLY16_C(53825), SIMDE_POLY16_C(39703), SIMDE_POLY16_C(31803), SIMDE_POLY16_C( 7036), SIMDE_POLY16_C(31574), SIMDE_POLY16_C(56904) },
},
{ { SIMDE_POLY16_C(49164), SIMDE_POLY16_C(28154), SIMDE_POLY16_C(43253), SIMDE_POLY16_C(43194), SIMDE_POLY16_C(58690), SIMDE_POLY16_C(45365), SIMDE_POLY16_C(47426), SIMDE_POLY16_C(21851) },
},
{ { SIMDE_POLY16_C(55394), SIMDE_POLY16_C(41943), SIMDE_POLY16_C(61098), SIMDE_POLY16_C(58687), SIMDE_POLY16_C(47979), SIMDE_POLY16_C(49408), SIMDE_POLY16_C(18742), SIMDE_POLY16_C(17056) },
},
{ { SIMDE_POLY16_C(39433), SIMDE_POLY16_C(65199), SIMDE_POLY16_C(26946), SIMDE_POLY16_C(33958), SIMDE_POLY16_C(56399), SIMDE_POLY16_C(37174), SIMDE_POLY16_C(37269), SIMDE_POLY16_C(63462) },
},
{ { SIMDE_POLY16_C(48489), SIMDE_POLY16_C( 5019), SIMDE_POLY16_C(55980), SIMDE_POLY16_C( 6137), SIMDE_POLY16_C(63893), SIMDE_POLY16_C(52440), SIMDE_POLY16_C(30786), SIMDE_POLY16_C(19214) },
},
{ { SIMDE_POLY16_C(48659), SIMDE_POLY16_C(21834), SIMDE_POLY16_C(61479), SIMDE_POLY16_C(30426), SIMDE_POLY16_C( 4300), SIMDE_POLY16_C(24839), SIMDE_POLY16_C(60833), SIMDE_POLY16_C( 2905) },
},
{ { SIMDE_POLY16_C(62635), SIMDE_POLY16_C(22302), SIMDE_POLY16_C( 6094), SIMDE_POLY16_C(25454), SIMDE_POLY16_C(17937), SIMDE_POLY16_C(21295), SIMDE_POLY16_C(16063), SIMDE_POLY16_C(53919) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_p16(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_p64(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 4581232213571832684), SIMDE_POLY64_C( 1476113207327915279) },
},
{ { SIMDE_POLY64_C( 1473717667153826830), SIMDE_POLY64_C( 3779245527683887938) },
},
{ { SIMDE_POLY64_C(15405631003950577694), SIMDE_POLY64_C( 1801577341105853896) },
},
{ { SIMDE_POLY64_C(16199323197070044241), SIMDE_POLY64_C( 1548692872333386625) },
},
{ { SIMDE_POLY64_C( 5306202986939200775), SIMDE_POLY64_C( 8315111807944860737) },
},
{ { SIMDE_POLY64_C(10277774060136857378), SIMDE_POLY64_C( 6083332082561989985) },
},
{ { SIMDE_POLY64_C(13390826188593827083), SIMDE_POLY64_C( 7133537160237746794) },
},
{ { SIMDE_POLY64_C(10125996505298054890), SIMDE_POLY64_C(13808688142819286529) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_p64(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 666.23), SIMDE_FLOAT32_C( -544.03), SIMDE_FLOAT32_C( 130.05), SIMDE_FLOAT32_C( -777.18) },
},
{ { SIMDE_FLOAT32_C( 521.70), SIMDE_FLOAT32_C( 33.98), SIMDE_FLOAT32_C( -958.60), SIMDE_FLOAT32_C( -408.56) },
},
{ { SIMDE_FLOAT32_C( 396.34), SIMDE_FLOAT32_C( -364.03), SIMDE_FLOAT32_C( 719.77), SIMDE_FLOAT32_C( 483.05) },
},
{ { SIMDE_FLOAT32_C( 307.42), SIMDE_FLOAT32_C( 916.12), SIMDE_FLOAT32_C( -506.50), SIMDE_FLOAT32_C( 167.94) },
},
{ { SIMDE_FLOAT32_C( 796.69), SIMDE_FLOAT32_C( -227.61), SIMDE_FLOAT32_C( 168.78), SIMDE_FLOAT32_C( 769.87) },
},
{ { SIMDE_FLOAT32_C( 237.37), SIMDE_FLOAT32_C( -942.90), SIMDE_FLOAT32_C( 126.56), SIMDE_FLOAT32_C( -99.19) },
},
{ { SIMDE_FLOAT32_C( 684.50), SIMDE_FLOAT32_C( 809.18), SIMDE_FLOAT32_C( 523.87), SIMDE_FLOAT32_C( 945.93) },
},
{ { SIMDE_FLOAT32_C( 492.61), SIMDE_FLOAT32_C( 718.52), SIMDE_FLOAT32_C( -237.77), SIMDE_FLOAT32_C( 158.83) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_f32(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -555.05), SIMDE_FLOAT32_C( 929.17), SIMDE_FLOAT32_C( -878.30), SIMDE_FLOAT32_C( 403.08) },
},
{ { SIMDE_FLOAT32_C( -814.23), SIMDE_FLOAT32_C( 72.21), SIMDE_FLOAT32_C( -782.92), SIMDE_FLOAT32_C( -545.57) },
},
{ { SIMDE_FLOAT32_C( -150.39), SIMDE_FLOAT32_C( -981.73), SIMDE_FLOAT32_C( 393.48), SIMDE_FLOAT32_C( -162.45) },
},
{ { SIMDE_FLOAT32_C( -204.82), SIMDE_FLOAT32_C( -148.81), SIMDE_FLOAT32_C( -48.01), SIMDE_FLOAT32_C( -385.48) },
},
{ { SIMDE_FLOAT32_C( -745.95), SIMDE_FLOAT32_C( 651.42), SIMDE_FLOAT32_C( 885.60), SIMDE_FLOAT32_C( 882.69) },
},
{ { SIMDE_FLOAT32_C( 987.57), SIMDE_FLOAT32_C( -664.87), SIMDE_FLOAT32_C( -294.19), SIMDE_FLOAT32_C( 570.81) },
},
{ { SIMDE_FLOAT32_C( -549.84), SIMDE_FLOAT32_C( 623.57), SIMDE_FLOAT32_C( -114.75), SIMDE_FLOAT32_C( -564.92) },
},
{ { SIMDE_FLOAT32_C( 165.89), SIMDE_FLOAT32_C( -376.09), SIMDE_FLOAT32_C( 997.79), SIMDE_FLOAT32_C( 610.84) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_f32(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_f16(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 231.72), SIMDE_FLOAT32_C( 123.26), SIMDE_FLOAT32_C( -786.91), SIMDE_FLOAT32_C( -138.95) },
},
{ { SIMDE_FLOAT32_C( 166.21), SIMDE_FLOAT32_C( 199.26), SIMDE_FLOAT32_C( -881.03), SIMDE_FLOAT32_C( 363.41) },
},
{ { SIMDE_FLOAT32_C( -208.25), SIMDE_FLOAT32_C( -126.94), SIMDE_FLOAT32_C( -663.57), SIMDE_FLOAT32_C( -651.99) },
},
{ { SIMDE_FLOAT32_C( -722.64), SIMDE_FLOAT32_C( -951.85), SIMDE_FLOAT32_C( -94.46), SIMDE_FLOAT32_C( 924.65) },
},
{ { SIMDE_FLOAT32_C( 896.69), SIMDE_FLOAT32_C( -6.54), SIMDE_FLOAT32_C( -785.89), SIMDE_FLOAT32_C( -806.08) },
},
{ { SIMDE_FLOAT32_C( -595.88), SIMDE_FLOAT32_C( 347.71), SIMDE_FLOAT32_C( 118.81), SIMDE_FLOAT32_C( -850.69) },
},
{ { SIMDE_FLOAT32_C( -873.62), SIMDE_FLOAT32_C( 679.36), SIMDE_FLOAT32_C( 461.45), SIMDE_FLOAT32_C( -429.35) },
},
{ { SIMDE_FLOAT32_C( -437.13), SIMDE_FLOAT32_C( -811.02), SIMDE_FLOAT32_C( 684.01), SIMDE_FLOAT32_C( 794.59) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_f32(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 774.17), SIMDE_FLOAT64_C( -982.31) },
},
{ { SIMDE_FLOAT64_C( 150.95), SIMDE_FLOAT64_C( 568.12) },
},
{ { SIMDE_FLOAT64_C( -697.86), SIMDE_FLOAT64_C( -585.35) },
},
{ { SIMDE_FLOAT64_C( -726.09), SIMDE_FLOAT64_C( -258.24) },
},
{ { SIMDE_FLOAT64_C( 225.96), SIMDE_FLOAT64_C( 612.94) },
},
{ { SIMDE_FLOAT64_C( 513.18), SIMDE_FLOAT64_C( 503.15) },
},
{ { SIMDE_FLOAT64_C( 963.82), SIMDE_FLOAT64_C( -77.66) },
},
{ { SIMDE_FLOAT64_C( -796.08), SIMDE_FLOAT64_C( 2.44) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_f64(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 366.50), SIMDE_FLOAT64_C( -291.14) },
},
{ { SIMDE_FLOAT64_C( -469.92), SIMDE_FLOAT64_C( -958.99) },
},
{ { SIMDE_FLOAT64_C( -979.93), SIMDE_FLOAT64_C( -904.00) },
},
{ { SIMDE_FLOAT64_C( -442.71), SIMDE_FLOAT64_C( -363.03) },
},
{ { SIMDE_FLOAT64_C( -172.73), SIMDE_FLOAT64_C( 76.80) },
},
{ { SIMDE_FLOAT64_C( 876.29), SIMDE_FLOAT64_C( -629.97) },
},
{ { SIMDE_FLOAT64_C( 360.30), SIMDE_FLOAT64_C( 944.37) },
},
{ { SIMDE_FLOAT64_C( -412.04), SIMDE_FLOAT64_C( 375.13) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_f64(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 261.11), SIMDE_FLOAT64_C( 328.35) },
},
{ { SIMDE_FLOAT64_C( 953.99), SIMDE_FLOAT64_C( 268.54) },
},
{ { SIMDE_FLOAT64_C( 860.91), SIMDE_FLOAT64_C( 685.66) },
},
{ { SIMDE_FLOAT64_C( -379.72), SIMDE_FLOAT64_C( 849.19) },
},
{ { SIMDE_FLOAT64_C( -182.32), SIMDE_FLOAT64_C( 565.54) },
},
{ { SIMDE_FLOAT64_C( 593.89), SIMDE_FLOAT64_C( 988.09) },
},
{ { SIMDE_FLOAT64_C( 564.35), SIMDE_FLOAT64_C( 771.05) },
},
{ { SIMDE_FLOAT64_C( -993.11), SIMDE_FLOAT64_C( -315.73) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_f64(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(112), SIMDE_POLY8_C(213), SIMDE_POLY8_C(254), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(219), SIMDE_POLY8_C(117), SIMDE_POLY8_C(223) },
},
{ { SIMDE_POLY8_C(124), SIMDE_POLY8_C(231), SIMDE_POLY8_C(194), SIMDE_POLY8_C(124), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(211), SIMDE_POLY8_C(153) },
},
{ { SIMDE_POLY8_C(234), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(169), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(217), SIMDE_POLY8_C(225), SIMDE_POLY8_C(202) },
},
{ { SIMDE_POLY8_C( 55), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(148), SIMDE_POLY8_C(180), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 36) },
},
{ { SIMDE_POLY8_C(133), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(245), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(106), SIMDE_POLY8_C(181), SIMDE_POLY8_C(157) },
},
{ { SIMDE_POLY8_C( 81), SIMDE_POLY8_C(119), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(145), SIMDE_POLY8_C(237), SIMDE_POLY8_C(222), SIMDE_POLY8_C(123) },
},
{ { SIMDE_POLY8_C( 6), SIMDE_POLY8_C(135), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 87), SIMDE_POLY8_C(240), SIMDE_POLY8_C(151) },
},
{ { SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(250), SIMDE_POLY8_C(254), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(131) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_p8(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(203), SIMDE_POLY8_C(240), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 11) },
},
{ { SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(205), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 96), SIMDE_POLY8_C(128), SIMDE_POLY8_C( 2) },
},
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C(179), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(162), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 97), SIMDE_POLY8_C(235) },
},
{ { SIMDE_POLY8_C(108), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(237), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(128) },
},
{ { SIMDE_POLY8_C(180), SIMDE_POLY8_C(250), SIMDE_POLY8_C(112), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(103) },
},
{ { SIMDE_POLY8_C( 76), SIMDE_POLY8_C(155), SIMDE_POLY8_C( 52), SIMDE_POLY8_C(250), SIMDE_POLY8_C(251), SIMDE_POLY8_C(180), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 49) },
},
{ { SIMDE_POLY8_C(104), SIMDE_POLY8_C(194), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(245), SIMDE_POLY8_C(235), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 97) },
},
{ { SIMDE_POLY8_C(250), SIMDE_POLY8_C(227), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(108), SIMDE_POLY8_C(252), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 32) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_p8(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(147), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(112), SIMDE_POLY8_C(131), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(171) },
},
{ { SIMDE_POLY8_C( 45), SIMDE_POLY8_C(204), SIMDE_POLY8_C(175), SIMDE_POLY8_C(204), SIMDE_POLY8_C(142), SIMDE_POLY8_C(231), SIMDE_POLY8_C(239), SIMDE_POLY8_C(114) },
},
{ { SIMDE_POLY8_C(166), SIMDE_POLY8_C(159), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(236) },
},
{ { SIMDE_POLY8_C(218), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(205) },
},
{ { SIMDE_POLY8_C(218), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(198) },
},
{ { SIMDE_POLY8_C( 15), SIMDE_POLY8_C(183), SIMDE_POLY8_C(147), SIMDE_POLY8_C(157), SIMDE_POLY8_C(159), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 69) },
},
{ { SIMDE_POLY8_C( 34), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(187), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(146), SIMDE_POLY8_C(168), SIMDE_POLY8_C( 29) },
},
{ { SIMDE_POLY8_C(196), SIMDE_POLY8_C(244), SIMDE_POLY8_C(214), SIMDE_POLY8_C(254), SIMDE_POLY8_C(219), SIMDE_POLY8_C(235), SIMDE_POLY8_C(204), SIMDE_POLY8_C(182) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_p8(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(167), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(245), SIMDE_POLY8_C(156), SIMDE_POLY8_C(104), SIMDE_POLY8_C(159), SIMDE_POLY8_C(125) },
},
{ { SIMDE_POLY8_C(167), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(147), SIMDE_POLY8_C(116), SIMDE_POLY8_C(103), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 28) },
},
{ { SIMDE_POLY8_C( 55), SIMDE_POLY8_C(112), SIMDE_POLY8_C(154), SIMDE_POLY8_C(182), SIMDE_POLY8_C(106), SIMDE_POLY8_C(171), SIMDE_POLY8_C(127), SIMDE_POLY8_C(159) },
},
{ { SIMDE_POLY8_C( 56), SIMDE_POLY8_C(206), SIMDE_POLY8_C(241), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(100), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 11) },
},
{ { SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 0), SIMDE_POLY8_C(211), SIMDE_POLY8_C(157), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 68) },
},
{ { SIMDE_POLY8_C(219), SIMDE_POLY8_C(227), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(251), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 50) },
},
{ { SIMDE_POLY8_C(223), SIMDE_POLY8_C(248), SIMDE_POLY8_C(232), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(163), SIMDE_POLY8_C(104), SIMDE_POLY8_C(232), SIMDE_POLY8_C(219) },
},
{ { SIMDE_POLY8_C( 54), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(155), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 45) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_p8(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(226), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(188), SIMDE_POLY8_C(180), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 20) },
},
{ { SIMDE_POLY8_C(127), SIMDE_POLY8_C(241), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(223), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(190) },
},
{ { SIMDE_POLY8_C( 90), SIMDE_POLY8_C(254), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(211), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(172) },
},
{ { SIMDE_POLY8_C(184), SIMDE_POLY8_C(201), SIMDE_POLY8_C( 96), SIMDE_POLY8_C(102), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(196), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(231) },
},
{ { SIMDE_POLY8_C(183), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(116), SIMDE_POLY8_C(194), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 65) },
},
{ { SIMDE_POLY8_C(245), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 97), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(141), SIMDE_POLY8_C(146), SIMDE_POLY8_C(136) },
},
{ { SIMDE_POLY8_C(139), SIMDE_POLY8_C( 97), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 11), SIMDE_POLY8_C(231) },
},
{ { SIMDE_POLY8_C(197), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(201), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(176), SIMDE_POLY8_C(231) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_p8(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(128), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(134), SIMDE_POLY8_C(227), SIMDE_POLY8_C(176), SIMDE_POLY8_C(188), SIMDE_POLY8_C(228), SIMDE_POLY8_C(209) },
},
{ { SIMDE_POLY8_C(168), SIMDE_POLY8_C(199), SIMDE_POLY8_C(161), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 39) },
},
{ { SIMDE_POLY8_C(186), SIMDE_POLY8_C(119), SIMDE_POLY8_C(105), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(249) },
},
{ { SIMDE_POLY8_C(230), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(201), SIMDE_POLY8_C(179), SIMDE_POLY8_C(210), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 51) },
},
{ { SIMDE_POLY8_C( 48), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(250), SIMDE_POLY8_C(178), SIMDE_POLY8_C(222) },
},
{ { SIMDE_POLY8_C(193), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(187), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 68) },
},
{ { SIMDE_POLY8_C(212), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(216), SIMDE_POLY8_C(244), SIMDE_POLY8_C(135), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(238), SIMDE_POLY8_C(110) },
},
{ { SIMDE_POLY8_C(101), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 79) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_p8(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(199), SIMDE_POLY8_C(127),
SIMDE_POLY8_C( 82), SIMDE_POLY8_C(179), SIMDE_POLY8_C(169), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 92), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(138) },
},
{ { SIMDE_POLY8_C(242), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(131),
SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(252), SIMDE_POLY8_C(182), SIMDE_POLY8_C(246), SIMDE_POLY8_C(201), SIMDE_POLY8_C( 0) },
},
{ { SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(221), SIMDE_POLY8_C(208), SIMDE_POLY8_C(156),
SIMDE_POLY8_C(144), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(236), SIMDE_POLY8_C(215), SIMDE_POLY8_C(155), SIMDE_POLY8_C(118), SIMDE_POLY8_C(202) },
},
{ { SIMDE_POLY8_C(108), SIMDE_POLY8_C(145), SIMDE_POLY8_C(244), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 28),
SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(197), SIMDE_POLY8_C(253), SIMDE_POLY8_C(225), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 7) },
},
{ { SIMDE_POLY8_C(240), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(185), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 73),
SIMDE_POLY8_C(161), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(120), SIMDE_POLY8_C(212), SIMDE_POLY8_C(172), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 64) },
},
{ { SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(171), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(154), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C(161), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(158), SIMDE_POLY8_C(108), SIMDE_POLY8_C(213), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 92) },
},
{ { SIMDE_POLY8_C(177), SIMDE_POLY8_C(253), SIMDE_POLY8_C(150), SIMDE_POLY8_C(106), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(107), SIMDE_POLY8_C(179), SIMDE_POLY8_C(198),
SIMDE_POLY8_C(164), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(120), SIMDE_POLY8_C(149), SIMDE_POLY8_C(129), SIMDE_POLY8_C(184), SIMDE_POLY8_C(210) },
},
{ { SIMDE_POLY8_C(183), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(242), SIMDE_POLY8_C(254), SIMDE_POLY8_C(156), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(159),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(226), SIMDE_POLY8_C(240), SIMDE_POLY8_C(210) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_p8(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 87), SIMDE_POLY8_C(122), SIMDE_POLY8_C(239), SIMDE_POLY8_C(208), SIMDE_POLY8_C(235), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(133), SIMDE_POLY8_C(157),
SIMDE_POLY8_C( 51), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(196), SIMDE_POLY8_C(113), SIMDE_POLY8_C(243) },
},
{ { SIMDE_POLY8_C(192), SIMDE_POLY8_C(103), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(154), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 23),
SIMDE_POLY8_C(169), SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 85), SIMDE_POLY8_C(198), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 29) },
},
{ { SIMDE_POLY8_C(233), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(238), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(115), SIMDE_POLY8_C(113), SIMDE_POLY8_C(118),
SIMDE_POLY8_C(109), SIMDE_POLY8_C(197), SIMDE_POLY8_C(182), SIMDE_POLY8_C(142), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 73) },
},
{ { SIMDE_POLY8_C(143), SIMDE_POLY8_C(208), SIMDE_POLY8_C(231), SIMDE_POLY8_C(219), SIMDE_POLY8_C(106), SIMDE_POLY8_C(201), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 20),
SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(105), SIMDE_POLY8_C(241), SIMDE_POLY8_C(147), SIMDE_POLY8_C(151), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(124) },
},
{ { SIMDE_POLY8_C(180), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(248), SIMDE_POLY8_C(112), SIMDE_POLY8_C(193), SIMDE_POLY8_C(110), SIMDE_POLY8_C(221),
SIMDE_POLY8_C(135), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(220) },
},
{ { SIMDE_POLY8_C(189), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(183), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 11), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 54),
SIMDE_POLY8_C(205), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(220), SIMDE_POLY8_C(240) },
},
{ { SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(232), SIMDE_POLY8_C(162), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 87), SIMDE_POLY8_C(127), SIMDE_POLY8_C(117),
SIMDE_POLY8_C(124), SIMDE_POLY8_C(235), SIMDE_POLY8_C(133), SIMDE_POLY8_C(201), SIMDE_POLY8_C(217), SIMDE_POLY8_C(223), SIMDE_POLY8_C(165), SIMDE_POLY8_C(150) },
},
{ { SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(212),
SIMDE_POLY8_C(159), SIMDE_POLY8_C(137), SIMDE_POLY8_C( 52), SIMDE_POLY8_C(219), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(204), SIMDE_POLY8_C(240) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_p8(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(186), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(122), SIMDE_POLY8_C(225),
SIMDE_POLY8_C( 58), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(136), SIMDE_POLY8_C(204), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(150) },
},
{ { SIMDE_POLY8_C(222), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 18), SIMDE_POLY8_C(198), SIMDE_POLY8_C(207), SIMDE_POLY8_C(180),
SIMDE_POLY8_C( 84), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(169), SIMDE_POLY8_C(186), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(116) },
},
{ { SIMDE_POLY8_C(188), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(136), SIMDE_POLY8_C(140), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(110), SIMDE_POLY8_C(200),
SIMDE_POLY8_C(177), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(125), SIMDE_POLY8_C(145), SIMDE_POLY8_C(103), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(111) },
},
{ { SIMDE_POLY8_C(160), SIMDE_POLY8_C(238), SIMDE_POLY8_C(173), SIMDE_POLY8_C(178), SIMDE_POLY8_C(180), SIMDE_POLY8_C(124), SIMDE_POLY8_C(102), SIMDE_POLY8_C( 9),
SIMDE_POLY8_C( 76), SIMDE_POLY8_C(200), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(117), SIMDE_POLY8_C(254), SIMDE_POLY8_C(123), SIMDE_POLY8_C( 49) },
},
{ { SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(190), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(156), SIMDE_POLY8_C(182),
SIMDE_POLY8_C(236), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(236), SIMDE_POLY8_C(243) },
},
{ { SIMDE_POLY8_C( 52), SIMDE_POLY8_C(153), SIMDE_POLY8_C(165), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 98),
SIMDE_POLY8_C(212), SIMDE_POLY8_C(164), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(163), SIMDE_POLY8_C(228), SIMDE_POLY8_C(123), SIMDE_POLY8_C(233) },
},
{ { SIMDE_POLY8_C(231), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(189), SIMDE_POLY8_C(236), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(162), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C( 69), SIMDE_POLY8_C(213), SIMDE_POLY8_C(206), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(186), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 80) },
},
{ { SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(106), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 18),
SIMDE_POLY8_C(207), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(114), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 91), SIMDE_POLY8_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_private a_ = simde_poly8x16_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_p8(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(221), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(161),
SIMDE_POLY8_C( 71), SIMDE_POLY8_C(215), SIMDE_POLY8_C(169), SIMDE_POLY8_C(199), SIMDE_POLY8_C(183), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 97) },
},
{ { SIMDE_POLY8_C(126), SIMDE_POLY8_C(133), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(164), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(194), SIMDE_POLY8_C(193),
SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(238), SIMDE_POLY8_C(210), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(203) },
},
{ { SIMDE_POLY8_C(244), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(167), SIMDE_POLY8_C(240), SIMDE_POLY8_C(181), SIMDE_POLY8_C(239),
SIMDE_POLY8_C(199), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(182), SIMDE_POLY8_C(126), SIMDE_POLY8_C(124), SIMDE_POLY8_C(104), SIMDE_POLY8_C(223), SIMDE_POLY8_C(250) },
},
{ { SIMDE_POLY8_C(237), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(145), SIMDE_POLY8_C(121), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(200),
SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(241), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(229) },
},
{ { SIMDE_POLY8_C(250), SIMDE_POLY8_C(234), SIMDE_POLY8_C(249), SIMDE_POLY8_C(162), SIMDE_POLY8_C(218), SIMDE_POLY8_C(175), SIMDE_POLY8_C(145), SIMDE_POLY8_C(162),
SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(137), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 0), SIMDE_POLY8_C(132), SIMDE_POLY8_C(157) },
},
{ { SIMDE_POLY8_C( 89), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 47), SIMDE_POLY8_C(210), SIMDE_POLY8_C(183), SIMDE_POLY8_C(130), SIMDE_POLY8_C(155), SIMDE_POLY8_C( 11),
SIMDE_POLY8_C(161), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 91) },
},
{ { SIMDE_POLY8_C( 70), SIMDE_POLY8_C(114), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(142), SIMDE_POLY8_C(194), SIMDE_POLY8_C( 46),
SIMDE_POLY8_C(213), SIMDE_POLY8_C(227), SIMDE_POLY8_C(184), SIMDE_POLY8_C(133), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 60) },
},
{ { SIMDE_POLY8_C(248), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(175), SIMDE_POLY8_C(212), SIMDE_POLY8_C(169), SIMDE_POLY8_C(187), SIMDE_POLY8_C(117),
SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(131), SIMDE_POLY8_C(101), SIMDE_POLY8_C(129), SIMDE_POLY8_C(222), SIMDE_POLY8_C(171) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_p8(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(225), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(134),
SIMDE_POLY8_C( 49), SIMDE_POLY8_C(209), SIMDE_POLY8_C(250), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(196), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(217) },
},
{ { SIMDE_POLY8_C( 35), SIMDE_POLY8_C(151), SIMDE_POLY8_C(185), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 24),
SIMDE_POLY8_C( 26), SIMDE_POLY8_C(151), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(115), SIMDE_POLY8_C(134), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(225) },
},
{ { SIMDE_POLY8_C(250), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(194), SIMDE_POLY8_C(234), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(205), SIMDE_POLY8_C(112), SIMDE_POLY8_C( 90),
SIMDE_POLY8_C(158), SIMDE_POLY8_C(106), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(252), SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 82) },
},
{ { SIMDE_POLY8_C(154), SIMDE_POLY8_C(142), SIMDE_POLY8_C(163), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(168), SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(194),
SIMDE_POLY8_C(211), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 57) },
},
{ { SIMDE_POLY8_C( 95), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(135), SIMDE_POLY8_C(202), SIMDE_POLY8_C(147), SIMDE_POLY8_C(225), SIMDE_POLY8_C(104),
SIMDE_POLY8_C(253), SIMDE_POLY8_C(224), SIMDE_POLY8_C(100), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(126), SIMDE_POLY8_C(125) },
},
{ { SIMDE_POLY8_C(200), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(189), SIMDE_POLY8_C(112), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 48),
SIMDE_POLY8_C(142), SIMDE_POLY8_C(103), SIMDE_POLY8_C(137), SIMDE_POLY8_C(205), SIMDE_POLY8_C(161), SIMDE_POLY8_C(195), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 0) },
},
{ { SIMDE_POLY8_C(192), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(135), SIMDE_POLY8_C(138), SIMDE_POLY8_C(189), SIMDE_POLY8_C(105), SIMDE_POLY8_C(242), SIMDE_POLY8_C(187),
SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(144), SIMDE_POLY8_C(101), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 88) },
},
{ { SIMDE_POLY8_C(134), SIMDE_POLY8_C(103), SIMDE_POLY8_C(200), SIMDE_POLY8_C(227), SIMDE_POLY8_C(125), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 11),
SIMDE_POLY8_C( 97), SIMDE_POLY8_C(156), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 96), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 32) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_p8(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 46), SIMDE_POLY8_C(245), SIMDE_POLY8_C(233), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(131), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 10),
SIMDE_POLY8_C(144), SIMDE_POLY8_C(167), SIMDE_POLY8_C(104), SIMDE_POLY8_C(229), SIMDE_POLY8_C(128), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 54) },
},
{ { SIMDE_POLY8_C(127), SIMDE_POLY8_C(158), SIMDE_POLY8_C(248), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(252), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 25),
SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 20), SIMDE_POLY8_C(242), SIMDE_POLY8_C(154), SIMDE_POLY8_C(241), SIMDE_POLY8_C(214), SIMDE_POLY8_C(201) },
},
{ { SIMDE_POLY8_C(231), SIMDE_POLY8_C(191), SIMDE_POLY8_C(198), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(210),
SIMDE_POLY8_C(139), SIMDE_POLY8_C(108), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 11), SIMDE_POLY8_C(250), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(121) },
},
{ { SIMDE_POLY8_C(100), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(117), SIMDE_POLY8_C(165), SIMDE_POLY8_C(135),
SIMDE_POLY8_C(166), SIMDE_POLY8_C(185), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 64), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(145) },
},
{ { SIMDE_POLY8_C( 14), SIMDE_POLY8_C(208), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(179), SIMDE_POLY8_C(144), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 62),
SIMDE_POLY8_C(252), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(247), SIMDE_POLY8_C(160), SIMDE_POLY8_C(138), SIMDE_POLY8_C(112), SIMDE_POLY8_C( 4) },
},
{ { SIMDE_POLY8_C(196), SIMDE_POLY8_C(119), SIMDE_POLY8_C(144), SIMDE_POLY8_C(250), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(129), SIMDE_POLY8_C(146),
SIMDE_POLY8_C(238), SIMDE_POLY8_C(250), SIMDE_POLY8_C(210), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 87) },
},
{ { SIMDE_POLY8_C(172), SIMDE_POLY8_C(182), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(201), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 66),
SIMDE_POLY8_C(164), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(114), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 54) },
},
{ { SIMDE_POLY8_C( 33), SIMDE_POLY8_C(217), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(177), SIMDE_POLY8_C(159), SIMDE_POLY8_C(253),
SIMDE_POLY8_C(171), SIMDE_POLY8_C(113), SIMDE_POLY8_C(150), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(249) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_p8(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(33507), SIMDE_POLY16_C(59494), SIMDE_POLY16_C(30007), SIMDE_POLY16_C(35832) },
},
{ { SIMDE_POLY16_C(46775), SIMDE_POLY16_C(12032), SIMDE_POLY16_C( 8902), SIMDE_POLY16_C( 8337) },
},
{ { SIMDE_POLY16_C(43537), SIMDE_POLY16_C(37876), SIMDE_POLY16_C(10452), SIMDE_POLY16_C(56119) },
},
{ { SIMDE_POLY16_C( 4464), SIMDE_POLY16_C(52152), SIMDE_POLY16_C( 3403), SIMDE_POLY16_C(11777) },
},
{ { SIMDE_POLY16_C(26511), SIMDE_POLY16_C(50966), SIMDE_POLY16_C( 3804), SIMDE_POLY16_C(37714) },
},
{ { SIMDE_POLY16_C(21189), SIMDE_POLY16_C(35779), SIMDE_POLY16_C(21621), SIMDE_POLY16_C(34475) },
},
{ { SIMDE_POLY16_C(41215), SIMDE_POLY16_C(54041), SIMDE_POLY16_C(20936), SIMDE_POLY16_C(14511) },
},
{ { SIMDE_POLY16_C(26466), SIMDE_POLY16_C(44291), SIMDE_POLY16_C( 1140), SIMDE_POLY16_C( 987) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_p16(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C( 9483), SIMDE_POLY16_C(16427), SIMDE_POLY16_C(61280), SIMDE_POLY16_C(61320) },
},
{ { SIMDE_POLY16_C(61708), SIMDE_POLY16_C(37798), SIMDE_POLY16_C(33678), SIMDE_POLY16_C(42947) },
},
{ { SIMDE_POLY16_C( 8615), SIMDE_POLY16_C(53267), SIMDE_POLY16_C(40577), SIMDE_POLY16_C(13982) },
},
{ { SIMDE_POLY16_C( 7345), SIMDE_POLY16_C(32884), SIMDE_POLY16_C(39065), SIMDE_POLY16_C(42079) },
},
{ { SIMDE_POLY16_C(35518), SIMDE_POLY16_C( 7908), SIMDE_POLY16_C(27769), SIMDE_POLY16_C(34062) },
},
{ { SIMDE_POLY16_C(46173), SIMDE_POLY16_C(60185), SIMDE_POLY16_C(56375), SIMDE_POLY16_C(56979) },
},
{ { SIMDE_POLY16_C(42749), SIMDE_POLY16_C(32430), SIMDE_POLY16_C(19524), SIMDE_POLY16_C(62900) },
},
{ { SIMDE_POLY16_C(10601), SIMDE_POLY16_C( 629), SIMDE_POLY16_C(54465), SIMDE_POLY16_C(32678) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_p16(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(37850), SIMDE_POLY16_C(12094), SIMDE_POLY16_C(28613), SIMDE_POLY16_C(54167) },
},
{ { SIMDE_POLY16_C(14611), SIMDE_POLY16_C(56465), SIMDE_POLY16_C(40885), SIMDE_POLY16_C(23652) },
},
{ { SIMDE_POLY16_C(18906), SIMDE_POLY16_C( 5146), SIMDE_POLY16_C(32725), SIMDE_POLY16_C(39195) },
},
{ { SIMDE_POLY16_C( 7126), SIMDE_POLY16_C(50291), SIMDE_POLY16_C(33501), SIMDE_POLY16_C(47348) },
},
{ { SIMDE_POLY16_C(12821), SIMDE_POLY16_C(56039), SIMDE_POLY16_C(32417), SIMDE_POLY16_C(46510) },
},
{ { SIMDE_POLY16_C(16312), SIMDE_POLY16_C(28049), SIMDE_POLY16_C(63198), SIMDE_POLY16_C(47305) },
},
{ { SIMDE_POLY16_C(58175), SIMDE_POLY16_C( 5324), SIMDE_POLY16_C(59491), SIMDE_POLY16_C(14765) },
},
{ { SIMDE_POLY16_C( 8195), SIMDE_POLY16_C(57853), SIMDE_POLY16_C(62114), SIMDE_POLY16_C(47257) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_p16(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(56181), SIMDE_POLY16_C(42985), SIMDE_POLY16_C(47798), SIMDE_POLY16_C( 3233) },
},
{ { SIMDE_POLY16_C(58242), SIMDE_POLY16_C(62873), SIMDE_POLY16_C(49449), SIMDE_POLY16_C(33758) },
},
{ { SIMDE_POLY16_C(50296), SIMDE_POLY16_C(42295), SIMDE_POLY16_C(65104), SIMDE_POLY16_C(15723) },
},
{ { SIMDE_POLY16_C(19339), SIMDE_POLY16_C(59497), SIMDE_POLY16_C(22037), SIMDE_POLY16_C(35422) },
},
{ { SIMDE_POLY16_C(18225), SIMDE_POLY16_C(59441), SIMDE_POLY16_C(53761), SIMDE_POLY16_C(33780) },
},
{ { SIMDE_POLY16_C(36277), SIMDE_POLY16_C(57208), SIMDE_POLY16_C(22094), SIMDE_POLY16_C(50786) },
},
{ { SIMDE_POLY16_C(39195), SIMDE_POLY16_C(27499), SIMDE_POLY16_C(54936), SIMDE_POLY16_C( 9129) },
},
{ { SIMDE_POLY16_C( 4642), SIMDE_POLY16_C(14091), SIMDE_POLY16_C(26984), SIMDE_POLY16_C(39617) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_p16(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(24639), SIMDE_POLY16_C(32629), SIMDE_POLY16_C(14135), SIMDE_POLY16_C(61730) },
},
{ { SIMDE_POLY16_C(40550), SIMDE_POLY16_C(48618), SIMDE_POLY16_C(12348), SIMDE_POLY16_C(20638) },
},
{ { SIMDE_POLY16_C(51024), SIMDE_POLY16_C(16956), SIMDE_POLY16_C(15191), SIMDE_POLY16_C(39519) },
},
{ { SIMDE_POLY16_C(13932), SIMDE_POLY16_C(62692), SIMDE_POLY16_C(19741), SIMDE_POLY16_C(23705) },
},
{ { SIMDE_POLY16_C( 3757), SIMDE_POLY16_C(58843), SIMDE_POLY16_C(65093), SIMDE_POLY16_C(44246) },
},
{ { SIMDE_POLY16_C(49308), SIMDE_POLY16_C(55401), SIMDE_POLY16_C( 2032), SIMDE_POLY16_C(16424) },
},
{ { SIMDE_POLY16_C(25807), SIMDE_POLY16_C( 9858), SIMDE_POLY16_C(58015), SIMDE_POLY16_C( 3008) },
},
{ { SIMDE_POLY16_C(42008), SIMDE_POLY16_C(13568), SIMDE_POLY16_C(39410), SIMDE_POLY16_C(40850) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_p16(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C( 5357), SIMDE_POLY16_C(26804), SIMDE_POLY16_C( 1844), SIMDE_POLY16_C(34757) },
},
{ { SIMDE_POLY16_C(13646), SIMDE_POLY16_C(39978), SIMDE_POLY16_C(48856), SIMDE_POLY16_C(33659) },
},
{ { SIMDE_POLY16_C(30572), SIMDE_POLY16_C( 5381), SIMDE_POLY16_C(23799), SIMDE_POLY16_C(32271) },
},
{ { SIMDE_POLY16_C(12043), SIMDE_POLY16_C(62789), SIMDE_POLY16_C(38605), SIMDE_POLY16_C(47698) },
},
{ { SIMDE_POLY16_C( 1706), SIMDE_POLY16_C(56866), SIMDE_POLY16_C(59405), SIMDE_POLY16_C(23398) },
},
{ { SIMDE_POLY16_C(36893), SIMDE_POLY16_C(62967), SIMDE_POLY16_C(29262), SIMDE_POLY16_C(47737) },
},
{ { SIMDE_POLY16_C(32489), SIMDE_POLY16_C(57551), SIMDE_POLY16_C(57307), SIMDE_POLY16_C(58975) },
},
{ { SIMDE_POLY16_C(41998), SIMDE_POLY16_C(56283), SIMDE_POLY16_C(11579), SIMDE_POLY16_C(58774) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_p16(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(14787), SIMDE_POLY16_C(26040), SIMDE_POLY16_C(47560), SIMDE_POLY16_C(54334), SIMDE_POLY16_C(46659), SIMDE_POLY16_C(43287), SIMDE_POLY16_C(28461), SIMDE_POLY16_C(11270) },
},
{ { SIMDE_POLY16_C(40851), SIMDE_POLY16_C( 3614), SIMDE_POLY16_C(37884), SIMDE_POLY16_C(13423), SIMDE_POLY16_C(40879), SIMDE_POLY16_C(26781), SIMDE_POLY16_C(54165), SIMDE_POLY16_C(22680) },
},
{ { SIMDE_POLY16_C(20748), SIMDE_POLY16_C(54461), SIMDE_POLY16_C(64522), SIMDE_POLY16_C(19880), SIMDE_POLY16_C(49074), SIMDE_POLY16_C(57334), SIMDE_POLY16_C(64814), SIMDE_POLY16_C(49419) },
},
{ { SIMDE_POLY16_C(10652), SIMDE_POLY16_C(39375), SIMDE_POLY16_C(16060), SIMDE_POLY16_C(27853), SIMDE_POLY16_C(27614), SIMDE_POLY16_C(29652), SIMDE_POLY16_C(27710), SIMDE_POLY16_C(19147) },
},
{ { SIMDE_POLY16_C(35261), SIMDE_POLY16_C(50974), SIMDE_POLY16_C(50821), SIMDE_POLY16_C(14100), SIMDE_POLY16_C( 2949), SIMDE_POLY16_C(45846), SIMDE_POLY16_C( 8456), SIMDE_POLY16_C(42100) },
},
{ { SIMDE_POLY16_C(17226), SIMDE_POLY16_C( 1597), SIMDE_POLY16_C( 2945), SIMDE_POLY16_C(24434), SIMDE_POLY16_C(18038), SIMDE_POLY16_C(46290), SIMDE_POLY16_C(40627), SIMDE_POLY16_C(28926) },
},
{ { SIMDE_POLY16_C( 7207), SIMDE_POLY16_C(44088), SIMDE_POLY16_C(19682), SIMDE_POLY16_C(26595), SIMDE_POLY16_C(63831), SIMDE_POLY16_C(24346), SIMDE_POLY16_C(36378), SIMDE_POLY16_C(25604) },
},
{ { SIMDE_POLY16_C(16849), SIMDE_POLY16_C(21098), SIMDE_POLY16_C(56652), SIMDE_POLY16_C(49842), SIMDE_POLY16_C(33827), SIMDE_POLY16_C(54902), SIMDE_POLY16_C(29730), SIMDE_POLY16_C(18759) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_p16(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(27485), SIMDE_POLY16_C(34613), SIMDE_POLY16_C( 7236), SIMDE_POLY16_C(17212), SIMDE_POLY16_C(26790), SIMDE_POLY16_C(14469), SIMDE_POLY16_C(59015), SIMDE_POLY16_C(59527) },
},
{ { SIMDE_POLY16_C( 6749), SIMDE_POLY16_C(54543), SIMDE_POLY16_C(64291), SIMDE_POLY16_C(27971), SIMDE_POLY16_C(35201), SIMDE_POLY16_C(33391), SIMDE_POLY16_C(41499), SIMDE_POLY16_C(30814) },
},
{ { SIMDE_POLY16_C(37645), SIMDE_POLY16_C(20736), SIMDE_POLY16_C(15535), SIMDE_POLY16_C(22164), SIMDE_POLY16_C( 6820), SIMDE_POLY16_C(11150), SIMDE_POLY16_C( 5632), SIMDE_POLY16_C(23828) },
},
{ { SIMDE_POLY16_C( 9008), SIMDE_POLY16_C(21298), SIMDE_POLY16_C(29982), SIMDE_POLY16_C(41153), SIMDE_POLY16_C(12542), SIMDE_POLY16_C( 6434), SIMDE_POLY16_C(33234), SIMDE_POLY16_C(57234) },
},
{ { SIMDE_POLY16_C(37396), SIMDE_POLY16_C(50224), SIMDE_POLY16_C(50638), SIMDE_POLY16_C(29466), SIMDE_POLY16_C(43231), SIMDE_POLY16_C(57246), SIMDE_POLY16_C(45758), SIMDE_POLY16_C(61244) },
},
{ { SIMDE_POLY16_C(28373), SIMDE_POLY16_C(62530), SIMDE_POLY16_C( 996), SIMDE_POLY16_C(58004), SIMDE_POLY16_C(46643), SIMDE_POLY16_C( 1532), SIMDE_POLY16_C(36407), SIMDE_POLY16_C(19684) },
},
{ { SIMDE_POLY16_C( 5408), SIMDE_POLY16_C(60944), SIMDE_POLY16_C(10970), SIMDE_POLY16_C(47457), SIMDE_POLY16_C( 210), SIMDE_POLY16_C(37272), SIMDE_POLY16_C(54450), SIMDE_POLY16_C(34944) },
},
{ { SIMDE_POLY16_C(49730), SIMDE_POLY16_C( 9852), SIMDE_POLY16_C( 4294), SIMDE_POLY16_C(63753), SIMDE_POLY16_C( 1478), SIMDE_POLY16_C(65279), SIMDE_POLY16_C(58259), SIMDE_POLY16_C(45898) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_p16(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(30244), SIMDE_POLY16_C(34430), SIMDE_POLY16_C(25246), SIMDE_POLY16_C(16862), SIMDE_POLY16_C(65193), SIMDE_POLY16_C( 4868), SIMDE_POLY16_C(60789), SIMDE_POLY16_C(43837) },
},
{ { SIMDE_POLY16_C(50205), SIMDE_POLY16_C(31533), SIMDE_POLY16_C(19434), SIMDE_POLY16_C(59923), SIMDE_POLY16_C( 3352), SIMDE_POLY16_C(55771), SIMDE_POLY16_C( 534), SIMDE_POLY16_C(15315) },
},
{ { SIMDE_POLY16_C(21112), SIMDE_POLY16_C( 6081), SIMDE_POLY16_C(40884), SIMDE_POLY16_C(23896), SIMDE_POLY16_C(23709), SIMDE_POLY16_C( 4976), SIMDE_POLY16_C(44362), SIMDE_POLY16_C(26558) },
},
{ { SIMDE_POLY16_C(60273), SIMDE_POLY16_C(23522), SIMDE_POLY16_C(63030), SIMDE_POLY16_C(20037), SIMDE_POLY16_C( 8195), SIMDE_POLY16_C( 6695), SIMDE_POLY16_C(64290), SIMDE_POLY16_C(39765) },
},
{ { SIMDE_POLY16_C( 5709), SIMDE_POLY16_C( 434), SIMDE_POLY16_C( 2741), SIMDE_POLY16_C(21342), SIMDE_POLY16_C(52838), SIMDE_POLY16_C(45158), SIMDE_POLY16_C( 9339), SIMDE_POLY16_C(60440) },
},
{ { SIMDE_POLY16_C(64015), SIMDE_POLY16_C(17991), SIMDE_POLY16_C(36336), SIMDE_POLY16_C(62612), SIMDE_POLY16_C(48301), SIMDE_POLY16_C(53262), SIMDE_POLY16_C(25527), SIMDE_POLY16_C( 1131) },
},
{ { SIMDE_POLY16_C( 7545), SIMDE_POLY16_C(11781), SIMDE_POLY16_C(25383), SIMDE_POLY16_C(36225), SIMDE_POLY16_C(59185), SIMDE_POLY16_C(44094), SIMDE_POLY16_C(22027), SIMDE_POLY16_C( 7064) },
},
{ { SIMDE_POLY16_C(57168), SIMDE_POLY16_C(16737), SIMDE_POLY16_C(62828), SIMDE_POLY16_C( 6709), SIMDE_POLY16_C(17329), SIMDE_POLY16_C(26858), SIMDE_POLY16_C(21926), SIMDE_POLY16_C( 8044) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_p16(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(37371), SIMDE_POLY16_C( 426), SIMDE_POLY16_C( 2791), SIMDE_POLY16_C(64987), SIMDE_POLY16_C(18284), SIMDE_POLY16_C(18051), SIMDE_POLY16_C( 6331), SIMDE_POLY16_C(40537) },
},
{ { SIMDE_POLY16_C( 8541), SIMDE_POLY16_C(40133), SIMDE_POLY16_C(10784), SIMDE_POLY16_C(43297), SIMDE_POLY16_C(16042), SIMDE_POLY16_C( 6646), SIMDE_POLY16_C(19594), SIMDE_POLY16_C(34381) },
},
{ { SIMDE_POLY16_C(63454), SIMDE_POLY16_C(50567), SIMDE_POLY16_C(25090), SIMDE_POLY16_C(28355), SIMDE_POLY16_C(18089), SIMDE_POLY16_C(25780), SIMDE_POLY16_C( 3422), SIMDE_POLY16_C(48130) },
},
{ { SIMDE_POLY16_C(50991), SIMDE_POLY16_C(20312), SIMDE_POLY16_C(31474), SIMDE_POLY16_C(40184), SIMDE_POLY16_C(61368), SIMDE_POLY16_C(17078), SIMDE_POLY16_C( 827), SIMDE_POLY16_C( 6600) },
},
{ { SIMDE_POLY16_C(20474), SIMDE_POLY16_C(64735), SIMDE_POLY16_C(41649), SIMDE_POLY16_C(23146), SIMDE_POLY16_C( 7912), SIMDE_POLY16_C(18110), SIMDE_POLY16_C(49452), SIMDE_POLY16_C(23298) },
},
{ { SIMDE_POLY16_C(23432), SIMDE_POLY16_C(31402), SIMDE_POLY16_C(41685), SIMDE_POLY16_C(36119), SIMDE_POLY16_C(52625), SIMDE_POLY16_C(52687), SIMDE_POLY16_C(39120), SIMDE_POLY16_C(51942) },
},
{ { SIMDE_POLY16_C(50663), SIMDE_POLY16_C(39367), SIMDE_POLY16_C(12647), SIMDE_POLY16_C(20467), SIMDE_POLY16_C(45648), SIMDE_POLY16_C(31894), SIMDE_POLY16_C(39027), SIMDE_POLY16_C(64471) },
},
{ { SIMDE_POLY16_C(33267), SIMDE_POLY16_C(51318), SIMDE_POLY16_C(36131), SIMDE_POLY16_C(46421), SIMDE_POLY16_C( 9562), SIMDE_POLY16_C(10882), SIMDE_POLY16_C(26813), SIMDE_POLY16_C(42228) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_p16(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(61872), SIMDE_POLY16_C(58906), SIMDE_POLY16_C(40218), SIMDE_POLY16_C(57729), SIMDE_POLY16_C( 4514), SIMDE_POLY16_C(43884), SIMDE_POLY16_C(60853), SIMDE_POLY16_C(48362) },
},
{ { SIMDE_POLY16_C(27639), SIMDE_POLY16_C(10283), SIMDE_POLY16_C(29782), SIMDE_POLY16_C( 9365), SIMDE_POLY16_C(13242), SIMDE_POLY16_C(29738), SIMDE_POLY16_C( 2313), SIMDE_POLY16_C(47770) },
},
{ { SIMDE_POLY16_C(46330), SIMDE_POLY16_C( 5280), SIMDE_POLY16_C( 8785), SIMDE_POLY16_C(62454), SIMDE_POLY16_C(25139), SIMDE_POLY16_C(59550), SIMDE_POLY16_C(35151), SIMDE_POLY16_C(18084) },
},
{ { SIMDE_POLY16_C(53236), SIMDE_POLY16_C(19054), SIMDE_POLY16_C( 835), SIMDE_POLY16_C(64878), SIMDE_POLY16_C(39222), SIMDE_POLY16_C(16498), SIMDE_POLY16_C( 3234), SIMDE_POLY16_C(40186) },
},
{ { SIMDE_POLY16_C(39616), SIMDE_POLY16_C( 4528), SIMDE_POLY16_C(42684), SIMDE_POLY16_C(61188), SIMDE_POLY16_C(41480), SIMDE_POLY16_C(22487), SIMDE_POLY16_C(31531), SIMDE_POLY16_C( 8350) },
},
{ { SIMDE_POLY16_C( 3146), SIMDE_POLY16_C(36202), SIMDE_POLY16_C(55568), SIMDE_POLY16_C(18059), SIMDE_POLY16_C(64882), SIMDE_POLY16_C( 5254), SIMDE_POLY16_C(32777), SIMDE_POLY16_C(51632) },
},
{ { SIMDE_POLY16_C(24603), SIMDE_POLY16_C(55258), SIMDE_POLY16_C(56839), SIMDE_POLY16_C( 4039), SIMDE_POLY16_C(40576), SIMDE_POLY16_C(44135), SIMDE_POLY16_C( 1306), SIMDE_POLY16_C(25804) },
},
{ { SIMDE_POLY16_C(13841), SIMDE_POLY16_C( 8690), SIMDE_POLY16_C(32015), SIMDE_POLY16_C(33128), SIMDE_POLY16_C(61050), SIMDE_POLY16_C(33685), SIMDE_POLY16_C(17775), SIMDE_POLY16_C(35404) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_p16(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C( 2822), SIMDE_POLY16_C(48884), SIMDE_POLY16_C(29973), SIMDE_POLY16_C( 1714), SIMDE_POLY16_C(13637), SIMDE_POLY16_C(55111), SIMDE_POLY16_C(52574), SIMDE_POLY16_C( 269) },
},
{ { SIMDE_POLY16_C(20351), SIMDE_POLY16_C(21891), SIMDE_POLY16_C(12725), SIMDE_POLY16_C(62731), SIMDE_POLY16_C( 548), SIMDE_POLY16_C(51419), SIMDE_POLY16_C(42962), SIMDE_POLY16_C(55479) },
},
{ { SIMDE_POLY16_C(43954), SIMDE_POLY16_C(51350), SIMDE_POLY16_C(18465), SIMDE_POLY16_C(26318), SIMDE_POLY16_C( 5502), SIMDE_POLY16_C(56381), SIMDE_POLY16_C(19171), SIMDE_POLY16_C(25310) },
},
{ { SIMDE_POLY16_C(24986), SIMDE_POLY16_C(20408), SIMDE_POLY16_C(50066), SIMDE_POLY16_C(46916), SIMDE_POLY16_C( 8389), SIMDE_POLY16_C(38783), SIMDE_POLY16_C(14023), SIMDE_POLY16_C(31087) },
},
{ { SIMDE_POLY16_C( 1505), SIMDE_POLY16_C( 577), SIMDE_POLY16_C( 3918), SIMDE_POLY16_C(52328), SIMDE_POLY16_C(42277), SIMDE_POLY16_C( 2216), SIMDE_POLY16_C(34544), SIMDE_POLY16_C(35434) },
},
{ { SIMDE_POLY16_C( 8936), SIMDE_POLY16_C(31449), SIMDE_POLY16_C( 7909), SIMDE_POLY16_C(43569), SIMDE_POLY16_C(45118), SIMDE_POLY16_C( 1345), SIMDE_POLY16_C(45286), SIMDE_POLY16_C(51326) },
},
{ { SIMDE_POLY16_C(49334), SIMDE_POLY16_C( 1226), SIMDE_POLY16_C(13263), SIMDE_POLY16_C(62672), SIMDE_POLY16_C(30936), SIMDE_POLY16_C(51452), SIMDE_POLY16_C(26623), SIMDE_POLY16_C(59218) },
},
{ { SIMDE_POLY16_C(11401), SIMDE_POLY16_C(28513), SIMDE_POLY16_C(37706), SIMDE_POLY16_C(34841), SIMDE_POLY16_C(23363), SIMDE_POLY16_C(10893), SIMDE_POLY16_C( 2827), SIMDE_POLY16_C(49650) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_p16(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C( 7282), SIMDE_POLY16_C(35752), SIMDE_POLY16_C(40216), SIMDE_POLY16_C(10637) }},
{ { SIMDE_POLY16_C(31845), SIMDE_POLY16_C(38227), SIMDE_POLY16_C( 6865), SIMDE_POLY16_C( 6420) }},
{ { SIMDE_POLY16_C(40987), SIMDE_POLY16_C(34469), SIMDE_POLY16_C(18021), SIMDE_POLY16_C(31566) }},
{ { SIMDE_POLY16_C(39961), SIMDE_POLY16_C(37015), SIMDE_POLY16_C(56150), SIMDE_POLY16_C(51347) }},
{ { SIMDE_POLY16_C(15351), SIMDE_POLY16_C( 3923), SIMDE_POLY16_C(57560), SIMDE_POLY16_C(15929) }},
{ { SIMDE_POLY16_C(35932), SIMDE_POLY16_C(11731), SIMDE_POLY16_C(59302), SIMDE_POLY16_C(49478) }},
{ { SIMDE_POLY16_C(60295), SIMDE_POLY16_C(60743), SIMDE_POLY16_C(38449), SIMDE_POLY16_C(19304) }},
{ { SIMDE_POLY16_C(65330), SIMDE_POLY16_C(35035), SIMDE_POLY16_C(28379), SIMDE_POLY16_C(53840) }},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_p16(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C( 4779), SIMDE_POLY16_C( 1479), SIMDE_POLY16_C(49141), SIMDE_POLY16_C(57936), SIMDE_POLY16_C(57134), SIMDE_POLY16_C( 3057), SIMDE_POLY16_C(61752), SIMDE_POLY16_C(10708) }},
{ { SIMDE_POLY16_C(33733), SIMDE_POLY16_C(35388), SIMDE_POLY16_C( 7219), SIMDE_POLY16_C(61816), SIMDE_POLY16_C(50702), SIMDE_POLY16_C(56093), SIMDE_POLY16_C(28083), SIMDE_POLY16_C(24275) }},
{ { SIMDE_POLY16_C(39551), SIMDE_POLY16_C(29795), SIMDE_POLY16_C(46169), SIMDE_POLY16_C(34647), SIMDE_POLY16_C(18579), SIMDE_POLY16_C(52114), SIMDE_POLY16_C(26426), SIMDE_POLY16_C(65524) }},
{ { SIMDE_POLY16_C(12522), SIMDE_POLY16_C( 7818), SIMDE_POLY16_C( 588), SIMDE_POLY16_C(23311), SIMDE_POLY16_C(11464), SIMDE_POLY16_C(31542), SIMDE_POLY16_C( 2713), SIMDE_POLY16_C( 6361) }},
{ { SIMDE_POLY16_C(15780), SIMDE_POLY16_C(65165), SIMDE_POLY16_C(58609), SIMDE_POLY16_C(33925), SIMDE_POLY16_C( 6188), SIMDE_POLY16_C(26191), SIMDE_POLY16_C(17535), SIMDE_POLY16_C(26982) }},
{ { SIMDE_POLY16_C(61556), SIMDE_POLY16_C(49543), SIMDE_POLY16_C(38642), SIMDE_POLY16_C(47900), SIMDE_POLY16_C(21186), SIMDE_POLY16_C(23350), SIMDE_POLY16_C( 4188), SIMDE_POLY16_C( 372) }},
{ { SIMDE_POLY16_C( 333), SIMDE_POLY16_C(16127), SIMDE_POLY16_C(34021), SIMDE_POLY16_C( 4546), SIMDE_POLY16_C( 4508), SIMDE_POLY16_C( 7032), SIMDE_POLY16_C(56917), SIMDE_POLY16_C(51845) }},
{ { SIMDE_POLY16_C( 3278), SIMDE_POLY16_C(49291), SIMDE_POLY16_C(42915), SIMDE_POLY16_C(25979), SIMDE_POLY16_C(45817), SIMDE_POLY16_C(22209), SIMDE_POLY16_C(13762), SIMDE_POLY16_C( 3927) }},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_p16(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C(16607055731308338601) },
},
{ { SIMDE_POLY64_C( 50860304274552481) },
},
{ { SIMDE_POLY64_C( 9862794963658077786) },
},
{ { SIMDE_POLY64_C(12392464720683648170) },
},
{ { SIMDE_POLY64_C( 8689486400691157374) },
},
{ { SIMDE_POLY64_C( 1541513907969526327) },
},
{ { SIMDE_POLY64_C( 1716032456096988804) },
},
{ { SIMDE_POLY64_C( 1658292891718957143) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_p64(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 6944854049650135482) },
},
{ { SIMDE_POLY64_C( 2643384172688610151) },
},
{ { SIMDE_POLY64_C( 9694401264440423225) },
},
{ { SIMDE_POLY64_C(15030064565503554144) },
},
{ { SIMDE_POLY64_C( 7145989937937443285) },
},
{ { SIMDE_POLY64_C(10467610559678064954) },
},
{ { SIMDE_POLY64_C( 2610778010878432799) },
},
{ { SIMDE_POLY64_C(11146599043610132938) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_p64(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 3986353266778962006) },
},
{ { SIMDE_POLY64_C( 7176681434443920232) },
},
{ { SIMDE_POLY64_C( 9525955270665666247) },
},
{ { SIMDE_POLY64_C(13394712871255028064) },
},
{ { SIMDE_POLY64_C( 4535400624906860172) },
},
{ { SIMDE_POLY64_C(10650597281808260014) },
},
{ { SIMDE_POLY64_C( 8458283561633060611) },
},
{ { SIMDE_POLY64_C( 300254048795550477) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_p64(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C(18361485350794555758) },
},
{ { SIMDE_POLY64_C( 4996426384215785705) },
},
{ { SIMDE_POLY64_C(11006711228546924526) },
},
{ { SIMDE_POLY64_C(10812642598701388252) },
},
{ { SIMDE_POLY64_C(13100146462438765355) },
},
{ { SIMDE_POLY64_C( 3308471443271409489) },
},
{ { SIMDE_POLY64_C( 5760322122107306700) },
},
{ { SIMDE_POLY64_C( 3446722680712776215) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_p64(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 5657919274295558869) },
},
{ { SIMDE_POLY64_C( 3965159768771266939) },
},
{ { SIMDE_POLY64_C( 5087912792556967306) },
},
{ { SIMDE_POLY64_C( 256521758694905530) },
},
{ { SIMDE_POLY64_C( 4270793162607544667) },
},
{ { SIMDE_POLY64_C( 3095497553213558000) },
},
{ { SIMDE_POLY64_C( 1981335759696853887) },
},
{ { SIMDE_POLY64_C( 6874422688824928820) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_p64(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C(15792920702104947431), SIMDE_POLY64_C( 4521637955443876984) },
},
{ { SIMDE_POLY64_C(11707834749182451748), SIMDE_POLY64_C(15274192250269424470) },
},
{ { SIMDE_POLY64_C( 661533889626495134), SIMDE_POLY64_C(10242121696137139489) },
},
{ { SIMDE_POLY64_C( 883403401688261107), SIMDE_POLY64_C( 762781161339000790) },
},
{ { SIMDE_POLY64_C( 388589280762374089), SIMDE_POLY64_C( 4528384042351654880) },
},
{ { SIMDE_POLY64_C( 3022232369636497454), SIMDE_POLY64_C(11830534945542760887) },
},
{ { SIMDE_POLY64_C(17731062154276080423), SIMDE_POLY64_C( 3955312798166219611) },
},
{ { SIMDE_POLY64_C(11127563320735482609), SIMDE_POLY64_C( 32628938752481525) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_p64(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 2322636136670922143), SIMDE_POLY64_C( 5598901547067610440) },
},
{ { SIMDE_POLY64_C(13672952454968309605), SIMDE_POLY64_C(14002346704856045130) },
},
{ { SIMDE_POLY64_C( 305025124668412889), SIMDE_POLY64_C( 5032682288508933183) },
},
{ { SIMDE_POLY64_C( 7364161768165345188), SIMDE_POLY64_C( 3313994378587537432) },
},
{ { SIMDE_POLY64_C( 6161068422823701695), SIMDE_POLY64_C(14644779267273947415) },
},
{ { SIMDE_POLY64_C( 1819015547946221244), SIMDE_POLY64_C( 428495374170495345) },
},
{ { SIMDE_POLY64_C(15359808819437779646), SIMDE_POLY64_C( 8749097411148515194) },
},
{ { SIMDE_POLY64_C(10259639877273561927), SIMDE_POLY64_C(14228074120516711721) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_p64(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 4207544517074619564), SIMDE_POLY64_C(17983195729350452668) },
},
{ { SIMDE_POLY64_C(14769595933460037143), SIMDE_POLY64_C( 2242542422084417963) },
},
{ { SIMDE_POLY64_C(17209837690262716200), SIMDE_POLY64_C( 5997420568642393605) },
},
{ { SIMDE_POLY64_C(18206080017375701916), SIMDE_POLY64_C( 110807516602613238) },
},
{ { SIMDE_POLY64_C( 7695087595622811049), SIMDE_POLY64_C( 1303202160156891015) },
},
{ { SIMDE_POLY64_C( 963653872485538323), SIMDE_POLY64_C( 4409023572102015572) },
},
{ { SIMDE_POLY64_C(14093140080987851716), SIMDE_POLY64_C( 4306456267775623227) },
},
{ { SIMDE_POLY64_C(11230286730154127797), SIMDE_POLY64_C( 1421440177691774952) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_p64(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C(15092064537549437282), SIMDE_POLY64_C(10864827923211013704) },
},
{ { SIMDE_POLY64_C( 5535174154542260813), SIMDE_POLY64_C(10136250544302758728) },
},
{ { SIMDE_POLY64_C(11761525752944890796), SIMDE_POLY64_C(16296547469103199523) },
},
{ { SIMDE_POLY64_C(13760420417112478233), SIMDE_POLY64_C( 6568748200859368817) },
},
{ { SIMDE_POLY64_C( 9543969152595921780), SIMDE_POLY64_C(12855874340911424243) },
},
{ { SIMDE_POLY64_C(13043640873963515600), SIMDE_POLY64_C(10293671953509136847) },
},
{ { SIMDE_POLY64_C(10333738717266419332), SIMDE_POLY64_C(10069345882703560306) },
},
{ { SIMDE_POLY64_C( 4316653424248691182), SIMDE_POLY64_C( 3798949770022238223) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_p64(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 2573975289093980101), SIMDE_POLY64_C(12987093788008753529) },
},
{ { SIMDE_POLY64_C(10893662621074775982), SIMDE_POLY64_C( 9071823841222376635) },
},
{ { SIMDE_POLY64_C( 728885576711600406), SIMDE_POLY64_C( 2945388765883141678) },
},
{ { SIMDE_POLY64_C(14412968017312414975), SIMDE_POLY64_C(12400870028522094562) },
},
{ { SIMDE_POLY64_C(10975768628114679222), SIMDE_POLY64_C( 6085387108246304209) },
},
{ { SIMDE_POLY64_C( 8391551434180684704), SIMDE_POLY64_C(13909410374581439942) },
},
{ { SIMDE_POLY64_C( 4759841299535277580), SIMDE_POLY64_C( 1528972579837956751) },
},
{ { SIMDE_POLY64_C( 9759642074302577259), SIMDE_POLY64_C(12992863654388138115) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_p64(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 8779430749390950521) },
},
{ { SIMDE_POLY64_C( 5787192216487944357) },
},
{ { SIMDE_POLY64_C( 1212378576244495394) },
},
{ { SIMDE_POLY64_C(11587186962892113876) },
},
{ { SIMDE_POLY64_C(15419974588312544197) },
},
{ { SIMDE_POLY64_C( 584303456178448674) },
},
{ { SIMDE_POLY64_C( 9413963231737312176) },
},
{ { SIMDE_POLY64_C(10928834220922494436) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_p64(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(112), SIMDE_POLY8_C(213), SIMDE_POLY8_C(254), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(219), SIMDE_POLY8_C(117), SIMDE_POLY8_C(223) },
},
{ { SIMDE_POLY8_C(124), SIMDE_POLY8_C(231), SIMDE_POLY8_C(194), SIMDE_POLY8_C(124), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(211), SIMDE_POLY8_C(153) },
},
{ { SIMDE_POLY8_C(234), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(169), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 31), SIMDE_POLY8_C(217), SIMDE_POLY8_C(225), SIMDE_POLY8_C(202) },
},
{ { SIMDE_POLY8_C( 55), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(148), SIMDE_POLY8_C(180), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 36) },
},
{ { SIMDE_POLY8_C(133), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(245), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(106), SIMDE_POLY8_C(181), SIMDE_POLY8_C(157) },
},
{ { SIMDE_POLY8_C( 81), SIMDE_POLY8_C(119), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(145), SIMDE_POLY8_C(237), SIMDE_POLY8_C(222), SIMDE_POLY8_C(123) },
},
{ { SIMDE_POLY8_C( 6), SIMDE_POLY8_C(135), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 87), SIMDE_POLY8_C(240), SIMDE_POLY8_C(151) },
},
{ { SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(250), SIMDE_POLY8_C(254), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(131) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_float16x4_t r = simde_vreinterpret_f16_p8(a);
simde_float16x4_private r_ = simde_float16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 1234218851471792026), SIMDE_POLY64_C( 2677674681134575894) },
},
{ { SIMDE_POLY64_C(14515460789981832380), SIMDE_POLY64_C( 8215729928409844471) },
},
{ { SIMDE_POLY64_C(18432155657786037817), SIMDE_POLY64_C(11578942536244388252) },
},
{ { SIMDE_POLY64_C(16827624080118754063), SIMDE_POLY64_C( 5552162173842289092) },
},
{ { SIMDE_POLY64_C(16230363121171568980), SIMDE_POLY64_C( 8591211574267264694) },
},
{ { SIMDE_POLY64_C( 117863513551373256), SIMDE_POLY64_C( 8002802099049782445) },
},
{ { SIMDE_POLY64_C(11810948322241091523), SIMDE_POLY64_C( 4217752382814901672) },
},
{ { SIMDE_POLY64_C( 2754116619510988282), SIMDE_POLY64_C( 4755228904491897970) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_p64(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(199), SIMDE_POLY8_C(127),
SIMDE_POLY8_C( 82), SIMDE_POLY8_C(179), SIMDE_POLY8_C(169), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 92), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(138) },
},
{ { SIMDE_POLY8_C(242), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(136), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(131),
SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(252), SIMDE_POLY8_C(182), SIMDE_POLY8_C(246), SIMDE_POLY8_C(201), SIMDE_POLY8_C( 0) },
},
{ { SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(221), SIMDE_POLY8_C(208), SIMDE_POLY8_C(156),
SIMDE_POLY8_C(144), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(236), SIMDE_POLY8_C(215), SIMDE_POLY8_C(155), SIMDE_POLY8_C(118), SIMDE_POLY8_C(202) },
},
{ { SIMDE_POLY8_C(108), SIMDE_POLY8_C(145), SIMDE_POLY8_C(244), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 28),
SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(197), SIMDE_POLY8_C(253), SIMDE_POLY8_C(225), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 7) },
},
{ { SIMDE_POLY8_C(240), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(185), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 73),
SIMDE_POLY8_C(161), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(120), SIMDE_POLY8_C(212), SIMDE_POLY8_C(172), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 64) },
},
{ { SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(171), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(154), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C(161), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(158), SIMDE_POLY8_C(108), SIMDE_POLY8_C(213), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 92) },
},
{ { SIMDE_POLY8_C(177), SIMDE_POLY8_C(253), SIMDE_POLY8_C(150), SIMDE_POLY8_C(106), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(107), SIMDE_POLY8_C(179), SIMDE_POLY8_C(198),
SIMDE_POLY8_C(164), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(120), SIMDE_POLY8_C(149), SIMDE_POLY8_C(129), SIMDE_POLY8_C(184), SIMDE_POLY8_C(210) },
},
{ { SIMDE_POLY8_C(183), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(242), SIMDE_POLY8_C(254), SIMDE_POLY8_C(156), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(159),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(226), SIMDE_POLY8_C(240), SIMDE_POLY8_C(210) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_float16x8_t r = simde_vreinterpretq_f16_p8(a);
simde_float16x8_private r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C( 36), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(244), SIMDE_POLY8_C(111), SIMDE_POLY8_C(188) },
},
{ { SIMDE_POLY8_C(160), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(104), SIMDE_POLY8_C(116), SIMDE_POLY8_C(107), SIMDE_POLY8_C( 44) },
},
{ { SIMDE_POLY8_C(222), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(191), SIMDE_POLY8_C(146), SIMDE_POLY8_C(106), SIMDE_POLY8_C(110) },
},
{ { SIMDE_POLY8_C(218), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(146), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 81) },
},
{ { SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(166), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(220) },
},
{ { SIMDE_POLY8_C(102), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(206), SIMDE_POLY8_C(239), SIMDE_POLY8_C(115), SIMDE_POLY8_C(251), SIMDE_POLY8_C(205) },
},
{ { SIMDE_POLY8_C(240), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(230), SIMDE_POLY8_C(176), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(171) },
},
{ { SIMDE_POLY8_C(141), SIMDE_POLY8_C(177), SIMDE_POLY8_C(118), SIMDE_POLY8_C(186), SIMDE_POLY8_C( 16), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 12), SIMDE_POLY8_C( 77) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_p8(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(186), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(217), SIMDE_POLY8_C(200) },
},
{ { SIMDE_POLY8_C( 11), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(113), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(171) },
},
{ { SIMDE_POLY8_C( 1), SIMDE_POLY8_C(131), SIMDE_POLY8_C(236), SIMDE_POLY8_C(170), SIMDE_POLY8_C(169), SIMDE_POLY8_C(148), SIMDE_POLY8_C(243), SIMDE_POLY8_C(225) },
},
{ { SIMDE_POLY8_C(201), SIMDE_POLY8_C(223), SIMDE_POLY8_C(238), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(105), SIMDE_POLY8_C(211) },
},
{ { SIMDE_POLY8_C( 92), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(222), SIMDE_POLY8_C(244), SIMDE_POLY8_C(207), SIMDE_POLY8_C(234) },
},
{ { SIMDE_POLY8_C(181), SIMDE_POLY8_C(236), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(210), SIMDE_POLY8_C(140) },
},
{ { SIMDE_POLY8_C(172), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 27) },
},
{ { SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(219), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(244), SIMDE_POLY8_C(217) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_p8(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(147), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(234), SIMDE_POLY8_C(152), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(158) },
},
{ { SIMDE_POLY8_C(207), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(245), SIMDE_POLY8_C(245) },
},
{ { SIMDE_POLY8_C(157), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(191), SIMDE_POLY8_C(160), SIMDE_POLY8_C(210), SIMDE_POLY8_C(250), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 44) },
},
{ { SIMDE_POLY8_C(171), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 89), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(191), SIMDE_POLY8_C(237) },
},
{ { SIMDE_POLY8_C( 88), SIMDE_POLY8_C(206), SIMDE_POLY8_C(215), SIMDE_POLY8_C(240), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 34), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 35) },
},
{ { SIMDE_POLY8_C( 52), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(247), SIMDE_POLY8_C(137) },
},
{ { SIMDE_POLY8_C(124), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 0), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 91) },
},
{ { SIMDE_POLY8_C( 35), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(124), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 24), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 58) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_p8(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 82), SIMDE_POLY8_C(199), SIMDE_POLY8_C(185), SIMDE_POLY8_C(196), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(140),
SIMDE_POLY8_C(219), SIMDE_POLY8_C(212), SIMDE_POLY8_C(210), SIMDE_POLY8_C(116), SIMDE_POLY8_C(240), SIMDE_POLY8_C(118), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 68) },
},
{ { SIMDE_POLY8_C( 44), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(208),
SIMDE_POLY8_C( 89), SIMDE_POLY8_C(217), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(216), SIMDE_POLY8_C(154), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 42) },
},
{ { SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(239), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(119), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 82),
SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(199), SIMDE_POLY8_C(241), SIMDE_POLY8_C(213), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 1) },
},
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(188),
SIMDE_POLY8_C(222), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(223), SIMDE_POLY8_C(183), SIMDE_POLY8_C(237), SIMDE_POLY8_C(110), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 78) },
},
{ { SIMDE_POLY8_C(182), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(253), SIMDE_POLY8_C(218), SIMDE_POLY8_C(128), SIMDE_POLY8_C(254),
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(234) },
},
{ { SIMDE_POLY8_C(101), SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(122), SIMDE_POLY8_C(132), SIMDE_POLY8_C(245),
SIMDE_POLY8_C(205), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(172), SIMDE_POLY8_C(186), SIMDE_POLY8_C(209), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(135) },
},
{ { SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(105),
SIMDE_POLY8_C(123), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(108), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(209) },
},
{ { SIMDE_POLY8_C(151), SIMDE_POLY8_C(100), SIMDE_POLY8_C(153), SIMDE_POLY8_C(173), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(162), SIMDE_POLY8_C(171),
SIMDE_POLY8_C(128), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(220), SIMDE_POLY8_C(110), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 58) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_p8(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(228), SIMDE_POLY8_C(116), SIMDE_POLY8_C(114), SIMDE_POLY8_C(137), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 73),
SIMDE_POLY8_C( 23), SIMDE_POLY8_C(171), SIMDE_POLY8_C(101), SIMDE_POLY8_C(203), SIMDE_POLY8_C(170), SIMDE_POLY8_C(220), SIMDE_POLY8_C(186), SIMDE_POLY8_C( 4) },
},
{ { SIMDE_POLY8_C( 57), SIMDE_POLY8_C(134), SIMDE_POLY8_C(119), SIMDE_POLY8_C(221), SIMDE_POLY8_C(153), SIMDE_POLY8_C(228), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 17),
SIMDE_POLY8_C(120), SIMDE_POLY8_C(139), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(176), SIMDE_POLY8_C( 96) },
},
{ { SIMDE_POLY8_C(125), SIMDE_POLY8_C(149), SIMDE_POLY8_C(212), SIMDE_POLY8_C(240), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(186), SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 54),
SIMDE_POLY8_C(101), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(123), SIMDE_POLY8_C(187), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(180) },
},
{ { SIMDE_POLY8_C( 66), SIMDE_POLY8_C(138), SIMDE_POLY8_C(146), SIMDE_POLY8_C(219), SIMDE_POLY8_C(110), SIMDE_POLY8_C(221), SIMDE_POLY8_C(236), SIMDE_POLY8_C(231),
SIMDE_POLY8_C(105), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(118), SIMDE_POLY8_C(189), SIMDE_POLY8_C(183), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 59) },
},
{ { SIMDE_POLY8_C( 76), SIMDE_POLY8_C(171), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(106), SIMDE_POLY8_C(101), SIMDE_POLY8_C(100), SIMDE_POLY8_C(160), SIMDE_POLY8_C(202),
SIMDE_POLY8_C( 3), SIMDE_POLY8_C(162), SIMDE_POLY8_C(218), SIMDE_POLY8_C(126), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(159) },
},
{ { SIMDE_POLY8_C(120), SIMDE_POLY8_C(196), SIMDE_POLY8_C(122), SIMDE_POLY8_C(230), SIMDE_POLY8_C(162), SIMDE_POLY8_C(102), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 11),
SIMDE_POLY8_C(235), SIMDE_POLY8_C(212), SIMDE_POLY8_C(129), SIMDE_POLY8_C(169), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(228), SIMDE_POLY8_C(215) },
},
{ { SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(104), SIMDE_POLY8_C(115), SIMDE_POLY8_C(226), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(118),
SIMDE_POLY8_C(132), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(244), SIMDE_POLY8_C(225), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(129), SIMDE_POLY8_C(114) },
},
{ { SIMDE_POLY8_C(235), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 77),
SIMDE_POLY8_C(250), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(246), SIMDE_POLY8_C(133), SIMDE_POLY8_C(114), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(117) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_p8(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(176), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 12),
SIMDE_POLY8_C(238), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(160), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(163), SIMDE_POLY8_C(194) },
},
{ { SIMDE_POLY8_C( 84), SIMDE_POLY8_C(146), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(164), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C(252), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 68), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(178) },
},
{ { SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(237), SIMDE_POLY8_C(119), SIMDE_POLY8_C(141), SIMDE_POLY8_C(165), SIMDE_POLY8_C(131), SIMDE_POLY8_C(123),
SIMDE_POLY8_C(107), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(130), SIMDE_POLY8_C(232), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 60) },
},
{ { SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(104), SIMDE_POLY8_C(102), SIMDE_POLY8_C(162), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(110), SIMDE_POLY8_C(158),
SIMDE_POLY8_C( 95), SIMDE_POLY8_C(178), SIMDE_POLY8_C(154), SIMDE_POLY8_C( 97), SIMDE_POLY8_C(153), SIMDE_POLY8_C(217), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(175) },
},
{ { SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(176), SIMDE_POLY8_C(165), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 17),
SIMDE_POLY8_C(111), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(215), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 86) },
},
{ { SIMDE_POLY8_C( 41), SIMDE_POLY8_C(252), SIMDE_POLY8_C(188), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(106), SIMDE_POLY8_C(103),
SIMDE_POLY8_C(221), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(200), SIMDE_POLY8_C(119), SIMDE_POLY8_C(221), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 0) },
},
{ { SIMDE_POLY8_C(220), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(177), SIMDE_POLY8_C(130), SIMDE_POLY8_C(247), SIMDE_POLY8_C(221), SIMDE_POLY8_C(147), SIMDE_POLY8_C(102),
SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 39) },
},
{ { SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(104), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(191), SIMDE_POLY8_C( 70),
SIMDE_POLY8_C( 96), SIMDE_POLY8_C(136), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(100), SIMDE_POLY8_C(227), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 64) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_p8(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(22055), SIMDE_POLY16_C(19585), SIMDE_POLY16_C(41250), SIMDE_POLY16_C( 5379) },
},
{ { SIMDE_POLY16_C(46099), SIMDE_POLY16_C(50569), SIMDE_POLY16_C(55295), SIMDE_POLY16_C(25373) },
},
{ { SIMDE_POLY16_C(12707), SIMDE_POLY16_C(64309), SIMDE_POLY16_C(48160), SIMDE_POLY16_C(47304) },
},
{ { SIMDE_POLY16_C( 8583), SIMDE_POLY16_C(32183), SIMDE_POLY16_C(59924), SIMDE_POLY16_C(15474) },
},
{ { SIMDE_POLY16_C(62272), SIMDE_POLY16_C(25224), SIMDE_POLY16_C(35988), SIMDE_POLY16_C(43127) },
},
{ { SIMDE_POLY16_C( 64), SIMDE_POLY16_C(16493), SIMDE_POLY16_C(35799), SIMDE_POLY16_C(31395) },
},
{ { SIMDE_POLY16_C(55484), SIMDE_POLY16_C(56437), SIMDE_POLY16_C(16020), SIMDE_POLY16_C( 7316) },
},
{ { SIMDE_POLY16_C(19295), SIMDE_POLY16_C(29593), SIMDE_POLY16_C( 3125), SIMDE_POLY16_C(30383) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_p16(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(26673), SIMDE_POLY16_C(47249), SIMDE_POLY16_C(35372), SIMDE_POLY16_C(15460) },
},
{ { SIMDE_POLY16_C(57841), SIMDE_POLY16_C(41900), SIMDE_POLY16_C(63910), SIMDE_POLY16_C(58747) },
},
{ { SIMDE_POLY16_C( 6975), SIMDE_POLY16_C(23152), SIMDE_POLY16_C(12482), SIMDE_POLY16_C(40118) },
},
{ { SIMDE_POLY16_C(35860), SIMDE_POLY16_C(44337), SIMDE_POLY16_C(45683), SIMDE_POLY16_C(42280) },
},
{ { SIMDE_POLY16_C(47387), SIMDE_POLY16_C(18269), SIMDE_POLY16_C(49731), SIMDE_POLY16_C(13443) },
},
{ { SIMDE_POLY16_C(12195), SIMDE_POLY16_C(18904), SIMDE_POLY16_C(21289), SIMDE_POLY16_C(26670) },
},
{ { SIMDE_POLY16_C(40558), SIMDE_POLY16_C(12738), SIMDE_POLY16_C(30926), SIMDE_POLY16_C(58061) },
},
{ { SIMDE_POLY16_C(65028), SIMDE_POLY16_C(30863), SIMDE_POLY16_C(47025), SIMDE_POLY16_C(52253) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_p16(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(26293), SIMDE_POLY16_C( 7173), SIMDE_POLY16_C(54818), SIMDE_POLY16_C(60544) },
},
{ { SIMDE_POLY16_C(24048), SIMDE_POLY16_C(55271), SIMDE_POLY16_C(28786), SIMDE_POLY16_C(63191) },
},
{ { SIMDE_POLY16_C(50441), SIMDE_POLY16_C(40165), SIMDE_POLY16_C(56905), SIMDE_POLY16_C( 1621) },
},
{ { SIMDE_POLY16_C(60501), SIMDE_POLY16_C(36105), SIMDE_POLY16_C(15052), SIMDE_POLY16_C(33289) },
},
{ { SIMDE_POLY16_C( 3744), SIMDE_POLY16_C(50078), SIMDE_POLY16_C( 7908), SIMDE_POLY16_C(54703) },
},
{ { SIMDE_POLY16_C(38523), SIMDE_POLY16_C(61100), SIMDE_POLY16_C(33542), SIMDE_POLY16_C( 4068) },
},
{ { SIMDE_POLY16_C(51528), SIMDE_POLY16_C(37292), SIMDE_POLY16_C( 424), SIMDE_POLY16_C(64920) },
},
{ { SIMDE_POLY16_C(41454), SIMDE_POLY16_C(47754), SIMDE_POLY16_C(38108), SIMDE_POLY16_C(31804) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_p16(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(31179), SIMDE_POLY16_C(62043), SIMDE_POLY16_C(34234), SIMDE_POLY16_C(60575), SIMDE_POLY16_C(14522), SIMDE_POLY16_C(65218), SIMDE_POLY16_C(28205), SIMDE_POLY16_C( 2962) },
},
{ { SIMDE_POLY16_C(26700), SIMDE_POLY16_C( 7147), SIMDE_POLY16_C(59748), SIMDE_POLY16_C( 4323), SIMDE_POLY16_C(15518), SIMDE_POLY16_C(23427), SIMDE_POLY16_C(47621), SIMDE_POLY16_C(53345) },
},
{ { SIMDE_POLY16_C(48179), SIMDE_POLY16_C(60866), SIMDE_POLY16_C(24898), SIMDE_POLY16_C(64729), SIMDE_POLY16_C(40089), SIMDE_POLY16_C(51194), SIMDE_POLY16_C(35850), SIMDE_POLY16_C(22482) },
},
{ { SIMDE_POLY16_C(48884), SIMDE_POLY16_C(22898), SIMDE_POLY16_C(21927), SIMDE_POLY16_C(17769), SIMDE_POLY16_C(60562), SIMDE_POLY16_C(38816), SIMDE_POLY16_C( 423), SIMDE_POLY16_C(55911) },
},
{ { SIMDE_POLY16_C(10686), SIMDE_POLY16_C( 200), SIMDE_POLY16_C(41354), SIMDE_POLY16_C( 9468), SIMDE_POLY16_C(63037), SIMDE_POLY16_C(18667), SIMDE_POLY16_C(48515), SIMDE_POLY16_C(30623) },
},
{ { SIMDE_POLY16_C( 4475), SIMDE_POLY16_C( 8912), SIMDE_POLY16_C(14694), SIMDE_POLY16_C(63591), SIMDE_POLY16_C( 2086), SIMDE_POLY16_C(52623), SIMDE_POLY16_C(62985), SIMDE_POLY16_C(51111) },
},
{ { SIMDE_POLY16_C(28447), SIMDE_POLY16_C(43719), SIMDE_POLY16_C(49937), SIMDE_POLY16_C(20174), SIMDE_POLY16_C(47546), SIMDE_POLY16_C(15766), SIMDE_POLY16_C(13686), SIMDE_POLY16_C(62132) },
},
{ { SIMDE_POLY16_C(34118), SIMDE_POLY16_C(44308), SIMDE_POLY16_C(31934), SIMDE_POLY16_C(58533), SIMDE_POLY16_C(13700), SIMDE_POLY16_C(36273), SIMDE_POLY16_C(22827), SIMDE_POLY16_C(19285) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_p16(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(40287), SIMDE_POLY16_C(10453), SIMDE_POLY16_C( 270), SIMDE_POLY16_C(62770), SIMDE_POLY16_C(21454), SIMDE_POLY16_C(20905), SIMDE_POLY16_C(54272), SIMDE_POLY16_C(28818) },
},
{ { SIMDE_POLY16_C( 1885), SIMDE_POLY16_C(52960), SIMDE_POLY16_C(24818), SIMDE_POLY16_C(27591), SIMDE_POLY16_C(57828), SIMDE_POLY16_C(35098), SIMDE_POLY16_C(11676), SIMDE_POLY16_C(64676) },
},
{ { SIMDE_POLY16_C(31178), SIMDE_POLY16_C(55588), SIMDE_POLY16_C(22138), SIMDE_POLY16_C(18894), SIMDE_POLY16_C(30634), SIMDE_POLY16_C(43674), SIMDE_POLY16_C(11339), SIMDE_POLY16_C(43290) },
},
{ { SIMDE_POLY16_C(64052), SIMDE_POLY16_C( 9847), SIMDE_POLY16_C(15963), SIMDE_POLY16_C(16273), SIMDE_POLY16_C(44063), SIMDE_POLY16_C(48329), SIMDE_POLY16_C(28121), SIMDE_POLY16_C(41912) },
},
{ { SIMDE_POLY16_C(56550), SIMDE_POLY16_C(24956), SIMDE_POLY16_C(18995), SIMDE_POLY16_C(56746), SIMDE_POLY16_C(17602), SIMDE_POLY16_C( 3463), SIMDE_POLY16_C(41329), SIMDE_POLY16_C(42422) },
},
{ { SIMDE_POLY16_C(11931), SIMDE_POLY16_C(63179), SIMDE_POLY16_C(23660), SIMDE_POLY16_C(35894), SIMDE_POLY16_C(65288), SIMDE_POLY16_C(57672), SIMDE_POLY16_C( 108), SIMDE_POLY16_C(21125) },
},
{ { SIMDE_POLY16_C( 476), SIMDE_POLY16_C( 4019), SIMDE_POLY16_C(23884), SIMDE_POLY16_C( 3820), SIMDE_POLY16_C(29602), SIMDE_POLY16_C( 4891), SIMDE_POLY16_C(53780), SIMDE_POLY16_C(45240) },
},
{ { SIMDE_POLY16_C(33536), SIMDE_POLY16_C(27814), SIMDE_POLY16_C(56543), SIMDE_POLY16_C(59640), SIMDE_POLY16_C(16603), SIMDE_POLY16_C(18377), SIMDE_POLY16_C(20032), SIMDE_POLY16_C( 7578) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_p16(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(37256), SIMDE_POLY16_C( 7287), SIMDE_POLY16_C(13665), SIMDE_POLY16_C(19885), SIMDE_POLY16_C(39602), SIMDE_POLY16_C(36139), SIMDE_POLY16_C(23663), SIMDE_POLY16_C(43651) },
},
{ { SIMDE_POLY16_C(43283), SIMDE_POLY16_C(33404), SIMDE_POLY16_C(53825), SIMDE_POLY16_C(39703), SIMDE_POLY16_C(31803), SIMDE_POLY16_C( 7036), SIMDE_POLY16_C(31574), SIMDE_POLY16_C(56904) },
},
{ { SIMDE_POLY16_C(49164), SIMDE_POLY16_C(28154), SIMDE_POLY16_C(43253), SIMDE_POLY16_C(43194), SIMDE_POLY16_C(58690), SIMDE_POLY16_C(45365), SIMDE_POLY16_C(47426), SIMDE_POLY16_C(21851) },
},
{ { SIMDE_POLY16_C(55394), SIMDE_POLY16_C(41943), SIMDE_POLY16_C(61098), SIMDE_POLY16_C(58687), SIMDE_POLY16_C(47979), SIMDE_POLY16_C(49408), SIMDE_POLY16_C(18742), SIMDE_POLY16_C(17056) },
},
{ { SIMDE_POLY16_C(39433), SIMDE_POLY16_C(65199), SIMDE_POLY16_C(26946), SIMDE_POLY16_C(33958), SIMDE_POLY16_C(56399), SIMDE_POLY16_C(37174), SIMDE_POLY16_C(37269), SIMDE_POLY16_C(63462) },
},
{ { SIMDE_POLY16_C(48489), SIMDE_POLY16_C( 5019), SIMDE_POLY16_C(55980), SIMDE_POLY16_C( 6137), SIMDE_POLY16_C(63893), SIMDE_POLY16_C(52440), SIMDE_POLY16_C(30786), SIMDE_POLY16_C(19214) },
},
{ { SIMDE_POLY16_C(48659), SIMDE_POLY16_C(21834), SIMDE_POLY16_C(61479), SIMDE_POLY16_C(30426), SIMDE_POLY16_C( 4300), SIMDE_POLY16_C(24839), SIMDE_POLY16_C(60833), SIMDE_POLY16_C( 2905) },
},
{ { SIMDE_POLY16_C(62635), SIMDE_POLY16_C(22302), SIMDE_POLY16_C( 6094), SIMDE_POLY16_C(25454), SIMDE_POLY16_C(17937), SIMDE_POLY16_C(21295), SIMDE_POLY16_C(16063), SIMDE_POLY16_C(53919) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_p16(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 8751185780542309541) },
},
{ { SIMDE_POLY64_C( 1964445804772003291) },
},
{ { SIMDE_POLY64_C(10563097091345027527) },
},
{ { SIMDE_POLY64_C(14780275390623131008) },
},
{ { SIMDE_POLY64_C( 1886520334338935450) },
},
{ { SIMDE_POLY64_C( 322713523396222801) },
},
{ { SIMDE_POLY64_C( 4033920933575331731) },
},
{ { SIMDE_POLY64_C( 3996921152915932802) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_p64(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C(15807686447648144263) },
},
{ { SIMDE_POLY64_C(13586087338080146970) },
},
{ { SIMDE_POLY64_C( 1229395662396261383) },
},
{ { SIMDE_POLY64_C( 3399258566591543321) },
},
{ { SIMDE_POLY64_C( 5224131783317520018) },
},
{ { SIMDE_POLY64_C(12978948260242732014) },
},
{ { SIMDE_POLY64_C( 8100327936849454977) },
},
{ { SIMDE_POLY64_C(17831050982460608157) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_p64(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9719491169896031772) },
},
{ { SIMDE_POLY64_C(12281698703164900773) },
},
{ { SIMDE_POLY64_C( 6074207952736949374) },
},
{ { SIMDE_POLY64_C(12717252293388281153) },
},
{ { SIMDE_POLY64_C(16494333851909467816) },
},
{ { SIMDE_POLY64_C( 5060794498848419243) },
},
{ { SIMDE_POLY64_C( 2731966319390488994) },
},
{ { SIMDE_POLY64_C(13928960856351069961) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_p64(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_p64(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 4581232213571832684), SIMDE_POLY64_C( 1476113207327915279) },
},
{ { SIMDE_POLY64_C( 1473717667153826830), SIMDE_POLY64_C( 3779245527683887938) },
},
{ { SIMDE_POLY64_C(15405631003950577694), SIMDE_POLY64_C( 1801577341105853896) },
},
{ { SIMDE_POLY64_C(16199323197070044241), SIMDE_POLY64_C( 1548692872333386625) },
},
{ { SIMDE_POLY64_C( 5306202986939200775), SIMDE_POLY64_C( 8315111807944860737) },
},
{ { SIMDE_POLY64_C(10277774060136857378), SIMDE_POLY64_C( 6083332082561989985) },
},
{ { SIMDE_POLY64_C(13390826188593827083), SIMDE_POLY64_C( 7133537160237746794) },
},
{ { SIMDE_POLY64_C(10125996505298054890), SIMDE_POLY64_C(13808688142819286529) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_p64(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9421253059950992200), SIMDE_POLY64_C(18190508131208484342) },
},
{ { SIMDE_POLY64_C( 3715591700242667934), SIMDE_POLY64_C( 6523973211315662879) },
},
{ { SIMDE_POLY64_C(17575881375336364714), SIMDE_POLY64_C(13558360581878608743) },
},
{ { SIMDE_POLY64_C( 1206238956071125651), SIMDE_POLY64_C(15728700958152614108) },
},
{ { SIMDE_POLY64_C( 1548441871217433484), SIMDE_POLY64_C(10482243575994123678) },
},
{ { SIMDE_POLY64_C(11163255515110986731), SIMDE_POLY64_C( 1316123692325467193) },
},
{ { SIMDE_POLY64_C( 5633185853516514410), SIMDE_POLY64_C(13955954676396092701) },
},
{ { SIMDE_POLY64_C(15865768773427186133), SIMDE_POLY64_C(17299602177782036092) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_p64(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C( 36), UINT8_C(221), UINT8_C( 60), UINT8_C(229), UINT8_C( 49), UINT8_C(244), UINT8_C(111), UINT8_C(188) },
},
{ { UINT8_C(160), UINT8_C(192), UINT8_C( 80), UINT8_C( 43), UINT8_C(104), UINT8_C(116), UINT8_C(107), UINT8_C( 44) },
},
{ { UINT8_C(222), UINT8_C(125), UINT8_C( 68), UINT8_C( 25), UINT8_C(191), UINT8_C(146), UINT8_C(106), UINT8_C(110) },
},
{ { UINT8_C(218), UINT8_C( 61), UINT8_C(146), UINT8_C(203), UINT8_C( 45), UINT8_C( 95), UINT8_C( 11), UINT8_C( 81) },
},
{ { UINT8_C( 61), UINT8_C( 72), UINT8_C( 55), UINT8_C(110), UINT8_C( 60), UINT8_C(166), UINT8_C( 42), UINT8_C(220) },
},
{ { UINT8_C(102), UINT8_C(122), UINT8_C( 7), UINT8_C(206), UINT8_C(239), UINT8_C(115), UINT8_C(251), UINT8_C(205) },
},
{ { UINT8_C(240), UINT8_C( 63), UINT8_C(230), UINT8_C(176), UINT8_C(209), UINT8_C( 80), UINT8_C( 30), UINT8_C(171) },
},
{ { UINT8_C(141), UINT8_C(177), UINT8_C(118), UINT8_C(186), UINT8_C( 16), UINT8_C(130), UINT8_C( 12), UINT8_C( 77) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_u8(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 82), UINT8_C(199), UINT8_C(185), UINT8_C(196), UINT8_C(158), UINT8_C( 47), UINT8_C( 61), UINT8_C(140),
UINT8_C(219), UINT8_C(212), UINT8_C(210), UINT8_C(116), UINT8_C(240), UINT8_C(118), UINT8_C(167), UINT8_C( 68) },
},
{ { UINT8_C( 44), UINT8_C(199), UINT8_C( 11), UINT8_C( 1), UINT8_C( 43), UINT8_C( 34), UINT8_C( 2), UINT8_C(208),
UINT8_C( 89), UINT8_C(217), UINT8_C( 35), UINT8_C( 35), UINT8_C(216), UINT8_C(154), UINT8_C(143), UINT8_C( 42) },
},
{ { UINT8_C( 97), UINT8_C( 72), UINT8_C(239), UINT8_MAX, UINT8_C(119), UINT8_C( 44), UINT8_C(140), UINT8_C( 82),
UINT8_C( 1), UINT8_C( 94), UINT8_C(199), UINT8_C(241), UINT8_C(213), UINT8_C(110), UINT8_C( 53), UINT8_C( 1) },
},
{ { UINT8_C( 53), UINT8_C( 64), UINT8_C( 2), UINT8_C( 96), UINT8_C( 99), UINT8_C( 5), UINT8_C( 48), UINT8_C(188),
UINT8_C(222), UINT8_C( 83), UINT8_C(223), UINT8_C(183), UINT8_C(237), UINT8_C(110), UINT8_C(225), UINT8_C( 78) },
},
{ { UINT8_C(182), UINT8_C(208), UINT8_C( 78), UINT8_C( 45), UINT8_C(253), UINT8_C(218), UINT8_C(128), UINT8_C(254),
UINT8_C( 56), UINT8_C( 71), UINT8_C(239), UINT8_C( 13), UINT8_C(181), UINT8_C( 36), UINT8_C( 15), UINT8_C(234) },
},
{ { UINT8_C(101), UINT8_C( 17), UINT8_C( 74), UINT8_C(200), UINT8_C( 22), UINT8_C(122), UINT8_C(132), UINT8_C(245),
UINT8_C(205), UINT8_C( 99), UINT8_C(172), UINT8_C(186), UINT8_C(209), UINT8_C(141), UINT8_C( 8), UINT8_C(135) },
},
{ { UINT8_C( 94), UINT8_C( 86), UINT8_C(180), UINT8_C( 91), UINT8_C( 48), UINT8_C( 52), UINT8_C( 89), UINT8_C(105),
UINT8_C(123), UINT8_C( 72), UINT8_C(118), UINT8_C( 48), UINT8_C(108), UINT8_C(133), UINT8_C( 26), UINT8_C(209) },
},
{ { UINT8_C(151), UINT8_C(100), UINT8_C(153), UINT8_C(173), UINT8_C(222), UINT8_C( 29), UINT8_C(162), UINT8_C(171),
UINT8_C(128), UINT8_C( 78), UINT8_C(101), UINT8_C( 81), UINT8_C(220), UINT8_C(110), UINT8_C(216), UINT8_C( 58) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_u8(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(2334051580), UINT32_C(4009237040) },
},
{ { UINT32_C(2584288261), UINT32_C(1769017581) },
},
{ { UINT32_C(2631474304), UINT32_C(1500364826) },
},
{ { UINT32_C(2537112437), UINT32_C( 134299660) },
},
{ { UINT32_C(1033117709), UINT32_C(1059818554) },
},
{ { UINT32_C(2514105768), UINT32_C(3321776965) },
},
{ { UINT32_C(2170673255), UINT32_C( 232509336) },
},
{ { UINT32_C( 514069522), UINT32_C(1629922900) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_u32(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2012347191), UINT32_C( 228853529), UINT32_C(3184606882), UINT32_C(2192724089) },
},
{ { UINT32_C(3249853973), UINT32_C( 441778337), UINT32_C(2784320210), UINT32_C(1495580194) },
},
{ { UINT32_C(3536852409), UINT32_C(3202315292), UINT32_C( 729526706), UINT32_C( 397225473) },
},
{ { UINT32_C(2782421252), UINT32_C( 884944482), UINT32_C(2866394504), UINT32_C( 738524531) },
},
{ { UINT32_C( 805229586), UINT32_C(4226670153), UINT32_C(2418502031), UINT32_C(2611467415) },
},
{ { UINT32_C(2554429494), UINT32_C( 919339182), UINT32_C( 685811381), UINT32_C(3059016867) },
},
{ { UINT32_C( 48583609), UINT32_C(3237859889), UINT32_C(3528467515), UINT32_C( 795801849) },
},
{ { UINT32_C( 650620792), UINT32_C(1700565935), UINT32_C(3717020729), UINT32_C(3667124769) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_u32(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C(15807686447648144263) },
},
{ { UINT64_C(13586087338080146970) },
},
{ { UINT64_C( 1229395662396261383) },
},
{ { UINT64_C( 3399258566591543321) },
},
{ { UINT64_C( 5224131783317520018) },
},
{ { UINT64_C(12978948260242732014) },
},
{ { UINT64_C( 8100327936849454977) },
},
{ { UINT64_C(17831050982460608157) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_u64(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 4581232213571832684), UINT64_C( 1476113207327915279) },
},
{ { UINT64_C( 1473717667153826830), UINT64_C( 3779245527683887938) },
},
{ { UINT64_C(15405631003950577694), UINT64_C( 1801577341105853896) },
},
{ { UINT64_C(16199323197070044241), UINT64_C( 1548692872333386625) },
},
{ { UINT64_C( 5306202986939200775), UINT64_C( 8315111807944860737) },
},
{ { UINT64_C(10277774060136857378), UINT64_C( 6083332082561989985) },
},
{ { UINT64_C(13390826188593827083), UINT64_C( 7133537160237746794) },
},
{ { UINT64_C(10125996505298054890), UINT64_C(13808688142819286529) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_u64(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(147), UINT8_C( 20), UINT8_C( 14), UINT8_C(234), UINT8_C(152), UINT8_C(134), UINT8_C( 74), UINT8_C(158) },
},
{ { UINT8_C(207), UINT8_C( 18), UINT8_C( 79), UINT8_C( 23), UINT8_C(206), UINT8_C( 14), UINT8_C(245), UINT8_C(245) },
},
{ { UINT8_C(157), UINT8_C( 76), UINT8_C(191), UINT8_C(160), UINT8_C(210), UINT8_C(250), UINT8_C(214), UINT8_C( 44) },
},
{ { UINT8_C(171), UINT8_C( 35), UINT8_C( 36), UINT8_C(253), UINT8_C( 89), UINT8_C( 67), UINT8_C(191), UINT8_C(237) },
},
{ { UINT8_C( 88), UINT8_C(206), UINT8_C(215), UINT8_C(240), UINT8_C( 84), UINT8_C( 34), UINT8_C(142), UINT8_C( 35) },
},
{ { UINT8_C( 52), UINT8_C(222), UINT8_C( 59), UINT8_C( 2), UINT8_C(236), UINT8_C( 48), UINT8_C(247), UINT8_C(137) },
},
{ { UINT8_C(124), UINT8_C(182), UINT8_C( 41), UINT8_C( 78), UINT8_C(176), UINT8_C( 0), UINT8_C(122), UINT8_C( 91) },
},
{ { UINT8_C( 35), UINT8_C(158), UINT8_C( 88), UINT8_C(124), UINT8_C(226), UINT8_C( 24), UINT8_C(105), UINT8_C( 58) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_u8(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C(176), UINT8_C( 47), UINT8_C( 11), UINT8_C( 58), UINT8_C( 97), UINT8_C( 66), UINT8_C(184), UINT8_C( 12),
UINT8_C(238), UINT8_C(198), UINT8_C( 66), UINT8_C(160), UINT8_C( 22), UINT8_C( 35), UINT8_C(163), UINT8_C(194) },
},
{ { UINT8_C( 84), UINT8_C(146), UINT8_C( 13), UINT8_C( 43), UINT8_C( 21), UINT8_C( 80), UINT8_C(164), UINT8_C( 8),
UINT8_C(252), UINT8_C( 83), UINT8_C( 68), UINT8_C(251), UINT8_C( 2), UINT8_C(231), UINT8_C( 63), UINT8_C(178) },
},
{ { UINT8_C( 22), UINT8_C( 74), UINT8_C(237), UINT8_C(119), UINT8_C(141), UINT8_C(165), UINT8_C(131), UINT8_C(123),
UINT8_C(107), UINT8_C(197), UINT8_C( 27), UINT8_C(130), UINT8_C(232), UINT8_C(190), UINT8_C( 68), UINT8_C( 60) },
},
{ { UINT8_C( 80), UINT8_C( 82), UINT8_C(104), UINT8_C(102), UINT8_C(162), UINT8_C( 12), UINT8_C(110), UINT8_C(158),
UINT8_C( 95), UINT8_C(178), UINT8_C(154), UINT8_C( 97), UINT8_C(153), UINT8_C(217), UINT8_C( 19), UINT8_C(175) },
},
{ { UINT8_C( 35), UINT8_C( 0), UINT8_C( 38), UINT8_C(176), UINT8_C(165), UINT8_C(170), UINT8_C( 44), UINT8_C( 17),
UINT8_C(111), UINT8_C( 71), UINT8_C(147), UINT8_C( 88), UINT8_C( 6), UINT8_C(215), UINT8_C(148), UINT8_C( 86) },
},
{ { UINT8_C( 41), UINT8_C(252), UINT8_C(188), UINT8_C(203), UINT8_C( 8), UINT8_C( 43), UINT8_C(106), UINT8_C(103),
UINT8_C(221), UINT8_C( 4), UINT8_C(200), UINT8_C(119), UINT8_C(221), UINT8_C(220), UINT8_C( 38), UINT8_C( 0) },
},
{ { UINT8_C(220), UINT8_C( 77), UINT8_C(177), UINT8_C(130), UINT8_C(247), UINT8_C(221), UINT8_C(147), UINT8_C(102),
UINT8_C( 36), UINT8_C( 38), UINT8_C(190), UINT8_C( 42), UINT8_C(253), UINT8_C( 83), UINT8_C(129), UINT8_C( 39) },
},
{ { UINT8_C( 79), UINT8_C( 61), UINT8_C(242), UINT8_C( 88), UINT8_C(104), UINT8_C( 92), UINT8_C(191), UINT8_C( 70),
UINT8_C( 96), UINT8_C(136), UINT8_C(189), UINT8_C( 61), UINT8_C(100), UINT8_C(227), UINT8_C( 62), UINT8_C( 64) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_u8(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(26293), UINT16_C( 7173), UINT16_C(54818), UINT16_C(60544) },
},
{ { UINT16_C(24048), UINT16_C(55271), UINT16_C(28786), UINT16_C(63191) },
},
{ { UINT16_C(50441), UINT16_C(40165), UINT16_C(56905), UINT16_C( 1621) },
},
{ { UINT16_C(60501), UINT16_C(36105), UINT16_C(15052), UINT16_C(33289) },
},
{ { UINT16_C( 3744), UINT16_C(50078), UINT16_C( 7908), UINT16_C(54703) },
},
{ { UINT16_C(38523), UINT16_C(61100), UINT16_C(33542), UINT16_C( 4068) },
},
{ { UINT16_C(51528), UINT16_C(37292), UINT16_C( 424), UINT16_C(64920) },
},
{ { UINT16_C(41454), UINT16_C(47754), UINT16_C(38108), UINT16_C(31804) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_u16(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(37256), UINT16_C( 7287), UINT16_C(13665), UINT16_C(19885), UINT16_C(39602), UINT16_C(36139), UINT16_C(23663), UINT16_C(43651) },
},
{ { UINT16_C(43283), UINT16_C(33404), UINT16_C(53825), UINT16_C(39703), UINT16_C(31803), UINT16_C( 7036), UINT16_C(31574), UINT16_C(56904) },
},
{ { UINT16_C(49164), UINT16_C(28154), UINT16_C(43253), UINT16_C(43194), UINT16_C(58690), UINT16_C(45365), UINT16_C(47426), UINT16_C(21851) },
},
{ { UINT16_C(55394), UINT16_C(41943), UINT16_C(61098), UINT16_C(58687), UINT16_C(47979), UINT16_C(49408), UINT16_C(18742), UINT16_C(17056) },
},
{ { UINT16_C(39433), UINT16_C(65199), UINT16_C(26946), UINT16_C(33958), UINT16_C(56399), UINT16_C(37174), UINT16_C(37269), UINT16_C(63462) },
},
{ { UINT16_C(48489), UINT16_C( 5019), UINT16_C(55980), UINT16_C( 6137), UINT16_C(63893), UINT16_C(52440), UINT16_C(30786), UINT16_C(19214) },
},
{ { UINT16_C(48659), UINT16_C(21834), UINT16_C(61479), UINT16_C(30426), UINT16_C( 4300), UINT16_C(24839), UINT16_C(60833), UINT16_C( 2905) },
},
{ { UINT16_C(62635), UINT16_C(22302), UINT16_C( 6094), UINT16_C(25454), UINT16_C(17937), UINT16_C(21295), UINT16_C(16063), UINT16_C(53919) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_u16(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C( 870101165), UINT32_C(2209815297) },
},
{ { UINT32_C(2428866423), UINT32_C( 306277594) },
},
{ { UINT32_C( 381273794), UINT32_C( 528924364) },
},
{ { UINT32_C(1140512921), UINT32_C(3548919590) },
},
{ { UINT32_C(3892798695), UINT32_C(4151033472) },
},
{ { UINT32_C( 679948622), UINT32_C(1597687965) },
},
{ { UINT32_C(1517679758), UINT32_C(1266351282) },
},
{ { UINT32_C(4220417236), UINT32_C(2479756972) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_u32(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2570512756), UINT32_C(3830718427), UINT32_C(3229057798), UINT32_C(1611638719) },
},
{ { UINT32_C(3729645958), UINT32_C(1980229974), UINT32_C(3183866417), UINT32_C(4227508103) },
},
{ { UINT32_C(1804873872), UINT32_C(1448142928), UINT32_C( 722913131), UINT32_C(4102760046) },
},
{ { UINT32_C(1574164487), UINT32_C(4074035905), UINT32_C(1420794317), UINT32_C(3494881600) },
},
{ { UINT32_C( 691790809), UINT32_C( 931105739), UINT32_C(3227686482), UINT32_C(3283479996) },
},
{ { UINT32_C(2250279109), UINT32_C( 796456034), UINT32_C(3447924621), UINT32_C(2845692624) },
},
{ { UINT32_C(2178144693), UINT32_C(3082310244), UINT32_C(2759269096), UINT32_C(3429313543) },
},
{ { UINT32_C( 391284916), UINT32_C( 172411516), UINT32_C(3252144881), UINT32_C(1382708636) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_u32(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(22055), UINT16_C(19585), UINT16_C(41250), UINT16_C( 5379) },
},
{ { UINT16_C(46099), UINT16_C(50569), UINT16_C(55295), UINT16_C(25373) },
},
{ { UINT16_C(12707), UINT16_C(64309), UINT16_C(48160), UINT16_C(47304) },
},
{ { UINT16_C( 8583), UINT16_C(32183), UINT16_C(59924), UINT16_C(15474) },
},
{ { UINT16_C(62272), UINT16_C(25224), UINT16_C(35988), UINT16_C(43127) },
},
{ { UINT16_C( 64), UINT16_C(16493), UINT16_C(35799), UINT16_C(31395) },
},
{ { UINT16_C(55484), UINT16_C(56437), UINT16_C(16020), UINT16_C( 7316) },
},
{ { UINT16_C(19295), UINT16_C(29593), UINT16_C( 3125), UINT16_C(30383) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_u16(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(31179), UINT16_C(62043), UINT16_C(34234), UINT16_C(60575), UINT16_C(14522), UINT16_C(65218), UINT16_C(28205), UINT16_C( 2962) },
},
{ { UINT16_C(26700), UINT16_C( 7147), UINT16_C(59748), UINT16_C( 4323), UINT16_C(15518), UINT16_C(23427), UINT16_C(47621), UINT16_C(53345) },
},
{ { UINT16_C(48179), UINT16_C(60866), UINT16_C(24898), UINT16_C(64729), UINT16_C(40089), UINT16_C(51194), UINT16_C(35850), UINT16_C(22482) },
},
{ { UINT16_C(48884), UINT16_C(22898), UINT16_C(21927), UINT16_C(17769), UINT16_C(60562), UINT16_C(38816), UINT16_C( 423), UINT16_C(55911) },
},
{ { UINT16_C(10686), UINT16_C( 200), UINT16_C(41354), UINT16_C( 9468), UINT16_C(63037), UINT16_C(18667), UINT16_C(48515), UINT16_C(30623) },
},
{ { UINT16_C( 4475), UINT16_C( 8912), UINT16_C(14694), UINT16_C(63591), UINT16_C( 2086), UINT16_C(52623), UINT16_C(62985), UINT16_C(51111) },
},
{ { UINT16_C(28447), UINT16_C(43719), UINT16_C(49937), UINT16_C(20174), UINT16_C(47546), UINT16_C(15766), UINT16_C(13686), UINT16_C(62132) },
},
{ { UINT16_C(34118), UINT16_C(44308), UINT16_C(31934), UINT16_C(58533), UINT16_C(13700), UINT16_C(36273), UINT16_C(22827), UINT16_C(19285) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_u16(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(4009940214), UINT32_C(2454320358) },
},
{ { UINT32_C(2871745685), UINT32_C(2450177441) },
},
{ { UINT32_C(3471242743), UINT32_C(3298534337) },
},
{ { UINT32_C(1355394572), UINT32_C( 983668291) },
},
{ { UINT32_C(1361683306), UINT32_C( 753103511) },
},
{ { UINT32_C(1893207758), UINT32_C(3254969035) },
},
{ { UINT32_C(2576410840), UINT32_C(2556243084) },
},
{ { UINT32_C( 501819098), UINT32_C( 660048572) },
},
};
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_private a_ = simde_uint32x2_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_u32(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(1105538222), UINT32_C(3755743071), UINT32_C(1126146626), UINT32_C(2100132933) },
},
{ { UINT32_C(2827012237), UINT32_C(1563107933), UINT32_C(1378456288), UINT32_C( 200370268) },
},
{ { UINT32_C(4081899156), UINT32_C( 802367725), UINT32_C( 275968715), UINT32_C(4237139823) },
},
{ { UINT32_C(3315863144), UINT32_C( 270716720), UINT32_C(3194178401), UINT32_C(1204376755) },
},
{ { UINT32_C( 406525227), UINT32_C( 155717182), UINT32_C(1863956992), UINT32_C(3261834842) },
},
{ { UINT32_C(3850833844), UINT32_C(1089841886), UINT32_C(2852018421), UINT32_C(3639658413) },
},
{ { UINT32_C( 451947484), UINT32_C( 975386681), UINT32_C(1302936819), UINT32_C(2534348259) },
},
{ { UINT32_C( 58496548), UINT32_C( 910389824), UINT32_C(2011120074), UINT32_C(3830435592) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_u32(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 8751185780542309541) },
},
{ { UINT64_C( 1964445804772003291) },
},
{ { UINT64_C(10563097091345027527) },
},
{ { UINT64_C(14780275390623131008) },
},
{ { UINT64_C( 1886520334338935450) },
},
{ { UINT64_C( 322713523396222801) },
},
{ { UINT64_C( 4033920933575331731) },
},
{ { UINT64_C( 3996921152915932802) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_u64(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 9602034079943150237), UINT64_C(15071447892160942436) },
},
{ { UINT64_C( 7977050267529101445), UINT64_C(15152987898855457686) },
},
{ { UINT64_C( 3074072634548977156), UINT64_C(14497327183391996253) },
},
{ { UINT64_C( 8357763767761154458), UINT64_C( 5568845286471110208) },
},
{ { UINT64_C(18226659911175066113), UINT64_C( 1720527327522890708) },
},
{ { UINT64_C(16612550484748069179), UINT64_C( 5208029548622103729) },
},
{ { UINT64_C(12002096110392883190), UINT64_C(12770693919310474149) },
},
{ { UINT64_C( 3752436936427036807), UINT64_C( 623876170662637081) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_u64(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(147), UINT8_C(243), UINT8_C( 65), UINT8_C(112), UINT8_C(131), UINT8_C( 66), UINT8_C( 5), UINT8_C(171) },
},
{ { UINT8_C( 45), UINT8_C(204), UINT8_C(175), UINT8_C(204), UINT8_C(142), UINT8_C(231), UINT8_C(239), UINT8_C(114) },
},
{ { UINT8_C(166), UINT8_C(159), UINT8_C(214), UINT8_C( 13), UINT8_C(153), UINT8_C( 94), UINT8_C( 63), UINT8_C(236) },
},
{ { UINT8_C(218), UINT8_C( 50), UINT8_C( 76), UINT8_C(184), UINT8_C( 58), UINT8_C(231), UINT8_C( 21), UINT8_C(205) },
},
{ { UINT8_C(218), UINT8_C( 87), UINT8_C( 62), UINT8_C( 93), UINT8_C(153), UINT8_C( 67), UINT8_C( 8), UINT8_C(198) },
},
{ { UINT8_C( 15), UINT8_C(183), UINT8_C(147), UINT8_C(157), UINT8_C(159), UINT8_C(130), UINT8_C( 15), UINT8_C( 69) },
},
{ { UINT8_C( 34), UINT8_C(229), UINT8_C( 82), UINT8_C(187), UINT8_C( 67), UINT8_C(146), UINT8_C(168), UINT8_C( 29) },
},
{ { UINT8_C(196), UINT8_C(244), UINT8_C(214), UINT8_C(254), UINT8_C(219), UINT8_C(235), UINT8_C(204), UINT8_C(182) },
},
};
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_private a_ = simde_uint8x8_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_u8(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C(186), UINT8_C( 15), UINT8_C(251), UINT8_C( 19), UINT8_C(208), UINT8_C( 70), UINT8_C(122), UINT8_C(225),
UINT8_C( 58), UINT8_C(175), UINT8_C( 82), UINT8_C(136), UINT8_C(204), UINT8_C(209), UINT8_C( 23), UINT8_C(150) },
},
{ { UINT8_C(222), UINT8_C( 56), UINT8_C(218), UINT8_C( 62), UINT8_C( 18), UINT8_C(198), UINT8_C(207), UINT8_C(180),
UINT8_C( 84), UINT8_C(208), UINT8_C( 98), UINT8_C(169), UINT8_C(186), UINT8_C(173), UINT8_C( 76), UINT8_C(116) },
},
{ { UINT8_C(188), UINT8_C( 71), UINT8_C(136), UINT8_C(140), UINT8_C(142), UINT8_C( 2), UINT8_C(110), UINT8_C(200),
UINT8_C(177), UINT8_C(192), UINT8_C( 80), UINT8_C(125), UINT8_C(145), UINT8_C(103), UINT8_C( 19), UINT8_C(111) },
},
{ { UINT8_C(160), UINT8_C(238), UINT8_C(173), UINT8_C(178), UINT8_C(180), UINT8_C(124), UINT8_C(102), UINT8_C( 9),
UINT8_C( 76), UINT8_C(200), UINT8_C(178), UINT8_C( 6), UINT8_C(117), UINT8_C(254), UINT8_C(123), UINT8_C( 49) },
},
{ { UINT8_C( 70), UINT8_C( 3), UINT8_C(190), UINT8_C(212), UINT8_C( 5), UINT8_C( 44), UINT8_C(156), UINT8_C(182),
UINT8_C(236), UINT8_C(236), UINT8_C( 51), UINT8_C(125), UINT8_C( 83), UINT8_C( 70), UINT8_C(236), UINT8_C(243) },
},
{ { UINT8_C( 52), UINT8_C(153), UINT8_C(165), UINT8_C(233), UINT8_C( 22), UINT8_C( 12), UINT8_C(242), UINT8_C( 98),
UINT8_C(212), UINT8_C(164), UINT8_C(105), UINT8_C( 74), UINT8_C(163), UINT8_C(228), UINT8_C(123), UINT8_C(233) },
},
{ { UINT8_C(231), UINT8_C( 57), UINT8_C(189), UINT8_C(236), UINT8_C(101), UINT8_C( 89), UINT8_C(162), UINT8_C( 81),
UINT8_C( 69), UINT8_C(213), UINT8_C(206), UINT8_C(152), UINT8_C( 27), UINT8_C(186), UINT8_C(140), UINT8_C( 80) },
},
{ { UINT8_C( 84), UINT8_C( 49), UINT8_C( 57), UINT8_C(106), UINT8_C( 61), UINT8_C( 43), UINT8_C(204), UINT8_C( 18),
UINT8_C(207), UINT8_C( 53), UINT8_C( 92), UINT8_C(114), UINT8_C( 25), UINT8_C(215), UINT8_C( 91), UINT8_C( 0) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_u8(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(56181), UINT16_C(42985), UINT16_C(47798), UINT16_C( 3233) },
},
{ { UINT16_C(58242), UINT16_C(62873), UINT16_C(49449), UINT16_C(33758) },
},
{ { UINT16_C(50296), UINT16_C(42295), UINT16_C(65104), UINT16_C(15723) },
},
{ { UINT16_C(19339), UINT16_C(59497), UINT16_C(22037), UINT16_C(35422) },
},
{ { UINT16_C(18225), UINT16_C(59441), UINT16_C(53761), UINT16_C(33780) },
},
{ { UINT16_C(36277), UINT16_C(57208), UINT16_C(22094), UINT16_C(50786) },
},
{ { UINT16_C(39195), UINT16_C(27499), UINT16_C(54936), UINT16_C( 9129) },
},
{ { UINT16_C( 4642), UINT16_C(14091), UINT16_C(26984), UINT16_C(39617) },
},
};
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_private a_ = simde_uint16x4_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_u16(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(37371), UINT16_C( 426), UINT16_C( 2791), UINT16_C(64987), UINT16_C(18284), UINT16_C(18051), UINT16_C( 6331), UINT16_C(40537) },
},
{ { UINT16_C( 8541), UINT16_C(40133), UINT16_C(10784), UINT16_C(43297), UINT16_C(16042), UINT16_C( 6646), UINT16_C(19594), UINT16_C(34381) },
},
{ { UINT16_C(63454), UINT16_C(50567), UINT16_C(25090), UINT16_C(28355), UINT16_C(18089), UINT16_C(25780), UINT16_C( 3422), UINT16_C(48130) },
},
{ { UINT16_C(50991), UINT16_C(20312), UINT16_C(31474), UINT16_C(40184), UINT16_C(61368), UINT16_C(17078), UINT16_C( 827), UINT16_C( 6600) },
},
{ { UINT16_C(20474), UINT16_C(64735), UINT16_C(41649), UINT16_C(23146), UINT16_C( 7912), UINT16_C(18110), UINT16_C(49452), UINT16_C(23298) },
},
{ { UINT16_C(23432), UINT16_C(31402), UINT16_C(41685), UINT16_C(36119), UINT16_C(52625), UINT16_C(52687), UINT16_C(39120), UINT16_C(51942) },
},
{ { UINT16_C(50663), UINT16_C(39367), UINT16_C(12647), UINT16_C(20467), UINT16_C(45648), UINT16_C(31894), UINT16_C(39027), UINT16_C(64471) },
},
{ { UINT16_C(33267), UINT16_C(51318), UINT16_C(36131), UINT16_C(46421), UINT16_C( 9562), UINT16_C(10882), UINT16_C(26813), UINT16_C(42228) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_u16(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C( 5657919274295558869) },
},
{ { UINT64_C( 3965159768771266939) },
},
{ { UINT64_C( 5087912792556967306) },
},
{ { UINT64_C( 256521758694905530) },
},
{ { UINT64_C( 4270793162607544667) },
},
{ { UINT64_C( 3095497553213558000) },
},
{ { UINT64_C( 1981335759696853887) },
},
{ { UINT64_C( 6874422688824928820) },
},
};
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_private a_ = simde_uint64x1_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_u64(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 2573975289093980101), UINT64_C(12987093788008753529) },
},
{ { UINT64_C(10893662621074775982), UINT64_C( 9071823841222376635) },
},
{ { UINT64_C( 728885576711600406), UINT64_C( 2945388765883141678) },
},
{ { UINT64_C(14412968017312414975), UINT64_C(12400870028522094562) },
},
{ { UINT64_C(10975768628114679222), UINT64_C( 6085387108246304209) },
},
{ { UINT64_C( 8391551434180684704), UINT64_C(13909410374581439942) },
},
{ { UINT64_C( 4759841299535277580), UINT64_C( 1528972579837956751) },
},
{ { UINT64_C( 9759642074302577259), UINT64_C(12992863654388138115) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_u64(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(147), SIMDE_POLY8_C(243), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(112), SIMDE_POLY8_C(131), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(171) },
},
{ { SIMDE_POLY8_C( 45), SIMDE_POLY8_C(204), SIMDE_POLY8_C(175), SIMDE_POLY8_C(204), SIMDE_POLY8_C(142), SIMDE_POLY8_C(231), SIMDE_POLY8_C(239), SIMDE_POLY8_C(114) },
},
{ { SIMDE_POLY8_C(166), SIMDE_POLY8_C(159), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(236) },
},
{ { SIMDE_POLY8_C(218), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(231), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(205) },
},
{ { SIMDE_POLY8_C(218), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(198) },
},
{ { SIMDE_POLY8_C( 15), SIMDE_POLY8_C(183), SIMDE_POLY8_C(147), SIMDE_POLY8_C(157), SIMDE_POLY8_C(159), SIMDE_POLY8_C(130), SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 69) },
},
{ { SIMDE_POLY8_C( 34), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(187), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(146), SIMDE_POLY8_C(168), SIMDE_POLY8_C( 29) },
},
{ { SIMDE_POLY8_C(196), SIMDE_POLY8_C(244), SIMDE_POLY8_C(214), SIMDE_POLY8_C(254), SIMDE_POLY8_C(219), SIMDE_POLY8_C(235), SIMDE_POLY8_C(204), SIMDE_POLY8_C(182) },
},
};
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_private a_ = simde_poly8x8_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_p8(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(186), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(251), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(122), SIMDE_POLY8_C(225),
SIMDE_POLY8_C( 58), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(136), SIMDE_POLY8_C(204), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(150) },
},
{ { SIMDE_POLY8_C(222), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 18), SIMDE_POLY8_C(198), SIMDE_POLY8_C(207), SIMDE_POLY8_C(180),
SIMDE_POLY8_C( 84), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(169), SIMDE_POLY8_C(186), SIMDE_POLY8_C(173), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(116) },
},
{ { SIMDE_POLY8_C(188), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(136), SIMDE_POLY8_C(140), SIMDE_POLY8_C(142), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(110), SIMDE_POLY8_C(200),
SIMDE_POLY8_C(177), SIMDE_POLY8_C(192), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(125), SIMDE_POLY8_C(145), SIMDE_POLY8_C(103), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(111) },
},
{ { SIMDE_POLY8_C(160), SIMDE_POLY8_C(238), SIMDE_POLY8_C(173), SIMDE_POLY8_C(178), SIMDE_POLY8_C(180), SIMDE_POLY8_C(124), SIMDE_POLY8_C(102), SIMDE_POLY8_C( 9),
SIMDE_POLY8_C( 76), SIMDE_POLY8_C(200), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(117), SIMDE_POLY8_C(254), SIMDE_POLY8_C(123), SIMDE_POLY8_C( 49) },
},
{ { SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(190), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(156), SIMDE_POLY8_C(182),
SIMDE_POLY8_C(236), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(236), SIMDE_POLY8_C(243) },
},
{ { SIMDE_POLY8_C( 52), SIMDE_POLY8_C(153), SIMDE_POLY8_C(165), SIMDE_POLY8_C(233), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 98),
SIMDE_POLY8_C(212), SIMDE_POLY8_C(164), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(163), SIMDE_POLY8_C(228), SIMDE_POLY8_C(123), SIMDE_POLY8_C(233) },
},
{ { SIMDE_POLY8_C(231), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(189), SIMDE_POLY8_C(236), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(162), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C( 69), SIMDE_POLY8_C(213), SIMDE_POLY8_C(206), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(186), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 80) },
},
{ { SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(106), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 18),
SIMDE_POLY8_C(207), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(114), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 91), SIMDE_POLY8_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_private a_ = simde_poly8x16_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_p8(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(56181), SIMDE_POLY16_C(42985), SIMDE_POLY16_C(47798), SIMDE_POLY16_C( 3233) },
},
{ { SIMDE_POLY16_C(58242), SIMDE_POLY16_C(62873), SIMDE_POLY16_C(49449), SIMDE_POLY16_C(33758) },
},
{ { SIMDE_POLY16_C(50296), SIMDE_POLY16_C(42295), SIMDE_POLY16_C(65104), SIMDE_POLY16_C(15723) },
},
{ { SIMDE_POLY16_C(19339), SIMDE_POLY16_C(59497), SIMDE_POLY16_C(22037), SIMDE_POLY16_C(35422) },
},
{ { SIMDE_POLY16_C(18225), SIMDE_POLY16_C(59441), SIMDE_POLY16_C(53761), SIMDE_POLY16_C(33780) },
},
{ { SIMDE_POLY16_C(36277), SIMDE_POLY16_C(57208), SIMDE_POLY16_C(22094), SIMDE_POLY16_C(50786) },
},
{ { SIMDE_POLY16_C(39195), SIMDE_POLY16_C(27499), SIMDE_POLY16_C(54936), SIMDE_POLY16_C( 9129) },
},
{ { SIMDE_POLY16_C( 4642), SIMDE_POLY16_C(14091), SIMDE_POLY16_C(26984), SIMDE_POLY16_C(39617) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_p16(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(37371), SIMDE_POLY16_C( 426), SIMDE_POLY16_C( 2791), SIMDE_POLY16_C(64987), SIMDE_POLY16_C(18284), SIMDE_POLY16_C(18051), SIMDE_POLY16_C( 6331), SIMDE_POLY16_C(40537) },
},
{ { SIMDE_POLY16_C( 8541), SIMDE_POLY16_C(40133), SIMDE_POLY16_C(10784), SIMDE_POLY16_C(43297), SIMDE_POLY16_C(16042), SIMDE_POLY16_C( 6646), SIMDE_POLY16_C(19594), SIMDE_POLY16_C(34381) },
},
{ { SIMDE_POLY16_C(63454), SIMDE_POLY16_C(50567), SIMDE_POLY16_C(25090), SIMDE_POLY16_C(28355), SIMDE_POLY16_C(18089), SIMDE_POLY16_C(25780), SIMDE_POLY16_C( 3422), SIMDE_POLY16_C(48130) },
},
{ { SIMDE_POLY16_C(50991), SIMDE_POLY16_C(20312), SIMDE_POLY16_C(31474), SIMDE_POLY16_C(40184), SIMDE_POLY16_C(61368), SIMDE_POLY16_C(17078), SIMDE_POLY16_C( 827), SIMDE_POLY16_C( 6600) },
},
{ { SIMDE_POLY16_C(20474), SIMDE_POLY16_C(64735), SIMDE_POLY16_C(41649), SIMDE_POLY16_C(23146), SIMDE_POLY16_C( 7912), SIMDE_POLY16_C(18110), SIMDE_POLY16_C(49452), SIMDE_POLY16_C(23298) },
},
{ { SIMDE_POLY16_C(23432), SIMDE_POLY16_C(31402), SIMDE_POLY16_C(41685), SIMDE_POLY16_C(36119), SIMDE_POLY16_C(52625), SIMDE_POLY16_C(52687), SIMDE_POLY16_C(39120), SIMDE_POLY16_C(51942) },
},
{ { SIMDE_POLY16_C(50663), SIMDE_POLY16_C(39367), SIMDE_POLY16_C(12647), SIMDE_POLY16_C(20467), SIMDE_POLY16_C(45648), SIMDE_POLY16_C(31894), SIMDE_POLY16_C(39027), SIMDE_POLY16_C(64471) },
},
{ { SIMDE_POLY16_C(33267), SIMDE_POLY16_C(51318), SIMDE_POLY16_C(36131), SIMDE_POLY16_C(46421), SIMDE_POLY16_C( 9562), SIMDE_POLY16_C(10882), SIMDE_POLY16_C(26813), SIMDE_POLY16_C(42228) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_p16(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 5657919274295558869) },
},
{ { SIMDE_POLY64_C( 3965159768771266939) },
},
{ { SIMDE_POLY64_C( 5087912792556967306) },
},
{ { SIMDE_POLY64_C( 256521758694905530) },
},
{ { SIMDE_POLY64_C( 4270793162607544667) },
},
{ { SIMDE_POLY64_C( 3095497553213558000) },
},
{ { SIMDE_POLY64_C( 1981335759696853887) },
},
{ { SIMDE_POLY64_C( 6874422688824928820) },
},
};
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_private a_ = simde_poly64x1_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_p64(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 2573975289093980101), SIMDE_POLY64_C(12987093788008753529) },
},
{ { SIMDE_POLY64_C(10893662621074775982), SIMDE_POLY64_C( 9071823841222376635) },
},
{ { SIMDE_POLY64_C( 728885576711600406), SIMDE_POLY64_C( 2945388765883141678) },
},
{ { SIMDE_POLY64_C(14412968017312414975), SIMDE_POLY64_C(12400870028522094562) },
},
{ { SIMDE_POLY64_C(10975768628114679222), SIMDE_POLY64_C( 6085387108246304209) },
},
{ { SIMDE_POLY64_C( 8391551434180684704), SIMDE_POLY64_C(13909410374581439942) },
},
{ { SIMDE_POLY64_C( 4759841299535277580), SIMDE_POLY64_C( 1528972579837956751) },
},
{ { SIMDE_POLY64_C( 9759642074302577259), SIMDE_POLY64_C(12992863654388138115) },
},
};
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_private a_ = simde_poly64x2_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_p64(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
#if !defined(SIMDE_TARGET_NOT_SUPPORT_INT128_TYPE)
static int
test_simde_vreinterpretq_p128_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C(186), UINT8_C( 15), UINT8_C(251), UINT8_C( 19), UINT8_C(208), UINT8_C( 70), UINT8_C(122), UINT8_C(225),
UINT8_C( 58), UINT8_C(175), UINT8_C( 82), UINT8_C(136), UINT8_C(204), UINT8_C(209), UINT8_C( 23), UINT8_C(150) },
},
{ { UINT8_C(222), UINT8_C( 56), UINT8_C(218), UINT8_C( 62), UINT8_C( 18), UINT8_C(198), UINT8_C(207), UINT8_C(180),
UINT8_C( 84), UINT8_C(208), UINT8_C( 98), UINT8_C(169), UINT8_C(186), UINT8_C(173), UINT8_C( 76), UINT8_C(116) },
},
{ { UINT8_C(188), UINT8_C( 71), UINT8_C(136), UINT8_C(140), UINT8_C(142), UINT8_C( 2), UINT8_C(110), UINT8_C(200),
UINT8_C(177), UINT8_C(192), UINT8_C( 80), UINT8_C(125), UINT8_C(145), UINT8_C(103), UINT8_C( 19), UINT8_C(111) },
},
{ { UINT8_C(160), UINT8_C(238), UINT8_C(173), UINT8_C(178), UINT8_C(180), UINT8_C(124), UINT8_C(102), UINT8_C( 9),
UINT8_C( 76), UINT8_C(200), UINT8_C(178), UINT8_C( 6), UINT8_C(117), UINT8_C(254), UINT8_C(123), UINT8_C( 49) },
},
{ { UINT8_C( 70), UINT8_C( 3), UINT8_C(190), UINT8_C(212), UINT8_C( 5), UINT8_C( 44), UINT8_C(156), UINT8_C(182),
UINT8_C(236), UINT8_C(236), UINT8_C( 51), UINT8_C(125), UINT8_C( 83), UINT8_C( 70), UINT8_C(236), UINT8_C(243) },
},
{ { UINT8_C( 52), UINT8_C(153), UINT8_C(165), UINT8_C(233), UINT8_C( 22), UINT8_C( 12), UINT8_C(242), UINT8_C( 98),
UINT8_C(212), UINT8_C(164), UINT8_C(105), UINT8_C( 74), UINT8_C(163), UINT8_C(228), UINT8_C(123), UINT8_C(233) },
},
{ { UINT8_C(231), UINT8_C( 57), UINT8_C(189), UINT8_C(236), UINT8_C(101), UINT8_C( 89), UINT8_C(162), UINT8_C( 81),
UINT8_C( 69), UINT8_C(213), UINT8_C(206), UINT8_C(152), UINT8_C( 27), UINT8_C(186), UINT8_C(140), UINT8_C( 80) },
},
{ { UINT8_C( 84), UINT8_C( 49), UINT8_C( 57), UINT8_C(106), UINT8_C( 61), UINT8_C( 43), UINT8_C(204), UINT8_C( 18),
UINT8_C(207), UINT8_C( 53), UINT8_C( 92), UINT8_C(114), UINT8_C( 25), UINT8_C(215), UINT8_C( 91), UINT8_C( 0) },
},
};
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_private a_ = simde_uint8x16_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_u8(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(14787), UINT16_C(26040), UINT16_C(47560), UINT16_C(54334), UINT16_C(46659), UINT16_C(43287), UINT16_C(28461), UINT16_C(11270) },
},
{ { UINT16_C(40851), UINT16_C( 3614), UINT16_C(37884), UINT16_C(13423), UINT16_C(40879), UINT16_C(26781), UINT16_C(54165), UINT16_C(22680) },
},
{ { UINT16_C(20748), UINT16_C(54461), UINT16_C(64522), UINT16_C(19880), UINT16_C(49074), UINT16_C(57334), UINT16_C(64814), UINT16_C(49419) },
},
{ { UINT16_C(10652), UINT16_C(39375), UINT16_C(16060), UINT16_C(27853), UINT16_C(27614), UINT16_C(29652), UINT16_C(27710), UINT16_C(19147) },
},
{ { UINT16_C(35261), UINT16_C(50974), UINT16_C(50821), UINT16_C(14100), UINT16_C( 2949), UINT16_C(45846), UINT16_C( 8456), UINT16_C(42100) },
},
{ { UINT16_C(17226), UINT16_C( 1597), UINT16_C( 2945), UINT16_C(24434), UINT16_C(18038), UINT16_C(46290), UINT16_C(40627), UINT16_C(28926) },
},
{ { UINT16_C( 7207), UINT16_C(44088), UINT16_C(19682), UINT16_C(26595), UINT16_C(63831), UINT16_C(24346), UINT16_C(36378), UINT16_C(25604) },
},
{ { UINT16_C(16849), UINT16_C(21098), UINT16_C(56652), UINT16_C(49842), UINT16_C(33827), UINT16_C(54902), UINT16_C(29730), UINT16_C(18759) },
},
};
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_private a_ = simde_uint16x8_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_u16(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2012347191), UINT32_C( 228853529), UINT32_C(3184606882), UINT32_C(2192724089) },
},
{ { UINT32_C(3249853973), UINT32_C( 441778337), UINT32_C(2784320210), UINT32_C(1495580194) },
},
{ { UINT32_C(3536852409), UINT32_C(3202315292), UINT32_C( 729526706), UINT32_C( 397225473) },
},
{ { UINT32_C(2782421252), UINT32_C( 884944482), UINT32_C(2866394504), UINT32_C( 738524531) },
},
{ { UINT32_C( 805229586), UINT32_C(4226670153), UINT32_C(2418502031), UINT32_C(2611467415) },
},
{ { UINT32_C(2554429494), UINT32_C( 919339182), UINT32_C( 685811381), UINT32_C(3059016867) },
},
{ { UINT32_C( 48583609), UINT32_C(3237859889), UINT32_C(3528467515), UINT32_C( 795801849) },
},
{ { UINT32_C( 650620792), UINT32_C(1700565935), UINT32_C(3717020729), UINT32_C(3667124769) },
},
};
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_private a_ = simde_uint32x4_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_u32(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 9602034079943150237), UINT64_C(15071447892160942436) },
},
{ { UINT64_C( 7977050267529101445), UINT64_C(15152987898855457686) },
},
{ { UINT64_C( 3074072634548977156), UINT64_C(14497327183391996253) },
},
{ { UINT64_C( 8357763767761154458), UINT64_C( 5568845286471110208) },
},
{ { UINT64_C(18226659911175066113), UINT64_C( 1720527327522890708) },
},
{ { UINT64_C(16612550484748069179), UINT64_C( 5208029548622103729) },
},
{ { UINT64_C(12002096110392883190), UINT64_C(12770693919310474149) },
},
{ { UINT64_C( 3752436936427036807), UINT64_C( 623876170662637081) },
},
};
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_private a_ = simde_uint64x2_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_u64(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int8_t a[16];
} test_vec[] = {
{ { -INT8_C( 47), -INT8_C( 102), -INT8_C( 31), INT8_C( 11), INT8_C( 32), -INT8_C( 41), -INT8_C( 85), -INT8_C( 54),
INT8_C( 70), -INT8_C( 47), INT8_C( 16), -INT8_C( 62), INT8_C( 57), -INT8_C( 93), -INT8_C( 83), INT8_C( 62) },
},
{ { -INT8_C( 12), INT8_C( 20), -INT8_C( 76), INT8_C( 35), -INT8_C( 2), -INT8_C( 107), -INT8_C( 1), -INT8_C( 124),
INT8_C( 58), INT8_C( 57), -INT8_C( 54), -INT8_C( 62), INT8_C( 112), INT8_C( 79), INT8_C( 71), INT8_C( 65) },
},
{ { -INT8_C( 23), INT8_C( 41), INT8_C( 76), INT8_C( 9), INT8_C( 0), -INT8_C( 9), -INT8_C( 45), INT8_C( 70),
-INT8_C( 55), -INT8_C( 29), INT8_C( 8), INT8_C( 2), -INT8_C( 121), -INT8_C( 75), INT8_C( 64), INT8_C( 123) },
},
{ { -INT8_C( 55), -INT8_C( 12), -INT8_C( 98), -INT8_C( 57), -INT8_C( 119), -INT8_C( 99), INT8_C( 76), -INT8_C( 60),
-INT8_C( 41), INT8_C( 22), -INT8_C( 122), INT8_C( 71), INT8_C( 101), -INT8_C( 50), -INT8_C( 119), INT8_C( 78) },
},
{ { -INT8_C( 9), -INT8_C( 43), INT8_C( 88), -INT8_C( 9), -INT8_C( 51), INT8_C( 43), INT8_C( 61), -INT8_C( 106),
INT8_C( 15), INT8_C( 69), -INT8_C( 104), -INT8_C( 106), -INT8_C( 6), -INT8_C( 39), INT8_C( 17), -INT8_C( 61) },
},
{ { -INT8_C( 51), -INT8_C( 81), -INT8_C( 118), INT8_C( 87), INT8_C( 77), -INT8_C( 42), INT8_C( 27), INT8_C( 36),
-INT8_C( 19), -INT8_C( 95), INT8_C( 107), INT8_C( 82), INT8_C( 111), -INT8_C( 12), -INT8_C( 95), INT8_C( 102) },
},
{ { -INT8_C( 54), -INT8_C( 7), INT8_C( 93), -INT8_C( 105), INT8_C( 36), -INT8_C( 102), INT8_C( 45), INT8_C( 51),
-INT8_C( 33), -INT8_C( 59), -INT8_C( 55), -INT8_C( 39), -INT8_C( 98), -INT8_C( 38), -INT8_C( 100), INT8_C( 108) },
},
{ { -INT8_C( 118), INT8_C( 39), -INT8_C( 61), -INT8_C( 41), -INT8_C( 3), -INT8_C( 34), -INT8_C( 5), -INT8_C( 22),
INT8_MAX, INT8_C( 102), INT8_C( 61), -INT8_C( 17), INT8_C( 91), -INT8_C( 34), INT8_C( 85), INT8_C( 37) },
},
};
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_private a_ = simde_int8x16_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_s8(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 10869), -INT16_C( 3074), -INT16_C( 14055), -INT16_C( 27820), -INT16_C( 19316), INT16_C( 10278), INT16_C( 16875), -INT16_C( 26815) },
},
{ { INT16_C( 10309), -INT16_C( 521), -INT16_C( 22342), INT16_C( 24239), -INT16_C( 29301), INT16_C( 29629), INT16_C( 2522), INT16_C( 25958) },
},
{ { INT16_C( 25822), -INT16_C( 1960), -INT16_C( 21203), -INT16_C( 18037), -INT16_C( 19871), INT16_C( 19682), INT16_C( 9203), INT16_C( 14564) },
},
{ { -INT16_C( 9397), INT16_C( 1333), -INT16_C( 7037), INT16_C( 3939), INT16_C( 8305), INT16_C( 19330), -INT16_C( 6102), INT16_C( 2224) },
},
{ { INT16_C( 2380), INT16_C( 30976), -INT16_C( 29514), INT16_C( 5939), INT16_C( 5438), INT16_C( 12644), INT16_C( 18488), -INT16_C( 31895) },
},
{ { -INT16_C( 25053), -INT16_C( 22904), -INT16_C( 5246), -INT16_C( 3147), INT16_C( 14348), INT16_C( 13887), -INT16_C( 4320), INT16_C( 27966) },
},
{ { INT16_C( 16376), -INT16_C( 20762), INT16_C( 6603), INT16_C( 2502), INT16_C( 10798), INT16_C( 26170), -INT16_C( 23694), -INT16_C( 27159) },
},
{ { INT16_C( 28993), -INT16_C( 15557), -INT16_C( 3747), INT16_C( 27062), -INT16_C( 2775), INT16_C( 18847), -INT16_C( 8731), -INT16_C( 8778) },
},
};
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_private a_ = simde_int16x8_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_s16(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 689895481), -INT32_C( 1859332607), -INT32_C( 1547664472), -INT32_C( 1320526320) },
},
{ { INT32_C( 689737540), INT32_C( 2062555401), -INT32_C( 448572611), INT32_C( 340183628) },
},
{ { -INT32_C( 756406063), -INT32_C( 1503389954), -INT32_C( 1438047079), -INT32_C( 950299518) },
},
{ { INT32_C( 753956643), -INT32_C( 844701552), -INT32_C( 2135693005), -INT32_C( 2070611533) },
},
{ { INT32_C( 525827617), INT32_C( 784776085), INT32_C( 1641549791), -INT32_C( 970443613) },
},
{ { INT32_C( 1022498987), INT32_C( 738826489), INT32_C( 900512898), -INT32_C( 675659594) },
},
{ { INT32_C( 1425478079), -INT32_C( 1417495092), INT32_C( 1879858124), INT32_C( 976631183) },
},
{ { INT32_C( 1182148941), INT32_C( 1131643073), -INT32_C( 226943172), INT32_C( 533345120) },
},
};
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_private a_ = simde_int32x4_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_s32(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
int64_t a[2];
} test_vec[] = {
{ { -INT64_C( 3917874066034605442), -INT64_C( 1949064800907001111) },
},
{ { INT64_C( 546159014590848953), INT64_C( 396535052162892911) },
},
{ { -INT64_C( 7089481973961799031), -INT64_C( 7610395224178797157) },
},
{ { -INT64_C( 4984901720799776239), INT64_C( 5450384428367346454) },
},
{ { -INT64_C( 3403951431896589199), -INT64_C( 4357881682333843182) },
},
{ { INT64_C( 3218210159869166500), -INT64_C( 1627648328125984676) },
},
{ { INT64_C( 6309491700457769098), INT64_C( 3785499309450386962) },
},
{ { -INT64_C( 3165524243452323889), -INT64_C( 3098938020335461220) },
},
};
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_private a_ = simde_int64x2_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_s64(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_f16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16 a[8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE( 615.50), SIMDE_FLOAT16_VALUE( -978.50), SIMDE_FLOAT16_VALUE( -561.50), SIMDE_FLOAT16_VALUE( 508.50),
SIMDE_FLOAT16_VALUE( -968.00), SIMDE_FLOAT16_VALUE( -316.25), SIMDE_FLOAT16_VALUE( -961.50), SIMDE_FLOAT16_VALUE( 786.50) } },
{ { SIMDE_FLOAT16_VALUE( 968.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -0.40), SIMDE_FLOAT16_VALUE( 486.00),
SIMDE_FLOAT16_VALUE( 819.00), SIMDE_FLOAT16_VALUE( 807.00), SIMDE_FLOAT16_VALUE( -690.00), SIMDE_FLOAT16_VALUE( -245.50) } },
{ { SIMDE_FLOAT16_VALUE( -341.50), SIMDE_FLOAT16_VALUE( -184.50), SIMDE_FLOAT16_VALUE( 865.50), SIMDE_FLOAT16_VALUE( 213.38),
SIMDE_FLOAT16_VALUE( 627.50), SIMDE_FLOAT16_VALUE( -115.00), SIMDE_FLOAT16_VALUE( -649.50), SIMDE_FLOAT16_VALUE( 0.66) } },
{ { SIMDE_FLOAT16_VALUE( -466.00), SIMDE_FLOAT16_VALUE( 230.25), SIMDE_FLOAT16_VALUE( 358.50), SIMDE_FLOAT16_VALUE( -979.50),
SIMDE_FLOAT16_VALUE( 474.25), SIMDE_FLOAT16_VALUE( 796.00), SIMDE_FLOAT16_VALUE( 782.00), SIMDE_FLOAT16_VALUE( 89.62) } },
{ { SIMDE_FLOAT16_VALUE( 817.50), SIMDE_FLOAT16_VALUE( -779.50), SIMDE_FLOAT16_VALUE( -402.00), SIMDE_FLOAT16_VALUE( 849.50),
SIMDE_FLOAT16_VALUE( -95.62), SIMDE_FLOAT16_VALUE( -363.50), SIMDE_FLOAT16_VALUE( 636.00), SIMDE_FLOAT16_VALUE( -127.19) } },
{ { SIMDE_FLOAT16_VALUE( -142.88), SIMDE_FLOAT16_VALUE( -364.50), SIMDE_FLOAT16_VALUE( -641.00), SIMDE_FLOAT16_VALUE( -324.00),
SIMDE_FLOAT16_VALUE( -558.00), SIMDE_FLOAT16_VALUE( -331.25), SIMDE_FLOAT16_VALUE( 430.50), SIMDE_FLOAT16_VALUE( 100.62) } },
{ { SIMDE_FLOAT16_VALUE( 484.25), SIMDE_FLOAT16_VALUE( 296.00), SIMDE_FLOAT16_VALUE( -686.00), SIMDE_FLOAT16_VALUE( 111.56),
SIMDE_FLOAT16_VALUE( -819.00), SIMDE_FLOAT16_VALUE( -335.50), SIMDE_FLOAT16_VALUE( -888.00), SIMDE_FLOAT16_VALUE( -284.75) } },
{ { SIMDE_FLOAT16_VALUE( 894.50), SIMDE_FLOAT16_VALUE( 470.75), SIMDE_FLOAT16_VALUE( -264.25), SIMDE_FLOAT16_VALUE( 369.00),
SIMDE_FLOAT16_VALUE( 266.75), SIMDE_FLOAT16_VALUE( -482.00), SIMDE_FLOAT16_VALUE( -541.50), SIMDE_FLOAT16_VALUE( 84.12) } }
};
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_private a_ = simde_float16x8_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_f16(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
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_test_arm_neon_write_f16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32 a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 666.23), SIMDE_FLOAT32_C( -544.03), SIMDE_FLOAT32_C( 130.05), SIMDE_FLOAT32_C( -777.18) },
},
{ { SIMDE_FLOAT32_C( 521.70), SIMDE_FLOAT32_C( 33.98), SIMDE_FLOAT32_C( -958.60), SIMDE_FLOAT32_C( -408.56) },
},
{ { SIMDE_FLOAT32_C( 396.34), SIMDE_FLOAT32_C( -364.03), SIMDE_FLOAT32_C( 719.77), SIMDE_FLOAT32_C( 483.05) },
},
{ { SIMDE_FLOAT32_C( 307.42), SIMDE_FLOAT32_C( 916.12), SIMDE_FLOAT32_C( -506.50), SIMDE_FLOAT32_C( 167.94) },
},
{ { SIMDE_FLOAT32_C( 796.69), SIMDE_FLOAT32_C( -227.61), SIMDE_FLOAT32_C( 168.78), SIMDE_FLOAT32_C( 769.87) },
},
{ { SIMDE_FLOAT32_C( 237.37), SIMDE_FLOAT32_C( -942.90), SIMDE_FLOAT32_C( 126.56), SIMDE_FLOAT32_C( -99.19) },
},
{ { SIMDE_FLOAT32_C( 684.50), SIMDE_FLOAT32_C( 809.18), SIMDE_FLOAT32_C( 523.87), SIMDE_FLOAT32_C( 945.93) },
},
{ { SIMDE_FLOAT32_C( 492.61), SIMDE_FLOAT32_C( 718.52), SIMDE_FLOAT32_C( -237.77), SIMDE_FLOAT32_C( 158.83) },
},
};
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_private a_ = simde_float32x4_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_f32(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
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_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64 a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( 774.17), SIMDE_FLOAT64_C( -982.31) },
},
{ { SIMDE_FLOAT64_C( 150.95), SIMDE_FLOAT64_C( 568.12) },
},
{ { SIMDE_FLOAT64_C( -697.86), SIMDE_FLOAT64_C( -585.35) },
},
{ { SIMDE_FLOAT64_C( -726.09), SIMDE_FLOAT64_C( -258.24) },
},
{ { SIMDE_FLOAT64_C( 225.96), SIMDE_FLOAT64_C( 612.94) },
},
{ { SIMDE_FLOAT64_C( 513.18), SIMDE_FLOAT64_C( 503.15) },
},
{ { SIMDE_FLOAT64_C( 963.82), SIMDE_FLOAT64_C( -77.66) },
},
{ { SIMDE_FLOAT64_C( -796.08), SIMDE_FLOAT64_C( 2.44) },
},
};
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_private a_ = simde_float64x2_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_f64(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
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_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(31179), SIMDE_POLY16_C(62043), SIMDE_POLY16_C(34234), SIMDE_POLY16_C(60575), SIMDE_POLY16_C(14522), SIMDE_POLY16_C(65218), SIMDE_POLY16_C(28205), SIMDE_POLY16_C( 2962) },
},
{ { SIMDE_POLY16_C(26700), SIMDE_POLY16_C( 7147), SIMDE_POLY16_C(59748), SIMDE_POLY16_C( 4323), SIMDE_POLY16_C(15518), SIMDE_POLY16_C(23427), SIMDE_POLY16_C(47621), SIMDE_POLY16_C(53345) },
},
{ { SIMDE_POLY16_C(48179), SIMDE_POLY16_C(60866), SIMDE_POLY16_C(24898), SIMDE_POLY16_C(64729), SIMDE_POLY16_C(40089), SIMDE_POLY16_C(51194), SIMDE_POLY16_C(35850), SIMDE_POLY16_C(22482) },
},
{ { SIMDE_POLY16_C(48884), SIMDE_POLY16_C(22898), SIMDE_POLY16_C(21927), SIMDE_POLY16_C(17769), SIMDE_POLY16_C(60562), SIMDE_POLY16_C(38816), SIMDE_POLY16_C( 423), SIMDE_POLY16_C(55911) },
},
{ { SIMDE_POLY16_C(10686), SIMDE_POLY16_C( 200), SIMDE_POLY16_C(41354), SIMDE_POLY16_C( 9468), SIMDE_POLY16_C(63037), SIMDE_POLY16_C(18667), SIMDE_POLY16_C(48515), SIMDE_POLY16_C(30623) },
},
{ { SIMDE_POLY16_C( 4475), SIMDE_POLY16_C( 8912), SIMDE_POLY16_C(14694), SIMDE_POLY16_C(63591), SIMDE_POLY16_C( 2086), SIMDE_POLY16_C(52623), SIMDE_POLY16_C(62985), SIMDE_POLY16_C(51111) },
},
{ { SIMDE_POLY16_C(28447), SIMDE_POLY16_C(43719), SIMDE_POLY16_C(49937), SIMDE_POLY16_C(20174), SIMDE_POLY16_C(47546), SIMDE_POLY16_C(15766), SIMDE_POLY16_C(13686), SIMDE_POLY16_C(62132) },
},
{ { SIMDE_POLY16_C(34118), SIMDE_POLY16_C(44308), SIMDE_POLY16_C(31934), SIMDE_POLY16_C(58533), SIMDE_POLY16_C(13700), SIMDE_POLY16_C(36273), SIMDE_POLY16_C(22827), SIMDE_POLY16_C(19285) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_p16(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p128_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 82), SIMDE_POLY8_C(199), SIMDE_POLY8_C(185), SIMDE_POLY8_C(196), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(140),
SIMDE_POLY8_C(219), SIMDE_POLY8_C(212), SIMDE_POLY8_C(210), SIMDE_POLY8_C(116), SIMDE_POLY8_C(240), SIMDE_POLY8_C(118), SIMDE_POLY8_C(167), SIMDE_POLY8_C( 68) },
},
{ { SIMDE_POLY8_C( 44), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(208),
SIMDE_POLY8_C( 89), SIMDE_POLY8_C(217), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(216), SIMDE_POLY8_C(154), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 42) },
},
{ { SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(239), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C(119), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(140), SIMDE_POLY8_C( 82),
SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(199), SIMDE_POLY8_C(241), SIMDE_POLY8_C(213), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 1) },
},
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(188),
SIMDE_POLY8_C(222), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(223), SIMDE_POLY8_C(183), SIMDE_POLY8_C(237), SIMDE_POLY8_C(110), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 78) },
},
{ { SIMDE_POLY8_C(182), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 78), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(253), SIMDE_POLY8_C(218), SIMDE_POLY8_C(128), SIMDE_POLY8_C(254),
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 15), SIMDE_POLY8_C(234) },
},
{ { SIMDE_POLY8_C(101), SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(122), SIMDE_POLY8_C(132), SIMDE_POLY8_C(245),
SIMDE_POLY8_C(205), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(172), SIMDE_POLY8_C(186), SIMDE_POLY8_C(209), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(135) },
},
{ { SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(105),
SIMDE_POLY8_C(123), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(108), SIMDE_POLY8_C(133), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(209) },
},
{ { SIMDE_POLY8_C(151), SIMDE_POLY8_C(100), SIMDE_POLY8_C(153), SIMDE_POLY8_C(173), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 29), SIMDE_POLY8_C(162), SIMDE_POLY8_C(171),
SIMDE_POLY8_C(128), SIMDE_POLY8_C( 78), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(220), SIMDE_POLY8_C(110), SIMDE_POLY8_C(216), SIMDE_POLY8_C( 58) },
},
};
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_private a_ = simde_poly8x16_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_p8(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, sizeof(r)));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
#if !defined(SIMDE_BUG_GCC_113065)
static int
test_simde_vreinterpretq_p8_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_poly8x16_t r;
simde_poly8x16_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_p8_p128(a);
r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_poly16x8_t r;
simde_poly16x8_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_p16_p128(a);
r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_int8x16_t r;
simde_int8x16_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_s8_p128(a);
r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_int16x8_t r;
simde_int16x8_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_s16_p128(a);
r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_int32x4_t r;
simde_int32x4_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_s32_p128(a);
r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_int64x2_t r;
simde_int64x2_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_s64_p128(a);
r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_uint8x16_t r;
simde_uint8x16_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_u8_p128(a);
r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_uint16x8_t r;
simde_uint16x8_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_u16_p128(a);
r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_uint32x4_t r;
simde_uint32x4_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_u32_p128(a);
r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_uint64x2_t r;
simde_uint64x2_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_u64_p128(a);
r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f16_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_float16x8_t r;
simde_float16x8_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_f16_p128(a);
r_ = simde_float16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_p128 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_float64x2_t r;
simde_float64x2_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_f64_p128(a);
r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_p128 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9602034079943150237), SIMDE_POLY64_C(15071447892160942436) },
},
{ { SIMDE_POLY64_C( 7977050267529101445), SIMDE_POLY64_C(15152987898855457686) },
},
{ { SIMDE_POLY64_C( 3074072634548977156), SIMDE_POLY64_C(14497327183391996253) },
},
{ { SIMDE_POLY64_C( 8357763767761154458), SIMDE_POLY64_C( 5568845286471110208) },
},
{ { SIMDE_POLY64_C(18226659911175066113), SIMDE_POLY64_C( 1720527327522890708) },
},
{ { SIMDE_POLY64_C(16612550484748069179), SIMDE_POLY64_C( 5208029548622103729) },
},
{ { SIMDE_POLY64_C(12002096110392883190), SIMDE_POLY64_C(12770693919310474149) },
},
{ { SIMDE_POLY64_C( 3752436936427036807), SIMDE_POLY64_C( 623876170662637081) },
},
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly128_t a = test_vec[i].a[0];
simde_bfloat16x8_t r;
simde_bfloat16x8_private r_;
a = a << 64;
a = a | test_vec[i].a[1];
r = simde_vreinterpretq_bf16_p128(a);
r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a, 16));
}
return 0;
}
#endif
static int
test_simde_vreinterpretq_p128_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_poly128_t r = simde_vreinterpretq_p128_bf16(a);
simde_assert_equal_i(0, simde_memcmp(&r, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
#endif
static int
test_simde_vreinterpret_bf16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t a[8];
} test_vec[] = {
{ { -INT8_C( 124), -INT8_C( 1), -INT8_C( 43), INT8_C( 46), INT8_C( 41), -INT8_C( 85), -INT8_C( 22), -INT8_C( 115) } },
{ { -INT8_C( 50), -INT8_C( 1), INT8_C( 112), -INT8_C( 58), -INT8_C( 86), -INT8_C( 80), -INT8_C( 59), INT8_C( 34) } },
{ { INT8_MAX, -INT8_C( 87), INT8_C( 95), -INT8_C( 32), INT8_C( 54), -INT8_C( 34), -INT8_C( 64), -INT8_C( 43) } },
{ { INT8_C( 24), INT8_C( 52), INT8_C( 102), -INT8_C( 22), -INT8_C( 88), INT8_C( 89), INT8_C( 97), INT8_C( 45) } },
{ { INT8_C( 88), INT8_C( 54), INT8_C( 91), -INT8_C( 127), -INT8_C( 31), INT8_C( 69), INT8_C( 14), -INT8_C( 80) } },
{ { INT8_C( 68), INT8_MAX, INT8_C( 118), -INT8_C( 18), INT8_C( 47), INT8_C( 59), INT8_C( 16), -INT8_C( 82) } },
{ { -INT8_C( 28), INT8_C( 111), -INT8_C( 114), INT8_C( 27), INT8_C( 77), INT8_C( 79), -INT8_C( 16), INT8_C( 102) } },
{ { -INT8_C( 125), INT8_C( 87), INT8_C( 80), INT8_C( 44), -INT8_C( 80), -INT8_C( 79), INT8_C( 89), INT8_C( 8) } },
};
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_private a_ = simde_int8x8_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_s8(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int8x8_t a = simde_test_arm_neon_random_i8x8();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i8x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t a[4];
} test_vec[] = {
{ { INT16_C( 5390), -INT16_C( 25778), -INT16_C( 17334), -INT16_C( 15891) } },
{ { -INT16_C( 32408), INT16_C( 9065), -INT16_C( 8799), -INT16_C( 13137) } },
{ { -INT16_C( 27935), INT16_C( 29580), -INT16_C( 21440), INT16_C( 19313) } },
{ { -INT16_C( 329), INT16_C( 245), INT16_C( 4433), INT16_C( 24463) } },
{ { -INT16_C( 8922), INT16_C( 28923), -INT16_C( 5990), INT16_C( 562) } },
{ { -INT16_C( 25751), INT16_C( 2854), -INT16_C( 10887), INT16_C( 23255) } },
{ { INT16_C( 25704), -INT16_C( 22323), INT16_C( 16144), -INT16_C( 14349) } },
{ { -INT16_C( 6083), -INT16_C( 28984), INT16_C( 22521), INT16_C( 8174) } },
};
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_private a_ = simde_int16x4_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_s16(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int16x4_t a = simde_test_arm_neon_random_i16x4();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t a[2];
} test_vec[] = {
{ { -INT32_C( 146931668), INT32_C( 310243946) } },
{ { -INT32_C( 1148030226), INT32_C( 1383596628) } },
{ { INT32_C( 2002637712), -INT32_C( 448937154) } },
{ { -INT32_C( 36872548), -INT32_C( 1389941631) } },
{ { -INT32_C( 1750833876), INT32_C( 1185489240) } },
{ { -INT32_C( 402572396), -INT32_C( 851740099) } },
{ { -INT32_C( 1958438835), -INT32_C( 126778789) } },
{ { INT32_C( 1643462368), -INT32_C( 1760682902) } },
};
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_private a_ = simde_int32x2_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_s32(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x2_t a = simde_test_arm_neon_random_i32x2();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a[1];
} test_vec[] = {
{ { INT64_C( 7503234288392778626) } },
{ { -INT64_C( 1649007285557452270) } },
{ { -INT64_C( 4289424775988288988) } },
{ { INT64_C( 875163472288443684) } },
{ { INT64_C( 4405653116102792167) } },
{ { INT64_C( 2787352143958209832) } },
{ { INT64_C( 3293571730532344588) } },
{ { -INT64_C( 638982217204507765) } },
};
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_private a_ = simde_int64x1_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_s64(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int64x1_t a = simde_test_arm_neon_random_i64x1();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t a[8];
} test_vec[] = {
{ { UINT8_C(219), UINT8_C(229), UINT8_C( 67), UINT8_C( 18), UINT8_C(178), UINT8_C( 20), UINT8_C( 80), UINT8_C( 70) } },
{ { UINT8_C( 11), UINT8_C( 87), UINT8_C(193), UINT8_C(172), UINT8_C(121), UINT8_C(208), UINT8_C(228), UINT8_C( 89) } },
{ { UINT8_C(127), UINT8_C( 77), UINT8_C(191), UINT8_C(170), UINT8_C(119), UINT8_C( 55), UINT8_C(138), UINT8_C( 45) } },
{ { UINT8_C( 84), UINT8_C(175), UINT8_C(191), UINT8_C(230), UINT8_C(232), UINT8_C( 2), UINT8_C(139), UINT8_C(195) } },
{ { UINT8_C(232), UINT8_C(206), UINT8_C(214), UINT8_C(154), UINT8_C(226), UINT8_C( 38), UINT8_C(224), UINT8_C(238) } },
{ { UINT8_C(125), UINT8_C(162), UINT8_C(154), UINT8_C(246), UINT8_C(114), UINT8_C(126), UINT8_C( 79), UINT8_C(242) } },
{ { UINT8_C(203), UINT8_C( 15), UINT8_C(156), UINT8_C( 66), UINT8_C( 70), UINT8_C( 38), UINT8_C(112), UINT8_C(154) } },
{ { UINT8_C(213), UINT8_C( 47), UINT8_C(129), UINT8_C(189), UINT8_C( 50), UINT8_C( 12), UINT8_C(128), UINT8_C( 26) } },
};
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_private a_ = simde_uint8x8_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_u8(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint8x8_t a = simde_test_arm_neon_random_u8x8();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u8x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t a[4];
} test_vec[] = {
{ { UINT16_C(30121), UINT16_C(12108), UINT16_C(42437), UINT16_C(49383) } },
{ { UINT16_C(53470), UINT16_C(44402), UINT16_C(41976), UINT16_C(56351) } },
{ { UINT16_C(61397), UINT16_C(60757), UINT16_C(18305), UINT16_C(55283) } },
{ { UINT16_C(12873), UINT16_C(19715), UINT16_C(47607), UINT16_C(41225) } },
{ { UINT16_C(22063), UINT16_C(62672), UINT16_C(47099), UINT16_C(55732) } },
{ { UINT16_C(10120), UINT16_C(32902), UINT16_C(42442), UINT16_C(40796) } },
{ { UINT16_C(45717), UINT16_C( 5772), UINT16_C(32761), UINT16_C(17389) } },
{ { UINT16_C(61874), UINT16_C(43408), UINT16_C(39594), UINT16_C(55626) } },
};
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_private a_ = simde_uint16x4_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_u16(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint16x4_t a = simde_test_arm_neon_random_u16x4();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t a[2];
} test_vec[] = {
{ { UINT32_C(1459828951), UINT32_C(2672226147) } },
{ { UINT32_C(1249983765), UINT32_C( 378889046) } },
{ { UINT32_C(3918677086), UINT32_C(2174844555) } },
{ { UINT32_C( 96078707), UINT32_C(3315276013) } },
{ { UINT32_C(3021774673), UINT32_C(2756928142) } },
{ { UINT32_C(4142847392), UINT32_C(2517402424) } },
{ { UINT32_C(1400938184), UINT32_C(2429886748) } },
{ { UINT32_C( 429231916), UINT32_C(4175311271) } },
};
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_private a_ = simde_uint32x2_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_u32(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x2_t a = simde_test_arm_neon_random_u32x2();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t a[1];
} test_vec[] = {
{ { UINT64_C(18231134642569542608) } },
{ { UINT64_C( 4369616937394893013) } },
{ { UINT64_C( 8091389926875014046) } },
{ { UINT64_C(16254449904943554803) } },
{ { UINT64_C( 1566762566258999395) } },
{ { UINT64_C( 5756380640520090162) } },
{ { UINT64_C(14600200320837120745) } },
{ { UINT64_C(17593022292892657716) } },
};
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_private a_ = simde_uint64x1_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_u64(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint64x1_t a = simde_test_arm_neon_random_u64x1();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float32_t a[2];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 345.27), SIMDE_FLOAT32_C( 827.74) } },
{ { SIMDE_FLOAT32_C( -488.04), SIMDE_FLOAT32_C( 130.78) } },
{ { SIMDE_FLOAT32_C( 192.25), SIMDE_FLOAT32_C( -556.64) } },
{ { SIMDE_FLOAT32_C( 398.71), SIMDE_FLOAT32_C( -974.95) } },
};
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_private a_ = simde_float32x2_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_f32(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_float32x2_t a = simde_test_arm_neon_random_f32x2(-1000.0f, 1000.0f);
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_f32x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float64_t a[1];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -427.39) } },
{ { SIMDE_FLOAT64_C( -978.25) } },
{ { SIMDE_FLOAT64_C( 18.64) } },
{ { SIMDE_FLOAT64_C( 383.45) } },
};
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_private a_ = simde_float64x1_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_f64(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_float64x1_t a = simde_test_arm_neon_random_f64x1(-1000.0, 1000.0);
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_f64x1(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_s8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t a[16];
} test_vec[] = {
{ { INT8_C( 4), -INT8_C( 109), -INT8_C( 33), -INT8_C( 39), -INT8_C( 90), INT8_C( 69), -INT8_C( 81), INT8_C( 108),
-INT8_C( 116), INT8_C( 17), -INT8_C( 67), -INT8_C( 99), -INT8_C( 64), INT8_C( 35), -INT8_C( 67), INT8_C( 3) } },
{ { -INT8_C( 13), INT8_C( 21), -INT8_C( 24), INT8_C( 103), -INT8_C( 24), INT8_C( 122), INT8_C( 31), INT8_C( 72),
-INT8_C( 89), INT8_C( 36), -INT8_C( 23), -INT8_C( 63), INT8_C( 79), -INT8_C( 62), INT8_C( 8), INT8_C( 83) } },
{ { INT8_C( 85), -INT8_C( 24), INT8_C( 44), -INT8_C( 5), INT8_C( 45), -INT8_C( 36), INT8_C( 103), -INT8_C( 71),
-INT8_C( 19), INT8_C( 37), INT8_C( 86), -INT8_C( 82), INT8_C( 72), INT8_C( 19), -INT8_C( 79), INT8_C( 60) } },
{ { INT8_C( 40), -INT8_C( 102), -INT8_C( 93), INT8_C( 17), INT8_C( 20), -INT8_C( 61), INT8_C( 89), -INT8_C( 69),
-INT8_C( 25), INT8_C( 67), INT8_C( 124), INT8_C( 54), INT8_C( 5), -INT8_C( 123), -INT8_C( 119), INT8_C( 90) } },
};
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_private a_ = simde_int8x16_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_s8(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i8x16(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_s16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t a[8];
} test_vec[] = {
{ { -INT16_C( 18835), -INT16_C( 26027), -INT16_C( 17262), INT16_C( 32596), -INT16_C( 21791), INT16_C( 10797), -INT16_C( 8258), -INT16_C( 6554) } },
{ { INT16_C( 2425), -INT16_C( 29193), INT16_C( 20940), -INT16_C( 19384), -INT16_C( 15212), -INT16_C( 26134), INT16_C( 29769), -INT16_C( 18701) } },
{ { INT16_C( 18474), -INT16_C( 17327), -INT16_C( 23292), -INT16_C( 6597), INT16_C( 26959), INT16_C( 3344), INT16_C( 30280), -INT16_C( 15884) } },
{ { -INT16_C( 5249), INT16_C( 19534), -INT16_C( 27076), -INT16_C( 12288), -INT16_C( 5542), -INT16_C( 23447), INT16_C( 23646), -INT16_C( 30630) } },
};
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_private a_ = simde_int16x8_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_s16(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_s32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t a[4];
} test_vec[] = {
{ { -INT32_C( 1455117404), -INT32_C( 1601208240), INT32_C( 833462249), -INT32_C( 1796038379) } },
{ { -INT32_C( 908050291), INT32_C( 815456470), INT32_C( 701760459), INT32_C( 78786400) } },
{ { INT32_C( 732821210), INT32_C( 1607154806), -INT32_C( 258967333), -INT32_C( 1484422630) } },
{ { -INT32_C( 1737464382), INT32_C( 298388038), INT32_C( 1849335054), -INT32_C( 1485640500) } },
{ { INT32_C( 1506943203), INT32_C( 951688540), INT32_C( 791169301), -INT32_C( 1898533428) } },
{ { INT32_C( 1495746323), INT32_C( 1600843857), INT32_C( 1523426445), INT32_C( 1946239121) } },
{ { -INT32_C( 1127361696), -INT32_C( 2047572368), -INT32_C( 1665851952), -INT32_C( 584414262) } },
{ { INT32_C( 607539666), -INT32_C( 813457343), -INT32_C( 701935291), -INT32_C( 246797679) } },
};
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_private a_ = simde_int32x4_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_s32(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_s64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t a[2];
} test_vec[] = {
{ { INT64_C( 7994631089864644605), INT64_C( 389337288737990591) } },
{ { -INT64_C( 8964787523093422714), -INT64_C( 1837288424439431170) } },
{ { -INT64_C( 8158755818581054022), -INT64_C( 8419902793332502291) } },
{ { -INT64_C( 369882324318138596), -INT64_C( 7748432328819919192) } },
};
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_private a_ = simde_int64x2_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_s64(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_u8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t a[16];
} test_vec[] = {
{ { UINT8_C( 83), UINT8_C(131), UINT8_C(194), UINT8_C(165), UINT8_C(223), UINT8_C(177), UINT8_C(173), UINT8_C( 6),
UINT8_C( 66), UINT8_C(145), UINT8_C(232), UINT8_C(162), UINT8_C( 24), UINT8_C(156), UINT8_C(104), UINT8_C( 3) } },
{ { UINT8_C(131), UINT8_C(200), UINT8_C(153), UINT8_C(122), UINT8_C(195), UINT8_C( 98), UINT8_C(154), UINT8_C(224),
UINT8_C(172), UINT8_C( 83), UINT8_C(182), UINT8_C( 84), UINT8_C( 46), UINT8_C(163), UINT8_C( 6), UINT8_C(130) } },
{ { UINT8_C( 38), UINT8_C(200), UINT8_C( 39), UINT8_C( 6), UINT8_C(122), UINT8_C(212), UINT8_C( 12), UINT8_C(188),
UINT8_C(101), UINT8_C(244), UINT8_C( 94), UINT8_C(125), UINT8_C(144), UINT8_C(198), UINT8_C(129), UINT8_C( 20) } },
{ { UINT8_C(143), UINT8_C( 26), UINT8_C(142), UINT8_C( 82), UINT8_C(125), UINT8_C( 40), UINT8_C( 50), UINT8_C( 41),
UINT8_C(123), UINT8_C(233), UINT8_C(126), UINT8_C(170), UINT8_C(140), UINT8_C(132), UINT8_C( 44), UINT8_C(179) } },
};
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_private a_ = simde_uint8x16_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_u8(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u8x16(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_u16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t a[8];
} test_vec[] = {
{ { UINT16_C(21325), UINT16_C(51129), UINT16_C(50471), UINT16_C(35971), UINT16_C(57785), UINT16_C(18954), UINT16_C(35751), UINT16_C(13918) } },
{ { UINT16_C(60581), UINT16_C( 8841), UINT16_C(47893), UINT16_C(36940), UINT16_C(51876), UINT16_C(12602), UINT16_C(26190), UINT16_C(39908) } },
{ { UINT16_C(40377), UINT16_C(57442), UINT16_C(58722), UINT16_C( 7021), UINT16_C(30662), UINT16_C(28261), UINT16_C(49922), UINT16_C(42916) } },
{ { UINT16_C(11696), UINT16_C(50634), UINT16_C( 5865), UINT16_C(36181), UINT16_C(37088), UINT16_C(11966), UINT16_C(41718), UINT16_C(45258) } },
};
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_private a_ = simde_uint16x8_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_u16(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_u32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t a[4];
} test_vec[] = {
{ { UINT32_C(2710580287), UINT32_C(3636329746), UINT32_C(1984307828), UINT32_C(2518608870) } },
{ { UINT32_C( 22800408), UINT32_C(3733958910), UINT32_C( 923553088), UINT32_C( 803722992) } },
{ { UINT32_C( 366049027), UINT32_C(3924659829), UINT32_C(2522887344), UINT32_C( 925662751) } },
{ { UINT32_C(1681491814), UINT32_C(2017642552), UINT32_C( 95374869), UINT32_C( 674600485) } },
{ { UINT32_C(2201814542), UINT32_C(1147939476), UINT32_C(2111556702), UINT32_C(2964653898) } },
{ { UINT32_C(3340037775), UINT32_C(3409925814), UINT32_C(3402756005), UINT32_C(2482112133) } },
{ { UINT32_C(2685808396), UINT32_C(3101983577), UINT32_C(2587213647), UINT32_C(1447750343) } },
{ { UINT32_C(2384289752), UINT32_C(1515871413), UINT32_C(3508808523), UINT32_C(1029969457) } },
};
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_private a_ = simde_uint32x4_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_u32(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u32x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_u64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t a[2];
} test_vec[] = {
{ { UINT64_C( 5573136363242224453), UINT64_C( 5737078463222221953) } },
{ { UINT64_C( 7179080953629686673), UINT64_C( 2436896946530862435) } },
{ { UINT64_C(17320588457696865811), UINT64_C( 678590505213773476) } },
{ { UINT64_C(16360717081228888209), UINT64_C(17056337783766335670) } },
};
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_private a_ = simde_uint64x2_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_u64(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_u64x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_f32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32_t a[4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( 7.82), SIMDE_FLOAT32_C( 904.23), SIMDE_FLOAT32_C( 301.81), SIMDE_FLOAT32_C( 823.64) } },
{ { SIMDE_FLOAT32_C( -946.55), SIMDE_FLOAT32_C( 98.67), SIMDE_FLOAT32_C( -111.44), SIMDE_FLOAT32_C( 829.16) } },
{ { SIMDE_FLOAT32_C( -237.48), SIMDE_FLOAT32_C( 597.68), SIMDE_FLOAT32_C( 765.56), SIMDE_FLOAT32_C( -16.07) } },
{ { SIMDE_FLOAT32_C( 189.22), SIMDE_FLOAT32_C( -221.30), SIMDE_FLOAT32_C( -693.03), SIMDE_FLOAT32_C( 412.06) } },
{ { SIMDE_FLOAT32_C( -936.59), SIMDE_FLOAT32_C( -105.27), SIMDE_FLOAT32_C( 962.59), SIMDE_FLOAT32_C( -821.74) } },
{ { SIMDE_FLOAT32_C( 868.84), SIMDE_FLOAT32_C( 275.62), SIMDE_FLOAT32_C( 407.21), SIMDE_FLOAT32_C( -167.39) } },
{ { SIMDE_FLOAT32_C( -743.76), SIMDE_FLOAT32_C( -246.71), SIMDE_FLOAT32_C( -65.80), SIMDE_FLOAT32_C( -251.81) } },
{ { SIMDE_FLOAT32_C( -952.86), SIMDE_FLOAT32_C( -488.09), SIMDE_FLOAT32_C( 550.29), SIMDE_FLOAT32_C( 54.97) } },
};
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_private a_ = simde_float32x4_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_f32(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
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);
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_f32x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_f64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64_t a[2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -583.86), SIMDE_FLOAT64_C( -147.90) } },
{ { SIMDE_FLOAT64_C( -121.40), SIMDE_FLOAT64_C( -530.41) } },
{ { SIMDE_FLOAT64_C( 950.77), SIMDE_FLOAT64_C( 767.16) } },
{ { SIMDE_FLOAT64_C( -701.24), SIMDE_FLOAT64_C( -286.71) } },
};
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_private a_ = simde_float64x2_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_f64(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_float64x2_t a = simde_test_arm_neon_random_f64x2(-1000.0, 1000.0);
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_f64x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s8_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_int8x8_t r = simde_vreinterpret_s8_bf16(a);
simde_int8x8_private r_ = simde_int8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s16_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_int16x4_t r = simde_vreinterpret_s16_bf16(a);
simde_int16x4_private r_ = simde_int16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s32_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_int32x2_t r = simde_vreinterpret_s32_bf16(a);
simde_int32x2_private r_ = simde_int32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_s64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_int64x1_t r = simde_vreinterpret_s64_bf16(a);
simde_int64x1_private r_ = simde_int64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u8_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_uint8x8_t r = simde_vreinterpret_u8_bf16(a);
simde_uint8x8_private r_ = simde_uint8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u16_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_uint16x4_t r = simde_vreinterpret_u16_bf16(a);
simde_uint16x4_private r_ = simde_uint16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u32_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_uint32x2_t r = simde_vreinterpret_u32_bf16(a);
simde_uint32x2_private r_ = simde_uint32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_u64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_uint64x1_t r = simde_vreinterpret_u64_bf16(a);
simde_uint64x1_private r_ = simde_uint64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f32_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_float32x2_t r = simde_vreinterpret_f32_bf16(a);
simde_float32x2_private r_ = simde_float32x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_f64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_float64x1_t r = simde_vreinterpret_f64_bf16(a);
simde_float64x1_private r_ = simde_float64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s8_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_int8x16_t r = simde_vreinterpretq_s8_bf16(a);
simde_int8x16_private r_ = simde_int8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s16_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_int16x8_t r = simde_vreinterpretq_s16_bf16(a);
simde_int16x8_private r_ = simde_int16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s32_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_int32x4_t r = simde_vreinterpretq_s32_bf16(a);
simde_int32x4_private r_ = simde_int32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_s64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_int64x2_t r = simde_vreinterpretq_s64_bf16(a);
simde_int64x2_private r_ = simde_int64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u8_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_uint8x16_t r = simde_vreinterpretq_u8_bf16(a);
simde_uint8x16_private r_ = simde_uint8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u16_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_uint16x8_t r = simde_vreinterpretq_u16_bf16(a);
simde_uint16x8_private r_ = simde_uint16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u32_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_uint32x4_t r = simde_vreinterpretq_u32_bf16(a);
simde_uint32x4_private r_ = simde_uint32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_u64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_uint64x2_t r = simde_vreinterpretq_u64_bf16(a);
simde_uint64x2_private r_ = simde_uint64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f32_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_float32x4_t r = simde_vreinterpretq_f32_bf16(a);
simde_float32x4_private r_ = simde_float32x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_f64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_float64x2_t r = simde_vreinterpretq_f64_bf16(a);
simde_float64x2_private r_ = simde_float64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly8_t a[8];
} test_vec[] = {
{ { SIMDE_POLY8_C(244), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(124), SIMDE_POLY8_C(164) } },
{ { SIMDE_POLY8_C(237), SIMDE_POLY8_C(216), SIMDE_POLY8_C(213), SIMDE_POLY8_C(196), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 33) } },
{ { SIMDE_POLY8_C( 57), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(221), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(148), SIMDE_POLY8_C(228) } },
{ { SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(197), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 47) } },
};
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_private a_ = simde_poly8x8_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_p8(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly16_t a[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(13600), SIMDE_POLY16_C(32053), SIMDE_POLY16_C( 4635), SIMDE_POLY16_C(32043) } },
{ { SIMDE_POLY16_C(10507), SIMDE_POLY16_C(46629), SIMDE_POLY16_C(39072), SIMDE_POLY16_C(55899) } },
{ { SIMDE_POLY16_C(59130), SIMDE_POLY16_C(20421), SIMDE_POLY16_C(38878), SIMDE_POLY16_C(12985) } },
{ { SIMDE_POLY16_C(53027), SIMDE_POLY16_C(42572), SIMDE_POLY16_C(30763), SIMDE_POLY16_C(19332) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_private a_ = simde_poly16x4_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_p16(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_bf16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t a[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 9204660904461523583) } },
{ { SIMDE_POLY64_C( 4739275422767344560) } },
{ { SIMDE_POLY64_C( 6584180791968875294) } },
{ { SIMDE_POLY64_C( 7421150329967090969) } },
};
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_private a_ = simde_poly64x1_to_private(a);
simde_bfloat16x4_t r = simde_vreinterpret_bf16_p64(a);
simde_bfloat16x4_private r_ = simde_bfloat16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly8_t a[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(193), SIMDE_POLY8_C(249), SIMDE_POLY8_C(215), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 25), SIMDE_POLY8_C(121), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 9),
SIMDE_POLY8_C(196), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(129), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 84) } },
{ { SIMDE_POLY8_C(145), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(237), SIMDE_POLY8_C(143), SIMDE_POLY8_C(107), SIMDE_POLY8_C(100), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(171),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C(144), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(186), SIMDE_POLY8_C(238), SIMDE_POLY8_C(202), SIMDE_POLY8_C(123) } },
{ { SIMDE_POLY8_C(232), SIMDE_POLY8_C(161), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(145), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(222),
SIMDE_POLY8_C(187), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(141), SIMDE_POLY8_C(208), SIMDE_POLY8_C(190), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 79) } },
{ { SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 18), SIMDE_POLY8_C(222), SIMDE_POLY8_C(144), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(145),
SIMDE_POLY8_C(165), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(136), SIMDE_POLY8_C(219), SIMDE_POLY8_C( 41) } },
};
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_private a_ = simde_poly8x16_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_p8(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly16_t a[8];
} test_vec[] = {
{ { SIMDE_POLY16_C( 572), SIMDE_POLY16_C(30216), SIMDE_POLY16_C(59273), SIMDE_POLY16_C(22462), SIMDE_POLY16_C(13522), SIMDE_POLY16_C(59565), SIMDE_POLY16_C(17100), SIMDE_POLY16_C(10467) } },
{ { SIMDE_POLY16_C( 3921), SIMDE_POLY16_C( 681), SIMDE_POLY16_C(38730), SIMDE_POLY16_C(53192), SIMDE_POLY16_C(48358), SIMDE_POLY16_C(44569), SIMDE_POLY16_C(34768), SIMDE_POLY16_C( 3281) } },
{ { SIMDE_POLY16_C(55689), SIMDE_POLY16_C( 4995), SIMDE_POLY16_C(16832), SIMDE_POLY16_C(37482), SIMDE_POLY16_C( 6006), SIMDE_POLY16_C(17019), SIMDE_POLY16_C(24153), SIMDE_POLY16_C(43627) } },
{ { SIMDE_POLY16_C( 5229), SIMDE_POLY16_C(47277), SIMDE_POLY16_C(30124), SIMDE_POLY16_C(37511), SIMDE_POLY16_C(41010), SIMDE_POLY16_C( 576), SIMDE_POLY16_C( 4391), SIMDE_POLY16_C(45326) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_private a_ = simde_poly16x8_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_p16(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_bf16_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t a[2];
} test_vec[] = {
{ { SIMDE_POLY64_C(14356834236249269357), SIMDE_POLY64_C( 8898177028376904860) } },
{ { SIMDE_POLY64_C(15147100063394539816), SIMDE_POLY64_C( 6014547296417606131) } },
{ { SIMDE_POLY64_C(10974884149388723418), SIMDE_POLY64_C( 1457743428534419682) } },
{ { SIMDE_POLY64_C( 7686951286865078426), SIMDE_POLY64_C( 4587813852950392434) } },
};
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_private a_ = simde_poly64x2_to_private(a);
simde_bfloat16x8_t r = simde_vreinterpretq_bf16_p64(a);
simde_bfloat16x8_private r_ = simde_bfloat16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p8_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_poly8x8_t r = simde_vreinterpret_p8_bf16(a);
simde_poly8x8_private r_ = simde_poly8x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p16_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_poly16x4_t r = simde_vreinterpret_p16_bf16(a);
simde_poly16x4_private r_ = simde_poly16x4_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpret_p64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[4];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 9.69), SIMDE_BFLOAT16_VALUE( 83.50), SIMDE_BFLOAT16_VALUE( -28.25), SIMDE_BFLOAT16_VALUE( -62.75) } },
{ { SIMDE_BFLOAT16_VALUE( 31.50), SIMDE_BFLOAT16_VALUE( -19.88), SIMDE_BFLOAT16_VALUE( -22.50), SIMDE_BFLOAT16_VALUE( -82.00) } },
{ { SIMDE_BFLOAT16_VALUE( 70.00), SIMDE_BFLOAT16_VALUE( -9.88), SIMDE_BFLOAT16_VALUE( -97.00), SIMDE_BFLOAT16_VALUE( -35.00) } },
{ { SIMDE_BFLOAT16_VALUE( -15.94), SIMDE_BFLOAT16_VALUE( 67.00), SIMDE_BFLOAT16_VALUE( 92.50), SIMDE_BFLOAT16_VALUE( 96.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x4_t a = simde_vld1_bf16(test_vec[i].a);
simde_bfloat16x4_private a_ = simde_bfloat16x4_to_private(a);
simde_poly64x1_t r = simde_vreinterpret_p64_bf16(a);
simde_poly64x1_private r_ = simde_poly64x1_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x4_t a = simde_test_arm_neon_random_bf16x4(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x4(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p8_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_poly8x16_t r = simde_vreinterpretq_p8_bf16(a);
simde_poly8x16_private r_ = simde_poly8x16_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p16_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_poly16x8_t r = simde_vreinterpretq_p16_bf16(a);
simde_poly16x8_private r_ = simde_poly16x8_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vreinterpretq_p64_bf16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16_t a[8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE( 80.00), SIMDE_BFLOAT16_VALUE( -44.00), SIMDE_BFLOAT16_VALUE( 33.25), SIMDE_BFLOAT16_VALUE( 29.12),
SIMDE_BFLOAT16_VALUE( -20.25), SIMDE_BFLOAT16_VALUE( 11.06), SIMDE_BFLOAT16_VALUE( 69.50), SIMDE_BFLOAT16_VALUE( 69.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.62), SIMDE_BFLOAT16_VALUE( -94.00), SIMDE_BFLOAT16_VALUE( -84.50), SIMDE_BFLOAT16_VALUE( -16.75),
SIMDE_BFLOAT16_VALUE( -35.25), SIMDE_BFLOAT16_VALUE( -58.75), SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -63.00) } },
{ { SIMDE_BFLOAT16_VALUE( 6.09), SIMDE_BFLOAT16_VALUE( -77.50), SIMDE_BFLOAT16_VALUE( -58.00), SIMDE_BFLOAT16_VALUE( -40.50),
SIMDE_BFLOAT16_VALUE( -99.50), SIMDE_BFLOAT16_VALUE( 26.50), SIMDE_BFLOAT16_VALUE( -49.00), SIMDE_BFLOAT16_VALUE( 55.00) } },
{ { SIMDE_BFLOAT16_VALUE( -25.00), SIMDE_BFLOAT16_VALUE( -36.25), SIMDE_BFLOAT16_VALUE( 58.00), SIMDE_BFLOAT16_VALUE( 71.00),
SIMDE_BFLOAT16_VALUE( 50.50), SIMDE_BFLOAT16_VALUE( -0.30), SIMDE_BFLOAT16_VALUE( -49.75), SIMDE_BFLOAT16_VALUE( 30.50) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_bfloat16x8_t a = simde_vld1q_bf16(test_vec[i].a);
simde_bfloat16x8_private a_ = simde_bfloat16x8_to_private(a);
simde_poly64x2_t r = simde_vreinterpretq_p64_bf16(a);
simde_poly64x2_private r_ = simde_poly64x2_to_private(r);
simde_assert_equal_i(0, simde_memcmp(&r_, &a_, 16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 4 ; i++) {
simde_bfloat16x8_t a = simde_test_arm_neon_random_bf16x8(SIMDE_BFLOAT16_VALUE(-100.0), SIMDE_BFLOAT16_VALUE(100.0));
fputs(" { ", SIMDE_CODEGEN_FP);
simde_test_arm_neon_write_bf16x8(2, a, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_p64)
#if !defined(SIMDE_TARGET_NOT_SUPPORT_INT128_TYPE)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_f16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_p16)
#if !defined(SIMDE_BUG_GCC_113065)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f16_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_p128)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_p128)
#endif
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p128_bf16)
#endif
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_f32)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_f64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s8_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s16_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s32_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_s64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u8_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u16_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u32_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_u64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f32_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_f64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s8_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s16_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s32_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_s64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u8_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u16_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u32_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_u64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f32_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_f64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_bf16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_bf16_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p8_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p16_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpret_p64_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p8_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p16_bf16)
SIMDE_TEST_FUNC_LIST_ENTRY(vreinterpretq_p64_bf16)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"