5241f43e创建于 2024年7月31日历史提交
#define SIMDE_TEST_ARM_NEON_INSN ld1_x3
#include "test/test.h"
#include "test-neon.h"
#include "../../../simde/arm/neon/ld1_x3.h"
#include "../../../simde/arm/neon/ld1_lane.h"

#if !defined(SIMDE_BUG_INTEL_857088)

static int
test_simde_vld1_f16_x3 (SIMDE_MUNIT_TEST_ARGS) {
  struct {
    simde_float16_t buf[12];
    simde_float16_t expected[3][4];
  } test_vec[] = {
   { {  SIMDE_FLOAT16_VALUE(-5.79), SIMDE_FLOAT16_VALUE(4.80), SIMDE_FLOAT16_VALUE(9.66), SIMDE_FLOAT16_VALUE(-2.49),
        SIMDE_FLOAT16_VALUE(-3.48), SIMDE_FLOAT16_VALUE(2.38), SIMDE_FLOAT16_VALUE(-7.06), SIMDE_FLOAT16_VALUE(-9.89),
        SIMDE_FLOAT16_VALUE(-0.42), SIMDE_FLOAT16_VALUE(4.02), SIMDE_FLOAT16_VALUE(1.60), SIMDE_FLOAT16_VALUE(4.63) },
   { {  SIMDE_FLOAT16_VALUE(-5.79), SIMDE_FLOAT16_VALUE(4.80), SIMDE_FLOAT16_VALUE(9.66), SIMDE_FLOAT16_VALUE(-2.49) },
     {  SIMDE_FLOAT16_VALUE(-3.48), SIMDE_FLOAT16_VALUE(2.38), SIMDE_FLOAT16_VALUE(-7.06), SIMDE_FLOAT16_VALUE(-9.89) },
     {  SIMDE_FLOAT16_VALUE(-0.42), SIMDE_FLOAT16_VALUE(4.02), SIMDE_FLOAT16_VALUE(1.60), SIMDE_FLOAT16_VALUE(4.63) } } },
   { {  SIMDE_FLOAT16_VALUE(-7.02), SIMDE_FLOAT16_VALUE(1.17), SIMDE_FLOAT16_VALUE(-2.58), SIMDE_FLOAT16_VALUE(-1.99),
        SIMDE_FLOAT16_VALUE(8.35), SIMDE_FLOAT16_VALUE(-6.76), SIMDE_FLOAT16_VALUE(-2.81), SIMDE_FLOAT16_VALUE(-8.55),
        SIMDE_FLOAT16_VALUE(5.89), SIMDE_FLOAT16_VALUE(-9.99), SIMDE_FLOAT16_VALUE(3.60), SIMDE_FLOAT16_VALUE(-5.29) },
   { {  SIMDE_FLOAT16_VALUE(-7.02), SIMDE_FLOAT16_VALUE(1.17), SIMDE_FLOAT16_VALUE(-2.58), SIMDE_FLOAT16_VALUE(-1.99) },
     {  SIMDE_FLOAT16_VALUE(8.35), SIMDE_FLOAT16_VALUE(-6.76), SIMDE_FLOAT16_VALUE(-2.81), SIMDE_FLOAT16_VALUE(-8.55) },
     {  SIMDE_FLOAT16_VALUE(5.89), SIMDE_FLOAT16_VALUE(-9.99), SIMDE_FLOAT16_VALUE(3.60), SIMDE_FLOAT16_VALUE(-5.29) } } },
   { {  SIMDE_FLOAT16_VALUE(-0.56), SIMDE_FLOAT16_VALUE(-4.61), SIMDE_FLOAT16_VALUE(4.12), SIMDE_FLOAT16_VALUE(6.86),
        SIMDE_FLOAT16_VALUE(-0.93), SIMDE_FLOAT16_VALUE(8.80), SIMDE_FLOAT16_VALUE(-4.47), SIMDE_FLOAT16_VALUE(-0.16),
        SIMDE_FLOAT16_VALUE(-2.20), SIMDE_FLOAT16_VALUE(9.97), SIMDE_FLOAT16_VALUE(2.92), SIMDE_FLOAT16_VALUE(4.50) },
   { {  SIMDE_FLOAT16_VALUE(-0.56), SIMDE_FLOAT16_VALUE(-4.61), SIMDE_FLOAT16_VALUE(4.12), SIMDE_FLOAT16_VALUE(6.86) },
     {  SIMDE_FLOAT16_VALUE(-0.93), SIMDE_FLOAT16_VALUE(8.80), SIMDE_FLOAT16_VALUE(-4.47), SIMDE_FLOAT16_VALUE(-0.16) },
     {  SIMDE_FLOAT16_VALUE(-2.20), SIMDE_FLOAT16_VALUE(9.97), SIMDE_FLOAT16_VALUE(2.92), SIMDE_FLOAT16_VALUE(4.50) } } },
   { {  SIMDE_FLOAT16_VALUE(5.33), SIMDE_FLOAT16_VALUE(1.10), SIMDE_FLOAT16_VALUE(-0.07), SIMDE_FLOAT16_VALUE(4.80),
        SIMDE_FLOAT16_VALUE(-7.40), SIMDE_FLOAT16_VALUE(4.65), SIMDE_FLOAT16_VALUE(9.31), SIMDE_FLOAT16_VALUE(8.79),
        SIMDE_FLOAT16_VALUE(-3.82), SIMDE_FLOAT16_VALUE(4.51), SIMDE_FLOAT16_VALUE(-9.93), SIMDE_FLOAT16_VALUE(-6.90) },
   { {  SIMDE_FLOAT16_VALUE(5.33), SIMDE_FLOAT16_VALUE(1.10), SIMDE_FLOAT16_VALUE(-0.07), SIMDE_FLOAT16_VALUE(4.80) },
     {  SIMDE_FLOAT16_VALUE(-7.40), SIMDE_FLOAT16_VALUE(4.65), SIMDE_FLOAT16_VALUE(9.31), SIMDE_FLOAT16_VALUE(8.79) },
     {  SIMDE_FLOAT16_VALUE(-3.82), SIMDE_FLOAT16_VALUE(4.51), SIMDE_FLOAT16_VALUE(-9.93), SIMDE_FLOAT16_VALUE(-6.90) } } },
   { {  SIMDE_FLOAT16_VALUE(6.23), SIMDE_FLOAT16_VALUE(9.84), SIMDE_FLOAT16_VALUE(1.44), SIMDE_FLOAT16_VALUE(-9.15),
        SIMDE_FLOAT16_VALUE(0.50), SIMDE_FLOAT16_VALUE(6.55), SIMDE_FLOAT16_VALUE(-3.70), SIMDE_FLOAT16_VALUE(-1.56),
        SIMDE_FLOAT16_VALUE(-1.16), SIMDE_FLOAT16_VALUE(1.56), SIMDE_FLOAT16_VALUE(-4.94), SIMDE_FLOAT16_VALUE(-5.71) },
   { {  SIMDE_FLOAT16_VALUE(6.23), SIMDE_FLOAT16_VALUE(9.84), SIMDE_FLOAT16_VALUE(1.44), SIMDE_FLOAT16_VALUE(-9.15) },
     {  SIMDE_FLOAT16_VALUE(0.50), SIMDE_FLOAT16_VALUE(6.55), SIMDE_FLOAT16_VALUE(-3.70), SIMDE_FLOAT16_VALUE(-1.56) },
     {  SIMDE_FLOAT16_VALUE(-1.16), SIMDE_FLOAT16_VALUE(1.56), SIMDE_FLOAT16_VALUE(-4.94), SIMDE_FLOAT16_VALUE(-5.71) } } },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_float16x4x3_t r = simde_vld1_f16_x3(test_vec[i].buf);
    simde_float16x4x3_t expected = {{
        simde_vld1_f16(test_vec[i].expected[0]),
        simde_vld1_f16(test_vec[i].expected[1]),
        simde_vld1_f16(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_f16x4x3(r, expected, 1);
  }

  return 0;
}

static int
test_simde_vld1_f32_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    simde_float32 buf[6];
    simde_float32 expected[3][2];
  } test_vec[] = {
    { { SIMDE_FLOAT32_C(  -888.98), SIMDE_FLOAT32_C(  -694.40), SIMDE_FLOAT32_C(    20.16), SIMDE_FLOAT32_C(  -917.81),
        SIMDE_FLOAT32_C(   420.99), SIMDE_FLOAT32_C(   574.51) },
        { { SIMDE_FLOAT32_C(  -888.98), SIMDE_FLOAT32_C(  -694.40) },
          { SIMDE_FLOAT32_C(    20.16), SIMDE_FLOAT32_C(  -917.81) },
          { SIMDE_FLOAT32_C(   420.99), SIMDE_FLOAT32_C(   574.51) } },
    },
    { { SIMDE_FLOAT32_C(   346.79), SIMDE_FLOAT32_C(   618.26), SIMDE_FLOAT32_C(  -931.06), SIMDE_FLOAT32_C(   657.47),
        SIMDE_FLOAT32_C(   404.28), SIMDE_FLOAT32_C(   373.34) },
        { { SIMDE_FLOAT32_C(   346.79), SIMDE_FLOAT32_C(   618.26) },
          { SIMDE_FLOAT32_C(  -931.06), SIMDE_FLOAT32_C(   657.47) },
          { SIMDE_FLOAT32_C(   404.28), SIMDE_FLOAT32_C(   373.34) } },
    },
    { { SIMDE_FLOAT32_C(   444.60), SIMDE_FLOAT32_C(  -509.24), SIMDE_FLOAT32_C(   602.28), SIMDE_FLOAT32_C(    77.95),
        SIMDE_FLOAT32_C(   861.00), SIMDE_FLOAT32_C(   523.46) },
        { { SIMDE_FLOAT32_C(   444.60), SIMDE_FLOAT32_C(  -509.24) },
          { SIMDE_FLOAT32_C(   602.28), SIMDE_FLOAT32_C(    77.95) },
          { SIMDE_FLOAT32_C(   861.00), SIMDE_FLOAT32_C(   523.46) } },
    },
    { { SIMDE_FLOAT32_C(  -666.26), SIMDE_FLOAT32_C(   585.18), SIMDE_FLOAT32_C(   589.29), SIMDE_FLOAT32_C(   163.58),
        SIMDE_FLOAT32_C(  -888.98), SIMDE_FLOAT32_C(  -328.02) },
        { { SIMDE_FLOAT32_C(  -666.26), SIMDE_FLOAT32_C(   585.18) },
          { SIMDE_FLOAT32_C(   589.29), SIMDE_FLOAT32_C(   163.58) },
          { SIMDE_FLOAT32_C(  -888.98), SIMDE_FLOAT32_C(  -328.02) } },
    },
    { { SIMDE_FLOAT32_C(   903.32), SIMDE_FLOAT32_C(   619.16), SIMDE_FLOAT32_C(  -497.00), SIMDE_FLOAT32_C(   850.93),
        SIMDE_FLOAT32_C(   857.80), SIMDE_FLOAT32_C(    37.13) },
        { { SIMDE_FLOAT32_C(   903.32), SIMDE_FLOAT32_C(   619.16) },
          { SIMDE_FLOAT32_C(  -497.00), SIMDE_FLOAT32_C(   850.93) },
          { SIMDE_FLOAT32_C(   857.80), SIMDE_FLOAT32_C(    37.13) } },
    },
    { { SIMDE_FLOAT32_C(   302.11), SIMDE_FLOAT32_C(   968.83), SIMDE_FLOAT32_C(   342.73), SIMDE_FLOAT32_C(  -677.74),
        SIMDE_FLOAT32_C(  -948.98), SIMDE_FLOAT32_C(  -236.28) },
        { { SIMDE_FLOAT32_C(   302.11), SIMDE_FLOAT32_C(   968.83) },
          { SIMDE_FLOAT32_C(   342.73), SIMDE_FLOAT32_C(  -677.74) },
          { SIMDE_FLOAT32_C(  -948.98), SIMDE_FLOAT32_C(  -236.28) } },
    },
    { { SIMDE_FLOAT32_C(   896.77), SIMDE_FLOAT32_C(   397.81), SIMDE_FLOAT32_C(  -618.02), SIMDE_FLOAT32_C(   965.72),
        SIMDE_FLOAT32_C(    55.28), SIMDE_FLOAT32_C(   786.26) },
        { { SIMDE_FLOAT32_C(   896.77), SIMDE_FLOAT32_C(   397.81) },
          { SIMDE_FLOAT32_C(  -618.02), SIMDE_FLOAT32_C(   965.72) },
          { SIMDE_FLOAT32_C(    55.28), SIMDE_FLOAT32_C(   786.26) } },
    },
    { { SIMDE_FLOAT32_C(   339.06), SIMDE_FLOAT32_C(  -500.12), SIMDE_FLOAT32_C(  -722.98), SIMDE_FLOAT32_C(   -58.66),
        SIMDE_FLOAT32_C(   577.82), SIMDE_FLOAT32_C(  -861.98) },
        { { SIMDE_FLOAT32_C(   339.06), SIMDE_FLOAT32_C(  -500.12) },
          { SIMDE_FLOAT32_C(  -722.98), SIMDE_FLOAT32_C(   -58.66) },
          { SIMDE_FLOAT32_C(   577.82), SIMDE_FLOAT32_C(  -861.98) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_float32x2x3_t r = simde_vld1_f32_x3(test_vec[i].buf);
    simde_float32x2x3_t expected = {{
        simde_vld1_f32(test_vec[i].expected[0]),
        simde_vld1_f32(test_vec[i].expected[1]),
        simde_vld1_f32(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_f32x2x3(r, expected, 1);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    simde_float32 buf[6];
    for (int j = 0 ; j < 6 ; j++) {
      buf[j] = simde_test_codegen_random_f32(-1000.0f, 1000.0f);
    }
    simde_test_codegen_write_vf32(2, 6, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_float32x2x3_t val = simde_vld1_f32_x3(buf);
    simde_test_arm_neon_write_f32x2x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_f64_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    simde_float64 buf[3];
    simde_float64 expected[3][1];
  } test_vec[] = {
    { { SIMDE_FLOAT64_C(   569.90), SIMDE_FLOAT64_C(   741.85), SIMDE_FLOAT64_C(   966.09) },
        { { SIMDE_FLOAT64_C(   569.90) },
          { SIMDE_FLOAT64_C(   741.85) },
          { SIMDE_FLOAT64_C(   966.09) } },
    },
    { { SIMDE_FLOAT64_C(  -897.50), SIMDE_FLOAT64_C(   973.15), SIMDE_FLOAT64_C(   -68.38) },
        { { SIMDE_FLOAT64_C(  -897.50) },
          { SIMDE_FLOAT64_C(   973.15) },
          { SIMDE_FLOAT64_C(   -68.38) } },
    },
    { { SIMDE_FLOAT64_C(   262.37), SIMDE_FLOAT64_C(   619.82), SIMDE_FLOAT64_C(  -410.17) },
        { { SIMDE_FLOAT64_C(   262.37) },
          { SIMDE_FLOAT64_C(   619.82) },
          { SIMDE_FLOAT64_C(  -410.17) } },
    },
    { { SIMDE_FLOAT64_C(   584.45), SIMDE_FLOAT64_C(  -682.10), SIMDE_FLOAT64_C(   -60.19) },
        { { SIMDE_FLOAT64_C(   584.45) },
          { SIMDE_FLOAT64_C(  -682.10) },
          { SIMDE_FLOAT64_C(   -60.19) } },
    },
    { { SIMDE_FLOAT64_C(  -712.90), SIMDE_FLOAT64_C(    33.31), SIMDE_FLOAT64_C(   411.66) },
        { { SIMDE_FLOAT64_C(  -712.90) },
          { SIMDE_FLOAT64_C(    33.31) },
          { SIMDE_FLOAT64_C(   411.66) } },
    },
    { { SIMDE_FLOAT64_C(  -744.44), SIMDE_FLOAT64_C(   809.96), SIMDE_FLOAT64_C(  -111.78) },
        { { SIMDE_FLOAT64_C(  -744.44) },
          { SIMDE_FLOAT64_C(   809.96) },
          { SIMDE_FLOAT64_C(  -111.78) } },
    },
    { { SIMDE_FLOAT64_C(  -857.02), SIMDE_FLOAT64_C(   251.71), SIMDE_FLOAT64_C(  -229.61) },
        { { SIMDE_FLOAT64_C(  -857.02) },
          { SIMDE_FLOAT64_C(   251.71) },
          { SIMDE_FLOAT64_C(  -229.61) } },
    },
    { { SIMDE_FLOAT64_C(   478.06), SIMDE_FLOAT64_C(  -343.50), SIMDE_FLOAT64_C(   723.80) },
        { { SIMDE_FLOAT64_C(   478.06) },
          { SIMDE_FLOAT64_C(  -343.50) },
          { SIMDE_FLOAT64_C(   723.80) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_float64x1x3_t r = simde_vld1_f64_x3(test_vec[i].buf);
    simde_float64x1x3_t expected = {{
        simde_vld1_f64(test_vec[i].expected[0]),
        simde_vld1_f64(test_vec[i].expected[1]),
        simde_vld1_f64(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_f64x1x3(r, expected, 1);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    simde_float64 buf[3];
    for (int j = 0 ; j < 3 ; j++) {
      buf[j] = simde_test_codegen_random_f64(-1000.0, 1000.0);
    }
    simde_test_codegen_write_vf64(2, 3, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_float64x1x3_t val = simde_vld1_f64_x3(buf);
    simde_test_arm_neon_write_f64x1x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_s8_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    int8_t buf[24];
    int8_t expected[3][8];
  } test_vec[] = {
    { { -INT8_C(  11), -INT8_C( 121),  INT8_C( 101), -INT8_C(  21), -INT8_C(  80), -INT8_C(  10),  INT8_C( 117), -INT8_C( 117),
        -INT8_C(  40), -INT8_C(  37), -INT8_C(  59),  INT8_C(  16), -INT8_C(  11),  INT8_C(  41), -INT8_C( 109),  INT8_C(  76),
         INT8_C(  10), -INT8_C(  40), -INT8_C(  85),  INT8_C(   5), -INT8_C( 106),  INT8_C( 100),  INT8_C(  96),  INT8_C(  54) },
        { { -INT8_C(  11), -INT8_C( 121),  INT8_C( 101), -INT8_C(  21), -INT8_C(  80), -INT8_C(  10),  INT8_C( 117), -INT8_C( 117) },
          { -INT8_C(  40), -INT8_C(  37), -INT8_C(  59),  INT8_C(  16), -INT8_C(  11),  INT8_C(  41), -INT8_C( 109),  INT8_C(  76) },
          {  INT8_C(  10), -INT8_C(  40), -INT8_C(  85),  INT8_C(   5), -INT8_C( 106),  INT8_C( 100),  INT8_C(  96),  INT8_C(  54) } },
    },
    { { -INT8_C(  97), -INT8_C(  65),  INT8_C(  42), -INT8_C(  27),  INT8_C(  31),  INT8_C( 108),  INT8_C(  50),  INT8_C(  21),
        -INT8_C(  13), -INT8_C( 105),  INT8_C(   0), -INT8_C(  92), -INT8_C( 114),  INT8_C( 117),  INT8_C(  47),  INT8_C( 102),
         INT8_C(  80), -INT8_C(  12),  INT8_C( 118),  INT8_C(  69),  INT8_C(  29),  INT8_C(   9), -INT8_C( 110),  INT8_C(  39) },
        { { -INT8_C(  97), -INT8_C(  65),  INT8_C(  42), -INT8_C(  27),  INT8_C(  31),  INT8_C( 108),  INT8_C(  50),  INT8_C(  21) },
          { -INT8_C(  13), -INT8_C( 105),  INT8_C(   0), -INT8_C(  92), -INT8_C( 114),  INT8_C( 117),  INT8_C(  47),  INT8_C( 102) },
          {  INT8_C(  80), -INT8_C(  12),  INT8_C( 118),  INT8_C(  69),  INT8_C(  29),  INT8_C(   9), -INT8_C( 110),  INT8_C(  39) } },
    },
    { { -INT8_C(  31),  INT8_C(  61),  INT8_C(  44),  INT8_C( 119), -INT8_C(  95), -INT8_C( 116), -INT8_C(  83),  INT8_C(  64),
         INT8_C(  75), -INT8_C(  40),  INT8_C(  38),  INT8_C( 107),  INT8_C(  68),  INT8_C(  88),      INT8_MIN,  INT8_C(  56),
        -INT8_C(  17),      INT8_MIN, -INT8_C(  36),  INT8_C( 125), -INT8_C(  11),  INT8_C(  11), -INT8_C(  29),  INT8_C(  69) },
        { { -INT8_C(  31),  INT8_C(  61),  INT8_C(  44),  INT8_C( 119), -INT8_C(  95), -INT8_C( 116), -INT8_C(  83),  INT8_C(  64) },
          {  INT8_C(  75), -INT8_C(  40),  INT8_C(  38),  INT8_C( 107),  INT8_C(  68),  INT8_C(  88),      INT8_MIN,  INT8_C(  56) },
          { -INT8_C(  17),      INT8_MIN, -INT8_C(  36),  INT8_C( 125), -INT8_C(  11),  INT8_C(  11), -INT8_C(  29),  INT8_C(  69) } },
    },
    { { -INT8_C(   1),  INT8_C(  90), -INT8_C( 117),  INT8_C(  29),  INT8_C(  99),  INT8_C(  29),  INT8_C(  68),  INT8_C(  69),
         INT8_C(  90),  INT8_C( 113), -INT8_C(  68), -INT8_C(   5), -INT8_C(   3),  INT8_C( 106),  INT8_C(  59),  INT8_C(  73),
         INT8_C(  66),  INT8_C(  97), -INT8_C(  76), -INT8_C( 122), -INT8_C(  71),  INT8_C(  52), -INT8_C(  66), -INT8_C(  87) },
        { { -INT8_C(   1),  INT8_C(  90), -INT8_C( 117),  INT8_C(  29),  INT8_C(  99),  INT8_C(  29),  INT8_C(  68),  INT8_C(  69) },
          {  INT8_C(  90),  INT8_C( 113), -INT8_C(  68), -INT8_C(   5), -INT8_C(   3),  INT8_C( 106),  INT8_C(  59),  INT8_C(  73) },
          {  INT8_C(  66),  INT8_C(  97), -INT8_C(  76), -INT8_C( 122), -INT8_C(  71),  INT8_C(  52), -INT8_C(  66), -INT8_C(  87) } },
    },
    { { -INT8_C(  76), -INT8_C( 102),  INT8_C(  38), -INT8_C(  87), -INT8_C(  91),  INT8_C(  10), -INT8_C(  18), -INT8_C(  91),
         INT8_C( 100),  INT8_C( 121), -INT8_C(  62), -INT8_C(  57), -INT8_C( 106),  INT8_C(   6),  INT8_C(  12), -INT8_C(  16),
         INT8_C( 119), -INT8_C(  55), -INT8_C(  21),  INT8_C( 117),  INT8_C(  51),  INT8_C(  39), -INT8_C(  66),  INT8_C( 117) },
        { { -INT8_C(  76), -INT8_C( 102),  INT8_C(  38), -INT8_C(  87), -INT8_C(  91),  INT8_C(  10), -INT8_C(  18), -INT8_C(  91) },
          {  INT8_C( 100),  INT8_C( 121), -INT8_C(  62), -INT8_C(  57), -INT8_C( 106),  INT8_C(   6),  INT8_C(  12), -INT8_C(  16) },
          {  INT8_C( 119), -INT8_C(  55), -INT8_C(  21),  INT8_C( 117),  INT8_C(  51),  INT8_C(  39), -INT8_C(  66),  INT8_C( 117) } },
    },
    { { -INT8_C( 120),  INT8_C( 114), -INT8_C(   5),  INT8_C(  66), -INT8_C(  90), -INT8_C(  70), -INT8_C(  21),  INT8_C(  90),
         INT8_C(  84),  INT8_C(  17),  INT8_C(   3), -INT8_C(   6),  INT8_C(  27), -INT8_C(  15), -INT8_C(  97),      INT8_MAX,
         INT8_C( 107),  INT8_C(  97),  INT8_C(  71),  INT8_C(   1),  INT8_C( 103),  INT8_C(  83), -INT8_C(  14), -INT8_C(  33) },
        { { -INT8_C( 120),  INT8_C( 114), -INT8_C(   5),  INT8_C(  66), -INT8_C(  90), -INT8_C(  70), -INT8_C(  21),  INT8_C(  90) },
          {  INT8_C(  84),  INT8_C(  17),  INT8_C(   3), -INT8_C(   6),  INT8_C(  27), -INT8_C(  15), -INT8_C(  97),      INT8_MAX },
          {  INT8_C( 107),  INT8_C(  97),  INT8_C(  71),  INT8_C(   1),  INT8_C( 103),  INT8_C(  83), -INT8_C(  14), -INT8_C(  33) } },
    },
    { {  INT8_C(  28), -INT8_C(  35),  INT8_C(  84),  INT8_C(  79),  INT8_C(   4),  INT8_C(  18), -INT8_C(  60), -INT8_C( 115),
        -INT8_C( 124), -INT8_C(  64), -INT8_C(  49),  INT8_C(  42),  INT8_C( 122), -INT8_C(  70), -INT8_C( 124), -INT8_C(  50),
        -INT8_C(  53), -INT8_C( 121), -INT8_C(  56), -INT8_C(  25),  INT8_C( 120),  INT8_C( 103),  INT8_C( 102), -INT8_C(  29) },
        { {  INT8_C(  28), -INT8_C(  35),  INT8_C(  84),  INT8_C(  79),  INT8_C(   4),  INT8_C(  18), -INT8_C(  60), -INT8_C( 115) },
          { -INT8_C( 124), -INT8_C(  64), -INT8_C(  49),  INT8_C(  42),  INT8_C( 122), -INT8_C(  70), -INT8_C( 124), -INT8_C(  50) },
          { -INT8_C(  53), -INT8_C( 121), -INT8_C(  56), -INT8_C(  25),  INT8_C( 120),  INT8_C( 103),  INT8_C( 102), -INT8_C(  29) } },
    },
    { { -INT8_C(  56), -INT8_C(  83), -INT8_C(  27),  INT8_C(  48),  INT8_C(   1), -INT8_C(  41),  INT8_C(  15),  INT8_C(  29),
        -INT8_C(  76),  INT8_C(  99),  INT8_C( 109), -INT8_C(  71),  INT8_C( 117),  INT8_C(  49),  INT8_C(  70), -INT8_C(   7),
        -INT8_C(  15),  INT8_C(  21),  INT8_C(  35),  INT8_C( 107), -INT8_C(  49), -INT8_C(  89),  INT8_C(  58), -INT8_C( 102) },
        { { -INT8_C(  56), -INT8_C(  83), -INT8_C(  27),  INT8_C(  48),  INT8_C(   1), -INT8_C(  41),  INT8_C(  15),  INT8_C(  29) },
          { -INT8_C(  76),  INT8_C(  99),  INT8_C( 109), -INT8_C(  71),  INT8_C( 117),  INT8_C(  49),  INT8_C(  70), -INT8_C(   7) },
          { -INT8_C(  15),  INT8_C(  21),  INT8_C(  35),  INT8_C( 107), -INT8_C(  49), -INT8_C(  89),  INT8_C(  58), -INT8_C( 102) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_int8x8x3_t r = simde_vld1_s8_x3(test_vec[i].buf);
    simde_int8x8x3_t expected = {{
        simde_vld1_s8(test_vec[i].expected[0]),
        simde_vld1_s8(test_vec[i].expected[1]),
        simde_vld1_s8(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_i8x8x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    int8_t buf[24];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vi8(2, 24, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_int8x8x3_t val = simde_vld1_s8_x3(buf);
    simde_test_arm_neon_write_i8x8x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_s16_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    int16_t buf[12];
    int16_t expected[3][4];
  } test_vec[] = {
    { {  INT16_C( 25595), -INT16_C( 21319),  INT16_C( 30814), -INT16_C(   703),  INT16_C(  5368),  INT16_C( 18560), -INT16_C( 14528), -INT16_C(  9009),
         INT16_C( 19110),  INT16_C(  1126),  INT16_C(  2820), -INT16_C( 24628) },
        { {  INT16_C( 25595), -INT16_C( 21319),  INT16_C( 30814), -INT16_C(   703) },
          {  INT16_C(  5368),  INT16_C( 18560), -INT16_C( 14528), -INT16_C(  9009) },
          {  INT16_C( 19110),  INT16_C(  1126),  INT16_C(  2820), -INT16_C( 24628) } },
    },
    { { -INT16_C( 25991), -INT16_C( 15949), -INT16_C( 31863), -INT16_C( 31250), -INT16_C( 22553),  INT16_C( 17713),  INT16_C( 29472),  INT16_C(  6210),
        -INT16_C( 15481), -INT16_C( 14495),  INT16_C( 12426),  INT16_C( 12707) },
        { { -INT16_C( 25991), -INT16_C( 15949), -INT16_C( 31863), -INT16_C( 31250) },
          { -INT16_C( 22553),  INT16_C( 17713),  INT16_C( 29472),  INT16_C(  6210) },
          { -INT16_C( 15481), -INT16_C( 14495),  INT16_C( 12426),  INT16_C( 12707) } },
    },
    { {  INT16_C(  2682),  INT16_C( 32309),  INT16_C(   533), -INT16_C( 28898), -INT16_C( 11876),  INT16_C(  9808),  INT16_C( 15956),  INT16_C( 15275),
        -INT16_C(  8987),  INT16_C(  1409), -INT16_C( 15537), -INT16_C( 10466) },
        { {  INT16_C(  2682),  INT16_C( 32309),  INT16_C(   533), -INT16_C( 28898) },
          { -INT16_C( 11876),  INT16_C(  9808),  INT16_C( 15956),  INT16_C( 15275) },
          { -INT16_C(  8987),  INT16_C(  1409), -INT16_C( 15537), -INT16_C( 10466) } },
    },
    { {  INT16_C( 32646),  INT16_C(  4510),  INT16_C( 17071),  INT16_C( 10562),  INT16_C( 30540),  INT16_C( 25000), -INT16_C( 14727),  INT16_C(  5872),
         INT16_C( 16535), -INT16_C(  5316), -INT16_C(  6274),  INT16_C( 25639) },
        { {  INT16_C( 32646),  INT16_C(  4510),  INT16_C( 17071),  INT16_C( 10562) },
          {  INT16_C( 30540),  INT16_C( 25000), -INT16_C( 14727),  INT16_C(  5872) },
          {  INT16_C( 16535), -INT16_C(  5316), -INT16_C(  6274),  INT16_C( 25639) } },
    },
    { { -INT16_C( 22333),  INT16_C(  4969), -INT16_C( 30869), -INT16_C(  3350), -INT16_C( 30714), -INT16_C( 19197),  INT16_C( 17866),  INT16_C(  5855),
        -INT16_C( 30788),  INT16_C( 13944),  INT16_C( 26701), -INT16_C(  7092) },
        { { -INT16_C( 22333),  INT16_C(  4969), -INT16_C( 30869), -INT16_C(  3350) },
          { -INT16_C( 30714), -INT16_C( 19197),  INT16_C( 17866),  INT16_C(  5855) },
          { -INT16_C( 30788),  INT16_C( 13944),  INT16_C( 26701), -INT16_C(  7092) } },
    },
    { { -INT16_C( 30551),  INT16_C( 10191), -INT16_C(  2449),  INT16_C( 12939), -INT16_C(  2658),  INT16_C(  2629),  INT16_C( 12156), -INT16_C( 31748),
        -INT16_C(    72), -INT16_C( 32200),  INT16_C(  5956),  INT16_C(   153) },
        { { -INT16_C( 30551),  INT16_C( 10191), -INT16_C(  2449),  INT16_C( 12939) },
          { -INT16_C(  2658),  INT16_C(  2629),  INT16_C( 12156), -INT16_C( 31748) },
          { -INT16_C(    72), -INT16_C( 32200),  INT16_C(  5956),  INT16_C(   153) } },
    },
    { {  INT16_C(  4510), -INT16_C(  5322), -INT16_C( 32135),  INT16_C(  8911), -INT16_C( 24822),  INT16_C( 31050), -INT16_C( 10859),  INT16_C( 13484),
        -INT16_C(  3638),  INT16_C( 18238),  INT16_C( 14881), -INT16_C(  9782) },
        { {  INT16_C(  4510), -INT16_C(  5322), -INT16_C( 32135),  INT16_C(  8911) },
          { -INT16_C( 24822),  INT16_C( 31050), -INT16_C( 10859),  INT16_C( 13484) },
          { -INT16_C(  3638),  INT16_C( 18238),  INT16_C( 14881), -INT16_C(  9782) } },
    },
    { {  INT16_C(   569),  INT16_C( 32091), -INT16_C(  3046), -INT16_C( 18307), -INT16_C( 19451),  INT16_C( 32676),  INT16_C( 29494),  INT16_C( 16801),
        -INT16_C(  5358), -INT16_C( 22342),  INT16_C( 26305), -INT16_C( 29732) },
        { {  INT16_C(   569),  INT16_C( 32091), -INT16_C(  3046), -INT16_C( 18307) },
          { -INT16_C( 19451),  INT16_C( 32676),  INT16_C( 29494),  INT16_C( 16801) },
          { -INT16_C(  5358), -INT16_C( 22342),  INT16_C( 26305), -INT16_C( 29732) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_int16x4x3_t r = simde_vld1_s16_x3(test_vec[i].buf);
    simde_int16x4x3_t expected = {{
        simde_vld1_s16(test_vec[i].expected[0]),
        simde_vld1_s16(test_vec[i].expected[1]),
        simde_vld1_s16(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_i16x4x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    int16_t buf[12];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vi16(2, 12, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_int16x4x3_t val = simde_vld1_s16_x3(buf);
    simde_test_arm_neon_write_i16x4x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_s32_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    int32_t buf[6];
    int32_t expected[3][2];
  } test_vec[] = {
    { {  INT32_C(  2043812440), -INT32_C(  1923965868), -INT32_C(  1190482529), -INT32_C(  1485731934),  INT32_C(  1915098427), -INT32_C(  1682716535) },
        { {  INT32_C(  2043812440), -INT32_C(  1923965868) },
          { -INT32_C(  1190482529), -INT32_C(  1485731934) },
          {  INT32_C(  1915098427), -INT32_C(  1682716535) } },
    },
    { {  INT32_C(  1950576051),  INT32_C(   738205652), -INT32_C(  1918512583),  INT32_C(   236648303),  INT32_C(  1187456164), -INT32_C(   403818324) },
        { {  INT32_C(  1950576051),  INT32_C(   738205652) },
          { -INT32_C(  1918512583),  INT32_C(   236648303) },
          {  INT32_C(  1187456164), -INT32_C(   403818324) } },
    },
    { { -INT32_C(   682027954), -INT32_C(  1871573796),  INT32_C(  1308931706),  INT32_C(   259654869),  INT32_C(  1184636887), -INT32_C(  1168853226) },
        { { -INT32_C(   682027954), -INT32_C(  1871573796) },
          {  INT32_C(  1308931706),  INT32_C(   259654869) },
          {  INT32_C(  1184636887), -INT32_C(  1168853226) } },
    },
    { { -INT32_C(  2029970469), -INT32_C(  1586499757), -INT32_C(   528955389),  INT32_C(  1332800469),  INT32_C(  1990030497),  INT32_C(  1350899577) },
        { { -INT32_C(  2029970469), -INT32_C(  1586499757) },
          { -INT32_C(   528955389),  INT32_C(  1332800469) },
          {  INT32_C(  1990030497),  INT32_C(  1350899577) } },
    },
    { {  INT32_C(  1284907574), -INT32_C(  1274615079),  INT32_C(  1480328965), -INT32_C(    84235274),  INT32_C(  1222275699), -INT32_C(    23639459) },
        { {  INT32_C(  1284907574), -INT32_C(  1274615079) },
          {  INT32_C(  1480328965), -INT32_C(    84235274) },
          {  INT32_C(  1222275699), -INT32_C(    23639459) } },
    },
    { {  INT32_C(   930428094), -INT32_C(  2121794997), -INT32_C(   171107044),  INT32_C(   212521991), -INT32_C(   765073701),  INT32_C(    80502673) },
        { {  INT32_C(   930428094), -INT32_C(  2121794997) },
          { -INT32_C(   171107044),  INT32_C(   212521991) },
          { -INT32_C(   765073701),  INT32_C(    80502673) } },
    },
    { {  INT32_C(   793618129), -INT32_C(  1372723984),  INT32_C(  1692836377), -INT32_C(  1176080995), -INT32_C(  1833978997),  INT32_C(  1671387527) },
        { {  INT32_C(   793618129), -INT32_C(  1372723984) },
          {  INT32_C(  1692836377), -INT32_C(  1176080995) },
          { -INT32_C(  1833978997),  INT32_C(  1671387527) } },
    },
    { { -INT32_C(   801831873),  INT32_C(   886309219), -INT32_C(  1755111001),  INT32_C(   524652806), -INT32_C(   796710093),  INT32_C(   613050777) },
        { { -INT32_C(   801831873),  INT32_C(   886309219) },
          { -INT32_C(  1755111001),  INT32_C(   524652806) },
          { -INT32_C(   796710093),  INT32_C(   613050777) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_int32x2x3_t r = simde_vld1_s32_x3(test_vec[i].buf);
    simde_int32x2x3_t expected = {{
        simde_vld1_s32(test_vec[i].expected[0]),
        simde_vld1_s32(test_vec[i].expected[1]),
        simde_vld1_s32(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_i32x2x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    int32_t buf[6];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vi32(2, 6, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_int32x2x3_t val = simde_vld1_s32_x3(buf);
    simde_test_arm_neon_write_i32x2x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_s64_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    int64_t buf[3];
    int64_t expected[3][1];
  } test_vec[] = {
    { {  INT64_C(  417499293700581051), -INT64_C( 1219175381170673886), -INT64_C( 3786260281518077139) },
        { {  INT64_C(  417499293700581051) },
          { -INT64_C( 1219175381170673886) },
          { -INT64_C( 3786260281518077139) } },
    },
    { { -INT64_C( 3561255404491550293), -INT64_C(  706254993944636729),  INT64_C( 7704058335413968519) },
        { { -INT64_C( 3561255404491550293) },
          { -INT64_C(  706254993944636729) },
          {  INT64_C( 7704058335413968519) } },
    },
    { {  INT64_C(  521426194319989788), -INT64_C( 4850782561955540020),  INT64_C( 3164373178695402272) },
        { {  INT64_C(  521426194319989788) },
          { -INT64_C( 4850782561955540020) },
          {  INT64_C( 3164373178695402272) } },
    },
    { { -INT64_C( 7899295643285969222), -INT64_C( 5958190970674387220), -INT64_C(  358815886111650733) },
        { { -INT64_C( 7899295643285969222) },
          { -INT64_C( 5958190970674387220) },
          { -INT64_C(  358815886111650733) } },
    },
    { { -INT64_C( 4265796107336945923), -INT64_C( 1222697601451953409), -INT64_C( 6984933164683097214) },
        { { -INT64_C( 4265796107336945923) },
          { -INT64_C( 1222697601451953409) },
          { -INT64_C( 6984933164683097214) } },
    },
    { { -INT64_C( 3122422980514702124),  INT64_C( 8190430834058435035),  INT64_C(  154791996658443571) },
        { { -INT64_C( 3122422980514702124) },
          {  INT64_C( 8190430834058435035) },
          {  INT64_C(  154791996658443571) } },
    },
    { { -INT64_C( 4979725660392694278), -INT64_C( 7801057294624895982), -INT64_C( 6300778372033596500) },
        { { -INT64_C( 4979725660392694278) },
          { -INT64_C( 7801057294624895982) },
          { -INT64_C( 6300778372033596500) } },
    },
    { {  INT64_C( 6776513792489452936), -INT64_C(  504534110650011552),  INT64_C( 2855456415087159380) },
        { {  INT64_C( 6776513792489452936) },
          { -INT64_C(  504534110650011552) },
          {  INT64_C( 2855456415087159380) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_int64x1x3_t r = simde_vld1_s64_x3(test_vec[i].buf);
    simde_int64x1x3_t expected = {{
        simde_vld1_s64(test_vec[i].expected[0]),
        simde_vld1_s64(test_vec[i].expected[1]),
        simde_vld1_s64(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_i64x1x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    int64_t buf[3];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vi64(2, 3, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_int64x1x3_t val = simde_vld1_s64_x3(buf);
    simde_test_arm_neon_write_i64x1x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_u8_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    uint8_t buf[24];
    uint8_t expected[3][8];
  } test_vec[] = {
    { { UINT8_C( 46), UINT8_C(  2), UINT8_C(129), UINT8_C(166), UINT8_C(106), UINT8_C(232), UINT8_C(138), UINT8_C( 50),
        UINT8_C(149), UINT8_C(111), UINT8_C( 98), UINT8_C(150), UINT8_C( 70), UINT8_C(113), UINT8_C(180), UINT8_C(250),
        UINT8_C(212), UINT8_C( 33), UINT8_C(179), UINT8_C( 73), UINT8_C( 82), UINT8_C(249), UINT8_C( 66), UINT8_C( 68) },
        { { UINT8_C( 46), UINT8_C(  2), UINT8_C(129), UINT8_C(166), UINT8_C(106), UINT8_C(232), UINT8_C(138), UINT8_C( 50) },
          { UINT8_C(149), UINT8_C(111), UINT8_C( 98), UINT8_C(150), UINT8_C( 70), UINT8_C(113), UINT8_C(180), UINT8_C(250) },
          { UINT8_C(212), UINT8_C( 33), UINT8_C(179), UINT8_C( 73), UINT8_C( 82), UINT8_C(249), UINT8_C( 66), UINT8_C( 68) } },
    },
    { { UINT8_C( 14), UINT8_C(101), UINT8_C(175), UINT8_C(221), UINT8_C( 12), UINT8_C(233), UINT8_C(120), UINT8_C( 58),
        UINT8_C(236), UINT8_C(249), UINT8_C(225), UINT8_C( 86), UINT8_C(225), UINT8_C(107), UINT8_C(136), UINT8_C(119),
        UINT8_C(218), UINT8_C(235), UINT8_C( 13), UINT8_C( 32), UINT8_C( 92), UINT8_C(193), UINT8_C( 26), UINT8_C( 49) },
        { { UINT8_C( 14), UINT8_C(101), UINT8_C(175), UINT8_C(221), UINT8_C( 12), UINT8_C(233), UINT8_C(120), UINT8_C( 58) },
          { UINT8_C(236), UINT8_C(249), UINT8_C(225), UINT8_C( 86), UINT8_C(225), UINT8_C(107), UINT8_C(136), UINT8_C(119) },
          { UINT8_C(218), UINT8_C(235), UINT8_C( 13), UINT8_C( 32), UINT8_C( 92), UINT8_C(193), UINT8_C( 26), UINT8_C( 49) } },
    },
    { { UINT8_C(226), UINT8_C(206), UINT8_C(122), UINT8_C( 53), UINT8_C(199), UINT8_C(189), UINT8_C(121), UINT8_C(214),
        UINT8_C( 34), UINT8_C( 40), UINT8_C(179), UINT8_C( 47), UINT8_C( 18), UINT8_C( 43), UINT8_C(105), UINT8_C(254),
        UINT8_C( 37), UINT8_C( 74), UINT8_C( 84), UINT8_C(  6), UINT8_C(181), UINT8_C(220), UINT8_C(125), UINT8_C(143) },
        { { UINT8_C(226), UINT8_C(206), UINT8_C(122), UINT8_C( 53), UINT8_C(199), UINT8_C(189), UINT8_C(121), UINT8_C(214) },
          { UINT8_C( 34), UINT8_C( 40), UINT8_C(179), UINT8_C( 47), UINT8_C( 18), UINT8_C( 43), UINT8_C(105), UINT8_C(254) },
          { UINT8_C( 37), UINT8_C( 74), UINT8_C( 84), UINT8_C(  6), UINT8_C(181), UINT8_C(220), UINT8_C(125), UINT8_C(143) } },
    },
    { { UINT8_C(199), UINT8_C(139), UINT8_C(175), UINT8_C( 36), UINT8_C( 76), UINT8_C(202), UINT8_C( 85), UINT8_C( 47),
        UINT8_C(152), UINT8_C(207), UINT8_C(100), UINT8_C( 95), UINT8_C(140), UINT8_C(221), UINT8_C( 53), UINT8_C(175),
        UINT8_C(  5), UINT8_C(233), UINT8_C(222), UINT8_C( 23), UINT8_C( 20), UINT8_C( 71), UINT8_C( 21), UINT8_C( 57) },
        { { UINT8_C(199), UINT8_C(139), UINT8_C(175), UINT8_C( 36), UINT8_C( 76), UINT8_C(202), UINT8_C( 85), UINT8_C( 47) },
          { UINT8_C(152), UINT8_C(207), UINT8_C(100), UINT8_C( 95), UINT8_C(140), UINT8_C(221), UINT8_C( 53), UINT8_C(175) },
          { UINT8_C(  5), UINT8_C(233), UINT8_C(222), UINT8_C( 23), UINT8_C( 20), UINT8_C( 71), UINT8_C( 21), UINT8_C( 57) } },
    },
    { { UINT8_C(146), UINT8_C(105), UINT8_C( 64), UINT8_C( 71), UINT8_C( 70), UINT8_C(189), UINT8_C(215), UINT8_C( 13),
        UINT8_C( 72), UINT8_C(134), UINT8_C( 49), UINT8_C(149), UINT8_C( 80), UINT8_C(134), UINT8_C(196), UINT8_C(232),
        UINT8_C( 86), UINT8_C( 40), UINT8_C( 72), UINT8_C(226), UINT8_C(  5), UINT8_C(125), UINT8_C(145), UINT8_C( 10) },
        { { UINT8_C(146), UINT8_C(105), UINT8_C( 64), UINT8_C( 71), UINT8_C( 70), UINT8_C(189), UINT8_C(215), UINT8_C( 13) },
          { UINT8_C( 72), UINT8_C(134), UINT8_C( 49), UINT8_C(149), UINT8_C( 80), UINT8_C(134), UINT8_C(196), UINT8_C(232) },
          { UINT8_C( 86), UINT8_C( 40), UINT8_C( 72), UINT8_C(226), UINT8_C(  5), UINT8_C(125), UINT8_C(145), UINT8_C( 10) } },
    },
    { { UINT8_C(102), UINT8_C(111), UINT8_C( 34), UINT8_C(123), UINT8_C(183), UINT8_C( 55), UINT8_C(180), UINT8_C( 73),
        UINT8_C(161), UINT8_C(244), UINT8_C(144), UINT8_C(231), UINT8_C(178), UINT8_C(103), UINT8_C(244), UINT8_C(250),
        UINT8_C(238), UINT8_C( 38), UINT8_C(143), UINT8_C( 62), UINT8_C(172), UINT8_C( 83), UINT8_C( 39), UINT8_C(  2) },
        { { UINT8_C(102), UINT8_C(111), UINT8_C( 34), UINT8_C(123), UINT8_C(183), UINT8_C( 55), UINT8_C(180), UINT8_C( 73) },
          { UINT8_C(161), UINT8_C(244), UINT8_C(144), UINT8_C(231), UINT8_C(178), UINT8_C(103), UINT8_C(244), UINT8_C(250) },
          { UINT8_C(238), UINT8_C( 38), UINT8_C(143), UINT8_C( 62), UINT8_C(172), UINT8_C( 83), UINT8_C( 39), UINT8_C(  2) } },
    },
    { { UINT8_C(123), UINT8_C(111), UINT8_C(229), UINT8_C(128), UINT8_C(236), UINT8_C(118), UINT8_C(139), UINT8_C( 83),
        UINT8_C(230), UINT8_C(173), UINT8_C(206), UINT8_C(157), UINT8_C(228), UINT8_C(130), UINT8_C(230), UINT8_C(133),
        UINT8_C(119), UINT8_C(118), UINT8_C(108), UINT8_C( 41), UINT8_C(222), UINT8_C( 97), UINT8_C( 35), UINT8_C(204) },
        { { UINT8_C(123), UINT8_C(111), UINT8_C(229), UINT8_C(128), UINT8_C(236), UINT8_C(118), UINT8_C(139), UINT8_C( 83) },
          { UINT8_C(230), UINT8_C(173), UINT8_C(206), UINT8_C(157), UINT8_C(228), UINT8_C(130), UINT8_C(230), UINT8_C(133) },
          { UINT8_C(119), UINT8_C(118), UINT8_C(108), UINT8_C( 41), UINT8_C(222), UINT8_C( 97), UINT8_C( 35), UINT8_C(204) } },
    },
    { { UINT8_C(135), UINT8_C(179), UINT8_C( 10), UINT8_C( 51), UINT8_C(  6), UINT8_C( 49), UINT8_C( 54), UINT8_C(130),
        UINT8_C(160), UINT8_C( 27), UINT8_C(  2), UINT8_C(141), UINT8_C(145), UINT8_C(141), UINT8_C(224), UINT8_C(119),
        UINT8_C( 58), UINT8_C(174), UINT8_C( 20), UINT8_C( 31), UINT8_C( 48), UINT8_C(250), UINT8_C(164), UINT8_C(167) },
        { { UINT8_C(135), UINT8_C(179), UINT8_C( 10), UINT8_C( 51), UINT8_C(  6), UINT8_C( 49), UINT8_C( 54), UINT8_C(130) },
          { UINT8_C(160), UINT8_C( 27), UINT8_C(  2), UINT8_C(141), UINT8_C(145), UINT8_C(141), UINT8_C(224), UINT8_C(119) },
          { UINT8_C( 58), UINT8_C(174), UINT8_C( 20), UINT8_C( 31), UINT8_C( 48), UINT8_C(250), UINT8_C(164), UINT8_C(167) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_uint8x8x3_t r = simde_vld1_u8_x3(test_vec[i].buf);
    simde_uint8x8x3_t expected = {{
        simde_vld1_u8(test_vec[i].expected[0]),
        simde_vld1_u8(test_vec[i].expected[1]),
        simde_vld1_u8(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_u8x8x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    uint8_t buf[24];
    simde_test_codegen_random_memory(24, buf);
    simde_test_codegen_write_vu8(2, 24, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_uint8x8x3_t val = simde_vld1_u8_x3(buf);
    simde_test_arm_neon_write_u8x8x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_u16_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    uint16_t buf[12];
    uint16_t expected[3][4];
  } test_vec[] = {
    { { UINT16_C( 6609), UINT16_C(17989), UINT16_C(54332), UINT16_C(50414), UINT16_C(52298), UINT16_C(44748), UINT16_C(55247), UINT16_C(12044),
        UINT16_C(44872), UINT16_C(11892), UINT16_C(29751), UINT16_C(35622) },
        { { UINT16_C( 6609), UINT16_C(17989), UINT16_C(54332), UINT16_C(50414) },
          { UINT16_C(52298), UINT16_C(44748), UINT16_C(55247), UINT16_C(12044) },
          { UINT16_C(44872), UINT16_C(11892), UINT16_C(29751), UINT16_C(35622) } },
    },
    { { UINT16_C( 2012), UINT16_C(22680), UINT16_C(14501), UINT16_C(30591), UINT16_C(50513), UINT16_C(36285), UINT16_C(43929), UINT16_C(58193),
        UINT16_C( 7543), UINT16_C(18065), UINT16_C(40437), UINT16_C(15733) },
        { { UINT16_C( 2012), UINT16_C(22680), UINT16_C(14501), UINT16_C(30591) },
          { UINT16_C(50513), UINT16_C(36285), UINT16_C(43929), UINT16_C(58193) },
          { UINT16_C( 7543), UINT16_C(18065), UINT16_C(40437), UINT16_C(15733) } },
    },
    { { UINT16_C(59725), UINT16_C(33899), UINT16_C(37213), UINT16_C(14864), UINT16_C(43160), UINT16_C(15762), UINT16_C( 4576), UINT16_C(12724),
        UINT16_C(29142), UINT16_C(28862), UINT16_C( 3868), UINT16_C(37715) },
        { { UINT16_C(59725), UINT16_C(33899), UINT16_C(37213), UINT16_C(14864) },
          { UINT16_C(43160), UINT16_C(15762), UINT16_C( 4576), UINT16_C(12724) },
          { UINT16_C(29142), UINT16_C(28862), UINT16_C( 3868), UINT16_C(37715) } },
    },
    { { UINT16_C(58668), UINT16_C( 8665), UINT16_C(20098), UINT16_C(53086), UINT16_C(51512), UINT16_C(38228), UINT16_C(25690), UINT16_C(62159),
        UINT16_C(24844), UINT16_C(60464), UINT16_C(58483), UINT16_C(18717) },
        { { UINT16_C(58668), UINT16_C( 8665), UINT16_C(20098), UINT16_C(53086) },
          { UINT16_C(51512), UINT16_C(38228), UINT16_C(25690), UINT16_C(62159) },
          { UINT16_C(24844), UINT16_C(60464), UINT16_C(58483), UINT16_C(18717) } },
    },
    { { UINT16_C(56150), UINT16_C(29369), UINT16_C( 3562), UINT16_C( 5638), UINT16_C(57330), UINT16_C(29752), UINT16_C(38446), UINT16_C(26180),
        UINT16_C(39008), UINT16_C(47867), UINT16_C(52220), UINT16_C( 2221) },
        { { UINT16_C(56150), UINT16_C(29369), UINT16_C( 3562), UINT16_C( 5638) },
          { UINT16_C(57330), UINT16_C(29752), UINT16_C(38446), UINT16_C(26180) },
          { UINT16_C(39008), UINT16_C(47867), UINT16_C(52220), UINT16_C( 2221) } },
    },
    { { UINT16_C(56620), UINT16_C(40948), UINT16_C( 4545), UINT16_C( 6121), UINT16_C(41708), UINT16_C(54922), UINT16_C(37039), UINT16_C(41452),
        UINT16_C( 9327), UINT16_C(40214), UINT16_C(23227), UINT16_C( 6915) },
        { { UINT16_C(56620), UINT16_C(40948), UINT16_C( 4545), UINT16_C( 6121) },
          { UINT16_C(41708), UINT16_C(54922), UINT16_C(37039), UINT16_C(41452) },
          { UINT16_C( 9327), UINT16_C(40214), UINT16_C(23227), UINT16_C( 6915) } },
    },
    { { UINT16_C(65522), UINT16_C(61141), UINT16_C(33482), UINT16_C(63222), UINT16_C(59999), UINT16_C( 8598), UINT16_C(32763), UINT16_C(59192),
        UINT16_C(49697), UINT16_C(53693), UINT16_C(43346), UINT16_C(49778) },
        { { UINT16_C(65522), UINT16_C(61141), UINT16_C(33482), UINT16_C(63222) },
          { UINT16_C(59999), UINT16_C( 8598), UINT16_C(32763), UINT16_C(59192) },
          { UINT16_C(49697), UINT16_C(53693), UINT16_C(43346), UINT16_C(49778) } },
    },
    { { UINT16_C(35022), UINT16_C(35167), UINT16_C(25570), UINT16_C(54436), UINT16_C(31074), UINT16_C(11458), UINT16_C(47356), UINT16_C(23330),
        UINT16_C(47266), UINT16_C(40316), UINT16_C(46391), UINT16_C(22916) },
        { { UINT16_C(35022), UINT16_C(35167), UINT16_C(25570), UINT16_C(54436) },
          { UINT16_C(31074), UINT16_C(11458), UINT16_C(47356), UINT16_C(23330) },
          { UINT16_C(47266), UINT16_C(40316), UINT16_C(46391), UINT16_C(22916) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_uint16x4x3_t r = simde_vld1_u16_x3(test_vec[i].buf);
    simde_uint16x4x3_t expected = {{
        simde_vld1_u16(test_vec[i].expected[0]),
        simde_vld1_u16(test_vec[i].expected[1]),
        simde_vld1_u16(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_u16x4x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    uint16_t buf[12];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vu16(2, 12, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_uint16x4x3_t val = simde_vld1_u16_x3(buf);
    simde_test_arm_neon_write_u16x4x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_u32_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    uint32_t buf[6];
    uint32_t expected[3][2];
  } test_vec[] = {
    { { UINT32_C(3391766903), UINT32_C(3113000171), UINT32_C( 121826085), UINT32_C(2967266894), UINT32_C(1541185119), UINT32_C(4189585239) },
        { { UINT32_C(3391766903), UINT32_C(3113000171) },
          { UINT32_C( 121826085), UINT32_C(2967266894) },
          { UINT32_C(1541185119), UINT32_C(4189585239) } },
    },
    { { UINT32_C(4019663799), UINT32_C(1615338472), UINT32_C(1210741341), UINT32_C( 855750158), UINT32_C(4030415777), UINT32_C(2292193065) },
        { { UINT32_C(4019663799), UINT32_C(1615338472) },
          { UINT32_C(1210741341), UINT32_C( 855750158) },
          { UINT32_C(4030415777), UINT32_C(2292193065) } },
    },
    { { UINT32_C( 216300981), UINT32_C( 856071036), UINT32_C(3072499150), UINT32_C( 353856184), UINT32_C(3948757468), UINT32_C(2552127223) },
        { { UINT32_C( 216300981), UINT32_C( 856071036) },
          { UINT32_C(3072499150), UINT32_C( 353856184) },
          { UINT32_C(3948757468), UINT32_C(2552127223) } },
    },
    { { UINT32_C(3397933473), UINT32_C( 642984304), UINT32_C( 573716390), UINT32_C(2689939666), UINT32_C(2388097237), UINT32_C(3215159010) },
        { { UINT32_C(3397933473), UINT32_C( 642984304) },
          { UINT32_C( 573716390), UINT32_C(2689939666) },
          { UINT32_C(2388097237), UINT32_C(3215159010) } },
    },
    { { UINT32_C(2796159407), UINT32_C(  20957279), UINT32_C(2462828322), UINT32_C(2528648944), UINT32_C( 666430293), UINT32_C(4190637603) },
        { { UINT32_C(2796159407), UINT32_C(  20957279) },
          { UINT32_C(2462828322), UINT32_C(2528648944) },
          { UINT32_C( 666430293), UINT32_C(4190637603) } },
    },
    { { UINT32_C(1753685894), UINT32_C(1025976974), UINT32_C(2347028779), UINT32_C(3163300762), UINT32_C(3679344618), UINT32_C(3413182326) },
        { { UINT32_C(1753685894), UINT32_C(1025976974) },
          { UINT32_C(2347028779), UINT32_C(3163300762) },
          { UINT32_C(3679344618), UINT32_C(3413182326) } },
    },
    { { UINT32_C( 368257778), UINT32_C(3188636472), UINT32_C(1747359194), UINT32_C(3953544896), UINT32_C(3111553567), UINT32_C(2541028013) },
        { { UINT32_C( 368257778), UINT32_C(3188636472) },
          { UINT32_C(1747359194), UINT32_C(3953544896) },
          { UINT32_C(3111553567), UINT32_C(2541028013) } },
    },
    { { UINT32_C(3497182298), UINT32_C(3181110475), UINT32_C(1188204046), UINT32_C( 604299593), UINT32_C( 915155574), UINT32_C(2552377976) },
        { { UINT32_C(3497182298), UINT32_C(3181110475) },
          { UINT32_C(1188204046), UINT32_C( 604299593) },
          { UINT32_C( 915155574), UINT32_C(2552377976) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_uint32x2x3_t r = simde_vld1_u32_x3(test_vec[i].buf);
    simde_uint32x2x3_t expected = {{
        simde_vld1_u32(test_vec[i].expected[0]),
        simde_vld1_u32(test_vec[i].expected[1]),
        simde_vld1_u32(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_u32x2x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    uint32_t buf[6];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vu32(2, 6, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_uint32x2x3_t val = simde_vld1_u32_x3(buf);
    simde_test_arm_neon_write_u32x2x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_u64_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    uint64_t buf[3];
    uint64_t expected[3][1];
  } test_vec[] = {
    { { UINT64_C(17654611484569868476), UINT64_C( 7283270950622425995), UINT64_C( 4421602200060159471) },
        { { UINT64_C(17654611484569868476) },
          { UINT64_C( 7283270950622425995) },
          { UINT64_C( 4421602200060159471) } },
    },
    { { UINT64_C(15630469401322711514), UINT64_C(10285731182989622318), UINT64_C(15164736924849308598) },
        { { UINT64_C(15630469401322711514) },
          { UINT64_C(10285731182989622318) },
          { UINT64_C(15164736924849308598) } },
    },
    { { UINT64_C(12168840330351419100), UINT64_C( 1676717752007152464), UINT64_C( 9129533977082758433) },
        { { UINT64_C(12168840330351419100) },
          { UINT64_C( 1676717752007152464) },
          { UINT64_C( 9129533977082758433) } },
    },
    { { UINT64_C( 7626844375595324961), UINT64_C(11138506105637626397), UINT64_C(10610562576259910976) },
        { { UINT64_C( 7626844375595324961) },
          { UINT64_C(11138506105637626397) },
          { UINT64_C(10610562576259910976) } },
    },
    { { UINT64_C(16074870712278917327), UINT64_C(13616275717827568127), UINT64_C( 3422800518842876572) },
        { { UINT64_C(16074870712278917327) },
          { UINT64_C(13616275717827568127) },
          { UINT64_C( 3422800518842876572) } },
    },
    { { UINT64_C(11515309317332436680), UINT64_C(17173717345411499448), UINT64_C(10324908911588227309) },
        { { UINT64_C(11515309317332436680) },
          { UINT64_C(17173717345411499448) },
          { UINT64_C(10324908911588227309) } },
    },
    { { UINT64_C(17551078789523829107), UINT64_C( 4173707111931242875), UINT64_C( 6656043646660321921) },
        { { UINT64_C(17551078789523829107) },
          { UINT64_C( 4173707111931242875) },
          { UINT64_C( 6656043646660321921) } },
    },
    { { UINT64_C(13744759886282611261), UINT64_C(11980333853544887587), UINT64_C(17174438060917616796) },
        { { UINT64_C(13744759886282611261) },
          { UINT64_C(11980333853544887587) },
          { UINT64_C(17174438060917616796) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_uint64x1x3_t r = simde_vld1_u64_x3(test_vec[i].buf);
    simde_uint64x1x3_t expected = {{
        simde_vld1_u64(test_vec[i].expected[0]),
        simde_vld1_u64(test_vec[i].expected[1]),
        simde_vld1_u64(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_u64x1x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    uint64_t buf[3];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vu64(2, 3, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_uint64x1x3_t val = simde_vld1_u64_x3(buf);
    simde_test_arm_neon_write_u64x1x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_p8_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    simde_poly8_t buf[24];
    simde_poly8_t expected[3][8];
  } test_vec[] = {
    { { SIMDE_POLY8_C( 46), SIMDE_POLY8_C(  2), SIMDE_POLY8_C(129), SIMDE_POLY8_C(166), SIMDE_POLY8_C(106), SIMDE_POLY8_C(232), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 50),
        SIMDE_POLY8_C(149), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(150), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(113), SIMDE_POLY8_C(180), SIMDE_POLY8_C(250),
        SIMDE_POLY8_C(212), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 68) },
        { { SIMDE_POLY8_C( 46), SIMDE_POLY8_C(  2), SIMDE_POLY8_C(129), SIMDE_POLY8_C(166), SIMDE_POLY8_C(106), SIMDE_POLY8_C(232), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 50) },
          { SIMDE_POLY8_C(149), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(150), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(113), SIMDE_POLY8_C(180), SIMDE_POLY8_C(250) },
          { SIMDE_POLY8_C(212), SIMDE_POLY8_C( 33), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 73), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 68) } },
    },
    { { SIMDE_POLY8_C( 14), SIMDE_POLY8_C(101), SIMDE_POLY8_C(175), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(233), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 58),
        SIMDE_POLY8_C(236), SIMDE_POLY8_C(249), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(225), SIMDE_POLY8_C(107), SIMDE_POLY8_C(136), SIMDE_POLY8_C(119),
        SIMDE_POLY8_C(218), SIMDE_POLY8_C(235), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 49) },
        { { SIMDE_POLY8_C( 14), SIMDE_POLY8_C(101), SIMDE_POLY8_C(175), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(233), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 58) },
          { SIMDE_POLY8_C(236), SIMDE_POLY8_C(249), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(225), SIMDE_POLY8_C(107), SIMDE_POLY8_C(136), SIMDE_POLY8_C(119) },
          { SIMDE_POLY8_C(218), SIMDE_POLY8_C(235), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 49) } },
    },
    { { SIMDE_POLY8_C(226), SIMDE_POLY8_C(206), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(199), SIMDE_POLY8_C(189), SIMDE_POLY8_C(121), SIMDE_POLY8_C(214),
        SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(105), SIMDE_POLY8_C(254),
        SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(  6), SIMDE_POLY8_C(181), SIMDE_POLY8_C(220), SIMDE_POLY8_C(125), SIMDE_POLY8_C(143) },
        { { SIMDE_POLY8_C(226), SIMDE_POLY8_C(206), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(199), SIMDE_POLY8_C(189), SIMDE_POLY8_C(121), SIMDE_POLY8_C(214) },
          { SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 18), SIMDE_POLY8_C( 43), SIMDE_POLY8_C(105), SIMDE_POLY8_C(254) },
          { SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(  6), SIMDE_POLY8_C(181), SIMDE_POLY8_C(220), SIMDE_POLY8_C(125), SIMDE_POLY8_C(143) } },
    },
    { { SIMDE_POLY8_C(199), SIMDE_POLY8_C(139), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 47),
        SIMDE_POLY8_C(152), SIMDE_POLY8_C(207), SIMDE_POLY8_C(100), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(140), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(175),
        SIMDE_POLY8_C(  5), SIMDE_POLY8_C(233), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 57) },
        { { SIMDE_POLY8_C(199), SIMDE_POLY8_C(139), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 47) },
          { SIMDE_POLY8_C(152), SIMDE_POLY8_C(207), SIMDE_POLY8_C(100), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(140), SIMDE_POLY8_C(221), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(175) },
          { SIMDE_POLY8_C(  5), SIMDE_POLY8_C(233), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 57) } },
    },
    { { SIMDE_POLY8_C(146), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(189), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 13),
        SIMDE_POLY8_C( 72), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(134), SIMDE_POLY8_C(196), SIMDE_POLY8_C(232),
        SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(226), SIMDE_POLY8_C(  5), SIMDE_POLY8_C(125), SIMDE_POLY8_C(145), SIMDE_POLY8_C( 10) },
        { { SIMDE_POLY8_C(146), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(189), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 13) },
          { SIMDE_POLY8_C( 72), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(134), SIMDE_POLY8_C(196), SIMDE_POLY8_C(232) },
          { SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(226), SIMDE_POLY8_C(  5), SIMDE_POLY8_C(125), SIMDE_POLY8_C(145), SIMDE_POLY8_C( 10) } },
    },
    { { SIMDE_POLY8_C(102), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 34), SIMDE_POLY8_C(123), SIMDE_POLY8_C(183), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 73),
        SIMDE_POLY8_C(161), SIMDE_POLY8_C(244), SIMDE_POLY8_C(144), SIMDE_POLY8_C(231), SIMDE_POLY8_C(178), SIMDE_POLY8_C(103), SIMDE_POLY8_C(244), SIMDE_POLY8_C(250),
        SIMDE_POLY8_C(238), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(172), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(  2) },
        { { SIMDE_POLY8_C(102), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 34), SIMDE_POLY8_C(123), SIMDE_POLY8_C(183), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 73) },
          { SIMDE_POLY8_C(161), SIMDE_POLY8_C(244), SIMDE_POLY8_C(144), SIMDE_POLY8_C(231), SIMDE_POLY8_C(178), SIMDE_POLY8_C(103), SIMDE_POLY8_C(244), SIMDE_POLY8_C(250) },
          { SIMDE_POLY8_C(238), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(172), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(  2) } },
    },
    { { SIMDE_POLY8_C(123), SIMDE_POLY8_C(111), SIMDE_POLY8_C(229), SIMDE_POLY8_C(128), SIMDE_POLY8_C(236), SIMDE_POLY8_C(118), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 83),
        SIMDE_POLY8_C(230), SIMDE_POLY8_C(173), SIMDE_POLY8_C(206), SIMDE_POLY8_C(157), SIMDE_POLY8_C(228), SIMDE_POLY8_C(130), SIMDE_POLY8_C(230), SIMDE_POLY8_C(133),
        SIMDE_POLY8_C(119), SIMDE_POLY8_C(118), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(204) },
        { { SIMDE_POLY8_C(123), SIMDE_POLY8_C(111), SIMDE_POLY8_C(229), SIMDE_POLY8_C(128), SIMDE_POLY8_C(236), SIMDE_POLY8_C(118), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 83) },
          { SIMDE_POLY8_C(230), SIMDE_POLY8_C(173), SIMDE_POLY8_C(206), SIMDE_POLY8_C(157), SIMDE_POLY8_C(228), SIMDE_POLY8_C(130), SIMDE_POLY8_C(230), SIMDE_POLY8_C(133) },
          { SIMDE_POLY8_C(119), SIMDE_POLY8_C(118), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(222), SIMDE_POLY8_C( 97), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(204) } },
    },
    { { SIMDE_POLY8_C(135), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(  6), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(130),
        SIMDE_POLY8_C(160), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(  2), SIMDE_POLY8_C(141), SIMDE_POLY8_C(145), SIMDE_POLY8_C(141), SIMDE_POLY8_C(224), SIMDE_POLY8_C(119),
        SIMDE_POLY8_C( 58), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(250), SIMDE_POLY8_C(164), SIMDE_POLY8_C(167) },
        { { SIMDE_POLY8_C(135), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(  6), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(130) },
          { SIMDE_POLY8_C(160), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(  2), SIMDE_POLY8_C(141), SIMDE_POLY8_C(145), SIMDE_POLY8_C(141), SIMDE_POLY8_C(224), SIMDE_POLY8_C(119) },
          { SIMDE_POLY8_C( 58), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(250), SIMDE_POLY8_C(164), SIMDE_POLY8_C(167) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_poly8x8x3_t r = simde_vld1_p8_x3(test_vec[i].buf);
    simde_poly8x8x3_t expected = {{
        simde_vld1_p8(test_vec[i].expected[0]),
        simde_vld1_p8(test_vec[i].expected[1]),
        simde_vld1_p8(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_p8x8x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    simde_poly8_t buf[24];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vp8(2, 24, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_poly8x8x3_t val = simde_vld1_p8_x3(buf);
    simde_test_arm_neon_write_p8x8x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_p16_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    simde_poly16_t buf[12];
    simde_poly16_t expected[3][4];
  } test_vec[] = {
    { { SIMDE_POLY16_C( 6609), SIMDE_POLY16_C(17989), SIMDE_POLY16_C(54332), SIMDE_POLY16_C(50414), SIMDE_POLY16_C(52298), SIMDE_POLY16_C(44748), SIMDE_POLY16_C(55247), SIMDE_POLY16_C(12044),
        SIMDE_POLY16_C(44872), SIMDE_POLY16_C(11892), SIMDE_POLY16_C(29751), SIMDE_POLY16_C(35622) },
        { { SIMDE_POLY16_C( 6609), SIMDE_POLY16_C(17989), SIMDE_POLY16_C(54332), SIMDE_POLY16_C(50414) },
          { SIMDE_POLY16_C(52298), SIMDE_POLY16_C(44748), SIMDE_POLY16_C(55247), SIMDE_POLY16_C(12044) },
          { SIMDE_POLY16_C(44872), SIMDE_POLY16_C(11892), SIMDE_POLY16_C(29751), SIMDE_POLY16_C(35622) } },
    },
    { { SIMDE_POLY16_C( 2012), SIMDE_POLY16_C(22680), SIMDE_POLY16_C(14501), SIMDE_POLY16_C(30591), SIMDE_POLY16_C(50513), SIMDE_POLY16_C(36285), SIMDE_POLY16_C(43929), SIMDE_POLY16_C(58193),
        SIMDE_POLY16_C( 7543), SIMDE_POLY16_C(18065), SIMDE_POLY16_C(40437), SIMDE_POLY16_C(15733) },
        { { SIMDE_POLY16_C( 2012), SIMDE_POLY16_C(22680), SIMDE_POLY16_C(14501), SIMDE_POLY16_C(30591) },
          { SIMDE_POLY16_C(50513), SIMDE_POLY16_C(36285), SIMDE_POLY16_C(43929), SIMDE_POLY16_C(58193) },
          { SIMDE_POLY16_C( 7543), SIMDE_POLY16_C(18065), SIMDE_POLY16_C(40437), SIMDE_POLY16_C(15733) } },
    },
    { { SIMDE_POLY16_C(59725), SIMDE_POLY16_C(33899), SIMDE_POLY16_C(37213), SIMDE_POLY16_C(14864), SIMDE_POLY16_C(43160), SIMDE_POLY16_C(15762), SIMDE_POLY16_C( 4576), SIMDE_POLY16_C(12724),
        SIMDE_POLY16_C(29142), SIMDE_POLY16_C(28862), SIMDE_POLY16_C( 3868), SIMDE_POLY16_C(37715) },
        { { SIMDE_POLY16_C(59725), SIMDE_POLY16_C(33899), SIMDE_POLY16_C(37213), SIMDE_POLY16_C(14864) },
          { SIMDE_POLY16_C(43160), SIMDE_POLY16_C(15762), SIMDE_POLY16_C( 4576), SIMDE_POLY16_C(12724) },
          { SIMDE_POLY16_C(29142), SIMDE_POLY16_C(28862), SIMDE_POLY16_C( 3868), SIMDE_POLY16_C(37715) } },
    },
    { { SIMDE_POLY16_C(58668), SIMDE_POLY16_C( 8665), SIMDE_POLY16_C(20098), SIMDE_POLY16_C(53086), SIMDE_POLY16_C(51512), SIMDE_POLY16_C(38228), SIMDE_POLY16_C(25690), SIMDE_POLY16_C(62159),
        SIMDE_POLY16_C(24844), SIMDE_POLY16_C(60464), SIMDE_POLY16_C(58483), SIMDE_POLY16_C(18717) },
        { { SIMDE_POLY16_C(58668), SIMDE_POLY16_C( 8665), SIMDE_POLY16_C(20098), SIMDE_POLY16_C(53086) },
          { SIMDE_POLY16_C(51512), SIMDE_POLY16_C(38228), SIMDE_POLY16_C(25690), SIMDE_POLY16_C(62159) },
          { SIMDE_POLY16_C(24844), SIMDE_POLY16_C(60464), SIMDE_POLY16_C(58483), SIMDE_POLY16_C(18717) } },
    },
    { { SIMDE_POLY16_C(56150), SIMDE_POLY16_C(29369), SIMDE_POLY16_C( 3562), SIMDE_POLY16_C( 5638), SIMDE_POLY16_C(57330), SIMDE_POLY16_C(29752), SIMDE_POLY16_C(38446), SIMDE_POLY16_C(26180),
        SIMDE_POLY16_C(39008), SIMDE_POLY16_C(47867), SIMDE_POLY16_C(52220), SIMDE_POLY16_C( 2221) },
        { { SIMDE_POLY16_C(56150), SIMDE_POLY16_C(29369), SIMDE_POLY16_C( 3562), SIMDE_POLY16_C( 5638) },
          { SIMDE_POLY16_C(57330), SIMDE_POLY16_C(29752), SIMDE_POLY16_C(38446), SIMDE_POLY16_C(26180) },
          { SIMDE_POLY16_C(39008), SIMDE_POLY16_C(47867), SIMDE_POLY16_C(52220), SIMDE_POLY16_C( 2221) } },
    },
    { { SIMDE_POLY16_C(56620), SIMDE_POLY16_C(40948), SIMDE_POLY16_C( 4545), SIMDE_POLY16_C( 6121), SIMDE_POLY16_C(41708), SIMDE_POLY16_C(54922), SIMDE_POLY16_C(37039), SIMDE_POLY16_C(41452),
        SIMDE_POLY16_C( 9327), SIMDE_POLY16_C(40214), SIMDE_POLY16_C(23227), SIMDE_POLY16_C( 6915) },
        { { SIMDE_POLY16_C(56620), SIMDE_POLY16_C(40948), SIMDE_POLY16_C( 4545), SIMDE_POLY16_C( 6121) },
          { SIMDE_POLY16_C(41708), SIMDE_POLY16_C(54922), SIMDE_POLY16_C(37039), SIMDE_POLY16_C(41452) },
          { SIMDE_POLY16_C( 9327), SIMDE_POLY16_C(40214), SIMDE_POLY16_C(23227), SIMDE_POLY16_C( 6915) } },
    },
    { { SIMDE_POLY16_C(65522), SIMDE_POLY16_C(61141), SIMDE_POLY16_C(33482), SIMDE_POLY16_C(63222), SIMDE_POLY16_C(59999), SIMDE_POLY16_C( 8598), SIMDE_POLY16_C(32763), SIMDE_POLY16_C(59192),
        SIMDE_POLY16_C(49697), SIMDE_POLY16_C(53693), SIMDE_POLY16_C(43346), SIMDE_POLY16_C(49778) },
        { { SIMDE_POLY16_C(65522), SIMDE_POLY16_C(61141), SIMDE_POLY16_C(33482), SIMDE_POLY16_C(63222) },
          { SIMDE_POLY16_C(59999), SIMDE_POLY16_C( 8598), SIMDE_POLY16_C(32763), SIMDE_POLY16_C(59192) },
          { SIMDE_POLY16_C(49697), SIMDE_POLY16_C(53693), SIMDE_POLY16_C(43346), SIMDE_POLY16_C(49778) } },
    },
    { { SIMDE_POLY16_C(35022), SIMDE_POLY16_C(35167), SIMDE_POLY16_C(25570), SIMDE_POLY16_C(54436), SIMDE_POLY16_C(31074), SIMDE_POLY16_C(11458), SIMDE_POLY16_C(47356), SIMDE_POLY16_C(23330),
        SIMDE_POLY16_C(47266), SIMDE_POLY16_C(40316), SIMDE_POLY16_C(46391), SIMDE_POLY16_C(22916) },
        { { SIMDE_POLY16_C(35022), SIMDE_POLY16_C(35167), SIMDE_POLY16_C(25570), SIMDE_POLY16_C(54436) },
          { SIMDE_POLY16_C(31074), SIMDE_POLY16_C(11458), SIMDE_POLY16_C(47356), SIMDE_POLY16_C(23330) },
          { SIMDE_POLY16_C(47266), SIMDE_POLY16_C(40316), SIMDE_POLY16_C(46391), SIMDE_POLY16_C(22916) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_poly16x4x3_t r = simde_vld1_p16_x3(test_vec[i].buf);
    simde_poly16x4x3_t expected = {{
        simde_vld1_p16(test_vec[i].expected[0]),
        simde_vld1_p16(test_vec[i].expected[1]),
        simde_vld1_p16(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_p16x4x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    simde_poly16_t buf[12];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vp16(2, 12, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_poly16x4x3_t val = simde_vld1_p16_x3(buf);
    simde_test_arm_neon_write_p16x4x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_p64_x3 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    simde_poly64_t buf[3];
    simde_poly64_t expected[3][1];
  } test_vec[] = {
    { { SIMDE_POLY64_C(17654611484569868476), SIMDE_POLY64_C( 7283270950622425995), SIMDE_POLY64_C( 4421602200060159471) },
        { { SIMDE_POLY64_C(17654611484569868476) },
          { SIMDE_POLY64_C( 7283270950622425995) },
          { SIMDE_POLY64_C( 4421602200060159471) } },
    },
    { { SIMDE_POLY64_C(15630469401322711514), SIMDE_POLY64_C(10285731182989622318), SIMDE_POLY64_C(15164736924849308598) },
        { { SIMDE_POLY64_C(15630469401322711514) },
          { SIMDE_POLY64_C(10285731182989622318) },
          { SIMDE_POLY64_C(15164736924849308598) } },
    },
    { { SIMDE_POLY64_C(12168840330351419100), SIMDE_POLY64_C( 1676717752007152464), SIMDE_POLY64_C( 9129533977082758433) },
        { { SIMDE_POLY64_C(12168840330351419100) },
          { SIMDE_POLY64_C( 1676717752007152464) },
          { SIMDE_POLY64_C( 9129533977082758433) } },
    },
    { { SIMDE_POLY64_C( 7626844375595324961), SIMDE_POLY64_C(11138506105637626397), SIMDE_POLY64_C(10610562576259910976) },
        { { SIMDE_POLY64_C( 7626844375595324961) },
          { SIMDE_POLY64_C(11138506105637626397) },
          { SIMDE_POLY64_C(10610562576259910976) } },
    },
    { { SIMDE_POLY64_C(16074870712278917327), SIMDE_POLY64_C(13616275717827568127), SIMDE_POLY64_C( 3422800518842876572) },
        { { SIMDE_POLY64_C(16074870712278917327) },
          { SIMDE_POLY64_C(13616275717827568127) },
          { SIMDE_POLY64_C( 3422800518842876572) } },
    },
    { { SIMDE_POLY64_C(11515309317332436680), SIMDE_POLY64_C(17173717345411499448), SIMDE_POLY64_C(10324908911588227309) },
        { { SIMDE_POLY64_C(11515309317332436680) },
          { SIMDE_POLY64_C(17173717345411499448) },
          { SIMDE_POLY64_C(10324908911588227309) } },
    },
    { { SIMDE_POLY64_C(17551078789523829107), SIMDE_POLY64_C( 4173707111931242875), SIMDE_POLY64_C( 6656043646660321921) },
        { { SIMDE_POLY64_C(17551078789523829107) },
          { SIMDE_POLY64_C( 4173707111931242875) },
          { SIMDE_POLY64_C( 6656043646660321921) } },
    },
    { { SIMDE_POLY64_C(13744759886282611261), SIMDE_POLY64_C(11980333853544887587), SIMDE_POLY64_C(17174438060917616796) },
        { { SIMDE_POLY64_C(13744759886282611261) },
          { SIMDE_POLY64_C(11980333853544887587) },
          { SIMDE_POLY64_C(17174438060917616796) } },
    },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_poly64x1x3_t r = simde_vld1_p64_x3(test_vec[i].buf);
    simde_poly64x1x3_t expected = {{
        simde_vld1_p64(test_vec[i].expected[0]),
        simde_vld1_p64(test_vec[i].expected[1]),
        simde_vld1_p64(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_p64x1x3(r, expected);
  }

  return 0;
#else
  for (int i = 0 ; i < 8 ; i++) {
    simde_poly64_t buf[3];
    simde_test_codegen_random_memory(24, (uint8_t*)buf);
    simde_test_codegen_write_vp64(2, 3, buf, SIMDE_TEST_VEC_POS_FIRST);

    simde_poly64x1x3_t val = simde_vld1_p64_x3(buf);
    simde_test_arm_neon_write_p64x1x3(2, val, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_vld1_bf16_x3 (SIMDE_MUNIT_TEST_ARGS) {
  struct {
    simde_bfloat16 buf[12];
    simde_bfloat16 expected[3][4];
  } test_vec[] = {
   { {  SIMDE_BFLOAT16_VALUE(-5.79), SIMDE_BFLOAT16_VALUE(4.80), SIMDE_BFLOAT16_VALUE(9.66), SIMDE_BFLOAT16_VALUE(-2.49),
        SIMDE_BFLOAT16_VALUE(-3.48), SIMDE_BFLOAT16_VALUE(2.38), SIMDE_BFLOAT16_VALUE(-7.06), SIMDE_BFLOAT16_VALUE(-9.89),
        SIMDE_BFLOAT16_VALUE(-0.42), SIMDE_BFLOAT16_VALUE(4.02), SIMDE_BFLOAT16_VALUE(1.60), SIMDE_BFLOAT16_VALUE(4.63) },
   { {  SIMDE_BFLOAT16_VALUE(-5.79), SIMDE_BFLOAT16_VALUE(4.80), SIMDE_BFLOAT16_VALUE(9.66), SIMDE_BFLOAT16_VALUE(-2.49) },
     {  SIMDE_BFLOAT16_VALUE(-3.48), SIMDE_BFLOAT16_VALUE(2.38), SIMDE_BFLOAT16_VALUE(-7.06), SIMDE_BFLOAT16_VALUE(-9.89) },
     {  SIMDE_BFLOAT16_VALUE(-0.42), SIMDE_BFLOAT16_VALUE(4.02), SIMDE_BFLOAT16_VALUE(1.60), SIMDE_BFLOAT16_VALUE(4.63) } } },
   { {  SIMDE_BFLOAT16_VALUE(-7.02), SIMDE_BFLOAT16_VALUE(1.17), SIMDE_BFLOAT16_VALUE(-2.58), SIMDE_BFLOAT16_VALUE(-1.99),
        SIMDE_BFLOAT16_VALUE(8.35), SIMDE_BFLOAT16_VALUE(-6.76), SIMDE_BFLOAT16_VALUE(-2.81), SIMDE_BFLOAT16_VALUE(-8.55),
        SIMDE_BFLOAT16_VALUE(5.89), SIMDE_BFLOAT16_VALUE(-9.99), SIMDE_BFLOAT16_VALUE(3.60), SIMDE_BFLOAT16_VALUE(-5.29) },
   { {  SIMDE_BFLOAT16_VALUE(-7.02), SIMDE_BFLOAT16_VALUE(1.17), SIMDE_BFLOAT16_VALUE(-2.58), SIMDE_BFLOAT16_VALUE(-1.99) },
     {  SIMDE_BFLOAT16_VALUE(8.35), SIMDE_BFLOAT16_VALUE(-6.76), SIMDE_BFLOAT16_VALUE(-2.81), SIMDE_BFLOAT16_VALUE(-8.55) },
     {  SIMDE_BFLOAT16_VALUE(5.89), SIMDE_BFLOAT16_VALUE(-9.99), SIMDE_BFLOAT16_VALUE(3.60), SIMDE_BFLOAT16_VALUE(-5.29) } } },
   { {  SIMDE_BFLOAT16_VALUE(-0.56), SIMDE_BFLOAT16_VALUE(-4.61), SIMDE_BFLOAT16_VALUE(4.12), SIMDE_BFLOAT16_VALUE(6.86),
        SIMDE_BFLOAT16_VALUE(-0.93), SIMDE_BFLOAT16_VALUE(8.80), SIMDE_BFLOAT16_VALUE(-4.47), SIMDE_BFLOAT16_VALUE(-0.16),
        SIMDE_BFLOAT16_VALUE(-2.20), SIMDE_BFLOAT16_VALUE(9.97), SIMDE_BFLOAT16_VALUE(2.92), SIMDE_BFLOAT16_VALUE(4.50) },
   { {  SIMDE_BFLOAT16_VALUE(-0.56), SIMDE_BFLOAT16_VALUE(-4.61), SIMDE_BFLOAT16_VALUE(4.12), SIMDE_BFLOAT16_VALUE(6.86) },
     {  SIMDE_BFLOAT16_VALUE(-0.93), SIMDE_BFLOAT16_VALUE(8.80), SIMDE_BFLOAT16_VALUE(-4.47), SIMDE_BFLOAT16_VALUE(-0.16) },
     {  SIMDE_BFLOAT16_VALUE(-2.20), SIMDE_BFLOAT16_VALUE(9.97), SIMDE_BFLOAT16_VALUE(2.92), SIMDE_BFLOAT16_VALUE(4.50) } } },
   { {  SIMDE_BFLOAT16_VALUE(5.33), SIMDE_BFLOAT16_VALUE(1.10), SIMDE_BFLOAT16_VALUE(-0.07), SIMDE_BFLOAT16_VALUE(4.80),
        SIMDE_BFLOAT16_VALUE(-7.40), SIMDE_BFLOAT16_VALUE(4.65), SIMDE_BFLOAT16_VALUE(9.31), SIMDE_BFLOAT16_VALUE(8.79),
        SIMDE_BFLOAT16_VALUE(-3.82), SIMDE_BFLOAT16_VALUE(4.51), SIMDE_BFLOAT16_VALUE(-9.93), SIMDE_BFLOAT16_VALUE(-6.90) },
   { {  SIMDE_BFLOAT16_VALUE(5.33), SIMDE_BFLOAT16_VALUE(1.10), SIMDE_BFLOAT16_VALUE(-0.07), SIMDE_BFLOAT16_VALUE(4.80) },
     {  SIMDE_BFLOAT16_VALUE(-7.40), SIMDE_BFLOAT16_VALUE(4.65), SIMDE_BFLOAT16_VALUE(9.31), SIMDE_BFLOAT16_VALUE(8.79) },
     {  SIMDE_BFLOAT16_VALUE(-3.82), SIMDE_BFLOAT16_VALUE(4.51), SIMDE_BFLOAT16_VALUE(-9.93), SIMDE_BFLOAT16_VALUE(-6.90) } } },
   { {  SIMDE_BFLOAT16_VALUE(6.23), SIMDE_BFLOAT16_VALUE(9.84), SIMDE_BFLOAT16_VALUE(1.44), SIMDE_BFLOAT16_VALUE(-9.15),
        SIMDE_BFLOAT16_VALUE(0.50), SIMDE_BFLOAT16_VALUE(6.55), SIMDE_BFLOAT16_VALUE(-3.70), SIMDE_BFLOAT16_VALUE(-1.56),
        SIMDE_BFLOAT16_VALUE(-1.16), SIMDE_BFLOAT16_VALUE(1.56), SIMDE_BFLOAT16_VALUE(-4.94), SIMDE_BFLOAT16_VALUE(-5.71) },
   { {  SIMDE_BFLOAT16_VALUE(6.23), SIMDE_BFLOAT16_VALUE(9.84), SIMDE_BFLOAT16_VALUE(1.44), SIMDE_BFLOAT16_VALUE(-9.15) },
     {  SIMDE_BFLOAT16_VALUE(0.50), SIMDE_BFLOAT16_VALUE(6.55), SIMDE_BFLOAT16_VALUE(-3.70), SIMDE_BFLOAT16_VALUE(-1.56) },
     {  SIMDE_BFLOAT16_VALUE(-1.16), SIMDE_BFLOAT16_VALUE(1.56), SIMDE_BFLOAT16_VALUE(-4.94), SIMDE_BFLOAT16_VALUE(-5.71) } } },
  };

  for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde_bfloat16x4x3_t r = simde_vld1_bf16_x3(test_vec[i].buf);
    simde_bfloat16x4x3_t expected = {{
        simde_vld1_bf16(test_vec[i].expected[0]),
        simde_vld1_bf16(test_vec[i].expected[1]),
        simde_vld1_bf16(test_vec[i].expected[2]),
    }};
    simde_test_arm_neon_assert_equal_bf16x4x3(r, expected, 1);
  }

  return 0;
}

#endif /* !defined(SIMDE_BUG_INTEL_857088) */

SIMDE_TEST_FUNC_LIST_BEGIN
#if !defined(SIMDE_BUG_INTEL_857088)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_f16_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_f32_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_f64_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_s8_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_s16_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_s32_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_s64_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_u8_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_u16_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_u32_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_u64_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_p8_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_p16_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_p64_x3)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1_bf16_x3)
#endif /* !defined(SIMDE_BUG_INTEL_857088) */
SIMDE_TEST_FUNC_LIST_END

#include "test-neon-footer.h"