#define SIMDE_TEST_ARM_NEON_INSN ld1q_x4
#include "test/test.h"
#include "test-neon.h"
#include "../../../simde/arm/neon/ld1q_x4.h"
#include "../../../simde/arm/neon/ld1_lane.h"
#if !defined(SIMDE_BUG_INTEL_857088)
static int
test_simde_vld1q_f16_x4 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_float16_t buf[32];
simde_float16_t expected[4][8];
} test_vec[] = {
{ { SIMDE_FLOAT16_VALUE(0.77), SIMDE_FLOAT16_VALUE(-4.96), SIMDE_FLOAT16_VALUE(4.32), SIMDE_FLOAT16_VALUE(7.52),
SIMDE_FLOAT16_VALUE(4.70), SIMDE_FLOAT16_VALUE(1.33), SIMDE_FLOAT16_VALUE(-9.47), SIMDE_FLOAT16_VALUE(7.32),
SIMDE_FLOAT16_VALUE(-3.23), SIMDE_FLOAT16_VALUE(0.61), SIMDE_FLOAT16_VALUE(-7.77), SIMDE_FLOAT16_VALUE(1.39),
SIMDE_FLOAT16_VALUE(-3.07), SIMDE_FLOAT16_VALUE(-3.61), SIMDE_FLOAT16_VALUE(1.98), SIMDE_FLOAT16_VALUE(-7.55),
SIMDE_FLOAT16_VALUE(-4.89), SIMDE_FLOAT16_VALUE(2.58), SIMDE_FLOAT16_VALUE(-1.82), SIMDE_FLOAT16_VALUE(-7.17),
SIMDE_FLOAT16_VALUE(8.34), SIMDE_FLOAT16_VALUE(6.72), SIMDE_FLOAT16_VALUE(-7.10), SIMDE_FLOAT16_VALUE(-4.64),
SIMDE_FLOAT16_VALUE(9.47), SIMDE_FLOAT16_VALUE(4.04), SIMDE_FLOAT16_VALUE(0.95), SIMDE_FLOAT16_VALUE(-6.12),
SIMDE_FLOAT16_VALUE(-4.02), SIMDE_FLOAT16_VALUE(-8.97), SIMDE_FLOAT16_VALUE(-5.84), SIMDE_FLOAT16_VALUE(5.81) },
{ { SIMDE_FLOAT16_VALUE(0.77), SIMDE_FLOAT16_VALUE(-4.96), SIMDE_FLOAT16_VALUE(4.32), SIMDE_FLOAT16_VALUE(7.52),
SIMDE_FLOAT16_VALUE(4.70), SIMDE_FLOAT16_VALUE(1.33), SIMDE_FLOAT16_VALUE(-9.47), SIMDE_FLOAT16_VALUE(7.32) },
{ SIMDE_FLOAT16_VALUE(-3.23), SIMDE_FLOAT16_VALUE(0.61), SIMDE_FLOAT16_VALUE(-7.77), SIMDE_FLOAT16_VALUE(1.39),
SIMDE_FLOAT16_VALUE(-3.07), SIMDE_FLOAT16_VALUE(-3.61), SIMDE_FLOAT16_VALUE(1.98), SIMDE_FLOAT16_VALUE(-7.55) },
{ SIMDE_FLOAT16_VALUE(-4.89), SIMDE_FLOAT16_VALUE(2.58), SIMDE_FLOAT16_VALUE(-1.82), SIMDE_FLOAT16_VALUE(-7.17),
SIMDE_FLOAT16_VALUE(8.34), SIMDE_FLOAT16_VALUE(6.72), SIMDE_FLOAT16_VALUE(-7.10), SIMDE_FLOAT16_VALUE(-4.64) },
{ SIMDE_FLOAT16_VALUE(9.47), SIMDE_FLOAT16_VALUE(4.04), SIMDE_FLOAT16_VALUE(0.95), SIMDE_FLOAT16_VALUE(-6.12),
SIMDE_FLOAT16_VALUE(-4.02), SIMDE_FLOAT16_VALUE(-8.97), SIMDE_FLOAT16_VALUE(-5.84), SIMDE_FLOAT16_VALUE(5.81) } } },
{ { SIMDE_FLOAT16_VALUE(5.50), SIMDE_FLOAT16_VALUE(5.24), SIMDE_FLOAT16_VALUE(8.86), SIMDE_FLOAT16_VALUE(4.11),
SIMDE_FLOAT16_VALUE(-9.23), SIMDE_FLOAT16_VALUE(-5.26), SIMDE_FLOAT16_VALUE(2.44), SIMDE_FLOAT16_VALUE(6.43),
SIMDE_FLOAT16_VALUE(1.99), SIMDE_FLOAT16_VALUE(3.20), SIMDE_FLOAT16_VALUE(8.92), SIMDE_FLOAT16_VALUE(-1.64),
SIMDE_FLOAT16_VALUE(7.53), SIMDE_FLOAT16_VALUE(-2.88), SIMDE_FLOAT16_VALUE(1.19), SIMDE_FLOAT16_VALUE(-2.26),
SIMDE_FLOAT16_VALUE(7.85), SIMDE_FLOAT16_VALUE(-3.73), SIMDE_FLOAT16_VALUE(-6.25), SIMDE_FLOAT16_VALUE(-5.78),
SIMDE_FLOAT16_VALUE(-4.64), SIMDE_FLOAT16_VALUE(-6.97), SIMDE_FLOAT16_VALUE(-3.81), SIMDE_FLOAT16_VALUE(-1.47),
SIMDE_FLOAT16_VALUE(8.97), SIMDE_FLOAT16_VALUE(-3.54), SIMDE_FLOAT16_VALUE(-8.46), SIMDE_FLOAT16_VALUE(-0.59),
SIMDE_FLOAT16_VALUE(1.21), SIMDE_FLOAT16_VALUE(-0.55), SIMDE_FLOAT16_VALUE(-3.94), SIMDE_FLOAT16_VALUE(-5.49) },
{ { SIMDE_FLOAT16_VALUE(5.50), SIMDE_FLOAT16_VALUE(5.24), SIMDE_FLOAT16_VALUE(8.86), SIMDE_FLOAT16_VALUE(4.11),
SIMDE_FLOAT16_VALUE(-9.23), SIMDE_FLOAT16_VALUE(-5.26), SIMDE_FLOAT16_VALUE(2.44), SIMDE_FLOAT16_VALUE(6.43) },
{ SIMDE_FLOAT16_VALUE(1.99), SIMDE_FLOAT16_VALUE(3.20), SIMDE_FLOAT16_VALUE(8.92), SIMDE_FLOAT16_VALUE(-1.64),
SIMDE_FLOAT16_VALUE(7.53), SIMDE_FLOAT16_VALUE(-2.88), SIMDE_FLOAT16_VALUE(1.19), SIMDE_FLOAT16_VALUE(-2.26) },
{ SIMDE_FLOAT16_VALUE(7.85), SIMDE_FLOAT16_VALUE(-3.73), SIMDE_FLOAT16_VALUE(-6.25), SIMDE_FLOAT16_VALUE(-5.78),
SIMDE_FLOAT16_VALUE(-4.64), SIMDE_FLOAT16_VALUE(-6.97), SIMDE_FLOAT16_VALUE(-3.81), SIMDE_FLOAT16_VALUE(-1.47) },
{ SIMDE_FLOAT16_VALUE(8.97), SIMDE_FLOAT16_VALUE(-3.54), SIMDE_FLOAT16_VALUE(-8.46), SIMDE_FLOAT16_VALUE(-0.59),
SIMDE_FLOAT16_VALUE(1.21), SIMDE_FLOAT16_VALUE(-0.55), SIMDE_FLOAT16_VALUE(-3.94), SIMDE_FLOAT16_VALUE(-5.49) } } },
{ { SIMDE_FLOAT16_VALUE(0.84), SIMDE_FLOAT16_VALUE(1.66), SIMDE_FLOAT16_VALUE(-0.69), SIMDE_FLOAT16_VALUE(0.03),
SIMDE_FLOAT16_VALUE(-9.89), SIMDE_FLOAT16_VALUE(-1.33), SIMDE_FLOAT16_VALUE(2.77), SIMDE_FLOAT16_VALUE(2.16),
SIMDE_FLOAT16_VALUE(-9.13), SIMDE_FLOAT16_VALUE(7.90), SIMDE_FLOAT16_VALUE(9.03), SIMDE_FLOAT16_VALUE(2.79),
SIMDE_FLOAT16_VALUE(-8.16), SIMDE_FLOAT16_VALUE(-1.11), SIMDE_FLOAT16_VALUE(2.16), SIMDE_FLOAT16_VALUE(5.32),
SIMDE_FLOAT16_VALUE(9.71), SIMDE_FLOAT16_VALUE(-7.58), SIMDE_FLOAT16_VALUE(-0.85), SIMDE_FLOAT16_VALUE(-8.57),
SIMDE_FLOAT16_VALUE(1.14), SIMDE_FLOAT16_VALUE(-0.42), SIMDE_FLOAT16_VALUE(3.32), SIMDE_FLOAT16_VALUE(6.97),
SIMDE_FLOAT16_VALUE(1.24), SIMDE_FLOAT16_VALUE(-8.74), SIMDE_FLOAT16_VALUE(-8.75), SIMDE_FLOAT16_VALUE(-0.72),
SIMDE_FLOAT16_VALUE(5.61), SIMDE_FLOAT16_VALUE(4.15), SIMDE_FLOAT16_VALUE(9.62), SIMDE_FLOAT16_VALUE(-3.79) },
{ { SIMDE_FLOAT16_VALUE(0.84), SIMDE_FLOAT16_VALUE(1.66), SIMDE_FLOAT16_VALUE(-0.69), SIMDE_FLOAT16_VALUE(0.03),
SIMDE_FLOAT16_VALUE(-9.89), SIMDE_FLOAT16_VALUE(-1.33), SIMDE_FLOAT16_VALUE(2.77), SIMDE_FLOAT16_VALUE(2.16) },
{ SIMDE_FLOAT16_VALUE(-9.13), SIMDE_FLOAT16_VALUE(7.90), SIMDE_FLOAT16_VALUE(9.03), SIMDE_FLOAT16_VALUE(2.79),
SIMDE_FLOAT16_VALUE(-8.16), SIMDE_FLOAT16_VALUE(-1.11), SIMDE_FLOAT16_VALUE(2.16), SIMDE_FLOAT16_VALUE(5.32) },
{ SIMDE_FLOAT16_VALUE(9.71), SIMDE_FLOAT16_VALUE(-7.58), SIMDE_FLOAT16_VALUE(-0.85), SIMDE_FLOAT16_VALUE(-8.57),
SIMDE_FLOAT16_VALUE(1.14), SIMDE_FLOAT16_VALUE(-0.42), SIMDE_FLOAT16_VALUE(3.32), SIMDE_FLOAT16_VALUE(6.97) },
{ SIMDE_FLOAT16_VALUE(1.24), SIMDE_FLOAT16_VALUE(-8.74), SIMDE_FLOAT16_VALUE(-8.75), SIMDE_FLOAT16_VALUE(-0.72),
SIMDE_FLOAT16_VALUE(5.61), SIMDE_FLOAT16_VALUE(4.15), SIMDE_FLOAT16_VALUE(9.62), SIMDE_FLOAT16_VALUE(-3.79) } } },
{ { SIMDE_FLOAT16_VALUE(7.00), SIMDE_FLOAT16_VALUE(-5.79), SIMDE_FLOAT16_VALUE(-0.80), SIMDE_FLOAT16_VALUE(8.08),
SIMDE_FLOAT16_VALUE(-7.63), SIMDE_FLOAT16_VALUE(8.06), SIMDE_FLOAT16_VALUE(3.73), SIMDE_FLOAT16_VALUE(5.38),
SIMDE_FLOAT16_VALUE(-8.76), SIMDE_FLOAT16_VALUE(-3.66), SIMDE_FLOAT16_VALUE(-1.79), SIMDE_FLOAT16_VALUE(4.39),
SIMDE_FLOAT16_VALUE(4.40), SIMDE_FLOAT16_VALUE(-1.74), SIMDE_FLOAT16_VALUE(6.02), SIMDE_FLOAT16_VALUE(1.11),
SIMDE_FLOAT16_VALUE(5.43), SIMDE_FLOAT16_VALUE(-1.01), SIMDE_FLOAT16_VALUE(1.85), SIMDE_FLOAT16_VALUE(-2.65),
SIMDE_FLOAT16_VALUE(-9.84), SIMDE_FLOAT16_VALUE(-3.62), SIMDE_FLOAT16_VALUE(8.59), SIMDE_FLOAT16_VALUE(-1.78),
SIMDE_FLOAT16_VALUE(-5.54), SIMDE_FLOAT16_VALUE(2.82), SIMDE_FLOAT16_VALUE(8.26), SIMDE_FLOAT16_VALUE(9.23),
SIMDE_FLOAT16_VALUE(0.57), SIMDE_FLOAT16_VALUE(1.65), SIMDE_FLOAT16_VALUE(6.48), SIMDE_FLOAT16_VALUE(6.43) },
{ { SIMDE_FLOAT16_VALUE(7.00), SIMDE_FLOAT16_VALUE(-5.79), SIMDE_FLOAT16_VALUE(-0.80), SIMDE_FLOAT16_VALUE(8.08),
SIMDE_FLOAT16_VALUE(-7.63), SIMDE_FLOAT16_VALUE(8.06), SIMDE_FLOAT16_VALUE(3.73), SIMDE_FLOAT16_VALUE(5.38) },
{ SIMDE_FLOAT16_VALUE(-8.76), SIMDE_FLOAT16_VALUE(-3.66), SIMDE_FLOAT16_VALUE(-1.79), SIMDE_FLOAT16_VALUE(4.39),
SIMDE_FLOAT16_VALUE(4.40), SIMDE_FLOAT16_VALUE(-1.74), SIMDE_FLOAT16_VALUE(6.02), SIMDE_FLOAT16_VALUE(1.11) },
{ SIMDE_FLOAT16_VALUE(5.43), SIMDE_FLOAT16_VALUE(-1.01), SIMDE_FLOAT16_VALUE(1.85), SIMDE_FLOAT16_VALUE(-2.65),
SIMDE_FLOAT16_VALUE(-9.84), SIMDE_FLOAT16_VALUE(-3.62), SIMDE_FLOAT16_VALUE(8.59), SIMDE_FLOAT16_VALUE(-1.78) },
{ SIMDE_FLOAT16_VALUE(-5.54), SIMDE_FLOAT16_VALUE(2.82), SIMDE_FLOAT16_VALUE(8.26), SIMDE_FLOAT16_VALUE(9.23),
SIMDE_FLOAT16_VALUE(0.57), SIMDE_FLOAT16_VALUE(1.65), SIMDE_FLOAT16_VALUE(6.48), SIMDE_FLOAT16_VALUE(6.43) } } },
{ { SIMDE_FLOAT16_VALUE(-9.54), SIMDE_FLOAT16_VALUE(7.35), SIMDE_FLOAT16_VALUE(-8.55), SIMDE_FLOAT16_VALUE(5.24),
SIMDE_FLOAT16_VALUE(-9.39), SIMDE_FLOAT16_VALUE(-8.81), SIMDE_FLOAT16_VALUE(-2.52), SIMDE_FLOAT16_VALUE(3.42),
SIMDE_FLOAT16_VALUE(8.62), SIMDE_FLOAT16_VALUE(-3.83), SIMDE_FLOAT16_VALUE(-3.54), SIMDE_FLOAT16_VALUE(0.09),
SIMDE_FLOAT16_VALUE(5.41), SIMDE_FLOAT16_VALUE(1.42), SIMDE_FLOAT16_VALUE(-8.33), SIMDE_FLOAT16_VALUE(9.12),
SIMDE_FLOAT16_VALUE(3.57), SIMDE_FLOAT16_VALUE(-6.64), SIMDE_FLOAT16_VALUE(-9.86), SIMDE_FLOAT16_VALUE(6.74),
SIMDE_FLOAT16_VALUE(-8.50), SIMDE_FLOAT16_VALUE(-5.99), SIMDE_FLOAT16_VALUE(-5.00), SIMDE_FLOAT16_VALUE(-8.11),
SIMDE_FLOAT16_VALUE(2.43), SIMDE_FLOAT16_VALUE(8.06), SIMDE_FLOAT16_VALUE(8.39), SIMDE_FLOAT16_VALUE(-5.99),
SIMDE_FLOAT16_VALUE(-3.26), SIMDE_FLOAT16_VALUE(-5.56), SIMDE_FLOAT16_VALUE(-6.74), SIMDE_FLOAT16_VALUE(-7.39) },
{ { SIMDE_FLOAT16_VALUE(-9.54), SIMDE_FLOAT16_VALUE(7.35), SIMDE_FLOAT16_VALUE(-8.55), SIMDE_FLOAT16_VALUE(5.24),
SIMDE_FLOAT16_VALUE(-9.39), SIMDE_FLOAT16_VALUE(-8.81), SIMDE_FLOAT16_VALUE(-2.52), SIMDE_FLOAT16_VALUE(3.42) },
{ SIMDE_FLOAT16_VALUE(8.62), SIMDE_FLOAT16_VALUE(-3.83), SIMDE_FLOAT16_VALUE(-3.54), SIMDE_FLOAT16_VALUE(0.09),
SIMDE_FLOAT16_VALUE(5.41), SIMDE_FLOAT16_VALUE(1.42), SIMDE_FLOAT16_VALUE(-8.33), SIMDE_FLOAT16_VALUE(9.12) },
{ SIMDE_FLOAT16_VALUE(3.57), SIMDE_FLOAT16_VALUE(-6.64), SIMDE_FLOAT16_VALUE(-9.86), SIMDE_FLOAT16_VALUE(6.74),
SIMDE_FLOAT16_VALUE(-8.50), SIMDE_FLOAT16_VALUE(-5.99), SIMDE_FLOAT16_VALUE(-5.00), SIMDE_FLOAT16_VALUE(-8.11) },
{ SIMDE_FLOAT16_VALUE(2.43), SIMDE_FLOAT16_VALUE(8.06), SIMDE_FLOAT16_VALUE(8.39), SIMDE_FLOAT16_VALUE(-5.99),
SIMDE_FLOAT16_VALUE(-3.26), SIMDE_FLOAT16_VALUE(-5.56), SIMDE_FLOAT16_VALUE(-6.74), SIMDE_FLOAT16_VALUE(-7.39) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float16x8x4_t r = simde_vld1q_f16_x4(test_vec[i].buf);
simde_float16x8x4_t expected = {{
simde_vld1q_f16(test_vec[i].expected[0]),
simde_vld1q_f16(test_vec[i].expected[1]),
simde_vld1q_f16(test_vec[i].expected[2]),
simde_vld1q_f16(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_f16x8x4(r, expected, 1);
}
return 0;
}
static int
test_simde_vld1q_f32_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float32 buf[16];
simde_float32 expected[4][4];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -756.25), SIMDE_FLOAT32_C( -472.56), SIMDE_FLOAT32_C( -485.21), SIMDE_FLOAT32_C( -951.63),
SIMDE_FLOAT32_C( -740.33), SIMDE_FLOAT32_C( -53.06), SIMDE_FLOAT32_C( 631.32), SIMDE_FLOAT32_C( -592.71),
SIMDE_FLOAT32_C( -259.33), SIMDE_FLOAT32_C( 413.25), SIMDE_FLOAT32_C( 857.59), SIMDE_FLOAT32_C( 233.16),
SIMDE_FLOAT32_C( -253.96), SIMDE_FLOAT32_C( -530.78), SIMDE_FLOAT32_C( -279.00), SIMDE_FLOAT32_C( 879.54) },
{ { SIMDE_FLOAT32_C( -756.25), SIMDE_FLOAT32_C( -472.56), SIMDE_FLOAT32_C( -485.21), SIMDE_FLOAT32_C( -951.63) },
{ SIMDE_FLOAT32_C( -740.33), SIMDE_FLOAT32_C( -53.06), SIMDE_FLOAT32_C( 631.32), SIMDE_FLOAT32_C( -592.71) },
{ SIMDE_FLOAT32_C( -259.33), SIMDE_FLOAT32_C( 413.25), SIMDE_FLOAT32_C( 857.59), SIMDE_FLOAT32_C( 233.16) },
{ SIMDE_FLOAT32_C( -253.96), SIMDE_FLOAT32_C( -530.78), SIMDE_FLOAT32_C( -279.00), SIMDE_FLOAT32_C( 879.54) } },
},
{ { SIMDE_FLOAT32_C( 234.46), SIMDE_FLOAT32_C( -638.91), SIMDE_FLOAT32_C( -980.23), SIMDE_FLOAT32_C( -592.36),
SIMDE_FLOAT32_C( -675.80), SIMDE_FLOAT32_C( -681.20), SIMDE_FLOAT32_C( 412.15), SIMDE_FLOAT32_C( 974.72),
SIMDE_FLOAT32_C( -672.11), SIMDE_FLOAT32_C( -298.37), SIMDE_FLOAT32_C( 118.31), SIMDE_FLOAT32_C( -312.90),
SIMDE_FLOAT32_C( 964.41), SIMDE_FLOAT32_C( -132.57), SIMDE_FLOAT32_C( 913.72), SIMDE_FLOAT32_C( -791.84) },
{ { SIMDE_FLOAT32_C( 234.46), SIMDE_FLOAT32_C( -638.91), SIMDE_FLOAT32_C( -980.23), SIMDE_FLOAT32_C( -592.36) },
{ SIMDE_FLOAT32_C( -675.80), SIMDE_FLOAT32_C( -681.20), SIMDE_FLOAT32_C( 412.15), SIMDE_FLOAT32_C( 974.72) },
{ SIMDE_FLOAT32_C( -672.11), SIMDE_FLOAT32_C( -298.37), SIMDE_FLOAT32_C( 118.31), SIMDE_FLOAT32_C( -312.90) },
{ SIMDE_FLOAT32_C( 964.41), SIMDE_FLOAT32_C( -132.57), SIMDE_FLOAT32_C( 913.72), SIMDE_FLOAT32_C( -791.84) } },
},
{ { SIMDE_FLOAT32_C( 394.88), SIMDE_FLOAT32_C( -571.48), SIMDE_FLOAT32_C( -743.47), SIMDE_FLOAT32_C( 654.55),
SIMDE_FLOAT32_C( 375.46), SIMDE_FLOAT32_C( 887.86), SIMDE_FLOAT32_C( -938.16), SIMDE_FLOAT32_C( -883.87),
SIMDE_FLOAT32_C( 301.10), SIMDE_FLOAT32_C( 919.43), SIMDE_FLOAT32_C( 349.29), SIMDE_FLOAT32_C( -952.86),
SIMDE_FLOAT32_C( -611.35), SIMDE_FLOAT32_C( -929.71), SIMDE_FLOAT32_C( 926.68), SIMDE_FLOAT32_C( 623.11) },
{ { SIMDE_FLOAT32_C( 394.88), SIMDE_FLOAT32_C( -571.48), SIMDE_FLOAT32_C( -743.47), SIMDE_FLOAT32_C( 654.55) },
{ SIMDE_FLOAT32_C( 375.46), SIMDE_FLOAT32_C( 887.86), SIMDE_FLOAT32_C( -938.16), SIMDE_FLOAT32_C( -883.87) },
{ SIMDE_FLOAT32_C( 301.10), SIMDE_FLOAT32_C( 919.43), SIMDE_FLOAT32_C( 349.29), SIMDE_FLOAT32_C( -952.86) },
{ SIMDE_FLOAT32_C( -611.35), SIMDE_FLOAT32_C( -929.71), SIMDE_FLOAT32_C( 926.68), SIMDE_FLOAT32_C( 623.11) } },
},
{ { SIMDE_FLOAT32_C( -568.62), SIMDE_FLOAT32_C( 946.46), SIMDE_FLOAT32_C( -969.25), SIMDE_FLOAT32_C( -244.42),
SIMDE_FLOAT32_C( -734.74), SIMDE_FLOAT32_C( 442.91), SIMDE_FLOAT32_C( -269.70), SIMDE_FLOAT32_C( -406.85),
SIMDE_FLOAT32_C( -855.46), SIMDE_FLOAT32_C( 848.61), SIMDE_FLOAT32_C( 280.25), SIMDE_FLOAT32_C( -891.06),
SIMDE_FLOAT32_C( -283.96), SIMDE_FLOAT32_C( 193.98), SIMDE_FLOAT32_C( -682.89), SIMDE_FLOAT32_C( -889.08) },
{ { SIMDE_FLOAT32_C( -568.62), SIMDE_FLOAT32_C( 946.46), SIMDE_FLOAT32_C( -969.25), SIMDE_FLOAT32_C( -244.42) },
{ SIMDE_FLOAT32_C( -734.74), SIMDE_FLOAT32_C( 442.91), SIMDE_FLOAT32_C( -269.70), SIMDE_FLOAT32_C( -406.85) },
{ SIMDE_FLOAT32_C( -855.46), SIMDE_FLOAT32_C( 848.61), SIMDE_FLOAT32_C( 280.25), SIMDE_FLOAT32_C( -891.06) },
{ SIMDE_FLOAT32_C( -283.96), SIMDE_FLOAT32_C( 193.98), SIMDE_FLOAT32_C( -682.89), SIMDE_FLOAT32_C( -889.08) } },
},
{ { SIMDE_FLOAT32_C( 622.50), SIMDE_FLOAT32_C( -426.36), SIMDE_FLOAT32_C( 765.46), SIMDE_FLOAT32_C( -2.04),
SIMDE_FLOAT32_C( -538.51), SIMDE_FLOAT32_C( 827.30), SIMDE_FLOAT32_C( 114.09), SIMDE_FLOAT32_C( 762.60),
SIMDE_FLOAT32_C( 746.73), SIMDE_FLOAT32_C( -536.62), SIMDE_FLOAT32_C( 809.74), SIMDE_FLOAT32_C( -864.62),
SIMDE_FLOAT32_C( -466.32), SIMDE_FLOAT32_C( 736.42), SIMDE_FLOAT32_C( 758.48), SIMDE_FLOAT32_C( -34.95) },
{ { SIMDE_FLOAT32_C( 622.50), SIMDE_FLOAT32_C( -426.36), SIMDE_FLOAT32_C( 765.46), SIMDE_FLOAT32_C( -2.04) },
{ SIMDE_FLOAT32_C( -538.51), SIMDE_FLOAT32_C( 827.30), SIMDE_FLOAT32_C( 114.09), SIMDE_FLOAT32_C( 762.60) },
{ SIMDE_FLOAT32_C( 746.73), SIMDE_FLOAT32_C( -536.62), SIMDE_FLOAT32_C( 809.74), SIMDE_FLOAT32_C( -864.62) },
{ SIMDE_FLOAT32_C( -466.32), SIMDE_FLOAT32_C( 736.42), SIMDE_FLOAT32_C( 758.48), SIMDE_FLOAT32_C( -34.95) } },
},
{ { SIMDE_FLOAT32_C( 682.88), SIMDE_FLOAT32_C( 789.23), SIMDE_FLOAT32_C( 720.63), SIMDE_FLOAT32_C( 948.14),
SIMDE_FLOAT32_C( 232.14), SIMDE_FLOAT32_C( -549.07), SIMDE_FLOAT32_C( -458.71), SIMDE_FLOAT32_C( 376.67),
SIMDE_FLOAT32_C( -700.46), SIMDE_FLOAT32_C( 821.55), SIMDE_FLOAT32_C( 485.62), SIMDE_FLOAT32_C( 15.58),
SIMDE_FLOAT32_C( 15.53), SIMDE_FLOAT32_C( 802.73), SIMDE_FLOAT32_C( 126.49), SIMDE_FLOAT32_C( -361.98) },
{ { SIMDE_FLOAT32_C( 682.88), SIMDE_FLOAT32_C( 789.23), SIMDE_FLOAT32_C( 720.63), SIMDE_FLOAT32_C( 948.14) },
{ SIMDE_FLOAT32_C( 232.14), SIMDE_FLOAT32_C( -549.07), SIMDE_FLOAT32_C( -458.71), SIMDE_FLOAT32_C( 376.67) },
{ SIMDE_FLOAT32_C( -700.46), SIMDE_FLOAT32_C( 821.55), SIMDE_FLOAT32_C( 485.62), SIMDE_FLOAT32_C( 15.58) },
{ SIMDE_FLOAT32_C( 15.53), SIMDE_FLOAT32_C( 802.73), SIMDE_FLOAT32_C( 126.49), SIMDE_FLOAT32_C( -361.98) } },
},
{ { SIMDE_FLOAT32_C( -623.64), SIMDE_FLOAT32_C( -108.04), SIMDE_FLOAT32_C( 635.98), SIMDE_FLOAT32_C( -162.14),
SIMDE_FLOAT32_C( -280.74), SIMDE_FLOAT32_C( -249.93), SIMDE_FLOAT32_C( -399.54), SIMDE_FLOAT32_C( -534.01),
SIMDE_FLOAT32_C( 213.46), SIMDE_FLOAT32_C( -589.80), SIMDE_FLOAT32_C( -398.64), SIMDE_FLOAT32_C( 747.13),
SIMDE_FLOAT32_C( -853.38), SIMDE_FLOAT32_C( -640.15), SIMDE_FLOAT32_C( -287.82), SIMDE_FLOAT32_C( 829.50) },
{ { SIMDE_FLOAT32_C( -623.64), SIMDE_FLOAT32_C( -108.04), SIMDE_FLOAT32_C( 635.98), SIMDE_FLOAT32_C( -162.14) },
{ SIMDE_FLOAT32_C( -280.74), SIMDE_FLOAT32_C( -249.93), SIMDE_FLOAT32_C( -399.54), SIMDE_FLOAT32_C( -534.01) },
{ SIMDE_FLOAT32_C( 213.46), SIMDE_FLOAT32_C( -589.80), SIMDE_FLOAT32_C( -398.64), SIMDE_FLOAT32_C( 747.13) },
{ SIMDE_FLOAT32_C( -853.38), SIMDE_FLOAT32_C( -640.15), SIMDE_FLOAT32_C( -287.82), SIMDE_FLOAT32_C( 829.50) } },
},
{ { SIMDE_FLOAT32_C( -850.92), SIMDE_FLOAT32_C( -567.18), SIMDE_FLOAT32_C( 777.64), SIMDE_FLOAT32_C( 381.22),
SIMDE_FLOAT32_C( -116.25), SIMDE_FLOAT32_C( -681.06), SIMDE_FLOAT32_C( -242.11), SIMDE_FLOAT32_C( 183.28),
SIMDE_FLOAT32_C( -859.51), SIMDE_FLOAT32_C( -756.49), SIMDE_FLOAT32_C( -801.14), SIMDE_FLOAT32_C( 156.01),
SIMDE_FLOAT32_C( -953.76), SIMDE_FLOAT32_C( 325.35), SIMDE_FLOAT32_C( 794.04), SIMDE_FLOAT32_C( -577.40) },
{ { SIMDE_FLOAT32_C( -850.92), SIMDE_FLOAT32_C( -567.18), SIMDE_FLOAT32_C( 777.64), SIMDE_FLOAT32_C( 381.22) },
{ SIMDE_FLOAT32_C( -116.25), SIMDE_FLOAT32_C( -681.06), SIMDE_FLOAT32_C( -242.11), SIMDE_FLOAT32_C( 183.28) },
{ SIMDE_FLOAT32_C( -859.51), SIMDE_FLOAT32_C( -756.49), SIMDE_FLOAT32_C( -801.14), SIMDE_FLOAT32_C( 156.01) },
{ SIMDE_FLOAT32_C( -953.76), SIMDE_FLOAT32_C( 325.35), SIMDE_FLOAT32_C( 794.04), SIMDE_FLOAT32_C( -577.40) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float32x4x4_t r = simde_vld1q_f32_x4(test_vec[i].buf);
simde_float32x4x4_t expected = {{
simde_vld1q_f32(test_vec[i].expected[0]),
simde_vld1q_f32(test_vec[i].expected[1]),
simde_vld1q_f32(test_vec[i].expected[2]),
simde_vld1q_f32(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_f32x4x4(r, expected, 1);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_float32 buf[16];
for (int j = 0 ; j < 16 ; j++) {
buf[j] = simde_test_codegen_random_f32(-1000.0f, 1000.0f);
}
simde_test_codegen_write_vf32(2, 16, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_float32x4x4_t val = simde_vld1q_f32_x4(buf);
simde_test_arm_neon_write_f32x4x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_f64_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_float64 buf[8];
simde_float64 expected[4][2];
} test_vec[] = {
{ { SIMDE_FLOAT64_C( -782.69), SIMDE_FLOAT64_C( 430.02), SIMDE_FLOAT64_C( 260.46), SIMDE_FLOAT64_C( -63.43),
SIMDE_FLOAT64_C( -819.91), SIMDE_FLOAT64_C( 860.92), SIMDE_FLOAT64_C( 402.56), SIMDE_FLOAT64_C( 393.55) },
{ { SIMDE_FLOAT64_C( -782.69), SIMDE_FLOAT64_C( 430.02) },
{ SIMDE_FLOAT64_C( 260.46), SIMDE_FLOAT64_C( -63.43) },
{ SIMDE_FLOAT64_C( -819.91), SIMDE_FLOAT64_C( 860.92) },
{ SIMDE_FLOAT64_C( 402.56), SIMDE_FLOAT64_C( 393.55) } },
},
{ { SIMDE_FLOAT64_C( -728.88), SIMDE_FLOAT64_C( -996.08), SIMDE_FLOAT64_C( 140.68), SIMDE_FLOAT64_C( -582.26),
SIMDE_FLOAT64_C( -636.23), SIMDE_FLOAT64_C( 852.86), SIMDE_FLOAT64_C( -752.75), SIMDE_FLOAT64_C( -487.15) },
{ { SIMDE_FLOAT64_C( -728.88), SIMDE_FLOAT64_C( -996.08) },
{ SIMDE_FLOAT64_C( 140.68), SIMDE_FLOAT64_C( -582.26) },
{ SIMDE_FLOAT64_C( -636.23), SIMDE_FLOAT64_C( 852.86) },
{ SIMDE_FLOAT64_C( -752.75), SIMDE_FLOAT64_C( -487.15) } },
},
{ { SIMDE_FLOAT64_C( -714.32), SIMDE_FLOAT64_C( -975.11), SIMDE_FLOAT64_C( 894.07), SIMDE_FLOAT64_C( 169.43),
SIMDE_FLOAT64_C( -656.17), SIMDE_FLOAT64_C( -348.04), SIMDE_FLOAT64_C( -647.29), SIMDE_FLOAT64_C( -515.68) },
{ { SIMDE_FLOAT64_C( -714.32), SIMDE_FLOAT64_C( -975.11) },
{ SIMDE_FLOAT64_C( 894.07), SIMDE_FLOAT64_C( 169.43) },
{ SIMDE_FLOAT64_C( -656.17), SIMDE_FLOAT64_C( -348.04) },
{ SIMDE_FLOAT64_C( -647.29), SIMDE_FLOAT64_C( -515.68) } },
},
{ { SIMDE_FLOAT64_C( -104.52), SIMDE_FLOAT64_C( -448.43), SIMDE_FLOAT64_C( 640.33), SIMDE_FLOAT64_C( -58.29),
SIMDE_FLOAT64_C( 876.93), SIMDE_FLOAT64_C( 434.37), SIMDE_FLOAT64_C( 364.32), SIMDE_FLOAT64_C( -905.76) },
{ { SIMDE_FLOAT64_C( -104.52), SIMDE_FLOAT64_C( -448.43) },
{ SIMDE_FLOAT64_C( 640.33), SIMDE_FLOAT64_C( -58.29) },
{ SIMDE_FLOAT64_C( 876.93), SIMDE_FLOAT64_C( 434.37) },
{ SIMDE_FLOAT64_C( 364.32), SIMDE_FLOAT64_C( -905.76) } },
},
{ { SIMDE_FLOAT64_C( -135.61), SIMDE_FLOAT64_C( -375.22), SIMDE_FLOAT64_C( 30.81), SIMDE_FLOAT64_C( 44.48),
SIMDE_FLOAT64_C( -514.30), SIMDE_FLOAT64_C( -566.63), SIMDE_FLOAT64_C( -561.97), SIMDE_FLOAT64_C( -243.18) },
{ { SIMDE_FLOAT64_C( -135.61), SIMDE_FLOAT64_C( -375.22) },
{ SIMDE_FLOAT64_C( 30.81), SIMDE_FLOAT64_C( 44.48) },
{ SIMDE_FLOAT64_C( -514.30), SIMDE_FLOAT64_C( -566.63) },
{ SIMDE_FLOAT64_C( -561.97), SIMDE_FLOAT64_C( -243.18) } },
},
{ { SIMDE_FLOAT64_C( -562.70), SIMDE_FLOAT64_C( 578.71), SIMDE_FLOAT64_C( 174.56), SIMDE_FLOAT64_C( -198.93),
SIMDE_FLOAT64_C( 431.58), SIMDE_FLOAT64_C( 421.80), SIMDE_FLOAT64_C( 313.92), SIMDE_FLOAT64_C( 717.26) },
{ { SIMDE_FLOAT64_C( -562.70), SIMDE_FLOAT64_C( 578.71) },
{ SIMDE_FLOAT64_C( 174.56), SIMDE_FLOAT64_C( -198.93) },
{ SIMDE_FLOAT64_C( 431.58), SIMDE_FLOAT64_C( 421.80) },
{ SIMDE_FLOAT64_C( 313.92), SIMDE_FLOAT64_C( 717.26) } },
},
{ { SIMDE_FLOAT64_C( 446.69), SIMDE_FLOAT64_C( 207.99), SIMDE_FLOAT64_C( -113.31), SIMDE_FLOAT64_C( 790.52),
SIMDE_FLOAT64_C( 859.95), SIMDE_FLOAT64_C( 239.40), SIMDE_FLOAT64_C( -725.16), SIMDE_FLOAT64_C( -244.57) },
{ { SIMDE_FLOAT64_C( 446.69), SIMDE_FLOAT64_C( 207.99) },
{ SIMDE_FLOAT64_C( -113.31), SIMDE_FLOAT64_C( 790.52) },
{ SIMDE_FLOAT64_C( 859.95), SIMDE_FLOAT64_C( 239.40) },
{ SIMDE_FLOAT64_C( -725.16), SIMDE_FLOAT64_C( -244.57) } },
},
{ { SIMDE_FLOAT64_C( 790.98), SIMDE_FLOAT64_C( 915.17), SIMDE_FLOAT64_C( 697.14), SIMDE_FLOAT64_C( 667.91),
SIMDE_FLOAT64_C( 349.54), SIMDE_FLOAT64_C( 61.46), SIMDE_FLOAT64_C( 762.15), SIMDE_FLOAT64_C( -786.07) },
{ { SIMDE_FLOAT64_C( 790.98), SIMDE_FLOAT64_C( 915.17) },
{ SIMDE_FLOAT64_C( 697.14), SIMDE_FLOAT64_C( 667.91) },
{ SIMDE_FLOAT64_C( 349.54), SIMDE_FLOAT64_C( 61.46) },
{ SIMDE_FLOAT64_C( 762.15), SIMDE_FLOAT64_C( -786.07) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_float64x2x4_t r = simde_vld1q_f64_x4(test_vec[i].buf);
simde_float64x2x4_t expected = {{
simde_vld1q_f64(test_vec[i].expected[0]),
simde_vld1q_f64(test_vec[i].expected[1]),
simde_vld1q_f64(test_vec[i].expected[2]),
simde_vld1q_f64(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_f64x2x4(r, expected, 1);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_float64 buf[8];
for (int j = 0 ; j < 8 ; j++) {
buf[j] = simde_test_codegen_random_f64(-1000.0, 1000.0);
}
simde_test_codegen_write_vf64(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_float64x2x4_t val = simde_vld1q_f64_x4(buf);
simde_test_arm_neon_write_f64x2x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s8_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int8_t buf[64];
int8_t expected[4][16];
} test_vec[] = {
{ { -INT8_C( 58), -INT8_C( 113), INT8_C( 28), INT8_C( 37), INT8_C( 62), -INT8_C( 22), -INT8_C( 31), -INT8_C( 2),
-INT8_C( 83), INT8_C( 58), INT8_C( 20), -INT8_C( 113), INT8_C( 14), -INT8_C( 9), -INT8_C( 126), INT8_C( 38),
-INT8_C( 125), -INT8_C( 6), -INT8_C( 70), INT8_C( 106), INT8_C( 86), -INT8_C( 42), -INT8_C( 44), -INT8_C( 83),
INT8_C( 99), -INT8_C( 55), -INT8_C( 100), -INT8_C( 24), INT8_C( 125), -INT8_C( 35), INT8_C( 3), INT8_C( 67),
INT8_C( 108), INT8_C( 31), INT8_C( 105), -INT8_C( 86), INT8_C( 10), INT8_C( 74), -INT8_C( 87), -INT8_C( 73),
-INT8_C( 124), -INT8_C( 67), INT8_C( 70), -INT8_C( 110), -INT8_C( 76), -INT8_C( 56), -INT8_C( 71), INT8_C( 55),
-INT8_C( 62), INT8_C( 115), -INT8_C( 94), INT8_C( 24), INT8_C( 73), INT8_C( 118), -INT8_C( 59), -INT8_C( 84),
INT8_C( 63), INT8_C( 98), -INT8_C( 108), -INT8_C( 67), INT8_C( 63), -INT8_C( 105), INT8_C( 0), -INT8_C( 85) },
{ { -INT8_C( 58), -INT8_C( 113), INT8_C( 28), INT8_C( 37), INT8_C( 62), -INT8_C( 22), -INT8_C( 31), -INT8_C( 2),
-INT8_C( 83), INT8_C( 58), INT8_C( 20), -INT8_C( 113), INT8_C( 14), -INT8_C( 9), -INT8_C( 126), INT8_C( 38) },
{ -INT8_C( 125), -INT8_C( 6), -INT8_C( 70), INT8_C( 106), INT8_C( 86), -INT8_C( 42), -INT8_C( 44), -INT8_C( 83),
INT8_C( 99), -INT8_C( 55), -INT8_C( 100), -INT8_C( 24), INT8_C( 125), -INT8_C( 35), INT8_C( 3), INT8_C( 67) },
{ INT8_C( 108), INT8_C( 31), INT8_C( 105), -INT8_C( 86), INT8_C( 10), INT8_C( 74), -INT8_C( 87), -INT8_C( 73),
-INT8_C( 124), -INT8_C( 67), INT8_C( 70), -INT8_C( 110), -INT8_C( 76), -INT8_C( 56), -INT8_C( 71), INT8_C( 55) },
{ -INT8_C( 62), INT8_C( 115), -INT8_C( 94), INT8_C( 24), INT8_C( 73), INT8_C( 118), -INT8_C( 59), -INT8_C( 84),
INT8_C( 63), INT8_C( 98), -INT8_C( 108), -INT8_C( 67), INT8_C( 63), -INT8_C( 105), INT8_C( 0), -INT8_C( 85) } },
},
{ { -INT8_C( 73), INT8_C( 105), INT8_C( 85), -INT8_C( 63), -INT8_C( 77), -INT8_C( 2), INT8_C( 120), INT8_C( 55),
-INT8_C( 69), -INT8_C( 66), -INT8_C( 54), INT8_C( 112), -INT8_C( 121), -INT8_C( 125), -INT8_C( 89), INT8_C( 73),
-INT8_C( 10), INT8_C( 73), INT8_C( 98), INT8_C( 63), -INT8_C( 65), INT8_C( 39), -INT8_C( 21), -INT8_C( 1),
-INT8_C( 119), INT8_MAX, -INT8_C( 68), -INT8_C( 56), INT8_C( 23), -INT8_C( 68), INT8_C( 115), -INT8_C( 50),
INT8_C( 38), -INT8_C( 55), -INT8_C( 113), -INT8_C( 39), -INT8_C( 57), INT8_C( 7), INT8_C( 17), -INT8_C( 125),
-INT8_C( 59), -INT8_C( 37), -INT8_C( 13), INT8_C( 76), INT8_C( 94), -INT8_C( 102), -INT8_C( 106), INT8_C( 84),
-INT8_C( 28), -INT8_C( 8), -INT8_C( 109), -INT8_C( 93), INT8_C( 31), INT8_C( 126), -INT8_C( 94), -INT8_C( 87),
-INT8_C( 3), INT8_C( 94), INT8_C( 113), INT8_C( 20), INT8_C( 27), -INT8_C( 27), -INT8_C( 30), INT8_C( 65) },
{ { -INT8_C( 73), INT8_C( 105), INT8_C( 85), -INT8_C( 63), -INT8_C( 77), -INT8_C( 2), INT8_C( 120), INT8_C( 55),
-INT8_C( 69), -INT8_C( 66), -INT8_C( 54), INT8_C( 112), -INT8_C( 121), -INT8_C( 125), -INT8_C( 89), INT8_C( 73) },
{ -INT8_C( 10), INT8_C( 73), INT8_C( 98), INT8_C( 63), -INT8_C( 65), INT8_C( 39), -INT8_C( 21), -INT8_C( 1),
-INT8_C( 119), INT8_MAX, -INT8_C( 68), -INT8_C( 56), INT8_C( 23), -INT8_C( 68), INT8_C( 115), -INT8_C( 50) },
{ INT8_C( 38), -INT8_C( 55), -INT8_C( 113), -INT8_C( 39), -INT8_C( 57), INT8_C( 7), INT8_C( 17), -INT8_C( 125),
-INT8_C( 59), -INT8_C( 37), -INT8_C( 13), INT8_C( 76), INT8_C( 94), -INT8_C( 102), -INT8_C( 106), INT8_C( 84) },
{ -INT8_C( 28), -INT8_C( 8), -INT8_C( 109), -INT8_C( 93), INT8_C( 31), INT8_C( 126), -INT8_C( 94), -INT8_C( 87),
-INT8_C( 3), INT8_C( 94), INT8_C( 113), INT8_C( 20), INT8_C( 27), -INT8_C( 27), -INT8_C( 30), INT8_C( 65) } },
},
{ { -INT8_C( 82), INT8_C( 113), INT8_C( 26), INT8_C( 117), INT8_C( 120), INT8_C( 43), -INT8_C( 8), INT8_C( 62),
INT8_C( 6), -INT8_C( 21), -INT8_C( 118), INT8_C( 100), -INT8_C( 122), INT8_C( 32), -INT8_C( 72), INT8_C( 106),
INT8_C( 24), INT8_C( 75), INT8_C( 13), INT8_C( 56), -INT8_C( 55), -INT8_C( 80), -INT8_C( 31), -INT8_C( 57),
INT8_C( 14), INT8_C( 82), -INT8_C( 37), INT8_C( 41), INT8_C( 55), -INT8_C( 66), INT8_C( 106), -INT8_C( 27),
INT8_C( 47), -INT8_C( 123), INT8_C( 91), -INT8_C( 88), -INT8_C( 80), INT8_C( 83), -INT8_C( 26), -INT8_C( 73),
INT8_C( 63), INT8_C( 112), INT8_C( 27), -INT8_C( 59), -INT8_C( 111), -INT8_C( 44), INT8_C( 47), -INT8_C( 87),
INT8_C( 31), INT8_C( 60), -INT8_C( 31), -INT8_C( 23), -INT8_C( 20), -INT8_C( 62), -INT8_C( 80), -INT8_C( 5),
INT8_C( 21), -INT8_C( 117), INT8_C( 36), INT8_C( 76), INT8_C( 73), -INT8_C( 113), INT8_C( 50), INT8_C( 121) },
{ { -INT8_C( 82), INT8_C( 113), INT8_C( 26), INT8_C( 117), INT8_C( 120), INT8_C( 43), -INT8_C( 8), INT8_C( 62),
INT8_C( 6), -INT8_C( 21), -INT8_C( 118), INT8_C( 100), -INT8_C( 122), INT8_C( 32), -INT8_C( 72), INT8_C( 106) },
{ INT8_C( 24), INT8_C( 75), INT8_C( 13), INT8_C( 56), -INT8_C( 55), -INT8_C( 80), -INT8_C( 31), -INT8_C( 57),
INT8_C( 14), INT8_C( 82), -INT8_C( 37), INT8_C( 41), INT8_C( 55), -INT8_C( 66), INT8_C( 106), -INT8_C( 27) },
{ INT8_C( 47), -INT8_C( 123), INT8_C( 91), -INT8_C( 88), -INT8_C( 80), INT8_C( 83), -INT8_C( 26), -INT8_C( 73),
INT8_C( 63), INT8_C( 112), INT8_C( 27), -INT8_C( 59), -INT8_C( 111), -INT8_C( 44), INT8_C( 47), -INT8_C( 87) },
{ INT8_C( 31), INT8_C( 60), -INT8_C( 31), -INT8_C( 23), -INT8_C( 20), -INT8_C( 62), -INT8_C( 80), -INT8_C( 5),
INT8_C( 21), -INT8_C( 117), INT8_C( 36), INT8_C( 76), INT8_C( 73), -INT8_C( 113), INT8_C( 50), INT8_C( 121) } },
},
{ { INT8_C( 20), -INT8_C( 115), INT8_C( 33), -INT8_C( 60), -INT8_C( 32), INT8_C( 7), INT8_C( 123), INT8_C( 31),
INT8_C( 119), -INT8_C( 105), -INT8_C( 28), INT8_C( 8), INT8_C( 107), INT8_C( 19), -INT8_C( 78), -INT8_C( 118),
INT8_C( 80), -INT8_C( 109), INT8_C( 115), INT8_C( 60), INT8_C( 86), INT8_C( 35), INT8_C( 55), INT8_C( 107),
-INT8_C( 81), INT8_C( 92), -INT8_C( 73), -INT8_C( 8), -INT8_C( 21), -INT8_C( 23), INT8_C( 113), -INT8_C( 1),
INT8_C( 118), -INT8_C( 110), -INT8_C( 61), INT8_C( 87), -INT8_C( 103), INT8_C( 63), INT8_C( 118), INT8_C( 17),
-INT8_C( 42), INT8_C( 91), INT8_C( 25), INT8_C( 65), INT8_C( 110), -INT8_C( 53), -INT8_C( 53), -INT8_C( 66),
INT8_C( 95), INT8_C( 63), -INT8_C( 5), -INT8_C( 75), INT8_C( 98), INT8_C( 50), INT8_C( 32), INT8_C( 17),
-INT8_C( 114), -INT8_C( 41), INT8_C( 10), INT8_C( 121), -INT8_C( 63), INT8_C( 123), INT8_C( 120), INT8_C( 55) },
{ { INT8_C( 20), -INT8_C( 115), INT8_C( 33), -INT8_C( 60), -INT8_C( 32), INT8_C( 7), INT8_C( 123), INT8_C( 31),
INT8_C( 119), -INT8_C( 105), -INT8_C( 28), INT8_C( 8), INT8_C( 107), INT8_C( 19), -INT8_C( 78), -INT8_C( 118) },
{ INT8_C( 80), -INT8_C( 109), INT8_C( 115), INT8_C( 60), INT8_C( 86), INT8_C( 35), INT8_C( 55), INT8_C( 107),
-INT8_C( 81), INT8_C( 92), -INT8_C( 73), -INT8_C( 8), -INT8_C( 21), -INT8_C( 23), INT8_C( 113), -INT8_C( 1) },
{ INT8_C( 118), -INT8_C( 110), -INT8_C( 61), INT8_C( 87), -INT8_C( 103), INT8_C( 63), INT8_C( 118), INT8_C( 17),
-INT8_C( 42), INT8_C( 91), INT8_C( 25), INT8_C( 65), INT8_C( 110), -INT8_C( 53), -INT8_C( 53), -INT8_C( 66) },
{ INT8_C( 95), INT8_C( 63), -INT8_C( 5), -INT8_C( 75), INT8_C( 98), INT8_C( 50), INT8_C( 32), INT8_C( 17),
-INT8_C( 114), -INT8_C( 41), INT8_C( 10), INT8_C( 121), -INT8_C( 63), INT8_C( 123), INT8_C( 120), INT8_C( 55) } },
},
{ { INT8_C( 14), INT8_C( 60), -INT8_C( 114), -INT8_C( 89), INT8_C( 123), INT8_C( 5), -INT8_C( 72), INT8_C( 81),
INT8_C( 96), -INT8_C( 46), -INT8_C( 110), -INT8_C( 50), -INT8_C( 99), INT8_C( 93), -INT8_C( 115), -INT8_C( 4),
-INT8_C( 100), -INT8_C( 120), -INT8_C( 79), -INT8_C( 1), -INT8_C( 70), -INT8_C( 47), INT8_C( 16), INT8_C( 73),
-INT8_C( 87), INT8_C( 26), -INT8_C( 62), INT8_C( 106), -INT8_C( 106), INT8_C( 59), -INT8_C( 95), -INT8_C( 92),
INT8_C( 119), INT8_C( 48), INT8_C( 75), -INT8_C( 14), INT8_C( 53), INT8_C( 4), INT8_C( 67), -INT8_C( 107),
-INT8_C( 42), -INT8_C( 43), INT8_C( 99), INT8_C( 115), INT8_C( 50), -INT8_C( 16), INT8_C( 112), -INT8_C( 49),
INT8_C( 120), INT8_C( 33), -INT8_C( 50), INT8_C( 51), -INT8_C( 13), -INT8_C( 34), INT8_C( 124), -INT8_C( 100),
-INT8_C( 7), INT8_C( 62), INT8_C( 6), -INT8_C( 113), INT8_C( 121), -INT8_C( 89), INT8_C( 51), -INT8_C( 16) },
{ { INT8_C( 14), INT8_C( 60), -INT8_C( 114), -INT8_C( 89), INT8_C( 123), INT8_C( 5), -INT8_C( 72), INT8_C( 81),
INT8_C( 96), -INT8_C( 46), -INT8_C( 110), -INT8_C( 50), -INT8_C( 99), INT8_C( 93), -INT8_C( 115), -INT8_C( 4) },
{ -INT8_C( 100), -INT8_C( 120), -INT8_C( 79), -INT8_C( 1), -INT8_C( 70), -INT8_C( 47), INT8_C( 16), INT8_C( 73),
-INT8_C( 87), INT8_C( 26), -INT8_C( 62), INT8_C( 106), -INT8_C( 106), INT8_C( 59), -INT8_C( 95), -INT8_C( 92) },
{ INT8_C( 119), INT8_C( 48), INT8_C( 75), -INT8_C( 14), INT8_C( 53), INT8_C( 4), INT8_C( 67), -INT8_C( 107),
-INT8_C( 42), -INT8_C( 43), INT8_C( 99), INT8_C( 115), INT8_C( 50), -INT8_C( 16), INT8_C( 112), -INT8_C( 49) },
{ INT8_C( 120), INT8_C( 33), -INT8_C( 50), INT8_C( 51), -INT8_C( 13), -INT8_C( 34), INT8_C( 124), -INT8_C( 100),
-INT8_C( 7), INT8_C( 62), INT8_C( 6), -INT8_C( 113), INT8_C( 121), -INT8_C( 89), INT8_C( 51), -INT8_C( 16) } },
},
{ { -INT8_C( 41), INT8_C( 126), -INT8_C( 30), INT8_C( 12), -INT8_C( 126), INT8_C( 37), -INT8_C( 95), INT8_C( 88),
-INT8_C( 6), INT8_C( 5), -INT8_C( 52), INT8_C( 45), -INT8_C( 11), INT8_C( 60), -INT8_C( 4), INT8_C( 110),
INT8_C( 93), -INT8_C( 54), -INT8_C( 95), INT8_C( 80), -INT8_C( 88), INT8_C( 29), -INT8_C( 20), -INT8_C( 95),
INT8_C( 91), -INT8_C( 14), INT8_C( 48), -INT8_C( 43), -INT8_C( 102), INT8_C( 99), -INT8_C( 59), INT8_C( 113),
-INT8_C( 30), -INT8_C( 88), INT8_C( 126), INT8_C( 100), -INT8_C( 51), INT8_C( 31), -INT8_C( 67), -INT8_C( 56),
INT8_C( 36), -INT8_C( 119), -INT8_C( 11), INT8_C( 26), -INT8_C( 59), -INT8_C( 15), -INT8_C( 120), INT8_C( 34),
-INT8_C( 69), INT8_C( 41), INT8_C( 115), INT8_C( 99), INT8_C( 70), INT8_C( 95), INT8_C( 5), -INT8_C( 95),
INT8_C( 82), INT8_C( 53), INT8_C( 118), -INT8_C( 20), -INT8_C( 103), INT8_C( 60), INT8_C( 93), INT8_C( 123) },
{ { -INT8_C( 41), INT8_C( 126), -INT8_C( 30), INT8_C( 12), -INT8_C( 126), INT8_C( 37), -INT8_C( 95), INT8_C( 88),
-INT8_C( 6), INT8_C( 5), -INT8_C( 52), INT8_C( 45), -INT8_C( 11), INT8_C( 60), -INT8_C( 4), INT8_C( 110) },
{ INT8_C( 93), -INT8_C( 54), -INT8_C( 95), INT8_C( 80), -INT8_C( 88), INT8_C( 29), -INT8_C( 20), -INT8_C( 95),
INT8_C( 91), -INT8_C( 14), INT8_C( 48), -INT8_C( 43), -INT8_C( 102), INT8_C( 99), -INT8_C( 59), INT8_C( 113) },
{ -INT8_C( 30), -INT8_C( 88), INT8_C( 126), INT8_C( 100), -INT8_C( 51), INT8_C( 31), -INT8_C( 67), -INT8_C( 56),
INT8_C( 36), -INT8_C( 119), -INT8_C( 11), INT8_C( 26), -INT8_C( 59), -INT8_C( 15), -INT8_C( 120), INT8_C( 34) },
{ -INT8_C( 69), INT8_C( 41), INT8_C( 115), INT8_C( 99), INT8_C( 70), INT8_C( 95), INT8_C( 5), -INT8_C( 95),
INT8_C( 82), INT8_C( 53), INT8_C( 118), -INT8_C( 20), -INT8_C( 103), INT8_C( 60), INT8_C( 93), INT8_C( 123) } },
},
{ { -INT8_C( 28), -INT8_C( 37), -INT8_C( 33), -INT8_C( 79), -INT8_C( 5), -INT8_C( 100), INT8_C( 121), INT8_C( 31),
INT8_C( 37), INT8_C( 110), INT8_C( 57), -INT8_C( 22), INT8_C( 95), -INT8_C( 63), INT8_C( 13), INT8_C( 26),
-INT8_C( 22), INT8_MIN, INT8_C( 126), INT8_C( 48), -INT8_C( 33), -INT8_C( 125), -INT8_C( 46), INT8_C( 49),
-INT8_C( 72), INT8_C( 72), INT8_C( 29), INT8_C( 81), -INT8_C( 124), INT8_C( 123), -INT8_C( 52), INT8_C( 104),
INT8_C( 86), -INT8_C( 84), INT8_C( 26), INT8_C( 81), INT8_C( 72), -INT8_C( 109), INT8_C( 113), INT8_C( 110),
INT8_C( 2), -INT8_C( 86), INT8_C( 88), INT8_C( 97), INT8_C( 108), INT8_C( 101), INT8_C( 124), INT8_C( 86),
-INT8_C( 27), -INT8_C( 6), -INT8_C( 121), -INT8_C( 59), INT8_C( 125), INT8_C( 89), -INT8_C( 10), INT8_C( 53),
-INT8_C( 95), INT8_C( 20), -INT8_C( 121), INT8_C( 38), -INT8_C( 113), INT8_C( 83), -INT8_C( 114), -INT8_C( 27) },
{ { -INT8_C( 28), -INT8_C( 37), -INT8_C( 33), -INT8_C( 79), -INT8_C( 5), -INT8_C( 100), INT8_C( 121), INT8_C( 31),
INT8_C( 37), INT8_C( 110), INT8_C( 57), -INT8_C( 22), INT8_C( 95), -INT8_C( 63), INT8_C( 13), INT8_C( 26) },
{ -INT8_C( 22), INT8_MIN, INT8_C( 126), INT8_C( 48), -INT8_C( 33), -INT8_C( 125), -INT8_C( 46), INT8_C( 49),
-INT8_C( 72), INT8_C( 72), INT8_C( 29), INT8_C( 81), -INT8_C( 124), INT8_C( 123), -INT8_C( 52), INT8_C( 104) },
{ INT8_C( 86), -INT8_C( 84), INT8_C( 26), INT8_C( 81), INT8_C( 72), -INT8_C( 109), INT8_C( 113), INT8_C( 110),
INT8_C( 2), -INT8_C( 86), INT8_C( 88), INT8_C( 97), INT8_C( 108), INT8_C( 101), INT8_C( 124), INT8_C( 86) },
{ -INT8_C( 27), -INT8_C( 6), -INT8_C( 121), -INT8_C( 59), INT8_C( 125), INT8_C( 89), -INT8_C( 10), INT8_C( 53),
-INT8_C( 95), INT8_C( 20), -INT8_C( 121), INT8_C( 38), -INT8_C( 113), INT8_C( 83), -INT8_C( 114), -INT8_C( 27) } },
},
{ { -INT8_C( 1), -INT8_C( 88), INT8_C( 55), INT8_C( 72), INT8_C( 60), -INT8_C( 88), -INT8_C( 74), INT8_C( 62),
INT8_C( 82), INT8_C( 14), -INT8_C( 97), -INT8_C( 66), INT8_C( 116), INT8_C( 27), INT8_C( 21), INT8_C( 89),
INT8_C( 21), -INT8_C( 100), INT8_C( 30), -INT8_C( 110), -INT8_C( 11), INT8_C( 21), -INT8_C( 56), -INT8_C( 106),
INT8_C( 41), INT8_C( 79), -INT8_C( 68), -INT8_C( 72), -INT8_C( 94), INT8_C( 75), -INT8_C( 99), -INT8_C( 94),
-INT8_C( 13), -INT8_C( 44), -INT8_C( 22), INT8_C( 47), INT8_C( 124), -INT8_C( 96), INT8_C( 109), -INT8_C( 49),
-INT8_C( 82), INT8_C( 13), -INT8_C( 115), INT8_C( 34), INT8_C( 40), -INT8_C( 94), INT8_C( 124), INT8_C( 62),
INT8_C( 62), -INT8_C( 102), -INT8_C( 48), INT8_C( 51), -INT8_C( 81), -INT8_C( 104), -INT8_C( 54), -INT8_C( 40),
-INT8_C( 25), -INT8_C( 122), -INT8_C( 112), -INT8_C( 118), -INT8_C( 47), INT8_C( 46), INT8_C( 44), -INT8_C( 59) },
{ { -INT8_C( 1), -INT8_C( 88), INT8_C( 55), INT8_C( 72), INT8_C( 60), -INT8_C( 88), -INT8_C( 74), INT8_C( 62),
INT8_C( 82), INT8_C( 14), -INT8_C( 97), -INT8_C( 66), INT8_C( 116), INT8_C( 27), INT8_C( 21), INT8_C( 89) },
{ INT8_C( 21), -INT8_C( 100), INT8_C( 30), -INT8_C( 110), -INT8_C( 11), INT8_C( 21), -INT8_C( 56), -INT8_C( 106),
INT8_C( 41), INT8_C( 79), -INT8_C( 68), -INT8_C( 72), -INT8_C( 94), INT8_C( 75), -INT8_C( 99), -INT8_C( 94) },
{ -INT8_C( 13), -INT8_C( 44), -INT8_C( 22), INT8_C( 47), INT8_C( 124), -INT8_C( 96), INT8_C( 109), -INT8_C( 49),
-INT8_C( 82), INT8_C( 13), -INT8_C( 115), INT8_C( 34), INT8_C( 40), -INT8_C( 94), INT8_C( 124), INT8_C( 62) },
{ INT8_C( 62), -INT8_C( 102), -INT8_C( 48), INT8_C( 51), -INT8_C( 81), -INT8_C( 104), -INT8_C( 54), -INT8_C( 40),
-INT8_C( 25), -INT8_C( 122), -INT8_C( 112), -INT8_C( 118), -INT8_C( 47), INT8_C( 46), INT8_C( 44), -INT8_C( 59) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int8x16x4_t r = simde_vld1q_s8_x4(test_vec[i].buf);
simde_int8x16x4_t expected = {{
simde_vld1q_s8(test_vec[i].expected[0]),
simde_vld1q_s8(test_vec[i].expected[1]),
simde_vld1q_s8(test_vec[i].expected[2]),
simde_vld1q_s8(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_i8x16x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int8_t buf[64];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vi8(2, 64, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int8x16x4_t val = simde_vld1q_s8_x4(buf);
simde_test_arm_neon_write_i8x16x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s16_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int16_t buf[32];
int16_t expected[4][8];
} test_vec[] = {
{ { -INT16_C( 3028), -INT16_C( 9957), -INT16_C( 13972), INT16_C( 8275), -INT16_C( 11262), -INT16_C( 26807), -INT16_C( 24460), INT16_C( 20280),
INT16_C( 736), INT16_C( 321), -INT16_C( 23819), -INT16_C( 29317), INT16_C( 15380), INT16_C( 18873), -INT16_C( 26631), INT16_C( 9642),
-INT16_C( 14709), -INT16_C( 2050), INT16_C( 20879), -INT16_C( 28392), INT16_C( 24869), -INT16_C( 26328), INT16_C( 24833), -INT16_C( 7447),
INT16_C( 10851), INT16_C( 23011), INT16_C( 24268), -INT16_C( 7706), -INT16_C( 24678), -INT16_C( 27606), -INT16_C( 11210), -INT16_C( 15943) },
{ { -INT16_C( 3028), -INT16_C( 9957), -INT16_C( 13972), INT16_C( 8275), -INT16_C( 11262), -INT16_C( 26807), -INT16_C( 24460), INT16_C( 20280) },
{ INT16_C( 736), INT16_C( 321), -INT16_C( 23819), -INT16_C( 29317), INT16_C( 15380), INT16_C( 18873), -INT16_C( 26631), INT16_C( 9642) },
{ -INT16_C( 14709), -INT16_C( 2050), INT16_C( 20879), -INT16_C( 28392), INT16_C( 24869), -INT16_C( 26328), INT16_C( 24833), -INT16_C( 7447) },
{ INT16_C( 10851), INT16_C( 23011), INT16_C( 24268), -INT16_C( 7706), -INT16_C( 24678), -INT16_C( 27606), -INT16_C( 11210), -INT16_C( 15943) } },
},
{ { -INT16_C( 18278), INT16_C( 10937), -INT16_C( 12023), INT16_C( 12219), -INT16_C( 7118), INT16_C( 13512), -INT16_C( 20155), -INT16_C( 22506),
-INT16_C( 1572), -INT16_C( 22527), -INT16_C( 6057), -INT16_C( 3447), -INT16_C( 19577), -INT16_C( 16762), INT16_C( 16264), INT16_C( 8831),
INT16_C( 14583), INT16_C( 332), INT16_C( 2057), INT16_C( 15408), -INT16_C( 1812), INT16_C( 12656), -INT16_C( 31062), -INT16_C( 31015),
-INT16_C( 9345), -INT16_C( 10706), -INT16_C( 18237), INT16_C( 19144), INT16_C( 20075), -INT16_C( 3320), -INT16_C( 30578), -INT16_C( 31466) },
{ { -INT16_C( 18278), INT16_C( 10937), -INT16_C( 12023), INT16_C( 12219), -INT16_C( 7118), INT16_C( 13512), -INT16_C( 20155), -INT16_C( 22506) },
{ -INT16_C( 1572), -INT16_C( 22527), -INT16_C( 6057), -INT16_C( 3447), -INT16_C( 19577), -INT16_C( 16762), INT16_C( 16264), INT16_C( 8831) },
{ INT16_C( 14583), INT16_C( 332), INT16_C( 2057), INT16_C( 15408), -INT16_C( 1812), INT16_C( 12656), -INT16_C( 31062), -INT16_C( 31015) },
{ -INT16_C( 9345), -INT16_C( 10706), -INT16_C( 18237), INT16_C( 19144), INT16_C( 20075), -INT16_C( 3320), -INT16_C( 30578), -INT16_C( 31466) } },
},
{ { INT16_C( 25280), -INT16_C( 13690), -INT16_C( 18838), INT16_C( 22022), INT16_C( 30383), INT16_C( 22919), INT16_C( 25084), INT16_C( 31711),
INT16_C( 3388), -INT16_C( 175), INT16_C( 6853), INT16_C( 12617), INT16_C( 21096), -INT16_C( 2524), INT16_C( 15066), -INT16_C( 25988),
INT16_C( 669), INT16_C( 1892), INT16_C( 27321), INT16_C( 26718), -INT16_C( 6688), -INT16_C( 9023), -INT16_C( 24506), -INT16_C( 32169),
-INT16_C( 22099), INT16_C( 29569), -INT16_C( 13373), INT16_C( 11172), -INT16_C( 14307), -INT16_C( 2270), -INT16_C( 25085), -INT16_C( 24431) },
{ { INT16_C( 25280), -INT16_C( 13690), -INT16_C( 18838), INT16_C( 22022), INT16_C( 30383), INT16_C( 22919), INT16_C( 25084), INT16_C( 31711) },
{ INT16_C( 3388), -INT16_C( 175), INT16_C( 6853), INT16_C( 12617), INT16_C( 21096), -INT16_C( 2524), INT16_C( 15066), -INT16_C( 25988) },
{ INT16_C( 669), INT16_C( 1892), INT16_C( 27321), INT16_C( 26718), -INT16_C( 6688), -INT16_C( 9023), -INT16_C( 24506), -INT16_C( 32169) },
{ -INT16_C( 22099), INT16_C( 29569), -INT16_C( 13373), INT16_C( 11172), -INT16_C( 14307), -INT16_C( 2270), -INT16_C( 25085), -INT16_C( 24431) } },
},
{ { -INT16_C( 2400), INT16_C( 22951), INT16_C( 1376), INT16_C( 16833), -INT16_C( 32021), INT16_C( 12573), INT16_C( 29986), -INT16_C( 12108),
INT16_C( 13598), -INT16_C( 7869), -INT16_C( 6400), INT16_C( 7436), INT16_C( 11951), -INT16_C( 19948), -INT16_C( 22836), INT16_C( 27986),
-INT16_C( 1380), -INT16_C( 826), -INT16_C( 30465), -INT16_C( 5571), INT16_C( 23306), INT16_C( 11548), -INT16_C( 12080), -INT16_C( 4355),
INT16_C( 16389), INT16_C( 1743), -INT16_C( 9433), -INT16_C( 10717), INT16_C( 14346), -INT16_C( 10615), -INT16_C( 9250), INT16_C( 31299) },
{ { -INT16_C( 2400), INT16_C( 22951), INT16_C( 1376), INT16_C( 16833), -INT16_C( 32021), INT16_C( 12573), INT16_C( 29986), -INT16_C( 12108) },
{ INT16_C( 13598), -INT16_C( 7869), -INT16_C( 6400), INT16_C( 7436), INT16_C( 11951), -INT16_C( 19948), -INT16_C( 22836), INT16_C( 27986) },
{ -INT16_C( 1380), -INT16_C( 826), -INT16_C( 30465), -INT16_C( 5571), INT16_C( 23306), INT16_C( 11548), -INT16_C( 12080), -INT16_C( 4355) },
{ INT16_C( 16389), INT16_C( 1743), -INT16_C( 9433), -INT16_C( 10717), INT16_C( 14346), -INT16_C( 10615), -INT16_C( 9250), INT16_C( 31299) } },
},
{ { INT16_C( 2773), -INT16_C( 10890), -INT16_C( 19310), -INT16_C( 25409), -INT16_C( 9457), -INT16_C( 8247), -INT16_C( 14677), -INT16_C( 20019),
-INT16_C( 25594), INT16_C( 11703), -INT16_C( 9609), -INT16_C( 32508), -INT16_C( 29422), -INT16_C( 4008), -INT16_C( 25752), INT16_C( 15978),
-INT16_C( 7771), INT16_C( 14099), -INT16_C( 11627), -INT16_C( 23340), -INT16_C( 25170), INT16_C( 22915), INT16_C( 20580), INT16_C( 27146),
-INT16_C( 15892), INT16_C( 25496), -INT16_C( 25444), -INT16_C( 20763), INT16_C( 15657), -INT16_C( 28257), INT16_C( 2520), INT16_C( 32463) },
{ { INT16_C( 2773), -INT16_C( 10890), -INT16_C( 19310), -INT16_C( 25409), -INT16_C( 9457), -INT16_C( 8247), -INT16_C( 14677), -INT16_C( 20019) },
{ -INT16_C( 25594), INT16_C( 11703), -INT16_C( 9609), -INT16_C( 32508), -INT16_C( 29422), -INT16_C( 4008), -INT16_C( 25752), INT16_C( 15978) },
{ -INT16_C( 7771), INT16_C( 14099), -INT16_C( 11627), -INT16_C( 23340), -INT16_C( 25170), INT16_C( 22915), INT16_C( 20580), INT16_C( 27146) },
{ -INT16_C( 15892), INT16_C( 25496), -INT16_C( 25444), -INT16_C( 20763), INT16_C( 15657), -INT16_C( 28257), INT16_C( 2520), INT16_C( 32463) } },
},
{ { -INT16_C( 7446), INT16_C( 32693), -INT16_C( 30283), INT16_C( 25379), -INT16_C( 23001), -INT16_C( 29764), -INT16_C( 14346), -INT16_C( 7435),
-INT16_C( 29304), INT16_C( 9286), INT16_C( 11049), INT16_C( 21203), INT16_C( 29288), INT16_C( 16612), -INT16_C( 19589), INT16_C( 26302),
INT16_C( 29846), INT16_C( 19429), INT16_C( 2557), INT16_C( 9390), INT16_C( 27311), -INT16_C( 22865), -INT16_C( 23247), -INT16_C( 17784),
-INT16_C( 12750), INT16_C( 23774), -INT16_C( 19975), INT16_C( 25006), -INT16_C( 28125), -INT16_C( 24670), INT16_C( 24646), -INT16_C( 9211) },
{ { -INT16_C( 7446), INT16_C( 32693), -INT16_C( 30283), INT16_C( 25379), -INT16_C( 23001), -INT16_C( 29764), -INT16_C( 14346), -INT16_C( 7435) },
{ -INT16_C( 29304), INT16_C( 9286), INT16_C( 11049), INT16_C( 21203), INT16_C( 29288), INT16_C( 16612), -INT16_C( 19589), INT16_C( 26302) },
{ INT16_C( 29846), INT16_C( 19429), INT16_C( 2557), INT16_C( 9390), INT16_C( 27311), -INT16_C( 22865), -INT16_C( 23247), -INT16_C( 17784) },
{ -INT16_C( 12750), INT16_C( 23774), -INT16_C( 19975), INT16_C( 25006), -INT16_C( 28125), -INT16_C( 24670), INT16_C( 24646), -INT16_C( 9211) } },
},
{ { -INT16_C( 5420), -INT16_C( 11737), -INT16_C( 10765), -INT16_C( 23562), -INT16_C( 22977), INT16_C( 29001), -INT16_C( 11957), INT16_C( 32043),
INT16_C( 2464), -INT16_C( 26151), -INT16_C( 30533), -INT16_C( 8453), -INT16_C( 25318), INT16_C( 24701), -INT16_C( 32003), -INT16_C( 11716),
INT16_C( 25453), INT16_C( 24740), -INT16_C( 26056), INT16_C( 30723), INT16_C( 19520), -INT16_C( 29719), INT16_C( 5150), -INT16_C( 16887),
-INT16_C( 7651), -INT16_C( 10153), INT16_C( 21098), -INT16_C( 31305), INT16_C( 13551), -INT16_C( 4635), INT16_C( 8887), INT16_C( 9407) },
{ { -INT16_C( 5420), -INT16_C( 11737), -INT16_C( 10765), -INT16_C( 23562), -INT16_C( 22977), INT16_C( 29001), -INT16_C( 11957), INT16_C( 32043) },
{ INT16_C( 2464), -INT16_C( 26151), -INT16_C( 30533), -INT16_C( 8453), -INT16_C( 25318), INT16_C( 24701), -INT16_C( 32003), -INT16_C( 11716) },
{ INT16_C( 25453), INT16_C( 24740), -INT16_C( 26056), INT16_C( 30723), INT16_C( 19520), -INT16_C( 29719), INT16_C( 5150), -INT16_C( 16887) },
{ -INT16_C( 7651), -INT16_C( 10153), INT16_C( 21098), -INT16_C( 31305), INT16_C( 13551), -INT16_C( 4635), INT16_C( 8887), INT16_C( 9407) } },
},
{ { INT16_C( 25477), -INT16_C( 16764), -INT16_C( 30467), INT16_C( 15926), INT16_C( 8148), -INT16_C( 3383), -INT16_C( 11725), INT16_C( 20656),
INT16_C( 2229), INT16_C( 7977), -INT16_C( 8102), INT16_C( 19108), -INT16_C( 30188), -INT16_C( 13513), -INT16_C( 2388), INT16_C( 12783),
INT16_C( 29785), INT16_C( 22255), INT16_C( 9724), -INT16_C( 12140), INT16_C( 24132), INT16_C( 30659), INT16_C( 29488), -INT16_C( 6712),
-INT16_C( 3717), -INT16_C( 10747), -INT16_C( 22063), -INT16_C( 6880), INT16_C( 22323), -INT16_C( 8271), -INT16_C( 24499), -INT16_C( 23023) },
{ { INT16_C( 25477), -INT16_C( 16764), -INT16_C( 30467), INT16_C( 15926), INT16_C( 8148), -INT16_C( 3383), -INT16_C( 11725), INT16_C( 20656) },
{ INT16_C( 2229), INT16_C( 7977), -INT16_C( 8102), INT16_C( 19108), -INT16_C( 30188), -INT16_C( 13513), -INT16_C( 2388), INT16_C( 12783) },
{ INT16_C( 29785), INT16_C( 22255), INT16_C( 9724), -INT16_C( 12140), INT16_C( 24132), INT16_C( 30659), INT16_C( 29488), -INT16_C( 6712) },
{ -INT16_C( 3717), -INT16_C( 10747), -INT16_C( 22063), -INT16_C( 6880), INT16_C( 22323), -INT16_C( 8271), -INT16_C( 24499), -INT16_C( 23023) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int16x8x4_t r = simde_vld1q_s16_x4(test_vec[i].buf);
simde_int16x8x4_t expected = {{
simde_vld1q_s16(test_vec[i].expected[0]),
simde_vld1q_s16(test_vec[i].expected[1]),
simde_vld1q_s16(test_vec[i].expected[2]),
simde_vld1q_s16(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_i16x8x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int16_t buf[32];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vi16(2, 32, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int16x8x4_t val = simde_vld1q_s16_x4(buf);
simde_test_arm_neon_write_i16x8x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s32_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int32_t buf[16];
int32_t expected[4][4];
} test_vec[] = {
{ { INT32_C( 284950548), INT32_C( 1793167654), INT32_C( 534947055), -INT32_C( 1828345321), INT32_C( 1818823323), -INT32_C( 414086733), INT32_C( 767951584), -INT32_C( 1210853469),
-INT32_C( 20394024), INT32_C( 1332259168), INT32_C( 1685015117), -INT32_C( 1879608076), INT32_C( 838557822), -INT32_C( 921154071), -INT32_C( 218702001), -INT32_C( 1901409866) },
{ { INT32_C( 284950548), INT32_C( 1793167654), INT32_C( 534947055), -INT32_C( 1828345321) },
{ INT32_C( 1818823323), -INT32_C( 414086733), INT32_C( 767951584), -INT32_C( 1210853469) },
{ -INT32_C( 20394024), INT32_C( 1332259168), INT32_C( 1685015117), -INT32_C( 1879608076) },
{ INT32_C( 838557822), -INT32_C( 921154071), -INT32_C( 218702001), -INT32_C( 1901409866) } },
},
{ { -INT32_C( 108236135), INT32_C( 1749677339), INT32_C( 885831743), -INT32_C( 1430010836), INT32_C( 249282340), INT32_C( 1540879372), -INT32_C( 1991323949), INT32_C( 806942871),
-INT32_C( 2060802966), -INT32_C( 638749799), INT32_C( 1460517163), -INT32_C( 1576939395), -INT32_C( 1682908017), -INT32_C( 1544058928), -INT32_C( 315800235), -INT32_C( 1491253955) },
{ { -INT32_C( 108236135), INT32_C( 1749677339), INT32_C( 885831743), -INT32_C( 1430010836) },
{ INT32_C( 249282340), INT32_C( 1540879372), -INT32_C( 1991323949), INT32_C( 806942871) },
{ -INT32_C( 2060802966), -INT32_C( 638749799), INT32_C( 1460517163), -INT32_C( 1576939395) },
{ -INT32_C( 1682908017), -INT32_C( 1544058928), -INT32_C( 315800235), -INT32_C( 1491253955) } },
},
{ { -INT32_C( 2094250007), -INT32_C( 446948934), INT32_C( 1346136530), -INT32_C( 906871495), -INT32_C( 362503654), INT32_C( 2140035881), -INT32_C( 580076640), -INT32_C( 377190144),
-INT32_C( 1955811119), -INT32_C( 1670264631), INT32_C( 1810672945), INT32_C( 87351019), -INT32_C( 1443915648), -INT32_C( 1809285644), INT32_C( 947033144), -INT32_C( 282921442) },
{ { -INT32_C( 2094250007), -INT32_C( 446948934), INT32_C( 1346136530), -INT32_C( 906871495) },
{ -INT32_C( 362503654), INT32_C( 2140035881), -INT32_C( 580076640), -INT32_C( 377190144) },
{ -INT32_C( 1955811119), -INT32_C( 1670264631), INT32_C( 1810672945), INT32_C( 87351019) },
{ -INT32_C( 1443915648), -INT32_C( 1809285644), INT32_C( 947033144), -INT32_C( 282921442) } },
},
{ { INT32_C( 1887080103), -INT32_C( 2012419241), -INT32_C( 2064385895), INT32_C( 1451829206), -INT32_C( 1275037504), INT32_C( 776481014), -INT32_C( 613958979), INT32_C( 1489668529),
INT32_C( 1858618391), -INT32_C( 906504912), -INT32_C( 1538397491), -INT32_C( 755313134), INT32_C( 1149696590), -INT32_C( 529281501), INT32_C( 985389705), INT32_C( 2056422755) },
{ { INT32_C( 1887080103), -INT32_C( 2012419241), -INT32_C( 2064385895), INT32_C( 1451829206) },
{ -INT32_C( 1275037504), INT32_C( 776481014), -INT32_C( 613958979), INT32_C( 1489668529) },
{ INT32_C( 1858618391), -INT32_C( 906504912), -INT32_C( 1538397491), -INT32_C( 755313134) },
{ INT32_C( 1149696590), -INT32_C( 529281501), INT32_C( 985389705), INT32_C( 2056422755) } },
},
{ { -INT32_C( 102147383), -INT32_C( 37560273), -INT32_C( 593424438), INT32_C( 883858405), -INT32_C( 1183304554), -INT32_C( 1936069885), INT32_C( 684086469), -INT32_C( 1566353191),
-INT32_C( 493056846), INT32_C( 920608364), INT32_C( 1393786990), -INT32_C( 1316503269), -INT32_C( 110493450), -INT32_C( 1316682773), INT32_C( 819546967), INT32_C( 1439923363) },
{ { -INT32_C( 102147383), -INT32_C( 37560273), -INT32_C( 593424438), INT32_C( 883858405) },
{ -INT32_C( 1183304554), -INT32_C( 1936069885), INT32_C( 684086469), -INT32_C( 1566353191) },
{ -INT32_C( 493056846), INT32_C( 920608364), INT32_C( 1393786990), -INT32_C( 1316503269) },
{ -INT32_C( 110493450), -INT32_C( 1316682773), INT32_C( 819546967), INT32_C( 1439923363) } },
},
{ { INT32_C( 1949789960), INT32_C( 1001068237), -INT32_C( 1299202410), INT32_C( 1969428095), INT32_C( 40816150), INT32_C( 699659217), -INT32_C( 514225090), INT32_C( 288828425),
INT32_C( 1770417819), INT32_C( 463745413), INT32_C( 1858941935), INT32_C( 1625567562), -INT32_C( 798862593), -INT32_C( 2064050874), -INT32_C( 1419357278), INT32_C( 465345919) },
{ { INT32_C( 1949789960), INT32_C( 1001068237), -INT32_C( 1299202410), INT32_C( 1969428095) },
{ INT32_C( 40816150), INT32_C( 699659217), -INT32_C( 514225090), INT32_C( 288828425) },
{ INT32_C( 1770417819), INT32_C( 463745413), INT32_C( 1858941935), INT32_C( 1625567562) },
{ -INT32_C( 798862593), -INT32_C( 2064050874), -INT32_C( 1419357278), INT32_C( 465345919) } },
},
{ { -INT32_C( 1870380533), INT32_C( 1655449715), -INT32_C( 1496221348), -INT32_C( 1459178070), INT32_C( 1299867911), INT32_C( 550663038), INT32_C( 1187723462), -INT32_C( 530478891),
INT32_C( 1047651786), INT32_C( 1772100877), INT32_C( 1091531158), INT32_C( 787093030), -INT32_C( 42244993), -INT32_C( 1642181160), INT32_C( 1524951429), INT32_C( 1010517361) },
{ { -INT32_C( 1870380533), INT32_C( 1655449715), -INT32_C( 1496221348), -INT32_C( 1459178070) },
{ INT32_C( 1299867911), INT32_C( 550663038), INT32_C( 1187723462), -INT32_C( 530478891) },
{ INT32_C( 1047651786), INT32_C( 1772100877), INT32_C( 1091531158), INT32_C( 787093030) },
{ -INT32_C( 42244993), -INT32_C( 1642181160), INT32_C( 1524951429), INT32_C( 1010517361) } },
},
{ { INT32_C( 947563562), INT32_C( 1604393673), -INT32_C( 1298091636), INT32_C( 1189120967), -INT32_C( 951886609), INT32_C( 795238825), -INT32_C( 1131853237), -INT32_C( 1158101872),
INT32_C( 972190320), INT32_C( 429495437), INT32_C( 214645061), -INT32_C( 1269650236), -INT32_C( 1317300984), INT32_C( 1122034167), -INT32_C( 1124177364), -INT32_C( 1619593426) },
{ { INT32_C( 947563562), INT32_C( 1604393673), -INT32_C( 1298091636), INT32_C( 1189120967) },
{ -INT32_C( 951886609), INT32_C( 795238825), -INT32_C( 1131853237), -INT32_C( 1158101872) },
{ INT32_C( 972190320), INT32_C( 429495437), INT32_C( 214645061), -INT32_C( 1269650236) },
{ -INT32_C( 1317300984), INT32_C( 1122034167), -INT32_C( 1124177364), -INT32_C( 1619593426) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int32x4x4_t r = simde_vld1q_s32_x4(test_vec[i].buf);
simde_int32x4x4_t expected = {{
simde_vld1q_s32(test_vec[i].expected[0]),
simde_vld1q_s32(test_vec[i].expected[1]),
simde_vld1q_s32(test_vec[i].expected[2]),
simde_vld1q_s32(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_i32x4x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int32_t buf[16];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vi32(2, 16, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int32x4x4_t val = simde_vld1q_s32_x4(buf);
simde_test_arm_neon_write_i32x4x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_s64_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
int64_t buf[8];
int64_t expected[4][2];
} test_vec[] = {
{ { INT64_C( 4760148666735946089), -INT64_C( 8132479998552515669), -INT64_C( 6021838817365811403), -INT64_C( 3649921874283434613),
INT64_C( 5586666556685037896), -INT64_C( 6141537197809085010), -INT64_C( 5644060203476908673), INT64_C( 4387847390081193394) },
{ { INT64_C( 4760148666735946089), -INT64_C( 8132479998552515669) },
{ -INT64_C( 6021838817365811403), -INT64_C( 3649921874283434613) },
{ -INT64_C( 6021838817365811403), -INT64_C( 3649921874283434613) },
{ -INT64_C( 6021838817365811403), -INT64_C( 3649921874283434613) } },
},
{ { INT64_C( 3090604571182082292), INT64_C( 143029426020393437), -INT64_C( 3818862159798873303), INT64_C( 2446235447259720386),
INT64_C( 6346588355911250798), -INT64_C( 4557740027694910659), INT64_C( 3485521604196155514), INT64_C( 8487272124684648825) },
{ { INT64_C( 3090604571182082292), INT64_C( 143029426020393437) },
{ -INT64_C( 3818862159798873303), INT64_C( 2446235447259720386) },
{ -INT64_C( 3818862159798873303), INT64_C( 2446235447259720386) },
{ -INT64_C( 3818862159798873303), INT64_C( 2446235447259720386) } },
},
{ { INT64_C( 6422540011553325133), -INT64_C( 1351968901409747995), -INT64_C( 3227146505215259752), INT64_C( 4943901219744259360),
INT64_C( 5924816734716230595), -INT64_C( 4514847453420301831), -INT64_C( 2773375450841884331), INT64_C( 240552528616422683) },
{ { INT64_C( 6422540011553325133), -INT64_C( 1351968901409747995) },
{ -INT64_C( 3227146505215259752), INT64_C( 4943901219744259360) },
{ -INT64_C( 3227146505215259752), INT64_C( 4943901219744259360) },
{ -INT64_C( 3227146505215259752), INT64_C( 4943901219744259360) } },
},
{ { -INT64_C( 8550332863128313192), -INT64_C( 8910286995944364690), INT64_C( 4086934326748585766), -INT64_C( 1299675151452161870),
INT64_C( 7285498145578080514), -INT64_C( 8997816719938678674), -INT64_C( 4843312395375782796), -INT64_C( 5326732844894121007) },
{ { -INT64_C( 8550332863128313192), -INT64_C( 8910286995944364690) },
{ INT64_C( 4086934326748585766), -INT64_C( 1299675151452161870) },
{ INT64_C( 4086934326748585766), -INT64_C( 1299675151452161870) },
{ INT64_C( 4086934326748585766), -INT64_C( 1299675151452161870) } },
},
{ { -INT64_C( 4838726036511783554), -INT64_C( 6965808395020806540), -INT64_C( 6947934033821977138), INT64_C( 7239493411626369550),
-INT64_C( 7428773191900086051), -INT64_C( 8623340251912781688), -INT64_C( 8295362790028180366), INT64_C( 6665544593939801653) },
{ { -INT64_C( 4838726036511783554), -INT64_C( 6965808395020806540) },
{ -INT64_C( 6947934033821977138), INT64_C( 7239493411626369550) },
{ -INT64_C( 6947934033821977138), INT64_C( 7239493411626369550) },
{ -INT64_C( 6947934033821977138), INT64_C( 7239493411626369550) } },
},
{ { -INT64_C( 7763802182435513979), -INT64_C( 2669900760610198865), INT64_C( 8875182296389079583), -INT64_C( 4360583688382613343),
INT64_C( 2455216553624077169), INT64_C( 1484638621134510680), INT64_C( 5950059607068095953), -INT64_C( 5524528873201325485) },
{ { -INT64_C( 7763802182435513979), -INT64_C( 2669900760610198865) },
{ INT64_C( 8875182296389079583), -INT64_C( 4360583688382613343) },
{ INT64_C( 8875182296389079583), -INT64_C( 4360583688382613343) },
{ INT64_C( 8875182296389079583), -INT64_C( 4360583688382613343) } },
},
{ { -INT64_C( 4069491071876218639), INT64_C( 7036348372630311581), -INT64_C( 8730215561730435114), INT64_C( 3038358788875176501),
INT64_C( 4278723792409090860), -INT64_C( 2371018718251718618), -INT64_C( 3421540977185746741), INT64_C( 3741209293094362249) },
{ { -INT64_C( 4069491071876218639), INT64_C( 7036348372630311581) },
{ -INT64_C( 8730215561730435114), INT64_C( 3038358788875176501) },
{ -INT64_C( 8730215561730435114), INT64_C( 3038358788875176501) },
{ -INT64_C( 8730215561730435114), INT64_C( 3038358788875176501) } },
},
{ { -INT64_C( 5501376135347406387), -INT64_C( 5548009332439091944), INT64_C( 3350175258038593298), INT64_C( 364188182107965138),
INT64_C( 2492206978335628117), -INT64_C( 7770321780442136434), -INT64_C( 2053429149959005268), -INT64_C( 6862137505517571961) },
{ { -INT64_C( 5501376135347406387), -INT64_C( 5548009332439091944) },
{ INT64_C( 3350175258038593298), INT64_C( 364188182107965138) },
{ INT64_C( 3350175258038593298), INT64_C( 364188182107965138) },
{ INT64_C( 3350175258038593298), INT64_C( 364188182107965138) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_int64x2x4_t r = simde_vld1q_s64_x4(test_vec[i].buf);
simde_int64x2x4_t expected = {{
simde_vld1q_s64(test_vec[i].expected[0]),
simde_vld1q_s64(test_vec[i].expected[1]),
simde_vld1q_s64(test_vec[i].expected[2]),
simde_vld1q_s64(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_i64x2x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
int64_t buf[8];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vi64(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_int64x2x4_t val = simde_vld1q_s64_x4(buf);
simde_test_arm_neon_write_i64x2x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u8_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint8_t buf[64];
uint8_t expected[4][16];
} test_vec[] = {
{ { UINT8_C(171), UINT8_C(209), UINT8_C(190), UINT8_C( 65), UINT8_C(254), UINT8_C(218), UINT8_C( 87), UINT8_C( 32),
UINT8_C(205), UINT8_C( 84), UINT8_C(251), UINT8_C(248), UINT8_C(172), UINT8_C(241), UINT8_C(178), UINT8_C( 28),
UINT8_C(150), UINT8_C( 98), UINT8_C(162), UINT8_C(108), UINT8_C( 28), UINT8_C(224), UINT8_C( 62), UINT8_C( 82),
UINT8_C( 92), UINT8_C( 1), UINT8_C(171), UINT8_C(142), UINT8_C( 99), UINT8_C(117), UINT8_C( 52), UINT8_C( 15),
UINT8_C( 70), UINT8_C(242), UINT8_C( 80), UINT8_C( 68), UINT8_C(204), UINT8_C(167), UINT8_C(100), UINT8_C(154),
UINT8_C(251), UINT8_C( 95), UINT8_C(146), UINT8_C(167), UINT8_C( 81), UINT8_C( 69), UINT8_C(196), UINT8_C(231),
UINT8_C(167), UINT8_C(102), UINT8_C( 83), UINT8_C(196), UINT8_C( 70), UINT8_C(145), UINT8_C( 22), UINT8_C(163),
UINT8_C(146), UINT8_C(193), UINT8_C( 49), UINT8_C(246), UINT8_C( 54), UINT8_C(101), UINT8_C( 5), UINT8_C(125) },
{ { UINT8_C(171), UINT8_C(209), UINT8_C(190), UINT8_C( 65), UINT8_C(254), UINT8_C(218), UINT8_C( 87), UINT8_C( 32),
UINT8_C(205), UINT8_C( 84), UINT8_C(251), UINT8_C(248), UINT8_C(172), UINT8_C(241), UINT8_C(178), UINT8_C( 28) },
{ UINT8_C(150), UINT8_C( 98), UINT8_C(162), UINT8_C(108), UINT8_C( 28), UINT8_C(224), UINT8_C( 62), UINT8_C( 82),
UINT8_C( 92), UINT8_C( 1), UINT8_C(171), UINT8_C(142), UINT8_C( 99), UINT8_C(117), UINT8_C( 52), UINT8_C( 15) },
{ UINT8_C( 70), UINT8_C(242), UINT8_C( 80), UINT8_C( 68), UINT8_C(204), UINT8_C(167), UINT8_C(100), UINT8_C(154),
UINT8_C(251), UINT8_C( 95), UINT8_C(146), UINT8_C(167), UINT8_C( 81), UINT8_C( 69), UINT8_C(196), UINT8_C(231) },
{ UINT8_C(167), UINT8_C(102), UINT8_C( 83), UINT8_C(196), UINT8_C( 70), UINT8_C(145), UINT8_C( 22), UINT8_C(163),
UINT8_C(146), UINT8_C(193), UINT8_C( 49), UINT8_C(246), UINT8_C( 54), UINT8_C(101), UINT8_C( 5), UINT8_C(125) } },
},
{ { UINT8_C( 87), UINT8_C( 85), UINT8_C(193), UINT8_C( 36), UINT8_C(252), UINT8_C( 38), UINT8_C(190), UINT8_C(247),
UINT8_C(133), UINT8_C( 80), UINT8_C(158), UINT8_C(214), UINT8_C(149), UINT8_C( 98), UINT8_C(189), UINT8_C( 61),
UINT8_C(200), UINT8_C( 17), UINT8_C( 1), UINT8_C( 15), UINT8_C(162), UINT8_C( 23), UINT8_C(178), UINT8_C( 53),
UINT8_C(216), UINT8_C(227), UINT8_C( 43), UINT8_C( 14), UINT8_C( 72), UINT8_C( 48), UINT8_C(139), UINT8_C(159),
UINT8_C(133), UINT8_C( 77), UINT8_C(195), UINT8_C(129), UINT8_C(115), UINT8_C(129), UINT8_C(120), UINT8_C(248),
UINT8_C(210), UINT8_C( 22), UINT8_C(207), UINT8_C(103), UINT8_C(121), UINT8_C(140), UINT8_C(164), UINT8_C( 65),
UINT8_C(157), UINT8_C(165), UINT8_C( 80), UINT8_C( 64), UINT8_C(188), UINT8_C( 2), UINT8_C(117), UINT8_C(148),
UINT8_C(229), UINT8_C(160), UINT8_C(163), UINT8_C( 45), UINT8_C(208), UINT8_C( 46), UINT8_C(205), UINT8_C( 85) },
{ { UINT8_C( 87), UINT8_C( 85), UINT8_C(193), UINT8_C( 36), UINT8_C(252), UINT8_C( 38), UINT8_C(190), UINT8_C(247),
UINT8_C(133), UINT8_C( 80), UINT8_C(158), UINT8_C(214), UINT8_C(149), UINT8_C( 98), UINT8_C(189), UINT8_C( 61) },
{ UINT8_C(200), UINT8_C( 17), UINT8_C( 1), UINT8_C( 15), UINT8_C(162), UINT8_C( 23), UINT8_C(178), UINT8_C( 53),
UINT8_C(216), UINT8_C(227), UINT8_C( 43), UINT8_C( 14), UINT8_C( 72), UINT8_C( 48), UINT8_C(139), UINT8_C(159) },
{ UINT8_C(133), UINT8_C( 77), UINT8_C(195), UINT8_C(129), UINT8_C(115), UINT8_C(129), UINT8_C(120), UINT8_C(248),
UINT8_C(210), UINT8_C( 22), UINT8_C(207), UINT8_C(103), UINT8_C(121), UINT8_C(140), UINT8_C(164), UINT8_C( 65) },
{ UINT8_C(157), UINT8_C(165), UINT8_C( 80), UINT8_C( 64), UINT8_C(188), UINT8_C( 2), UINT8_C(117), UINT8_C(148),
UINT8_C(229), UINT8_C(160), UINT8_C(163), UINT8_C( 45), UINT8_C(208), UINT8_C( 46), UINT8_C(205), UINT8_C( 85) } },
},
{ { UINT8_C(123), UINT8_C(144), UINT8_C(214), UINT8_C(238), UINT8_C( 18), UINT8_C( 78), UINT8_C(231), UINT8_C(228),
UINT8_C(100), UINT8_C(182), UINT8_C( 75), UINT8_C(221), UINT8_C( 66), UINT8_C(240), UINT8_C( 31), UINT8_C(224),
UINT8_C(149), UINT8_C(111), UINT8_C( 32), UINT8_C( 82), UINT8_C(114), UINT8_C(149), UINT8_C(230), UINT8_C( 87),
UINT8_C( 53), UINT8_C(137), UINT8_C(133), UINT8_C( 5), UINT8_C(184), UINT8_C( 82), UINT8_C( 90), UINT8_C( 51),
UINT8_C(226), UINT8_C( 48), UINT8_C( 34), UINT8_C(244), UINT8_C(126), UINT8_C( 9), UINT8_C(216), UINT8_C(226),
UINT8_C(191), UINT8_C( 36), UINT8_C(192), UINT8_C( 1), UINT8_C( 20), UINT8_C(223), UINT8_C(225), UINT8_C(169),
UINT8_C( 78), UINT8_C( 1), UINT8_C(251), UINT8_C(192), UINT8_C(150), UINT8_C(226), UINT8_C( 24), UINT8_C(203),
UINT8_C(107), UINT8_C(157), UINT8_C(208), UINT8_C( 35), UINT8_C(239), UINT8_C( 42), UINT8_C( 87), UINT8_C(209) },
{ { UINT8_C(123), UINT8_C(144), UINT8_C(214), UINT8_C(238), UINT8_C( 18), UINT8_C( 78), UINT8_C(231), UINT8_C(228),
UINT8_C(100), UINT8_C(182), UINT8_C( 75), UINT8_C(221), UINT8_C( 66), UINT8_C(240), UINT8_C( 31), UINT8_C(224) },
{ UINT8_C(149), UINT8_C(111), UINT8_C( 32), UINT8_C( 82), UINT8_C(114), UINT8_C(149), UINT8_C(230), UINT8_C( 87),
UINT8_C( 53), UINT8_C(137), UINT8_C(133), UINT8_C( 5), UINT8_C(184), UINT8_C( 82), UINT8_C( 90), UINT8_C( 51) },
{ UINT8_C(226), UINT8_C( 48), UINT8_C( 34), UINT8_C(244), UINT8_C(126), UINT8_C( 9), UINT8_C(216), UINT8_C(226),
UINT8_C(191), UINT8_C( 36), UINT8_C(192), UINT8_C( 1), UINT8_C( 20), UINT8_C(223), UINT8_C(225), UINT8_C(169) },
{ UINT8_C( 78), UINT8_C( 1), UINT8_C(251), UINT8_C(192), UINT8_C(150), UINT8_C(226), UINT8_C( 24), UINT8_C(203),
UINT8_C(107), UINT8_C(157), UINT8_C(208), UINT8_C( 35), UINT8_C(239), UINT8_C( 42), UINT8_C( 87), UINT8_C(209) } },
},
{ { UINT8_C( 90), UINT8_C(121), UINT8_C(198), UINT8_C(216), UINT8_C(130), UINT8_C(158), UINT8_C(187), UINT8_C( 65),
UINT8_C(194), UINT8_C(123), UINT8_C( 66), UINT8_C(214), UINT8_C( 90), UINT8_C( 36), UINT8_C(128), UINT8_C(168),
UINT8_C( 37), UINT8_C(123), UINT8_C(105), UINT8_C(188), UINT8_C( 93), UINT8_C(129), UINT8_C(135), UINT8_C(201),
UINT8_C( 30), UINT8_C( 88), UINT8_C(236), UINT8_C( 13), UINT8_C(130), UINT8_C( 67), UINT8_C(222), UINT8_C(221),
UINT8_C(188), UINT8_C(164), UINT8_C(181), UINT8_C( 62), UINT8_C( 67), UINT8_C(112), UINT8_C(127), UINT8_C( 5),
UINT8_C(235), UINT8_C(194), UINT8_C(220), UINT8_C( 69), UINT8_C(230), UINT8_C( 92), UINT8_C(238), UINT8_C( 11),
UINT8_C(215), UINT8_C( 87), UINT8_C(199), UINT8_C( 53), UINT8_C(216), UINT8_C( 79), UINT8_C(254), UINT8_C(246),
UINT8_C(167), UINT8_C(234), UINT8_C( 3), UINT8_C( 41), UINT8_C( 46), UINT8_C(225), UINT8_C( 6), UINT8_C(234) },
{ { UINT8_C( 90), UINT8_C(121), UINT8_C(198), UINT8_C(216), UINT8_C(130), UINT8_C(158), UINT8_C(187), UINT8_C( 65),
UINT8_C(194), UINT8_C(123), UINT8_C( 66), UINT8_C(214), UINT8_C( 90), UINT8_C( 36), UINT8_C(128), UINT8_C(168) },
{ UINT8_C( 37), UINT8_C(123), UINT8_C(105), UINT8_C(188), UINT8_C( 93), UINT8_C(129), UINT8_C(135), UINT8_C(201),
UINT8_C( 30), UINT8_C( 88), UINT8_C(236), UINT8_C( 13), UINT8_C(130), UINT8_C( 67), UINT8_C(222), UINT8_C(221) },
{ UINT8_C(188), UINT8_C(164), UINT8_C(181), UINT8_C( 62), UINT8_C( 67), UINT8_C(112), UINT8_C(127), UINT8_C( 5),
UINT8_C(235), UINT8_C(194), UINT8_C(220), UINT8_C( 69), UINT8_C(230), UINT8_C( 92), UINT8_C(238), UINT8_C( 11) },
{ UINT8_C(215), UINT8_C( 87), UINT8_C(199), UINT8_C( 53), UINT8_C(216), UINT8_C( 79), UINT8_C(254), UINT8_C(246),
UINT8_C(167), UINT8_C(234), UINT8_C( 3), UINT8_C( 41), UINT8_C( 46), UINT8_C(225), UINT8_C( 6), UINT8_C(234) } },
},
{ { UINT8_C(134), UINT8_C(188), UINT8_C( 41), UINT8_C(201), UINT8_C( 44), UINT8_C(168), UINT8_C(206), UINT8_C( 24),
UINT8_C(106), UINT8_C(170), UINT8_C( 93), UINT8_C( 80), UINT8_C( 6), UINT8_C( 75), UINT8_C( 92), UINT8_C(222),
UINT8_C(162), UINT8_C( 35), UINT8_C( 19), UINT8_C(122), UINT8_C(114), UINT8_C( 17), UINT8_C(112), UINT8_C( 25),
UINT8_C(251), UINT8_C(115), UINT8_C( 67), UINT8_C( 41), UINT8_C( 85), UINT8_C( 73), UINT8_C( 20), UINT8_C(219),
UINT8_C( 5), UINT8_C( 61), UINT8_C(164), UINT8_C( 50), UINT8_C(229), UINT8_C(114), UINT8_C( 74), UINT8_C( 80),
UINT8_C( 29), UINT8_C(167), UINT8_C(160), UINT8_C( 35), UINT8_C(243), UINT8_C(252), UINT8_C( 1), UINT8_C(149),
UINT8_C( 32), UINT8_C( 20), UINT8_C( 16), UINT8_C(146), UINT8_C( 37), UINT8_C(128), UINT8_C(172), UINT8_C( 33),
UINT8_C(244), UINT8_C(239), UINT8_C( 74), UINT8_C( 73), UINT8_C( 56), UINT8_C( 94), UINT8_C( 36), UINT8_C( 62) },
{ { UINT8_C(134), UINT8_C(188), UINT8_C( 41), UINT8_C(201), UINT8_C( 44), UINT8_C(168), UINT8_C(206), UINT8_C( 24),
UINT8_C(106), UINT8_C(170), UINT8_C( 93), UINT8_C( 80), UINT8_C( 6), UINT8_C( 75), UINT8_C( 92), UINT8_C(222) },
{ UINT8_C(162), UINT8_C( 35), UINT8_C( 19), UINT8_C(122), UINT8_C(114), UINT8_C( 17), UINT8_C(112), UINT8_C( 25),
UINT8_C(251), UINT8_C(115), UINT8_C( 67), UINT8_C( 41), UINT8_C( 85), UINT8_C( 73), UINT8_C( 20), UINT8_C(219) },
{ UINT8_C( 5), UINT8_C( 61), UINT8_C(164), UINT8_C( 50), UINT8_C(229), UINT8_C(114), UINT8_C( 74), UINT8_C( 80),
UINT8_C( 29), UINT8_C(167), UINT8_C(160), UINT8_C( 35), UINT8_C(243), UINT8_C(252), UINT8_C( 1), UINT8_C(149) },
{ UINT8_C( 32), UINT8_C( 20), UINT8_C( 16), UINT8_C(146), UINT8_C( 37), UINT8_C(128), UINT8_C(172), UINT8_C( 33),
UINT8_C(244), UINT8_C(239), UINT8_C( 74), UINT8_C( 73), UINT8_C( 56), UINT8_C( 94), UINT8_C( 36), UINT8_C( 62) } },
},
{ { UINT8_C(155), UINT8_C(200), UINT8_C(112), UINT8_C(129), UINT8_C( 58), UINT8_C(186), UINT8_C(209), UINT8_C( 87),
UINT8_C( 97), UINT8_C(113), UINT8_C(123), UINT8_C( 84), UINT8_C(110), UINT8_C(124), UINT8_C(234), UINT8_C(142),
UINT8_C(145), UINT8_C(250), UINT8_C( 32), UINT8_C(182), UINT8_C(122), UINT8_C(204), UINT8_C(215), UINT8_C(110),
UINT8_C(187), UINT8_C( 34), UINT8_C(183), UINT8_C(244), UINT8_C(128), UINT8_C(219), UINT8_C( 50), UINT8_C( 28),
UINT8_C(163), UINT8_C(162), UINT8_C(157), UINT8_C(222), UINT8_C( 92), UINT8_C(110), UINT8_C( 53), UINT8_C(189),
UINT8_C(223), UINT8_C(176), UINT8_C( 18), UINT8_C( 77), UINT8_C( 45), UINT8_C(252), UINT8_C(219), UINT8_C(190),
UINT8_C(246), UINT8_C(252), UINT8_C(116), UINT8_C(112), UINT8_C(200), UINT8_C( 76), UINT8_C(223), UINT8_C(132),
UINT8_C(110), UINT8_C(150), UINT8_C(120), UINT8_C(238), UINT8_C(114), UINT8_C(170), UINT8_C( 10), UINT8_C( 21) },
{ { UINT8_C(155), UINT8_C(200), UINT8_C(112), UINT8_C(129), UINT8_C( 58), UINT8_C(186), UINT8_C(209), UINT8_C( 87),
UINT8_C( 97), UINT8_C(113), UINT8_C(123), UINT8_C( 84), UINT8_C(110), UINT8_C(124), UINT8_C(234), UINT8_C(142) },
{ UINT8_C(145), UINT8_C(250), UINT8_C( 32), UINT8_C(182), UINT8_C(122), UINT8_C(204), UINT8_C(215), UINT8_C(110),
UINT8_C(187), UINT8_C( 34), UINT8_C(183), UINT8_C(244), UINT8_C(128), UINT8_C(219), UINT8_C( 50), UINT8_C( 28) },
{ UINT8_C(163), UINT8_C(162), UINT8_C(157), UINT8_C(222), UINT8_C( 92), UINT8_C(110), UINT8_C( 53), UINT8_C(189),
UINT8_C(223), UINT8_C(176), UINT8_C( 18), UINT8_C( 77), UINT8_C( 45), UINT8_C(252), UINT8_C(219), UINT8_C(190) },
{ UINT8_C(246), UINT8_C(252), UINT8_C(116), UINT8_C(112), UINT8_C(200), UINT8_C( 76), UINT8_C(223), UINT8_C(132),
UINT8_C(110), UINT8_C(150), UINT8_C(120), UINT8_C(238), UINT8_C(114), UINT8_C(170), UINT8_C( 10), UINT8_C( 21) } },
},
{ { UINT8_C( 76), UINT8_C(167), UINT8_C(243), UINT8_C(168), UINT8_C( 21), UINT8_C( 41), UINT8_C(101), UINT8_C(245),
UINT8_C(217), UINT8_C(119), UINT8_C( 66), UINT8_C( 6), UINT8_C(115), UINT8_C( 30), UINT8_C(196), UINT8_C(105),
UINT8_C( 26), UINT8_C( 57), UINT8_C(218), UINT8_C(226), UINT8_C(133), UINT8_C(185), UINT8_C(102), UINT8_C(243),
UINT8_C( 79), UINT8_C(222), UINT8_C(225), UINT8_C(193), UINT8_C(136), UINT8_C(236), UINT8_C(215), UINT8_C(212),
UINT8_C(147), UINT8_C(202), UINT8_C(124), UINT8_C(169), UINT8_C(243), UINT8_C(226), UINT8_C(158), UINT8_C(205),
UINT8_C( 89), UINT8_C(224), UINT8_C(211), UINT8_C(205), UINT8_C(254), UINT8_C(152), UINT8_C( 54), UINT8_C( 24),
UINT8_C(209), UINT8_C( 16), UINT8_C(251), UINT8_C( 86), UINT8_C(201), UINT8_C( 97), UINT8_C( 73), UINT8_C( 25),
UINT8_C( 64), UINT8_C( 42), UINT8_C(218), UINT8_C(200), UINT8_C( 22), UINT8_C(177), UINT8_C(157), UINT8_C(170) },
{ { UINT8_C( 76), UINT8_C(167), UINT8_C(243), UINT8_C(168), UINT8_C( 21), UINT8_C( 41), UINT8_C(101), UINT8_C(245),
UINT8_C(217), UINT8_C(119), UINT8_C( 66), UINT8_C( 6), UINT8_C(115), UINT8_C( 30), UINT8_C(196), UINT8_C(105) },
{ UINT8_C( 26), UINT8_C( 57), UINT8_C(218), UINT8_C(226), UINT8_C(133), UINT8_C(185), UINT8_C(102), UINT8_C(243),
UINT8_C( 79), UINT8_C(222), UINT8_C(225), UINT8_C(193), UINT8_C(136), UINT8_C(236), UINT8_C(215), UINT8_C(212) },
{ UINT8_C(147), UINT8_C(202), UINT8_C(124), UINT8_C(169), UINT8_C(243), UINT8_C(226), UINT8_C(158), UINT8_C(205),
UINT8_C( 89), UINT8_C(224), UINT8_C(211), UINT8_C(205), UINT8_C(254), UINT8_C(152), UINT8_C( 54), UINT8_C( 24) },
{ UINT8_C(209), UINT8_C( 16), UINT8_C(251), UINT8_C( 86), UINT8_C(201), UINT8_C( 97), UINT8_C( 73), UINT8_C( 25),
UINT8_C( 64), UINT8_C( 42), UINT8_C(218), UINT8_C(200), UINT8_C( 22), UINT8_C(177), UINT8_C(157), UINT8_C(170) } },
},
{ { UINT8_C(124), UINT8_C( 25), UINT8_C( 83), UINT8_C(111), UINT8_C(251), UINT8_C(241), UINT8_C( 60), UINT8_C( 85),
UINT8_C(209), UINT8_C( 16), UINT8_C( 34), UINT8_C(208), UINT8_C(168), UINT8_C( 88), UINT8_C(232), UINT8_C(121),
UINT8_C(105), UINT8_C(227), UINT8_C(207), UINT8_C( 50), UINT8_C( 69), UINT8_C( 24), UINT8_C( 75), UINT8_C(133),
UINT8_C( 66), UINT8_C( 38), UINT8_C( 77), UINT8_C( 89), UINT8_C(215), UINT8_C(234), UINT8_C( 3), UINT8_C( 83),
UINT8_C( 4), UINT8_C( 86), UINT8_C(195), UINT8_MAX, UINT8_C( 71), UINT8_MAX, UINT8_C( 84), UINT8_C( 24),
UINT8_C( 15), UINT8_C(118), UINT8_C(232), UINT8_C(183), UINT8_C(207), UINT8_C(209), UINT8_C( 48), UINT8_C( 56),
UINT8_C(180), UINT8_MAX, UINT8_C(106), UINT8_C(249), UINT8_C( 23), UINT8_C(182), UINT8_C(126), UINT8_C( 90),
UINT8_C(220), UINT8_C(204), UINT8_C(179), UINT8_C(179), UINT8_C(182), UINT8_C(182), UINT8_C( 7), UINT8_C(186) },
{ { UINT8_C(124), UINT8_C( 25), UINT8_C( 83), UINT8_C(111), UINT8_C(251), UINT8_C(241), UINT8_C( 60), UINT8_C( 85),
UINT8_C(209), UINT8_C( 16), UINT8_C( 34), UINT8_C(208), UINT8_C(168), UINT8_C( 88), UINT8_C(232), UINT8_C(121) },
{ UINT8_C(105), UINT8_C(227), UINT8_C(207), UINT8_C( 50), UINT8_C( 69), UINT8_C( 24), UINT8_C( 75), UINT8_C(133),
UINT8_C( 66), UINT8_C( 38), UINT8_C( 77), UINT8_C( 89), UINT8_C(215), UINT8_C(234), UINT8_C( 3), UINT8_C( 83) },
{ UINT8_C( 4), UINT8_C( 86), UINT8_C(195), UINT8_MAX, UINT8_C( 71), UINT8_MAX, UINT8_C( 84), UINT8_C( 24),
UINT8_C( 15), UINT8_C(118), UINT8_C(232), UINT8_C(183), UINT8_C(207), UINT8_C(209), UINT8_C( 48), UINT8_C( 56) },
{ UINT8_C(180), UINT8_MAX, UINT8_C(106), UINT8_C(249), UINT8_C( 23), UINT8_C(182), UINT8_C(126), UINT8_C( 90),
UINT8_C(220), UINT8_C(204), UINT8_C(179), UINT8_C(179), UINT8_C(182), UINT8_C(182), UINT8_C( 7), UINT8_C(186) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint8x16x4_t r = simde_vld1q_u8_x4(test_vec[i].buf);
simde_uint8x16x4_t expected = {{
simde_vld1q_u8(test_vec[i].expected[0]),
simde_vld1q_u8(test_vec[i].expected[1]),
simde_vld1q_u8(test_vec[i].expected[2]),
simde_vld1q_u8(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_u8x16x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint8_t buf[64];
simde_test_codegen_random_memory(64, buf);
simde_test_codegen_write_vu8(2, 64, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint8x16x4_t val = simde_vld1q_u8_x4(buf);
simde_test_arm_neon_write_u8x16x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u16_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint16_t buf[32];
uint16_t expected[4][8];
} test_vec[] = {
{ { UINT16_C(51820), UINT16_C(23341), UINT16_C(11327), UINT16_C(36350), UINT16_C(24752), UINT16_C(52077), UINT16_C(30465), UINT16_C(28627),
UINT16_C(34772), UINT16_C(60098), UINT16_C( 5519), UINT16_C(45826), UINT16_C(57681), UINT16_C(58786), UINT16_C(41520), UINT16_C(39937),
UINT16_C(11885), UINT16_C(44279), UINT16_C(63066), UINT16_C( 2873), UINT16_C(42582), UINT16_C(22486), UINT16_C(43549), UINT16_C(61894),
UINT16_C(35121), UINT16_C(49627), UINT16_C(56734), UINT16_C(61300), UINT16_C( 6078), UINT16_C(61397), UINT16_C(54969), UINT16_C( 9867) },
{ { UINT16_C(51820), UINT16_C(23341), UINT16_C(11327), UINT16_C(36350), UINT16_C(24752), UINT16_C(52077), UINT16_C(30465), UINT16_C(28627) },
{ UINT16_C(34772), UINT16_C(60098), UINT16_C( 5519), UINT16_C(45826), UINT16_C(57681), UINT16_C(58786), UINT16_C(41520), UINT16_C(39937) },
{ UINT16_C(11885), UINT16_C(44279), UINT16_C(63066), UINT16_C( 2873), UINT16_C(42582), UINT16_C(22486), UINT16_C(43549), UINT16_C(61894) },
{ UINT16_C(35121), UINT16_C(49627), UINT16_C(56734), UINT16_C(61300), UINT16_C( 6078), UINT16_C(61397), UINT16_C(54969), UINT16_C( 9867) } },
},
{ { UINT16_C(33540), UINT16_C(24274), UINT16_C( 2937), UINT16_C(53097), UINT16_C(16561), UINT16_C(52774), UINT16_C(60906), UINT16_C( 7103),
UINT16_C(39542), UINT16_C( 5340), UINT16_C(20856), UINT16_C(13828), UINT16_C(55656), UINT16_C( 8485), UINT16_C(45487), UINT16_C(45896),
UINT16_C( 6708), UINT16_C(44305), UINT16_C(31526), UINT16_C(55164), UINT16_C(41659), UINT16_C(42406), UINT16_C(25999), UINT16_C( 1472),
UINT16_C(40192), UINT16_C(30746), UINT16_C( 7918), UINT16_C(22190), UINT16_C(54519), UINT16_C(42615), UINT16_C(49029), UINT16_C(47449) },
{ { UINT16_C(33540), UINT16_C(24274), UINT16_C( 2937), UINT16_C(53097), UINT16_C(16561), UINT16_C(52774), UINT16_C(60906), UINT16_C( 7103) },
{ UINT16_C(39542), UINT16_C( 5340), UINT16_C(20856), UINT16_C(13828), UINT16_C(55656), UINT16_C( 8485), UINT16_C(45487), UINT16_C(45896) },
{ UINT16_C( 6708), UINT16_C(44305), UINT16_C(31526), UINT16_C(55164), UINT16_C(41659), UINT16_C(42406), UINT16_C(25999), UINT16_C( 1472) },
{ UINT16_C(40192), UINT16_C(30746), UINT16_C( 7918), UINT16_C(22190), UINT16_C(54519), UINT16_C(42615), UINT16_C(49029), UINT16_C(47449) } },
},
{ { UINT16_C(27354), UINT16_C( 102), UINT16_C(58085), UINT16_C(41175), UINT16_C(32132), UINT16_C( 5189), UINT16_C( 1763), UINT16_C(58137),
UINT16_C(13219), UINT16_C(37211), UINT16_C( 2385), UINT16_C(18663), UINT16_C(24285), UINT16_C(25326), UINT16_C(18206), UINT16_C(63515),
UINT16_C(33202), UINT16_C(38904), UINT16_C(53091), UINT16_C(59448), UINT16_C(32077), UINT16_C(12540), UINT16_C( 5507), UINT16_C( 9747),
UINT16_C(28233), UINT16_C(39607), UINT16_C(40567), UINT16_C(21987), UINT16_C(53757), UINT16_C( 7095), UINT16_C(54041), UINT16_C(51987) },
{ { UINT16_C(27354), UINT16_C( 102), UINT16_C(58085), UINT16_C(41175), UINT16_C(32132), UINT16_C( 5189), UINT16_C( 1763), UINT16_C(58137) },
{ UINT16_C(13219), UINT16_C(37211), UINT16_C( 2385), UINT16_C(18663), UINT16_C(24285), UINT16_C(25326), UINT16_C(18206), UINT16_C(63515) },
{ UINT16_C(33202), UINT16_C(38904), UINT16_C(53091), UINT16_C(59448), UINT16_C(32077), UINT16_C(12540), UINT16_C( 5507), UINT16_C( 9747) },
{ UINT16_C(28233), UINT16_C(39607), UINT16_C(40567), UINT16_C(21987), UINT16_C(53757), UINT16_C( 7095), UINT16_C(54041), UINT16_C(51987) } },
},
{ { UINT16_C( 2900), UINT16_C(47202), UINT16_C(39642), UINT16_C(10144), UINT16_C(39960), UINT16_C(39767), UINT16_C(27313), UINT16_C(64194),
UINT16_C(31192), UINT16_C(20629), UINT16_C(30744), UINT16_C( 5541), UINT16_C(23625), UINT16_C(25136), UINT16_C(17199), UINT16_C(33837),
UINT16_C(36942), UINT16_C(10300), UINT16_C(56362), UINT16_C(16976), UINT16_C(42872), UINT16_C(10718), UINT16_C(40978), UINT16_C(59940),
UINT16_C(47385), UINT16_C(12602), UINT16_C(57137), UINT16_C(31302), UINT16_C(30268), UINT16_C(27613), UINT16_C( 2745), UINT16_C( 2031) },
{ { UINT16_C( 2900), UINT16_C(47202), UINT16_C(39642), UINT16_C(10144), UINT16_C(39960), UINT16_C(39767), UINT16_C(27313), UINT16_C(64194) },
{ UINT16_C(31192), UINT16_C(20629), UINT16_C(30744), UINT16_C( 5541), UINT16_C(23625), UINT16_C(25136), UINT16_C(17199), UINT16_C(33837) },
{ UINT16_C(36942), UINT16_C(10300), UINT16_C(56362), UINT16_C(16976), UINT16_C(42872), UINT16_C(10718), UINT16_C(40978), UINT16_C(59940) },
{ UINT16_C(47385), UINT16_C(12602), UINT16_C(57137), UINT16_C(31302), UINT16_C(30268), UINT16_C(27613), UINT16_C( 2745), UINT16_C( 2031) } },
},
{ { UINT16_C(11162), UINT16_C(50480), UINT16_C(32775), UINT16_C(32519), UINT16_C(58663), UINT16_C(14761), UINT16_C(52613), UINT16_C(40740),
UINT16_C(24198), UINT16_C(47056), UINT16_C( 5950), UINT16_C(31281), UINT16_C( 3725), UINT16_C(18405), UINT16_C(54553), UINT16_C(45902),
UINT16_C(32256), UINT16_C( 2168), UINT16_C(33022), UINT16_C( 9863), UINT16_C(12389), UINT16_C(60255), UINT16_C(33789), UINT16_C(33674),
UINT16_C(23266), UINT16_C( 8250), UINT16_C(27761), UINT16_C(65434), UINT16_C(32634), UINT16_C(37702), UINT16_C(37972), UINT16_C(21831) },
{ { UINT16_C(11162), UINT16_C(50480), UINT16_C(32775), UINT16_C(32519), UINT16_C(58663), UINT16_C(14761), UINT16_C(52613), UINT16_C(40740) },
{ UINT16_C(24198), UINT16_C(47056), UINT16_C( 5950), UINT16_C(31281), UINT16_C( 3725), UINT16_C(18405), UINT16_C(54553), UINT16_C(45902) },
{ UINT16_C(32256), UINT16_C( 2168), UINT16_C(33022), UINT16_C( 9863), UINT16_C(12389), UINT16_C(60255), UINT16_C(33789), UINT16_C(33674) },
{ UINT16_C(23266), UINT16_C( 8250), UINT16_C(27761), UINT16_C(65434), UINT16_C(32634), UINT16_C(37702), UINT16_C(37972), UINT16_C(21831) } },
},
{ { UINT16_C(48915), UINT16_C( 4445), UINT16_C(58431), UINT16_C(42295), UINT16_C(38677), UINT16_C( 4752), UINT16_C( 6682), UINT16_C(64662),
UINT16_C(53364), UINT16_C(58908), UINT16_C(46652), UINT16_C(47077), UINT16_C(11062), UINT16_C(35402), UINT16_C(37311), UINT16_C(53983),
UINT16_C(15441), UINT16_C(37092), UINT16_C( 6945), UINT16_C(13877), UINT16_C(50610), UINT16_C(52552), UINT16_C(57055), UINT16_C(21705),
UINT16_C(59055), UINT16_C(60218), UINT16_C( 8092), UINT16_C(53922), UINT16_C(60746), UINT16_C( 2397), UINT16_C(15486), UINT16_C(53212) },
{ { UINT16_C(48915), UINT16_C( 4445), UINT16_C(58431), UINT16_C(42295), UINT16_C(38677), UINT16_C( 4752), UINT16_C( 6682), UINT16_C(64662) },
{ UINT16_C(53364), UINT16_C(58908), UINT16_C(46652), UINT16_C(47077), UINT16_C(11062), UINT16_C(35402), UINT16_C(37311), UINT16_C(53983) },
{ UINT16_C(15441), UINT16_C(37092), UINT16_C( 6945), UINT16_C(13877), UINT16_C(50610), UINT16_C(52552), UINT16_C(57055), UINT16_C(21705) },
{ UINT16_C(59055), UINT16_C(60218), UINT16_C( 8092), UINT16_C(53922), UINT16_C(60746), UINT16_C( 2397), UINT16_C(15486), UINT16_C(53212) } },
},
{ { UINT16_C(49273), UINT16_C(39520), UINT16_C(38363), UINT16_C(36560), UINT16_C( 6235), UINT16_C(14939), UINT16_C( 9463), UINT16_C(42638),
UINT16_C(51210), UINT16_C(42897), UINT16_C(13543), UINT16_C(12665), UINT16_C(54817), UINT16_C(40763), UINT16_C( 5907), UINT16_C(35951),
UINT16_C(53207), UINT16_C(45606), UINT16_C(63076), UINT16_C(48960), UINT16_C(39694), UINT16_C( 1530), UINT16_C(35008), UINT16_C(51883),
UINT16_C(15697), UINT16_C(14449), UINT16_C(60273), UINT16_C(37482), UINT16_C(42433), UINT16_C(54321), UINT16_C(41148), UINT16_C(37728) },
{ { UINT16_C(49273), UINT16_C(39520), UINT16_C(38363), UINT16_C(36560), UINT16_C( 6235), UINT16_C(14939), UINT16_C( 9463), UINT16_C(42638) },
{ UINT16_C(51210), UINT16_C(42897), UINT16_C(13543), UINT16_C(12665), UINT16_C(54817), UINT16_C(40763), UINT16_C( 5907), UINT16_C(35951) },
{ UINT16_C(53207), UINT16_C(45606), UINT16_C(63076), UINT16_C(48960), UINT16_C(39694), UINT16_C( 1530), UINT16_C(35008), UINT16_C(51883) },
{ UINT16_C(15697), UINT16_C(14449), UINT16_C(60273), UINT16_C(37482), UINT16_C(42433), UINT16_C(54321), UINT16_C(41148), UINT16_C(37728) } },
},
{ { UINT16_C(34415), UINT16_C(54341), UINT16_C(34428), UINT16_C(35731), UINT16_C(36129), UINT16_C(57744), UINT16_C(15382), UINT16_C(26540),
UINT16_C( 7545), UINT16_C(60063), UINT16_C( 2312), UINT16_C(51836), UINT16_C(44462), UINT16_C(27294), UINT16_C(65358), UINT16_C(48637),
UINT16_C(17285), UINT16_C( 657), UINT16_C( 9673), UINT16_C(60045), UINT16_C( 7602), UINT16_C(51404), UINT16_C(30809), UINT16_C(53807),
UINT16_C(53141), UINT16_C(40636), UINT16_C(14552), UINT16_C(34664), UINT16_C( 1766), UINT16_C(13553), UINT16_C(61189), UINT16_C(35825) },
{ { UINT16_C(34415), UINT16_C(54341), UINT16_C(34428), UINT16_C(35731), UINT16_C(36129), UINT16_C(57744), UINT16_C(15382), UINT16_C(26540) },
{ UINT16_C( 7545), UINT16_C(60063), UINT16_C( 2312), UINT16_C(51836), UINT16_C(44462), UINT16_C(27294), UINT16_C(65358), UINT16_C(48637) },
{ UINT16_C(17285), UINT16_C( 657), UINT16_C( 9673), UINT16_C(60045), UINT16_C( 7602), UINT16_C(51404), UINT16_C(30809), UINT16_C(53807) },
{ UINT16_C(53141), UINT16_C(40636), UINT16_C(14552), UINT16_C(34664), UINT16_C( 1766), UINT16_C(13553), UINT16_C(61189), UINT16_C(35825) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint16x8x4_t r = simde_vld1q_u16_x4(test_vec[i].buf);
simde_uint16x8x4_t expected = {{
simde_vld1q_u16(test_vec[i].expected[0]),
simde_vld1q_u16(test_vec[i].expected[1]),
simde_vld1q_u16(test_vec[i].expected[2]),
simde_vld1q_u16(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_u16x8x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint16_t buf[32];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vu16(2, 32, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint16x8x4_t val = simde_vld1q_u16_x4(buf);
simde_test_arm_neon_write_u16x8x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u32_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint32_t buf[16];
uint32_t expected[4][4];
} test_vec[] = {
{ { UINT32_C(4220355378), UINT32_C(1524964008), UINT32_C(2435035447), UINT32_C(3210957353), UINT32_C(4200407073), UINT32_C(1048692056), UINT32_C(3513938635), UINT32_C(2472305761),
UINT32_C(2408507879), UINT32_C( 988378115), UINT32_C(1338706981), UINT32_C(2148413279), UINT32_C(2809817935), UINT32_C(4226218800), UINT32_C(3486275694), UINT32_C(2741184700) },
{ { UINT32_C(4220355378), UINT32_C(1524964008), UINT32_C(2435035447), UINT32_C(3210957353) },
{ UINT32_C(4200407073), UINT32_C(1048692056), UINT32_C(3513938635), UINT32_C(2472305761) },
{ UINT32_C(2408507879), UINT32_C( 988378115), UINT32_C(1338706981), UINT32_C(2148413279) },
{ UINT32_C(2809817935), UINT32_C(4226218800), UINT32_C(3486275694), UINT32_C(2741184700) } },
},
{ { UINT32_C( 338882833), UINT32_C(2337217637), UINT32_C(2279217704), UINT32_C(2550720585), UINT32_C(2202042963), UINT32_C(3967690366), UINT32_C(1002130302), UINT32_C(2245926515),
UINT32_C(1972965648), UINT32_C(1426122797), UINT32_C(1289607683), UINT32_C( 367388098), UINT32_C(3851953511), UINT32_C(3385923403), UINT32_C(3573845346), UINT32_C(3143295915) },
{ { UINT32_C( 338882833), UINT32_C(2337217637), UINT32_C(2279217704), UINT32_C(2550720585) },
{ UINT32_C(2202042963), UINT32_C(3967690366), UINT32_C(1002130302), UINT32_C(2245926515) },
{ UINT32_C(1972965648), UINT32_C(1426122797), UINT32_C(1289607683), UINT32_C( 367388098) },
{ UINT32_C(3851953511), UINT32_C(3385923403), UINT32_C(3573845346), UINT32_C(3143295915) } },
},
{ { UINT32_C( 556922100), UINT32_C(3749065180), UINT32_C(3459011340), UINT32_C(2699301176), UINT32_C(2173008950), UINT32_C(4115290003), UINT32_C(2412466148), UINT32_C( 642458930),
UINT32_C(4131879961), UINT32_C(3117792685), UINT32_C(1233649937), UINT32_C(1223257106), UINT32_C(2093576168), UINT32_C(2859537606), UINT32_C(2503556195), UINT32_C(2075886690) },
{ { UINT32_C( 556922100), UINT32_C(3749065180), UINT32_C(3459011340), UINT32_C(2699301176) },
{ UINT32_C(2173008950), UINT32_C(4115290003), UINT32_C(2412466148), UINT32_C( 642458930) },
{ UINT32_C(4131879961), UINT32_C(3117792685), UINT32_C(1233649937), UINT32_C(1223257106) },
{ UINT32_C(2093576168), UINT32_C(2859537606), UINT32_C(2503556195), UINT32_C(2075886690) } },
},
{ { UINT32_C(2926641664), UINT32_C(3496429503), UINT32_C(1528491848), UINT32_C(1151533915), UINT32_C( 952135026), UINT32_C(3840029057), UINT32_C(3497598062), UINT32_C(2706060448),
UINT32_C(4115643702), UINT32_C(1288091140), UINT32_C( 27779238), UINT32_C(1447381987), UINT32_C( 965608888), UINT32_C(2770170167), UINT32_C( 762680973), UINT32_C( 13549770) },
{ { UINT32_C(2926641664), UINT32_C(3496429503), UINT32_C(1528491848), UINT32_C(1151533915) },
{ UINT32_C( 952135026), UINT32_C(3840029057), UINT32_C(3497598062), UINT32_C(2706060448) },
{ UINT32_C(4115643702), UINT32_C(1288091140), UINT32_C( 27779238), UINT32_C(1447381987) },
{ UINT32_C( 965608888), UINT32_C(2770170167), UINT32_C( 762680973), UINT32_C( 13549770) } },
},
{ { UINT32_C(2180324733), UINT32_C(2060368852), UINT32_C(2138797467), UINT32_C(2027274688), UINT32_C(4256261062), UINT32_C(1638059732), UINT32_C( 781129572), UINT32_C(1429102040),
UINT32_C(1339499643), UINT32_C(2076812767), UINT32_C(3690611738), UINT32_C(3428044549), UINT32_C( 130614578), UINT32_C( 946367699), UINT32_C(1533474691), UINT32_C(3501299029) },
{ { UINT32_C(2180324733), UINT32_C(2060368852), UINT32_C(2138797467), UINT32_C(2027274688) },
{ UINT32_C(4256261062), UINT32_C(1638059732), UINT32_C( 781129572), UINT32_C(1429102040) },
{ UINT32_C(1339499643), UINT32_C(2076812767), UINT32_C(3690611738), UINT32_C(3428044549) },
{ UINT32_C( 130614578), UINT32_C( 946367699), UINT32_C(1533474691), UINT32_C(3501299029) } },
},
{ { UINT32_C(2552203449), UINT32_C(1192486957), UINT32_C( 841092396), UINT32_C( 268334812), UINT32_C(1310115707), UINT32_C(3079044659), UINT32_C(3407015286), UINT32_C(1000063874),
UINT32_C(2027141707), UINT32_C(3468748706), UINT32_C(3506496244), UINT32_C(3554737752), UINT32_C(4179818182), UINT32_C(3937446004), UINT32_C( 397788053), UINT32_C(3528609926) },
{ { UINT32_C(2552203449), UINT32_C(1192486957), UINT32_C( 841092396), UINT32_C( 268334812) },
{ UINT32_C(1310115707), UINT32_C(3079044659), UINT32_C(3407015286), UINT32_C(1000063874) },
{ UINT32_C(2027141707), UINT32_C(3468748706), UINT32_C(3506496244), UINT32_C(3554737752) },
{ UINT32_C(4179818182), UINT32_C(3937446004), UINT32_C( 397788053), UINT32_C(3528609926) } },
},
{ { UINT32_C(2890540554), UINT32_C( 24840717), UINT32_C(1171422189), UINT32_C(1075425914), UINT32_C( 490290088), UINT32_C(2030562019), UINT32_C( 865123757), UINT32_C( 403038989),
UINT32_C( 381964297), UINT32_C(1192705882), UINT32_C( 898493115), UINT32_C(1165338268), UINT32_C(3294801633), UINT32_C(1161652632), UINT32_C( 880397862), UINT32_C(3125575345) },
{ { UINT32_C(2890540554), UINT32_C( 24840717), UINT32_C(1171422189), UINT32_C(1075425914) },
{ UINT32_C( 490290088), UINT32_C(2030562019), UINT32_C( 865123757), UINT32_C( 403038989) },
{ UINT32_C( 381964297), UINT32_C(1192705882), UINT32_C( 898493115), UINT32_C(1165338268) },
{ UINT32_C(3294801633), UINT32_C(1161652632), UINT32_C( 880397862), UINT32_C(3125575345) } },
},
{ { UINT32_C( 701501646), UINT32_C( 191948624), UINT32_C(1849753041), UINT32_C(2226369955), UINT32_C(4232648035), UINT32_C(2772534910), UINT32_C( 98155092), UINT32_C( 129967417),
UINT32_C(2234552117), UINT32_C(1217438071), UINT32_C(1119277214), UINT32_C(3922094469), UINT32_C(4259647358), UINT32_C(3936495254), UINT32_C( 451967969), UINT32_C(3575754656) },
{ { UINT32_C( 701501646), UINT32_C( 191948624), UINT32_C(1849753041), UINT32_C(2226369955) },
{ UINT32_C(4232648035), UINT32_C(2772534910), UINT32_C( 98155092), UINT32_C( 129967417) },
{ UINT32_C(2234552117), UINT32_C(1217438071), UINT32_C(1119277214), UINT32_C(3922094469) },
{ UINT32_C(4259647358), UINT32_C(3936495254), UINT32_C( 451967969), UINT32_C(3575754656) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint32x4x4_t r = simde_vld1q_u32_x4(test_vec[i].buf);
simde_uint32x4x4_t expected = {{
simde_vld1q_u32(test_vec[i].expected[0]),
simde_vld1q_u32(test_vec[i].expected[1]),
simde_vld1q_u32(test_vec[i].expected[2]),
simde_vld1q_u32(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_u32x4x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint32_t buf[16];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vu32(2, 16, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint32x4x4_t val = simde_vld1q_u32_x4(buf);
simde_test_arm_neon_write_u32x4x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_u64_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
uint64_t buf[8];
uint64_t expected[4][2];
} test_vec[] = {
{ { UINT64_C(10520105211553075775), UINT64_C(11325033667720623548), UINT64_C( 1669212815587151785), UINT64_C( 588936675983432375),
UINT64_C( 3398455697992484772), UINT64_C( 4624523463350090866), UINT64_C(13472422644418594730), UINT64_C( 2275793887074265283) },
{ { UINT64_C(10520105211553075775), UINT64_C(11325033667720623548) },
{ UINT64_C( 1669212815587151785), UINT64_C( 588936675983432375) },
{ UINT64_C( 3398455697992484772), UINT64_C( 4624523463350090866) },
{ UINT64_C(13472422644418594730), UINT64_C( 2275793887074265283) } },
},
{ { UINT64_C( 9468783106140361925), UINT64_C( 2140126212038842588), UINT64_C(11513159822878847496), UINT64_C(15832617892335900702),
UINT64_C( 3218520463597924118), UINT64_C( 568670707163053395), UINT64_C(17654350058345456260), UINT64_C( 334189888231320753) },
{ { UINT64_C( 9468783106140361925), UINT64_C( 2140126212038842588) },
{ UINT64_C(11513159822878847496), UINT64_C(15832617892335900702) },
{ UINT64_C( 3218520463597924118), UINT64_C( 568670707163053395) },
{ UINT64_C(17654350058345456260), UINT64_C( 334189888231320753) } },
},
{ { UINT64_C( 9670025760746485686), UINT64_C(12076455330113704339), UINT64_C( 3953888369104694034), UINT64_C( 7721317885515034164),
UINT64_C(13479453079236596568), UINT64_C(11547200365892820340), UINT64_C( 9461052705600063377), UINT64_C( 4897892105837759191) },
{ { UINT64_C( 9670025760746485686), UINT64_C(12076455330113704339) },
{ UINT64_C( 3953888369104694034), UINT64_C( 7721317885515034164) },
{ UINT64_C(13479453079236596568), UINT64_C(11547200365892820340) },
{ UINT64_C( 9461052705600063377), UINT64_C( 4897892105837759191) } },
},
{ { UINT64_C( 9297081154430462241), UINT64_C(14441170676760531515), UINT64_C( 3778849240485131167), UINT64_C( 550768354068011125),
UINT64_C(10137696568385499682), UINT64_C(13882273429082982823), UINT64_C( 2756801866731783857), UINT64_C(15935192038703039032) },
{ { UINT64_C( 9297081154430462241), UINT64_C(14441170676760531515) },
{ UINT64_C( 3778849240485131167), UINT64_C( 550768354068011125) },
{ UINT64_C(10137696568385499682), UINT64_C(13882273429082982823) },
{ UINT64_C( 2756801866731783857), UINT64_C(15935192038703039032) } },
},
{ { UINT64_C( 8249676201510860190), UINT64_C( 4713291409720988038), UINT64_C( 7950701854093940351), UINT64_C(12118255355189583508),
UINT64_C( 8819197012572911655), UINT64_C( 3366311732671854309), UINT64_C( 3190154479603156640), UINT64_C(12269396943548699282) },
{ { UINT64_C( 8249676201510860190), UINT64_C( 4713291409720988038) },
{ UINT64_C( 7950701854093940351), UINT64_C(12118255355189583508) },
{ UINT64_C( 8819197012572911655), UINT64_C( 3366311732671854309) },
{ UINT64_C( 3190154479603156640), UINT64_C(12269396943548699282) } },
},
{ { UINT64_C(15442282310449028575), UINT64_C(11138532152387072183), UINT64_C( 4165187156688630281), UINT64_C(14895403906566015113),
UINT64_C( 846659502439814135), UINT64_C( 1726010116394781536), UINT64_C(12022225192063952631), UINT64_C(13730747145541299407) },
{ { UINT64_C(15442282310449028575), UINT64_C(11138532152387072183) },
{ UINT64_C( 4165187156688630281), UINT64_C(14895403906566015113) },
{ UINT64_C( 846659502439814135), UINT64_C( 1726010116394781536) },
{ UINT64_C(12022225192063952631), UINT64_C(13730747145541299407) } },
},
{ { UINT64_C( 9159589500767645629), UINT64_C(10058452855462399601), UINT64_C(11958746780996816691), UINT64_C(14930259676739381677),
UINT64_C(12735614868865014047), UINT64_C(10929328529060370060), UINT64_C( 9480322230277166357), UINT64_C( 317831310535554183) },
{ { UINT64_C( 9159589500767645629), UINT64_C(10058452855462399601) },
{ UINT64_C(11958746780996816691), UINT64_C(14930259676739381677) },
{ UINT64_C(12735614868865014047), UINT64_C(10929328529060370060) },
{ UINT64_C( 9480322230277166357), UINT64_C( 317831310535554183) } },
},
{ { UINT64_C(15416666259768625667), UINT64_C(18343902254248305302), UINT64_C(16199582379334531703), UINT64_C(17534452820529039214),
UINT64_C( 3407863282125936942), UINT64_C( 6427407297934934347), UINT64_C( 247265414267411254), UINT64_C(18023877176664188989) },
{ { UINT64_C(15416666259768625667), UINT64_C(18343902254248305302) },
{ UINT64_C(16199582379334531703), UINT64_C(17534452820529039214) },
{ UINT64_C( 3407863282125936942), UINT64_C( 6427407297934934347) },
{ UINT64_C( 247265414267411254), UINT64_C(18023877176664188989) } },
},
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_uint64x2x4_t r = simde_vld1q_u64_x4(test_vec[i].buf);
simde_uint64x2x4_t expected = {{
simde_vld1q_u64(test_vec[i].expected[0]),
simde_vld1q_u64(test_vec[i].expected[1]),
simde_vld1q_u64(test_vec[i].expected[2]),
simde_vld1q_u64(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_u64x2x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
uint64_t buf[8];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vu64(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_uint64x2x4_t val = simde_vld1q_u64_x4(buf);
simde_test_arm_neon_write_u64x2x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_p8_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
SIMDE_ALIGN_TO_16 simde_poly8_t buf[64];
SIMDE_ALIGN_TO_16 simde_poly8_t expected[4][16];
} test_vec[] = {
{ { SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 175), SIMDE_POLY8_C( 237), SIMDE_POLY8_C( 214),
SIMDE_POLY8_C( 190), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 23),
SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 111),
SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 213), SIMDE_POLY8_C( 99),
SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 250),
SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 173), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 111),
SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 140),
SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 167), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 107),
SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 100), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 183),
SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 107), SIMDE_POLY8_C( 210),
SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 117),
SIMDE_POLY8_C( 211), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 120), SIMDE_POLY8_C( 222),
SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 119),
SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 179), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 62),
SIMDE_POLY8_C( 233), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 248),
SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 88) },
{ { SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 175), SIMDE_POLY8_C( 237), SIMDE_POLY8_C( 214),
SIMDE_POLY8_C( 190), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 23),
SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 116), SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 111),
SIMDE_POLY8_C( 216), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 213), SIMDE_POLY8_C( 99) },
{ SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 250),
SIMDE_POLY8_C( 253), SIMDE_POLY8_C( 173), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 111),
SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 140),
SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 167), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 107) },
{ SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 100), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 183),
SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 107), SIMDE_POLY8_C( 210),
SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 117),
SIMDE_POLY8_C( 211), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 120), SIMDE_POLY8_C( 222) },
{ SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 119),
SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 179), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 62),
SIMDE_POLY8_C( 233), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 248),
SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 126), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 88) } } },
{ { SIMDE_POLY8_C( 157), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 188),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 252),
SIMDE_POLY8_C( 203), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 208), SIMDE_POLY8_C( 197),
SIMDE_POLY8_C( 245), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 69),
SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 178), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 64),
SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 155), SIMDE_POLY8_C( 247),
SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 133), SIMDE_POLY8_C( 171),
SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 143),
SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 239), SIMDE_POLY8_C( 250), SIMDE_POLY8_C( 151),
SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 236),
SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 220),
SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 215),
SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 36),
SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 124),
SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 129), SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 67) },
{ { SIMDE_POLY8_C( 157), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 9), SIMDE_POLY8_C( 188),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 252),
SIMDE_POLY8_C( 203), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 208), SIMDE_POLY8_C( 197),
SIMDE_POLY8_C( 245), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 69) },
{ SIMDE_POLY8_C( 181), SIMDE_POLY8_C( 178), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 64),
SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 155), SIMDE_POLY8_C( 247),
SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 133), SIMDE_POLY8_C( 171),
SIMDE_POLY8_C( 54), SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 81) },
{ SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 224), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 143),
SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 239), SIMDE_POLY8_C( 250), SIMDE_POLY8_C( 151),
SIMDE_POLY8_C( 71), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 236),
SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 7), SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 220) },
{ SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 118), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 215),
SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 36),
SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 124),
SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 129), SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 67) } } },
{ { SIMDE_POLY8_C( 119), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 19),
SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 128),
SIMDE_POLY8_C( 207), SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 187),
SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 174),
SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 156),
SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 162), SIMDE_POLY8_C( 244),
SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 145), SIMDE_POLY8_C( 219),
SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 213), SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 190),
SIMDE_POLY8_C( 233), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 136),
SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 206),
SIMDE_POLY8_C( 112), SIMDE_POLY8_C( 172), SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 100),
SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 194), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 181),
SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 253) },
{ { SIMDE_POLY8_C( 119), SIMDE_POLY8_C( 241), SIMDE_POLY8_C( 4), SIMDE_POLY8_C( 19),
SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 128),
SIMDE_POLY8_C( 207), SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 187),
SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 174) },
{ SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 121), SIMDE_POLY8_C( 32), SIMDE_POLY8_C( 156),
SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 81),
SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 162), SIMDE_POLY8_C( 244),
SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 178) },
{ SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 145), SIMDE_POLY8_C( 219),
SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 213), SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 190),
SIMDE_POLY8_C( 233), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 136),
SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 75), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 206) },
{ SIMDE_POLY8_C( 112), SIMDE_POLY8_C( 172), SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 100),
SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 194), SIMDE_POLY8_C( 50), SIMDE_POLY8_C( 181),
SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 253) } } },
{ { SIMDE_POLY8_C( 239), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 73),
SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 140), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 144),
SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 207),
SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 207), SIMDE_POLY8_C( 142),
SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C( 132), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 129), SIMDE_POLY8_C( 236),
SIMDE_POLY8_C( 170), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 209),
SIMDE_POLY8_C( 131), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 26),
SIMDE_POLY8_C( 185), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 14),
SIMDE_POLY8_C( 103), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 218),
SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 139),
SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 45),
SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 244),
SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 140),
SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 93),
SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 241) },
{ { SIMDE_POLY8_C( 239), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 73),
SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 140), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 144),
SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 8), SIMDE_POLY8_C( 207),
SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 207), SIMDE_POLY8_C( 142) },
{ SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C( 132), SIMDE_POLY8_C( 62), SIMDE_POLY8_C( 129), SIMDE_POLY8_C( 236),
SIMDE_POLY8_C( 170), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 209),
SIMDE_POLY8_C( 131), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 61), SIMDE_POLY8_C( 26) },
{ SIMDE_POLY8_C( 185), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 14),
SIMDE_POLY8_C( 103), SIMDE_POLY8_C( 16), SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 218),
SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 139),
SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 45) },
{ SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 90), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 244),
SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 140),
SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 93),
SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 147), SIMDE_POLY8_C( 241) } } },
{ { SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 250), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 209),
SIMDE_POLY8_C( 155), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 205),
SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 243), SIMDE_POLY8_C( 135),
SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 160),
SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 136),
SIMDE_POLY8_C( 201), SIMDE_POLY8_C( 157), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 119),
SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 225),
SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 191), SIMDE_POLY8_C( 190),
SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 40),
SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 119),
SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 90),
SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 185), SIMDE_POLY8_C( 127), SIMDE_POLY8_C( 246),
SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 138),
SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 54),
SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 240), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 253) },
{ { SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 250), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 209),
SIMDE_POLY8_C( 155), SIMDE_POLY8_C( 109), SIMDE_POLY8_C( 113), SIMDE_POLY8_C( 205),
SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 138), SIMDE_POLY8_C( 243), SIMDE_POLY8_C( 135),
SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 160) },
{ SIMDE_POLY8_C( 152), SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 136),
SIMDE_POLY8_C( 201), SIMDE_POLY8_C( 157), SIMDE_POLY8_C( 166), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 119),
SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 6), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 225) },
{ SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 191), SIMDE_POLY8_C( 190),
SIMDE_POLY8_C( 154), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 40),
SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 150), SIMDE_POLY8_C( 119),
SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 90) },
{ SIMDE_POLY8_C( 47), SIMDE_POLY8_C( 185), SIMDE_POLY8_C( 127), SIMDE_POLY8_C( 246),
SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 149), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 138),
SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 202), SIMDE_POLY8_C( 54),
SIMDE_POLY8_C( 199), SIMDE_POLY8_C( 240), SIMDE_POLY8_C( 13), SIMDE_POLY8_C( 253) } } },
{ { SIMDE_POLY8_C( 208), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 76),
SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 143),
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 234), SIMDE_POLY8_C( 250),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 104),
SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 200), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 41),
SIMDE_POLY8_C( 195), SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 57),
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 69),
SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 145), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 205),
SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 146), SIMDE_POLY8_C( 141),
SIMDE_POLY8_C( 167), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 79),
SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 213), SIMDE_POLY8_C( 210),
SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 36),
SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 198) },
{ { SIMDE_POLY8_C( 208), SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 76),
SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 83), SIMDE_POLY8_C( 143),
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 139), SIMDE_POLY8_C( 234), SIMDE_POLY8_C( 250),
SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 177), SIMDE_POLY8_C( 104) },
{ SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 200), SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 41),
SIMDE_POLY8_C( 195), SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 42), SIMDE_POLY8_C( 106), SIMDE_POLY8_C( 117), SIMDE_POLY8_C( 57),
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 93), SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 69) },
{ SIMDE_POLY8_C( 151), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 178),
SIMDE_POLY8_C( 145), SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 205),
SIMDE_POLY8_C( 57), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 146), SIMDE_POLY8_C( 141) },
{ SIMDE_POLY8_C( 167), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 79),
SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 229), SIMDE_POLY8_C( 213), SIMDE_POLY8_C( 210),
SIMDE_POLY8_C( 171), SIMDE_POLY8_C( 160), SIMDE_POLY8_C( 105), SIMDE_POLY8_C( 36),
SIMDE_POLY8_C( 186), SIMDE_POLY8_C( 236), SIMDE_POLY8_C( 65), SIMDE_POLY8_C( 198) } } },
{ { SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 92),
SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 112), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 151),
SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 223), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 76),
SIMDE_POLY8_C( 250), SIMDE_POLY8_C( 223), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 49),
SIMDE_POLY8_C( 30), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 210),
SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 254),
SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 128),
SIMDE_POLY8_C( 242), SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 58),
SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 149),
SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 232),
SIMDE_POLY8_C( 119), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 237),
SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 185), SIMDE_POLY8_C( 46),
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 228), SIMDE_POLY8_C( 219), SIMDE_POLY8_C( 140),
SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 203), SIMDE_POLY8_C( 87),
SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 43) },
{ { SIMDE_POLY8_C( 235), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 58), SIMDE_POLY8_C( 92),
SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 112), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 151),
SIMDE_POLY8_C( 248), SIMDE_POLY8_C( 134), SIMDE_POLY8_C( 223), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 226), SIMDE_POLY8_C( 81), SIMDE_POLY8_C( 76) },
{ SIMDE_POLY8_C( 250), SIMDE_POLY8_C( 223), SIMDE_POLY8_C( 254), SIMDE_POLY8_C( 49),
SIMDE_POLY8_C( 30), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 111), SIMDE_POLY8_C( 210),
SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 254),
SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 182), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 128) },
{ SIMDE_POLY8_C( 242), SIMDE_POLY8_C( 125), SIMDE_POLY8_C( 218), SIMDE_POLY8_C( 58),
SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 102), SIMDE_POLY8_C( 180), SIMDE_POLY8_C( 149),
SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 41), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 232),
SIMDE_POLY8_C( 119), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 237) },
{ SIMDE_POLY8_C( 80), SIMDE_POLY8_C( 163), SIMDE_POLY8_C( 185), SIMDE_POLY8_C( 46),
SIMDE_POLY8_C( 215), SIMDE_POLY8_C( 228), SIMDE_POLY8_C( 219), SIMDE_POLY8_C( 140),
SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 203), SIMDE_POLY8_C( 87),
SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 43) } } },
{ { SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 244), SIMDE_POLY8_C( 253),
SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 212),
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 77),
SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 146), SIMDE_POLY8_C( 154),
SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 176), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 16),
SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 108), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 114),
SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 87),
SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 185),
SIMDE_POLY8_C( 244), SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 70),
SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 76),
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 245),
SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 137), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 194),
SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 104),
SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 17),
SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 114) },
{ { SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 165), SIMDE_POLY8_C( 244), SIMDE_POLY8_C( 253),
SIMDE_POLY8_C( 197), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 84), SIMDE_POLY8_C( 212),
SIMDE_POLY8_C( 141), SIMDE_POLY8_C( 135), SIMDE_POLY8_C( 10), SIMDE_POLY8_C( 77),
SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 146), SIMDE_POLY8_C( 154) },
{ SIMDE_POLY8_C( 56), SIMDE_POLY8_C( 143), SIMDE_POLY8_C( 198), SIMDE_POLY8_C( 74),
SIMDE_POLY8_C( 31), SIMDE_POLY8_C( 176), SIMDE_POLY8_C( 183), SIMDE_POLY8_C( 16),
SIMDE_POLY8_C( 88), SIMDE_POLY8_C( 108), SIMDE_POLY8_C( 247), SIMDE_POLY8_C( 114),
SIMDE_POLY8_C( 130), SIMDE_POLY8_C( 225), SIMDE_POLY8_C( 220), SIMDE_POLY8_C( 87) },
{ SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 144), SIMDE_POLY8_C( 115), SIMDE_POLY8_C( 185),
SIMDE_POLY8_C( 244), SIMDE_POLY8_C( 114), SIMDE_POLY8_C( 193), SIMDE_POLY8_C( 70),
SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 101), SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 76),
SIMDE_POLY8_C( 231), SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 174), SIMDE_POLY8_C( 245) },
{ SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 137), SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 194),
SIMDE_POLY8_C( 230), SIMDE_POLY8_C( 192), SIMDE_POLY8_C( 217), SIMDE_POLY8_C( 104),
SIMDE_POLY8_C( 29), SIMDE_POLY8_C( 169), SIMDE_POLY8_C( 246), SIMDE_POLY8_C( 17),
SIMDE_POLY8_C( 209), SIMDE_POLY8_C( 85), SIMDE_POLY8_C( 123), SIMDE_POLY8_C( 114) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
SIMDE_ALIGN_TO_16 simde_poly8x16x4_t r = simde_vld1q_p8_x4(test_vec[i].buf);
SIMDE_ALIGN_TO_16 simde_poly8x16x4_t expected = {{
simde_vld1q_p8(test_vec[i].expected[0]),
simde_vld1q_p8(test_vec[i].expected[1]),
simde_vld1q_p8(test_vec[i].expected[2]),
simde_vld1q_p8(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_p8x16x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_poly8_t buf[64];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vp8(2, 64, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_poly8x16x4_t val = simde_vld1q_p8_x4(buf);
simde_test_arm_neon_write_p8x16x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_p16_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
SIMDE_ALIGN_TO_16 simde_poly16_t buf[32];
SIMDE_ALIGN_TO_16 simde_poly16_t expected[4][8];
} test_vec[] = {
{ { SIMDE_POLY16_C( 9211), SIMDE_POLY16_C( 39452), SIMDE_POLY16_C( 4935), SIMDE_POLY16_C( 15539),
SIMDE_POLY16_C( 48549), SIMDE_POLY16_C( 42965), SIMDE_POLY16_C( 61226), SIMDE_POLY16_C( 34775),
SIMDE_POLY16_C( 9725), SIMDE_POLY16_C( 3147), SIMDE_POLY16_C( 51032), SIMDE_POLY16_C( 55478),
SIMDE_POLY16_C( 62541), SIMDE_POLY16_C( 38304), SIMDE_POLY16_C( 34081), SIMDE_POLY16_C( 20991),
SIMDE_POLY16_C( 7737), SIMDE_POLY16_C( 34597), SIMDE_POLY16_C( 59596), SIMDE_POLY16_C( 5318),
SIMDE_POLY16_C( 35020), SIMDE_POLY16_C( 42516), SIMDE_POLY16_C( 42605), SIMDE_POLY16_C( 5246),
SIMDE_POLY16_C( 22217), SIMDE_POLY16_C( 53797), SIMDE_POLY16_C( 26936), SIMDE_POLY16_C( 38455),
SIMDE_POLY16_C( 62563), SIMDE_POLY16_C( 20249), SIMDE_POLY16_C( 52279), SIMDE_POLY16_C( 54173) },
{ { SIMDE_POLY16_C( 9211), SIMDE_POLY16_C( 39452), SIMDE_POLY16_C( 4935), SIMDE_POLY16_C( 15539),
SIMDE_POLY16_C( 48549), SIMDE_POLY16_C( 42965), SIMDE_POLY16_C( 61226), SIMDE_POLY16_C( 34775) },
{ SIMDE_POLY16_C( 9725), SIMDE_POLY16_C( 3147), SIMDE_POLY16_C( 51032), SIMDE_POLY16_C( 55478),
SIMDE_POLY16_C( 62541), SIMDE_POLY16_C( 38304), SIMDE_POLY16_C( 34081), SIMDE_POLY16_C( 20991) },
{ SIMDE_POLY16_C( 7737), SIMDE_POLY16_C( 34597), SIMDE_POLY16_C( 59596), SIMDE_POLY16_C( 5318),
SIMDE_POLY16_C( 35020), SIMDE_POLY16_C( 42516), SIMDE_POLY16_C( 42605), SIMDE_POLY16_C( 5246) },
{ SIMDE_POLY16_C( 22217), SIMDE_POLY16_C( 53797), SIMDE_POLY16_C( 26936), SIMDE_POLY16_C( 38455),
SIMDE_POLY16_C( 62563), SIMDE_POLY16_C( 20249), SIMDE_POLY16_C( 52279), SIMDE_POLY16_C( 54173) } } },
{ { SIMDE_POLY16_C( 57377), SIMDE_POLY16_C( 27181), SIMDE_POLY16_C( 64446), SIMDE_POLY16_C( 8160),
SIMDE_POLY16_C( 64885), SIMDE_POLY16_C( 42693), SIMDE_POLY16_C( 29020), SIMDE_POLY16_C( 31081),
SIMDE_POLY16_C( 64073), SIMDE_POLY16_C( 55128), SIMDE_POLY16_C( 55382), SIMDE_POLY16_C( 62642),
SIMDE_POLY16_C( 37174), SIMDE_POLY16_C( 5095), SIMDE_POLY16_C( 30611), SIMDE_POLY16_C( 64105),
SIMDE_POLY16_C( 57623), SIMDE_POLY16_C( 37393), SIMDE_POLY16_C( 29223), SIMDE_POLY16_C( 12888),
SIMDE_POLY16_C( 36880), SIMDE_POLY16_C( 60664), SIMDE_POLY16_C( 60759), SIMDE_POLY16_C( 54490),
SIMDE_POLY16_C( 51568), SIMDE_POLY16_C( 1624), SIMDE_POLY16_C( 50818), SIMDE_POLY16_C( 14003),
SIMDE_POLY16_C( 64849), SIMDE_POLY16_C( 43105), SIMDE_POLY16_C( 27288), SIMDE_POLY16_C( 39589) },
{ { SIMDE_POLY16_C( 57377), SIMDE_POLY16_C( 27181), SIMDE_POLY16_C( 64446), SIMDE_POLY16_C( 8160),
SIMDE_POLY16_C( 64885), SIMDE_POLY16_C( 42693), SIMDE_POLY16_C( 29020), SIMDE_POLY16_C( 31081) },
{ SIMDE_POLY16_C( 64073), SIMDE_POLY16_C( 55128), SIMDE_POLY16_C( 55382), SIMDE_POLY16_C( 62642),
SIMDE_POLY16_C( 37174), SIMDE_POLY16_C( 5095), SIMDE_POLY16_C( 30611), SIMDE_POLY16_C( 64105) },
{ SIMDE_POLY16_C( 57623), SIMDE_POLY16_C( 37393), SIMDE_POLY16_C( 29223), SIMDE_POLY16_C( 12888),
SIMDE_POLY16_C( 36880), SIMDE_POLY16_C( 60664), SIMDE_POLY16_C( 60759), SIMDE_POLY16_C( 54490) },
{ SIMDE_POLY16_C( 51568), SIMDE_POLY16_C( 1624), SIMDE_POLY16_C( 50818), SIMDE_POLY16_C( 14003),
SIMDE_POLY16_C( 64849), SIMDE_POLY16_C( 43105), SIMDE_POLY16_C( 27288), SIMDE_POLY16_C( 39589) } } },
{ { SIMDE_POLY16_C( 22885), SIMDE_POLY16_C( 9193), SIMDE_POLY16_C( 42669), SIMDE_POLY16_C( 48457),
SIMDE_POLY16_C( 24273), SIMDE_POLY16_C( 63157), SIMDE_POLY16_C( 49338), SIMDE_POLY16_C( 33741),
SIMDE_POLY16_C( 64092), SIMDE_POLY16_C( 34683), SIMDE_POLY16_C( 27886), SIMDE_POLY16_C( 33101),
SIMDE_POLY16_C( 62103), SIMDE_POLY16_C( 32975), SIMDE_POLY16_C( 64112), SIMDE_POLY16_C( 759),
SIMDE_POLY16_C( 16051), SIMDE_POLY16_C( 63406), SIMDE_POLY16_C( 697), SIMDE_POLY16_C( 62169),
SIMDE_POLY16_C( 36599), SIMDE_POLY16_C( 58674), SIMDE_POLY16_C( 64649), SIMDE_POLY16_C( 11150),
SIMDE_POLY16_C( 13996), SIMDE_POLY16_C( 21952), SIMDE_POLY16_C( 53055), SIMDE_POLY16_C( 29660),
SIMDE_POLY16_C( 21646), SIMDE_POLY16_C( 59671), SIMDE_POLY16_C( 54186), SIMDE_POLY16_C( 22229) },
{ { SIMDE_POLY16_C( 22885), SIMDE_POLY16_C( 9193), SIMDE_POLY16_C( 42669), SIMDE_POLY16_C( 48457),
SIMDE_POLY16_C( 24273), SIMDE_POLY16_C( 63157), SIMDE_POLY16_C( 49338), SIMDE_POLY16_C( 33741) },
{ SIMDE_POLY16_C( 64092), SIMDE_POLY16_C( 34683), SIMDE_POLY16_C( 27886), SIMDE_POLY16_C( 33101),
SIMDE_POLY16_C( 62103), SIMDE_POLY16_C( 32975), SIMDE_POLY16_C( 64112), SIMDE_POLY16_C( 759) },
{ SIMDE_POLY16_C( 16051), SIMDE_POLY16_C( 63406), SIMDE_POLY16_C( 697), SIMDE_POLY16_C( 62169),
SIMDE_POLY16_C( 36599), SIMDE_POLY16_C( 58674), SIMDE_POLY16_C( 64649), SIMDE_POLY16_C( 11150) },
{ SIMDE_POLY16_C( 13996), SIMDE_POLY16_C( 21952), SIMDE_POLY16_C( 53055), SIMDE_POLY16_C( 29660),
SIMDE_POLY16_C( 21646), SIMDE_POLY16_C( 59671), SIMDE_POLY16_C( 54186), SIMDE_POLY16_C( 22229) } } },
{ { SIMDE_POLY16_C( 5398), SIMDE_POLY16_C( 23804), SIMDE_POLY16_C( 13577), SIMDE_POLY16_C( 21473),
SIMDE_POLY16_C( 60753), SIMDE_POLY16_C( 41456), SIMDE_POLY16_C( 6042), SIMDE_POLY16_C( 51993),
SIMDE_POLY16_C( 24249), SIMDE_POLY16_C( 18986), SIMDE_POLY16_C( 31377), SIMDE_POLY16_C( 17037),
SIMDE_POLY16_C( 2368), SIMDE_POLY16_C( 14280), SIMDE_POLY16_C( 2148), SIMDE_POLY16_C( 27191),
SIMDE_POLY16_C( 36932), SIMDE_POLY16_C( 33038), SIMDE_POLY16_C( 13186), SIMDE_POLY16_C( 31448),
SIMDE_POLY16_C( 35102), SIMDE_POLY16_C( 34202), SIMDE_POLY16_C( 10565), SIMDE_POLY16_C( 7769),
SIMDE_POLY16_C( 45014), SIMDE_POLY16_C( 27739), SIMDE_POLY16_C( 50651), SIMDE_POLY16_C( 39667),
SIMDE_POLY16_C( 18123), SIMDE_POLY16_C( 892), SIMDE_POLY16_C( 6979), SIMDE_POLY16_C( 36040) },
{ { SIMDE_POLY16_C( 5398), SIMDE_POLY16_C( 23804), SIMDE_POLY16_C( 13577), SIMDE_POLY16_C( 21473),
SIMDE_POLY16_C( 60753), SIMDE_POLY16_C( 41456), SIMDE_POLY16_C( 6042), SIMDE_POLY16_C( 51993) },
{ SIMDE_POLY16_C( 24249), SIMDE_POLY16_C( 18986), SIMDE_POLY16_C( 31377), SIMDE_POLY16_C( 17037),
SIMDE_POLY16_C( 2368), SIMDE_POLY16_C( 14280), SIMDE_POLY16_C( 2148), SIMDE_POLY16_C( 27191) },
{ SIMDE_POLY16_C( 36932), SIMDE_POLY16_C( 33038), SIMDE_POLY16_C( 13186), SIMDE_POLY16_C( 31448),
SIMDE_POLY16_C( 35102), SIMDE_POLY16_C( 34202), SIMDE_POLY16_C( 10565), SIMDE_POLY16_C( 7769) },
{ SIMDE_POLY16_C( 45014), SIMDE_POLY16_C( 27739), SIMDE_POLY16_C( 50651), SIMDE_POLY16_C( 39667),
SIMDE_POLY16_C( 18123), SIMDE_POLY16_C( 892), SIMDE_POLY16_C( 6979), SIMDE_POLY16_C( 36040) } } },
{ { SIMDE_POLY16_C( 32709), SIMDE_POLY16_C( 490), SIMDE_POLY16_C( 7781), SIMDE_POLY16_C( 410),
SIMDE_POLY16_C( 61115), SIMDE_POLY16_C( 46474), SIMDE_POLY16_C( 47471), SIMDE_POLY16_C( 53366),
SIMDE_POLY16_C( 43807), SIMDE_POLY16_C( 1888), SIMDE_POLY16_C( 2125), SIMDE_POLY16_C( 31231),
SIMDE_POLY16_C( 3053), SIMDE_POLY16_C( 43903), SIMDE_POLY16_C( 36297), SIMDE_POLY16_C( 38471),
SIMDE_POLY16_C( 19487), SIMDE_POLY16_C( 32429), SIMDE_POLY16_C( 32113), SIMDE_POLY16_C( 44776),
SIMDE_POLY16_C( 37793), SIMDE_POLY16_C( 49689), SIMDE_POLY16_C( 13261), SIMDE_POLY16_C( 20645),
SIMDE_POLY16_C( 30182), SIMDE_POLY16_C( 58155), SIMDE_POLY16_C( 50887), SIMDE_POLY16_C( 10141),
SIMDE_POLY16_C( 6116), SIMDE_POLY16_C( 586), SIMDE_POLY16_C( 50271), SIMDE_POLY16_C( 4947) },
{ { SIMDE_POLY16_C( 32709), SIMDE_POLY16_C( 490), SIMDE_POLY16_C( 7781), SIMDE_POLY16_C( 410),
SIMDE_POLY16_C( 61115), SIMDE_POLY16_C( 46474), SIMDE_POLY16_C( 47471), SIMDE_POLY16_C( 53366) },
{ SIMDE_POLY16_C( 43807), SIMDE_POLY16_C( 1888), SIMDE_POLY16_C( 2125), SIMDE_POLY16_C( 31231),
SIMDE_POLY16_C( 3053), SIMDE_POLY16_C( 43903), SIMDE_POLY16_C( 36297), SIMDE_POLY16_C( 38471) },
{ SIMDE_POLY16_C( 19487), SIMDE_POLY16_C( 32429), SIMDE_POLY16_C( 32113), SIMDE_POLY16_C( 44776),
SIMDE_POLY16_C( 37793), SIMDE_POLY16_C( 49689), SIMDE_POLY16_C( 13261), SIMDE_POLY16_C( 20645) },
{ SIMDE_POLY16_C( 30182), SIMDE_POLY16_C( 58155), SIMDE_POLY16_C( 50887), SIMDE_POLY16_C( 10141),
SIMDE_POLY16_C( 6116), SIMDE_POLY16_C( 586), SIMDE_POLY16_C( 50271), SIMDE_POLY16_C( 4947) } } },
{ { SIMDE_POLY16_C( 63949), SIMDE_POLY16_C( 34343), SIMDE_POLY16_C( 44122), SIMDE_POLY16_C( 32560),
SIMDE_POLY16_C( 30269), SIMDE_POLY16_C( 47651), SIMDE_POLY16_C( 34285), SIMDE_POLY16_C( 37297),
SIMDE_POLY16_C( 29073), SIMDE_POLY16_C( 60772), SIMDE_POLY16_C( 48633), SIMDE_POLY16_C( 21142),
SIMDE_POLY16_C( 39718), SIMDE_POLY16_C( 42704), SIMDE_POLY16_C( 59201), SIMDE_POLY16_C( 57993),
SIMDE_POLY16_C( 289), SIMDE_POLY16_C( 14234), SIMDE_POLY16_C( 19850), SIMDE_POLY16_C( 28746),
SIMDE_POLY16_C( 42831), SIMDE_POLY16_C( 22459), SIMDE_POLY16_C( 54607), SIMDE_POLY16_C( 61012),
SIMDE_POLY16_C( 36536), SIMDE_POLY16_C( 64154), SIMDE_POLY16_C( 1698), SIMDE_POLY16_C( 47409),
SIMDE_POLY16_C( 41498), SIMDE_POLY16_C( 41570), SIMDE_POLY16_C( 16190), SIMDE_POLY16_C( 52647) },
{ { SIMDE_POLY16_C( 63949), SIMDE_POLY16_C( 34343), SIMDE_POLY16_C( 44122), SIMDE_POLY16_C( 32560),
SIMDE_POLY16_C( 30269), SIMDE_POLY16_C( 47651), SIMDE_POLY16_C( 34285), SIMDE_POLY16_C( 37297) },
{ SIMDE_POLY16_C( 29073), SIMDE_POLY16_C( 60772), SIMDE_POLY16_C( 48633), SIMDE_POLY16_C( 21142),
SIMDE_POLY16_C( 39718), SIMDE_POLY16_C( 42704), SIMDE_POLY16_C( 59201), SIMDE_POLY16_C( 57993) },
{ SIMDE_POLY16_C( 289), SIMDE_POLY16_C( 14234), SIMDE_POLY16_C( 19850), SIMDE_POLY16_C( 28746),
SIMDE_POLY16_C( 42831), SIMDE_POLY16_C( 22459), SIMDE_POLY16_C( 54607), SIMDE_POLY16_C( 61012) },
{ SIMDE_POLY16_C( 36536), SIMDE_POLY16_C( 64154), SIMDE_POLY16_C( 1698), SIMDE_POLY16_C( 47409),
SIMDE_POLY16_C( 41498), SIMDE_POLY16_C( 41570), SIMDE_POLY16_C( 16190), SIMDE_POLY16_C( 52647) } } },
{ { SIMDE_POLY16_C( 16768), SIMDE_POLY16_C( 53260), SIMDE_POLY16_C( 24013), SIMDE_POLY16_C( 2282),
SIMDE_POLY16_C( 37040), SIMDE_POLY16_C( 64633), SIMDE_POLY16_C( 49536), SIMDE_POLY16_C( 64904),
SIMDE_POLY16_C( 58863), SIMDE_POLY16_C( 17978), SIMDE_POLY16_C( 22451), SIMDE_POLY16_C( 16159),
SIMDE_POLY16_C( 28037), SIMDE_POLY16_C( 22399), SIMDE_POLY16_C( 30094), SIMDE_POLY16_C( 55247),
SIMDE_POLY16_C( 19699), SIMDE_POLY16_C( 47970), SIMDE_POLY16_C( 45844), SIMDE_POLY16_C( 24235),
SIMDE_POLY16_C( 59049), SIMDE_POLY16_C( 49638), SIMDE_POLY16_C( 7539), SIMDE_POLY16_C( 38514),
SIMDE_POLY16_C( 57105), SIMDE_POLY16_C( 10123), SIMDE_POLY16_C( 37500), SIMDE_POLY16_C( 41722),
SIMDE_POLY16_C( 30289), SIMDE_POLY16_C( 64955), SIMDE_POLY16_C( 19812), SIMDE_POLY16_C( 16718) },
{ { SIMDE_POLY16_C( 16768), SIMDE_POLY16_C( 53260), SIMDE_POLY16_C( 24013), SIMDE_POLY16_C( 2282),
SIMDE_POLY16_C( 37040), SIMDE_POLY16_C( 64633), SIMDE_POLY16_C( 49536), SIMDE_POLY16_C( 64904) },
{ SIMDE_POLY16_C( 58863), SIMDE_POLY16_C( 17978), SIMDE_POLY16_C( 22451), SIMDE_POLY16_C( 16159),
SIMDE_POLY16_C( 28037), SIMDE_POLY16_C( 22399), SIMDE_POLY16_C( 30094), SIMDE_POLY16_C( 55247) },
{ SIMDE_POLY16_C( 19699), SIMDE_POLY16_C( 47970), SIMDE_POLY16_C( 45844), SIMDE_POLY16_C( 24235),
SIMDE_POLY16_C( 59049), SIMDE_POLY16_C( 49638), SIMDE_POLY16_C( 7539), SIMDE_POLY16_C( 38514) },
{ SIMDE_POLY16_C( 57105), SIMDE_POLY16_C( 10123), SIMDE_POLY16_C( 37500), SIMDE_POLY16_C( 41722),
SIMDE_POLY16_C( 30289), SIMDE_POLY16_C( 64955), SIMDE_POLY16_C( 19812), SIMDE_POLY16_C( 16718) } } },
{ { SIMDE_POLY16_C( 48084), SIMDE_POLY16_C( 11401), SIMDE_POLY16_C( 58753), SIMDE_POLY16_C( 21223),
SIMDE_POLY16_C( 11160), SIMDE_POLY16_C( 52673), SIMDE_POLY16_C( 39163), SIMDE_POLY16_C( 42176),
SIMDE_POLY16_C( 29254), SIMDE_POLY16_C( 56153), SIMDE_POLY16_C( 29831), SIMDE_POLY16_C( 16282),
SIMDE_POLY16_C( 13127), SIMDE_POLY16_C( 27796), SIMDE_POLY16_C( 45505), SIMDE_POLY16_C( 48730),
SIMDE_POLY16_C( 38982), SIMDE_POLY16_C( 33987), SIMDE_POLY16_C( 41156), SIMDE_POLY16_C( 22188),
SIMDE_POLY16_C( 19278), SIMDE_POLY16_C( 53240), SIMDE_POLY16_C( 2079), SIMDE_POLY16_C( 29839),
SIMDE_POLY16_C( 7685), SIMDE_POLY16_C( 27349), SIMDE_POLY16_C( 7293), SIMDE_POLY16_C( 34477),
SIMDE_POLY16_C( 2832), SIMDE_POLY16_C( 53944), SIMDE_POLY16_C( 25153), SIMDE_POLY16_C( 52336) },
{ { SIMDE_POLY16_C( 48084), SIMDE_POLY16_C( 11401), SIMDE_POLY16_C( 58753), SIMDE_POLY16_C( 21223),
SIMDE_POLY16_C( 11160), SIMDE_POLY16_C( 52673), SIMDE_POLY16_C( 39163), SIMDE_POLY16_C( 42176) },
{ SIMDE_POLY16_C( 29254), SIMDE_POLY16_C( 56153), SIMDE_POLY16_C( 29831), SIMDE_POLY16_C( 16282),
SIMDE_POLY16_C( 13127), SIMDE_POLY16_C( 27796), SIMDE_POLY16_C( 45505), SIMDE_POLY16_C( 48730) },
{ SIMDE_POLY16_C( 38982), SIMDE_POLY16_C( 33987), SIMDE_POLY16_C( 41156), SIMDE_POLY16_C( 22188),
SIMDE_POLY16_C( 19278), SIMDE_POLY16_C( 53240), SIMDE_POLY16_C( 2079), SIMDE_POLY16_C( 29839) },
{ SIMDE_POLY16_C( 7685), SIMDE_POLY16_C( 27349), SIMDE_POLY16_C( 7293), SIMDE_POLY16_C( 34477),
SIMDE_POLY16_C( 2832), SIMDE_POLY16_C( 53944), SIMDE_POLY16_C( 25153), SIMDE_POLY16_C( 52336) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
SIMDE_ALIGN_TO_16 simde_poly16x8x4_t r = simde_vld1q_p16_x4(test_vec[i].buf);
SIMDE_ALIGN_TO_16 simde_poly16x8x4_t expected = {{
simde_vld1q_p16(test_vec[i].expected[0]),
simde_vld1q_p16(test_vec[i].expected[1]),
simde_vld1q_p16(test_vec[i].expected[2]),
simde_vld1q_p16(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_p16x8x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_poly16_t buf[32];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vp16(2, 32, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_poly16x8x4_t val = simde_vld1q_p16_x4(buf);
simde_test_arm_neon_write_p16x8x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_p64_x4 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
simde_poly64_t buf[8];
simde_poly64_t expected[4][2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 7154771678769626112), SIMDE_POLY64_C(11740551762359005184), SIMDE_POLY64_C( 2558810697885233152), SIMDE_POLY64_C( 9038240114452687872),
SIMDE_POLY64_C( 9689586260292292608), SIMDE_POLY64_C( 8453835509798581248), SIMDE_POLY64_C( 2446519755765603328), SIMDE_POLY64_C(13195139351724742656) },
{ { SIMDE_POLY64_C( 7154771678769626112), SIMDE_POLY64_C(11740551762359005184) },
{ SIMDE_POLY64_C( 2558810697885233152), SIMDE_POLY64_C( 9038240114452687872) },
{ SIMDE_POLY64_C( 9689586260292292608), SIMDE_POLY64_C( 8453835509798581248) },
{ SIMDE_POLY64_C( 2446519755765603328), SIMDE_POLY64_C(13195139351724742656) } } },
{ { SIMDE_POLY64_C( 2965742671226290176), SIMDE_POLY64_C(16262349869982175232), SIMDE_POLY64_C( 1767178712773100288), SIMDE_POLY64_C(15406718886057752576),
SIMDE_POLY64_C(10176412470495139840), SIMDE_POLY64_C( 5139116504646875136), SIMDE_POLY64_C( 8542861413016699904), SIMDE_POLY64_C(16398499435288463360) },
{ { SIMDE_POLY64_C( 2965742671226290176), SIMDE_POLY64_C(16262349869982175232) },
{ SIMDE_POLY64_C( 1767178712773100288), SIMDE_POLY64_C(15406718886057752576) },
{ SIMDE_POLY64_C(10176412470495139840), SIMDE_POLY64_C( 5139116504646875136) },
{ SIMDE_POLY64_C( 8542861413016699904), SIMDE_POLY64_C(16398499435288463360) } } },
{ { SIMDE_POLY64_C(13129160896330913792), SIMDE_POLY64_C(11653861199254679552), SIMDE_POLY64_C( 6548853626855996416), SIMDE_POLY64_C( 50780021194548144),
SIMDE_POLY64_C(13003130330100856832), SIMDE_POLY64_C(15321112471868461056), SIMDE_POLY64_C(12981714533540315136), SIMDE_POLY64_C( 1524660169325070592) },
{ { SIMDE_POLY64_C(13129160896330913792), SIMDE_POLY64_C(11653861199254679552) },
{ SIMDE_POLY64_C( 6548853626855996416), SIMDE_POLY64_C( 50780021194548144) },
{ SIMDE_POLY64_C(13003130330100856832), SIMDE_POLY64_C(15321112471868461056) },
{ SIMDE_POLY64_C(12981714533540315136), SIMDE_POLY64_C( 1524660169325070592) } } },
{ { SIMDE_POLY64_C( 4361622925913683456), SIMDE_POLY64_C(16377642044138067968), SIMDE_POLY64_C( 331363660145348160), SIMDE_POLY64_C( 5176577585641760768),
SIMDE_POLY64_C( 1997210542406237952), SIMDE_POLY64_C( 3701712683818038784), SIMDE_POLY64_C(10910947553430177792), SIMDE_POLY64_C( 6140276109593777152) },
{ { SIMDE_POLY64_C( 4361622925913683456), SIMDE_POLY64_C(16377642044138067968) },
{ SIMDE_POLY64_C( 331363660145348160), SIMDE_POLY64_C( 5176577585641760768) },
{ SIMDE_POLY64_C( 1997210542406237952), SIMDE_POLY64_C( 3701712683818038784) },
{ SIMDE_POLY64_C(10910947553430177792), SIMDE_POLY64_C( 6140276109593777152) } } },
{ { SIMDE_POLY64_C(11500646624398737408), SIMDE_POLY64_C( 4812253297631222784), SIMDE_POLY64_C( 934275217705044992), SIMDE_POLY64_C( 5081625958934144000),
SIMDE_POLY64_C( 231407268129284864), SIMDE_POLY64_C( 1174668535850460160), SIMDE_POLY64_C(17522447699125241856), SIMDE_POLY64_C( 1324911946478663680) },
{ { SIMDE_POLY64_C(11500646624398737408), SIMDE_POLY64_C( 4812253297631222784) },
{ SIMDE_POLY64_C( 934275217705044992), SIMDE_POLY64_C( 5081625958934144000) },
{ SIMDE_POLY64_C( 231407268129284864), SIMDE_POLY64_C( 1174668535850460160) },
{ SIMDE_POLY64_C(17522447699125241856), SIMDE_POLY64_C( 1324911946478663680) } } },
{ { SIMDE_POLY64_C(15418430532032768000), SIMDE_POLY64_C( 2327311759404552704), SIMDE_POLY64_C( 3584291740155686912), SIMDE_POLY64_C( 8581611500293403648),
SIMDE_POLY64_C(12145144056983136256), SIMDE_POLY64_C( 3729746299359272960), SIMDE_POLY64_C(12053117506648639488), SIMDE_POLY64_C(10424225148697991168) },
{ { SIMDE_POLY64_C(15418430532032768000), SIMDE_POLY64_C( 2327311759404552704) },
{ SIMDE_POLY64_C( 3584291740155686912), SIMDE_POLY64_C( 8581611500293403648) },
{ SIMDE_POLY64_C(12145144056983136256), SIMDE_POLY64_C( 3729746299359272960) },
{ SIMDE_POLY64_C(12053117506648639488), SIMDE_POLY64_C(10424225148697991168) } } },
{ { SIMDE_POLY64_C( 1651450853129206272), SIMDE_POLY64_C(16341763446066487296), SIMDE_POLY64_C(13044680224269965312), SIMDE_POLY64_C( 4124398320380595712),
SIMDE_POLY64_C(13534054801995773952), SIMDE_POLY64_C( 916711590638048896), SIMDE_POLY64_C(16705291349055799296), SIMDE_POLY64_C( 6443038053583837184) },
{ { SIMDE_POLY64_C( 1651450853129206272), SIMDE_POLY64_C(16341763446066487296) },
{ SIMDE_POLY64_C(13044680224269965312), SIMDE_POLY64_C( 4124398320380595712) },
{ SIMDE_POLY64_C(13534054801995773952), SIMDE_POLY64_C( 916711590638048896) },
{ SIMDE_POLY64_C(16705291349055799296), SIMDE_POLY64_C( 6443038053583837184) } } },
{ { SIMDE_POLY64_C( 7935729934559820800), SIMDE_POLY64_C(11814025298976110592), SIMDE_POLY64_C(12020925996906377216), SIMDE_POLY64_C( 2528350986698477056),
SIMDE_POLY64_C(17232887307707269120), SIMDE_POLY64_C(15608656846327992320), SIMDE_POLY64_C( 6223780687902315520), SIMDE_POLY64_C( 5812876555485938688) },
{ { SIMDE_POLY64_C( 7935729934559820800), SIMDE_POLY64_C(11814025298976110592) },
{ SIMDE_POLY64_C(12020925996906377216), SIMDE_POLY64_C( 2528350986698477056) },
{ SIMDE_POLY64_C(17232887307707269120), SIMDE_POLY64_C(15608656846327992320) },
{ SIMDE_POLY64_C( 6223780687902315520), SIMDE_POLY64_C( 5812876555485938688) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_poly64x2x4_t r = simde_vld1q_p64_x4(test_vec[i].buf);
simde_poly64x2x4_t expected = {{
simde_vld1q_p64(test_vec[i].expected[0]),
simde_vld1q_p64(test_vec[i].expected[1]),
simde_vld1q_p64(test_vec[i].expected[2]),
simde_vld1q_p64(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_p64x2x4(r, expected);
}
return 0;
#else
for (int i = 0 ; i < 8 ; i++) {
simde_poly64_t buf[8];
simde_test_codegen_random_memory(64, (uint8_t*)buf);
simde_test_codegen_write_vp64(2, 8, buf, SIMDE_TEST_VEC_POS_FIRST);
simde_poly64x2x4_t val = simde_vld1q_p64_x4(buf);
simde_test_arm_neon_write_p64x2x4(2, val, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vld1q_bf16_x4 (SIMDE_MUNIT_TEST_ARGS) {
struct {
simde_bfloat16 buf[32];
simde_bfloat16 expected[4][8];
} test_vec[] = {
{ { SIMDE_BFLOAT16_VALUE(0.77), SIMDE_BFLOAT16_VALUE(-4.96), SIMDE_BFLOAT16_VALUE(4.32), SIMDE_BFLOAT16_VALUE(7.52),
SIMDE_BFLOAT16_VALUE(4.70), SIMDE_BFLOAT16_VALUE(1.33), SIMDE_BFLOAT16_VALUE(-9.47), SIMDE_BFLOAT16_VALUE(7.32),
SIMDE_BFLOAT16_VALUE(-3.23), SIMDE_BFLOAT16_VALUE(0.61), SIMDE_BFLOAT16_VALUE(-7.77), SIMDE_BFLOAT16_VALUE(1.39),
SIMDE_BFLOAT16_VALUE(-3.07), SIMDE_BFLOAT16_VALUE(-3.61), SIMDE_BFLOAT16_VALUE(1.98), SIMDE_BFLOAT16_VALUE(-7.55),
SIMDE_BFLOAT16_VALUE(-4.89), SIMDE_BFLOAT16_VALUE(2.58), SIMDE_BFLOAT16_VALUE(-1.82), SIMDE_BFLOAT16_VALUE(-7.17),
SIMDE_BFLOAT16_VALUE(8.34), SIMDE_BFLOAT16_VALUE(6.72), SIMDE_BFLOAT16_VALUE(-7.10), SIMDE_BFLOAT16_VALUE(-4.64),
SIMDE_BFLOAT16_VALUE(9.47), SIMDE_BFLOAT16_VALUE(4.04), SIMDE_BFLOAT16_VALUE(0.95), SIMDE_BFLOAT16_VALUE(-6.12),
SIMDE_BFLOAT16_VALUE(-4.02), SIMDE_BFLOAT16_VALUE(-8.97), SIMDE_BFLOAT16_VALUE(-5.84), SIMDE_BFLOAT16_VALUE(5.81) },
{ { SIMDE_BFLOAT16_VALUE(0.77), SIMDE_BFLOAT16_VALUE(-4.96), SIMDE_BFLOAT16_VALUE(4.32), SIMDE_BFLOAT16_VALUE(7.52),
SIMDE_BFLOAT16_VALUE(4.70), SIMDE_BFLOAT16_VALUE(1.33), SIMDE_BFLOAT16_VALUE(-9.47), SIMDE_BFLOAT16_VALUE(7.32) },
{ SIMDE_BFLOAT16_VALUE(-3.23), SIMDE_BFLOAT16_VALUE(0.61), SIMDE_BFLOAT16_VALUE(-7.77), SIMDE_BFLOAT16_VALUE(1.39),
SIMDE_BFLOAT16_VALUE(-3.07), SIMDE_BFLOAT16_VALUE(-3.61), SIMDE_BFLOAT16_VALUE(1.98), SIMDE_BFLOAT16_VALUE(-7.55) },
{ SIMDE_BFLOAT16_VALUE(-4.89), SIMDE_BFLOAT16_VALUE(2.58), SIMDE_BFLOAT16_VALUE(-1.82), SIMDE_BFLOAT16_VALUE(-7.17),
SIMDE_BFLOAT16_VALUE(8.34), SIMDE_BFLOAT16_VALUE(6.72), SIMDE_BFLOAT16_VALUE(-7.10), SIMDE_BFLOAT16_VALUE(-4.64) },
{ SIMDE_BFLOAT16_VALUE(9.47), SIMDE_BFLOAT16_VALUE(4.04), SIMDE_BFLOAT16_VALUE(0.95), SIMDE_BFLOAT16_VALUE(-6.12),
SIMDE_BFLOAT16_VALUE(-4.02), SIMDE_BFLOAT16_VALUE(-8.97), SIMDE_BFLOAT16_VALUE(-5.84), SIMDE_BFLOAT16_VALUE(5.81) } } },
{ { SIMDE_BFLOAT16_VALUE(5.50), SIMDE_BFLOAT16_VALUE(5.24), SIMDE_BFLOAT16_VALUE(8.86), SIMDE_BFLOAT16_VALUE(4.11),
SIMDE_BFLOAT16_VALUE(-9.23), SIMDE_BFLOAT16_VALUE(-5.26), SIMDE_BFLOAT16_VALUE(2.44), SIMDE_BFLOAT16_VALUE(6.43),
SIMDE_BFLOAT16_VALUE(1.99), SIMDE_BFLOAT16_VALUE(3.20), SIMDE_BFLOAT16_VALUE(8.92), SIMDE_BFLOAT16_VALUE(-1.64),
SIMDE_BFLOAT16_VALUE(7.53), SIMDE_BFLOAT16_VALUE(-2.88), SIMDE_BFLOAT16_VALUE(1.19), SIMDE_BFLOAT16_VALUE(-2.26),
SIMDE_BFLOAT16_VALUE(7.85), SIMDE_BFLOAT16_VALUE(-3.73), SIMDE_BFLOAT16_VALUE(-6.25), SIMDE_BFLOAT16_VALUE(-5.78),
SIMDE_BFLOAT16_VALUE(-4.64), SIMDE_BFLOAT16_VALUE(-6.97), SIMDE_BFLOAT16_VALUE(-3.81), SIMDE_BFLOAT16_VALUE(-1.47),
SIMDE_BFLOAT16_VALUE(8.97), SIMDE_BFLOAT16_VALUE(-3.54), SIMDE_BFLOAT16_VALUE(-8.46), SIMDE_BFLOAT16_VALUE(-0.59),
SIMDE_BFLOAT16_VALUE(1.21), SIMDE_BFLOAT16_VALUE(-0.55), SIMDE_BFLOAT16_VALUE(-3.94), SIMDE_BFLOAT16_VALUE(-5.49) },
{ { SIMDE_BFLOAT16_VALUE(5.50), SIMDE_BFLOAT16_VALUE(5.24), SIMDE_BFLOAT16_VALUE(8.86), SIMDE_BFLOAT16_VALUE(4.11),
SIMDE_BFLOAT16_VALUE(-9.23), SIMDE_BFLOAT16_VALUE(-5.26), SIMDE_BFLOAT16_VALUE(2.44), SIMDE_BFLOAT16_VALUE(6.43) },
{ SIMDE_BFLOAT16_VALUE(1.99), SIMDE_BFLOAT16_VALUE(3.20), SIMDE_BFLOAT16_VALUE(8.92), SIMDE_BFLOAT16_VALUE(-1.64),
SIMDE_BFLOAT16_VALUE(7.53), SIMDE_BFLOAT16_VALUE(-2.88), SIMDE_BFLOAT16_VALUE(1.19), SIMDE_BFLOAT16_VALUE(-2.26) },
{ SIMDE_BFLOAT16_VALUE(7.85), SIMDE_BFLOAT16_VALUE(-3.73), SIMDE_BFLOAT16_VALUE(-6.25), SIMDE_BFLOAT16_VALUE(-5.78),
SIMDE_BFLOAT16_VALUE(-4.64), SIMDE_BFLOAT16_VALUE(-6.97), SIMDE_BFLOAT16_VALUE(-3.81), SIMDE_BFLOAT16_VALUE(-1.47) },
{ SIMDE_BFLOAT16_VALUE(8.97), SIMDE_BFLOAT16_VALUE(-3.54), SIMDE_BFLOAT16_VALUE(-8.46), SIMDE_BFLOAT16_VALUE(-0.59),
SIMDE_BFLOAT16_VALUE(1.21), SIMDE_BFLOAT16_VALUE(-0.55), SIMDE_BFLOAT16_VALUE(-3.94), SIMDE_BFLOAT16_VALUE(-5.49) } } },
{ { SIMDE_BFLOAT16_VALUE(0.84), SIMDE_BFLOAT16_VALUE(1.66), SIMDE_BFLOAT16_VALUE(-0.69), SIMDE_BFLOAT16_VALUE(0.03),
SIMDE_BFLOAT16_VALUE(-9.89), SIMDE_BFLOAT16_VALUE(-1.33), SIMDE_BFLOAT16_VALUE(2.77), SIMDE_BFLOAT16_VALUE(2.16),
SIMDE_BFLOAT16_VALUE(-9.13), SIMDE_BFLOAT16_VALUE(7.90), SIMDE_BFLOAT16_VALUE(9.03), SIMDE_BFLOAT16_VALUE(2.79),
SIMDE_BFLOAT16_VALUE(-8.16), SIMDE_BFLOAT16_VALUE(-1.11), SIMDE_BFLOAT16_VALUE(2.16), SIMDE_BFLOAT16_VALUE(5.32),
SIMDE_BFLOAT16_VALUE(9.71), SIMDE_BFLOAT16_VALUE(-7.58), SIMDE_BFLOAT16_VALUE(-0.85), SIMDE_BFLOAT16_VALUE(-8.57),
SIMDE_BFLOAT16_VALUE(1.14), SIMDE_BFLOAT16_VALUE(-0.42), SIMDE_BFLOAT16_VALUE(3.32), SIMDE_BFLOAT16_VALUE(6.97),
SIMDE_BFLOAT16_VALUE(1.24), SIMDE_BFLOAT16_VALUE(-8.74), SIMDE_BFLOAT16_VALUE(-8.75), SIMDE_BFLOAT16_VALUE(-0.72),
SIMDE_BFLOAT16_VALUE(5.61), SIMDE_BFLOAT16_VALUE(4.15), SIMDE_BFLOAT16_VALUE(9.62), SIMDE_BFLOAT16_VALUE(-3.79) },
{ { SIMDE_BFLOAT16_VALUE(0.84), SIMDE_BFLOAT16_VALUE(1.66), SIMDE_BFLOAT16_VALUE(-0.69), SIMDE_BFLOAT16_VALUE(0.03),
SIMDE_BFLOAT16_VALUE(-9.89), SIMDE_BFLOAT16_VALUE(-1.33), SIMDE_BFLOAT16_VALUE(2.77), SIMDE_BFLOAT16_VALUE(2.16) },
{ SIMDE_BFLOAT16_VALUE(-9.13), SIMDE_BFLOAT16_VALUE(7.90), SIMDE_BFLOAT16_VALUE(9.03), SIMDE_BFLOAT16_VALUE(2.79),
SIMDE_BFLOAT16_VALUE(-8.16), SIMDE_BFLOAT16_VALUE(-1.11), SIMDE_BFLOAT16_VALUE(2.16), SIMDE_BFLOAT16_VALUE(5.32) },
{ SIMDE_BFLOAT16_VALUE(9.71), SIMDE_BFLOAT16_VALUE(-7.58), SIMDE_BFLOAT16_VALUE(-0.85), SIMDE_BFLOAT16_VALUE(-8.57),
SIMDE_BFLOAT16_VALUE(1.14), SIMDE_BFLOAT16_VALUE(-0.42), SIMDE_BFLOAT16_VALUE(3.32), SIMDE_BFLOAT16_VALUE(6.97) },
{ SIMDE_BFLOAT16_VALUE(1.24), SIMDE_BFLOAT16_VALUE(-8.74), SIMDE_BFLOAT16_VALUE(-8.75), SIMDE_BFLOAT16_VALUE(-0.72),
SIMDE_BFLOAT16_VALUE(5.61), SIMDE_BFLOAT16_VALUE(4.15), SIMDE_BFLOAT16_VALUE(9.62), SIMDE_BFLOAT16_VALUE(-3.79) } } },
{ { SIMDE_BFLOAT16_VALUE(7.00), SIMDE_BFLOAT16_VALUE(-5.79), SIMDE_BFLOAT16_VALUE(-0.80), SIMDE_BFLOAT16_VALUE(8.08),
SIMDE_BFLOAT16_VALUE(-7.63), SIMDE_BFLOAT16_VALUE(8.06), SIMDE_BFLOAT16_VALUE(3.73), SIMDE_BFLOAT16_VALUE(5.38),
SIMDE_BFLOAT16_VALUE(-8.76), SIMDE_BFLOAT16_VALUE(-3.66), SIMDE_BFLOAT16_VALUE(-1.79), SIMDE_BFLOAT16_VALUE(4.39),
SIMDE_BFLOAT16_VALUE(4.40), SIMDE_BFLOAT16_VALUE(-1.74), SIMDE_BFLOAT16_VALUE(6.02), SIMDE_BFLOAT16_VALUE(1.11),
SIMDE_BFLOAT16_VALUE(5.43), SIMDE_BFLOAT16_VALUE(-1.01), SIMDE_BFLOAT16_VALUE(1.85), SIMDE_BFLOAT16_VALUE(-2.65),
SIMDE_BFLOAT16_VALUE(-9.84), SIMDE_BFLOAT16_VALUE(-3.62), SIMDE_BFLOAT16_VALUE(8.59), SIMDE_BFLOAT16_VALUE(-1.78),
SIMDE_BFLOAT16_VALUE(-5.54), SIMDE_BFLOAT16_VALUE(2.82), SIMDE_BFLOAT16_VALUE(8.26), SIMDE_BFLOAT16_VALUE(9.23),
SIMDE_BFLOAT16_VALUE(0.57), SIMDE_BFLOAT16_VALUE(1.65), SIMDE_BFLOAT16_VALUE(6.48), SIMDE_BFLOAT16_VALUE(6.43) },
{ { SIMDE_BFLOAT16_VALUE(7.00), SIMDE_BFLOAT16_VALUE(-5.79), SIMDE_BFLOAT16_VALUE(-0.80), SIMDE_BFLOAT16_VALUE(8.08),
SIMDE_BFLOAT16_VALUE(-7.63), SIMDE_BFLOAT16_VALUE(8.06), SIMDE_BFLOAT16_VALUE(3.73), SIMDE_BFLOAT16_VALUE(5.38) },
{ SIMDE_BFLOAT16_VALUE(-8.76), SIMDE_BFLOAT16_VALUE(-3.66), SIMDE_BFLOAT16_VALUE(-1.79), SIMDE_BFLOAT16_VALUE(4.39),
SIMDE_BFLOAT16_VALUE(4.40), SIMDE_BFLOAT16_VALUE(-1.74), SIMDE_BFLOAT16_VALUE(6.02), SIMDE_BFLOAT16_VALUE(1.11) },
{ SIMDE_BFLOAT16_VALUE(5.43), SIMDE_BFLOAT16_VALUE(-1.01), SIMDE_BFLOAT16_VALUE(1.85), SIMDE_BFLOAT16_VALUE(-2.65),
SIMDE_BFLOAT16_VALUE(-9.84), SIMDE_BFLOAT16_VALUE(-3.62), SIMDE_BFLOAT16_VALUE(8.59), SIMDE_BFLOAT16_VALUE(-1.78) },
{ SIMDE_BFLOAT16_VALUE(-5.54), SIMDE_BFLOAT16_VALUE(2.82), SIMDE_BFLOAT16_VALUE(8.26), SIMDE_BFLOAT16_VALUE(9.23),
SIMDE_BFLOAT16_VALUE(0.57), SIMDE_BFLOAT16_VALUE(1.65), SIMDE_BFLOAT16_VALUE(6.48), SIMDE_BFLOAT16_VALUE(6.43) } } },
{ { SIMDE_BFLOAT16_VALUE(-9.54), SIMDE_BFLOAT16_VALUE(7.35), SIMDE_BFLOAT16_VALUE(-8.55), SIMDE_BFLOAT16_VALUE(5.24),
SIMDE_BFLOAT16_VALUE(-9.39), SIMDE_BFLOAT16_VALUE(-8.81), SIMDE_BFLOAT16_VALUE(-2.52), SIMDE_BFLOAT16_VALUE(3.42),
SIMDE_BFLOAT16_VALUE(8.62), SIMDE_BFLOAT16_VALUE(-3.83), SIMDE_BFLOAT16_VALUE(-3.54), SIMDE_BFLOAT16_VALUE(0.09),
SIMDE_BFLOAT16_VALUE(5.41), SIMDE_BFLOAT16_VALUE(1.42), SIMDE_BFLOAT16_VALUE(-8.33), SIMDE_BFLOAT16_VALUE(9.12),
SIMDE_BFLOAT16_VALUE(3.57), SIMDE_BFLOAT16_VALUE(-6.64), SIMDE_BFLOAT16_VALUE(-9.86), SIMDE_BFLOAT16_VALUE(6.74),
SIMDE_BFLOAT16_VALUE(-8.50), SIMDE_BFLOAT16_VALUE(-5.99), SIMDE_BFLOAT16_VALUE(-5.00), SIMDE_BFLOAT16_VALUE(-8.11),
SIMDE_BFLOAT16_VALUE(2.43), SIMDE_BFLOAT16_VALUE(8.06), SIMDE_BFLOAT16_VALUE(8.39), SIMDE_BFLOAT16_VALUE(-5.99),
SIMDE_BFLOAT16_VALUE(-3.26), SIMDE_BFLOAT16_VALUE(-5.56), SIMDE_BFLOAT16_VALUE(-6.74), SIMDE_BFLOAT16_VALUE(-7.39) },
{ { SIMDE_BFLOAT16_VALUE(-9.54), SIMDE_BFLOAT16_VALUE(7.35), SIMDE_BFLOAT16_VALUE(-8.55), SIMDE_BFLOAT16_VALUE(5.24),
SIMDE_BFLOAT16_VALUE(-9.39), SIMDE_BFLOAT16_VALUE(-8.81), SIMDE_BFLOAT16_VALUE(-2.52), SIMDE_BFLOAT16_VALUE(3.42) },
{ SIMDE_BFLOAT16_VALUE(8.62), SIMDE_BFLOAT16_VALUE(-3.83), SIMDE_BFLOAT16_VALUE(-3.54), SIMDE_BFLOAT16_VALUE(0.09),
SIMDE_BFLOAT16_VALUE(5.41), SIMDE_BFLOAT16_VALUE(1.42), SIMDE_BFLOAT16_VALUE(-8.33), SIMDE_BFLOAT16_VALUE(9.12) },
{ SIMDE_BFLOAT16_VALUE(3.57), SIMDE_BFLOAT16_VALUE(-6.64), SIMDE_BFLOAT16_VALUE(-9.86), SIMDE_BFLOAT16_VALUE(6.74),
SIMDE_BFLOAT16_VALUE(-8.50), SIMDE_BFLOAT16_VALUE(-5.99), SIMDE_BFLOAT16_VALUE(-5.00), SIMDE_BFLOAT16_VALUE(-8.11) },
{ SIMDE_BFLOAT16_VALUE(2.43), SIMDE_BFLOAT16_VALUE(8.06), SIMDE_BFLOAT16_VALUE(8.39), SIMDE_BFLOAT16_VALUE(-5.99),
SIMDE_BFLOAT16_VALUE(-3.26), SIMDE_BFLOAT16_VALUE(-5.56), SIMDE_BFLOAT16_VALUE(-6.74), SIMDE_BFLOAT16_VALUE(-7.39) } } },
};
for (size_t i = 0; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde_bfloat16x8x4_t r = simde_vld1q_bf16_x4(test_vec[i].buf);
simde_bfloat16x8x4_t expected = {{
simde_vld1q_bf16(test_vec[i].expected[0]),
simde_vld1q_bf16(test_vec[i].expected[1]),
simde_vld1q_bf16(test_vec[i].expected[2]),
simde_vld1q_bf16(test_vec[i].expected[3]),
}};
simde_test_arm_neon_assert_equal_bf16x8x4(r, expected, 1);
}
return 0;
}
#endif
SIMDE_TEST_FUNC_LIST_BEGIN
#if !defined(SIMDE_BUG_INTEL_857088)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_f16_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_f32_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_f64_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s8_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s16_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s32_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_s64_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u8_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u16_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u32_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_u64_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_p8_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_p16_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_p64_x4)
SIMDE_TEST_FUNC_LIST_ENTRY(vld1q_bf16_x4)
#endif
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"