#include "test/test.h"
#define SIMDE_TEST_ARM_NEON_INSN st1q_x2
#include "test-neon.h"
#include "../../../simde/arm/neon/st1q_x2.h"
#if !defined(SIMDE_BUG_INTEL_857088)
static int
test_simde_vst1q_f16_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_float16_t val[2][8];
simde_float16_t r[16];
} test_vec[] = {
{ { { SIMDE_FLOAT16_VALUE( - 20.956), SIMDE_FLOAT16_VALUE( - 58.964), SIMDE_FLOAT16_VALUE( - 74.395), SIMDE_FLOAT16_VALUE( - 58.069),
SIMDE_FLOAT16_VALUE( - 73.918), SIMDE_FLOAT16_VALUE( - 88.889), SIMDE_FLOAT16_VALUE( - 89.387), SIMDE_FLOAT16_VALUE( 26.229) },
{ SIMDE_FLOAT16_VALUE( 67.698), SIMDE_FLOAT16_VALUE( 18.105), SIMDE_FLOAT16_VALUE( 25.021), SIMDE_FLOAT16_VALUE( 34.669),
SIMDE_FLOAT16_VALUE( - 49.404), SIMDE_FLOAT16_VALUE( - 56.913), SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 59.094) } },
{ SIMDE_FLOAT16_VALUE( - 20.956), SIMDE_FLOAT16_VALUE( - 58.964), SIMDE_FLOAT16_VALUE( - 74.395), SIMDE_FLOAT16_VALUE( - 58.069),
SIMDE_FLOAT16_VALUE( - 73.918), SIMDE_FLOAT16_VALUE( - 88.889), SIMDE_FLOAT16_VALUE( - 89.387), SIMDE_FLOAT16_VALUE( 26.229),
SIMDE_FLOAT16_VALUE( 67.698), SIMDE_FLOAT16_VALUE( 18.105), SIMDE_FLOAT16_VALUE( 25.021), SIMDE_FLOAT16_VALUE( 34.669),
SIMDE_FLOAT16_VALUE( - 49.404), SIMDE_FLOAT16_VALUE( - 56.913), SIMDE_FLOAT16_VALUE( 84.184), SIMDE_FLOAT16_VALUE( 59.094) } },
{ { { SIMDE_FLOAT16_VALUE( 2.598), SIMDE_FLOAT16_VALUE( - 70.000), SIMDE_FLOAT16_VALUE( 41.157), SIMDE_FLOAT16_VALUE( - 83.059),
SIMDE_FLOAT16_VALUE( - 90.002), SIMDE_FLOAT16_VALUE( 21.783), SIMDE_FLOAT16_VALUE( 70.489), SIMDE_FLOAT16_VALUE( 17.433) },
{ SIMDE_FLOAT16_VALUE( - 86.074), SIMDE_FLOAT16_VALUE( 41.189), SIMDE_FLOAT16_VALUE( 63.234), SIMDE_FLOAT16_VALUE( 12.204),
SIMDE_FLOAT16_VALUE( 7.910), SIMDE_FLOAT16_VALUE( - 15.107), SIMDE_FLOAT16_VALUE( - 16.136), SIMDE_FLOAT16_VALUE( 13.310) } },
{ SIMDE_FLOAT16_VALUE( 2.598), SIMDE_FLOAT16_VALUE( - 70.000), SIMDE_FLOAT16_VALUE( 41.157), SIMDE_FLOAT16_VALUE( - 83.059),
SIMDE_FLOAT16_VALUE( - 90.002), SIMDE_FLOAT16_VALUE( 21.783), SIMDE_FLOAT16_VALUE( 70.489), SIMDE_FLOAT16_VALUE( 17.433),
SIMDE_FLOAT16_VALUE( - 86.074), SIMDE_FLOAT16_VALUE( 41.189), SIMDE_FLOAT16_VALUE( 63.234), SIMDE_FLOAT16_VALUE( 12.204),
SIMDE_FLOAT16_VALUE( 7.910), SIMDE_FLOAT16_VALUE( - 15.107), SIMDE_FLOAT16_VALUE( - 16.136), SIMDE_FLOAT16_VALUE( 13.310) } },
{ { { SIMDE_FLOAT16_VALUE( - 58.406), SIMDE_FLOAT16_VALUE( - 64.859), SIMDE_FLOAT16_VALUE( - 31.395), SIMDE_FLOAT16_VALUE( 12.432),
SIMDE_FLOAT16_VALUE( - 14.707), SIMDE_FLOAT16_VALUE( 84.786), SIMDE_FLOAT16_VALUE( - 39.961), SIMDE_FLOAT16_VALUE( 98.967) },
{ SIMDE_FLOAT16_VALUE( 28.677), SIMDE_FLOAT16_VALUE( 63.490), SIMDE_FLOAT16_VALUE( 74.828), SIMDE_FLOAT16_VALUE( 21.706),
SIMDE_FLOAT16_VALUE( 22.304), SIMDE_FLOAT16_VALUE( 71.547), SIMDE_FLOAT16_VALUE( 80.978), SIMDE_FLOAT16_VALUE( 16.394) } },
{ SIMDE_FLOAT16_VALUE( - 58.406), SIMDE_FLOAT16_VALUE( - 64.859), SIMDE_FLOAT16_VALUE( - 31.395), SIMDE_FLOAT16_VALUE( 12.432),
SIMDE_FLOAT16_VALUE( - 14.707), SIMDE_FLOAT16_VALUE( 84.786), SIMDE_FLOAT16_VALUE( - 39.961), SIMDE_FLOAT16_VALUE( 98.967),
SIMDE_FLOAT16_VALUE( 28.677), SIMDE_FLOAT16_VALUE( 63.490), SIMDE_FLOAT16_VALUE( 74.828), SIMDE_FLOAT16_VALUE( 21.706),
SIMDE_FLOAT16_VALUE( 22.304), SIMDE_FLOAT16_VALUE( 71.547), SIMDE_FLOAT16_VALUE( 80.978), SIMDE_FLOAT16_VALUE( 16.394) } },
{ { { SIMDE_FLOAT16_VALUE( 97.804), SIMDE_FLOAT16_VALUE( 73.823), SIMDE_FLOAT16_VALUE( - 8.059), SIMDE_FLOAT16_VALUE( 93.096),
SIMDE_FLOAT16_VALUE( 90.504), SIMDE_FLOAT16_VALUE( - 2.398), SIMDE_FLOAT16_VALUE( 30.759), SIMDE_FLOAT16_VALUE( - 94.855) },
{ SIMDE_FLOAT16_VALUE( - 5.801), SIMDE_FLOAT16_VALUE( - 68.562), SIMDE_FLOAT16_VALUE( - 54.678), SIMDE_FLOAT16_VALUE( 22.048),
SIMDE_FLOAT16_VALUE( - 71.055), SIMDE_FLOAT16_VALUE( - 30.977), SIMDE_FLOAT16_VALUE( 18.382), SIMDE_FLOAT16_VALUE( 11.761) } },
{ SIMDE_FLOAT16_VALUE( 97.804), SIMDE_FLOAT16_VALUE( 73.823), SIMDE_FLOAT16_VALUE( - 8.059), SIMDE_FLOAT16_VALUE( 93.096),
SIMDE_FLOAT16_VALUE( 90.504), SIMDE_FLOAT16_VALUE( - 2.398), SIMDE_FLOAT16_VALUE( 30.759), SIMDE_FLOAT16_VALUE( - 94.855),
SIMDE_FLOAT16_VALUE( - 5.801), SIMDE_FLOAT16_VALUE( - 68.562), SIMDE_FLOAT16_VALUE( - 54.678), SIMDE_FLOAT16_VALUE( 22.048),
SIMDE_FLOAT16_VALUE( - 71.055), SIMDE_FLOAT16_VALUE( - 30.977), SIMDE_FLOAT16_VALUE( 18.382), SIMDE_FLOAT16_VALUE( 11.761) } },
{ { { SIMDE_FLOAT16_VALUE( 55.035), SIMDE_FLOAT16_VALUE( 94.504), SIMDE_FLOAT16_VALUE( 21.867), SIMDE_FLOAT16_VALUE( 60.556),
SIMDE_FLOAT16_VALUE( - 21.374), SIMDE_FLOAT16_VALUE( 82.466), SIMDE_FLOAT16_VALUE( 84.824), SIMDE_FLOAT16_VALUE( 31.885) },
{ SIMDE_FLOAT16_VALUE( 17.599), SIMDE_FLOAT16_VALUE( - 18.858), SIMDE_FLOAT16_VALUE( - 97.376), SIMDE_FLOAT16_VALUE( - 85.414),
SIMDE_FLOAT16_VALUE( - 37.173), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( 51.414), SIMDE_FLOAT16_VALUE( 42.445) } },
{ SIMDE_FLOAT16_VALUE( 55.035), SIMDE_FLOAT16_VALUE( 94.504), SIMDE_FLOAT16_VALUE( 21.867), SIMDE_FLOAT16_VALUE( 60.556),
SIMDE_FLOAT16_VALUE( - 21.374), SIMDE_FLOAT16_VALUE( 82.466), SIMDE_FLOAT16_VALUE( 84.824), SIMDE_FLOAT16_VALUE( 31.885),
SIMDE_FLOAT16_VALUE( 17.599), SIMDE_FLOAT16_VALUE( - 18.858), SIMDE_FLOAT16_VALUE( - 97.376), SIMDE_FLOAT16_VALUE( - 85.414),
SIMDE_FLOAT16_VALUE( - 37.173), SIMDE_FLOAT16_VALUE( 36.083), SIMDE_FLOAT16_VALUE( 51.414), SIMDE_FLOAT16_VALUE( 42.445) } },
{ { { SIMDE_FLOAT16_VALUE( - 58.353), SIMDE_FLOAT16_VALUE( 94.351), SIMDE_FLOAT16_VALUE( - 72.718), SIMDE_FLOAT16_VALUE( 44.738),
SIMDE_FLOAT16_VALUE( 88.331), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( 79.940), SIMDE_FLOAT16_VALUE( - 29.844) },
{ SIMDE_FLOAT16_VALUE( - 64.679), SIMDE_FLOAT16_VALUE( - 31.234), SIMDE_FLOAT16_VALUE( 25.402), SIMDE_FLOAT16_VALUE( 61.429),
SIMDE_FLOAT16_VALUE( - 80.532), SIMDE_FLOAT16_VALUE( 19.659), SIMDE_FLOAT16_VALUE( - 67.325), SIMDE_FLOAT16_VALUE( 54.634) } },
{ SIMDE_FLOAT16_VALUE( - 58.353), SIMDE_FLOAT16_VALUE( 94.351), SIMDE_FLOAT16_VALUE( - 72.718), SIMDE_FLOAT16_VALUE( 44.738),
SIMDE_FLOAT16_VALUE( 88.331), SIMDE_FLOAT16_VALUE( 93.544), SIMDE_FLOAT16_VALUE( 79.940), SIMDE_FLOAT16_VALUE( - 29.844),
SIMDE_FLOAT16_VALUE( - 64.679), SIMDE_FLOAT16_VALUE( - 31.234), SIMDE_FLOAT16_VALUE( 25.402), SIMDE_FLOAT16_VALUE( 61.429),
SIMDE_FLOAT16_VALUE( - 80.532), SIMDE_FLOAT16_VALUE( 19.659), SIMDE_FLOAT16_VALUE( - 67.325), SIMDE_FLOAT16_VALUE( 54.634) } },
{ { { SIMDE_FLOAT16_VALUE( - 99.773), SIMDE_FLOAT16_VALUE( 27.004), SIMDE_FLOAT16_VALUE( 53.708), SIMDE_FLOAT16_VALUE( 12.664),
SIMDE_FLOAT16_VALUE( 66.275), SIMDE_FLOAT16_VALUE( - 0.836), SIMDE_FLOAT16_VALUE( - 22.661), SIMDE_FLOAT16_VALUE( 72.602) },
{ SIMDE_FLOAT16_VALUE( 25.260), SIMDE_FLOAT16_VALUE( - 83.782), SIMDE_FLOAT16_VALUE( - 61.087), SIMDE_FLOAT16_VALUE( - 38.948),
SIMDE_FLOAT16_VALUE( - 78.380), SIMDE_FLOAT16_VALUE( 6.817), SIMDE_FLOAT16_VALUE( - 82.373), SIMDE_FLOAT16_VALUE( - 60.011) } },
{ SIMDE_FLOAT16_VALUE( - 99.773), SIMDE_FLOAT16_VALUE( 27.004), SIMDE_FLOAT16_VALUE( 53.708), SIMDE_FLOAT16_VALUE( 12.664),
SIMDE_FLOAT16_VALUE( 66.275), SIMDE_FLOAT16_VALUE( - 0.836), SIMDE_FLOAT16_VALUE( - 22.661), SIMDE_FLOAT16_VALUE( 72.602),
SIMDE_FLOAT16_VALUE( 25.260), SIMDE_FLOAT16_VALUE( - 83.782), SIMDE_FLOAT16_VALUE( - 61.087), SIMDE_FLOAT16_VALUE( - 38.948),
SIMDE_FLOAT16_VALUE( - 78.380), SIMDE_FLOAT16_VALUE( 6.817), SIMDE_FLOAT16_VALUE( - 82.373), SIMDE_FLOAT16_VALUE( - 60.011) } },
{ { { SIMDE_FLOAT16_VALUE( - 53.476), SIMDE_FLOAT16_VALUE( 8.724), SIMDE_FLOAT16_VALUE( - 88.674), SIMDE_FLOAT16_VALUE( - 48.309),
SIMDE_FLOAT16_VALUE( - 3.562), SIMDE_FLOAT16_VALUE( 14.309), SIMDE_FLOAT16_VALUE( - 99.801), SIMDE_FLOAT16_VALUE( - 11.703) },
{ SIMDE_FLOAT16_VALUE( - 62.913), SIMDE_FLOAT16_VALUE( - 43.056), SIMDE_FLOAT16_VALUE( - 65.766), SIMDE_FLOAT16_VALUE( 92.099),
SIMDE_FLOAT16_VALUE( 73.066), SIMDE_FLOAT16_VALUE( 29.509), SIMDE_FLOAT16_VALUE( - 77.995), SIMDE_FLOAT16_VALUE( - 81.816) } },
{ SIMDE_FLOAT16_VALUE( - 53.476), SIMDE_FLOAT16_VALUE( 8.724), SIMDE_FLOAT16_VALUE( - 88.674), SIMDE_FLOAT16_VALUE( - 48.309),
SIMDE_FLOAT16_VALUE( - 3.562), SIMDE_FLOAT16_VALUE( 14.309), SIMDE_FLOAT16_VALUE( - 99.801), SIMDE_FLOAT16_VALUE( - 11.703),
SIMDE_FLOAT16_VALUE( - 62.913), SIMDE_FLOAT16_VALUE( - 43.056), SIMDE_FLOAT16_VALUE( - 65.766), SIMDE_FLOAT16_VALUE( 92.099),
SIMDE_FLOAT16_VALUE( 73.066), SIMDE_FLOAT16_VALUE( 29.509), SIMDE_FLOAT16_VALUE( - 77.995), SIMDE_FLOAT16_VALUE( - 81.816) } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float16x8x2_t val = {{
simde_vld1q_f16(test_vec[i].val[0]),
simde_vld1q_f16(test_vec[i].val[1]),
}};
simde_float16_t r_[16];
simde_vst1q_f16_x2(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_float16x2_t val[2] = simde_test_arm_neon_random_f16x2(-100.0f, 100.0f);
simde_float16x16_t r = simde_vst1q_f16_x2(val[2]);
simde_test_arm_neon_write_f16x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_f16x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vst1q_f32_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 r[2][4];
simde_float32 a[8];
} test_vec[] = {
{
{ { SIMDE_FLOAT32_C( -814.14), SIMDE_FLOAT32_C( -94.07), SIMDE_FLOAT32_C( 948.70), SIMDE_FLOAT32_C( -406.94) },
{ SIMDE_FLOAT32_C( 726.28), SIMDE_FLOAT32_C( 949.91), SIMDE_FLOAT32_C( -352.52), SIMDE_FLOAT32_C( 185.24) } },
{ SIMDE_FLOAT32_C( -814.14), SIMDE_FLOAT32_C( -94.07), SIMDE_FLOAT32_C( 948.70), SIMDE_FLOAT32_C( -406.94),
SIMDE_FLOAT32_C( 726.28), SIMDE_FLOAT32_C( 949.91), SIMDE_FLOAT32_C( -352.52), SIMDE_FLOAT32_C( 185.24) } },
{
{ { SIMDE_FLOAT32_C( 286.92), SIMDE_FLOAT32_C( 764.27), SIMDE_FLOAT32_C( -522.50), SIMDE_FLOAT32_C( 86.44) },
{ SIMDE_FLOAT32_C( 133.06), SIMDE_FLOAT32_C( 598.10), SIMDE_FLOAT32_C( 639.80), SIMDE_FLOAT32_C( 910.39) } },
{ SIMDE_FLOAT32_C( 286.92), SIMDE_FLOAT32_C( 764.27), SIMDE_FLOAT32_C( -522.50), SIMDE_FLOAT32_C( 86.44),
SIMDE_FLOAT32_C( 133.06), SIMDE_FLOAT32_C( 598.10), SIMDE_FLOAT32_C( 639.80), SIMDE_FLOAT32_C( 910.39) } },
{
{ { SIMDE_FLOAT32_C( -462.75), SIMDE_FLOAT32_C( -168.94), SIMDE_FLOAT32_C( 654.57), SIMDE_FLOAT32_C( -619.06) },
{ SIMDE_FLOAT32_C( -663.52), SIMDE_FLOAT32_C( -730.61), SIMDE_FLOAT32_C( 624.00), SIMDE_FLOAT32_C( 502.46) } },
{ SIMDE_FLOAT32_C( -462.75), SIMDE_FLOAT32_C( -168.94), SIMDE_FLOAT32_C( 654.57), SIMDE_FLOAT32_C( -619.06),
SIMDE_FLOAT32_C( -663.52), SIMDE_FLOAT32_C( -730.61), SIMDE_FLOAT32_C( 624.00), SIMDE_FLOAT32_C( 502.46) } },
{
{ { SIMDE_FLOAT32_C( 356.79), SIMDE_FLOAT32_C( -915.72), SIMDE_FLOAT32_C( 439.28), SIMDE_FLOAT32_C( 204.87) },
{ SIMDE_FLOAT32_C( -612.34), SIMDE_FLOAT32_C( -70.37), SIMDE_FLOAT32_C( 33.68), SIMDE_FLOAT32_C( -426.49) } },
{ SIMDE_FLOAT32_C( 356.79), SIMDE_FLOAT32_C( -915.72), SIMDE_FLOAT32_C( 439.28), SIMDE_FLOAT32_C( 204.87),
SIMDE_FLOAT32_C( -612.34), SIMDE_FLOAT32_C( -70.37), SIMDE_FLOAT32_C( 33.68), SIMDE_FLOAT32_C( -426.49) } },
{
{ { SIMDE_FLOAT32_C( 835.56), SIMDE_FLOAT32_C( -17.62), SIMDE_FLOAT32_C( 166.58), SIMDE_FLOAT32_C( 561.84) },
{ SIMDE_FLOAT32_C( -67.72), SIMDE_FLOAT32_C( 814.06), SIMDE_FLOAT32_C( -252.91), SIMDE_FLOAT32_C( -780.80) } },
{ SIMDE_FLOAT32_C( 835.56), SIMDE_FLOAT32_C( -17.62), SIMDE_FLOAT32_C( 166.58), SIMDE_FLOAT32_C( 561.84),
SIMDE_FLOAT32_C( -67.72), SIMDE_FLOAT32_C( 814.06), SIMDE_FLOAT32_C( -252.91), SIMDE_FLOAT32_C( -780.80) } },
{
{ { SIMDE_FLOAT32_C( 578.33), SIMDE_FLOAT32_C( 224.58), SIMDE_FLOAT32_C( 305.65), SIMDE_FLOAT32_C( -288.61) },
{ SIMDE_FLOAT32_C( -177.32), SIMDE_FLOAT32_C( -54.55), SIMDE_FLOAT32_C( -378.22), SIMDE_FLOAT32_C( 359.94) } },
{ SIMDE_FLOAT32_C( 578.33), SIMDE_FLOAT32_C( 224.58), SIMDE_FLOAT32_C( 305.65), SIMDE_FLOAT32_C( -288.61),
SIMDE_FLOAT32_C( -177.32), SIMDE_FLOAT32_C( -54.55), SIMDE_FLOAT32_C( -378.22), SIMDE_FLOAT32_C( 359.94) } },
{
{ { SIMDE_FLOAT32_C( 776.51), SIMDE_FLOAT32_C( -723.65), SIMDE_FLOAT32_C( 740.87), SIMDE_FLOAT32_C( -887.01) },
{ SIMDE_FLOAT32_C( -454.26), SIMDE_FLOAT32_C( 364.87), SIMDE_FLOAT32_C( 615.45), SIMDE_FLOAT32_C( 902.53) } },
{ SIMDE_FLOAT32_C( 776.51), SIMDE_FLOAT32_C( -723.65), SIMDE_FLOAT32_C( 740.87), SIMDE_FLOAT32_C( -887.01),
SIMDE_FLOAT32_C( -454.26), SIMDE_FLOAT32_C( 364.87), SIMDE_FLOAT32_C( 615.45), SIMDE_FLOAT32_C( 902.53) } },
{
{ { SIMDE_FLOAT32_C( 449.16), SIMDE_FLOAT32_C( 54.72), SIMDE_FLOAT32_C( 107.41), SIMDE_FLOAT32_C( 836.82) },
{ SIMDE_FLOAT32_C( 984.35), SIMDE_FLOAT32_C( -858.92), SIMDE_FLOAT32_C( -589.67), SIMDE_FLOAT32_C( 819.91) } },
{ SIMDE_FLOAT32_C( 449.16), SIMDE_FLOAT32_C( 54.72), SIMDE_FLOAT32_C( 107.41), SIMDE_FLOAT32_C( 836.82),
SIMDE_FLOAT32_C( 984.35), SIMDE_FLOAT32_C( -858.92), SIMDE_FLOAT32_C( -589.67), SIMDE_FLOAT32_C( 819.91) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float32x4x2_t r_ = { { simde_vld1q_f32(test_vec[i].r[0]),
simde_vld1q_f32(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 simde_float32 a_[8];
simde_vst1q_f32_x2(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_float32x4x2_t c = {{a, b}};
simde_test_arm_neon_write_f32x4x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
simde_float32 buf[8];
simde_vst1q_f32_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 r[2][2];
simde_float64 a[4];
} test_vec[] = {
{
{ { SIMDE_FLOAT64_C( 123.46), SIMDE_FLOAT64_C( 576.90) },
{ SIMDE_FLOAT64_C( 381.75), SIMDE_FLOAT64_C( -944.26) } },
{ SIMDE_FLOAT64_C( 123.46), SIMDE_FLOAT64_C( 576.90), SIMDE_FLOAT64_C( 381.75), SIMDE_FLOAT64_C( -944.26) } },
{
{ { SIMDE_FLOAT64_C( 390.96), SIMDE_FLOAT64_C( -871.16) },
{ SIMDE_FLOAT64_C( -725.05), SIMDE_FLOAT64_C( -30.71) } },
{ SIMDE_FLOAT64_C( 390.96), SIMDE_FLOAT64_C( -871.16), SIMDE_FLOAT64_C( -725.05), SIMDE_FLOAT64_C( -30.71) } },
{
{ { SIMDE_FLOAT64_C( 353.42), SIMDE_FLOAT64_C( 580.59) },
{ SIMDE_FLOAT64_C( 680.68), SIMDE_FLOAT64_C( -823.89) } },
{ SIMDE_FLOAT64_C( 353.42), SIMDE_FLOAT64_C( 580.59), SIMDE_FLOAT64_C( 680.68), SIMDE_FLOAT64_C( -823.89) } },
{
{ { SIMDE_FLOAT64_C( -473.96), SIMDE_FLOAT64_C( -697.54) },
{ SIMDE_FLOAT64_C( 536.04), SIMDE_FLOAT64_C( -697.45) } },
{ SIMDE_FLOAT64_C( -473.96), SIMDE_FLOAT64_C( -697.54), SIMDE_FLOAT64_C( 536.04), SIMDE_FLOAT64_C( -697.45) } },
{
{ { SIMDE_FLOAT64_C( -421.19), SIMDE_FLOAT64_C( 276.92) },
{ SIMDE_FLOAT64_C( -584.46), SIMDE_FLOAT64_C( 124.55) } },
{ SIMDE_FLOAT64_C( -421.19), SIMDE_FLOAT64_C( 276.92), SIMDE_FLOAT64_C( -584.46), SIMDE_FLOAT64_C( 124.55) } },
{
{ { SIMDE_FLOAT64_C( -358.21), SIMDE_FLOAT64_C( -969.01) },
{ SIMDE_FLOAT64_C( 27.09), SIMDE_FLOAT64_C( -909.05) } },
{ SIMDE_FLOAT64_C( -358.21), SIMDE_FLOAT64_C( -969.01), SIMDE_FLOAT64_C( 27.09), SIMDE_FLOAT64_C( -909.05) } },
{
{ { SIMDE_FLOAT64_C( 85.71), SIMDE_FLOAT64_C( -865.51) },
{ SIMDE_FLOAT64_C( 927.77), SIMDE_FLOAT64_C( 70.06) } },
{ SIMDE_FLOAT64_C( 85.71), SIMDE_FLOAT64_C( -865.51), SIMDE_FLOAT64_C( 927.77), SIMDE_FLOAT64_C( 70.06) } },
{
{ { SIMDE_FLOAT64_C( -724.43), SIMDE_FLOAT64_C( -661.90) },
{ SIMDE_FLOAT64_C( -110.03), SIMDE_FLOAT64_C( 399.03) } },
{ SIMDE_FLOAT64_C( -724.43), SIMDE_FLOAT64_C( -661.90), SIMDE_FLOAT64_C( -110.03), SIMDE_FLOAT64_C( 399.03) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_float64x2x2_t r_ = { { simde_vld1q_f64(test_vec[i].r[0]),
simde_vld1q_f64(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 simde_float64 a_[4];
simde_vst1q_f64_x2(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_float64x2x2_t c = {{a, b}};
simde_test_arm_neon_write_f64x2x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
simde_float64 buf[4];
simde_vst1q_f64_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t r[2][16];
int8_t a[32];
} test_vec[] = {
{
{ { INT8_C( 96), INT8_C( 3), -INT8_C( 74), INT8_C( 109), -INT8_C( 64), -INT8_C( 106), INT8_C( 64), -INT8_C( 117),
INT8_C( 56), INT8_C( 41), INT8_C( 41), INT8_C( 117), -INT8_C( 27), INT8_C( 101), -INT8_C( 63), INT8_C( 97) },
{ -INT8_C( 39), -INT8_C( 25), -INT8_C( 81), INT8_C( 85), INT8_C( 34), -INT8_C( 5), -INT8_C( 58), -INT8_C( 114),
-INT8_C( 121), -INT8_C( 34), INT8_C( 23), -INT8_C( 116), -INT8_C( 57), INT8_C( 82), INT8_C( 68), INT8_C( 39) } },
{ INT8_C( 96), INT8_C( 3), -INT8_C( 74), INT8_C( 109), -INT8_C( 64), -INT8_C( 106), INT8_C( 64), -INT8_C( 117),
INT8_C( 56), INT8_C( 41), INT8_C( 41), INT8_C( 117), -INT8_C( 27), INT8_C( 101), -INT8_C( 63), INT8_C( 97),
-INT8_C( 39), -INT8_C( 25), -INT8_C( 81), INT8_C( 85), INT8_C( 34), -INT8_C( 5), -INT8_C( 58), -INT8_C( 114),
-INT8_C( 121), -INT8_C( 34), INT8_C( 23), -INT8_C( 116), -INT8_C( 57), INT8_C( 82), INT8_C( 68), INT8_C( 39) } },
{
{ { INT8_C( 86), -INT8_C( 6), -INT8_C( 107), INT8_C( 22), -INT8_C( 112), -INT8_C( 43), -INT8_C( 95), -INT8_C( 56),
-INT8_C( 2), -INT8_C( 54), INT8_C( 62), -INT8_C( 29), INT8_C( 48), -INT8_C( 1), INT8_C( 68), INT8_C( 9) },
{ -INT8_C( 26), -INT8_C( 13), INT8_C( 94), INT8_C( 8), -INT8_C( 17), INT8_C( 37), -INT8_C( 105), INT8_C( 118),
INT8_C( 3), -INT8_C( 82), INT8_C( 2), -INT8_C( 54), INT8_C( 1), INT8_C( 70), -INT8_C( 15), INT8_C( 87) } },
{ INT8_C( 86), -INT8_C( 6), -INT8_C( 107), INT8_C( 22), -INT8_C( 112), -INT8_C( 43), -INT8_C( 95), -INT8_C( 56),
-INT8_C( 2), -INT8_C( 54), INT8_C( 62), -INT8_C( 29), INT8_C( 48), -INT8_C( 1), INT8_C( 68), INT8_C( 9),
-INT8_C( 26), -INT8_C( 13), INT8_C( 94), INT8_C( 8), -INT8_C( 17), INT8_C( 37), -INT8_C( 105), INT8_C( 118),
INT8_C( 3), -INT8_C( 82), INT8_C( 2), -INT8_C( 54), INT8_C( 1), INT8_C( 70), -INT8_C( 15), INT8_C( 87) } },
{
{ { INT8_C( 64), -INT8_C( 122), INT8_C( 109), -INT8_C( 48), INT8_C( 91), INT8_C( 14), -INT8_C( 103), INT8_C( 89),
-INT8_C( 39), -INT8_C( 41), INT8_C( 61), INT8_C( 9), -INT8_C( 42), -INT8_C( 127), INT8_C( 18), -INT8_C( 67) },
{ INT8_C( 117), INT8_C( 113), -INT8_C( 59), INT8_C( 100), -INT8_C( 106), INT8_C( 92), -INT8_C( 38), -INT8_C( 103),
INT8_C( 11), -INT8_C( 35), INT8_C( 99), INT8_C( 12), INT8_C( 35), INT8_C( 84), INT8_C( 99), INT8_C( 100) } },
{ INT8_C( 64), -INT8_C( 122), INT8_C( 109), -INT8_C( 48), INT8_C( 91), INT8_C( 14), -INT8_C( 103), INT8_C( 89),
-INT8_C( 39), -INT8_C( 41), INT8_C( 61), INT8_C( 9), -INT8_C( 42), -INT8_C( 127), INT8_C( 18), -INT8_C( 67),
INT8_C( 117), INT8_C( 113), -INT8_C( 59), INT8_C( 100), -INT8_C( 106), INT8_C( 92), -INT8_C( 38), -INT8_C( 103),
INT8_C( 11), -INT8_C( 35), INT8_C( 99), INT8_C( 12), INT8_C( 35), INT8_C( 84), INT8_C( 99), INT8_C( 100) } },
{
{ { -INT8_C( 37), -INT8_C( 48), INT8_C( 52), INT8_C( 54), -INT8_C( 34), -INT8_C( 51), -INT8_C( 112), -INT8_C( 73),
-INT8_C( 92), -INT8_C( 51), -INT8_C( 64), INT8_C( 123), INT8_C( 78), -INT8_C( 45), INT8_C( 56), -INT8_C( 61) },
{ INT8_C( 68), -INT8_C( 3), INT8_C( 39), -INT8_C( 38), INT8_C( 90), INT8_C( 2), INT8_C( 115), INT8_C( 101),
-INT8_C( 33), -INT8_C( 42), INT8_C( 113), INT8_C( 2), INT8_C( 42), -INT8_C( 44), INT8_C( 102), INT8_C( 5) } },
{ -INT8_C( 37), -INT8_C( 48), INT8_C( 52), INT8_C( 54), -INT8_C( 34), -INT8_C( 51), -INT8_C( 112), -INT8_C( 73),
-INT8_C( 92), -INT8_C( 51), -INT8_C( 64), INT8_C( 123), INT8_C( 78), -INT8_C( 45), INT8_C( 56), -INT8_C( 61),
INT8_C( 68), -INT8_C( 3), INT8_C( 39), -INT8_C( 38), INT8_C( 90), INT8_C( 2), INT8_C( 115), INT8_C( 101),
-INT8_C( 33), -INT8_C( 42), INT8_C( 113), INT8_C( 2), INT8_C( 42), -INT8_C( 44), INT8_C( 102), INT8_C( 5) } },
{
{ { -INT8_C( 92), -INT8_C( 101), INT8_C( 60), -INT8_C( 126), INT8_C( 104), -INT8_C( 52), INT8_C( 58), INT8_C( 13),
-INT8_C( 103), -INT8_C( 6), -INT8_C( 120), -INT8_C( 25), -INT8_C( 51), -INT8_C( 64), -INT8_C( 85), INT8_C( 17) },
{ -INT8_C( 67), -INT8_C( 46), -INT8_C( 21), INT8_C( 23), -INT8_C( 44), INT8_C( 94), INT8_C( 124), -INT8_C( 77),
INT8_C( 52), -INT8_C( 19), -INT8_C( 74), INT8_C( 95), -INT8_C( 63), INT8_C( 28), INT8_C( 100), INT8_C( 101) } },
{ -INT8_C( 92), -INT8_C( 101), INT8_C( 60), -INT8_C( 126), INT8_C( 104), -INT8_C( 52), INT8_C( 58), INT8_C( 13),
-INT8_C( 103), -INT8_C( 6), -INT8_C( 120), -INT8_C( 25), -INT8_C( 51), -INT8_C( 64), -INT8_C( 85), INT8_C( 17),
-INT8_C( 67), -INT8_C( 46), -INT8_C( 21), INT8_C( 23), -INT8_C( 44), INT8_C( 94), INT8_C( 124), -INT8_C( 77),
INT8_C( 52), -INT8_C( 19), -INT8_C( 74), INT8_C( 95), -INT8_C( 63), INT8_C( 28), INT8_C( 100), INT8_C( 101) } },
{
{ { -INT8_C( 73), -INT8_C( 96), -INT8_C( 24), INT8_C( 32), INT8_C( 108), INT8_C( 34), INT8_C( 45), INT8_C( 5),
INT8_C( 28), -INT8_C( 75), -INT8_C( 19), -INT8_C( 22), INT8_C( 117), -INT8_C( 104), -INT8_C( 5), INT8_C( 50) },
{ INT8_C( 106), -INT8_C( 25), INT8_C( 74), INT8_C( 63), INT8_C( 69), -INT8_C( 58), -INT8_C( 14), INT8_C( 122),
-INT8_C( 76), -INT8_C( 88), -INT8_C( 39), INT8_C( 117), -INT8_C( 59), INT8_C( 61), -INT8_C( 37), INT8_C( 124) } },
{ -INT8_C( 73), -INT8_C( 96), -INT8_C( 24), INT8_C( 32), INT8_C( 108), INT8_C( 34), INT8_C( 45), INT8_C( 5),
INT8_C( 28), -INT8_C( 75), -INT8_C( 19), -INT8_C( 22), INT8_C( 117), -INT8_C( 104), -INT8_C( 5), INT8_C( 50),
INT8_C( 106), -INT8_C( 25), INT8_C( 74), INT8_C( 63), INT8_C( 69), -INT8_C( 58), -INT8_C( 14), INT8_C( 122),
-INT8_C( 76), -INT8_C( 88), -INT8_C( 39), INT8_C( 117), -INT8_C( 59), INT8_C( 61), -INT8_C( 37), INT8_C( 124) } },
{
{ { -INT8_C( 34), -INT8_C( 61), -INT8_C( 100), INT8_C( 74), -INT8_C( 27), -INT8_C( 55), INT8_C( 80), INT8_C( 1),
INT8_C( 126), INT8_C( 61), -INT8_C( 21), -INT8_C( 13), -INT8_C( 43), -INT8_C( 25), INT8_C( 38), INT8_C( 63) },
{ -INT8_C( 50), INT8_C( 112), INT8_C( 126), INT8_C( 19), INT8_C( 54), INT8_C( 113), -INT8_C( 115), -INT8_C( 22),
INT8_C( 25), INT8_C( 102), INT8_C( 96), -INT8_C( 34), -INT8_C( 92), INT8_C( 59), INT8_C( 91), -INT8_C( 126) } },
{ -INT8_C( 34), -INT8_C( 61), -INT8_C( 100), INT8_C( 74), -INT8_C( 27), -INT8_C( 55), INT8_C( 80), INT8_C( 1),
INT8_C( 126), INT8_C( 61), -INT8_C( 21), -INT8_C( 13), -INT8_C( 43), -INT8_C( 25), INT8_C( 38), INT8_C( 63),
-INT8_C( 50), INT8_C( 112), INT8_C( 126), INT8_C( 19), INT8_C( 54), INT8_C( 113), -INT8_C( 115), -INT8_C( 22),
INT8_C( 25), INT8_C( 102), INT8_C( 96), -INT8_C( 34), -INT8_C( 92), INT8_C( 59), INT8_C( 91), -INT8_C( 126) } },
{
{ { -INT8_C( 2), -INT8_C( 9), -INT8_C( 52), -INT8_C( 29), -INT8_C( 63), INT8_C( 28), -INT8_C( 28), INT8_C( 63),
INT8_C( 89), -INT8_C( 48), INT8_C( 51), INT8_C( 46), -INT8_C( 73), INT8_C( 89), INT8_C( 110), -INT8_C( 123) },
{ -INT8_C( 55), -INT8_C( 20), -INT8_C( 104), -INT8_C( 1), INT8_C( 93), INT8_C( 38), -INT8_C( 22), INT8_C( 119),
-INT8_C( 116), INT8_C( 74), INT8_C( 85), INT8_C( 48), -INT8_C( 123), -INT8_C( 80), -INT8_C( 78), -INT8_C( 125) } },
{ -INT8_C( 2), -INT8_C( 9), -INT8_C( 52), -INT8_C( 29), -INT8_C( 63), INT8_C( 28), -INT8_C( 28), INT8_C( 63),
INT8_C( 89), -INT8_C( 48), INT8_C( 51), INT8_C( 46), -INT8_C( 73), INT8_C( 89), INT8_C( 110), -INT8_C( 123),
-INT8_C( 55), -INT8_C( 20), -INT8_C( 104), -INT8_C( 1), INT8_C( 93), INT8_C( 38), -INT8_C( 22), INT8_C( 119),
-INT8_C( 116), INT8_C( 74), INT8_C( 85), INT8_C( 48), -INT8_C( 123), -INT8_C( 80), -INT8_C( 78), -INT8_C( 125) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int8x16x2_t r_ = { { simde_vld1q_s8(test_vec[i].r[0]),
simde_vld1q_s8(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 int8_t a_[32];
simde_vst1q_s8_x2(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_int8x16x2_t c = {{a, b}};
simde_test_arm_neon_write_i8x16x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
int8_t buf[32];
simde_vst1q_s8_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t r[2][8];
int16_t a[16];
} test_vec[] = {
{
{ { INT16_C( 32680), INT16_C( 26982), INT16_C( 19099), -INT16_C( 2648), -INT16_C( 9446), -INT16_C( 11997), -INT16_C( 28364), -INT16_C( 682) },
{ -INT16_C( 4226), -INT16_C( 9219), -INT16_C( 6379), -INT16_C( 24238), -INT16_C( 22479), -INT16_C( 18734), -INT16_C( 31656), INT16_C( 57) } },
{ INT16_C( 32680), INT16_C( 26982), INT16_C( 19099), -INT16_C( 2648), -INT16_C( 9446), -INT16_C( 11997), -INT16_C( 28364), -INT16_C( 682),
-INT16_C( 4226), -INT16_C( 9219), -INT16_C( 6379), -INT16_C( 24238), -INT16_C( 22479), -INT16_C( 18734), -INT16_C( 31656), INT16_C( 57) } },
{
{ { -INT16_C( 24829), -INT16_C( 24727), INT16_C( 4841), INT16_C( 1172), -INT16_C( 18451), INT16_C( 8917), INT16_C( 11337), -INT16_C( 14561) },
{ INT16_C( 7195), INT16_C( 12450), -INT16_C( 2813), INT16_C( 13521), -INT16_C( 23651), -INT16_C( 2582), INT16_C( 9000), INT16_C( 11254) } },
{ -INT16_C( 24829), -INT16_C( 24727), INT16_C( 4841), INT16_C( 1172), -INT16_C( 18451), INT16_C( 8917), INT16_C( 11337), -INT16_C( 14561),
INT16_C( 7195), INT16_C( 12450), -INT16_C( 2813), INT16_C( 13521), -INT16_C( 23651), -INT16_C( 2582), INT16_C( 9000), INT16_C( 11254) } },
{
{ { INT16_C( 24514), -INT16_C( 21302), INT16_C( 24177), INT16_C( 24496), -INT16_C( 31466), INT16_C( 24449), -INT16_C( 24399), -INT16_C( 13274) },
{ -INT16_C( 14147), -INT16_C( 16132), -INT16_C( 12611), INT16_C( 23285), -INT16_C( 8335), -INT16_C( 26288), INT16_C( 17923), -INT16_C( 14907) } },
{ INT16_C( 24514), -INT16_C( 21302), INT16_C( 24177), INT16_C( 24496), -INT16_C( 31466), INT16_C( 24449), -INT16_C( 24399), -INT16_C( 13274),
-INT16_C( 14147), -INT16_C( 16132), -INT16_C( 12611), INT16_C( 23285), -INT16_C( 8335), -INT16_C( 26288), INT16_C( 17923), -INT16_C( 14907) } },
{
{ { -INT16_C( 28763), INT16_C( 6001), INT16_C( 8686), INT16_C( 1142), -INT16_C( 2137), INT16_C( 22627), -INT16_C( 30313), INT16_C( 21541) },
{ INT16_C( 8529), INT16_C( 3861), INT16_C( 2799), INT16_C( 24937), -INT16_C( 17943), -INT16_C( 4870), -INT16_C( 16385), -INT16_C( 23118) } },
{ -INT16_C( 28763), INT16_C( 6001), INT16_C( 8686), INT16_C( 1142), -INT16_C( 2137), INT16_C( 22627), -INT16_C( 30313), INT16_C( 21541),
INT16_C( 8529), INT16_C( 3861), INT16_C( 2799), INT16_C( 24937), -INT16_C( 17943), -INT16_C( 4870), -INT16_C( 16385), -INT16_C( 23118) } },
{
{ { INT16_C( 9039), INT16_C( 15804), INT16_C( 12869), -INT16_C( 5055), -INT16_C( 23511), -INT16_C( 16316), INT16_C( 26925), INT16_C( 32277) },
{ INT16_C( 10891), INT16_C( 31373), -INT16_C( 2252), INT16_C( 7643), -INT16_C( 10576), -INT16_C( 20470), -INT16_C( 17259), -INT16_C( 7083) } },
{ INT16_C( 9039), INT16_C( 15804), INT16_C( 12869), -INT16_C( 5055), -INT16_C( 23511), -INT16_C( 16316), INT16_C( 26925), INT16_C( 32277),
INT16_C( 10891), INT16_C( 31373), -INT16_C( 2252), INT16_C( 7643), -INT16_C( 10576), -INT16_C( 20470), -INT16_C( 17259), -INT16_C( 7083) } },
{
{ { INT16_C( 4575), INT16_C( 9249), INT16_C( 25155), INT16_C( 27664), INT16_C( 21766), INT16_C( 13100), INT16_C( 16830), INT16_C( 18866) },
{ INT16_C( 16235), -INT16_C( 24636), -INT16_C( 24778), -INT16_C( 6211), -INT16_C( 14475), INT16_C( 2967), -INT16_C( 4989), INT16_C( 25327) } },
{ INT16_C( 4575), INT16_C( 9249), INT16_C( 25155), INT16_C( 27664), INT16_C( 21766), INT16_C( 13100), INT16_C( 16830), INT16_C( 18866),
INT16_C( 16235), -INT16_C( 24636), -INT16_C( 24778), -INT16_C( 6211), -INT16_C( 14475), INT16_C( 2967), -INT16_C( 4989), INT16_C( 25327) } },
{
{ { INT16_C( 4605), INT16_C( 16519), -INT16_C( 26765), INT16_C( 31404), -INT16_C( 10004), -INT16_C( 21587), INT16_C( 24346), -INT16_C( 31244) },
{ -INT16_C( 18273), -INT16_C( 10971), -INT16_C( 7592), -INT16_C( 12868), INT16_C( 21417), INT16_C( 11480), -INT16_C( 14273), INT16_C( 15502) } },
{ INT16_C( 4605), INT16_C( 16519), -INT16_C( 26765), INT16_C( 31404), -INT16_C( 10004), -INT16_C( 21587), INT16_C( 24346), -INT16_C( 31244),
-INT16_C( 18273), -INT16_C( 10971), -INT16_C( 7592), -INT16_C( 12868), INT16_C( 21417), INT16_C( 11480), -INT16_C( 14273), INT16_C( 15502) } },
{
{ { INT16_C( 5593), INT16_C( 19580), INT16_C( 10413), -INT16_C( 26170), INT16_C( 29697), INT16_C( 6980), INT16_C( 14803), INT16_C( 29344) },
{ -INT16_C( 14863), INT16_C( 18760), INT16_C( 1191), INT16_C( 20503), -INT16_C( 4264), -INT16_C( 26756), INT16_C( 2999), -INT16_C( 28460) } },
{ INT16_C( 5593), INT16_C( 19580), INT16_C( 10413), -INT16_C( 26170), INT16_C( 29697), INT16_C( 6980), INT16_C( 14803), INT16_C( 29344),
-INT16_C( 14863), INT16_C( 18760), INT16_C( 1191), INT16_C( 20503), -INT16_C( 4264), -INT16_C( 26756), INT16_C( 2999), -INT16_C( 28460) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int16x8x2_t r_ = { { simde_vld1q_s16(test_vec[i].r[0]),
simde_vld1q_s16(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 int16_t a_[16];
simde_vst1q_s16_x2(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_int16x8x2_t c = {{a, b}};
simde_test_arm_neon_write_i16x8x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
int16_t buf[16];
simde_vst1q_s16_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t r[2][4];
int32_t a[8];
} test_vec[] = {
{
{ { -INT32_C( 841134048), INT32_C( 2053612409), -INT32_C( 342512873), -INT32_C( 698534428) },
{ -INT32_C( 1574984197), INT32_C( 49493674), -INT32_C( 577147098), -INT32_C( 1687261830) } },
{ -INT32_C( 841134048), INT32_C( 2053612409), -INT32_C( 342512873), -INT32_C( 698534428), -INT32_C( 1574984197), INT32_C( 49493674), -INT32_C( 577147098), -INT32_C( 1687261830) } },
{
{ { INT32_C( 929582014), INT32_C( 112316398), INT32_C( 1609647739), INT32_C( 1983204987) },
{ -INT32_C( 1642506764), -INT32_C( 1314911093), -INT32_C( 158385797), INT32_C( 1704066471) } },
{ INT32_C( 929582014), INT32_C( 112316398), INT32_C( 1609647739), INT32_C( 1983204987), -INT32_C( 1642506764), -INT32_C( 1314911093), -INT32_C( 158385797), INT32_C( 1704066471) } },
{
{ { INT32_C( 916257096), INT32_C( 1144802761), INT32_C( 245575059), INT32_C( 1887820156) },
{ -INT32_C( 1190224338), INT32_C( 627814058), -INT32_C( 1910768921), INT32_C( 1072934135) } },
{ INT32_C( 916257096), INT32_C( 1144802761), INT32_C( 245575059), INT32_C( 1887820156), -INT32_C( 1190224338), INT32_C( 627814058), -INT32_C( 1910768921), INT32_C( 1072934135) } },
{
{ { INT32_C( 1869975462), INT32_C( 1874047708), INT32_C( 1535006431), INT32_C( 1573585711) },
{ INT32_C( 1259854241), INT32_C( 1869644423), INT32_C( 1945996412), -INT32_C( 558698184) } },
{ INT32_C( 1869975462), INT32_C( 1874047708), INT32_C( 1535006431), INT32_C( 1573585711), INT32_C( 1259854241), INT32_C( 1869644423), INT32_C( 1945996412), -INT32_C( 558698184) } },
{
{ { INT32_C( 1565337472), -INT32_C( 1177812775), -INT32_C( 2045490601), -INT32_C( 286990259) },
{ INT32_C( 1094319033), -INT32_C( 105862531), INT32_C( 1852615990), INT32_C( 525147806) } },
{ INT32_C( 1565337472), -INT32_C( 1177812775), -INT32_C( 2045490601), -INT32_C( 286990259), INT32_C( 1094319033), -INT32_C( 105862531), INT32_C( 1852615990), INT32_C( 525147806) } },
{
{ { INT32_C( 528259653), -INT32_C( 220706661), -INT32_C( 528946029), -INT32_C( 2033230644) },
{ -INT32_C( 725153705), -INT32_C( 389187662), -INT32_C( 1017693916), -INT32_C( 1646091177) } },
{ INT32_C( 528259653), -INT32_C( 220706661), -INT32_C( 528946029), -INT32_C( 2033230644), -INT32_C( 725153705), -INT32_C( 389187662), -INT32_C( 1017693916), -INT32_C( 1646091177) } },
{
{ { -INT32_C( 641966530), INT32_C( 969643174), INT32_C( 1293567104), -INT32_C( 120329824) },
{ -INT32_C( 1530094863), INT32_C( 898406929), INT32_C( 737731539), -INT32_C( 959915385) } },
{ -INT32_C( 641966530), INT32_C( 969643174), INT32_C( 1293567104), -INT32_C( 120329824), -INT32_C( 1530094863), INT32_C( 898406929), INT32_C( 737731539), -INT32_C( 959915385) } },
{
{ { -INT32_C( 543194056), -INT32_C( 1743230184), INT32_C( 1340420783), INT32_C( 222803995) },
{ INT32_C( 1672549458), -INT32_C( 2120663634), -INT32_C( 1465085663), -INT32_C( 1536265108) } },
{ -INT32_C( 543194056), -INT32_C( 1743230184), INT32_C( 1340420783), INT32_C( 222803995), INT32_C( 1672549458), -INT32_C( 2120663634), -INT32_C( 1465085663), -INT32_C( 1536265108) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int32x4x2_t r_ = { { simde_vld1q_s32(test_vec[i].r[0]),
simde_vld1q_s32(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 int32_t a_[8];
simde_vst1q_s32_x2(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_int32x4x2_t c = {{a, b}};
simde_test_arm_neon_write_i32x4x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
int32_t buf[8];
simde_vst1q_s32_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t r[2][2];
int64_t a[4];
} test_vec[] = {
{
{ { INT64_C( 2930045076363218680), -INT64_C( 7352197551061758258) },
{ INT64_C( 433074426653550803), INT64_C( 2033407270396604199) } },
{ INT64_C( 2930045076363218680), -INT64_C( 7352197551061758258), INT64_C( 433074426653550803), INT64_C( 2033407270396604199) } },
{
{ { INT64_C( 2795844041083501355), -INT64_C( 3007270938840382364) },
{ -INT64_C( 28330190206189137), -INT64_C( 7833789007332750840) } },
{ INT64_C( 2795844041083501355), -INT64_C( 3007270938840382364), -INT64_C( 28330190206189137), -INT64_C( 7833789007332750840) } },
{
{ { -INT64_C( 5907873566594468730), -INT64_C( 3953706261595745464) },
{ -INT64_C( 2686966923553507105), -INT64_C( 7476733964296239037) } },
{ -INT64_C( 5907873566594468730), -INT64_C( 3953706261595745464), -INT64_C( 2686966923553507105), -INT64_C( 7476733964296239037) } },
{
{ { -INT64_C( 4487140517914184254), -INT64_C( 8038593618844576883) },
{ INT64_C( 815429470462070693), INT64_C( 7489472592495334980) } },
{ -INT64_C( 4487140517914184254), -INT64_C( 8038593618844576883), INT64_C( 815429470462070693), INT64_C( 7489472592495334980) } },
{
{ { INT64_C( 7755813043085469032), -INT64_C( 9186634209688310207) },
{ INT64_C( 659293307359643987), INT64_C( 3938765996896017309) } },
{ INT64_C( 7755813043085469032), -INT64_C( 9186634209688310207), INT64_C( 659293307359643987), INT64_C( 3938765996896017309) } },
{
{ { -INT64_C( 8287264009362137933), -INT64_C( 1746831969183985561) },
{ -INT64_C( 7090873630430414390), -INT64_C( 501720045708118268) } },
{ -INT64_C( 8287264009362137933), -INT64_C( 1746831969183985561), -INT64_C( 7090873630430414390), -INT64_C( 501720045708118268) } },
{
{ { INT64_C( 4718516608015474853), -INT64_C( 4245409029095621991) },
{ INT64_C( 4944367729828436223), -INT64_C( 6187066256540599069) } },
{ INT64_C( 4718516608015474853), -INT64_C( 4245409029095621991), INT64_C( 4944367729828436223), -INT64_C( 6187066256540599069) } },
{
{ { -INT64_C( 3360787895511568832), INT64_C( 2796476047246221327) },
{ -INT64_C( 958771874141756628), INT64_C( 3021422666819881023) } },
{ -INT64_C( 3360787895511568832), INT64_C( 2796476047246221327), -INT64_C( 958771874141756628), INT64_C( 3021422666819881023) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int64x2x2_t r_ = { { simde_vld1q_s64(test_vec[i].r[0]),
simde_vld1q_s64(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 int64_t a_[4];
simde_vst1q_s64_x2(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_int64x2x2_t c = {{a, b}};
simde_test_arm_neon_write_i64x2x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
int64_t buf[4];
simde_vst1q_s64_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t r[2][16];
uint8_t a[32];
} test_vec[] = {
{
{ { UINT8_C(237), UINT8_C(135), UINT8_C( 67), UINT8_C( 37), UINT8_C(156), UINT8_C(159), UINT8_C(246), UINT8_C(171),
UINT8_C(127), UINT8_C(245), UINT8_C(181), UINT8_C(166), UINT8_C( 9), UINT8_C(132), UINT8_C(204), UINT8_C( 54) },
{ UINT8_C(167), UINT8_C(241), UINT8_C(163), UINT8_C(182), UINT8_C(180), UINT8_C( 84), UINT8_C(169), UINT8_C(243),
UINT8_C( 29), UINT8_C(197), UINT8_C( 55), UINT8_C( 5), UINT8_C( 4), UINT8_C( 37), UINT8_C( 46), UINT8_C(241) } },
{ UINT8_C(237), UINT8_C(135), UINT8_C( 67), UINT8_C( 37), UINT8_C(156), UINT8_C(159), UINT8_C(246), UINT8_C(171),
UINT8_C(127), UINT8_C(245), UINT8_C(181), UINT8_C(166), UINT8_C( 9), UINT8_C(132), UINT8_C(204), UINT8_C( 54),
UINT8_C(167), UINT8_C(241), UINT8_C(163), UINT8_C(182), UINT8_C(180), UINT8_C( 84), UINT8_C(169), UINT8_C(243),
UINT8_C( 29), UINT8_C(197), UINT8_C( 55), UINT8_C( 5), UINT8_C( 4), UINT8_C( 37), UINT8_C( 46), UINT8_C(241) } },
{
{ { UINT8_C(172), UINT8_C(114), UINT8_C( 22), UINT8_C( 73), UINT8_C( 17), UINT8_C( 12), UINT8_C(244), UINT8_C(145),
UINT8_C( 1), UINT8_C(170), UINT8_C( 55), UINT8_C( 11), UINT8_C( 46), UINT8_C( 3), UINT8_C( 65), UINT8_C(214) },
{ UINT8_C(244), UINT8_C(228), UINT8_C(140), UINT8_C(168), UINT8_C( 56), UINT8_C( 53), UINT8_C(155), UINT8_C( 85),
UINT8_C(250), UINT8_C(210), UINT8_C( 91), UINT8_C(254), UINT8_C(247), UINT8_C(137), UINT8_C(240), UINT8_C(164) } },
{ UINT8_C(172), UINT8_C(114), UINT8_C( 22), UINT8_C( 73), UINT8_C( 17), UINT8_C( 12), UINT8_C(244), UINT8_C(145),
UINT8_C( 1), UINT8_C(170), UINT8_C( 55), UINT8_C( 11), UINT8_C( 46), UINT8_C( 3), UINT8_C( 65), UINT8_C(214),
UINT8_C(244), UINT8_C(228), UINT8_C(140), UINT8_C(168), UINT8_C( 56), UINT8_C( 53), UINT8_C(155), UINT8_C( 85),
UINT8_C(250), UINT8_C(210), UINT8_C( 91), UINT8_C(254), UINT8_C(247), UINT8_C(137), UINT8_C(240), UINT8_C(164) } },
{
{ { UINT8_C(251), UINT8_C( 6), UINT8_C(237), UINT8_C( 13), UINT8_C( 19), UINT8_C(225), UINT8_C(158), UINT8_C( 20),
UINT8_C(139), UINT8_C(213), UINT8_C( 31), UINT8_C(186), UINT8_C(216), UINT8_C( 96), UINT8_C(144), UINT8_C(204) },
{ UINT8_C( 68), UINT8_C( 28), UINT8_C(117), UINT8_C(125), UINT8_C( 82), UINT8_C( 16), UINT8_C(210), UINT8_C( 76),
UINT8_C(227), UINT8_C( 45), UINT8_C( 75), UINT8_C(218), UINT8_C(183), UINT8_C( 59), UINT8_C(126), UINT8_C(178) } },
{ UINT8_C(251), UINT8_C( 6), UINT8_C(237), UINT8_C( 13), UINT8_C( 19), UINT8_C(225), UINT8_C(158), UINT8_C( 20),
UINT8_C(139), UINT8_C(213), UINT8_C( 31), UINT8_C(186), UINT8_C(216), UINT8_C( 96), UINT8_C(144), UINT8_C(204),
UINT8_C( 68), UINT8_C( 28), UINT8_C(117), UINT8_C(125), UINT8_C( 82), UINT8_C( 16), UINT8_C(210), UINT8_C( 76),
UINT8_C(227), UINT8_C( 45), UINT8_C( 75), UINT8_C(218), UINT8_C(183), UINT8_C( 59), UINT8_C(126), UINT8_C(178) } },
{
{ { UINT8_C( 65), UINT8_C(107), UINT8_C(191), UINT8_C( 84), UINT8_C( 77), UINT8_C( 93), UINT8_C(105), UINT8_C(216),
UINT8_C( 50), UINT8_C(136), UINT8_C(146), UINT8_C( 10), UINT8_C(233), UINT8_C( 34), UINT8_C(215), UINT8_C( 45) },
{ UINT8_C( 63), UINT8_C( 76), UINT8_C(170), UINT8_C(145), UINT8_C( 92), UINT8_C(125), UINT8_C(221), UINT8_C( 63),
UINT8_C(170), UINT8_C( 40), UINT8_C( 26), UINT8_C( 97), UINT8_C( 99), UINT8_C(152), UINT8_C( 20), UINT8_C(165) } },
{ UINT8_C( 65), UINT8_C(107), UINT8_C(191), UINT8_C( 84), UINT8_C( 77), UINT8_C( 93), UINT8_C(105), UINT8_C(216),
UINT8_C( 50), UINT8_C(136), UINT8_C(146), UINT8_C( 10), UINT8_C(233), UINT8_C( 34), UINT8_C(215), UINT8_C( 45),
UINT8_C( 63), UINT8_C( 76), UINT8_C(170), UINT8_C(145), UINT8_C( 92), UINT8_C(125), UINT8_C(221), UINT8_C( 63),
UINT8_C(170), UINT8_C( 40), UINT8_C( 26), UINT8_C( 97), UINT8_C( 99), UINT8_C(152), UINT8_C( 20), UINT8_C(165) } },
{
{ { UINT8_C( 4), UINT8_C(211), UINT8_C(249), UINT8_C( 81), UINT8_C( 49), UINT8_C( 98), UINT8_C( 41), UINT8_C( 99),
UINT8_C(235), UINT8_C(188), UINT8_C(110), UINT8_C(212), UINT8_C(222), UINT8_C( 69), UINT8_C( 1), UINT8_C( 29) },
{ UINT8_C(145), UINT8_C(172), UINT8_C(174), UINT8_C(237), UINT8_C( 41), UINT8_C(140), UINT8_C( 45), UINT8_C(211),
UINT8_C(180), UINT8_C( 71), UINT8_C( 53), UINT8_C( 24), UINT8_C(223), UINT8_C( 73), UINT8_C(189), UINT8_C(227) } },
{ UINT8_C( 4), UINT8_C(211), UINT8_C(249), UINT8_C( 81), UINT8_C( 49), UINT8_C( 98), UINT8_C( 41), UINT8_C( 99),
UINT8_C(235), UINT8_C(188), UINT8_C(110), UINT8_C(212), UINT8_C(222), UINT8_C( 69), UINT8_C( 1), UINT8_C( 29),
UINT8_C(145), UINT8_C(172), UINT8_C(174), UINT8_C(237), UINT8_C( 41), UINT8_C(140), UINT8_C( 45), UINT8_C(211),
UINT8_C(180), UINT8_C( 71), UINT8_C( 53), UINT8_C( 24), UINT8_C(223), UINT8_C( 73), UINT8_C(189), UINT8_C(227) } },
{
{ { UINT8_C( 28), UINT8_C(182), UINT8_C( 52), UINT8_C( 77), UINT8_C( 25), UINT8_C( 94), UINT8_C(177), UINT8_C( 4),
UINT8_C( 26), UINT8_C( 31), UINT8_C(216), UINT8_C(248), UINT8_C(100), UINT8_C(217), UINT8_C( 22), UINT8_C(245) },
{ UINT8_C(133), UINT8_C(196), UINT8_C(226), UINT8_C(174), UINT8_C( 80), UINT8_C( 15), UINT8_C(130), UINT8_C( 5),
UINT8_C( 86), UINT8_C(183), UINT8_C( 29), UINT8_C( 54), UINT8_C( 0), UINT8_C(218), UINT8_C( 25), UINT8_C( 28) } },
{ UINT8_C( 28), UINT8_C(182), UINT8_C( 52), UINT8_C( 77), UINT8_C( 25), UINT8_C( 94), UINT8_C(177), UINT8_C( 4),
UINT8_C( 26), UINT8_C( 31), UINT8_C(216), UINT8_C(248), UINT8_C(100), UINT8_C(217), UINT8_C( 22), UINT8_C(245),
UINT8_C(133), UINT8_C(196), UINT8_C(226), UINT8_C(174), UINT8_C( 80), UINT8_C( 15), UINT8_C(130), UINT8_C( 5),
UINT8_C( 86), UINT8_C(183), UINT8_C( 29), UINT8_C( 54), UINT8_C( 0), UINT8_C(218), UINT8_C( 25), UINT8_C( 28) } },
{
{ { UINT8_C(144), UINT8_C( 78), UINT8_C(106), UINT8_C(169), UINT8_C(172), UINT8_C( 27), UINT8_C(173), UINT8_C(198),
UINT8_C( 58), UINT8_C(133), UINT8_C(190), UINT8_C(158), UINT8_C( 95), UINT8_C(212), UINT8_C(147), UINT8_C(228) },
{ UINT8_C(153), UINT8_C(117), UINT8_C(147), UINT8_C(233), UINT8_C(133), UINT8_C( 21), UINT8_C(238), UINT8_C(219),
UINT8_C(204), UINT8_C( 11), UINT8_C( 17), UINT8_C(204), UINT8_C(229), UINT8_C( 43), UINT8_C(232), UINT8_C(118) } },
{ UINT8_C(144), UINT8_C( 78), UINT8_C(106), UINT8_C(169), UINT8_C(172), UINT8_C( 27), UINT8_C(173), UINT8_C(198),
UINT8_C( 58), UINT8_C(133), UINT8_C(190), UINT8_C(158), UINT8_C( 95), UINT8_C(212), UINT8_C(147), UINT8_C(228),
UINT8_C(153), UINT8_C(117), UINT8_C(147), UINT8_C(233), UINT8_C(133), UINT8_C( 21), UINT8_C(238), UINT8_C(219),
UINT8_C(204), UINT8_C( 11), UINT8_C( 17), UINT8_C(204), UINT8_C(229), UINT8_C( 43), UINT8_C(232), UINT8_C(118) } },
{
{ { UINT8_C(121), UINT8_C( 82), UINT8_C( 31), UINT8_C( 37), UINT8_C(109), UINT8_C(205), UINT8_C(235), UINT8_C(167),
UINT8_C( 82), UINT8_C(169), UINT8_C( 69), UINT8_C(177), UINT8_C(126), UINT8_C(216), UINT8_C(150), UINT8_C( 23) },
{ UINT8_C( 78), UINT8_C( 41), UINT8_C( 0), UINT8_C(211), UINT8_C( 62), UINT8_C(239), UINT8_C(174), UINT8_C( 10),
UINT8_C(250), UINT8_C(192), UINT8_C(214), UINT8_C(224), UINT8_C(235), UINT8_C(190), UINT8_C( 86), UINT8_C(100) } },
{ UINT8_C(121), UINT8_C( 82), UINT8_C( 31), UINT8_C( 37), UINT8_C(109), UINT8_C(205), UINT8_C(235), UINT8_C(167),
UINT8_C( 82), UINT8_C(169), UINT8_C( 69), UINT8_C(177), UINT8_C(126), UINT8_C(216), UINT8_C(150), UINT8_C( 23),
UINT8_C( 78), UINT8_C( 41), UINT8_C( 0), UINT8_C(211), UINT8_C( 62), UINT8_C(239), UINT8_C(174), UINT8_C( 10),
UINT8_C(250), UINT8_C(192), UINT8_C(214), UINT8_C(224), UINT8_C(235), UINT8_C(190), UINT8_C( 86), UINT8_C(100) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint8x16x2_t r_ = { { simde_vld1q_u8(test_vec[i].r[0]),
simde_vld1q_u8(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 uint8_t a_[32];
simde_vst1q_u8_x2(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_uint8x16x2_t c = {{a, b}};
simde_test_arm_neon_write_u8x16x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
uint8_t buf[32];
simde_vst1q_u8_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t r[2][8];
uint16_t a[16];
} test_vec[] = {
{
{ { UINT16_C(29969), UINT16_C(32393), UINT16_C(29762), UINT16_C(38182), UINT16_C(27421), UINT16_C(39750), UINT16_C(56388), UINT16_C(37554) },
{ UINT16_C(45829), UINT16_C(17253), UINT16_C( 5026), UINT16_C(40013), UINT16_C( 9171), UINT16_C(48764), UINT16_C(53986), UINT16_C(62242) } },
{ UINT16_C(29969), UINT16_C(32393), UINT16_C(29762), UINT16_C(38182), UINT16_C(27421), UINT16_C(39750), UINT16_C(56388), UINT16_C(37554),
UINT16_C(45829), UINT16_C(17253), UINT16_C( 5026), UINT16_C(40013), UINT16_C( 9171), UINT16_C(48764), UINT16_C(53986), UINT16_C(62242) } },
{
{ { UINT16_C(43848), UINT16_C(35441), UINT16_C(38687), UINT16_C(15647), UINT16_C(26115), UINT16_C(18392), UINT16_C(35650), UINT16_C(18649) },
{ UINT16_C(15934), UINT16_C(57483), UINT16_C(55633), UINT16_C( 9596), UINT16_C(63996), UINT16_C(57059), UINT16_C( 1739), UINT16_C( 5073) } },
{ UINT16_C(43848), UINT16_C(35441), UINT16_C(38687), UINT16_C(15647), UINT16_C(26115), UINT16_C(18392), UINT16_C(35650), UINT16_C(18649),
UINT16_C(15934), UINT16_C(57483), UINT16_C(55633), UINT16_C( 9596), UINT16_C(63996), UINT16_C(57059), UINT16_C( 1739), UINT16_C( 5073) } },
{
{ { UINT16_C(17329), UINT16_C(53662), UINT16_C(48602), UINT16_C(56590), UINT16_C(58915), UINT16_C(26148), UINT16_C(64881), UINT16_C(44974) },
{ UINT16_C(14651), UINT16_C(36239), UINT16_C( 3090), UINT16_C( 4018), UINT16_C(38149), UINT16_C(53485), UINT16_C(49051), UINT16_C(19940) } },
{ UINT16_C(17329), UINT16_C(53662), UINT16_C(48602), UINT16_C(56590), UINT16_C(58915), UINT16_C(26148), UINT16_C(64881), UINT16_C(44974),
UINT16_C(14651), UINT16_C(36239), UINT16_C( 3090), UINT16_C( 4018), UINT16_C(38149), UINT16_C(53485), UINT16_C(49051), UINT16_C(19940) } },
{
{ { UINT16_C(33282), UINT16_C(56350), UINT16_C(11327), UINT16_C(25530), UINT16_C(56850), UINT16_C(33993), UINT16_C(30684), UINT16_C( 5939) },
{ UINT16_C(50096), UINT16_C(50084), UINT16_C(22223), UINT16_C(54482), UINT16_C(49132), UINT16_C(34724), UINT16_C(34942), UINT16_C(32980) } },
{ UINT16_C(33282), UINT16_C(56350), UINT16_C(11327), UINT16_C(25530), UINT16_C(56850), UINT16_C(33993), UINT16_C(30684), UINT16_C( 5939),
UINT16_C(50096), UINT16_C(50084), UINT16_C(22223), UINT16_C(54482), UINT16_C(49132), UINT16_C(34724), UINT16_C(34942), UINT16_C(32980) } },
{
{ { UINT16_C(61962), UINT16_C(19037), UINT16_C( 5918), UINT16_C(12717), UINT16_C(30453), UINT16_C(53685), UINT16_C(59629), UINT16_C(40425) },
{ UINT16_C(36267), UINT16_C(31328), UINT16_C(13028), UINT16_C(53326), UINT16_C(62450), UINT16_C(28759), UINT16_C(11387), UINT16_C(34545) } },
{ UINT16_C(61962), UINT16_C(19037), UINT16_C( 5918), UINT16_C(12717), UINT16_C(30453), UINT16_C(53685), UINT16_C(59629), UINT16_C(40425),
UINT16_C(36267), UINT16_C(31328), UINT16_C(13028), UINT16_C(53326), UINT16_C(62450), UINT16_C(28759), UINT16_C(11387), UINT16_C(34545) } },
{
{ { UINT16_C(19998), UINT16_C(15824), UINT16_C(32101), UINT16_C(23150), UINT16_C( 9203), UINT16_C(57388), UINT16_C( 5387), UINT16_C(46973) },
{ UINT16_C(56994), UINT16_C(34353), UINT16_C(32784), UINT16_C( 598), UINT16_C(44659), UINT16_C(61043), UINT16_C(25818), UINT16_C(63604) } },
{ UINT16_C(19998), UINT16_C(15824), UINT16_C(32101), UINT16_C(23150), UINT16_C( 9203), UINT16_C(57388), UINT16_C( 5387), UINT16_C(46973),
UINT16_C(56994), UINT16_C(34353), UINT16_C(32784), UINT16_C( 598), UINT16_C(44659), UINT16_C(61043), UINT16_C(25818), UINT16_C(63604) } },
{
{ { UINT16_C(17586), UINT16_C( 5941), UINT16_C(41921), UINT16_C(46193), UINT16_C(40390), UINT16_C(53908), UINT16_C( 4786), UINT16_C(21897) },
{ UINT16_C(47856), UINT16_C( 219), UINT16_C(12858), UINT16_C(44291), UINT16_C(30432), UINT16_C(47772), UINT16_C( 4314), UINT16_C(36018) } },
{ UINT16_C(17586), UINT16_C( 5941), UINT16_C(41921), UINT16_C(46193), UINT16_C(40390), UINT16_C(53908), UINT16_C( 4786), UINT16_C(21897),
UINT16_C(47856), UINT16_C( 219), UINT16_C(12858), UINT16_C(44291), UINT16_C(30432), UINT16_C(47772), UINT16_C( 4314), UINT16_C(36018) } },
{
{ { UINT16_C(59477), UINT16_C( 5795), UINT16_C( 5259), UINT16_C(21195), UINT16_C(24498), UINT16_C(25636), UINT16_C(44401), UINT16_C(25017) },
{ UINT16_C(38247), UINT16_C(41570), UINT16_C(26055), UINT16_C(42831), UINT16_C(60379), UINT16_C(46433), UINT16_C( 5116), UINT16_C(20801) } },
{ UINT16_C(59477), UINT16_C( 5795), UINT16_C( 5259), UINT16_C(21195), UINT16_C(24498), UINT16_C(25636), UINT16_C(44401), UINT16_C(25017),
UINT16_C(38247), UINT16_C(41570), UINT16_C(26055), UINT16_C(42831), UINT16_C(60379), UINT16_C(46433), UINT16_C( 5116), UINT16_C(20801) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint16x8x2_t r_ = { { simde_vld1q_u16(test_vec[i].r[0]),
simde_vld1q_u16(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 uint16_t a_[16];
simde_vst1q_u16_x2(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_uint16x8x2_t c = {{a, b}};
simde_test_arm_neon_write_u16x8x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
uint16_t buf[16];
simde_vst1q_u16_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t r[2][4];
uint32_t a[8];
} test_vec[] = {
{
{ { UINT32_C(2271732987), UINT32_C(2866361080), UINT32_C( 51379602), UINT32_C( 291883178) },
{ UINT32_C( 615761757), UINT32_C( 130745132), UINT32_C(3938200814), UINT32_C( 993787200) } },
{ UINT32_C(2271732987), UINT32_C(2866361080), UINT32_C( 51379602), UINT32_C( 291883178), UINT32_C( 615761757), UINT32_C( 130745132), UINT32_C(3938200814), UINT32_C( 993787200) } },
{
{ { UINT32_C(3653411809), UINT32_C(1736743893), UINT32_C(1114346392), UINT32_C(3109343323) },
{ UINT32_C(3286042519), UINT32_C(4190808330), UINT32_C( 367232725), UINT32_C(1683038083) } },
{ UINT32_C(3653411809), UINT32_C(1736743893), UINT32_C(1114346392), UINT32_C(3109343323), UINT32_C(3286042519), UINT32_C(4190808330), UINT32_C( 367232725), UINT32_C(1683038083) } },
{
{ { UINT32_C(2537362370), UINT32_C(1207943599), UINT32_C(2961861204), UINT32_C(3513376314) },
{ UINT32_C(4036249317), UINT32_C(3320405743), UINT32_C(1742392548), UINT32_C(2915773419) } },
{ UINT32_C(2537362370), UINT32_C(1207943599), UINT32_C(2961861204), UINT32_C(3513376314), UINT32_C(4036249317), UINT32_C(3320405743), UINT32_C(1742392548), UINT32_C(2915773419) } },
{
{ { UINT32_C(3997501503), UINT32_C( 506807498), UINT32_C(3905863598), UINT32_C(2209953693) },
{ UINT32_C(1836273022), UINT32_C(2402442411), UINT32_C( 351669544), UINT32_C(2009186616) } },
{ UINT32_C(3997501503), UINT32_C( 506807498), UINT32_C(3905863598), UINT32_C(2209953693), UINT32_C(1836273022), UINT32_C(2402442411), UINT32_C( 351669544), UINT32_C(2009186616) } },
{
{ { UINT32_C(2472871625), UINT32_C(4172454730), UINT32_C(4175462490), UINT32_C( 914069944) },
{ UINT32_C(2443439846), UINT32_C(1914754634), UINT32_C( 461772515), UINT32_C(2710784215) } },
{ UINT32_C(2472871625), UINT32_C(4172454730), UINT32_C(4175462490), UINT32_C( 914069944), UINT32_C(2443439846), UINT32_C(1914754634), UINT32_C( 461772515), UINT32_C(2710784215) } },
{
{ { UINT32_C(2570385486), UINT32_C(4002539155), UINT32_C( 535196263), UINT32_C(4065681675) },
{ UINT32_C(2575562831), UINT32_C(2970330318), UINT32_C(2462945978), UINT32_C( 674455770) } },
{ UINT32_C(2570385486), UINT32_C(4002539155), UINT32_C( 535196263), UINT32_C(4065681675), UINT32_C(2575562831), UINT32_C(2970330318), UINT32_C(2462945978), UINT32_C( 674455770) } },
{
{ { UINT32_C(3972097880), UINT32_C(3050984270), UINT32_C(3503603909), UINT32_C(1891772705) },
{ UINT32_C(4027139617), UINT32_C(2762020074), UINT32_C(2151050918), UINT32_C( 665414094) } },
{ UINT32_C(3972097880), UINT32_C(3050984270), UINT32_C(3503603909), UINT32_C(1891772705), UINT32_C(4027139617), UINT32_C(2762020074), UINT32_C(2151050918), UINT32_C( 665414094) } },
{
{ { UINT32_C( 521366225), UINT32_C(2194992573), UINT32_C(3461589165), UINT32_C(4064155089) },
{ UINT32_C(1172457307), UINT32_C( 48923739), UINT32_C(3246530802), UINT32_C(1541942154) } },
{ UINT32_C( 521366225), UINT32_C(2194992573), UINT32_C(3461589165), UINT32_C(4064155089), UINT32_C(1172457307), UINT32_C( 48923739), UINT32_C(3246530802), UINT32_C(1541942154) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint32x4x2_t r_ = { { simde_vld1q_u32(test_vec[i].r[0]),
simde_vld1q_u32(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 uint32_t a_[8];
simde_vst1q_u32_x2(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_uint32x4x2_t c = {{a, b}};
simde_test_arm_neon_write_u32x4x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
uint32_t buf[8];
simde_vst1q_u32_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t r[2][2];
uint64_t a[4];
} test_vec[] = {
{
{ { UINT64_C(10796903916407290774), UINT64_C(11149119643537582582) },
{ UINT64_C( 1316679606490602728), UINT64_C( 9930362357686716650) } },
{ UINT64_C(10796903916407290774), UINT64_C(11149119643537582582), UINT64_C( 1316679606490602728), UINT64_C( 9930362357686716650) } },
{
{ { UINT64_C(10174673446946818486), UINT64_C( 2284465441299797724) },
{ UINT64_C( 5178198792333399209), UINT64_C( 2444762366588202864) } },
{ UINT64_C(10174673446946818486), UINT64_C( 2284465441299797724), UINT64_C( 5178198792333399209), UINT64_C( 2444762366588202864) } },
{
{ { UINT64_C( 6482917908610599635), UINT64_C( 207491423798578058) },
{ UINT64_C( 6728845050283574460), UINT64_C( 8927452396905373015) } },
{ UINT64_C( 6482917908610599635), UINT64_C( 207491423798578058), UINT64_C( 6728845050283574460), UINT64_C( 8927452396905373015) } },
{
{ { UINT64_C( 2400662246140519545), UINT64_C(12215104609406141480) },
{ UINT64_C( 5715390053786800136), UINT64_C( 4207759264570282561) } },
{ UINT64_C( 2400662246140519545), UINT64_C(12215104609406141480), UINT64_C( 5715390053786800136), UINT64_C( 4207759264570282561) } },
{
{ { UINT64_C( 5716053253585652122), UINT64_C( 205570166553065028) },
{ UINT64_C( 282680873016794532), UINT64_C(10256192735776931418) } },
{ UINT64_C( 5716053253585652122), UINT64_C( 205570166553065028), UINT64_C( 282680873016794532), UINT64_C(10256192735776931418) } },
{
{ { UINT64_C( 5408561497708136089), UINT64_C(15583675393062526792) },
{ UINT64_C(15976345421416315891), UINT64_C(10223539436100625247) } },
{ UINT64_C( 5408561497708136089), UINT64_C(15583675393062526792), UINT64_C(15976345421416315891), UINT64_C(10223539436100625247) } },
{
{ { UINT64_C(18097254080183115988), UINT64_C(16953944800766108219) },
{ UINT64_C( 9015739291487157693), UINT64_C( 4214156927691659258) } },
{ UINT64_C(18097254080183115988), UINT64_C(16953944800766108219), UINT64_C( 9015739291487157693), UINT64_C( 4214156927691659258) } },
{
{ { UINT64_C( 6845536459476551761), UINT64_C( 9133326161295654621) },
{ UINT64_C(12785680545442848724), UINT64_C( 4725150053639864307) } },
{ UINT64_C( 6845536459476551761), UINT64_C( 9133326161295654621), UINT64_C(12785680545442848724), UINT64_C( 4725150053639864307) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint64x2x2_t r_ = { { simde_vld1q_u64(test_vec[i].r[0]),
simde_vld1q_u64(test_vec[i].r[1]) } };
SIMDE_ALIGN_TO_16 uint64_t a_[4];
simde_vst1q_u64_x2(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_uint64x2x2_t c = {{a, b}};
simde_test_arm_neon_write_u64x2x2(2, c, SIMDE_TEST_VEC_POS_FIRST);
uint64_t buf[4];
simde_vst1q_u64_x2(buf, c);
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_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
SIMDE_ALIGN_TO_16 simde_poly8_t val[2][16];
SIMDE_ALIGN_TO_16 simde_poly8_t r[32];
} test_vec[] = {
{ { { SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 25),
SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 234), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 245),
SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 15),
SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 159), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 97) },
{ SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 240),
SIMDE_POLY8_C( 156), SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 200), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 232), SIMDE_POLY8_C( 197),
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 191), SIMDE_POLY8_C( 242) } },
{ SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 251), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 25),
SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 234), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 245),
SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 15),
SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 159), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 97),
SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 240),
SIMDE_POLY8_C( 156), SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 200), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 232), SIMDE_POLY8_C( 197),
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 191), SIMDE_POLY8_C( 242) } },
{ { { SIMDE_POLY8_C( 194), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 67),
SIMDE_POLY8_C( 129), SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 125),
SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 41),
SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 243) },
{ SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 200), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 154),
SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 93),
SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 133) } },
{ SIMDE_POLY8_C( 194), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 67),
SIMDE_POLY8_C( 129), SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 125),
SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 41),
SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 243),
SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 200), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 154),
SIMDE_POLY8_C( 15), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 93),
SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 133) } },
{ { { SIMDE_POLY8_C( 227), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 219), SIMDE_POLY8_C( 78),
SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 37),
SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 46),
SIMDE_POLY8_C( 137), SIMDE_POLY8_C( 122), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 151) },
{ SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 242), SIMDE_POLY8_C( 4),
SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 214), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 38),
SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 30),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 142), SIMDE_POLY8_C( 168), SIMDE_POLY8_C( 68) } },
{ SIMDE_POLY8_C( 227), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 219), SIMDE_POLY8_C( 78),
SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 37),
SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 46),
SIMDE_POLY8_C( 137), SIMDE_POLY8_C( 122), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 151),
SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 79), SIMDE_POLY8_C( 242), SIMDE_POLY8_C( 4),
SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 214), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 38),
SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 30),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 142), SIMDE_POLY8_C( 168), SIMDE_POLY8_C( 68) } },
{ { { SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 122), SIMDE_POLY8_C( 214), SIMDE_POLY8_C( 112),
SIMDE_POLY8_C( 221), SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 205),
SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 27),
SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 204), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 245) },
{ SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 191),
SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 225),
SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 215),
SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 148), SIMDE_POLY8_C( 195), SIMDE_POLY8_C( 222) } },
{ SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 122), SIMDE_POLY8_C( 214), SIMDE_POLY8_C( 112),
SIMDE_POLY8_C( 221), SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 205),
SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 27),
SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 204), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 245),
SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 191),
SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 225),
SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 215),
SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 148), SIMDE_POLY8_C( 195), SIMDE_POLY8_C( 222) } },
{ { { SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 132), SIMDE_POLY8_C( 176),
SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 78),
SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 190),
SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 19) },
{ SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 187), SIMDE_POLY8_C( 104),
SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 82),
SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 217),
SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 136), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 30) } },
{ SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 132), SIMDE_POLY8_C( 176),
SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 78),
SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 190),
SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 188), SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 19),
SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 187), SIMDE_POLY8_C( 104),
SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 82),
SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 217),
SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 136), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 30) } },
{ { { SIMDE_POLY8_C( 142), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 197),
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 185),
SIMDE_POLY8_C( 136), SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 243), SIMDE_POLY8_C( 253) },
{ SIMDE_POLY8_C( 157), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 31),
SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 78),
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 49),
SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 172) } },
{ SIMDE_POLY8_C( 142), SIMDE_POLY8_C( 82), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 197),
SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 184), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 185),
SIMDE_POLY8_C( 136), SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 243), SIMDE_POLY8_C( 253),
SIMDE_POLY8_C( 157), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 31),
SIMDE_POLY8_C( 19), SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 78),
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 49),
SIMDE_POLY8_C( 128), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 172) } },
{ { { SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 176),
SIMDE_POLY8_C( 108), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 224),
SIMDE_POLY8_C( 211), SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 186),
SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 204) },
{ SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 219),
SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 177),
SIMDE_POLY8_C( 201), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 172),
SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 173), SIMDE_POLY8_C( 126) } },
{ SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 176),
SIMDE_POLY8_C( 108), SIMDE_POLY8_C( 25), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 224),
SIMDE_POLY8_C( 211), SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 186),
SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 204),
SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 222), SIMDE_POLY8_C( 219),
SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 177),
SIMDE_POLY8_C( 201), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 172),
SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 173), SIMDE_POLY8_C( 126) } },
{ { { SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 147),
SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 148), SIMDE_POLY8_C( 31),
SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 247),
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 110), SIMDE_POLY8_C( 155) },
{ SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 84),
SIMDE_POLY8_C( 208), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 217),
SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 155),
SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 103) } },
{ SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 147),
SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 148), SIMDE_POLY8_C( 31),
SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 247),
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 110), SIMDE_POLY8_C( 155),
SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 84),
SIMDE_POLY8_C( 208), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 217),
SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 155),
SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 103) } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
SIMDE_ALIGN_TO_16 simde_poly8x16x2_t val = {{
simde_vld1q_p8(test_vec[i].val[0]),
simde_vld1q_p8(test_vec[i].val[1]),
}};
SIMDE_ALIGN_TO_16 simde_poly8_t r_[32];
simde_vst1q_p8_x2(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_poly8x2_t val[2] = simde_test_arm_neon_random_p8x2();
simde_poly8x32_t r = simde_vst1q_p8_x2(val[2]);
simde_test_arm_neon_write_p8x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p8x32(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vst1q_p16_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
SIMDE_ALIGN_TO_16 simde_poly16_t val[2][8];
SIMDE_ALIGN_TO_16 simde_poly16_t r[16];
} test_vec[] = {
{ { { SIMDE_POLY16_C( 10266), SIMDE_POLY16_C( 453), SIMDE_POLY16_C( 24339), SIMDE_POLY16_C( 55409),
SIMDE_POLY16_C( 33804), SIMDE_POLY16_C( 36793), SIMDE_POLY16_C( 23404), SIMDE_POLY16_C( 22760) },
{ SIMDE_POLY16_C( 14339), SIMDE_POLY16_C( 13914), SIMDE_POLY16_C( 34554), SIMDE_POLY16_C( 13800),
SIMDE_POLY16_C( 31941), SIMDE_POLY16_C( 14692), SIMDE_POLY16_C( 43057), SIMDE_POLY16_C( 48622) } },
{ SIMDE_POLY16_C( 10266), SIMDE_POLY16_C( 453), SIMDE_POLY16_C( 24339), SIMDE_POLY16_C( 55409),
SIMDE_POLY16_C( 33804), SIMDE_POLY16_C( 36793), SIMDE_POLY16_C( 23404), SIMDE_POLY16_C( 22760),
SIMDE_POLY16_C( 14339), SIMDE_POLY16_C( 13914), SIMDE_POLY16_C( 34554), SIMDE_POLY16_C( 13800),
SIMDE_POLY16_C( 31941), SIMDE_POLY16_C( 14692), SIMDE_POLY16_C( 43057), SIMDE_POLY16_C( 48622) } },
{ { { SIMDE_POLY16_C( 36997), SIMDE_POLY16_C( 43819), SIMDE_POLY16_C( 63661), SIMDE_POLY16_C( 28276),
SIMDE_POLY16_C( 19812), SIMDE_POLY16_C( 10362), SIMDE_POLY16_C( 49094), SIMDE_POLY16_C( 39537) },
{ SIMDE_POLY16_C( 48222), SIMDE_POLY16_C( 20868), SIMDE_POLY16_C( 32518), SIMDE_POLY16_C( 14810),
SIMDE_POLY16_C( 22343), SIMDE_POLY16_C( 24159), SIMDE_POLY16_C( 41580), SIMDE_POLY16_C( 40523) } },
{ SIMDE_POLY16_C( 36997), SIMDE_POLY16_C( 43819), SIMDE_POLY16_C( 63661), SIMDE_POLY16_C( 28276),
SIMDE_POLY16_C( 19812), SIMDE_POLY16_C( 10362), SIMDE_POLY16_C( 49094), SIMDE_POLY16_C( 39537),
SIMDE_POLY16_C( 48222), SIMDE_POLY16_C( 20868), SIMDE_POLY16_C( 32518), SIMDE_POLY16_C( 14810),
SIMDE_POLY16_C( 22343), SIMDE_POLY16_C( 24159), SIMDE_POLY16_C( 41580), SIMDE_POLY16_C( 40523) } },
{ { { SIMDE_POLY16_C( 13423), SIMDE_POLY16_C( 16869), SIMDE_POLY16_C( 2310), SIMDE_POLY16_C( 19537),
SIMDE_POLY16_C( 53651), SIMDE_POLY16_C( 6703), SIMDE_POLY16_C( 18895), SIMDE_POLY16_C( 52177) },
{ SIMDE_POLY16_C( 65195), SIMDE_POLY16_C( 52281), SIMDE_POLY16_C( 27504), SIMDE_POLY16_C( 37625),
SIMDE_POLY16_C( 49675), SIMDE_POLY16_C( 44146), SIMDE_POLY16_C( 22769), SIMDE_POLY16_C( 49088) } },
{ SIMDE_POLY16_C( 13423), SIMDE_POLY16_C( 16869), SIMDE_POLY16_C( 2310), SIMDE_POLY16_C( 19537),
SIMDE_POLY16_C( 53651), SIMDE_POLY16_C( 6703), SIMDE_POLY16_C( 18895), SIMDE_POLY16_C( 52177),
SIMDE_POLY16_C( 65195), SIMDE_POLY16_C( 52281), SIMDE_POLY16_C( 27504), SIMDE_POLY16_C( 37625),
SIMDE_POLY16_C( 49675), SIMDE_POLY16_C( 44146), SIMDE_POLY16_C( 22769), SIMDE_POLY16_C( 49088) } },
{ { { SIMDE_POLY16_C( 36618), SIMDE_POLY16_C( 5368), SIMDE_POLY16_C( 61199), SIMDE_POLY16_C( 17023),
SIMDE_POLY16_C( 65443), SIMDE_POLY16_C( 47723), SIMDE_POLY16_C( 22555), SIMDE_POLY16_C( 9975) },
{ SIMDE_POLY16_C( 45356), SIMDE_POLY16_C( 2319), SIMDE_POLY16_C( 2088), SIMDE_POLY16_C( 41915),
SIMDE_POLY16_C( 42255), SIMDE_POLY16_C( 61260), SIMDE_POLY16_C( 19719), SIMDE_POLY16_C( 53780) } },
{ SIMDE_POLY16_C( 36618), SIMDE_POLY16_C( 5368), SIMDE_POLY16_C( 61199), SIMDE_POLY16_C( 17023),
SIMDE_POLY16_C( 65443), SIMDE_POLY16_C( 47723), SIMDE_POLY16_C( 22555), SIMDE_POLY16_C( 9975),
SIMDE_POLY16_C( 45356), SIMDE_POLY16_C( 2319), SIMDE_POLY16_C( 2088), SIMDE_POLY16_C( 41915),
SIMDE_POLY16_C( 42255), SIMDE_POLY16_C( 61260), SIMDE_POLY16_C( 19719), SIMDE_POLY16_C( 53780) } },
{ { { SIMDE_POLY16_C( 49273), SIMDE_POLY16_C( 18037), SIMDE_POLY16_C( 35452), SIMDE_POLY16_C( 23038),
SIMDE_POLY16_C( 50227), SIMDE_POLY16_C( 11203), SIMDE_POLY16_C( 56981), SIMDE_POLY16_C( 30351) },
{ SIMDE_POLY16_C( 40051), SIMDE_POLY16_C( 23559), SIMDE_POLY16_C( 26348), SIMDE_POLY16_C( 64612),
SIMDE_POLY16_C( 49796), SIMDE_POLY16_C( 15465), SIMDE_POLY16_C( 59847), SIMDE_POLY16_C( 64578) } },
{ SIMDE_POLY16_C( 49273), SIMDE_POLY16_C( 18037), SIMDE_POLY16_C( 35452), SIMDE_POLY16_C( 23038),
SIMDE_POLY16_C( 50227), SIMDE_POLY16_C( 11203), SIMDE_POLY16_C( 56981), SIMDE_POLY16_C( 30351),
SIMDE_POLY16_C( 40051), SIMDE_POLY16_C( 23559), SIMDE_POLY16_C( 26348), SIMDE_POLY16_C( 64612),
SIMDE_POLY16_C( 49796), SIMDE_POLY16_C( 15465), SIMDE_POLY16_C( 59847), SIMDE_POLY16_C( 64578) } },
{ { { SIMDE_POLY16_C( 19710), SIMDE_POLY16_C( 35587), SIMDE_POLY16_C( 64958), SIMDE_POLY16_C( 26447),
SIMDE_POLY16_C( 28262), SIMDE_POLY16_C( 63131), SIMDE_POLY16_C( 53382), SIMDE_POLY16_C( 63921) },
{ SIMDE_POLY16_C( 18688), SIMDE_POLY16_C( 11158), SIMDE_POLY16_C( 47961), SIMDE_POLY16_C( 16205),
SIMDE_POLY16_C( 37522), SIMDE_POLY16_C( 10230), SIMDE_POLY16_C( 52131), SIMDE_POLY16_C( 43624) } },
{ SIMDE_POLY16_C( 19710), SIMDE_POLY16_C( 35587), SIMDE_POLY16_C( 64958), SIMDE_POLY16_C( 26447),
SIMDE_POLY16_C( 28262), SIMDE_POLY16_C( 63131), SIMDE_POLY16_C( 53382), SIMDE_POLY16_C( 63921),
SIMDE_POLY16_C( 18688), SIMDE_POLY16_C( 11158), SIMDE_POLY16_C( 47961), SIMDE_POLY16_C( 16205),
SIMDE_POLY16_C( 37522), SIMDE_POLY16_C( 10230), SIMDE_POLY16_C( 52131), SIMDE_POLY16_C( 43624) } },
{ { { SIMDE_POLY16_C( 29666), SIMDE_POLY16_C( 20751), SIMDE_POLY16_C( 28968), SIMDE_POLY16_C( 11065),
SIMDE_POLY16_C( 17103), SIMDE_POLY16_C( 20450), SIMDE_POLY16_C( 30042), SIMDE_POLY16_C( 41586) },
{ SIMDE_POLY16_C( 54163), SIMDE_POLY16_C( 33517), SIMDE_POLY16_C( 28639), SIMDE_POLY16_C( 61278),
SIMDE_POLY16_C( 11001), SIMDE_POLY16_C( 32424), SIMDE_POLY16_C( 25560), SIMDE_POLY16_C( 31242) } },
{ SIMDE_POLY16_C( 29666), SIMDE_POLY16_C( 20751), SIMDE_POLY16_C( 28968), SIMDE_POLY16_C( 11065),
SIMDE_POLY16_C( 17103), SIMDE_POLY16_C( 20450), SIMDE_POLY16_C( 30042), SIMDE_POLY16_C( 41586),
SIMDE_POLY16_C( 54163), SIMDE_POLY16_C( 33517), SIMDE_POLY16_C( 28639), SIMDE_POLY16_C( 61278),
SIMDE_POLY16_C( 11001), SIMDE_POLY16_C( 32424), SIMDE_POLY16_C( 25560), SIMDE_POLY16_C( 31242) } },
{ { { SIMDE_POLY16_C( 38435), SIMDE_POLY16_C( 53213), SIMDE_POLY16_C( 53834), SIMDE_POLY16_C( 45438),
SIMDE_POLY16_C( 61595), SIMDE_POLY16_C( 46068), SIMDE_POLY16_C( 60730), SIMDE_POLY16_C( 23648) },
{ SIMDE_POLY16_C( 1142), SIMDE_POLY16_C( 19819), SIMDE_POLY16_C( 12655), SIMDE_POLY16_C( 31261),
SIMDE_POLY16_C( 59326), SIMDE_POLY16_C( 37223), SIMDE_POLY16_C( 36074), SIMDE_POLY16_C( 54268) } },
{ SIMDE_POLY16_C( 38435), SIMDE_POLY16_C( 53213), SIMDE_POLY16_C( 53834), SIMDE_POLY16_C( 45438),
SIMDE_POLY16_C( 61595), SIMDE_POLY16_C( 46068), SIMDE_POLY16_C( 60730), SIMDE_POLY16_C( 23648),
SIMDE_POLY16_C( 1142), SIMDE_POLY16_C( 19819), SIMDE_POLY16_C( 12655), SIMDE_POLY16_C( 31261),
SIMDE_POLY16_C( 59326), SIMDE_POLY16_C( 37223), SIMDE_POLY16_C( 36074), SIMDE_POLY16_C( 54268) } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
SIMDE_ALIGN_TO_16 simde_poly16x8x2_t val = {{
simde_vld1q_p16(test_vec[i].val[0]),
simde_vld1q_p16(test_vec[i].val[1]),
}};
SIMDE_ALIGN_TO_16 simde_poly16_t r_[16];
simde_vst1q_p16_x2(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_poly16x2_t val[2] = simde_test_arm_neon_random_p16x2();
simde_poly16x16_t r = simde_vst1q_p16_x2(val[2]);
simde_test_arm_neon_write_p16x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p16x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vst1q_p64_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t val[2][2];
simde_poly64_t r[4];
} test_vec[] = {
{ { { SIMDE_POLY64_C(18137341211300896017), SIMDE_POLY64_C(18129070660849794614) },
{ SIMDE_POLY64_C(15548630917253218626), SIMDE_POLY64_C( 384653869528540473) } },
{ SIMDE_POLY64_C(18137341211300896017), SIMDE_POLY64_C(18129070660849794614), SIMDE_POLY64_C(15548630917253218626), SIMDE_POLY64_C( 384653869528540473) } },
{ { { SIMDE_POLY64_C( 5106885978315313316), SIMDE_POLY64_C( 2584464812228293252) },
{ SIMDE_POLY64_C(16082191628870594949), SIMDE_POLY64_C(16693895109160151600) } },
{ SIMDE_POLY64_C( 5106885978315313316), SIMDE_POLY64_C( 2584464812228293252), SIMDE_POLY64_C(16082191628870594949), SIMDE_POLY64_C(16693895109160151600) } },
{ { { SIMDE_POLY64_C(17170701338533115132), SIMDE_POLY64_C( 9155352405127413893) },
{ SIMDE_POLY64_C(10809410590974935409), SIMDE_POLY64_C( 3579400702953445711) } },
{ SIMDE_POLY64_C(17170701338533115132), SIMDE_POLY64_C( 9155352405127413893), SIMDE_POLY64_C(10809410590974935409), SIMDE_POLY64_C( 3579400702953445711) } },
{ { { SIMDE_POLY64_C( 3301881110653363432), SIMDE_POLY64_C(17590622306059800943) },
{ SIMDE_POLY64_C( 9783394590388186442), SIMDE_POLY64_C( 1496411401747424419) } },
{ SIMDE_POLY64_C( 3301881110653363432), SIMDE_POLY64_C(17590622306059800943), SIMDE_POLY64_C( 9783394590388186442), SIMDE_POLY64_C( 1496411401747424419) } },
{ { { SIMDE_POLY64_C( 1346564172340821730), SIMDE_POLY64_C(15229765525577822955) },
{ SIMDE_POLY64_C( 1775198335512810016), SIMDE_POLY64_C( 8038637536701673989) } },
{ SIMDE_POLY64_C( 1346564172340821730), SIMDE_POLY64_C(15229765525577822955), SIMDE_POLY64_C( 1775198335512810016), SIMDE_POLY64_C( 8038637536701673989) } },
{ { { SIMDE_POLY64_C(16683385406791156880), SIMDE_POLY64_C( 1230718406569210931) },
{ SIMDE_POLY64_C(15372084538358915777), SIMDE_POLY64_C( 1662489998024694966) } },
{ SIMDE_POLY64_C(16683385406791156880), SIMDE_POLY64_C( 1230718406569210931), SIMDE_POLY64_C(15372084538358915777), SIMDE_POLY64_C( 1662489998024694966) } },
{ { { SIMDE_POLY64_C(15376693268482518763), SIMDE_POLY64_C(14869684423898231152) },
{ SIMDE_POLY64_C(14255114737246682918), SIMDE_POLY64_C(16718250131693707977) } },
{ SIMDE_POLY64_C(15376693268482518763), SIMDE_POLY64_C(14869684423898231152), SIMDE_POLY64_C(14255114737246682918), SIMDE_POLY64_C(16718250131693707977) } },
{ { { SIMDE_POLY64_C( 1903623655786240591), SIMDE_POLY64_C(18204096181602736409) },
{ SIMDE_POLY64_C(14087104026220872489), SIMDE_POLY64_C(18108425052063750849) } },
{ SIMDE_POLY64_C( 1903623655786240591), SIMDE_POLY64_C(18204096181602736409), SIMDE_POLY64_C(14087104026220872489), SIMDE_POLY64_C(18108425052063750849) } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_poly64x2x2_t val = {{
simde_vld1q_p64(test_vec[i].val[0]),
simde_vld1q_p64(test_vec[i].val[1]),
}};
simde_poly64_t r_[4];
simde_vst1q_p64_x2(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_poly64x2_t val[2] = simde_test_arm_neon_random_p64x2();
simde_poly64x4_t r = simde_vst1q_p64_x2(val[2]);
simde_test_arm_neon_write_p64x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p64x4(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vst1q_bf16_x2 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_bfloat16 val[2][8];
simde_bfloat16 r[16];
} test_vec[] = {
{ { { SIMDE_BFLOAT16_VALUE( - 20.956), SIMDE_BFLOAT16_VALUE( - 58.964), SIMDE_BFLOAT16_VALUE( - 74.395), SIMDE_BFLOAT16_VALUE( - 58.069),
SIMDE_BFLOAT16_VALUE( - 73.918), SIMDE_BFLOAT16_VALUE( - 88.889), SIMDE_BFLOAT16_VALUE( - 89.387), SIMDE_BFLOAT16_VALUE( 26.229) },
{ SIMDE_BFLOAT16_VALUE( 67.698), SIMDE_BFLOAT16_VALUE( 18.105), SIMDE_BFLOAT16_VALUE( 25.021), SIMDE_BFLOAT16_VALUE( 34.669),
SIMDE_BFLOAT16_VALUE( - 49.404), SIMDE_BFLOAT16_VALUE( - 56.913), SIMDE_BFLOAT16_VALUE( 84.184), SIMDE_BFLOAT16_VALUE( 59.094) } },
{ SIMDE_BFLOAT16_VALUE( - 20.956), SIMDE_BFLOAT16_VALUE( - 58.964), SIMDE_BFLOAT16_VALUE( - 74.395), SIMDE_BFLOAT16_VALUE( - 58.069),
SIMDE_BFLOAT16_VALUE( - 73.918), SIMDE_BFLOAT16_VALUE( - 88.889), SIMDE_BFLOAT16_VALUE( - 89.387), SIMDE_BFLOAT16_VALUE( 26.229),
SIMDE_BFLOAT16_VALUE( 67.698), SIMDE_BFLOAT16_VALUE( 18.105), SIMDE_BFLOAT16_VALUE( 25.021), SIMDE_BFLOAT16_VALUE( 34.669),
SIMDE_BFLOAT16_VALUE( - 49.404), SIMDE_BFLOAT16_VALUE( - 56.913), SIMDE_BFLOAT16_VALUE( 84.184), SIMDE_BFLOAT16_VALUE( 59.094) } },
{ { { SIMDE_BFLOAT16_VALUE( 2.598), SIMDE_BFLOAT16_VALUE( - 70.000), SIMDE_BFLOAT16_VALUE( 41.157), SIMDE_BFLOAT16_VALUE( - 83.059),
SIMDE_BFLOAT16_VALUE( - 90.002), SIMDE_BFLOAT16_VALUE( 21.783), SIMDE_BFLOAT16_VALUE( 70.489), SIMDE_BFLOAT16_VALUE( 17.433) },
{ SIMDE_BFLOAT16_VALUE( - 86.074), SIMDE_BFLOAT16_VALUE( 41.189), SIMDE_BFLOAT16_VALUE( 63.234), SIMDE_BFLOAT16_VALUE( 12.204),
SIMDE_BFLOAT16_VALUE( 7.910), SIMDE_BFLOAT16_VALUE( - 15.107), SIMDE_BFLOAT16_VALUE( - 16.136), SIMDE_BFLOAT16_VALUE( 13.310) } },
{ SIMDE_BFLOAT16_VALUE( 2.598), SIMDE_BFLOAT16_VALUE( - 70.000), SIMDE_BFLOAT16_VALUE( 41.157), SIMDE_BFLOAT16_VALUE( - 83.059),
SIMDE_BFLOAT16_VALUE( - 90.002), SIMDE_BFLOAT16_VALUE( 21.783), SIMDE_BFLOAT16_VALUE( 70.489), SIMDE_BFLOAT16_VALUE( 17.433),
SIMDE_BFLOAT16_VALUE( - 86.074), SIMDE_BFLOAT16_VALUE( 41.189), SIMDE_BFLOAT16_VALUE( 63.234), SIMDE_BFLOAT16_VALUE( 12.204),
SIMDE_BFLOAT16_VALUE( 7.910), SIMDE_BFLOAT16_VALUE( - 15.107), SIMDE_BFLOAT16_VALUE( - 16.136), SIMDE_BFLOAT16_VALUE( 13.310) } },
{ { { SIMDE_BFLOAT16_VALUE( - 58.406), SIMDE_BFLOAT16_VALUE( - 64.859), SIMDE_BFLOAT16_VALUE( - 31.395), SIMDE_BFLOAT16_VALUE( 12.432),
SIMDE_BFLOAT16_VALUE( - 14.707), SIMDE_BFLOAT16_VALUE( 84.786), SIMDE_BFLOAT16_VALUE( - 39.961), SIMDE_BFLOAT16_VALUE( 98.967) },
{ SIMDE_BFLOAT16_VALUE( 28.677), SIMDE_BFLOAT16_VALUE( 63.490), SIMDE_BFLOAT16_VALUE( 74.828), SIMDE_BFLOAT16_VALUE( 21.706),
SIMDE_BFLOAT16_VALUE( 22.304), SIMDE_BFLOAT16_VALUE( 71.547), SIMDE_BFLOAT16_VALUE( 80.978), SIMDE_BFLOAT16_VALUE( 16.394) } },
{ SIMDE_BFLOAT16_VALUE( - 58.406), SIMDE_BFLOAT16_VALUE( - 64.859), SIMDE_BFLOAT16_VALUE( - 31.395), SIMDE_BFLOAT16_VALUE( 12.432),
SIMDE_BFLOAT16_VALUE( - 14.707), SIMDE_BFLOAT16_VALUE( 84.786), SIMDE_BFLOAT16_VALUE( - 39.961), SIMDE_BFLOAT16_VALUE( 98.967),
SIMDE_BFLOAT16_VALUE( 28.677), SIMDE_BFLOAT16_VALUE( 63.490), SIMDE_BFLOAT16_VALUE( 74.828), SIMDE_BFLOAT16_VALUE( 21.706),
SIMDE_BFLOAT16_VALUE( 22.304), SIMDE_BFLOAT16_VALUE( 71.547), SIMDE_BFLOAT16_VALUE( 80.978), SIMDE_BFLOAT16_VALUE( 16.394) } },
{ { { SIMDE_BFLOAT16_VALUE( 97.804), SIMDE_BFLOAT16_VALUE( 73.823), SIMDE_BFLOAT16_VALUE( - 8.059), SIMDE_BFLOAT16_VALUE( 93.096),
SIMDE_BFLOAT16_VALUE( 90.504), SIMDE_BFLOAT16_VALUE( - 2.398), SIMDE_BFLOAT16_VALUE( 30.759), SIMDE_BFLOAT16_VALUE( - 94.855) },
{ SIMDE_BFLOAT16_VALUE( - 5.801), SIMDE_BFLOAT16_VALUE( - 68.562), SIMDE_BFLOAT16_VALUE( - 54.678), SIMDE_BFLOAT16_VALUE( 22.048),
SIMDE_BFLOAT16_VALUE( - 71.055), SIMDE_BFLOAT16_VALUE( - 30.977), SIMDE_BFLOAT16_VALUE( 18.382), SIMDE_BFLOAT16_VALUE( 11.761) } },
{ SIMDE_BFLOAT16_VALUE( 97.804), SIMDE_BFLOAT16_VALUE( 73.823), SIMDE_BFLOAT16_VALUE( - 8.059), SIMDE_BFLOAT16_VALUE( 93.096),
SIMDE_BFLOAT16_VALUE( 90.504), SIMDE_BFLOAT16_VALUE( - 2.398), SIMDE_BFLOAT16_VALUE( 30.759), SIMDE_BFLOAT16_VALUE( - 94.855),
SIMDE_BFLOAT16_VALUE( - 5.801), SIMDE_BFLOAT16_VALUE( - 68.562), SIMDE_BFLOAT16_VALUE( - 54.678), SIMDE_BFLOAT16_VALUE( 22.048),
SIMDE_BFLOAT16_VALUE( - 71.055), SIMDE_BFLOAT16_VALUE( - 30.977), SIMDE_BFLOAT16_VALUE( 18.382), SIMDE_BFLOAT16_VALUE( 11.761) } },
{ { { SIMDE_BFLOAT16_VALUE( 55.035), SIMDE_BFLOAT16_VALUE( 94.504), SIMDE_BFLOAT16_VALUE( 21.867), SIMDE_BFLOAT16_VALUE( 60.556),
SIMDE_BFLOAT16_VALUE( - 21.374), SIMDE_BFLOAT16_VALUE( 82.466), SIMDE_BFLOAT16_VALUE( 84.824), SIMDE_BFLOAT16_VALUE( 31.885) },
{ SIMDE_BFLOAT16_VALUE( 17.599), SIMDE_BFLOAT16_VALUE( - 18.858), SIMDE_BFLOAT16_VALUE( - 97.376), SIMDE_BFLOAT16_VALUE( - 85.414),
SIMDE_BFLOAT16_VALUE( - 37.173), SIMDE_BFLOAT16_VALUE( 36.083), SIMDE_BFLOAT16_VALUE( 51.414), SIMDE_BFLOAT16_VALUE( 42.445) } },
{ SIMDE_BFLOAT16_VALUE( 55.035), SIMDE_BFLOAT16_VALUE( 94.504), SIMDE_BFLOAT16_VALUE( 21.867), SIMDE_BFLOAT16_VALUE( 60.556),
SIMDE_BFLOAT16_VALUE( - 21.374), SIMDE_BFLOAT16_VALUE( 82.466), SIMDE_BFLOAT16_VALUE( 84.824), SIMDE_BFLOAT16_VALUE( 31.885),
SIMDE_BFLOAT16_VALUE( 17.599), SIMDE_BFLOAT16_VALUE( - 18.858), SIMDE_BFLOAT16_VALUE( - 97.376), SIMDE_BFLOAT16_VALUE( - 85.414),
SIMDE_BFLOAT16_VALUE( - 37.173), SIMDE_BFLOAT16_VALUE( 36.083), SIMDE_BFLOAT16_VALUE( 51.414), SIMDE_BFLOAT16_VALUE( 42.445) } },
{ { { SIMDE_BFLOAT16_VALUE( - 58.353), SIMDE_BFLOAT16_VALUE( 94.351), SIMDE_BFLOAT16_VALUE( - 72.718), SIMDE_BFLOAT16_VALUE( 44.738),
SIMDE_BFLOAT16_VALUE( 88.331), SIMDE_BFLOAT16_VALUE( 93.544), SIMDE_BFLOAT16_VALUE( 79.940), SIMDE_BFLOAT16_VALUE( - 29.844) },
{ SIMDE_BFLOAT16_VALUE( - 64.679), SIMDE_BFLOAT16_VALUE( - 31.234), SIMDE_BFLOAT16_VALUE( 25.402), SIMDE_BFLOAT16_VALUE( 61.429),
SIMDE_BFLOAT16_VALUE( - 80.532), SIMDE_BFLOAT16_VALUE( 19.659), SIMDE_BFLOAT16_VALUE( - 67.325), SIMDE_BFLOAT16_VALUE( 54.634) } },
{ SIMDE_BFLOAT16_VALUE( - 58.353), SIMDE_BFLOAT16_VALUE( 94.351), SIMDE_BFLOAT16_VALUE( - 72.718), SIMDE_BFLOAT16_VALUE( 44.738),
SIMDE_BFLOAT16_VALUE( 88.331), SIMDE_BFLOAT16_VALUE( 93.544), SIMDE_BFLOAT16_VALUE( 79.940), SIMDE_BFLOAT16_VALUE( - 29.844),
SIMDE_BFLOAT16_VALUE( - 64.679), SIMDE_BFLOAT16_VALUE( - 31.234), SIMDE_BFLOAT16_VALUE( 25.402), SIMDE_BFLOAT16_VALUE( 61.429),
SIMDE_BFLOAT16_VALUE( - 80.532), SIMDE_BFLOAT16_VALUE( 19.659), SIMDE_BFLOAT16_VALUE( - 67.325), SIMDE_BFLOAT16_VALUE( 54.634) } },
{ { { SIMDE_BFLOAT16_VALUE( - 99.773), SIMDE_BFLOAT16_VALUE( 27.004), SIMDE_BFLOAT16_VALUE( 53.708), SIMDE_BFLOAT16_VALUE( 12.664),
SIMDE_BFLOAT16_VALUE( 66.275), SIMDE_BFLOAT16_VALUE( - 0.836), SIMDE_BFLOAT16_VALUE( - 22.661), SIMDE_BFLOAT16_VALUE( 72.602) },
{ SIMDE_BFLOAT16_VALUE( 25.260), SIMDE_BFLOAT16_VALUE( - 83.782), SIMDE_BFLOAT16_VALUE( - 61.087), SIMDE_BFLOAT16_VALUE( - 38.948),
SIMDE_BFLOAT16_VALUE( - 78.380), SIMDE_BFLOAT16_VALUE( 6.817), SIMDE_BFLOAT16_VALUE( - 82.373), SIMDE_BFLOAT16_VALUE( - 60.011) } },
{ SIMDE_BFLOAT16_VALUE( - 99.773), SIMDE_BFLOAT16_VALUE( 27.004), SIMDE_BFLOAT16_VALUE( 53.708), SIMDE_BFLOAT16_VALUE( 12.664),
SIMDE_BFLOAT16_VALUE( 66.275), SIMDE_BFLOAT16_VALUE( - 0.836), SIMDE_BFLOAT16_VALUE( - 22.661), SIMDE_BFLOAT16_VALUE( 72.602),
SIMDE_BFLOAT16_VALUE( 25.260), SIMDE_BFLOAT16_VALUE( - 83.782), SIMDE_BFLOAT16_VALUE( - 61.087), SIMDE_BFLOAT16_VALUE( - 38.948),
SIMDE_BFLOAT16_VALUE( - 78.380), SIMDE_BFLOAT16_VALUE( 6.817), SIMDE_BFLOAT16_VALUE( - 82.373), SIMDE_BFLOAT16_VALUE( - 60.011) } },
{ { { SIMDE_BFLOAT16_VALUE( - 53.476), SIMDE_BFLOAT16_VALUE( 8.724), SIMDE_BFLOAT16_VALUE( - 88.674), SIMDE_BFLOAT16_VALUE( - 48.309),
SIMDE_BFLOAT16_VALUE( - 3.562), SIMDE_BFLOAT16_VALUE( 14.309), SIMDE_BFLOAT16_VALUE( - 99.801), SIMDE_BFLOAT16_VALUE( - 11.703) },
{ SIMDE_BFLOAT16_VALUE( - 62.913), SIMDE_BFLOAT16_VALUE( - 43.056), SIMDE_BFLOAT16_VALUE( - 65.766), SIMDE_BFLOAT16_VALUE( 92.099),
SIMDE_BFLOAT16_VALUE( 73.066), SIMDE_BFLOAT16_VALUE( 29.509), SIMDE_BFLOAT16_VALUE( - 77.995), SIMDE_BFLOAT16_VALUE( - 81.816) } },
{ SIMDE_BFLOAT16_VALUE( - 53.476), SIMDE_BFLOAT16_VALUE( 8.724), SIMDE_BFLOAT16_VALUE( - 88.674), SIMDE_BFLOAT16_VALUE( - 48.309),
SIMDE_BFLOAT16_VALUE( - 3.562), SIMDE_BFLOAT16_VALUE( 14.309), SIMDE_BFLOAT16_VALUE( - 99.801), SIMDE_BFLOAT16_VALUE( - 11.703),
SIMDE_BFLOAT16_VALUE( - 62.913), SIMDE_BFLOAT16_VALUE( - 43.056), SIMDE_BFLOAT16_VALUE( - 65.766), SIMDE_BFLOAT16_VALUE( 92.099),
SIMDE_BFLOAT16_VALUE( 73.066), SIMDE_BFLOAT16_VALUE( 29.509), SIMDE_BFLOAT16_VALUE( - 77.995), SIMDE_BFLOAT16_VALUE( - 81.816) } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_bfloat16x8x2_t val = {{
simde_vld1q_bf16(test_vec[i].val[0]),
simde_vld1q_bf16(test_vec[i].val[1]),
}};
simde_bfloat16 r_[16];
simde_vst1q_bf16_x2(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_bfloat16x2_t val[2] = simde_test_arm_neon_random_bf16x2(-100.0f, 100.0f);
simde_bfloat16x16_t r = simde_vst1q_bf16_x2(val[2]);
simde_test_arm_neon_write_bf16x2(2, val[2], SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_bf16x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
#endif
SIMDE_TEST_FUNC_LIST_BEGIN
#if !defined(SIMDE_BUG_INTEL_857088)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_f16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_f32_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_f64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s8_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s32_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_s64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u8_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u32_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_u64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_p8_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_p16_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_p64_x2)
SIMDE_TEST_FUNC_LIST_ENTRY(vst1q_bf16_x2)
#endif
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"