Googletest 1.18 asks for CMake 3.13 or newer, so configuring the tests no longer warns that CMake compatibility below 3.10 is deprecated. Co-authored-by: Cursor <cursoragent@cursor.com>
1733 lines
141 KiB
C
1733 lines
141 KiB
C
#define SIMDE_TEST_ARM_NEON_INSN st1q_x3
|
|
#include "test/test.h"
|
|
#include "test-neon.h"
|
|
#include "../../../simde/arm/neon/st1q_x3.h"
|
|
|
|
#if !defined(SIMDE_BUG_INTEL_857088)
|
|
|
|
static int
|
|
test_simde_vst1q_f16_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
struct {
|
|
simde_float16_t val[3][8];
|
|
simde_float16_t r[24];
|
|
} test_vec[] = {
|
|
{ { { SIMDE_FLOAT16_VALUE( - 78.006), SIMDE_FLOAT16_VALUE( - 86.214), SIMDE_FLOAT16_VALUE( 79.768), SIMDE_FLOAT16_VALUE( - 58.640),
|
|
SIMDE_FLOAT16_VALUE( 95.290), SIMDE_FLOAT16_VALUE( - 58.694), SIMDE_FLOAT16_VALUE( - 66.494), SIMDE_FLOAT16_VALUE( 14.402) },
|
|
{ SIMDE_FLOAT16_VALUE( - 73.147), SIMDE_FLOAT16_VALUE( 86.011), SIMDE_FLOAT16_VALUE( - 57.821), SIMDE_FLOAT16_VALUE( 39.575),
|
|
SIMDE_FLOAT16_VALUE( - 71.723), SIMDE_FLOAT16_VALUE( - 56.950), SIMDE_FLOAT16_VALUE( - 64.715), SIMDE_FLOAT16_VALUE( 57.900) },
|
|
{ SIMDE_FLOAT16_VALUE( 61.685), SIMDE_FLOAT16_VALUE( - 81.983), SIMDE_FLOAT16_VALUE( 15.196), SIMDE_FLOAT16_VALUE( - 22.643),
|
|
SIMDE_FLOAT16_VALUE( 73.963), SIMDE_FLOAT16_VALUE( 69.945), SIMDE_FLOAT16_VALUE( - 18.252), SIMDE_FLOAT16_VALUE( 6.208) } },
|
|
{ SIMDE_FLOAT16_VALUE( - 78.006), SIMDE_FLOAT16_VALUE( - 86.214), SIMDE_FLOAT16_VALUE( 79.768), SIMDE_FLOAT16_VALUE( - 58.640),
|
|
SIMDE_FLOAT16_VALUE( 95.290), SIMDE_FLOAT16_VALUE( - 58.694), SIMDE_FLOAT16_VALUE( - 66.494), SIMDE_FLOAT16_VALUE( 14.402),
|
|
SIMDE_FLOAT16_VALUE( - 73.147), SIMDE_FLOAT16_VALUE( 86.011), SIMDE_FLOAT16_VALUE( - 57.821), SIMDE_FLOAT16_VALUE( 39.575),
|
|
SIMDE_FLOAT16_VALUE( - 71.723), SIMDE_FLOAT16_VALUE( - 56.950), SIMDE_FLOAT16_VALUE( - 64.715), SIMDE_FLOAT16_VALUE( 57.900),
|
|
SIMDE_FLOAT16_VALUE( 61.685), SIMDE_FLOAT16_VALUE( - 81.983), SIMDE_FLOAT16_VALUE( 15.196), SIMDE_FLOAT16_VALUE( - 22.643),
|
|
SIMDE_FLOAT16_VALUE( 73.963), SIMDE_FLOAT16_VALUE( 69.945), SIMDE_FLOAT16_VALUE( - 18.252), SIMDE_FLOAT16_VALUE( 6.208) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( 75.124), SIMDE_FLOAT16_VALUE( 63.765), SIMDE_FLOAT16_VALUE( 93.445), SIMDE_FLOAT16_VALUE( - 2.808),
|
|
SIMDE_FLOAT16_VALUE( 21.150), SIMDE_FLOAT16_VALUE( - 27.804), SIMDE_FLOAT16_VALUE( 96.600), SIMDE_FLOAT16_VALUE( 49.484) },
|
|
{ SIMDE_FLOAT16_VALUE( - 21.286), SIMDE_FLOAT16_VALUE( 6.385), SIMDE_FLOAT16_VALUE( 58.966), SIMDE_FLOAT16_VALUE( - 25.964),
|
|
SIMDE_FLOAT16_VALUE( 81.303), SIMDE_FLOAT16_VALUE( 55.133), SIMDE_FLOAT16_VALUE( 59.277), SIMDE_FLOAT16_VALUE( 90.767) },
|
|
{ SIMDE_FLOAT16_VALUE( - 9.851), SIMDE_FLOAT16_VALUE( - 51.010), SIMDE_FLOAT16_VALUE( - 57.457), SIMDE_FLOAT16_VALUE( 76.293),
|
|
SIMDE_FLOAT16_VALUE( - 36.636), SIMDE_FLOAT16_VALUE( 71.898), SIMDE_FLOAT16_VALUE( 98.888), SIMDE_FLOAT16_VALUE( - 38.156) } },
|
|
{ SIMDE_FLOAT16_VALUE( 75.124), SIMDE_FLOAT16_VALUE( 63.765), SIMDE_FLOAT16_VALUE( 93.445), SIMDE_FLOAT16_VALUE( - 2.808),
|
|
SIMDE_FLOAT16_VALUE( 21.150), SIMDE_FLOAT16_VALUE( - 27.804), SIMDE_FLOAT16_VALUE( 96.600), SIMDE_FLOAT16_VALUE( 49.484),
|
|
SIMDE_FLOAT16_VALUE( - 21.286), SIMDE_FLOAT16_VALUE( 6.385), SIMDE_FLOAT16_VALUE( 58.966), SIMDE_FLOAT16_VALUE( - 25.964),
|
|
SIMDE_FLOAT16_VALUE( 81.303), SIMDE_FLOAT16_VALUE( 55.133), SIMDE_FLOAT16_VALUE( 59.277), SIMDE_FLOAT16_VALUE( 90.767),
|
|
SIMDE_FLOAT16_VALUE( - 9.851), SIMDE_FLOAT16_VALUE( - 51.010), SIMDE_FLOAT16_VALUE( - 57.457), SIMDE_FLOAT16_VALUE( 76.293),
|
|
SIMDE_FLOAT16_VALUE( - 36.636), SIMDE_FLOAT16_VALUE( 71.898), SIMDE_FLOAT16_VALUE( 98.888), SIMDE_FLOAT16_VALUE( - 38.156) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( 26.535), SIMDE_FLOAT16_VALUE( - 91.027), SIMDE_FLOAT16_VALUE( - 79.934), SIMDE_FLOAT16_VALUE( - 46.283),
|
|
SIMDE_FLOAT16_VALUE( - 50.743), SIMDE_FLOAT16_VALUE( - 31.430), SIMDE_FLOAT16_VALUE( - 40.474), SIMDE_FLOAT16_VALUE( 52.962) },
|
|
{ SIMDE_FLOAT16_VALUE( 54.007), SIMDE_FLOAT16_VALUE( - 51.316), SIMDE_FLOAT16_VALUE( - 70.698), SIMDE_FLOAT16_VALUE( 59.510),
|
|
SIMDE_FLOAT16_VALUE( 60.522), SIMDE_FLOAT16_VALUE( - 83.540), SIMDE_FLOAT16_VALUE( 72.171), SIMDE_FLOAT16_VALUE( - 94.419) },
|
|
{ SIMDE_FLOAT16_VALUE( - 73.925), SIMDE_FLOAT16_VALUE( - 73.200), SIMDE_FLOAT16_VALUE( - 12.444), SIMDE_FLOAT16_VALUE( 72.493),
|
|
SIMDE_FLOAT16_VALUE( 27.042), SIMDE_FLOAT16_VALUE( 81.525), SIMDE_FLOAT16_VALUE( - 92.143), SIMDE_FLOAT16_VALUE( - 50.921) } },
|
|
{ SIMDE_FLOAT16_VALUE( 26.535), SIMDE_FLOAT16_VALUE( - 91.027), SIMDE_FLOAT16_VALUE( - 79.934), SIMDE_FLOAT16_VALUE( - 46.283),
|
|
SIMDE_FLOAT16_VALUE( - 50.743), SIMDE_FLOAT16_VALUE( - 31.430), SIMDE_FLOAT16_VALUE( - 40.474), SIMDE_FLOAT16_VALUE( 52.962),
|
|
SIMDE_FLOAT16_VALUE( 54.007), SIMDE_FLOAT16_VALUE( - 51.316), SIMDE_FLOAT16_VALUE( - 70.698), SIMDE_FLOAT16_VALUE( 59.510),
|
|
SIMDE_FLOAT16_VALUE( 60.522), SIMDE_FLOAT16_VALUE( - 83.540), SIMDE_FLOAT16_VALUE( 72.171), SIMDE_FLOAT16_VALUE( - 94.419),
|
|
SIMDE_FLOAT16_VALUE( - 73.925), SIMDE_FLOAT16_VALUE( - 73.200), SIMDE_FLOAT16_VALUE( - 12.444), SIMDE_FLOAT16_VALUE( 72.493),
|
|
SIMDE_FLOAT16_VALUE( 27.042), SIMDE_FLOAT16_VALUE( 81.525), SIMDE_FLOAT16_VALUE( - 92.143), SIMDE_FLOAT16_VALUE( - 50.921) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( - 45.682), SIMDE_FLOAT16_VALUE( 52.798), SIMDE_FLOAT16_VALUE( - 80.990), SIMDE_FLOAT16_VALUE( - 61.788),
|
|
SIMDE_FLOAT16_VALUE( 54.221), SIMDE_FLOAT16_VALUE( 99.819), SIMDE_FLOAT16_VALUE( - 53.166), SIMDE_FLOAT16_VALUE( 62.212) },
|
|
{ SIMDE_FLOAT16_VALUE( - 26.140), SIMDE_FLOAT16_VALUE( - 44.258), SIMDE_FLOAT16_VALUE( - 63.797), SIMDE_FLOAT16_VALUE( 21.345),
|
|
SIMDE_FLOAT16_VALUE( 43.284), SIMDE_FLOAT16_VALUE( 49.659), SIMDE_FLOAT16_VALUE( 83.024), SIMDE_FLOAT16_VALUE( - 93.541) },
|
|
{ SIMDE_FLOAT16_VALUE( - 41.983), SIMDE_FLOAT16_VALUE( 72.431), SIMDE_FLOAT16_VALUE( - 72.624), SIMDE_FLOAT16_VALUE( - 68.362),
|
|
SIMDE_FLOAT16_VALUE( - 3.439), SIMDE_FLOAT16_VALUE( 57.763), SIMDE_FLOAT16_VALUE( 53.732), SIMDE_FLOAT16_VALUE( 23.477) } },
|
|
{ SIMDE_FLOAT16_VALUE( - 45.682), SIMDE_FLOAT16_VALUE( 52.798), SIMDE_FLOAT16_VALUE( - 80.990), SIMDE_FLOAT16_VALUE( - 61.788),
|
|
SIMDE_FLOAT16_VALUE( 54.221), SIMDE_FLOAT16_VALUE( 99.819), SIMDE_FLOAT16_VALUE( - 53.166), SIMDE_FLOAT16_VALUE( 62.212),
|
|
SIMDE_FLOAT16_VALUE( - 26.140), SIMDE_FLOAT16_VALUE( - 44.258), SIMDE_FLOAT16_VALUE( - 63.797), SIMDE_FLOAT16_VALUE( 21.345),
|
|
SIMDE_FLOAT16_VALUE( 43.284), SIMDE_FLOAT16_VALUE( 49.659), SIMDE_FLOAT16_VALUE( 83.024), SIMDE_FLOAT16_VALUE( - 93.541),
|
|
SIMDE_FLOAT16_VALUE( - 41.983), SIMDE_FLOAT16_VALUE( 72.431), SIMDE_FLOAT16_VALUE( - 72.624), SIMDE_FLOAT16_VALUE( - 68.362),
|
|
SIMDE_FLOAT16_VALUE( - 3.439), SIMDE_FLOAT16_VALUE( 57.763), SIMDE_FLOAT16_VALUE( 53.732), SIMDE_FLOAT16_VALUE( 23.477) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( - 82.965), SIMDE_FLOAT16_VALUE( - 70.111), SIMDE_FLOAT16_VALUE( - 31.957), SIMDE_FLOAT16_VALUE( 61.018),
|
|
SIMDE_FLOAT16_VALUE( - 27.870), SIMDE_FLOAT16_VALUE( 71.621), SIMDE_FLOAT16_VALUE( - 77.867), SIMDE_FLOAT16_VALUE( - 30.557) },
|
|
{ SIMDE_FLOAT16_VALUE( 58.953), SIMDE_FLOAT16_VALUE( - 20.614), SIMDE_FLOAT16_VALUE( - 60.571), SIMDE_FLOAT16_VALUE( 63.967),
|
|
SIMDE_FLOAT16_VALUE( - 12.960), SIMDE_FLOAT16_VALUE( - 61.378), SIMDE_FLOAT16_VALUE( - 20.681), SIMDE_FLOAT16_VALUE( 73.740) },
|
|
{ SIMDE_FLOAT16_VALUE( 77.996), SIMDE_FLOAT16_VALUE( 4.822), SIMDE_FLOAT16_VALUE( - 39.992), SIMDE_FLOAT16_VALUE( 50.289),
|
|
SIMDE_FLOAT16_VALUE( - 37.043), SIMDE_FLOAT16_VALUE( - 89.635), SIMDE_FLOAT16_VALUE( 33.091), SIMDE_FLOAT16_VALUE( - 39.668) } },
|
|
{ SIMDE_FLOAT16_VALUE( - 82.965), SIMDE_FLOAT16_VALUE( - 70.111), SIMDE_FLOAT16_VALUE( - 31.957), SIMDE_FLOAT16_VALUE( 61.018),
|
|
SIMDE_FLOAT16_VALUE( - 27.870), SIMDE_FLOAT16_VALUE( 71.621), SIMDE_FLOAT16_VALUE( - 77.867), SIMDE_FLOAT16_VALUE( - 30.557),
|
|
SIMDE_FLOAT16_VALUE( 58.953), SIMDE_FLOAT16_VALUE( - 20.614), SIMDE_FLOAT16_VALUE( - 60.571), SIMDE_FLOAT16_VALUE( 63.967),
|
|
SIMDE_FLOAT16_VALUE( - 12.960), SIMDE_FLOAT16_VALUE( - 61.378), SIMDE_FLOAT16_VALUE( - 20.681), SIMDE_FLOAT16_VALUE( 73.740),
|
|
SIMDE_FLOAT16_VALUE( 77.996), SIMDE_FLOAT16_VALUE( 4.822), SIMDE_FLOAT16_VALUE( - 39.992), SIMDE_FLOAT16_VALUE( 50.289),
|
|
SIMDE_FLOAT16_VALUE( - 37.043), SIMDE_FLOAT16_VALUE( - 89.635), SIMDE_FLOAT16_VALUE( 33.091), SIMDE_FLOAT16_VALUE( - 39.668) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( 3.917), SIMDE_FLOAT16_VALUE( 67.525), SIMDE_FLOAT16_VALUE( - 40.144), SIMDE_FLOAT16_VALUE( 98.412),
|
|
SIMDE_FLOAT16_VALUE( - 5.628), SIMDE_FLOAT16_VALUE( - 91.834), SIMDE_FLOAT16_VALUE( 66.132), SIMDE_FLOAT16_VALUE( - 44.698) },
|
|
{ SIMDE_FLOAT16_VALUE( 3.461), SIMDE_FLOAT16_VALUE( - 1.903), SIMDE_FLOAT16_VALUE( - 7.486), SIMDE_FLOAT16_VALUE( - 5.095),
|
|
SIMDE_FLOAT16_VALUE( - 4.045), SIMDE_FLOAT16_VALUE( 76.155), SIMDE_FLOAT16_VALUE( 45.573), SIMDE_FLOAT16_VALUE( - 17.845) },
|
|
{ SIMDE_FLOAT16_VALUE( - 69.007), SIMDE_FLOAT16_VALUE( - 91.001), SIMDE_FLOAT16_VALUE( 47.281), SIMDE_FLOAT16_VALUE( - 6.930),
|
|
SIMDE_FLOAT16_VALUE( - 31.826), SIMDE_FLOAT16_VALUE( - 9.605), SIMDE_FLOAT16_VALUE( - 8.507), SIMDE_FLOAT16_VALUE( - 69.550) } },
|
|
{ SIMDE_FLOAT16_VALUE( 3.917), SIMDE_FLOAT16_VALUE( 67.525), SIMDE_FLOAT16_VALUE( - 40.144), SIMDE_FLOAT16_VALUE( 98.412),
|
|
SIMDE_FLOAT16_VALUE( - 5.628), SIMDE_FLOAT16_VALUE( - 91.834), SIMDE_FLOAT16_VALUE( 66.132), SIMDE_FLOAT16_VALUE( - 44.698),
|
|
SIMDE_FLOAT16_VALUE( 3.461), SIMDE_FLOAT16_VALUE( - 1.903), SIMDE_FLOAT16_VALUE( - 7.486), SIMDE_FLOAT16_VALUE( - 5.095),
|
|
SIMDE_FLOAT16_VALUE( - 4.045), SIMDE_FLOAT16_VALUE( 76.155), SIMDE_FLOAT16_VALUE( 45.573), SIMDE_FLOAT16_VALUE( - 17.845),
|
|
SIMDE_FLOAT16_VALUE( - 69.007), SIMDE_FLOAT16_VALUE( - 91.001), SIMDE_FLOAT16_VALUE( 47.281), SIMDE_FLOAT16_VALUE( - 6.930),
|
|
SIMDE_FLOAT16_VALUE( - 31.826), SIMDE_FLOAT16_VALUE( - 9.605), SIMDE_FLOAT16_VALUE( - 8.507), SIMDE_FLOAT16_VALUE( - 69.550) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( - 83.740), SIMDE_FLOAT16_VALUE( - 6.331), SIMDE_FLOAT16_VALUE( - 89.045), SIMDE_FLOAT16_VALUE( - 94.435),
|
|
SIMDE_FLOAT16_VALUE( - 65.111), SIMDE_FLOAT16_VALUE( - 70.456), SIMDE_FLOAT16_VALUE( 11.289), SIMDE_FLOAT16_VALUE( 7.177) },
|
|
{ SIMDE_FLOAT16_VALUE( - 90.849), SIMDE_FLOAT16_VALUE( - 95.953), SIMDE_FLOAT16_VALUE( - 42.247), SIMDE_FLOAT16_VALUE( 14.309),
|
|
SIMDE_FLOAT16_VALUE( - 95.825), SIMDE_FLOAT16_VALUE( - 22.270), SIMDE_FLOAT16_VALUE( 83.373), SIMDE_FLOAT16_VALUE( - 79.802) },
|
|
{ SIMDE_FLOAT16_VALUE( - 22.035), SIMDE_FLOAT16_VALUE( - 92.921), SIMDE_FLOAT16_VALUE( 43.906), SIMDE_FLOAT16_VALUE( 26.805),
|
|
SIMDE_FLOAT16_VALUE( 51.738), SIMDE_FLOAT16_VALUE( - 42.852), SIMDE_FLOAT16_VALUE( 5.828), SIMDE_FLOAT16_VALUE( 44.079) } },
|
|
{ SIMDE_FLOAT16_VALUE( - 83.740), SIMDE_FLOAT16_VALUE( - 6.331), SIMDE_FLOAT16_VALUE( - 89.045), SIMDE_FLOAT16_VALUE( - 94.435),
|
|
SIMDE_FLOAT16_VALUE( - 65.111), SIMDE_FLOAT16_VALUE( - 70.456), SIMDE_FLOAT16_VALUE( 11.289), SIMDE_FLOAT16_VALUE( 7.177),
|
|
SIMDE_FLOAT16_VALUE( - 90.849), SIMDE_FLOAT16_VALUE( - 95.953), SIMDE_FLOAT16_VALUE( - 42.247), SIMDE_FLOAT16_VALUE( 14.309),
|
|
SIMDE_FLOAT16_VALUE( - 95.825), SIMDE_FLOAT16_VALUE( - 22.270), SIMDE_FLOAT16_VALUE( 83.373), SIMDE_FLOAT16_VALUE( - 79.802),
|
|
SIMDE_FLOAT16_VALUE( - 22.035), SIMDE_FLOAT16_VALUE( - 92.921), SIMDE_FLOAT16_VALUE( 43.906), SIMDE_FLOAT16_VALUE( 26.805),
|
|
SIMDE_FLOAT16_VALUE( 51.738), SIMDE_FLOAT16_VALUE( - 42.852), SIMDE_FLOAT16_VALUE( 5.828), SIMDE_FLOAT16_VALUE( 44.079) } },
|
|
{ { { SIMDE_FLOAT16_VALUE( - 16.629), SIMDE_FLOAT16_VALUE( 51.044), SIMDE_FLOAT16_VALUE( 19.393), SIMDE_FLOAT16_VALUE( 55.131),
|
|
SIMDE_FLOAT16_VALUE( - 43.901), SIMDE_FLOAT16_VALUE( 70.204), SIMDE_FLOAT16_VALUE( 97.396), SIMDE_FLOAT16_VALUE( 81.774) },
|
|
{ SIMDE_FLOAT16_VALUE( - 65.652), SIMDE_FLOAT16_VALUE( 84.250), SIMDE_FLOAT16_VALUE( - 73.434), SIMDE_FLOAT16_VALUE( 83.066),
|
|
SIMDE_FLOAT16_VALUE( 98.140), SIMDE_FLOAT16_VALUE( 10.456), SIMDE_FLOAT16_VALUE( - 74.473), SIMDE_FLOAT16_VALUE( 36.574) },
|
|
{ SIMDE_FLOAT16_VALUE( - 30.153), SIMDE_FLOAT16_VALUE( 52.521), SIMDE_FLOAT16_VALUE( - 21.877), SIMDE_FLOAT16_VALUE( 99.308),
|
|
SIMDE_FLOAT16_VALUE( - 78.712), SIMDE_FLOAT16_VALUE( - 45.652), SIMDE_FLOAT16_VALUE( - 23.870), SIMDE_FLOAT16_VALUE( 33.651) } },
|
|
{ SIMDE_FLOAT16_VALUE( - 16.629), SIMDE_FLOAT16_VALUE( 51.044), SIMDE_FLOAT16_VALUE( 19.393), SIMDE_FLOAT16_VALUE( 55.131),
|
|
SIMDE_FLOAT16_VALUE( - 43.901), SIMDE_FLOAT16_VALUE( 70.204), SIMDE_FLOAT16_VALUE( 97.396), SIMDE_FLOAT16_VALUE( 81.774),
|
|
SIMDE_FLOAT16_VALUE( - 65.652), SIMDE_FLOAT16_VALUE( 84.250), SIMDE_FLOAT16_VALUE( - 73.434), SIMDE_FLOAT16_VALUE( 83.066),
|
|
SIMDE_FLOAT16_VALUE( 98.140), SIMDE_FLOAT16_VALUE( 10.456), SIMDE_FLOAT16_VALUE( - 74.473), SIMDE_FLOAT16_VALUE( 36.574),
|
|
SIMDE_FLOAT16_VALUE( - 30.153), SIMDE_FLOAT16_VALUE( 52.521), SIMDE_FLOAT16_VALUE( - 21.877), SIMDE_FLOAT16_VALUE( 99.308),
|
|
SIMDE_FLOAT16_VALUE( - 78.712), SIMDE_FLOAT16_VALUE( - 45.652), SIMDE_FLOAT16_VALUE( - 23.870), SIMDE_FLOAT16_VALUE( 33.651) } },
|
|
};
|
|
|
|
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
|
|
simde_float16x8x3_t val = {{
|
|
simde_vld1q_f16(test_vec[i].val[0]),
|
|
simde_vld1q_f16(test_vec[i].val[1]),
|
|
simde_vld1q_f16(test_vec[i].val[2]),
|
|
}};
|
|
simde_float16_t r_[24];
|
|
simde_vst1q_f16_x3(r_, val);
|
|
simde_assert_equal_i(0, simde_memcmp(r_, test_vec[i].r, sizeof(test_vec[i].r)));
|
|
}
|
|
|
|
return 0;
|
|
|
|
#else
|
|
fputc('\n', stdout);
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_float16x3_t val[3] = simde_test_arm_neon_random_f16x3(-100.0f, 100.0f);
|
|
simde_float16x24_t r = simde_vst1q_f16_x3(val[3]);
|
|
|
|
simde_test_arm_neon_write_f16x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST);
|
|
simde_test_arm_neon_write_f16x24(2, r, SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_f32_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
simde_float32 r[3][4];
|
|
simde_float32 a[12];
|
|
} test_vec[] = {
|
|
{
|
|
{ { SIMDE_FLOAT32_C( 301.75), SIMDE_FLOAT32_C( 948.57), SIMDE_FLOAT32_C( -641.77), SIMDE_FLOAT32_C( 911.15) },
|
|
{ SIMDE_FLOAT32_C( 292.66), SIMDE_FLOAT32_C( 217.08), SIMDE_FLOAT32_C( -302.00), SIMDE_FLOAT32_C( 632.24) },
|
|
{ SIMDE_FLOAT32_C( 542.22), SIMDE_FLOAT32_C( -23.30), SIMDE_FLOAT32_C( 887.34), SIMDE_FLOAT32_C( -873.31) } },
|
|
{ SIMDE_FLOAT32_C( 301.75), SIMDE_FLOAT32_C( 948.57), SIMDE_FLOAT32_C( -641.77), SIMDE_FLOAT32_C( 911.15),
|
|
SIMDE_FLOAT32_C( 292.66), SIMDE_FLOAT32_C( 217.08), SIMDE_FLOAT32_C( -302.00), SIMDE_FLOAT32_C( 632.24),
|
|
SIMDE_FLOAT32_C( 542.22), SIMDE_FLOAT32_C( -23.30), SIMDE_FLOAT32_C( 887.34), SIMDE_FLOAT32_C( -873.31) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( 654.53), SIMDE_FLOAT32_C( 351.69), SIMDE_FLOAT32_C( -76.10), SIMDE_FLOAT32_C( -702.90) },
|
|
{ SIMDE_FLOAT32_C( -365.99), SIMDE_FLOAT32_C( 70.51), SIMDE_FLOAT32_C( -342.83), SIMDE_FLOAT32_C( -252.59) },
|
|
{ SIMDE_FLOAT32_C( 408.41), SIMDE_FLOAT32_C( -48.80), SIMDE_FLOAT32_C( -256.81), SIMDE_FLOAT32_C( -769.94) } },
|
|
{ SIMDE_FLOAT32_C( 654.53), SIMDE_FLOAT32_C( 351.69), SIMDE_FLOAT32_C( -76.10), SIMDE_FLOAT32_C( -702.90),
|
|
SIMDE_FLOAT32_C( -365.99), SIMDE_FLOAT32_C( 70.51), SIMDE_FLOAT32_C( -342.83), SIMDE_FLOAT32_C( -252.59),
|
|
SIMDE_FLOAT32_C( 408.41), SIMDE_FLOAT32_C( -48.80), SIMDE_FLOAT32_C( -256.81), SIMDE_FLOAT32_C( -769.94) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( 179.53), SIMDE_FLOAT32_C( 588.47), SIMDE_FLOAT32_C( 697.20), SIMDE_FLOAT32_C( -852.44) },
|
|
{ SIMDE_FLOAT32_C( -681.19), SIMDE_FLOAT32_C( -606.32), SIMDE_FLOAT32_C( 247.13), SIMDE_FLOAT32_C( 620.56) },
|
|
{ SIMDE_FLOAT32_C( -657.75), SIMDE_FLOAT32_C( 605.36), SIMDE_FLOAT32_C( 531.71), SIMDE_FLOAT32_C( 634.91) } },
|
|
{ SIMDE_FLOAT32_C( 179.53), SIMDE_FLOAT32_C( 588.47), SIMDE_FLOAT32_C( 697.20), SIMDE_FLOAT32_C( -852.44),
|
|
SIMDE_FLOAT32_C( -681.19), SIMDE_FLOAT32_C( -606.32), SIMDE_FLOAT32_C( 247.13), SIMDE_FLOAT32_C( 620.56),
|
|
SIMDE_FLOAT32_C( -657.75), SIMDE_FLOAT32_C( 605.36), SIMDE_FLOAT32_C( 531.71), SIMDE_FLOAT32_C( 634.91) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( -177.57), SIMDE_FLOAT32_C( -770.29), SIMDE_FLOAT32_C( 267.15), SIMDE_FLOAT32_C( -635.35) },
|
|
{ SIMDE_FLOAT32_C( 206.41), SIMDE_FLOAT32_C( 154.49), SIMDE_FLOAT32_C( -508.65), SIMDE_FLOAT32_C( -139.06) },
|
|
{ SIMDE_FLOAT32_C( -493.82), SIMDE_FLOAT32_C( 415.25), SIMDE_FLOAT32_C( 158.04), SIMDE_FLOAT32_C( 140.20) } },
|
|
{ SIMDE_FLOAT32_C( -177.57), SIMDE_FLOAT32_C( -770.29), SIMDE_FLOAT32_C( 267.15), SIMDE_FLOAT32_C( -635.35),
|
|
SIMDE_FLOAT32_C( 206.41), SIMDE_FLOAT32_C( 154.49), SIMDE_FLOAT32_C( -508.65), SIMDE_FLOAT32_C( -139.06),
|
|
SIMDE_FLOAT32_C( -493.82), SIMDE_FLOAT32_C( 415.25), SIMDE_FLOAT32_C( 158.04), SIMDE_FLOAT32_C( 140.20) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( -514.24), SIMDE_FLOAT32_C( 815.21), SIMDE_FLOAT32_C( 887.61), SIMDE_FLOAT32_C( 894.16) },
|
|
{ SIMDE_FLOAT32_C( -233.59), SIMDE_FLOAT32_C( -369.20), SIMDE_FLOAT32_C( -875.77), SIMDE_FLOAT32_C( 945.95) },
|
|
{ SIMDE_FLOAT32_C( -780.73), SIMDE_FLOAT32_C( 821.42), SIMDE_FLOAT32_C( -906.49), SIMDE_FLOAT32_C( -461.92) } },
|
|
{ SIMDE_FLOAT32_C( -514.24), SIMDE_FLOAT32_C( 815.21), SIMDE_FLOAT32_C( 887.61), SIMDE_FLOAT32_C( 894.16),
|
|
SIMDE_FLOAT32_C( -233.59), SIMDE_FLOAT32_C( -369.20), SIMDE_FLOAT32_C( -875.77), SIMDE_FLOAT32_C( 945.95),
|
|
SIMDE_FLOAT32_C( -780.73), SIMDE_FLOAT32_C( 821.42), SIMDE_FLOAT32_C( -906.49), SIMDE_FLOAT32_C( -461.92) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( -784.89), SIMDE_FLOAT32_C( 340.64), SIMDE_FLOAT32_C( -841.36), SIMDE_FLOAT32_C( -442.64) },
|
|
{ SIMDE_FLOAT32_C( -54.01), SIMDE_FLOAT32_C( 690.35), SIMDE_FLOAT32_C( -807.73), SIMDE_FLOAT32_C( 768.43) },
|
|
{ SIMDE_FLOAT32_C( 920.06), SIMDE_FLOAT32_C( 459.43), SIMDE_FLOAT32_C( -866.92), SIMDE_FLOAT32_C( 126.47) } },
|
|
{ SIMDE_FLOAT32_C( -784.89), SIMDE_FLOAT32_C( 340.64), SIMDE_FLOAT32_C( -841.36), SIMDE_FLOAT32_C( -442.64),
|
|
SIMDE_FLOAT32_C( -54.01), SIMDE_FLOAT32_C( 690.35), SIMDE_FLOAT32_C( -807.73), SIMDE_FLOAT32_C( 768.43),
|
|
SIMDE_FLOAT32_C( 920.06), SIMDE_FLOAT32_C( 459.43), SIMDE_FLOAT32_C( -866.92), SIMDE_FLOAT32_C( 126.47) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( -386.08), SIMDE_FLOAT32_C( -375.57), SIMDE_FLOAT32_C( 987.41), SIMDE_FLOAT32_C( 120.10) },
|
|
{ SIMDE_FLOAT32_C( -960.32), SIMDE_FLOAT32_C( 145.45), SIMDE_FLOAT32_C( -739.70), SIMDE_FLOAT32_C( -474.57) },
|
|
{ SIMDE_FLOAT32_C( -39.34), SIMDE_FLOAT32_C( -852.09), SIMDE_FLOAT32_C( -580.40), SIMDE_FLOAT32_C( 727.07) } },
|
|
{ SIMDE_FLOAT32_C( -386.08), SIMDE_FLOAT32_C( -375.57), SIMDE_FLOAT32_C( 987.41), SIMDE_FLOAT32_C( 120.10),
|
|
SIMDE_FLOAT32_C( -960.32), SIMDE_FLOAT32_C( 145.45), SIMDE_FLOAT32_C( -739.70), SIMDE_FLOAT32_C( -474.57),
|
|
SIMDE_FLOAT32_C( -39.34), SIMDE_FLOAT32_C( -852.09), SIMDE_FLOAT32_C( -580.40), SIMDE_FLOAT32_C( 727.07) } },
|
|
{
|
|
{ { SIMDE_FLOAT32_C( -221.29), SIMDE_FLOAT32_C( -456.17), SIMDE_FLOAT32_C( 673.02), SIMDE_FLOAT32_C( -2.02) },
|
|
{ SIMDE_FLOAT32_C( -634.75), SIMDE_FLOAT32_C( 766.53), SIMDE_FLOAT32_C( 536.06), SIMDE_FLOAT32_C( -419.64) },
|
|
{ SIMDE_FLOAT32_C( 107.17), SIMDE_FLOAT32_C( 694.69), SIMDE_FLOAT32_C( 137.72), SIMDE_FLOAT32_C( -946.84) } },
|
|
{ SIMDE_FLOAT32_C( -221.29), SIMDE_FLOAT32_C( -456.17), SIMDE_FLOAT32_C( 673.02), SIMDE_FLOAT32_C( -2.02),
|
|
SIMDE_FLOAT32_C( -634.75), SIMDE_FLOAT32_C( 766.53), SIMDE_FLOAT32_C( 536.06), SIMDE_FLOAT32_C( -419.64),
|
|
SIMDE_FLOAT32_C( 107.17), SIMDE_FLOAT32_C( 694.69), SIMDE_FLOAT32_C( 137.72), SIMDE_FLOAT32_C( -946.84) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_float32x4x3_t r_ = { { simde_vld1q_f32(test_vec[i].r[0]),
|
|
simde_vld1q_f32(test_vec[i].r[1]),
|
|
simde_vld1q_f32(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 simde_float32 a_[12];
|
|
simde_vst1q_f32_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_float32x4_t a = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
|
|
simde_float32x4_t b = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
|
|
simde_float32x4_t c = simde_test_arm_neon_random_f32x4(-1000.0f, 1000.0f);
|
|
simde_float32x4x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_f32x4x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
simde_float32 buf[12];
|
|
simde_vst1q_f32_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vf32(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_f64_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
simde_float64 r[3][2];
|
|
simde_float64 a[6];
|
|
} test_vec[] = {
|
|
{
|
|
{ { SIMDE_FLOAT64_C( 385.04), SIMDE_FLOAT64_C( 329.99) },
|
|
{ SIMDE_FLOAT64_C( 821.59), SIMDE_FLOAT64_C( 305.10) },
|
|
{ SIMDE_FLOAT64_C( -210.58), SIMDE_FLOAT64_C( 954.67) } },
|
|
{ SIMDE_FLOAT64_C( 385.04), SIMDE_FLOAT64_C( 329.99), SIMDE_FLOAT64_C( 821.59), SIMDE_FLOAT64_C( 305.10),
|
|
SIMDE_FLOAT64_C( -210.58), SIMDE_FLOAT64_C( 954.67) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( -568.43), SIMDE_FLOAT64_C( 403.34) },
|
|
{ SIMDE_FLOAT64_C( -420.90), SIMDE_FLOAT64_C( -581.02) },
|
|
{ SIMDE_FLOAT64_C( -476.56), SIMDE_FLOAT64_C( -381.22) } },
|
|
{ SIMDE_FLOAT64_C( -568.43), SIMDE_FLOAT64_C( 403.34), SIMDE_FLOAT64_C( -420.90), SIMDE_FLOAT64_C( -581.02),
|
|
SIMDE_FLOAT64_C( -476.56), SIMDE_FLOAT64_C( -381.22) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( 564.42), SIMDE_FLOAT64_C( -216.26) },
|
|
{ SIMDE_FLOAT64_C( 144.21), SIMDE_FLOAT64_C( -474.92) },
|
|
{ SIMDE_FLOAT64_C( -68.35), SIMDE_FLOAT64_C( 563.81) } },
|
|
{ SIMDE_FLOAT64_C( 564.42), SIMDE_FLOAT64_C( -216.26), SIMDE_FLOAT64_C( 144.21), SIMDE_FLOAT64_C( -474.92),
|
|
SIMDE_FLOAT64_C( -68.35), SIMDE_FLOAT64_C( 563.81) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( -747.84), SIMDE_FLOAT64_C( 710.36) },
|
|
{ SIMDE_FLOAT64_C( -892.36), SIMDE_FLOAT64_C( 925.18) },
|
|
{ SIMDE_FLOAT64_C( -291.66), SIMDE_FLOAT64_C( -527.11) } },
|
|
{ SIMDE_FLOAT64_C( -747.84), SIMDE_FLOAT64_C( 710.36), SIMDE_FLOAT64_C( -892.36), SIMDE_FLOAT64_C( 925.18),
|
|
SIMDE_FLOAT64_C( -291.66), SIMDE_FLOAT64_C( -527.11) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( 691.70), SIMDE_FLOAT64_C( -755.60) },
|
|
{ SIMDE_FLOAT64_C( 53.25), SIMDE_FLOAT64_C( -201.13) },
|
|
{ SIMDE_FLOAT64_C( 939.10), SIMDE_FLOAT64_C( -809.03) } },
|
|
{ SIMDE_FLOAT64_C( 691.70), SIMDE_FLOAT64_C( -755.60), SIMDE_FLOAT64_C( 53.25), SIMDE_FLOAT64_C( -201.13),
|
|
SIMDE_FLOAT64_C( 939.10), SIMDE_FLOAT64_C( -809.03) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( -147.97), SIMDE_FLOAT64_C( 324.14) },
|
|
{ SIMDE_FLOAT64_C( 520.96), SIMDE_FLOAT64_C( -326.38) },
|
|
{ SIMDE_FLOAT64_C( -370.77), SIMDE_FLOAT64_C( -689.62) } },
|
|
{ SIMDE_FLOAT64_C( -147.97), SIMDE_FLOAT64_C( 324.14), SIMDE_FLOAT64_C( 520.96), SIMDE_FLOAT64_C( -326.38),
|
|
SIMDE_FLOAT64_C( -370.77), SIMDE_FLOAT64_C( -689.62) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( -371.71), SIMDE_FLOAT64_C( 60.80) },
|
|
{ SIMDE_FLOAT64_C( 713.72), SIMDE_FLOAT64_C( 207.39) },
|
|
{ SIMDE_FLOAT64_C( 479.77), SIMDE_FLOAT64_C( -762.84) } },
|
|
{ SIMDE_FLOAT64_C( -371.71), SIMDE_FLOAT64_C( 60.80), SIMDE_FLOAT64_C( 713.72), SIMDE_FLOAT64_C( 207.39),
|
|
SIMDE_FLOAT64_C( 479.77), SIMDE_FLOAT64_C( -762.84) } },
|
|
{
|
|
{ { SIMDE_FLOAT64_C( 826.17), SIMDE_FLOAT64_C( 44.20) },
|
|
{ SIMDE_FLOAT64_C( 20.90), SIMDE_FLOAT64_C( -29.62) },
|
|
{ SIMDE_FLOAT64_C( 569.28), SIMDE_FLOAT64_C( 952.55) } },
|
|
{ SIMDE_FLOAT64_C( 826.17), SIMDE_FLOAT64_C( 44.20), SIMDE_FLOAT64_C( 20.90), SIMDE_FLOAT64_C( -29.62),
|
|
SIMDE_FLOAT64_C( 569.28), SIMDE_FLOAT64_C( 952.55) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_float64x2x3_t r_ = { { simde_vld1q_f64(test_vec[i].r[0]),
|
|
simde_vld1q_f64(test_vec[i].r[1]),
|
|
simde_vld1q_f64(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 simde_float64 a_[6];
|
|
simde_vst1q_f64_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_float64x2_t a = simde_test_arm_neon_random_f64x2(-1000.0, 1000.0);
|
|
simde_float64x2_t b = simde_test_arm_neon_random_f64x2(-1000.0, 1000.0);
|
|
simde_float64x2_t c = simde_test_arm_neon_random_f64x2(-1000.0, 1000.0);
|
|
simde_float64x2x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_f64x2x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
simde_float64 buf[6];
|
|
simde_vst1q_f64_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vf64(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_s8_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
int8_t r[3][16];
|
|
int8_t a[48];
|
|
} test_vec[] = {
|
|
{
|
|
{ { INT8_C( 86), INT8_C( 69), -INT8_C( 105), INT8_C( 122), -INT8_C( 113), INT8_C( 2), INT8_C( 118), INT8_C( 42),
|
|
-INT8_C( 15), INT8_C( 99), -INT8_C( 22), INT8_C( 14), -INT8_C( 58), INT8_C( 93), -INT8_C( 10), -INT8_C( 84) },
|
|
{ -INT8_C( 85), -INT8_C( 57), INT8_C( 6), INT8_C( 0), INT8_C( 52), -INT8_C( 72), INT8_C( 107), -INT8_C( 71),
|
|
-INT8_C( 92), -INT8_C( 6), -INT8_C( 18), -INT8_C( 72), -INT8_C( 106), INT8_C( 27), INT8_C( 57), -INT8_C( 19) },
|
|
{ INT8_C( 96), -INT8_C( 48), INT8_C( 103), -INT8_C( 16), -INT8_C( 46), -INT8_C( 35), INT8_C( 26), -INT8_C( 61),
|
|
INT8_C( 65), INT8_C( 4), -INT8_C( 47), INT8_C( 7), INT8_C( 97), -INT8_C( 56), -INT8_C( 76), INT8_C( 12) } },
|
|
{ INT8_C( 86), INT8_C( 69), -INT8_C( 105), INT8_C( 122), -INT8_C( 113), INT8_C( 2), INT8_C( 118), INT8_C( 42),
|
|
-INT8_C( 15), INT8_C( 99), -INT8_C( 22), INT8_C( 14), -INT8_C( 58), INT8_C( 93), -INT8_C( 10), -INT8_C( 84),
|
|
-INT8_C( 85), -INT8_C( 57), INT8_C( 6), INT8_C( 0), INT8_C( 52), -INT8_C( 72), INT8_C( 107), -INT8_C( 71),
|
|
-INT8_C( 92), -INT8_C( 6), -INT8_C( 18), -INT8_C( 72), -INT8_C( 106), INT8_C( 27), INT8_C( 57), -INT8_C( 19),
|
|
INT8_C( 96), -INT8_C( 48), INT8_C( 103), -INT8_C( 16), -INT8_C( 46), -INT8_C( 35), INT8_C( 26), -INT8_C( 61),
|
|
INT8_C( 65), INT8_C( 4), -INT8_C( 47), INT8_C( 7), INT8_C( 97), -INT8_C( 56), -INT8_C( 76), INT8_C( 12) } },
|
|
{
|
|
{ { -INT8_C( 113), -INT8_C( 70), INT8_C( 13), -INT8_C( 61), INT8_C( 115), INT8_C( 120), INT8_C( 124), INT8_C( 23),
|
|
INT8_C( 115), INT8_C( 106), -INT8_C( 49), INT8_C( 9), -INT8_C( 123), INT8_C( 8), -INT8_C( 10), -INT8_C( 27) },
|
|
{ -INT8_C( 40), INT8_C( 94), -INT8_C( 43), -INT8_C( 86), INT8_C( 59), -INT8_C( 17), INT8_C( 109), INT8_C( 124),
|
|
-INT8_C( 13), INT8_C( 63), -INT8_C( 124), INT8_C( 84), INT8_C( 7), INT8_C( 56), INT8_C( 97), -INT8_C( 106) },
|
|
{ -INT8_C( 14), INT8_C( 110), INT8_C( 89), INT8_C( 101), -INT8_C( 26), -INT8_C( 43), INT8_C( 124), INT8_C( 89),
|
|
INT8_C( 63), INT8_C( 76), INT8_C( 99), -INT8_C( 60), INT8_C( 84), INT8_C( 89), -INT8_C( 87), INT8_C( 45) } },
|
|
{ -INT8_C( 113), -INT8_C( 70), INT8_C( 13), -INT8_C( 61), INT8_C( 115), INT8_C( 120), INT8_C( 124), INT8_C( 23),
|
|
INT8_C( 115), INT8_C( 106), -INT8_C( 49), INT8_C( 9), -INT8_C( 123), INT8_C( 8), -INT8_C( 10), -INT8_C( 27),
|
|
-INT8_C( 40), INT8_C( 94), -INT8_C( 43), -INT8_C( 86), INT8_C( 59), -INT8_C( 17), INT8_C( 109), INT8_C( 124),
|
|
-INT8_C( 13), INT8_C( 63), -INT8_C( 124), INT8_C( 84), INT8_C( 7), INT8_C( 56), INT8_C( 97), -INT8_C( 106),
|
|
-INT8_C( 14), INT8_C( 110), INT8_C( 89), INT8_C( 101), -INT8_C( 26), -INT8_C( 43), INT8_C( 124), INT8_C( 89),
|
|
INT8_C( 63), INT8_C( 76), INT8_C( 99), -INT8_C( 60), INT8_C( 84), INT8_C( 89), -INT8_C( 87), INT8_C( 45) } },
|
|
{
|
|
{ { -INT8_C( 73), INT8_MAX, -INT8_C( 41), -INT8_C( 13), INT8_C( 110), INT8_C( 69), INT8_C( 111), INT8_C( 98),
|
|
-INT8_C( 124), -INT8_C( 13), -INT8_C( 74), -INT8_C( 117), INT8_C( 43), INT8_C( 23), INT8_C( 33), INT8_C( 30) },
|
|
{ -INT8_C( 123), INT8_C( 122), -INT8_C( 125), INT8_C( 108), INT8_C( 79), INT8_C( 0), -INT8_C( 59), -INT8_C( 114),
|
|
INT8_C( 76), INT8_C( 40), INT8_C( 82), -INT8_C( 96), -INT8_C( 126), -INT8_C( 5), -INT8_C( 51), INT8_C( 57) },
|
|
{ INT8_C( 122), -INT8_C( 91), INT8_C( 44), -INT8_C( 23), -INT8_C( 22), -INT8_C( 100), INT8_C( 75), INT8_C( 110),
|
|
-INT8_C( 113), INT8_C( 1), -INT8_C( 7), -INT8_C( 69), INT8_C( 25), INT8_C( 26), -INT8_C( 39), -INT8_C( 98) } },
|
|
{ -INT8_C( 73), INT8_MAX, -INT8_C( 41), -INT8_C( 13), INT8_C( 110), INT8_C( 69), INT8_C( 111), INT8_C( 98),
|
|
-INT8_C( 124), -INT8_C( 13), -INT8_C( 74), -INT8_C( 117), INT8_C( 43), INT8_C( 23), INT8_C( 33), INT8_C( 30),
|
|
-INT8_C( 123), INT8_C( 122), -INT8_C( 125), INT8_C( 108), INT8_C( 79), INT8_C( 0), -INT8_C( 59), -INT8_C( 114),
|
|
INT8_C( 76), INT8_C( 40), INT8_C( 82), -INT8_C( 96), -INT8_C( 126), -INT8_C( 5), -INT8_C( 51), INT8_C( 57),
|
|
INT8_C( 122), -INT8_C( 91), INT8_C( 44), -INT8_C( 23), -INT8_C( 22), -INT8_C( 100), INT8_C( 75), INT8_C( 110),
|
|
-INT8_C( 113), INT8_C( 1), -INT8_C( 7), -INT8_C( 69), INT8_C( 25), INT8_C( 26), -INT8_C( 39), -INT8_C( 98) } },
|
|
{
|
|
{ { -INT8_C( 108), INT8_C( 92), INT8_C( 10), -INT8_C( 29), INT8_C( 92), -INT8_C( 48), INT8_C( 113), -INT8_C( 88),
|
|
-INT8_C( 8), -INT8_C( 61), INT8_C( 73), INT8_C( 122), -INT8_C( 66), INT8_C( 22), -INT8_C( 76), INT8_C( 57) },
|
|
{ -INT8_C( 69), -INT8_C( 32), INT8_C( 34), -INT8_C( 91), INT8_C( 124), INT8_C( 109), INT8_C( 19), INT8_C( 12),
|
|
INT8_C( 110), INT8_C( 12), -INT8_C( 57), -INT8_C( 121), INT8_C( 38), -INT8_C( 96), INT8_C( 38), -INT8_C( 70) },
|
|
{ -INT8_C( 4), INT8_C( 48), -INT8_C( 99), INT8_C( 89), INT8_C( 0), INT8_C( 14), INT8_C( 1), -INT8_C( 7),
|
|
-INT8_C( 47), INT8_C( 74), INT8_C( 115), -INT8_C( 112), INT8_C( 97), INT8_C( 39), -INT8_C( 55), INT8_C( 28) } },
|
|
{ -INT8_C( 108), INT8_C( 92), INT8_C( 10), -INT8_C( 29), INT8_C( 92), -INT8_C( 48), INT8_C( 113), -INT8_C( 88),
|
|
-INT8_C( 8), -INT8_C( 61), INT8_C( 73), INT8_C( 122), -INT8_C( 66), INT8_C( 22), -INT8_C( 76), INT8_C( 57),
|
|
-INT8_C( 69), -INT8_C( 32), INT8_C( 34), -INT8_C( 91), INT8_C( 124), INT8_C( 109), INT8_C( 19), INT8_C( 12),
|
|
INT8_C( 110), INT8_C( 12), -INT8_C( 57), -INT8_C( 121), INT8_C( 38), -INT8_C( 96), INT8_C( 38), -INT8_C( 70),
|
|
-INT8_C( 4), INT8_C( 48), -INT8_C( 99), INT8_C( 89), INT8_C( 0), INT8_C( 14), INT8_C( 1), -INT8_C( 7),
|
|
-INT8_C( 47), INT8_C( 74), INT8_C( 115), -INT8_C( 112), INT8_C( 97), INT8_C( 39), -INT8_C( 55), INT8_C( 28) } },
|
|
{
|
|
{ { INT8_C( 8), -INT8_C( 21), -INT8_C( 62), -INT8_C( 124), INT8_C( 88), -INT8_C( 43), -INT8_C( 112), -INT8_C( 58),
|
|
-INT8_C( 30), INT8_C( 87), INT8_C( 78), INT8_C( 8), -INT8_C( 9), INT8_C( 116), -INT8_C( 61), -INT8_C( 12) },
|
|
{ -INT8_C( 92), INT8_C( 96), INT8_C( 77), -INT8_C( 91), INT8_C( 111), INT8_C( 78), -INT8_C( 98), INT8_C( 64),
|
|
-INT8_C( 103), INT8_C( 17), -INT8_C( 48), -INT8_C( 6), INT8_C( 57), -INT8_C( 103), INT8_C( 22), INT8_C( 65) },
|
|
{ -INT8_C( 124), -INT8_C( 40), -INT8_C( 59), -INT8_C( 36), -INT8_C( 82), INT8_C( 86), -INT8_C( 93), -INT8_C( 112),
|
|
-INT8_C( 83), -INT8_C( 15), -INT8_C( 104), -INT8_C( 91), INT8_C( 101), INT8_C( 91), -INT8_C( 103), INT8_C( 9) } },
|
|
{ INT8_C( 8), -INT8_C( 21), -INT8_C( 62), -INT8_C( 124), INT8_C( 88), -INT8_C( 43), -INT8_C( 112), -INT8_C( 58),
|
|
-INT8_C( 30), INT8_C( 87), INT8_C( 78), INT8_C( 8), -INT8_C( 9), INT8_C( 116), -INT8_C( 61), -INT8_C( 12),
|
|
-INT8_C( 92), INT8_C( 96), INT8_C( 77), -INT8_C( 91), INT8_C( 111), INT8_C( 78), -INT8_C( 98), INT8_C( 64),
|
|
-INT8_C( 103), INT8_C( 17), -INT8_C( 48), -INT8_C( 6), INT8_C( 57), -INT8_C( 103), INT8_C( 22), INT8_C( 65),
|
|
-INT8_C( 124), -INT8_C( 40), -INT8_C( 59), -INT8_C( 36), -INT8_C( 82), INT8_C( 86), -INT8_C( 93), -INT8_C( 112),
|
|
-INT8_C( 83), -INT8_C( 15), -INT8_C( 104), -INT8_C( 91), INT8_C( 101), INT8_C( 91), -INT8_C( 103), INT8_C( 9) } },
|
|
{
|
|
{ { -INT8_C( 68), -INT8_C( 26), -INT8_C( 82), INT8_C( 43), INT8_C( 52), INT8_C( 76), INT8_C( 107), -INT8_C( 51),
|
|
INT8_C( 94), INT8_C( 60), -INT8_C( 57), -INT8_C( 105), -INT8_C( 43), -INT8_C( 34), -INT8_C( 40), INT8_C( 90) },
|
|
{ -INT8_C( 74), -INT8_C( 99), INT8_C( 54), INT8_C( 100), -INT8_C( 13), -INT8_C( 39), -INT8_C( 12), -INT8_C( 95),
|
|
-INT8_C( 54), -INT8_C( 115), INT8_C( 70), INT8_C( 47), -INT8_C( 24), -INT8_C( 33), INT8_C( 57), -INT8_C( 92) },
|
|
{ -INT8_C( 59), -INT8_C( 25), -INT8_C( 49), -INT8_C( 7), INT8_C( 52), INT8_C( 59), -INT8_C( 57), -INT8_C( 110),
|
|
INT8_C( 119), -INT8_C( 114), INT8_C( 41), INT8_C( 76), INT8_C( 108), INT8_C( 1), -INT8_C( 90), INT8_C( 35) } },
|
|
{ -INT8_C( 68), -INT8_C( 26), -INT8_C( 82), INT8_C( 43), INT8_C( 52), INT8_C( 76), INT8_C( 107), -INT8_C( 51),
|
|
INT8_C( 94), INT8_C( 60), -INT8_C( 57), -INT8_C( 105), -INT8_C( 43), -INT8_C( 34), -INT8_C( 40), INT8_C( 90),
|
|
-INT8_C( 74), -INT8_C( 99), INT8_C( 54), INT8_C( 100), -INT8_C( 13), -INT8_C( 39), -INT8_C( 12), -INT8_C( 95),
|
|
-INT8_C( 54), -INT8_C( 115), INT8_C( 70), INT8_C( 47), -INT8_C( 24), -INT8_C( 33), INT8_C( 57), -INT8_C( 92),
|
|
-INT8_C( 59), -INT8_C( 25), -INT8_C( 49), -INT8_C( 7), INT8_C( 52), INT8_C( 59), -INT8_C( 57), -INT8_C( 110),
|
|
INT8_C( 119), -INT8_C( 114), INT8_C( 41), INT8_C( 76), INT8_C( 108), INT8_C( 1), -INT8_C( 90), INT8_C( 35) } },
|
|
{
|
|
{ { -INT8_C( 98), -INT8_C( 35), -INT8_C( 121), -INT8_C( 110), -INT8_C( 74), INT8_C( 124), INT8_C( 51), -INT8_C( 127),
|
|
INT8_C( 9), INT8_C( 121), -INT8_C( 80), -INT8_C( 15), INT8_C( 88), -INT8_C( 23), -INT8_C( 106), INT8_C( 29) },
|
|
{ -INT8_C( 47), INT8_C( 101), INT8_C( 22), INT8_C( 5), -INT8_C( 96), -INT8_C( 35), -INT8_C( 105), INT8_C( 23),
|
|
INT8_C( 108), -INT8_C( 64), INT8_C( 100), -INT8_C( 40), -INT8_C( 63), INT8_C( 10), -INT8_C( 5), INT8_C( 95) },
|
|
{ -INT8_C( 25), -INT8_C( 125), -INT8_C( 15), -INT8_C( 98), -INT8_C( 1), INT8_C( 36), INT8_C( 31), INT8_C( 8),
|
|
-INT8_C( 99), -INT8_C( 49), -INT8_C( 7), -INT8_C( 11), -INT8_C( 71), -INT8_C( 113), INT8_C( 18), -INT8_C( 118) } },
|
|
{ -INT8_C( 98), -INT8_C( 35), -INT8_C( 121), -INT8_C( 110), -INT8_C( 74), INT8_C( 124), INT8_C( 51), -INT8_C( 127),
|
|
INT8_C( 9), INT8_C( 121), -INT8_C( 80), -INT8_C( 15), INT8_C( 88), -INT8_C( 23), -INT8_C( 106), INT8_C( 29),
|
|
-INT8_C( 47), INT8_C( 101), INT8_C( 22), INT8_C( 5), -INT8_C( 96), -INT8_C( 35), -INT8_C( 105), INT8_C( 23),
|
|
INT8_C( 108), -INT8_C( 64), INT8_C( 100), -INT8_C( 40), -INT8_C( 63), INT8_C( 10), -INT8_C( 5), INT8_C( 95),
|
|
-INT8_C( 25), -INT8_C( 125), -INT8_C( 15), -INT8_C( 98), -INT8_C( 1), INT8_C( 36), INT8_C( 31), INT8_C( 8),
|
|
-INT8_C( 99), -INT8_C( 49), -INT8_C( 7), -INT8_C( 11), -INT8_C( 71), -INT8_C( 113), INT8_C( 18), -INT8_C( 118) } },
|
|
{
|
|
{ { -INT8_C( 11), INT8_C( 41), -INT8_C( 113), -INT8_C( 107), INT8_C( 6), INT8_C( 38), -INT8_C( 83), INT8_C( 114),
|
|
-INT8_C( 26), INT8_C( 17), INT8_C( 75), -INT8_C( 89), INT8_C( 27), INT8_C( 70), INT8_C( 6), INT8_C( 3) },
|
|
{ -INT8_C( 55), -INT8_C( 8), -INT8_C( 95), -INT8_C( 56), INT8_C( 28), -INT8_C( 64), -INT8_C( 48), -INT8_C( 70),
|
|
-INT8_C( 113), -INT8_C( 54), -INT8_C( 81), INT8_C( 72), INT8_C( 89), -INT8_C( 62), -INT8_C( 46), INT8_C( 78) },
|
|
{ -INT8_C( 21), INT8_C( 97), -INT8_C( 28), -INT8_C( 15), -INT8_C( 121), -INT8_C( 111), INT8_C( 100), INT8_C( 109),
|
|
-INT8_C( 94), -INT8_C( 81), INT8_C( 20), -INT8_C( 67), -INT8_C( 11), INT8_C( 27), -INT8_C( 64), -INT8_C( 65) } },
|
|
{ -INT8_C( 11), INT8_C( 41), -INT8_C( 113), -INT8_C( 107), INT8_C( 6), INT8_C( 38), -INT8_C( 83), INT8_C( 114),
|
|
-INT8_C( 26), INT8_C( 17), INT8_C( 75), -INT8_C( 89), INT8_C( 27), INT8_C( 70), INT8_C( 6), INT8_C( 3),
|
|
-INT8_C( 55), -INT8_C( 8), -INT8_C( 95), -INT8_C( 56), INT8_C( 28), -INT8_C( 64), -INT8_C( 48), -INT8_C( 70),
|
|
-INT8_C( 113), -INT8_C( 54), -INT8_C( 81), INT8_C( 72), INT8_C( 89), -INT8_C( 62), -INT8_C( 46), INT8_C( 78),
|
|
-INT8_C( 21), INT8_C( 97), -INT8_C( 28), -INT8_C( 15), -INT8_C( 121), -INT8_C( 111), INT8_C( 100), INT8_C( 109),
|
|
-INT8_C( 94), -INT8_C( 81), INT8_C( 20), -INT8_C( 67), -INT8_C( 11), INT8_C( 27), -INT8_C( 64), -INT8_C( 65) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_int8x16x3_t r_ = { { simde_vld1q_s8(test_vec[i].r[0]),
|
|
simde_vld1q_s8(test_vec[i].r[1]),
|
|
simde_vld1q_s8(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 int8_t a_[48];
|
|
simde_vst1q_s8_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_int8x16_t a = simde_test_arm_neon_random_i8x16();
|
|
simde_int8x16_t b = simde_test_arm_neon_random_i8x16();
|
|
simde_int8x16_t c = simde_test_arm_neon_random_i8x16();
|
|
simde_int8x16x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_i8x16x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
int8_t buf[48];
|
|
simde_vst1q_s8_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vi8(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_s16_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
int16_t r[3][8];
|
|
int16_t a[24];
|
|
} test_vec[] = {
|
|
{
|
|
{ { INT16_C( 24851), INT16_C( 12167), INT16_C( 22561), -INT16_C( 19991), -INT16_C( 26334), INT16_C( 31737), -INT16_C( 13221), INT16_C( 18122) },
|
|
{ -INT16_C( 20947), -INT16_C( 19145), -INT16_C( 25793), -INT16_C( 7902), INT16_C( 14154), INT16_C( 16542), INT16_C( 24402), INT16_C( 26111) },
|
|
{ -INT16_C( 31040), -INT16_C( 7532), INT16_C( 32478), INT16_C( 147), -INT16_C( 29673), INT16_C( 29308), INT16_C( 18008), -INT16_C( 31048) } },
|
|
{ INT16_C( 24851), INT16_C( 12167), INT16_C( 22561), -INT16_C( 19991), -INT16_C( 26334), INT16_C( 31737), -INT16_C( 13221), INT16_C( 18122),
|
|
-INT16_C( 20947), -INT16_C( 19145), -INT16_C( 25793), -INT16_C( 7902), INT16_C( 14154), INT16_C( 16542), INT16_C( 24402), INT16_C( 26111),
|
|
-INT16_C( 31040), -INT16_C( 7532), INT16_C( 32478), INT16_C( 147), -INT16_C( 29673), INT16_C( 29308), INT16_C( 18008), -INT16_C( 31048) } },
|
|
{
|
|
{ { -INT16_C( 4108), INT16_C( 13115), INT16_C( 23947), -INT16_C( 10988), -INT16_C( 19820), -INT16_C( 6635), INT16_C( 5137), -INT16_C( 11701) },
|
|
{ -INT16_C( 8037), INT16_C( 31156), INT16_C( 18270), INT16_C( 30074), -INT16_C( 2349), INT16_C( 11495), -INT16_C( 24772), INT16_C( 12466) },
|
|
{ -INT16_C( 4722), INT16_C( 6499), INT16_C( 30538), -INT16_C( 8209), INT16_C( 1065), INT16_C( 15301), INT16_C( 4377), -INT16_C( 19443) } },
|
|
{ -INT16_C( 4108), INT16_C( 13115), INT16_C( 23947), -INT16_C( 10988), -INT16_C( 19820), -INT16_C( 6635), INT16_C( 5137), -INT16_C( 11701),
|
|
-INT16_C( 8037), INT16_C( 31156), INT16_C( 18270), INT16_C( 30074), -INT16_C( 2349), INT16_C( 11495), -INT16_C( 24772), INT16_C( 12466),
|
|
-INT16_C( 4722), INT16_C( 6499), INT16_C( 30538), -INT16_C( 8209), INT16_C( 1065), INT16_C( 15301), INT16_C( 4377), -INT16_C( 19443) } },
|
|
{
|
|
{ { -INT16_C( 15887), INT16_C( 20269), -INT16_C( 22776), -INT16_C( 9276), -INT16_C( 21603), -INT16_C( 9977), -INT16_C( 18102), -INT16_C( 10231) },
|
|
{ INT16_C( 27814), -INT16_C( 3598), -INT16_C( 7709), INT16_C( 3536), -INT16_C( 27163), -INT16_C( 440), INT16_C( 21926), -INT16_C( 26702) },
|
|
{ -INT16_C( 8170), INT16_C( 7910), -INT16_C( 21881), INT16_C( 9721), INT16_C( 341), -INT16_C( 24578), INT16_C( 2234), INT16_C( 24952) } },
|
|
{ -INT16_C( 15887), INT16_C( 20269), -INT16_C( 22776), -INT16_C( 9276), -INT16_C( 21603), -INT16_C( 9977), -INT16_C( 18102), -INT16_C( 10231),
|
|
INT16_C( 27814), -INT16_C( 3598), -INT16_C( 7709), INT16_C( 3536), -INT16_C( 27163), -INT16_C( 440), INT16_C( 21926), -INT16_C( 26702),
|
|
-INT16_C( 8170), INT16_C( 7910), -INT16_C( 21881), INT16_C( 9721), INT16_C( 341), -INT16_C( 24578), INT16_C( 2234), INT16_C( 24952) } },
|
|
{
|
|
{ { INT16_C( 27252), INT16_C( 22610), INT16_C( 8779), INT16_C( 12389), -INT16_C( 21065), INT16_C( 24111), -INT16_C( 7934), INT16_C( 6389) },
|
|
{ -INT16_C( 9023), INT16_C( 18742), INT16_C( 12166), -INT16_C( 9106), INT16_C( 27696), -INT16_C( 5253), -INT16_C( 3212), -INT16_C( 5812) },
|
|
{ -INT16_C( 24995), -INT16_C( 22463), -INT16_C( 22848), INT16_C( 30681), INT16_C( 2131), INT16_C( 21973), -INT16_C( 13335), -INT16_C( 21651) } },
|
|
{ INT16_C( 27252), INT16_C( 22610), INT16_C( 8779), INT16_C( 12389), -INT16_C( 21065), INT16_C( 24111), -INT16_C( 7934), INT16_C( 6389),
|
|
-INT16_C( 9023), INT16_C( 18742), INT16_C( 12166), -INT16_C( 9106), INT16_C( 27696), -INT16_C( 5253), -INT16_C( 3212), -INT16_C( 5812),
|
|
-INT16_C( 24995), -INT16_C( 22463), -INT16_C( 22848), INT16_C( 30681), INT16_C( 2131), INT16_C( 21973), -INT16_C( 13335), -INT16_C( 21651) } },
|
|
{
|
|
{ { -INT16_C( 23641), INT16_C( 11764), INT16_C( 25298), INT16_C( 777), -INT16_C( 31282), INT16_C( 17390), INT16_C( 14968), -INT16_C( 10708) },
|
|
{ INT16_C( 28120), -INT16_C( 26498), INT16_C( 22291), INT16_C( 26127), -INT16_C( 6817), INT16_C( 18875), INT16_C( 10416), INT16_C( 22516) },
|
|
{ -INT16_C( 5941), -INT16_C( 25212), -INT16_C( 29110), INT16_C( 6304), -INT16_C( 29165), -INT16_C( 29861), -INT16_C( 30776), -INT16_C( 24479) } },
|
|
{ -INT16_C( 23641), INT16_C( 11764), INT16_C( 25298), INT16_C( 777), -INT16_C( 31282), INT16_C( 17390), INT16_C( 14968), -INT16_C( 10708),
|
|
INT16_C( 28120), -INT16_C( 26498), INT16_C( 22291), INT16_C( 26127), -INT16_C( 6817), INT16_C( 18875), INT16_C( 10416), INT16_C( 22516),
|
|
-INT16_C( 5941), -INT16_C( 25212), -INT16_C( 29110), INT16_C( 6304), -INT16_C( 29165), -INT16_C( 29861), -INT16_C( 30776), -INT16_C( 24479) } },
|
|
{
|
|
{ { -INT16_C( 7948), INT16_C( 1848), INT16_C( 18487), -INT16_C( 26771), INT16_C( 10285), -INT16_C( 8736), -INT16_C( 11184), INT16_C( 6964) },
|
|
{ -INT16_C( 18244), INT16_C( 1721), INT16_C( 22854), INT16_C( 22814), INT16_C( 31464), -INT16_C( 20251), INT16_C( 17921), -INT16_C( 2479) },
|
|
{ -INT16_C( 30426), INT16_C( 24317), INT16_C( 27601), -INT16_C( 267), -INT16_C( 10861), -INT16_C( 6949), INT16_C( 4009), INT16_C( 26111) } },
|
|
{ -INT16_C( 7948), INT16_C( 1848), INT16_C( 18487), -INT16_C( 26771), INT16_C( 10285), -INT16_C( 8736), -INT16_C( 11184), INT16_C( 6964),
|
|
-INT16_C( 18244), INT16_C( 1721), INT16_C( 22854), INT16_C( 22814), INT16_C( 31464), -INT16_C( 20251), INT16_C( 17921), -INT16_C( 2479),
|
|
-INT16_C( 30426), INT16_C( 24317), INT16_C( 27601), -INT16_C( 267), -INT16_C( 10861), -INT16_C( 6949), INT16_C( 4009), INT16_C( 26111) } },
|
|
{
|
|
{ { -INT16_C( 18232), INT16_C( 3691), -INT16_C( 30446), -INT16_C( 1432), INT16_C( 19715), INT16_C( 1450), -INT16_C( 1133), -INT16_C( 17669) },
|
|
{ -INT16_C( 1915), INT16_C( 22040), INT16_C( 3427), -INT16_C( 2219), INT16_C( 12514), -INT16_C( 29733), -INT16_C( 9664), INT16_C( 2288) },
|
|
{ INT16_C( 23443), -INT16_C( 23274), INT16_C( 32484), -INT16_C( 5985), INT16_C( 18891), INT16_C( 24557), -INT16_C( 6075), -INT16_C( 13799) } },
|
|
{ -INT16_C( 18232), INT16_C( 3691), -INT16_C( 30446), -INT16_C( 1432), INT16_C( 19715), INT16_C( 1450), -INT16_C( 1133), -INT16_C( 17669),
|
|
-INT16_C( 1915), INT16_C( 22040), INT16_C( 3427), -INT16_C( 2219), INT16_C( 12514), -INT16_C( 29733), -INT16_C( 9664), INT16_C( 2288),
|
|
INT16_C( 23443), -INT16_C( 23274), INT16_C( 32484), -INT16_C( 5985), INT16_C( 18891), INT16_C( 24557), -INT16_C( 6075), -INT16_C( 13799) } },
|
|
{
|
|
{ { INT16_C( 12768), INT16_C( 17440), INT16_C( 30014), INT16_C( 8251), INT16_C( 5798), -INT16_C( 6485), -INT16_C( 25616), -INT16_C( 31762) },
|
|
{ INT16_C( 1270), -INT16_C( 9688), -INT16_C( 14461), INT16_C( 20162), -INT16_C( 20719), INT16_C( 22189), -INT16_C( 14697), INT16_C( 30752) },
|
|
{ INT16_C( 16631), INT16_C( 13756), -INT16_C( 2122), INT16_C( 23637), INT16_C( 13), -INT16_C( 702), INT16_C( 12443), -INT16_C( 28287) } },
|
|
{ INT16_C( 12768), INT16_C( 17440), INT16_C( 30014), INT16_C( 8251), INT16_C( 5798), -INT16_C( 6485), -INT16_C( 25616), -INT16_C( 31762),
|
|
INT16_C( 1270), -INT16_C( 9688), -INT16_C( 14461), INT16_C( 20162), -INT16_C( 20719), INT16_C( 22189), -INT16_C( 14697), INT16_C( 30752),
|
|
INT16_C( 16631), INT16_C( 13756), -INT16_C( 2122), INT16_C( 23637), INT16_C( 13), -INT16_C( 702), INT16_C( 12443), -INT16_C( 28287) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_int16x8x3_t r_ = { { simde_vld1q_s16(test_vec[i].r[0]),
|
|
simde_vld1q_s16(test_vec[i].r[1]),
|
|
simde_vld1q_s16(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 int16_t a_[24];
|
|
simde_vst1q_s16_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_int16x8_t a = simde_test_arm_neon_random_i16x8();
|
|
simde_int16x8_t b = simde_test_arm_neon_random_i16x8();
|
|
simde_int16x8_t c = simde_test_arm_neon_random_i16x8();
|
|
simde_int16x8x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_i16x8x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
int16_t buf[24];
|
|
simde_vst1q_s16_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vi16(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_s32_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
int32_t r[3][4];
|
|
int32_t a[12];
|
|
} test_vec[] = {
|
|
{
|
|
{ { -INT32_C( 1217615564), -INT32_C( 2113524111), INT32_C( 1977136094), INT32_C( 1911421050) },
|
|
{ -INT32_C( 291002056), -INT32_C( 1387594592), -INT32_C( 1733587715), -INT32_C( 248894276) },
|
|
{ INT32_C( 1185453781), -INT32_C( 1563906364), -INT32_C( 602365854), -INT32_C( 783481448) } },
|
|
{ -INT32_C( 1217615564), -INT32_C( 2113524111), INT32_C( 1977136094), INT32_C( 1911421050), -INT32_C( 291002056), -INT32_C( 1387594592), -INT32_C( 1733587715), -INT32_C( 248894276),
|
|
INT32_C( 1185453781), -INT32_C( 1563906364), -INT32_C( 602365854), -INT32_C( 783481448) } },
|
|
{
|
|
{ { INT32_C( 1337980079), -INT32_C( 285406479), INT32_C( 1401333910), -INT32_C( 1455116076) },
|
|
{ INT32_C( 200338502), -INT32_C( 38946661), -INT32_C( 237386407), INT32_C( 2059544267) },
|
|
{ INT32_C( 214532635), INT32_C( 586860172), INT32_C( 1114996846), INT32_C( 2012002609) } },
|
|
{ INT32_C( 1337980079), -INT32_C( 285406479), INT32_C( 1401333910), -INT32_C( 1455116076), INT32_C( 200338502), -INT32_C( 38946661), -INT32_C( 237386407), INT32_C( 2059544267),
|
|
INT32_C( 214532635), INT32_C( 586860172), INT32_C( 1114996846), INT32_C( 2012002609) } },
|
|
{
|
|
{ { INT32_C( 1099095206), -INT32_C( 314691436), -INT32_C( 1059121163), INT32_C( 1480237373) },
|
|
{ -INT32_C( 1352399837), INT32_C( 970088138), INT32_C( 276514783), -INT32_C( 1484298495) },
|
|
{ -INT32_C( 655881661), INT32_C( 801449530), INT32_C( 2062591037), INT32_C( 1775446598) } },
|
|
{ INT32_C( 1099095206), -INT32_C( 314691436), -INT32_C( 1059121163), INT32_C( 1480237373), -INT32_C( 1352399837), INT32_C( 970088138), INT32_C( 276514783), -INT32_C( 1484298495),
|
|
-INT32_C( 655881661), INT32_C( 801449530), INT32_C( 2062591037), INT32_C( 1775446598) } },
|
|
{
|
|
{ { -INT32_C( 115787986), INT32_C( 1966271382), INT32_C( 864398642), INT32_C( 1490684949) },
|
|
{ INT32_C( 1345372694), INT32_C( 629208808), -INT32_C( 526356326), -INT32_C( 917867622) },
|
|
{ INT32_C( 1086481322), -INT32_C( 2135559090), -INT32_C( 1229702495), INT32_C( 1561300551) } },
|
|
{ -INT32_C( 115787986), INT32_C( 1966271382), INT32_C( 864398642), INT32_C( 1490684949), INT32_C( 1345372694), INT32_C( 629208808), -INT32_C( 526356326), -INT32_C( 917867622),
|
|
INT32_C( 1086481322), -INT32_C( 2135559090), -INT32_C( 1229702495), INT32_C( 1561300551) } },
|
|
{
|
|
{ { INT32_C( 967720785), -INT32_C( 799068619), INT32_C( 951123870), INT32_C( 469891698) },
|
|
{ -INT32_C( 1419918499), INT32_C( 1496060599), -INT32_C( 1810898867), -INT32_C( 1074717074) },
|
|
{ -INT32_C( 1812357282), INT32_C( 1801672909), -INT32_C( 911993769), INT32_C( 1826989326) } },
|
|
{ INT32_C( 967720785), -INT32_C( 799068619), INT32_C( 951123870), INT32_C( 469891698), -INT32_C( 1419918499), INT32_C( 1496060599), -INT32_C( 1810898867), -INT32_C( 1074717074),
|
|
-INT32_C( 1812357282), INT32_C( 1801672909), -INT32_C( 911993769), INT32_C( 1826989326) } },
|
|
{
|
|
{ { INT32_C( 538395241), -INT32_C( 1569111211), -INT32_C( 1841919709), INT32_C( 89204647) },
|
|
{ -INT32_C( 1801893177), -INT32_C( 117375838), INT32_C( 532849680), -INT32_C( 1299470263) },
|
|
{ INT32_C( 1070834410), INT32_C( 165760230), INT32_C( 2107316181), INT32_C( 109243711) } },
|
|
{ INT32_C( 538395241), -INT32_C( 1569111211), -INT32_C( 1841919709), INT32_C( 89204647), -INT32_C( 1801893177), -INT32_C( 117375838), INT32_C( 532849680), -INT32_C( 1299470263),
|
|
INT32_C( 1070834410), INT32_C( 165760230), INT32_C( 2107316181), INT32_C( 109243711) } },
|
|
{
|
|
{ { -INT32_C( 627434697), INT32_C( 684956184), -INT32_C( 2008574402), INT32_C( 674943550) },
|
|
{ INT32_C( 1533545845), INT32_C( 795101530), -INT32_C( 1599340447), INT32_C( 614871021) },
|
|
{ INT32_C( 1660829770), INT32_C( 428593883), -INT32_C( 1499344280), INT32_C( 449764517) } },
|
|
{ -INT32_C( 627434697), INT32_C( 684956184), -INT32_C( 2008574402), INT32_C( 674943550), INT32_C( 1533545845), INT32_C( 795101530), -INT32_C( 1599340447), INT32_C( 614871021),
|
|
INT32_C( 1660829770), INT32_C( 428593883), -INT32_C( 1499344280), INT32_C( 449764517) } },
|
|
{
|
|
{ { INT32_C( 1131755241), -INT32_C( 512501376), -INT32_C( 964616231), -INT32_C( 1712642226) },
|
|
{ INT32_C( 1123805543), INT32_C( 593266363), -INT32_C( 20316839), -INT32_C( 1021798183) },
|
|
{ INT32_C( 1309052366), INT32_C( 1076853094), -INT32_C( 418991975), INT32_C( 1065415127) } },
|
|
{ INT32_C( 1131755241), -INT32_C( 512501376), -INT32_C( 964616231), -INT32_C( 1712642226), INT32_C( 1123805543), INT32_C( 593266363), -INT32_C( 20316839), -INT32_C( 1021798183),
|
|
INT32_C( 1309052366), INT32_C( 1076853094), -INT32_C( 418991975), INT32_C( 1065415127) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_int32x4x3_t r_ = { { simde_vld1q_s32(test_vec[i].r[0]),
|
|
simde_vld1q_s32(test_vec[i].r[1]),
|
|
simde_vld1q_s32(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 int32_t a_[12];
|
|
simde_vst1q_s32_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_int32x4_t a = simde_test_arm_neon_random_i32x4();
|
|
simde_int32x4_t b = simde_test_arm_neon_random_i32x4();
|
|
simde_int32x4_t c = simde_test_arm_neon_random_i32x4();
|
|
simde_int32x4x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_i32x4x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
int32_t buf[12];
|
|
simde_vst1q_s32_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vi32(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_s64_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
int64_t r[3][2];
|
|
int64_t a[6];
|
|
} test_vec[] = {
|
|
{
|
|
{ { INT64_C( 6609838406304365787), -INT64_C( 1551647182802025509) },
|
|
{ -INT64_C( 8023891749326258434), INT64_C( 8660413965684747032) },
|
|
{ INT64_C( 7625377633300033652), -INT64_C( 7182795427406861236) } },
|
|
{ INT64_C( 6609838406304365787), -INT64_C( 1551647182802025509), -INT64_C( 8023891749326258434), INT64_C( 8660413965684747032),
|
|
INT64_C( 7625377633300033652), -INT64_C( 7182795427406861236) } },
|
|
{
|
|
{ { INT64_C( 764388120249600531), -INT64_C( 9194616457999543471) },
|
|
{ -INT64_C( 8515804154789661222), -INT64_C( 7624802511224705291) },
|
|
{ INT64_C( 2866889530816934092), -INT64_C( 4045783956378434737) } },
|
|
{ INT64_C( 764388120249600531), -INT64_C( 9194616457999543471), -INT64_C( 8515804154789661222), -INT64_C( 7624802511224705291),
|
|
INT64_C( 2866889530816934092), -INT64_C( 4045783956378434737) } },
|
|
{
|
|
{ { -INT64_C( 8018658470021574159), -INT64_C( 5185803795436426770) },
|
|
{ INT64_C( 3783095040767142274), INT64_C( 339855826956031491) },
|
|
{ -INT64_C( 3069506719337683397), INT64_C( 6861603315756010133) } },
|
|
{ -INT64_C( 8018658470021574159), -INT64_C( 5185803795436426770), INT64_C( 3783095040767142274), INT64_C( 339855826956031491),
|
|
-INT64_C( 3069506719337683397), INT64_C( 6861603315756010133) } },
|
|
{
|
|
{ { -INT64_C( 859281596229373703), INT64_C( 5108379452176638669) },
|
|
{ -INT64_C( 7548451879049750654), -INT64_C( 3654580023213914867) },
|
|
{ INT64_C( 425518936842043394), -INT64_C( 1534661601957393567) } },
|
|
{ -INT64_C( 859281596229373703), INT64_C( 5108379452176638669), -INT64_C( 7548451879049750654), -INT64_C( 3654580023213914867),
|
|
INT64_C( 425518936842043394), -INT64_C( 1534661601957393567) } },
|
|
{
|
|
{ { INT64_C( 6879971165932343264), -INT64_C( 1749488042864176618) },
|
|
{ -INT64_C( 8876945456046119791), INT64_C( 6691965853399823244) },
|
|
{ -INT64_C( 2871686040706469517), -INT64_C( 7992065252285845941) } },
|
|
{ INT64_C( 6879971165932343264), -INT64_C( 1749488042864176618), -INT64_C( 8876945456046119791), INT64_C( 6691965853399823244),
|
|
-INT64_C( 2871686040706469517), -INT64_C( 7992065252285845941) } },
|
|
{
|
|
{ { INT64_C( 4505051742951108830), -INT64_C( 8308279186545281317) },
|
|
{ -INT64_C( 730858942433660607), -INT64_C( 687578390011273755) },
|
|
{ -INT64_C( 3306910997839032533), -INT64_C( 7018336252069327373) } },
|
|
{ INT64_C( 4505051742951108830), -INT64_C( 8308279186545281317), -INT64_C( 730858942433660607), -INT64_C( 687578390011273755),
|
|
-INT64_C( 3306910997839032533), -INT64_C( 7018336252069327373) } },
|
|
{
|
|
{ { INT64_C( 5146906711526861774), -INT64_C( 565023854864592615) },
|
|
{ -INT64_C( 7981521355724742543), INT64_C( 1096687264171189309) },
|
|
{ INT64_C( 7984306362547427619), INT64_C( 813683247830595973) } },
|
|
{ INT64_C( 5146906711526861774), -INT64_C( 565023854864592615), -INT64_C( 7981521355724742543), INT64_C( 1096687264171189309),
|
|
INT64_C( 7984306362547427619), INT64_C( 813683247830595973) } },
|
|
{
|
|
{ { INT64_C( 5482762077568507880), INT64_C( 1108763933648794643) },
|
|
{ INT64_C( 7258221356856437495), INT64_C( 720576090530536026) },
|
|
{ INT64_C( 3997690289280021535), INT64_C( 8455208676079919195) } },
|
|
{ INT64_C( 5482762077568507880), INT64_C( 1108763933648794643), INT64_C( 7258221356856437495), INT64_C( 720576090530536026),
|
|
INT64_C( 3997690289280021535), INT64_C( 8455208676079919195) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_int64x2x3_t r_ = { { simde_vld1q_s64(test_vec[i].r[0]),
|
|
simde_vld1q_s64(test_vec[i].r[1]),
|
|
simde_vld1q_s64(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 int64_t a_[6];
|
|
simde_vst1q_s64_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_int64x2_t a = simde_test_arm_neon_random_i64x2();
|
|
simde_int64x2_t b = simde_test_arm_neon_random_i64x2();
|
|
simde_int64x2_t c = simde_test_arm_neon_random_i64x2();
|
|
simde_int64x2x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_i64x2x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
int64_t buf[6];
|
|
simde_vst1q_s64_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vi64(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_u8_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
uint8_t r[3][16];
|
|
uint8_t a[48];
|
|
} test_vec[] = {
|
|
{
|
|
{ { UINT8_C(217), UINT8_C(234), UINT8_C(193), UINT8_C(184), UINT8_C( 76), UINT8_C(123), UINT8_C( 28), UINT8_C(166),
|
|
UINT8_C(214), UINT8_C(210), UINT8_C(155), UINT8_C(248), UINT8_C(210), UINT8_C(156), UINT8_C( 3), UINT8_C(241) },
|
|
{ UINT8_C( 16), UINT8_C(147), UINT8_C( 31), UINT8_C( 52), UINT8_C( 57), UINT8_C(153), UINT8_C(107), UINT8_C(148),
|
|
UINT8_C(249), UINT8_C(246), UINT8_C(219), UINT8_C(119), UINT8_C(229), UINT8_C( 49), UINT8_C(236), UINT8_C(191) },
|
|
{ UINT8_C( 28), UINT8_C(173), UINT8_C(119), UINT8_C(104), UINT8_C( 40), UINT8_C(147), UINT8_C( 14), UINT8_C(254),
|
|
UINT8_C(101), UINT8_C(170), UINT8_C(247), UINT8_C( 55), UINT8_C( 70), UINT8_C(250), UINT8_C( 40), UINT8_C( 86) } },
|
|
{ UINT8_C(217), UINT8_C(234), UINT8_C(193), UINT8_C(184), UINT8_C( 76), UINT8_C(123), UINT8_C( 28), UINT8_C(166),
|
|
UINT8_C(214), UINT8_C(210), UINT8_C(155), UINT8_C(248), UINT8_C(210), UINT8_C(156), UINT8_C( 3), UINT8_C(241),
|
|
UINT8_C( 16), UINT8_C(147), UINT8_C( 31), UINT8_C( 52), UINT8_C( 57), UINT8_C(153), UINT8_C(107), UINT8_C(148),
|
|
UINT8_C(249), UINT8_C(246), UINT8_C(219), UINT8_C(119), UINT8_C(229), UINT8_C( 49), UINT8_C(236), UINT8_C(191),
|
|
UINT8_C( 28), UINT8_C(173), UINT8_C(119), UINT8_C(104), UINT8_C( 40), UINT8_C(147), UINT8_C( 14), UINT8_C(254),
|
|
UINT8_C(101), UINT8_C(170), UINT8_C(247), UINT8_C( 55), UINT8_C( 70), UINT8_C(250), UINT8_C( 40), UINT8_C( 86) } },
|
|
{
|
|
{ { UINT8_C(141), UINT8_C( 71), UINT8_C(138), UINT8_C(198), UINT8_C(224), UINT8_C(245), UINT8_C( 91), UINT8_C(217),
|
|
UINT8_C(236), UINT8_C( 54), UINT8_C( 80), UINT8_C(209), UINT8_C(104), UINT8_C( 60), UINT8_C(144), UINT8_C(132) },
|
|
{ UINT8_C(233), UINT8_C( 7), UINT8_C(236), UINT8_C( 17), UINT8_C(154), UINT8_C(250), UINT8_C( 16), UINT8_MAX,
|
|
UINT8_C(164), UINT8_C( 7), UINT8_C( 54), UINT8_C(234), UINT8_C( 1), UINT8_C( 94), UINT8_C( 65), UINT8_C(142) },
|
|
{ UINT8_C(165), UINT8_C(203), UINT8_C( 84), UINT8_C(133), UINT8_C(193), UINT8_C(175), UINT8_C( 94), UINT8_C(173),
|
|
UINT8_C(230), UINT8_C(174), UINT8_C(126), UINT8_C( 78), UINT8_C(234), UINT8_C( 15), UINT8_C(210), UINT8_C(211) } },
|
|
{ UINT8_C(141), UINT8_C( 71), UINT8_C(138), UINT8_C(198), UINT8_C(224), UINT8_C(245), UINT8_C( 91), UINT8_C(217),
|
|
UINT8_C(236), UINT8_C( 54), UINT8_C( 80), UINT8_C(209), UINT8_C(104), UINT8_C( 60), UINT8_C(144), UINT8_C(132),
|
|
UINT8_C(233), UINT8_C( 7), UINT8_C(236), UINT8_C( 17), UINT8_C(154), UINT8_C(250), UINT8_C( 16), UINT8_MAX,
|
|
UINT8_C(164), UINT8_C( 7), UINT8_C( 54), UINT8_C(234), UINT8_C( 1), UINT8_C( 94), UINT8_C( 65), UINT8_C(142),
|
|
UINT8_C(165), UINT8_C(203), UINT8_C( 84), UINT8_C(133), UINT8_C(193), UINT8_C(175), UINT8_C( 94), UINT8_C(173),
|
|
UINT8_C(230), UINT8_C(174), UINT8_C(126), UINT8_C( 78), UINT8_C(234), UINT8_C( 15), UINT8_C(210), UINT8_C(211) } },
|
|
{
|
|
{ { UINT8_C( 22), UINT8_C(190), UINT8_C(229), UINT8_C(177), UINT8_C(184), UINT8_C(245), UINT8_C(176), UINT8_C( 93),
|
|
UINT8_C(252), UINT8_C(231), UINT8_C( 71), UINT8_C(253), UINT8_C( 69), UINT8_C(136), UINT8_C(139), UINT8_C(235) },
|
|
{ UINT8_C( 84), UINT8_C(223), UINT8_C(112), UINT8_C( 21), UINT8_C(143), UINT8_C(207), UINT8_C(194), UINT8_C(117),
|
|
UINT8_C(125), UINT8_C( 64), UINT8_C(195), UINT8_C(104), UINT8_C( 79), UINT8_C(149), UINT8_C( 59), UINT8_C(102) },
|
|
{ UINT8_C( 83), UINT8_C( 32), UINT8_C( 23), UINT8_C( 11), UINT8_C( 21), UINT8_C(199), UINT8_C(104), UINT8_C( 17),
|
|
UINT8_C(174), UINT8_C(176), UINT8_C( 14), UINT8_C(244), UINT8_C( 56), UINT8_C(153), UINT8_C(223), UINT8_C(140) } },
|
|
{ UINT8_C( 22), UINT8_C(190), UINT8_C(229), UINT8_C(177), UINT8_C(184), UINT8_C(245), UINT8_C(176), UINT8_C( 93),
|
|
UINT8_C(252), UINT8_C(231), UINT8_C( 71), UINT8_C(253), UINT8_C( 69), UINT8_C(136), UINT8_C(139), UINT8_C(235),
|
|
UINT8_C( 84), UINT8_C(223), UINT8_C(112), UINT8_C( 21), UINT8_C(143), UINT8_C(207), UINT8_C(194), UINT8_C(117),
|
|
UINT8_C(125), UINT8_C( 64), UINT8_C(195), UINT8_C(104), UINT8_C( 79), UINT8_C(149), UINT8_C( 59), UINT8_C(102),
|
|
UINT8_C( 83), UINT8_C( 32), UINT8_C( 23), UINT8_C( 11), UINT8_C( 21), UINT8_C(199), UINT8_C(104), UINT8_C( 17),
|
|
UINT8_C(174), UINT8_C(176), UINT8_C( 14), UINT8_C(244), UINT8_C( 56), UINT8_C(153), UINT8_C(223), UINT8_C(140) } },
|
|
{
|
|
{ { UINT8_C(121), UINT8_C( 79), UINT8_C(161), UINT8_C( 8), UINT8_C( 30), UINT8_C( 99), UINT8_C(125), UINT8_C(156),
|
|
UINT8_C(164), UINT8_C( 64), UINT8_C( 4), UINT8_C(243), UINT8_C(213), UINT8_C( 63), UINT8_C( 89), UINT8_C( 40) },
|
|
{ UINT8_C( 96), UINT8_C(112), UINT8_C( 51), UINT8_C(117), UINT8_C( 56), UINT8_C(156), UINT8_C(135), UINT8_C(230),
|
|
UINT8_C( 76), UINT8_C(149), UINT8_C(218), UINT8_C(132), UINT8_C( 47), UINT8_C(185), UINT8_C( 17), UINT8_C(168) },
|
|
{ UINT8_C( 9), UINT8_C(178), UINT8_C(176), UINT8_C( 39), UINT8_C( 22), UINT8_C( 45), UINT8_C(195), UINT8_C(186),
|
|
UINT8_C(109), UINT8_C(199), UINT8_C(173), UINT8_C( 66), UINT8_C( 7), UINT8_C( 7), UINT8_C(106), UINT8_C(103) } },
|
|
{ UINT8_C(121), UINT8_C( 79), UINT8_C(161), UINT8_C( 8), UINT8_C( 30), UINT8_C( 99), UINT8_C(125), UINT8_C(156),
|
|
UINT8_C(164), UINT8_C( 64), UINT8_C( 4), UINT8_C(243), UINT8_C(213), UINT8_C( 63), UINT8_C( 89), UINT8_C( 40),
|
|
UINT8_C( 96), UINT8_C(112), UINT8_C( 51), UINT8_C(117), UINT8_C( 56), UINT8_C(156), UINT8_C(135), UINT8_C(230),
|
|
UINT8_C( 76), UINT8_C(149), UINT8_C(218), UINT8_C(132), UINT8_C( 47), UINT8_C(185), UINT8_C( 17), UINT8_C(168),
|
|
UINT8_C( 9), UINT8_C(178), UINT8_C(176), UINT8_C( 39), UINT8_C( 22), UINT8_C( 45), UINT8_C(195), UINT8_C(186),
|
|
UINT8_C(109), UINT8_C(199), UINT8_C(173), UINT8_C( 66), UINT8_C( 7), UINT8_C( 7), UINT8_C(106), UINT8_C(103) } },
|
|
{
|
|
{ { UINT8_C(119), UINT8_C(157), UINT8_C(220), UINT8_C(175), UINT8_C( 57), UINT8_C( 99), UINT8_C(150), UINT8_C(133),
|
|
UINT8_C(249), UINT8_C(112), UINT8_C( 10), UINT8_C( 40), UINT8_C( 42), UINT8_C( 27), UINT8_C(208), UINT8_C( 51) },
|
|
{ UINT8_C(205), UINT8_C(128), UINT8_C( 90), UINT8_C(227), UINT8_C(173), UINT8_C( 30), UINT8_C(157), UINT8_C( 26),
|
|
UINT8_C(229), UINT8_C( 75), UINT8_C( 92), UINT8_C(236), UINT8_C( 82), UINT8_C(198), UINT8_C( 83), UINT8_C(201) },
|
|
{ UINT8_C( 99), UINT8_C( 48), UINT8_C(121), UINT8_C(157), UINT8_C(147), UINT8_C( 15), UINT8_C( 34), UINT8_C(140),
|
|
UINT8_C(127), UINT8_C( 44), UINT8_C(180), UINT8_C(169), UINT8_C( 71), UINT8_C(132), UINT8_C(220), UINT8_C( 21) } },
|
|
{ UINT8_C(119), UINT8_C(157), UINT8_C(220), UINT8_C(175), UINT8_C( 57), UINT8_C( 99), UINT8_C(150), UINT8_C(133),
|
|
UINT8_C(249), UINT8_C(112), UINT8_C( 10), UINT8_C( 40), UINT8_C( 42), UINT8_C( 27), UINT8_C(208), UINT8_C( 51),
|
|
UINT8_C(205), UINT8_C(128), UINT8_C( 90), UINT8_C(227), UINT8_C(173), UINT8_C( 30), UINT8_C(157), UINT8_C( 26),
|
|
UINT8_C(229), UINT8_C( 75), UINT8_C( 92), UINT8_C(236), UINT8_C( 82), UINT8_C(198), UINT8_C( 83), UINT8_C(201),
|
|
UINT8_C( 99), UINT8_C( 48), UINT8_C(121), UINT8_C(157), UINT8_C(147), UINT8_C( 15), UINT8_C( 34), UINT8_C(140),
|
|
UINT8_C(127), UINT8_C( 44), UINT8_C(180), UINT8_C(169), UINT8_C( 71), UINT8_C(132), UINT8_C(220), UINT8_C( 21) } },
|
|
{
|
|
{ { UINT8_C( 4), UINT8_C( 55), UINT8_C(248), UINT8_C(177), UINT8_C( 85), UINT8_C(150), UINT8_C(203), UINT8_C( 58),
|
|
UINT8_C(225), UINT8_C( 39), UINT8_C( 39), UINT8_C( 51), UINT8_C(237), UINT8_C(122), UINT8_C(252), UINT8_C( 81) },
|
|
{ UINT8_C(170), UINT8_C(117), UINT8_C(238), UINT8_C( 62), UINT8_C(132), UINT8_C( 16), UINT8_C(202), UINT8_C( 4),
|
|
UINT8_C( 61), UINT8_C(127), UINT8_C(173), UINT8_C(132), UINT8_C( 3), UINT8_C(138), UINT8_C(153), UINT8_C( 8) },
|
|
{ UINT8_C(193), UINT8_C(146), UINT8_C(185), UINT8_C( 22), UINT8_C( 40), UINT8_C(133), UINT8_C( 80), UINT8_C( 9),
|
|
UINT8_C(172), UINT8_C(119), UINT8_C( 60), UINT8_C(154), UINT8_C(242), UINT8_C( 56), UINT8_C(235), UINT8_C(156) } },
|
|
{ UINT8_C( 4), UINT8_C( 55), UINT8_C(248), UINT8_C(177), UINT8_C( 85), UINT8_C(150), UINT8_C(203), UINT8_C( 58),
|
|
UINT8_C(225), UINT8_C( 39), UINT8_C( 39), UINT8_C( 51), UINT8_C(237), UINT8_C(122), UINT8_C(252), UINT8_C( 81),
|
|
UINT8_C(170), UINT8_C(117), UINT8_C(238), UINT8_C( 62), UINT8_C(132), UINT8_C( 16), UINT8_C(202), UINT8_C( 4),
|
|
UINT8_C( 61), UINT8_C(127), UINT8_C(173), UINT8_C(132), UINT8_C( 3), UINT8_C(138), UINT8_C(153), UINT8_C( 8),
|
|
UINT8_C(193), UINT8_C(146), UINT8_C(185), UINT8_C( 22), UINT8_C( 40), UINT8_C(133), UINT8_C( 80), UINT8_C( 9),
|
|
UINT8_C(172), UINT8_C(119), UINT8_C( 60), UINT8_C(154), UINT8_C(242), UINT8_C( 56), UINT8_C(235), UINT8_C(156) } },
|
|
{
|
|
{ { UINT8_C(174), UINT8_C(217), UINT8_C(218), UINT8_C( 50), UINT8_C(233), UINT8_C(165), UINT8_C( 54), UINT8_C( 38),
|
|
UINT8_C( 36), UINT8_C(228), UINT8_C(171), UINT8_C( 39), UINT8_C(110), UINT8_C( 68), UINT8_C( 47), UINT8_C( 47) },
|
|
{ UINT8_C(214), UINT8_C(233), UINT8_C( 69), UINT8_C(254), UINT8_C(110), UINT8_C(149), UINT8_C( 7), UINT8_C( 26),
|
|
UINT8_C( 13), UINT8_C( 67), UINT8_C(180), UINT8_MAX, UINT8_C(124), UINT8_C(159), UINT8_C(155), UINT8_C( 42) },
|
|
{ UINT8_C(120), UINT8_C(118), UINT8_C( 92), UINT8_C( 98), UINT8_C( 27), UINT8_C(147), UINT8_C(136), UINT8_C( 63),
|
|
UINT8_C(119), UINT8_C( 51), UINT8_C(102), UINT8_C(229), UINT8_C(120), UINT8_C(150), UINT8_C( 20), UINT8_C( 78) } },
|
|
{ UINT8_C(174), UINT8_C(217), UINT8_C(218), UINT8_C( 50), UINT8_C(233), UINT8_C(165), UINT8_C( 54), UINT8_C( 38),
|
|
UINT8_C( 36), UINT8_C(228), UINT8_C(171), UINT8_C( 39), UINT8_C(110), UINT8_C( 68), UINT8_C( 47), UINT8_C( 47),
|
|
UINT8_C(214), UINT8_C(233), UINT8_C( 69), UINT8_C(254), UINT8_C(110), UINT8_C(149), UINT8_C( 7), UINT8_C( 26),
|
|
UINT8_C( 13), UINT8_C( 67), UINT8_C(180), UINT8_MAX, UINT8_C(124), UINT8_C(159), UINT8_C(155), UINT8_C( 42),
|
|
UINT8_C(120), UINT8_C(118), UINT8_C( 92), UINT8_C( 98), UINT8_C( 27), UINT8_C(147), UINT8_C(136), UINT8_C( 63),
|
|
UINT8_C(119), UINT8_C( 51), UINT8_C(102), UINT8_C(229), UINT8_C(120), UINT8_C(150), UINT8_C( 20), UINT8_C( 78) } },
|
|
{
|
|
{ { UINT8_C(127), UINT8_C( 89), UINT8_C( 77), UINT8_C(237), UINT8_C(238), UINT8_C( 84), UINT8_C( 7), UINT8_C(251),
|
|
UINT8_C(152), UINT8_C(188), UINT8_C(250), UINT8_C( 20), UINT8_C( 91), UINT8_C(150), UINT8_C( 62), UINT8_C(212) },
|
|
{ UINT8_C( 12), UINT8_C(154), UINT8_C( 54), UINT8_C( 39), UINT8_C( 45), UINT8_C(190), UINT8_C(102), UINT8_C(164),
|
|
UINT8_C(242), UINT8_C(204), UINT8_C(137), UINT8_C(106), UINT8_C( 98), UINT8_C(157), UINT8_C(184), UINT8_C(225) },
|
|
{ UINT8_C(246), UINT8_C( 5), UINT8_C(206), UINT8_C(229), UINT8_C( 90), UINT8_C(214), UINT8_C(224), UINT8_C(242),
|
|
UINT8_C(146), UINT8_C(219), UINT8_C( 6), UINT8_C(237), UINT8_C(113), UINT8_C( 68), UINT8_C(193), UINT8_C(125) } },
|
|
{ UINT8_C(127), UINT8_C( 89), UINT8_C( 77), UINT8_C(237), UINT8_C(238), UINT8_C( 84), UINT8_C( 7), UINT8_C(251),
|
|
UINT8_C(152), UINT8_C(188), UINT8_C(250), UINT8_C( 20), UINT8_C( 91), UINT8_C(150), UINT8_C( 62), UINT8_C(212),
|
|
UINT8_C( 12), UINT8_C(154), UINT8_C( 54), UINT8_C( 39), UINT8_C( 45), UINT8_C(190), UINT8_C(102), UINT8_C(164),
|
|
UINT8_C(242), UINT8_C(204), UINT8_C(137), UINT8_C(106), UINT8_C( 98), UINT8_C(157), UINT8_C(184), UINT8_C(225),
|
|
UINT8_C(246), UINT8_C( 5), UINT8_C(206), UINT8_C(229), UINT8_C( 90), UINT8_C(214), UINT8_C(224), UINT8_C(242),
|
|
UINT8_C(146), UINT8_C(219), UINT8_C( 6), UINT8_C(237), UINT8_C(113), UINT8_C( 68), UINT8_C(193), UINT8_C(125) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_uint8x16x3_t r_ = { { simde_vld1q_u8(test_vec[i].r[0]),
|
|
simde_vld1q_u8(test_vec[i].r[1]),
|
|
simde_vld1q_u8(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 uint8_t a_[48];
|
|
simde_vst1q_u8_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_uint8x16_t a = simde_test_arm_neon_random_u8x16();
|
|
simde_uint8x16_t b = simde_test_arm_neon_random_u8x16();
|
|
simde_uint8x16_t c = simde_test_arm_neon_random_u8x16();
|
|
simde_uint8x16x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_u8x16x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
uint8_t buf[48];
|
|
simde_vst1q_u8_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vu8(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_u16_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
uint16_t r[3][8];
|
|
uint16_t a[24];
|
|
} test_vec[] = {
|
|
{
|
|
{ { UINT16_C(63454), UINT16_C( 3236), UINT16_C( 2742), UINT16_C(43184), UINT16_C(15062), UINT16_C(14610), UINT16_C(51927), UINT16_C(52762) },
|
|
{ UINT16_C(59856), UINT16_C(10931), UINT16_C(37823), UINT16_C(20764), UINT16_C( 8814), UINT16_C(57150), UINT16_C( 102), UINT16_C(17500) },
|
|
{ UINT16_C( 247), UINT16_C(44368), UINT16_C( 266), UINT16_C(57685), UINT16_C(26427), UINT16_C( 4634), UINT16_C(13362), UINT16_C( 736) } },
|
|
{ UINT16_C(63454), UINT16_C( 3236), UINT16_C( 2742), UINT16_C(43184), UINT16_C(15062), UINT16_C(14610), UINT16_C(51927), UINT16_C(52762),
|
|
UINT16_C(59856), UINT16_C(10931), UINT16_C(37823), UINT16_C(20764), UINT16_C( 8814), UINT16_C(57150), UINT16_C( 102), UINT16_C(17500),
|
|
UINT16_C( 247), UINT16_C(44368), UINT16_C( 266), UINT16_C(57685), UINT16_C(26427), UINT16_C( 4634), UINT16_C(13362), UINT16_C( 736) } },
|
|
{
|
|
{ { UINT16_C(37661), UINT16_C(56364), UINT16_C(18471), UINT16_C(38189), UINT16_C(27754), UINT16_C(53365), UINT16_C(53612), UINT16_C(25364) },
|
|
{ UINT16_C(26066), UINT16_C(56337), UINT16_C(26214), UINT16_C(41405), UINT16_C(55246), UINT16_C( 179), UINT16_C(37900), UINT16_C(10498) },
|
|
{ UINT16_C(11815), UINT16_C(19974), UINT16_C(13174), UINT16_C(57572), UINT16_C(22943), UINT16_C( 2992), UINT16_C(50218), UINT16_C(64623) } },
|
|
{ UINT16_C(37661), UINT16_C(56364), UINT16_C(18471), UINT16_C(38189), UINT16_C(27754), UINT16_C(53365), UINT16_C(53612), UINT16_C(25364),
|
|
UINT16_C(26066), UINT16_C(56337), UINT16_C(26214), UINT16_C(41405), UINT16_C(55246), UINT16_C( 179), UINT16_C(37900), UINT16_C(10498),
|
|
UINT16_C(11815), UINT16_C(19974), UINT16_C(13174), UINT16_C(57572), UINT16_C(22943), UINT16_C( 2992), UINT16_C(50218), UINT16_C(64623) } },
|
|
{
|
|
{ { UINT16_C(32809), UINT16_C(36825), UINT16_C(38630), UINT16_C(46128), UINT16_C(58478), UINT16_C(31412), UINT16_C(46712), UINT16_C(40867) },
|
|
{ UINT16_C(43492), UINT16_C(23278), UINT16_C(53981), UINT16_C(31802), UINT16_C(59947), UINT16_C(21896), UINT16_C(63407), UINT16_C(55378) },
|
|
{ UINT16_C(11127), UINT16_C(23912), UINT16_C(39105), UINT16_C(12050), UINT16_C(50812), UINT16_C(62633), UINT16_C(19837), UINT16_C(24980) } },
|
|
{ UINT16_C(32809), UINT16_C(36825), UINT16_C(38630), UINT16_C(46128), UINT16_C(58478), UINT16_C(31412), UINT16_C(46712), UINT16_C(40867),
|
|
UINT16_C(43492), UINT16_C(23278), UINT16_C(53981), UINT16_C(31802), UINT16_C(59947), UINT16_C(21896), UINT16_C(63407), UINT16_C(55378),
|
|
UINT16_C(11127), UINT16_C(23912), UINT16_C(39105), UINT16_C(12050), UINT16_C(50812), UINT16_C(62633), UINT16_C(19837), UINT16_C(24980) } },
|
|
{
|
|
{ { UINT16_C(33526), UINT16_C(54204), UINT16_C(63060), UINT16_C(32592), UINT16_C(55521), UINT16_C(37076), UINT16_C( 9935), UINT16_C(18024) },
|
|
{ UINT16_C(53329), UINT16_C( 5027), UINT16_C(46441), UINT16_C(58690), UINT16_C(60540), UINT16_C(63962), UINT16_C(28217), UINT16_C(12122) },
|
|
{ UINT16_C( 5872), UINT16_C(17411), UINT16_C(21261), UINT16_C(61123), UINT16_C(38699), UINT16_C(64126), UINT16_C(59070), UINT16_C( 3904) } },
|
|
{ UINT16_C(33526), UINT16_C(54204), UINT16_C(63060), UINT16_C(32592), UINT16_C(55521), UINT16_C(37076), UINT16_C( 9935), UINT16_C(18024),
|
|
UINT16_C(53329), UINT16_C( 5027), UINT16_C(46441), UINT16_C(58690), UINT16_C(60540), UINT16_C(63962), UINT16_C(28217), UINT16_C(12122),
|
|
UINT16_C( 5872), UINT16_C(17411), UINT16_C(21261), UINT16_C(61123), UINT16_C(38699), UINT16_C(64126), UINT16_C(59070), UINT16_C( 3904) } },
|
|
{
|
|
{ { UINT16_C(58295), UINT16_C( 8226), UINT16_C(26009), UINT16_C( 5381), UINT16_C(57169), UINT16_C(35342), UINT16_C(26701), UINT16_C(15801) },
|
|
{ UINT16_C(48255), UINT16_C(35969), UINT16_C(17423), UINT16_C(14970), UINT16_C(63708), UINT16_C(39476), UINT16_C(29918), UINT16_C(38313) },
|
|
{ UINT16_C(52312), UINT16_C(61877), UINT16_C(47921), UINT16_C(33286), UINT16_C( 5274), UINT16_C(59404), UINT16_C(50556), UINT16_C(64293) } },
|
|
{ UINT16_C(58295), UINT16_C( 8226), UINT16_C(26009), UINT16_C( 5381), UINT16_C(57169), UINT16_C(35342), UINT16_C(26701), UINT16_C(15801),
|
|
UINT16_C(48255), UINT16_C(35969), UINT16_C(17423), UINT16_C(14970), UINT16_C(63708), UINT16_C(39476), UINT16_C(29918), UINT16_C(38313),
|
|
UINT16_C(52312), UINT16_C(61877), UINT16_C(47921), UINT16_C(33286), UINT16_C( 5274), UINT16_C(59404), UINT16_C(50556), UINT16_C(64293) } },
|
|
{
|
|
{ { UINT16_C(42882), UINT16_C(37255), UINT16_C( 491), UINT16_C(51148), UINT16_C( 249), UINT16_C(55393), UINT16_C( 2933), UINT16_C(52589) },
|
|
{ UINT16_C( 9175), UINT16_C( 2238), UINT16_C(50398), UINT16_C(30858), UINT16_C(38616), UINT16_C(21600), UINT16_C(34395), UINT16_C(56656) },
|
|
{ UINT16_C(55085), UINT16_C( 6255), UINT16_C(15321), UINT16_C(53984), UINT16_C(16699), UINT16_C(45226), UINT16_C( 6220), UINT16_C( 9085) } },
|
|
{ UINT16_C(42882), UINT16_C(37255), UINT16_C( 491), UINT16_C(51148), UINT16_C( 249), UINT16_C(55393), UINT16_C( 2933), UINT16_C(52589),
|
|
UINT16_C( 9175), UINT16_C( 2238), UINT16_C(50398), UINT16_C(30858), UINT16_C(38616), UINT16_C(21600), UINT16_C(34395), UINT16_C(56656),
|
|
UINT16_C(55085), UINT16_C( 6255), UINT16_C(15321), UINT16_C(53984), UINT16_C(16699), UINT16_C(45226), UINT16_C( 6220), UINT16_C( 9085) } },
|
|
{
|
|
{ { UINT16_C(15163), UINT16_C( 6443), UINT16_C(46591), UINT16_C(55185), UINT16_C(62027), UINT16_C(42796), UINT16_C(31864), UINT16_C(42372) },
|
|
{ UINT16_C(62291), UINT16_C(11453), UINT16_C(40238), UINT16_C(27391), UINT16_C(43487), UINT16_C(11034), UINT16_C(39105), UINT16_C(64591) },
|
|
{ UINT16_C(31443), UINT16_C(54037), UINT16_C(42800), UINT16_C(31658), UINT16_C(54937), UINT16_C( 4386), UINT16_C(42834), UINT16_C(42678) } },
|
|
{ UINT16_C(15163), UINT16_C( 6443), UINT16_C(46591), UINT16_C(55185), UINT16_C(62027), UINT16_C(42796), UINT16_C(31864), UINT16_C(42372),
|
|
UINT16_C(62291), UINT16_C(11453), UINT16_C(40238), UINT16_C(27391), UINT16_C(43487), UINT16_C(11034), UINT16_C(39105), UINT16_C(64591),
|
|
UINT16_C(31443), UINT16_C(54037), UINT16_C(42800), UINT16_C(31658), UINT16_C(54937), UINT16_C( 4386), UINT16_C(42834), UINT16_C(42678) } },
|
|
{
|
|
{ { UINT16_C(29594), UINT16_C(51666), UINT16_C(53521), UINT16_C(61491), UINT16_C(19835), UINT16_C(15387), UINT16_C(27365), UINT16_C(47417) },
|
|
{ UINT16_C(20197), UINT16_C( 5516), UINT16_C(14069), UINT16_C(36496), UINT16_C(45837), UINT16_C(24479), UINT16_C(21850), UINT16_C(62469) },
|
|
{ UINT16_C(55497), UINT16_C(55997), UINT16_C(61609), UINT16_C( 9418), UINT16_C(58686), UINT16_C( 9057), UINT16_C(39504), UINT16_C(13788) } },
|
|
{ UINT16_C(29594), UINT16_C(51666), UINT16_C(53521), UINT16_C(61491), UINT16_C(19835), UINT16_C(15387), UINT16_C(27365), UINT16_C(47417),
|
|
UINT16_C(20197), UINT16_C( 5516), UINT16_C(14069), UINT16_C(36496), UINT16_C(45837), UINT16_C(24479), UINT16_C(21850), UINT16_C(62469),
|
|
UINT16_C(55497), UINT16_C(55997), UINT16_C(61609), UINT16_C( 9418), UINT16_C(58686), UINT16_C( 9057), UINT16_C(39504), UINT16_C(13788) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_uint16x8x3_t r_ = { { simde_vld1q_u16(test_vec[i].r[0]),
|
|
simde_vld1q_u16(test_vec[i].r[1]),
|
|
simde_vld1q_u16(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 uint16_t a_[24];
|
|
simde_vst1q_u16_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_uint16x8_t a = simde_test_arm_neon_random_u16x8();
|
|
simde_uint16x8_t b = simde_test_arm_neon_random_u16x8();
|
|
simde_uint16x8_t c = simde_test_arm_neon_random_u16x8();
|
|
simde_uint16x8x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_u16x8x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
uint16_t buf[24];
|
|
simde_vst1q_u16_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vu16(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_u32_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
uint32_t r[3][4];
|
|
uint32_t a[12];
|
|
} test_vec[] = {
|
|
{
|
|
{ { UINT32_C(3729418472), UINT32_C(2892815007), UINT32_C(3876261005), UINT32_C( 719065441) },
|
|
{ UINT32_C(2449775081), UINT32_C(3367489162), UINT32_C( 82516148), UINT32_C(2587478194) },
|
|
{ UINT32_C(3480781616), UINT32_C(3950765405), UINT32_C(1389529073), UINT32_C(2172497560) } },
|
|
{ UINT32_C(3729418472), UINT32_C(2892815007), UINT32_C(3876261005), UINT32_C( 719065441), UINT32_C(2449775081), UINT32_C(3367489162), UINT32_C( 82516148), UINT32_C(2587478194),
|
|
UINT32_C(3480781616), UINT32_C(3950765405), UINT32_C(1389529073), UINT32_C(2172497560) } },
|
|
{
|
|
{ { UINT32_C(3524493640), UINT32_C( 77253200), UINT32_C(2483586530), UINT32_C(2117026125) },
|
|
{ UINT32_C( 558737348), UINT32_C(2097990028), UINT32_C(3906002768), UINT32_C(3580448141) },
|
|
{ UINT32_C( 514292942), UINT32_C( 690110791), UINT32_C( 348007111), UINT32_C( 798158187) } },
|
|
{ UINT32_C(3524493640), UINT32_C( 77253200), UINT32_C(2483586530), UINT32_C(2117026125), UINT32_C( 558737348), UINT32_C(2097990028), UINT32_C(3906002768), UINT32_C(3580448141),
|
|
UINT32_C( 514292942), UINT32_C( 690110791), UINT32_C( 348007111), UINT32_C( 798158187) } },
|
|
{
|
|
{ { UINT32_C( 559014036), UINT32_C(4187905449), UINT32_C(3403771452), UINT32_C(2325695163) },
|
|
{ UINT32_C( 229132230), UINT32_C(1329056648), UINT32_C(1634006517), UINT32_C(1989211874) },
|
|
{ UINT32_C(2140660182), UINT32_C(2071475775), UINT32_C(1615157668), UINT32_C(1793779107) } },
|
|
{ UINT32_C( 559014036), UINT32_C(4187905449), UINT32_C(3403771452), UINT32_C(2325695163), UINT32_C( 229132230), UINT32_C(1329056648), UINT32_C(1634006517), UINT32_C(1989211874),
|
|
UINT32_C(2140660182), UINT32_C(2071475775), UINT32_C(1615157668), UINT32_C(1793779107) } },
|
|
{
|
|
{ { UINT32_C(3027735084), UINT32_C(1392815709), UINT32_C(2243192995), UINT32_C( 905725022) },
|
|
{ UINT32_C(1706332966), UINT32_C(1860185545), UINT32_C( 718153350), UINT32_C( 932493323) },
|
|
{ UINT32_C(2833976138), UINT32_C(1576791994), UINT32_C(3068374871), UINT32_C( 434888691) } },
|
|
{ UINT32_C(3027735084), UINT32_C(1392815709), UINT32_C(2243192995), UINT32_C( 905725022), UINT32_C(1706332966), UINT32_C(1860185545), UINT32_C( 718153350), UINT32_C( 932493323),
|
|
UINT32_C(2833976138), UINT32_C(1576791994), UINT32_C(3068374871), UINT32_C( 434888691) } },
|
|
{
|
|
{ { UINT32_C(1014931314), UINT32_C(1403674572), UINT32_C(2424141957), UINT32_C(2059866416) },
|
|
{ UINT32_C(3592598044), UINT32_C(4180942242), UINT32_C(3232700364), UINT32_C(1759091446) },
|
|
{ UINT32_C( 111433786), UINT32_C(1012485815), UINT32_C(4140619462), UINT32_C( 74552295) } },
|
|
{ UINT32_C(1014931314), UINT32_C(1403674572), UINT32_C(2424141957), UINT32_C(2059866416), UINT32_C(3592598044), UINT32_C(4180942242), UINT32_C(3232700364), UINT32_C(1759091446),
|
|
UINT32_C( 111433786), UINT32_C(1012485815), UINT32_C(4140619462), UINT32_C( 74552295) } },
|
|
{
|
|
{ { UINT32_C(3889861445), UINT32_C(2111901361), UINT32_C( 457019429), UINT32_C(1703155499) },
|
|
{ UINT32_C( 644556911), UINT32_C(1029883255), UINT32_C(2201235099), UINT32_C( 109553089) },
|
|
{ UINT32_C(3924713784), UINT32_C(2506608496), UINT32_C(2326897759), UINT32_C( 720319931) } },
|
|
{ UINT32_C(3889861445), UINT32_C(2111901361), UINT32_C( 457019429), UINT32_C(1703155499), UINT32_C( 644556911), UINT32_C(1029883255), UINT32_C(2201235099), UINT32_C( 109553089),
|
|
UINT32_C(3924713784), UINT32_C(2506608496), UINT32_C(2326897759), UINT32_C( 720319931) } },
|
|
{
|
|
{ { UINT32_C(3562036061), UINT32_C(3138564640), UINT32_C(2705213152), UINT32_C( 598263275) },
|
|
{ UINT32_C(2534250023), UINT32_C(3291247717), UINT32_C(3562003736), UINT32_C(1895710226) },
|
|
{ UINT32_C(3108261785), UINT32_C(3799340545), UINT32_C(2273555356), UINT32_C(2695572345) } },
|
|
{ UINT32_C(3562036061), UINT32_C(3138564640), UINT32_C(2705213152), UINT32_C( 598263275), UINT32_C(2534250023), UINT32_C(3291247717), UINT32_C(3562003736), UINT32_C(1895710226),
|
|
UINT32_C(3108261785), UINT32_C(3799340545), UINT32_C(2273555356), UINT32_C(2695572345) } },
|
|
{
|
|
{ { UINT32_C( 641185985), UINT32_C(1156277036), UINT32_C(1394096705), UINT32_C( 314775416) },
|
|
{ UINT32_C(1741359206), UINT32_C(4215881822), UINT32_C(1837288948), UINT32_C(3121425912) },
|
|
{ UINT32_C( 299910373), UINT32_C(3898002343), UINT32_C(2117889541), UINT32_C(3952148357) } },
|
|
{ UINT32_C( 641185985), UINT32_C(1156277036), UINT32_C(1394096705), UINT32_C( 314775416), UINT32_C(1741359206), UINT32_C(4215881822), UINT32_C(1837288948), UINT32_C(3121425912),
|
|
UINT32_C( 299910373), UINT32_C(3898002343), UINT32_C(2117889541), UINT32_C(3952148357) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_uint32x4x3_t r_ = { { simde_vld1q_u32(test_vec[i].r[0]),
|
|
simde_vld1q_u32(test_vec[i].r[1]),
|
|
simde_vld1q_u32(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 uint32_t a_[12];
|
|
simde_vst1q_u32_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_uint32x4_t a = simde_test_arm_neon_random_u32x4();
|
|
simde_uint32x4_t b = simde_test_arm_neon_random_u32x4();
|
|
simde_uint32x4_t c = simde_test_arm_neon_random_u32x4();
|
|
simde_uint32x4x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_u32x4x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
uint32_t buf[12];
|
|
simde_vst1q_u32_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vu32(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_u64_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
uint64_t r[3][2];
|
|
uint64_t a[6];
|
|
} test_vec[] = {
|
|
{
|
|
{ { UINT64_C(10403768809748126471), UINT64_C(17734060502469698409) },
|
|
{ UINT64_C(14834398439802469454), UINT64_C( 2395311478632291020) },
|
|
{ UINT64_C(10836760411903594551), UINT64_C(13318010972271042763) } },
|
|
{ UINT64_C(10403768809748126471), UINT64_C(17734060502469698409), UINT64_C(14834398439802469454), UINT64_C( 2395311478632291020),
|
|
UINT64_C(10836760411903594551), UINT64_C(13318010972271042763) } },
|
|
{
|
|
{ { UINT64_C( 407165896905054993), UINT64_C( 351445481845944997) },
|
|
{ UINT64_C( 1939145226926384933), UINT64_C( 557543611881218458) },
|
|
{ UINT64_C(11232970286156507813), UINT64_C(17675004353776860024) } },
|
|
{ UINT64_C( 407165896905054993), UINT64_C( 351445481845944997), UINT64_C( 1939145226926384933), UINT64_C( 557543611881218458),
|
|
UINT64_C(11232970286156507813), UINT64_C(17675004353776860024) } },
|
|
{
|
|
{ { UINT64_C(17801094752373318305), UINT64_C( 8074875839067128082) },
|
|
{ UINT64_C(17199865409659924258), UINT64_C(16659517911248145517) },
|
|
{ UINT64_C(13759871989849750177), UINT64_C(14564595739931373795) } },
|
|
{ UINT64_C(17801094752373318305), UINT64_C( 8074875839067128082), UINT64_C(17199865409659924258), UINT64_C(16659517911248145517),
|
|
UINT64_C(13759871989849750177), UINT64_C(14564595739931373795) } },
|
|
{
|
|
{ { UINT64_C( 948734087435218629), UINT64_C( 9137377986491342496) },
|
|
{ UINT64_C( 7737307891966453495), UINT64_C(14038347846904325984) },
|
|
{ UINT64_C(16741331480747095208), UINT64_C( 1360823877911945094) } },
|
|
{ UINT64_C( 948734087435218629), UINT64_C( 9137377986491342496), UINT64_C( 7737307891966453495), UINT64_C(14038347846904325984),
|
|
UINT64_C(16741331480747095208), UINT64_C( 1360823877911945094) } },
|
|
{
|
|
{ { UINT64_C( 3402212025738550852), UINT64_C( 3817938181475029564) },
|
|
{ UINT64_C(12173178261873687230), UINT64_C(11573951273137651312) },
|
|
{ UINT64_C(11911075881548534605), UINT64_C( 5599903492297622774) } },
|
|
{ UINT64_C( 3402212025738550852), UINT64_C( 3817938181475029564), UINT64_C(12173178261873687230), UINT64_C(11573951273137651312),
|
|
UINT64_C(11911075881548534605), UINT64_C( 5599903492297622774) } },
|
|
{
|
|
{ { UINT64_C( 8331450420443689684), UINT64_C(16789028647699655425) },
|
|
{ UINT64_C( 359531567795956463), UINT64_C( 9993554327186627540) },
|
|
{ UINT64_C( 5180300958306993006), UINT64_C( 8020526654460060619) } },
|
|
{ UINT64_C( 8331450420443689684), UINT64_C(16789028647699655425), UINT64_C( 359531567795956463), UINT64_C( 9993554327186627540),
|
|
UINT64_C( 5180300958306993006), UINT64_C( 8020526654460060619) } },
|
|
{
|
|
{ { UINT64_C( 8584077094592926221), UINT64_C( 5899868220857951903) },
|
|
{ UINT64_C( 5484161147315904910), UINT64_C( 8032451831478271882) },
|
|
{ UINT64_C(11776255538936561747), UINT64_C( 6955204696398710865) } },
|
|
{ UINT64_C( 8584077094592926221), UINT64_C( 5899868220857951903), UINT64_C( 5484161147315904910), UINT64_C( 8032451831478271882),
|
|
UINT64_C(11776255538936561747), UINT64_C( 6955204696398710865) } },
|
|
{
|
|
{ { UINT64_C( 8793084692815693882), UINT64_C( 1000078094486518287) },
|
|
{ UINT64_C( 7414456697634384445), UINT64_C(17432343130826006201) },
|
|
{ UINT64_C( 9210621483031470184), UINT64_C(10535555963185813357) } },
|
|
{ UINT64_C( 8793084692815693882), UINT64_C( 1000078094486518287), UINT64_C( 7414456697634384445), UINT64_C(17432343130826006201),
|
|
UINT64_C( 9210621483031470184), UINT64_C(10535555963185813357) } },
|
|
};
|
|
|
|
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
|
|
simde_uint64x2x3_t r_ = { { simde_vld1q_u64(test_vec[i].r[0]),
|
|
simde_vld1q_u64(test_vec[i].r[1]),
|
|
simde_vld1q_u64(test_vec[i].r[2]) } };
|
|
|
|
SIMDE_ALIGN_TO_16 uint64_t a_[6];
|
|
simde_vst1q_u64_x3(a_, r_);
|
|
|
|
simde_assert_equal_i(0, simde_memcmp(a_, test_vec[i].a, sizeof(test_vec[i].a)));
|
|
}
|
|
|
|
return 0;
|
|
#else
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_uint64x2_t a = simde_test_arm_neon_random_u64x2();
|
|
simde_uint64x2_t b = simde_test_arm_neon_random_u64x2();
|
|
simde_uint64x2_t c = simde_test_arm_neon_random_u64x2();
|
|
simde_uint64x2x3_t d = {{a, b, c}};
|
|
|
|
simde_test_arm_neon_write_u64x2x3(2, d, SIMDE_TEST_VEC_POS_FIRST);
|
|
|
|
uint64_t buf[6];
|
|
simde_vst1q_u64_x3(buf, d);
|
|
|
|
simde_test_codegen_write_vu64(2, sizeof(buf) / sizeof(buf[0]), buf,
|
|
SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_p8_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
SIMDE_ALIGN_TO_16 simde_poly8_t val[3][16];
|
|
SIMDE_ALIGN_TO_16 simde_poly8_t r[48];
|
|
} test_vec[] = {
|
|
{ { { SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 211), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 105),
|
|
SIMDE_POLY8_C( 240), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 8),
|
|
SIMDE_POLY8_C( 195), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 10),
|
|
SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 227), SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 194) },
|
|
{ SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 25),
|
|
SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 228), SIMDE_POLY8_C( 247),
|
|
SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 234), SIMDE_POLY8_C( 45),
|
|
SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 26) },
|
|
{ SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 15),
|
|
SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 171),
|
|
SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 238), SIMDE_POLY8_C( 23),
|
|
SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 119) } },
|
|
{ SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 211), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 105),
|
|
SIMDE_POLY8_C( 240), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 8),
|
|
SIMDE_POLY8_C( 195), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 10),
|
|
SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 227), SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 194),
|
|
SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 25),
|
|
SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 228), SIMDE_POLY8_C( 247),
|
|
SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 234), SIMDE_POLY8_C( 45),
|
|
SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 26),
|
|
SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 15),
|
|
SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 171),
|
|
SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 238), SIMDE_POLY8_C( 23),
|
|
SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 119) } },
|
|
{ { { SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 188),
|
|
SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 186),
|
|
SIMDE_POLY8_C( 155), SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 185),
|
|
SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 153), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 116) },
|
|
{ SIMDE_POLY8_C( 124), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 137),
|
|
SIMDE_POLY8_C( 190), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 143),
|
|
SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 103), SIMDE_POLY8_C( 35),
|
|
SIMDE_POLY8_C( 119), SIMDE_POLY8_C( 162), SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 29) },
|
|
{ SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 30),
|
|
SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 198),
|
|
SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 199),
|
|
SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 127) } },
|
|
{ SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 188),
|
|
SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 186),
|
|
SIMDE_POLY8_C( 155), SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 185),
|
|
SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 153), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 116),
|
|
SIMDE_POLY8_C( 124), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 137),
|
|
SIMDE_POLY8_C( 190), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 143),
|
|
SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 103), SIMDE_POLY8_C( 35),
|
|
SIMDE_POLY8_C( 119), SIMDE_POLY8_C( 162), SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 29),
|
|
SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 30),
|
|
SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 198),
|
|
SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 199),
|
|
SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 127) } },
|
|
{ { { SIMDE_POLY8_C( 194), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 143),
|
|
SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 167),
|
|
SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 115),
|
|
SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 199) },
|
|
{ SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 126),
|
|
SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 175), SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 115),
|
|
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 242), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 9),
|
|
SIMDE_POLY8_C( 4), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 77) },
|
|
{ SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 234),
|
|
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 0),
|
|
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 159), SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 114),
|
|
SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 156), SIMDE_POLY8_C(UINT8_MAX) } },
|
|
{ SIMDE_POLY8_C( 194), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 143),
|
|
SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 167),
|
|
SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 115),
|
|
SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 199),
|
|
SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 126),
|
|
SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 175), SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 115),
|
|
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 242), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 9),
|
|
SIMDE_POLY8_C( 4), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 77),
|
|
SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 234),
|
|
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 0),
|
|
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 159), SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 114),
|
|
SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 156), SIMDE_POLY8_C(UINT8_MAX) } },
|
|
{ { { SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 231),
|
|
SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 74),
|
|
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 59),
|
|
SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 187), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 32) },
|
|
{ SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 161),
|
|
SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 164),
|
|
SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 170),
|
|
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 46) },
|
|
{ SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 237), SIMDE_POLY8_C( 56),
|
|
SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 124), SIMDE_POLY8_C( 158),
|
|
SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 86),
|
|
SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 49) } },
|
|
{ SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 231),
|
|
SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 74),
|
|
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 59),
|
|
SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 187), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 32),
|
|
SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 161),
|
|
SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 164),
|
|
SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 170),
|
|
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 46),
|
|
SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 237), SIMDE_POLY8_C( 56),
|
|
SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 124), SIMDE_POLY8_C( 158),
|
|
SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 86),
|
|
SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 49) } },
|
|
{ { { SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 249), SIMDE_POLY8_C( 136),
|
|
SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 179), SIMDE_POLY8_C( 81),
|
|
SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 39),
|
|
SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 133), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 79) },
|
|
{ SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 223), SIMDE_POLY8_C( 124),
|
|
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 103), SIMDE_POLY8_C( 116),
|
|
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 24),
|
|
SIMDE_POLY8_C( 213), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 218) },
|
|
{ SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 104),
|
|
SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 231),
|
|
SIMDE_POLY8_C( 161), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 100), SIMDE_POLY8_C( 244),
|
|
SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 40) } },
|
|
{ SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 249), SIMDE_POLY8_C( 136),
|
|
SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 179), SIMDE_POLY8_C( 81),
|
|
SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 39),
|
|
SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 133), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 79),
|
|
SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 223), SIMDE_POLY8_C( 124),
|
|
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 103), SIMDE_POLY8_C( 116),
|
|
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 24),
|
|
SIMDE_POLY8_C( 213), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 218),
|
|
SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 104),
|
|
SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 231),
|
|
SIMDE_POLY8_C( 161), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 100), SIMDE_POLY8_C( 244),
|
|
SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 40) } },
|
|
{ { { SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 120),
|
|
SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 30),
|
|
SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 205), SIMDE_POLY8_C( 178), SIMDE_POLY8_C( 179),
|
|
SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 158), SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 254) },
|
|
{ SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 234),
|
|
SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 243),
|
|
SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 127),
|
|
SIMDE_POLY8_C( 210), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 207), SIMDE_POLY8_C( 203) },
|
|
{ SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(UINT8_MAX),
|
|
SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 167), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 19),
|
|
SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 98),
|
|
SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 241) } },
|
|
{ SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 120),
|
|
SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 30),
|
|
SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 205), SIMDE_POLY8_C( 178), SIMDE_POLY8_C( 179),
|
|
SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 158), SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 254),
|
|
SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 234),
|
|
SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 243),
|
|
SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 127),
|
|
SIMDE_POLY8_C( 210), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 207), SIMDE_POLY8_C( 203),
|
|
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(UINT8_MAX),
|
|
SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 167), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 19),
|
|
SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 98),
|
|
SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 241) } },
|
|
{ { { SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 114),
|
|
SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 166),
|
|
SIMDE_POLY8_C( 133), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 214),
|
|
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 233) },
|
|
{ SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 238), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 209),
|
|
SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 168), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 214),
|
|
SIMDE_POLY8_C( 122), SIMDE_POLY8_C( 148), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 106),
|
|
SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 205), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 123) },
|
|
{ SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 120), SIMDE_POLY8_C( 232),
|
|
SIMDE_POLY8_C( 142), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 162), SIMDE_POLY8_C( 251),
|
|
SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 17),
|
|
SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 179), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 10) } },
|
|
{ SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 114),
|
|
SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 166),
|
|
SIMDE_POLY8_C( 133), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 214),
|
|
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 233),
|
|
SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 238), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 209),
|
|
SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 168), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 214),
|
|
SIMDE_POLY8_C( 122), SIMDE_POLY8_C( 148), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 106),
|
|
SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 205), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 123),
|
|
SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 120), SIMDE_POLY8_C( 232),
|
|
SIMDE_POLY8_C( 142), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 162), SIMDE_POLY8_C( 251),
|
|
SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 17),
|
|
SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 179), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 10) } },
|
|
{ { { SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 176), SIMDE_POLY8_C( 247),
|
|
SIMDE_POLY8_C( 104), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 237),
|
|
SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 159),
|
|
SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 210), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 74) },
|
|
{ SIMDE_POLY8_C( 175), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 24),
|
|
SIMDE_POLY8_C( 233), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 62),
|
|
SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 244), SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 177),
|
|
SIMDE_POLY8_C( 210), SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 39) },
|
|
{ SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 185),
|
|
SIMDE_POLY8_C( 252), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 243),
|
|
SIMDE_POLY8_C( 189), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 198),
|
|
SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 145), SIMDE_POLY8_C( 154) } },
|
|
{ SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 176), SIMDE_POLY8_C( 247),
|
|
SIMDE_POLY8_C( 104), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 237),
|
|
SIMDE_POLY8_C( 164), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 159),
|
|
SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 210), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 74),
|
|
SIMDE_POLY8_C( 175), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 24),
|
|
SIMDE_POLY8_C( 233), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 62),
|
|
SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 244), SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 177),
|
|
SIMDE_POLY8_C( 210), SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 39),
|
|
SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 185),
|
|
SIMDE_POLY8_C( 252), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 243),
|
|
SIMDE_POLY8_C( 189), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 198),
|
|
SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 145), SIMDE_POLY8_C( 154) } },
|
|
};
|
|
|
|
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
|
|
SIMDE_ALIGN_TO_16 simde_poly8x16x3_t val = {{
|
|
simde_vld1q_p8(test_vec[i].val[0]),
|
|
simde_vld1q_p8(test_vec[i].val[1]),
|
|
simde_vld1q_p8(test_vec[i].val[2]),
|
|
}};
|
|
SIMDE_ALIGN_TO_16 simde_poly8_t r_[48];
|
|
simde_vst1q_p8_x3(r_, val);
|
|
simde_assert_equal_i(0, simde_memcmp(r_, test_vec[i].r, sizeof(test_vec[i].r)));
|
|
}
|
|
|
|
return 0;
|
|
|
|
#else
|
|
fputc('\n', stdout);
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_poly8x3_t val[3] = simde_test_arm_neon_random_p8x3();
|
|
simde_poly8x48_t r = simde_vst1q_p8_x3(val[3]);
|
|
|
|
simde_test_arm_neon_write_p8x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST);
|
|
simde_test_arm_neon_write_p8x48(2, r, SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_p16_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
SIMDE_ALIGN_TO_16 simde_poly16_t val[3][8];
|
|
SIMDE_ALIGN_TO_16 simde_poly16_t r[24];
|
|
} test_vec[] = {
|
|
{ { { SIMDE_POLY16_C( 21107), SIMDE_POLY16_C( 4607), SIMDE_POLY16_C( 64052), SIMDE_POLY16_C( 5779),
|
|
SIMDE_POLY16_C( 43904), SIMDE_POLY16_C( 7898), SIMDE_POLY16_C( 55020), SIMDE_POLY16_C( 28189) },
|
|
{ SIMDE_POLY16_C( 40116), SIMDE_POLY16_C( 37209), SIMDE_POLY16_C( 11361), SIMDE_POLY16_C( 35424),
|
|
SIMDE_POLY16_C( 40362), SIMDE_POLY16_C( 49050), SIMDE_POLY16_C( 51285), SIMDE_POLY16_C( 48707) },
|
|
{ SIMDE_POLY16_C( 47101), SIMDE_POLY16_C( 59817), SIMDE_POLY16_C( 2153), SIMDE_POLY16_C( 14167),
|
|
SIMDE_POLY16_C( 4774), SIMDE_POLY16_C( 42900), SIMDE_POLY16_C( 45188), SIMDE_POLY16_C( 40585) } },
|
|
{ SIMDE_POLY16_C( 21107), SIMDE_POLY16_C( 4607), SIMDE_POLY16_C( 64052), SIMDE_POLY16_C( 5779),
|
|
SIMDE_POLY16_C( 43904), SIMDE_POLY16_C( 7898), SIMDE_POLY16_C( 55020), SIMDE_POLY16_C( 28189),
|
|
SIMDE_POLY16_C( 40116), SIMDE_POLY16_C( 37209), SIMDE_POLY16_C( 11361), SIMDE_POLY16_C( 35424),
|
|
SIMDE_POLY16_C( 40362), SIMDE_POLY16_C( 49050), SIMDE_POLY16_C( 51285), SIMDE_POLY16_C( 48707),
|
|
SIMDE_POLY16_C( 47101), SIMDE_POLY16_C( 59817), SIMDE_POLY16_C( 2153), SIMDE_POLY16_C( 14167),
|
|
SIMDE_POLY16_C( 4774), SIMDE_POLY16_C( 42900), SIMDE_POLY16_C( 45188), SIMDE_POLY16_C( 40585) } },
|
|
{ { { SIMDE_POLY16_C( 14152), SIMDE_POLY16_C( 34305), SIMDE_POLY16_C( 305), SIMDE_POLY16_C( 12831),
|
|
SIMDE_POLY16_C( 40356), SIMDE_POLY16_C( 9040), SIMDE_POLY16_C( 10170), SIMDE_POLY16_C( 37368) },
|
|
{ SIMDE_POLY16_C( 26140), SIMDE_POLY16_C( 39804), SIMDE_POLY16_C( 20162), SIMDE_POLY16_C( 19251),
|
|
SIMDE_POLY16_C( 27789), SIMDE_POLY16_C( 20223), SIMDE_POLY16_C( 10903), SIMDE_POLY16_C( 22983) },
|
|
{ SIMDE_POLY16_C( 6418), SIMDE_POLY16_C( 25641), SIMDE_POLY16_C( 55893), SIMDE_POLY16_C( 52768),
|
|
SIMDE_POLY16_C( 17266), SIMDE_POLY16_C( 41226), SIMDE_POLY16_C( 32867), SIMDE_POLY16_C( 53078) } },
|
|
{ SIMDE_POLY16_C( 14152), SIMDE_POLY16_C( 34305), SIMDE_POLY16_C( 305), SIMDE_POLY16_C( 12831),
|
|
SIMDE_POLY16_C( 40356), SIMDE_POLY16_C( 9040), SIMDE_POLY16_C( 10170), SIMDE_POLY16_C( 37368),
|
|
SIMDE_POLY16_C( 26140), SIMDE_POLY16_C( 39804), SIMDE_POLY16_C( 20162), SIMDE_POLY16_C( 19251),
|
|
SIMDE_POLY16_C( 27789), SIMDE_POLY16_C( 20223), SIMDE_POLY16_C( 10903), SIMDE_POLY16_C( 22983),
|
|
SIMDE_POLY16_C( 6418), SIMDE_POLY16_C( 25641), SIMDE_POLY16_C( 55893), SIMDE_POLY16_C( 52768),
|
|
SIMDE_POLY16_C( 17266), SIMDE_POLY16_C( 41226), SIMDE_POLY16_C( 32867), SIMDE_POLY16_C( 53078) } },
|
|
{ { { SIMDE_POLY16_C( 58524), SIMDE_POLY16_C( 8858), SIMDE_POLY16_C( 11112), SIMDE_POLY16_C( 12712),
|
|
SIMDE_POLY16_C( 2227), SIMDE_POLY16_C( 9913), SIMDE_POLY16_C( 48319), SIMDE_POLY16_C( 14486) },
|
|
{ SIMDE_POLY16_C( 51875), SIMDE_POLY16_C( 3020), SIMDE_POLY16_C( 61098), SIMDE_POLY16_C( 56639),
|
|
SIMDE_POLY16_C( 23878), SIMDE_POLY16_C( 13605), SIMDE_POLY16_C( 65325), SIMDE_POLY16_C( 42066) },
|
|
{ SIMDE_POLY16_C( 47837), SIMDE_POLY16_C( 31228), SIMDE_POLY16_C( 42856), SIMDE_POLY16_C( 40395),
|
|
SIMDE_POLY16_C( 12878), SIMDE_POLY16_C( 26606), SIMDE_POLY16_C( 8609), SIMDE_POLY16_C( 9872) } },
|
|
{ SIMDE_POLY16_C( 58524), SIMDE_POLY16_C( 8858), SIMDE_POLY16_C( 11112), SIMDE_POLY16_C( 12712),
|
|
SIMDE_POLY16_C( 2227), SIMDE_POLY16_C( 9913), SIMDE_POLY16_C( 48319), SIMDE_POLY16_C( 14486),
|
|
SIMDE_POLY16_C( 51875), SIMDE_POLY16_C( 3020), SIMDE_POLY16_C( 61098), SIMDE_POLY16_C( 56639),
|
|
SIMDE_POLY16_C( 23878), SIMDE_POLY16_C( 13605), SIMDE_POLY16_C( 65325), SIMDE_POLY16_C( 42066),
|
|
SIMDE_POLY16_C( 47837), SIMDE_POLY16_C( 31228), SIMDE_POLY16_C( 42856), SIMDE_POLY16_C( 40395),
|
|
SIMDE_POLY16_C( 12878), SIMDE_POLY16_C( 26606), SIMDE_POLY16_C( 8609), SIMDE_POLY16_C( 9872) } },
|
|
{ { { SIMDE_POLY16_C( 7641), SIMDE_POLY16_C( 54951), SIMDE_POLY16_C( 6287), SIMDE_POLY16_C( 8390),
|
|
SIMDE_POLY16_C( 19971), SIMDE_POLY16_C( 25694), SIMDE_POLY16_C( 21498), SIMDE_POLY16_C( 45907) },
|
|
{ SIMDE_POLY16_C( 62093), SIMDE_POLY16_C( 38079), SIMDE_POLY16_C( 42815), SIMDE_POLY16_C( 63441),
|
|
SIMDE_POLY16_C( 60690), SIMDE_POLY16_C( 62102), SIMDE_POLY16_C( 49961), SIMDE_POLY16_C( 57820) },
|
|
{ SIMDE_POLY16_C( 29466), SIMDE_POLY16_C( 30046), SIMDE_POLY16_C( 42417), SIMDE_POLY16_C( 19664),
|
|
SIMDE_POLY16_C( 5041), SIMDE_POLY16_C( 1326), SIMDE_POLY16_C( 47311), SIMDE_POLY16_C( 12857) } },
|
|
{ SIMDE_POLY16_C( 7641), SIMDE_POLY16_C( 54951), SIMDE_POLY16_C( 6287), SIMDE_POLY16_C( 8390),
|
|
SIMDE_POLY16_C( 19971), SIMDE_POLY16_C( 25694), SIMDE_POLY16_C( 21498), SIMDE_POLY16_C( 45907),
|
|
SIMDE_POLY16_C( 62093), SIMDE_POLY16_C( 38079), SIMDE_POLY16_C( 42815), SIMDE_POLY16_C( 63441),
|
|
SIMDE_POLY16_C( 60690), SIMDE_POLY16_C( 62102), SIMDE_POLY16_C( 49961), SIMDE_POLY16_C( 57820),
|
|
SIMDE_POLY16_C( 29466), SIMDE_POLY16_C( 30046), SIMDE_POLY16_C( 42417), SIMDE_POLY16_C( 19664),
|
|
SIMDE_POLY16_C( 5041), SIMDE_POLY16_C( 1326), SIMDE_POLY16_C( 47311), SIMDE_POLY16_C( 12857) } },
|
|
{ { { SIMDE_POLY16_C( 7164), SIMDE_POLY16_C( 62008), SIMDE_POLY16_C( 52693), SIMDE_POLY16_C( 35160),
|
|
SIMDE_POLY16_C( 239), SIMDE_POLY16_C( 45084), SIMDE_POLY16_C( 27658), SIMDE_POLY16_C( 22299) },
|
|
{ SIMDE_POLY16_C( 2717), SIMDE_POLY16_C( 4377), SIMDE_POLY16_C( 13917), SIMDE_POLY16_C( 8964),
|
|
SIMDE_POLY16_C( 64589), SIMDE_POLY16_C( 4904), SIMDE_POLY16_C( 51060), SIMDE_POLY16_C( 26907) },
|
|
{ SIMDE_POLY16_C( 58329), SIMDE_POLY16_C( 12820), SIMDE_POLY16_C( 58023), SIMDE_POLY16_C( 4066),
|
|
SIMDE_POLY16_C( 53075), SIMDE_POLY16_C( 13473), SIMDE_POLY16_C( 45896), SIMDE_POLY16_C( 56630) } },
|
|
{ SIMDE_POLY16_C( 7164), SIMDE_POLY16_C( 62008), SIMDE_POLY16_C( 52693), SIMDE_POLY16_C( 35160),
|
|
SIMDE_POLY16_C( 239), SIMDE_POLY16_C( 45084), SIMDE_POLY16_C( 27658), SIMDE_POLY16_C( 22299),
|
|
SIMDE_POLY16_C( 2717), SIMDE_POLY16_C( 4377), SIMDE_POLY16_C( 13917), SIMDE_POLY16_C( 8964),
|
|
SIMDE_POLY16_C( 64589), SIMDE_POLY16_C( 4904), SIMDE_POLY16_C( 51060), SIMDE_POLY16_C( 26907),
|
|
SIMDE_POLY16_C( 58329), SIMDE_POLY16_C( 12820), SIMDE_POLY16_C( 58023), SIMDE_POLY16_C( 4066),
|
|
SIMDE_POLY16_C( 53075), SIMDE_POLY16_C( 13473), SIMDE_POLY16_C( 45896), SIMDE_POLY16_C( 56630) } },
|
|
{ { { SIMDE_POLY16_C( 20763), SIMDE_POLY16_C( 62556), SIMDE_POLY16_C( 17397), SIMDE_POLY16_C( 56339),
|
|
SIMDE_POLY16_C( 25410), SIMDE_POLY16_C( 24026), SIMDE_POLY16_C( 58131), SIMDE_POLY16_C( 1166) },
|
|
{ SIMDE_POLY16_C( 51072), SIMDE_POLY16_C( 993), SIMDE_POLY16_C( 44396), SIMDE_POLY16_C( 64074),
|
|
SIMDE_POLY16_C( 27949), SIMDE_POLY16_C( 18016), SIMDE_POLY16_C( 53802), SIMDE_POLY16_C( 54090) },
|
|
{ SIMDE_POLY16_C( 11063), SIMDE_POLY16_C( 62388), SIMDE_POLY16_C( 41751), SIMDE_POLY16_C( 22926),
|
|
SIMDE_POLY16_C( 60980), SIMDE_POLY16_C( 11707), SIMDE_POLY16_C( 9537), SIMDE_POLY16_C( 48745) } },
|
|
{ SIMDE_POLY16_C( 20763), SIMDE_POLY16_C( 62556), SIMDE_POLY16_C( 17397), SIMDE_POLY16_C( 56339),
|
|
SIMDE_POLY16_C( 25410), SIMDE_POLY16_C( 24026), SIMDE_POLY16_C( 58131), SIMDE_POLY16_C( 1166),
|
|
SIMDE_POLY16_C( 51072), SIMDE_POLY16_C( 993), SIMDE_POLY16_C( 44396), SIMDE_POLY16_C( 64074),
|
|
SIMDE_POLY16_C( 27949), SIMDE_POLY16_C( 18016), SIMDE_POLY16_C( 53802), SIMDE_POLY16_C( 54090),
|
|
SIMDE_POLY16_C( 11063), SIMDE_POLY16_C( 62388), SIMDE_POLY16_C( 41751), SIMDE_POLY16_C( 22926),
|
|
SIMDE_POLY16_C( 60980), SIMDE_POLY16_C( 11707), SIMDE_POLY16_C( 9537), SIMDE_POLY16_C( 48745) } },
|
|
{ { { SIMDE_POLY16_C( 31570), SIMDE_POLY16_C( 18320), SIMDE_POLY16_C( 12801), SIMDE_POLY16_C( 15868),
|
|
SIMDE_POLY16_C( 16770), SIMDE_POLY16_C( 12613), SIMDE_POLY16_C( 677), SIMDE_POLY16_C( 36235) },
|
|
{ SIMDE_POLY16_C( 7166), SIMDE_POLY16_C( 33512), SIMDE_POLY16_C( 13279), SIMDE_POLY16_C( 51433),
|
|
SIMDE_POLY16_C( 19681), SIMDE_POLY16_C( 20820), SIMDE_POLY16_C( 7451), SIMDE_POLY16_C( 59438) },
|
|
{ SIMDE_POLY16_C( 47651), SIMDE_POLY16_C( 22915), SIMDE_POLY16_C( 34492), SIMDE_POLY16_C( 56145),
|
|
SIMDE_POLY16_C( 2682), SIMDE_POLY16_C( 45847), SIMDE_POLY16_C( 28516), SIMDE_POLY16_C( 52181) } },
|
|
{ SIMDE_POLY16_C( 31570), SIMDE_POLY16_C( 18320), SIMDE_POLY16_C( 12801), SIMDE_POLY16_C( 15868),
|
|
SIMDE_POLY16_C( 16770), SIMDE_POLY16_C( 12613), SIMDE_POLY16_C( 677), SIMDE_POLY16_C( 36235),
|
|
SIMDE_POLY16_C( 7166), SIMDE_POLY16_C( 33512), SIMDE_POLY16_C( 13279), SIMDE_POLY16_C( 51433),
|
|
SIMDE_POLY16_C( 19681), SIMDE_POLY16_C( 20820), SIMDE_POLY16_C( 7451), SIMDE_POLY16_C( 59438),
|
|
SIMDE_POLY16_C( 47651), SIMDE_POLY16_C( 22915), SIMDE_POLY16_C( 34492), SIMDE_POLY16_C( 56145),
|
|
SIMDE_POLY16_C( 2682), SIMDE_POLY16_C( 45847), SIMDE_POLY16_C( 28516), SIMDE_POLY16_C( 52181) } },
|
|
{ { { SIMDE_POLY16_C( 22334), SIMDE_POLY16_C( 22525), SIMDE_POLY16_C( 57022), SIMDE_POLY16_C( 40133),
|
|
SIMDE_POLY16_C( 14932), SIMDE_POLY16_C( 29297), SIMDE_POLY16_C( 55306), SIMDE_POLY16_C( 56717) },
|
|
{ SIMDE_POLY16_C( 17749), SIMDE_POLY16_C( 318), SIMDE_POLY16_C( 11446), SIMDE_POLY16_C( 15693),
|
|
SIMDE_POLY16_C( 55790), SIMDE_POLY16_C( 42094), SIMDE_POLY16_C( 64924), SIMDE_POLY16_C( 177) },
|
|
{ SIMDE_POLY16_C( 24308), SIMDE_POLY16_C( 4839), SIMDE_POLY16_C( 10364), SIMDE_POLY16_C( 6946),
|
|
SIMDE_POLY16_C( 22786), SIMDE_POLY16_C( 23522), SIMDE_POLY16_C( 39436), SIMDE_POLY16_C( 60287) } },
|
|
{ SIMDE_POLY16_C( 22334), SIMDE_POLY16_C( 22525), SIMDE_POLY16_C( 57022), SIMDE_POLY16_C( 40133),
|
|
SIMDE_POLY16_C( 14932), SIMDE_POLY16_C( 29297), SIMDE_POLY16_C( 55306), SIMDE_POLY16_C( 56717),
|
|
SIMDE_POLY16_C( 17749), SIMDE_POLY16_C( 318), SIMDE_POLY16_C( 11446), SIMDE_POLY16_C( 15693),
|
|
SIMDE_POLY16_C( 55790), SIMDE_POLY16_C( 42094), SIMDE_POLY16_C( 64924), SIMDE_POLY16_C( 177),
|
|
SIMDE_POLY16_C( 24308), SIMDE_POLY16_C( 4839), SIMDE_POLY16_C( 10364), SIMDE_POLY16_C( 6946),
|
|
SIMDE_POLY16_C( 22786), SIMDE_POLY16_C( 23522), SIMDE_POLY16_C( 39436), SIMDE_POLY16_C( 60287) } },
|
|
};
|
|
|
|
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
|
|
SIMDE_ALIGN_TO_16 simde_poly16x8x3_t val = {{
|
|
simde_vld1q_p16(test_vec[i].val[0]),
|
|
simde_vld1q_p16(test_vec[i].val[1]),
|
|
simde_vld1q_p16(test_vec[i].val[2]),
|
|
}};
|
|
SIMDE_ALIGN_TO_16 simde_poly16_t r_[24];
|
|
simde_vst1q_p16_x3(r_, val);
|
|
simde_assert_equal_i(0, simde_memcmp(r_, test_vec[i].r, sizeof(test_vec[i].r)));
|
|
}
|
|
|
|
return 0;
|
|
|
|
#else
|
|
fputc('\n', stdout);
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_poly16x3_t val[3] = simde_test_arm_neon_random_p16x3();
|
|
simde_poly16x24_t r = simde_vst1q_p16_x3(val[3]);
|
|
|
|
simde_test_arm_neon_write_p16x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST);
|
|
simde_test_arm_neon_write_p16x24(2, r, SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_p64_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
static const struct {
|
|
simde_poly64_t val[3][2];
|
|
simde_poly64_t r[6];
|
|
} test_vec[] = {
|
|
{ { { SIMDE_POLY64_C( 7555284625339926989), SIMDE_POLY64_C(17466467831333283314) },
|
|
{ SIMDE_POLY64_C( 8772387308643096643), SIMDE_POLY64_C( 9525210396323671210) },
|
|
{ SIMDE_POLY64_C( 7164656628800658895), SIMDE_POLY64_C(14688874909680887590) } },
|
|
{ SIMDE_POLY64_C( 7555284625339926989), SIMDE_POLY64_C(17466467831333283314), SIMDE_POLY64_C( 8772387308643096643), SIMDE_POLY64_C( 9525210396323671210), SIMDE_POLY64_C( 7164656628800658895), SIMDE_POLY64_C(14688874909680887590) } },
|
|
{ { { SIMDE_POLY64_C( 236701857996312676), SIMDE_POLY64_C( 6831317607123371885) },
|
|
{ SIMDE_POLY64_C(15742465926030276710), SIMDE_POLY64_C( 2589803878441594210) },
|
|
{ SIMDE_POLY64_C(12324403906753597038), SIMDE_POLY64_C( 4740945125691882212) } },
|
|
{ SIMDE_POLY64_C( 236701857996312676), SIMDE_POLY64_C( 6831317607123371885), SIMDE_POLY64_C(15742465926030276710), SIMDE_POLY64_C( 2589803878441594210), SIMDE_POLY64_C(12324403906753597038), SIMDE_POLY64_C( 4740945125691882212) } },
|
|
{ { { SIMDE_POLY64_C(12512300594124074357), SIMDE_POLY64_C( 1163586325543898222) },
|
|
{ SIMDE_POLY64_C(13503335155109545330), SIMDE_POLY64_C(11808321761518126354) },
|
|
{ SIMDE_POLY64_C(13434621719993317645), SIMDE_POLY64_C( 4748496777640087590) } },
|
|
{ SIMDE_POLY64_C(12512300594124074357), SIMDE_POLY64_C( 1163586325543898222), SIMDE_POLY64_C(13503335155109545330), SIMDE_POLY64_C(11808321761518126354), SIMDE_POLY64_C(13434621719993317645), SIMDE_POLY64_C( 4748496777640087590) } },
|
|
{ { { SIMDE_POLY64_C(17980574263139470838), SIMDE_POLY64_C(15154347382840985671) },
|
|
{ SIMDE_POLY64_C( 2590733835098455343), SIMDE_POLY64_C( 5128372592428232532) },
|
|
{ SIMDE_POLY64_C(15737158191058531464), SIMDE_POLY64_C(16055173851335738164) } },
|
|
{ SIMDE_POLY64_C(17980574263139470838), SIMDE_POLY64_C(15154347382840985671), SIMDE_POLY64_C( 2590733835098455343), SIMDE_POLY64_C( 5128372592428232532), SIMDE_POLY64_C(15737158191058531464), SIMDE_POLY64_C(16055173851335738164) } },
|
|
{ { { SIMDE_POLY64_C(17326566926258713407), SIMDE_POLY64_C( 1853337919224088484) },
|
|
{ SIMDE_POLY64_C(13596419169706848981), SIMDE_POLY64_C(11786265449580301664) },
|
|
{ SIMDE_POLY64_C( 6612784333843145481), SIMDE_POLY64_C( 1104387816993840563) } },
|
|
{ SIMDE_POLY64_C(17326566926258713407), SIMDE_POLY64_C( 1853337919224088484), SIMDE_POLY64_C(13596419169706848981), SIMDE_POLY64_C(11786265449580301664), SIMDE_POLY64_C( 6612784333843145481), SIMDE_POLY64_C( 1104387816993840563) } },
|
|
{ { { SIMDE_POLY64_C(16177403835656312777), SIMDE_POLY64_C(16855596382578598147) },
|
|
{ SIMDE_POLY64_C( 7478715589016856295), SIMDE_POLY64_C( 6407567708612819692) },
|
|
{ SIMDE_POLY64_C(14300582356565411734), SIMDE_POLY64_C( 4241344443988637304) } },
|
|
{ SIMDE_POLY64_C(16177403835656312777), SIMDE_POLY64_C(16855596382578598147), SIMDE_POLY64_C( 7478715589016856295), SIMDE_POLY64_C( 6407567708612819692), SIMDE_POLY64_C(14300582356565411734), SIMDE_POLY64_C( 4241344443988637304) } },
|
|
{ { { SIMDE_POLY64_C(17026909229323956592), SIMDE_POLY64_C( 9876515850322189464) },
|
|
{ SIMDE_POLY64_C( 8589309808143565937), SIMDE_POLY64_C( 239316176215501799) },
|
|
{ SIMDE_POLY64_C( 3935995277380127149), SIMDE_POLY64_C( 6710599645478040898) } },
|
|
{ SIMDE_POLY64_C(17026909229323956592), SIMDE_POLY64_C( 9876515850322189464), SIMDE_POLY64_C( 8589309808143565937), SIMDE_POLY64_C( 239316176215501799), SIMDE_POLY64_C( 3935995277380127149), SIMDE_POLY64_C( 6710599645478040898) } },
|
|
{ { { SIMDE_POLY64_C(10625963414496883587), SIMDE_POLY64_C( 6583889364679806254) },
|
|
{ SIMDE_POLY64_C( 2221780634318079596), SIMDE_POLY64_C( 2483671931813354711) },
|
|
{ SIMDE_POLY64_C(12014651139460929299), SIMDE_POLY64_C(11511641119939002888) } },
|
|
{ SIMDE_POLY64_C(10625963414496883587), SIMDE_POLY64_C( 6583889364679806254), SIMDE_POLY64_C( 2221780634318079596), SIMDE_POLY64_C( 2483671931813354711), SIMDE_POLY64_C(12014651139460929299), SIMDE_POLY64_C(11511641119939002888) } },
|
|
};
|
|
|
|
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
|
|
simde_poly64x2x3_t val = {{
|
|
simde_vld1q_p64(test_vec[i].val[0]),
|
|
simde_vld1q_p64(test_vec[i].val[1]),
|
|
simde_vld1q_p64(test_vec[i].val[2]),
|
|
}};
|
|
simde_poly64_t r_[6];
|
|
simde_vst1q_p64_x3(r_, val);
|
|
simde_assert_equal_i(0, simde_memcmp(r_, test_vec[i].r, sizeof(test_vec[i].r)));
|
|
}
|
|
|
|
return 0;
|
|
|
|
#else
|
|
fputc('\n', stdout);
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_poly64x3_t val[3] = simde_test_arm_neon_random_p64x3();
|
|
simde_poly64x6_t r = simde_vst1q_p64_x3(val[3]);
|
|
|
|
simde_test_arm_neon_write_p64x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST);
|
|
simde_test_arm_neon_write_p64x6(2, r, SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
static int
|
|
test_simde_vst1q_bf16_x3 (SIMDE_MUNIT_TEST_ARGS) {
|
|
#if 1
|
|
struct {
|
|
simde_bfloat16 val[3][8];
|
|
simde_bfloat16 r[24];
|
|
} test_vec[] = {
|
|
{ { { SIMDE_BFLOAT16_VALUE( - 78.006), SIMDE_BFLOAT16_VALUE( - 86.214), SIMDE_BFLOAT16_VALUE( 79.768), SIMDE_BFLOAT16_VALUE( - 58.640),
|
|
SIMDE_BFLOAT16_VALUE( 95.290), SIMDE_BFLOAT16_VALUE( - 58.694), SIMDE_BFLOAT16_VALUE( - 66.494), SIMDE_BFLOAT16_VALUE( 14.402) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 73.147), SIMDE_BFLOAT16_VALUE( 86.011), SIMDE_BFLOAT16_VALUE( - 57.821), SIMDE_BFLOAT16_VALUE( 39.575),
|
|
SIMDE_BFLOAT16_VALUE( - 71.723), SIMDE_BFLOAT16_VALUE( - 56.950), SIMDE_BFLOAT16_VALUE( - 64.715), SIMDE_BFLOAT16_VALUE( 57.900) },
|
|
{ SIMDE_BFLOAT16_VALUE( 61.685), SIMDE_BFLOAT16_VALUE( - 81.983), SIMDE_BFLOAT16_VALUE( 15.196), SIMDE_BFLOAT16_VALUE( - 22.643),
|
|
SIMDE_BFLOAT16_VALUE( 73.963), SIMDE_BFLOAT16_VALUE( 69.945), SIMDE_BFLOAT16_VALUE( - 18.252), SIMDE_BFLOAT16_VALUE( 6.208) } },
|
|
{ SIMDE_BFLOAT16_VALUE( - 78.006), SIMDE_BFLOAT16_VALUE( - 86.214), SIMDE_BFLOAT16_VALUE( 79.768), SIMDE_BFLOAT16_VALUE( - 58.640),
|
|
SIMDE_BFLOAT16_VALUE( 95.290), SIMDE_BFLOAT16_VALUE( - 58.694), SIMDE_BFLOAT16_VALUE( - 66.494), SIMDE_BFLOAT16_VALUE( 14.402),
|
|
SIMDE_BFLOAT16_VALUE( - 73.147), SIMDE_BFLOAT16_VALUE( 86.011), SIMDE_BFLOAT16_VALUE( - 57.821), SIMDE_BFLOAT16_VALUE( 39.575),
|
|
SIMDE_BFLOAT16_VALUE( - 71.723), SIMDE_BFLOAT16_VALUE( - 56.950), SIMDE_BFLOAT16_VALUE( - 64.715), SIMDE_BFLOAT16_VALUE( 57.900),
|
|
SIMDE_BFLOAT16_VALUE( 61.685), SIMDE_BFLOAT16_VALUE( - 81.983), SIMDE_BFLOAT16_VALUE( 15.196), SIMDE_BFLOAT16_VALUE( - 22.643),
|
|
SIMDE_BFLOAT16_VALUE( 73.963), SIMDE_BFLOAT16_VALUE( 69.945), SIMDE_BFLOAT16_VALUE( - 18.252), SIMDE_BFLOAT16_VALUE( 6.208) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( 75.124), SIMDE_BFLOAT16_VALUE( 63.765), SIMDE_BFLOAT16_VALUE( 93.445), SIMDE_BFLOAT16_VALUE( - 2.808),
|
|
SIMDE_BFLOAT16_VALUE( 21.150), SIMDE_BFLOAT16_VALUE( - 27.804), SIMDE_BFLOAT16_VALUE( 96.600), SIMDE_BFLOAT16_VALUE( 49.484) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 21.286), SIMDE_BFLOAT16_VALUE( 6.385), SIMDE_BFLOAT16_VALUE( 58.966), SIMDE_BFLOAT16_VALUE( - 25.964),
|
|
SIMDE_BFLOAT16_VALUE( 81.303), SIMDE_BFLOAT16_VALUE( 55.133), SIMDE_BFLOAT16_VALUE( 59.277), SIMDE_BFLOAT16_VALUE( 90.767) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 9.851), SIMDE_BFLOAT16_VALUE( - 51.010), SIMDE_BFLOAT16_VALUE( - 57.457), SIMDE_BFLOAT16_VALUE( 76.293),
|
|
SIMDE_BFLOAT16_VALUE( - 36.636), SIMDE_BFLOAT16_VALUE( 71.898), SIMDE_BFLOAT16_VALUE( 98.888), SIMDE_BFLOAT16_VALUE( - 38.156) } },
|
|
{ SIMDE_BFLOAT16_VALUE( 75.124), SIMDE_BFLOAT16_VALUE( 63.765), SIMDE_BFLOAT16_VALUE( 93.445), SIMDE_BFLOAT16_VALUE( - 2.808),
|
|
SIMDE_BFLOAT16_VALUE( 21.150), SIMDE_BFLOAT16_VALUE( - 27.804), SIMDE_BFLOAT16_VALUE( 96.600), SIMDE_BFLOAT16_VALUE( 49.484),
|
|
SIMDE_BFLOAT16_VALUE( - 21.286), SIMDE_BFLOAT16_VALUE( 6.385), SIMDE_BFLOAT16_VALUE( 58.966), SIMDE_BFLOAT16_VALUE( - 25.964),
|
|
SIMDE_BFLOAT16_VALUE( 81.303), SIMDE_BFLOAT16_VALUE( 55.133), SIMDE_BFLOAT16_VALUE( 59.277), SIMDE_BFLOAT16_VALUE( 90.767),
|
|
SIMDE_BFLOAT16_VALUE( - 9.851), SIMDE_BFLOAT16_VALUE( - 51.010), SIMDE_BFLOAT16_VALUE( - 57.457), SIMDE_BFLOAT16_VALUE( 76.293),
|
|
SIMDE_BFLOAT16_VALUE( - 36.636), SIMDE_BFLOAT16_VALUE( 71.898), SIMDE_BFLOAT16_VALUE( 98.888), SIMDE_BFLOAT16_VALUE( - 38.156) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( 26.535), SIMDE_BFLOAT16_VALUE( - 91.027), SIMDE_BFLOAT16_VALUE( - 79.934), SIMDE_BFLOAT16_VALUE( - 46.283),
|
|
SIMDE_BFLOAT16_VALUE( - 50.743), SIMDE_BFLOAT16_VALUE( - 31.430), SIMDE_BFLOAT16_VALUE( - 40.474), SIMDE_BFLOAT16_VALUE( 52.962) },
|
|
{ SIMDE_BFLOAT16_VALUE( 54.007), SIMDE_BFLOAT16_VALUE( - 51.316), SIMDE_BFLOAT16_VALUE( - 70.698), SIMDE_BFLOAT16_VALUE( 59.510),
|
|
SIMDE_BFLOAT16_VALUE( 60.522), SIMDE_BFLOAT16_VALUE( - 83.540), SIMDE_BFLOAT16_VALUE( 72.171), SIMDE_BFLOAT16_VALUE( - 94.419) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 73.925), SIMDE_BFLOAT16_VALUE( - 73.200), SIMDE_BFLOAT16_VALUE( - 12.444), SIMDE_BFLOAT16_VALUE( 72.493),
|
|
SIMDE_BFLOAT16_VALUE( 27.042), SIMDE_BFLOAT16_VALUE( 81.525), SIMDE_BFLOAT16_VALUE( - 92.143), SIMDE_BFLOAT16_VALUE( - 50.921) } },
|
|
{ SIMDE_BFLOAT16_VALUE( 26.535), SIMDE_BFLOAT16_VALUE( - 91.027), SIMDE_BFLOAT16_VALUE( - 79.934), SIMDE_BFLOAT16_VALUE( - 46.283),
|
|
SIMDE_BFLOAT16_VALUE( - 50.743), SIMDE_BFLOAT16_VALUE( - 31.430), SIMDE_BFLOAT16_VALUE( - 40.474), SIMDE_BFLOAT16_VALUE( 52.962),
|
|
SIMDE_BFLOAT16_VALUE( 54.007), SIMDE_BFLOAT16_VALUE( - 51.316), SIMDE_BFLOAT16_VALUE( - 70.698), SIMDE_BFLOAT16_VALUE( 59.510),
|
|
SIMDE_BFLOAT16_VALUE( 60.522), SIMDE_BFLOAT16_VALUE( - 83.540), SIMDE_BFLOAT16_VALUE( 72.171), SIMDE_BFLOAT16_VALUE( - 94.419),
|
|
SIMDE_BFLOAT16_VALUE( - 73.925), SIMDE_BFLOAT16_VALUE( - 73.200), SIMDE_BFLOAT16_VALUE( - 12.444), SIMDE_BFLOAT16_VALUE( 72.493),
|
|
SIMDE_BFLOAT16_VALUE( 27.042), SIMDE_BFLOAT16_VALUE( 81.525), SIMDE_BFLOAT16_VALUE( - 92.143), SIMDE_BFLOAT16_VALUE( - 50.921) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( - 45.682), SIMDE_BFLOAT16_VALUE( 52.798), SIMDE_BFLOAT16_VALUE( - 80.990), SIMDE_BFLOAT16_VALUE( - 61.788),
|
|
SIMDE_BFLOAT16_VALUE( 54.221), SIMDE_BFLOAT16_VALUE( 99.819), SIMDE_BFLOAT16_VALUE( - 53.166), SIMDE_BFLOAT16_VALUE( 62.212) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 26.140), SIMDE_BFLOAT16_VALUE( - 44.258), SIMDE_BFLOAT16_VALUE( - 63.797), SIMDE_BFLOAT16_VALUE( 21.345),
|
|
SIMDE_BFLOAT16_VALUE( 43.284), SIMDE_BFLOAT16_VALUE( 49.659), SIMDE_BFLOAT16_VALUE( 83.024), SIMDE_BFLOAT16_VALUE( - 93.541) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 41.983), SIMDE_BFLOAT16_VALUE( 72.431), SIMDE_BFLOAT16_VALUE( - 72.624), SIMDE_BFLOAT16_VALUE( - 68.362),
|
|
SIMDE_BFLOAT16_VALUE( - 3.439), SIMDE_BFLOAT16_VALUE( 57.763), SIMDE_BFLOAT16_VALUE( 53.732), SIMDE_BFLOAT16_VALUE( 23.477) } },
|
|
{ SIMDE_BFLOAT16_VALUE( - 45.682), SIMDE_BFLOAT16_VALUE( 52.798), SIMDE_BFLOAT16_VALUE( - 80.990), SIMDE_BFLOAT16_VALUE( - 61.788),
|
|
SIMDE_BFLOAT16_VALUE( 54.221), SIMDE_BFLOAT16_VALUE( 99.819), SIMDE_BFLOAT16_VALUE( - 53.166), SIMDE_BFLOAT16_VALUE( 62.212),
|
|
SIMDE_BFLOAT16_VALUE( - 26.140), SIMDE_BFLOAT16_VALUE( - 44.258), SIMDE_BFLOAT16_VALUE( - 63.797), SIMDE_BFLOAT16_VALUE( 21.345),
|
|
SIMDE_BFLOAT16_VALUE( 43.284), SIMDE_BFLOAT16_VALUE( 49.659), SIMDE_BFLOAT16_VALUE( 83.024), SIMDE_BFLOAT16_VALUE( - 93.541),
|
|
SIMDE_BFLOAT16_VALUE( - 41.983), SIMDE_BFLOAT16_VALUE( 72.431), SIMDE_BFLOAT16_VALUE( - 72.624), SIMDE_BFLOAT16_VALUE( - 68.362),
|
|
SIMDE_BFLOAT16_VALUE( - 3.439), SIMDE_BFLOAT16_VALUE( 57.763), SIMDE_BFLOAT16_VALUE( 53.732), SIMDE_BFLOAT16_VALUE( 23.477) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( - 82.965), SIMDE_BFLOAT16_VALUE( - 70.111), SIMDE_BFLOAT16_VALUE( - 31.957), SIMDE_BFLOAT16_VALUE( 61.018),
|
|
SIMDE_BFLOAT16_VALUE( - 27.870), SIMDE_BFLOAT16_VALUE( 71.621), SIMDE_BFLOAT16_VALUE( - 77.867), SIMDE_BFLOAT16_VALUE( - 30.557) },
|
|
{ SIMDE_BFLOAT16_VALUE( 58.953), SIMDE_BFLOAT16_VALUE( - 20.614), SIMDE_BFLOAT16_VALUE( - 60.571), SIMDE_BFLOAT16_VALUE( 63.967),
|
|
SIMDE_BFLOAT16_VALUE( - 12.960), SIMDE_BFLOAT16_VALUE( - 61.378), SIMDE_BFLOAT16_VALUE( - 20.681), SIMDE_BFLOAT16_VALUE( 73.740) },
|
|
{ SIMDE_BFLOAT16_VALUE( 77.996), SIMDE_BFLOAT16_VALUE( 4.822), SIMDE_BFLOAT16_VALUE( - 39.992), SIMDE_BFLOAT16_VALUE( 50.289),
|
|
SIMDE_BFLOAT16_VALUE( - 37.043), SIMDE_BFLOAT16_VALUE( - 89.635), SIMDE_BFLOAT16_VALUE( 33.091), SIMDE_BFLOAT16_VALUE( - 39.668) } },
|
|
{ SIMDE_BFLOAT16_VALUE( - 82.965), SIMDE_BFLOAT16_VALUE( - 70.111), SIMDE_BFLOAT16_VALUE( - 31.957), SIMDE_BFLOAT16_VALUE( 61.018),
|
|
SIMDE_BFLOAT16_VALUE( - 27.870), SIMDE_BFLOAT16_VALUE( 71.621), SIMDE_BFLOAT16_VALUE( - 77.867), SIMDE_BFLOAT16_VALUE( - 30.557),
|
|
SIMDE_BFLOAT16_VALUE( 58.953), SIMDE_BFLOAT16_VALUE( - 20.614), SIMDE_BFLOAT16_VALUE( - 60.571), SIMDE_BFLOAT16_VALUE( 63.967),
|
|
SIMDE_BFLOAT16_VALUE( - 12.960), SIMDE_BFLOAT16_VALUE( - 61.378), SIMDE_BFLOAT16_VALUE( - 20.681), SIMDE_BFLOAT16_VALUE( 73.740),
|
|
SIMDE_BFLOAT16_VALUE( 77.996), SIMDE_BFLOAT16_VALUE( 4.822), SIMDE_BFLOAT16_VALUE( - 39.992), SIMDE_BFLOAT16_VALUE( 50.289),
|
|
SIMDE_BFLOAT16_VALUE( - 37.043), SIMDE_BFLOAT16_VALUE( - 89.635), SIMDE_BFLOAT16_VALUE( 33.091), SIMDE_BFLOAT16_VALUE( - 39.668) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( 3.917), SIMDE_BFLOAT16_VALUE( 67.525), SIMDE_BFLOAT16_VALUE( - 40.144), SIMDE_BFLOAT16_VALUE( 98.412),
|
|
SIMDE_BFLOAT16_VALUE( - 5.628), SIMDE_BFLOAT16_VALUE( - 91.834), SIMDE_BFLOAT16_VALUE( 66.132), SIMDE_BFLOAT16_VALUE( - 44.698) },
|
|
{ SIMDE_BFLOAT16_VALUE( 3.461), SIMDE_BFLOAT16_VALUE( - 1.903), SIMDE_BFLOAT16_VALUE( - 7.486), SIMDE_BFLOAT16_VALUE( - 5.095),
|
|
SIMDE_BFLOAT16_VALUE( - 4.045), SIMDE_BFLOAT16_VALUE( 76.155), SIMDE_BFLOAT16_VALUE( 45.573), SIMDE_BFLOAT16_VALUE( - 17.845) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 69.007), SIMDE_BFLOAT16_VALUE( - 91.001), SIMDE_BFLOAT16_VALUE( 47.281), SIMDE_BFLOAT16_VALUE( - 6.930),
|
|
SIMDE_BFLOAT16_VALUE( - 31.826), SIMDE_BFLOAT16_VALUE( - 9.605), SIMDE_BFLOAT16_VALUE( - 8.507), SIMDE_BFLOAT16_VALUE( - 69.550) } },
|
|
{ SIMDE_BFLOAT16_VALUE( 3.917), SIMDE_BFLOAT16_VALUE( 67.525), SIMDE_BFLOAT16_VALUE( - 40.144), SIMDE_BFLOAT16_VALUE( 98.412),
|
|
SIMDE_BFLOAT16_VALUE( - 5.628), SIMDE_BFLOAT16_VALUE( - 91.834), SIMDE_BFLOAT16_VALUE( 66.132), SIMDE_BFLOAT16_VALUE( - 44.698),
|
|
SIMDE_BFLOAT16_VALUE( 3.461), SIMDE_BFLOAT16_VALUE( - 1.903), SIMDE_BFLOAT16_VALUE( - 7.486), SIMDE_BFLOAT16_VALUE( - 5.095),
|
|
SIMDE_BFLOAT16_VALUE( - 4.045), SIMDE_BFLOAT16_VALUE( 76.155), SIMDE_BFLOAT16_VALUE( 45.573), SIMDE_BFLOAT16_VALUE( - 17.845),
|
|
SIMDE_BFLOAT16_VALUE( - 69.007), SIMDE_BFLOAT16_VALUE( - 91.001), SIMDE_BFLOAT16_VALUE( 47.281), SIMDE_BFLOAT16_VALUE( - 6.930),
|
|
SIMDE_BFLOAT16_VALUE( - 31.826), SIMDE_BFLOAT16_VALUE( - 9.605), SIMDE_BFLOAT16_VALUE( - 8.507), SIMDE_BFLOAT16_VALUE( - 69.550) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( - 83.740), SIMDE_BFLOAT16_VALUE( - 6.331), SIMDE_BFLOAT16_VALUE( - 89.045), SIMDE_BFLOAT16_VALUE( - 94.435),
|
|
SIMDE_BFLOAT16_VALUE( - 65.111), SIMDE_BFLOAT16_VALUE( - 70.456), SIMDE_BFLOAT16_VALUE( 11.289), SIMDE_BFLOAT16_VALUE( 7.177) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 90.849), SIMDE_BFLOAT16_VALUE( - 95.953), SIMDE_BFLOAT16_VALUE( - 42.247), SIMDE_BFLOAT16_VALUE( 14.309),
|
|
SIMDE_BFLOAT16_VALUE( - 95.825), SIMDE_BFLOAT16_VALUE( - 22.270), SIMDE_BFLOAT16_VALUE( 83.373), SIMDE_BFLOAT16_VALUE( - 79.802) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 22.035), SIMDE_BFLOAT16_VALUE( - 92.921), SIMDE_BFLOAT16_VALUE( 43.906), SIMDE_BFLOAT16_VALUE( 26.805),
|
|
SIMDE_BFLOAT16_VALUE( 51.738), SIMDE_BFLOAT16_VALUE( - 42.852), SIMDE_BFLOAT16_VALUE( 5.828), SIMDE_BFLOAT16_VALUE( 44.079) } },
|
|
{ SIMDE_BFLOAT16_VALUE( - 83.740), SIMDE_BFLOAT16_VALUE( - 6.331), SIMDE_BFLOAT16_VALUE( - 89.045), SIMDE_BFLOAT16_VALUE( - 94.435),
|
|
SIMDE_BFLOAT16_VALUE( - 65.111), SIMDE_BFLOAT16_VALUE( - 70.456), SIMDE_BFLOAT16_VALUE( 11.289), SIMDE_BFLOAT16_VALUE( 7.177),
|
|
SIMDE_BFLOAT16_VALUE( - 90.849), SIMDE_BFLOAT16_VALUE( - 95.953), SIMDE_BFLOAT16_VALUE( - 42.247), SIMDE_BFLOAT16_VALUE( 14.309),
|
|
SIMDE_BFLOAT16_VALUE( - 95.825), SIMDE_BFLOAT16_VALUE( - 22.270), SIMDE_BFLOAT16_VALUE( 83.373), SIMDE_BFLOAT16_VALUE( - 79.802),
|
|
SIMDE_BFLOAT16_VALUE( - 22.035), SIMDE_BFLOAT16_VALUE( - 92.921), SIMDE_BFLOAT16_VALUE( 43.906), SIMDE_BFLOAT16_VALUE( 26.805),
|
|
SIMDE_BFLOAT16_VALUE( 51.738), SIMDE_BFLOAT16_VALUE( - 42.852), SIMDE_BFLOAT16_VALUE( 5.828), SIMDE_BFLOAT16_VALUE( 44.079) } },
|
|
{ { { SIMDE_BFLOAT16_VALUE( - 16.629), SIMDE_BFLOAT16_VALUE( 51.044), SIMDE_BFLOAT16_VALUE( 19.393), SIMDE_BFLOAT16_VALUE( 55.131),
|
|
SIMDE_BFLOAT16_VALUE( - 43.901), SIMDE_BFLOAT16_VALUE( 70.204), SIMDE_BFLOAT16_VALUE( 97.396), SIMDE_BFLOAT16_VALUE( 81.774) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 65.652), SIMDE_BFLOAT16_VALUE( 84.250), SIMDE_BFLOAT16_VALUE( - 73.434), SIMDE_BFLOAT16_VALUE( 83.066),
|
|
SIMDE_BFLOAT16_VALUE( 98.140), SIMDE_BFLOAT16_VALUE( 10.456), SIMDE_BFLOAT16_VALUE( - 74.473), SIMDE_BFLOAT16_VALUE( 36.574) },
|
|
{ SIMDE_BFLOAT16_VALUE( - 30.153), SIMDE_BFLOAT16_VALUE( 52.521), SIMDE_BFLOAT16_VALUE( - 21.877), SIMDE_BFLOAT16_VALUE( 99.308),
|
|
SIMDE_BFLOAT16_VALUE( - 78.712), SIMDE_BFLOAT16_VALUE( - 45.652), SIMDE_BFLOAT16_VALUE( - 23.870), SIMDE_BFLOAT16_VALUE( 33.651) } },
|
|
{ SIMDE_BFLOAT16_VALUE( - 16.629), SIMDE_BFLOAT16_VALUE( 51.044), SIMDE_BFLOAT16_VALUE( 19.393), SIMDE_BFLOAT16_VALUE( 55.131),
|
|
SIMDE_BFLOAT16_VALUE( - 43.901), SIMDE_BFLOAT16_VALUE( 70.204), SIMDE_BFLOAT16_VALUE( 97.396), SIMDE_BFLOAT16_VALUE( 81.774),
|
|
SIMDE_BFLOAT16_VALUE( - 65.652), SIMDE_BFLOAT16_VALUE( 84.250), SIMDE_BFLOAT16_VALUE( - 73.434), SIMDE_BFLOAT16_VALUE( 83.066),
|
|
SIMDE_BFLOAT16_VALUE( 98.140), SIMDE_BFLOAT16_VALUE( 10.456), SIMDE_BFLOAT16_VALUE( - 74.473), SIMDE_BFLOAT16_VALUE( 36.574),
|
|
SIMDE_BFLOAT16_VALUE( - 30.153), SIMDE_BFLOAT16_VALUE( 52.521), SIMDE_BFLOAT16_VALUE( - 21.877), SIMDE_BFLOAT16_VALUE( 99.308),
|
|
SIMDE_BFLOAT16_VALUE( - 78.712), SIMDE_BFLOAT16_VALUE( - 45.652), SIMDE_BFLOAT16_VALUE( - 23.870), SIMDE_BFLOAT16_VALUE( 33.651) } },
|
|
};
|
|
|
|
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
|
|
simde_bfloat16x8x3_t val = {{
|
|
simde_vld1q_bf16(test_vec[i].val[0]),
|
|
simde_vld1q_bf16(test_vec[i].val[1]),
|
|
simde_vld1q_bf16(test_vec[i].val[2]),
|
|
}};
|
|
simde_bfloat16 r_[24];
|
|
simde_vst1q_bf16_x3(r_, val);
|
|
simde_assert_equal_i(0, simde_memcmp(r_, test_vec[i].r, sizeof(test_vec[i].r)));
|
|
}
|
|
|
|
return 0;
|
|
|
|
#else
|
|
fputc('\n', stdout);
|
|
for (int i = 0 ; i < 8 ; i++) {
|
|
simde_bfloat16x3_t val[3] = simde_test_arm_neon_random_bf16x3(-100.0f, 100.0f);
|
|
simde_bfloat16x24_t r = simde_vst1q_bf16_x3(val[3]);
|
|
|
|
simde_test_arm_neon_write_bf16x3(2, val[3], SIMDE_TEST_VEC_POS_FIRST);
|
|
simde_test_arm_neon_write_bf16x24(2, r, SIMDE_TEST_VEC_POS_LAST);
|
|
}
|
|
return 1;
|
|
#endif
|
|
}
|
|
|
|
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
|
|
|
|
SIMDE_TEST_FUNC_LIST_BEGIN
|
|
#if !defined(SIMDE_BUG_INTEL_857088)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_f16_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_f32_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_f64_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s8_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s16_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s32_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s64_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u8_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u16_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u32_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u64_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_p8_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_p16_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_p64_x3)
|
|
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_bf16_x3)
|
|
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
|
|
SIMDE_TEST_FUNC_LIST_END
|
|
|
|
#include "test-neon-footer.h"
|