Update googletest to 1.18.0 and SIMDe to 0.8.2.

Googletest 1.18 asks for CMake 3.13 or newer, so configuring the tests no longer warns that CMake compatibility below 3.10 is deprecated.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-24 14:30:19 -06:00
parent e4e666f459
commit 3f10e05176
912 changed files with 224964 additions and 11502 deletions

View file

@ -2003,6 +2003,695 @@ test_simde_vsrid_n_u64 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_vsri_n_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[8];
simde_poly8_t b[8];
simde_poly8_t r1[8];
simde_poly8_t r3[8];
simde_poly8_t r5[8];
simde_poly8_t r8[8];
} test_vec[] = {
{ { SIMDE_POLY8_C( 38), SIMDE_POLY8_C(200), SIMDE_POLY8_C(178), SIMDE_POLY8_C(146), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 51) },
{ SIMDE_POLY8_C(146), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(194), SIMDE_POLY8_C(175), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(240), SIMDE_POLY8_C(111) },
{ SIMDE_POLY8_C( 73), SIMDE_POLY8_C(144), SIMDE_POLY8_C(225), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(177), SIMDE_POLY8_C(120), SIMDE_POLY8_C( 55) },
{ SIMDE_POLY8_C( 50), SIMDE_POLY8_C(196), SIMDE_POLY8_C(184), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 52), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 30), SIMDE_POLY8_C( 45) },
{ SIMDE_POLY8_C( 36), SIMDE_POLY8_C(201), SIMDE_POLY8_C(182), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 53), SIMDE_POLY8_C(235), SIMDE_POLY8_C( 23), SIMDE_POLY8_C( 51) },
{ SIMDE_POLY8_C( 38), SIMDE_POLY8_C(200), SIMDE_POLY8_C(178), SIMDE_POLY8_C(146), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 21), SIMDE_POLY8_C( 51) } },
{ { SIMDE_POLY8_C(112), SIMDE_POLY8_C(201), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(135), SIMDE_POLY8_C(195), SIMDE_POLY8_C(245) },
{ SIMDE_POLY8_C(180), SIMDE_POLY8_C(126), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(208), SIMDE_POLY8_C(208), SIMDE_POLY8_C(138), SIMDE_POLY8_C(247) },
{ SIMDE_POLY8_C( 90), SIMDE_POLY8_C(191), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(104), SIMDE_POLY8_C(232), SIMDE_POLY8_C(197), SIMDE_POLY8_C(251) },
{ SIMDE_POLY8_C(118), SIMDE_POLY8_C(207), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 11), SIMDE_POLY8_C( 90), SIMDE_POLY8_C(154), SIMDE_POLY8_C(209), SIMDE_POLY8_C(254) },
{ SIMDE_POLY8_C(117), SIMDE_POLY8_C(203), SIMDE_POLY8_C(147), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(134), SIMDE_POLY8_C(196), SIMDE_POLY8_C(247) },
{ SIMDE_POLY8_C(112), SIMDE_POLY8_C(201), SIMDE_POLY8_C(148), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(135), SIMDE_POLY8_C(195), SIMDE_POLY8_C(245) } },
{ { SIMDE_POLY8_C(152), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(137), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(188) },
{ SIMDE_POLY8_C(191), SIMDE_POLY8_C(196), SIMDE_POLY8_C(107), SIMDE_POLY8_C(100), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(211), SIMDE_POLY8_C(150) },
{ SIMDE_POLY8_C(223), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(181), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(173), SIMDE_POLY8_C(105), SIMDE_POLY8_C(203) },
{ SIMDE_POLY8_C(151), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(141), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(139), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(178) },
{ SIMDE_POLY8_C(157), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(139), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(154), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(188) },
{ SIMDE_POLY8_C(152), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(137), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(158), SIMDE_POLY8_C( 2), SIMDE_POLY8_C(188) } },
{ { SIMDE_POLY8_C( 36), SIMDE_POLY8_C(103), SIMDE_POLY8_C(155), SIMDE_POLY8_C(126), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(115), SIMDE_POLY8_C(162) },
{ SIMDE_POLY8_C(220), SIMDE_POLY8_C(239), SIMDE_POLY8_C(252), SIMDE_POLY8_C(173), SIMDE_POLY8_C(191), SIMDE_POLY8_C(135), SIMDE_POLY8_C(164), SIMDE_POLY8_C( 88) },
{ SIMDE_POLY8_C(110), SIMDE_POLY8_C(119), SIMDE_POLY8_C(254), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(223), SIMDE_POLY8_C( 67), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(172) },
{ SIMDE_POLY8_C( 59), SIMDE_POLY8_C(125), SIMDE_POLY8_C(159), SIMDE_POLY8_C(117), SIMDE_POLY8_C(247), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(116), SIMDE_POLY8_C(171) },
{ SIMDE_POLY8_C( 38), SIMDE_POLY8_C(103), SIMDE_POLY8_C(159), SIMDE_POLY8_C(125), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(117), SIMDE_POLY8_C(162) },
{ SIMDE_POLY8_C( 36), SIMDE_POLY8_C(103), SIMDE_POLY8_C(155), SIMDE_POLY8_C(126), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(115), SIMDE_POLY8_C(162) } },
{ { SIMDE_POLY8_C(196), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(238), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(170), SIMDE_POLY8_C(138) },
{ SIMDE_POLY8_C(236), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(238), SIMDE_POLY8_C( 18), SIMDE_POLY8_C(113), SIMDE_POLY8_C(193), SIMDE_POLY8_C(168), SIMDE_POLY8_C(150) },
{ SIMDE_POLY8_C(246), SIMDE_POLY8_C( 11), SIMDE_POLY8_C(119), SIMDE_POLY8_C(137), SIMDE_POLY8_C(184), SIMDE_POLY8_C( 96), SIMDE_POLY8_C(212), SIMDE_POLY8_C(203) },
{ SIMDE_POLY8_C(221), SIMDE_POLY8_C( 34), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(226), SIMDE_POLY8_C(206), SIMDE_POLY8_C( 56), SIMDE_POLY8_C(181), SIMDE_POLY8_C(146) },
{ SIMDE_POLY8_C(199), SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(232), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(173), SIMDE_POLY8_C(140) },
{ SIMDE_POLY8_C(196), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 38), SIMDE_POLY8_C(238), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(170), SIMDE_POLY8_C(138) } },
{ { SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(162), SIMDE_POLY8_C(135), SIMDE_POLY8_C(185), SIMDE_POLY8_C(127) },
{ SIMDE_POLY8_C(118), SIMDE_POLY8_C(182), SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 61), SIMDE_POLY8_C(208), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 1) },
{ SIMDE_POLY8_C( 59), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(158), SIMDE_POLY8_C(232), SIMDE_POLY8_C(198), SIMDE_POLY8_C( 0) },
{ SIMDE_POLY8_C( 46), SIMDE_POLY8_C( 86), SIMDE_POLY8_C( 5), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(167), SIMDE_POLY8_C(154), SIMDE_POLY8_C(177), SIMDE_POLY8_C( 96) },
{ SIMDE_POLY8_C( 43), SIMDE_POLY8_C( 69), SIMDE_POLY8_C( 17), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(161), SIMDE_POLY8_C(134), SIMDE_POLY8_C(188), SIMDE_POLY8_C(120) },
{ SIMDE_POLY8_C( 40), SIMDE_POLY8_C( 68), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 23), SIMDE_POLY8_C(162), SIMDE_POLY8_C(135), SIMDE_POLY8_C(185), SIMDE_POLY8_C(127) } },
{ { SIMDE_POLY8_C(253), SIMDE_POLY8_C(180), SIMDE_POLY8_C(239), SIMDE_POLY8_C(200), SIMDE_POLY8_C(220), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(201) },
{ SIMDE_POLY8_C(175), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(219), SIMDE_POLY8_C( 33), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(132), SIMDE_POLY8_C(183), SIMDE_POLY8_C( 43) },
{ SIMDE_POLY8_C(215), SIMDE_POLY8_C(160), SIMDE_POLY8_C(237), SIMDE_POLY8_C(144), SIMDE_POLY8_C(129), SIMDE_POLY8_C(194), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(149) },
{ SIMDE_POLY8_C(245), SIMDE_POLY8_C(168), SIMDE_POLY8_C(251), SIMDE_POLY8_C(196), SIMDE_POLY8_C(192), SIMDE_POLY8_C(144), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(197) },
{ SIMDE_POLY8_C(253), SIMDE_POLY8_C(178), SIMDE_POLY8_C(238), SIMDE_POLY8_C(201), SIMDE_POLY8_C(216), SIMDE_POLY8_C(156), SIMDE_POLY8_C( 85), SIMDE_POLY8_C(201) },
{ SIMDE_POLY8_C(253), SIMDE_POLY8_C(180), SIMDE_POLY8_C(239), SIMDE_POLY8_C(200), SIMDE_POLY8_C(220), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(201) } },
{ { SIMDE_POLY8_C(200), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(106), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(252), SIMDE_POLY8_C(233), SIMDE_POLY8_C(200) },
{ SIMDE_POLY8_C(178), SIMDE_POLY8_C( 21), SIMDE_POLY8_C(253), SIMDE_POLY8_C(239), SIMDE_POLY8_C(229), SIMDE_POLY8_C(139), SIMDE_POLY8_C(240), SIMDE_POLY8_C(226) },
{ SIMDE_POLY8_C(217), SIMDE_POLY8_C(138), SIMDE_POLY8_C(126), SIMDE_POLY8_C(119), SIMDE_POLY8_C(114), SIMDE_POLY8_C(197), SIMDE_POLY8_C(248), SIMDE_POLY8_C(241) },
{ SIMDE_POLY8_C(214), SIMDE_POLY8_C(194), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(241), SIMDE_POLY8_C(254), SIMDE_POLY8_C(220) },
{ SIMDE_POLY8_C(205), SIMDE_POLY8_C(200), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 87), SIMDE_POLY8_C(252), SIMDE_POLY8_C(239), SIMDE_POLY8_C(207) },
{ SIMDE_POLY8_C(200), SIMDE_POLY8_C(203), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(106), SIMDE_POLY8_C( 82), SIMDE_POLY8_C(252), SIMDE_POLY8_C(233), SIMDE_POLY8_C(200) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly8x8_t a = simde_vld1_p8(test_vec[i].a);
simde_poly8x8_t b = simde_vld1_p8(test_vec[i].b);
simde_poly8x8_t r1 = simde_vsri_n_p8(a, b, 1);
simde_poly8x8_t r3 = simde_vsri_n_p8(a, b, 3);
simde_poly8x8_t r5 = simde_vsri_n_p8(a, b, 5);
simde_poly8x8_t r8 = simde_vsri_n_p8(a, b, 8);
simde_test_arm_neon_assert_equal_p8x8(r1, simde_vld1_p8(test_vec[i].r1));
simde_test_arm_neon_assert_equal_p8x8(r3, simde_vld1_p8(test_vec[i].r3));
simde_test_arm_neon_assert_equal_p8x8(r5, simde_vld1_p8(test_vec[i].r5));
simde_test_arm_neon_assert_equal_p8x8(r8, simde_vld1_p8(test_vec[i].r8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x8_t a = simde_test_arm_neon_random_p8x8();
simde_poly8x8_t b = simde_test_arm_neon_random_p8x8();
simde_poly8x8_t r1 = simde_vsri_n_p8(a, b, 1);
simde_poly8x8_t r3 = simde_vsri_n_p8(a, b, 3);
simde_poly8x8_t r5 = simde_vsri_n_p8(a, b, 5);
simde_poly8x8_t r8 = simde_vsri_n_p8(a, b, 8);
simde_test_arm_neon_write_p8x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p8x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x8(2, r1, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x8(2, r5, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x8(2, r8, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vsri_n_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[4];
simde_poly16_t b[4];
simde_poly16_t r3[4];
simde_poly16_t r6[4];
simde_poly16_t r10[4];
simde_poly16_t r13[4];
simde_poly16_t r16[4];
} test_vec[] = {
{ { SIMDE_POLY16_C(55040), SIMDE_POLY16_C( 1880), SIMDE_POLY16_C( 2015), SIMDE_POLY16_C(19781) },
{ SIMDE_POLY16_C(60444), SIMDE_POLY16_C( 3065), SIMDE_POLY16_C(25249), SIMDE_POLY16_C(15013) },
{ SIMDE_POLY16_C(56707), SIMDE_POLY16_C( 383), SIMDE_POLY16_C( 3156), SIMDE_POLY16_C(18260) },
{ SIMDE_POLY16_C(55216), SIMDE_POLY16_C( 1071), SIMDE_POLY16_C( 1418), SIMDE_POLY16_C(19690) },
{ SIMDE_POLY16_C(55099), SIMDE_POLY16_C( 1858), SIMDE_POLY16_C( 2008), SIMDE_POLY16_C(19790) },
{ SIMDE_POLY16_C(55047), SIMDE_POLY16_C( 1880), SIMDE_POLY16_C( 2011), SIMDE_POLY16_C(19777) },
{ SIMDE_POLY16_C(55040), SIMDE_POLY16_C( 1880), SIMDE_POLY16_C( 2015), SIMDE_POLY16_C(19781) } },
{ { SIMDE_POLY16_C(37479), SIMDE_POLY16_C(62916), SIMDE_POLY16_C(17723), SIMDE_POLY16_C( 4921) },
{ SIMDE_POLY16_C(64640), SIMDE_POLY16_C(46068), SIMDE_POLY16_C(62262), SIMDE_POLY16_C(13947) },
{ SIMDE_POLY16_C(40848), SIMDE_POLY16_C(63102), SIMDE_POLY16_C(24166), SIMDE_POLY16_C( 1743) },
{ SIMDE_POLY16_C(37874), SIMDE_POLY16_C(63183), SIMDE_POLY16_C(18380), SIMDE_POLY16_C( 4313) },
{ SIMDE_POLY16_C(37503), SIMDE_POLY16_C(62956), SIMDE_POLY16_C(17724), SIMDE_POLY16_C( 4877) },
{ SIMDE_POLY16_C(37479), SIMDE_POLY16_C(62917), SIMDE_POLY16_C(17727), SIMDE_POLY16_C( 4921) },
{ SIMDE_POLY16_C(37479), SIMDE_POLY16_C(62916), SIMDE_POLY16_C(17723), SIMDE_POLY16_C( 4921) } },
{ { SIMDE_POLY16_C(54218), SIMDE_POLY16_C(43582), SIMDE_POLY16_C(33754), SIMDE_POLY16_C(63223) },
{ SIMDE_POLY16_C(61551), SIMDE_POLY16_C( 4354), SIMDE_POLY16_C(42834), SIMDE_POLY16_C(47691) },
{ SIMDE_POLY16_C(56845), SIMDE_POLY16_C(41504), SIMDE_POLY16_C(38122), SIMDE_POLY16_C(63305) },
{ SIMDE_POLY16_C(54209), SIMDE_POLY16_C(43076), SIMDE_POLY16_C(33437), SIMDE_POLY16_C(63209) },
{ SIMDE_POLY16_C(54268), SIMDE_POLY16_C(43524), SIMDE_POLY16_C(33769), SIMDE_POLY16_C(63214) },
{ SIMDE_POLY16_C(54223), SIMDE_POLY16_C(43576), SIMDE_POLY16_C(33757), SIMDE_POLY16_C(63221) },
{ SIMDE_POLY16_C(54218), SIMDE_POLY16_C(43582), SIMDE_POLY16_C(33754), SIMDE_POLY16_C(63223) } },
{ { SIMDE_POLY16_C( 4153), SIMDE_POLY16_C(29871), SIMDE_POLY16_C(59477), SIMDE_POLY16_C(54664) },
{ SIMDE_POLY16_C(31973), SIMDE_POLY16_C( 7048), SIMDE_POLY16_C( 1135), SIMDE_POLY16_C(14674) },
{ SIMDE_POLY16_C( 3996), SIMDE_POLY16_C(25457), SIMDE_POLY16_C(57485), SIMDE_POLY16_C(50986) },
{ SIMDE_POLY16_C( 4595), SIMDE_POLY16_C(29806), SIMDE_POLY16_C(59409), SIMDE_POLY16_C(54501) },
{ SIMDE_POLY16_C( 4127), SIMDE_POLY16_C(29830), SIMDE_POLY16_C(59457), SIMDE_POLY16_C(54670) },
{ SIMDE_POLY16_C( 4155), SIMDE_POLY16_C(29864), SIMDE_POLY16_C(59472), SIMDE_POLY16_C(54665) },
{ SIMDE_POLY16_C( 4153), SIMDE_POLY16_C(29871), SIMDE_POLY16_C(59477), SIMDE_POLY16_C(54664) } },
{ { SIMDE_POLY16_C(37079), SIMDE_POLY16_C(45795), SIMDE_POLY16_C(55827), SIMDE_POLY16_C(33448) },
{ SIMDE_POLY16_C(43723), SIMDE_POLY16_C( 7571), SIMDE_POLY16_C(57170), SIMDE_POLY16_C(35799) },
{ SIMDE_POLY16_C(38233), SIMDE_POLY16_C(41906), SIMDE_POLY16_C(56298), SIMDE_POLY16_C(37242) },
{ SIMDE_POLY16_C(37547), SIMDE_POLY16_C(45174), SIMDE_POLY16_C(56189), SIMDE_POLY16_C(33327) },
{ SIMDE_POLY16_C(37098), SIMDE_POLY16_C(45767), SIMDE_POLY16_C(55863), SIMDE_POLY16_C(33442) },
{ SIMDE_POLY16_C(37077), SIMDE_POLY16_C(45792), SIMDE_POLY16_C(55830), SIMDE_POLY16_C(33452) },
{ SIMDE_POLY16_C(37079), SIMDE_POLY16_C(45795), SIMDE_POLY16_C(55827), SIMDE_POLY16_C(33448) } },
{ { SIMDE_POLY16_C(34799), SIMDE_POLY16_C(17408), SIMDE_POLY16_C(34927), SIMDE_POLY16_C(21529) },
{ SIMDE_POLY16_C(41220), SIMDE_POLY16_C(29552), SIMDE_POLY16_C(49829), SIMDE_POLY16_C(32172) },
{ SIMDE_POLY16_C(37920), SIMDE_POLY16_C(20078), SIMDE_POLY16_C(38996), SIMDE_POLY16_C(20405) },
{ SIMDE_POLY16_C(34436), SIMDE_POLY16_C(17869), SIMDE_POLY16_C(35594), SIMDE_POLY16_C(22006) },
{ SIMDE_POLY16_C(34792), SIMDE_POLY16_C(17436), SIMDE_POLY16_C(34928), SIMDE_POLY16_C(21535) },
{ SIMDE_POLY16_C(34797), SIMDE_POLY16_C(17411), SIMDE_POLY16_C(34926), SIMDE_POLY16_C(21531) },
{ SIMDE_POLY16_C(34799), SIMDE_POLY16_C(17408), SIMDE_POLY16_C(34927), SIMDE_POLY16_C(21529) } },
{ { SIMDE_POLY16_C(36946), SIMDE_POLY16_C(25903), SIMDE_POLY16_C(55146), SIMDE_POLY16_C(13799) },
{ SIMDE_POLY16_C(31618), SIMDE_POLY16_C(54355), SIMDE_POLY16_C(10842), SIMDE_POLY16_C(18783) },
{ SIMDE_POLY16_C(36720), SIMDE_POLY16_C(31370), SIMDE_POLY16_C(50507), SIMDE_POLY16_C(10539) },
{ SIMDE_POLY16_C(37358), SIMDE_POLY16_C(26449), SIMDE_POLY16_C(54441), SIMDE_POLY16_C(13605) },
{ SIMDE_POLY16_C(36958), SIMDE_POLY16_C(25909), SIMDE_POLY16_C(55114), SIMDE_POLY16_C(13778) },
{ SIMDE_POLY16_C(36947), SIMDE_POLY16_C(25902), SIMDE_POLY16_C(55145), SIMDE_POLY16_C(13794) },
{ SIMDE_POLY16_C(36946), SIMDE_POLY16_C(25903), SIMDE_POLY16_C(55146), SIMDE_POLY16_C(13799) } },
{ { SIMDE_POLY16_C(24497), SIMDE_POLY16_C( 8589), SIMDE_POLY16_C(42727), SIMDE_POLY16_C(60277) },
{ SIMDE_POLY16_C(58695), SIMDE_POLY16_C(60766), SIMDE_POLY16_C( 2983), SIMDE_POLY16_C(63850) },
{ SIMDE_POLY16_C(23720), SIMDE_POLY16_C(15787), SIMDE_POLY16_C(41332), SIMDE_POLY16_C(65325) },
{ SIMDE_POLY16_C(24469), SIMDE_POLY16_C( 9141), SIMDE_POLY16_C(42030), SIMDE_POLY16_C(60389) },
{ SIMDE_POLY16_C(24505), SIMDE_POLY16_C( 8635), SIMDE_POLY16_C(42690), SIMDE_POLY16_C(60286) },
{ SIMDE_POLY16_C(24503), SIMDE_POLY16_C( 8591), SIMDE_POLY16_C(42720), SIMDE_POLY16_C(60279) },
{ SIMDE_POLY16_C(24497), SIMDE_POLY16_C( 8589), SIMDE_POLY16_C(42727), SIMDE_POLY16_C(60277) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x4_t a = simde_vld1_p16(test_vec[i].a);
simde_poly16x4_t b = simde_vld1_p16(test_vec[i].b);
simde_poly16x4_t r3 = simde_vsri_n_p16(a, b, 3);
simde_poly16x4_t r6 = simde_vsri_n_p16(a, b, 6);
simde_poly16x4_t r10 = simde_vsri_n_p16(a, b, 10);
simde_poly16x4_t r13 = simde_vsri_n_p16(a, b, 13);
simde_poly16x4_t r16 = simde_vsri_n_p16(a, b, 16);
simde_test_arm_neon_assert_equal_p16x4(r3, simde_vld1_p16(test_vec[i].r3));
simde_test_arm_neon_assert_equal_p16x4(r6, simde_vld1_p16(test_vec[i].r6));
simde_test_arm_neon_assert_equal_p16x4(r10, simde_vld1_p16(test_vec[i].r10));
simde_test_arm_neon_assert_equal_p16x4(r13, simde_vld1_p16(test_vec[i].r13));
simde_test_arm_neon_assert_equal_p16x4(r16, simde_vld1_p16(test_vec[i].r16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x4_t a = simde_test_arm_neon_random_p16x4();
simde_poly16x4_t b = simde_test_arm_neon_random_p16x4();
simde_poly16x4_t r3 = simde_vsri_n_p16(a, b, 3);
simde_poly16x4_t r6 = simde_vsri_n_p16(a, b, 6);
simde_poly16x4_t r10 = simde_vsri_n_p16(a, b, 10);
simde_poly16x4_t r13 = simde_vsri_n_p16(a, b, 13);
simde_poly16x4_t r16 = simde_vsri_n_p16(a, b, 16);
simde_test_arm_neon_write_p16x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x4(2, r13, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x4(2, r16, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vsri_n_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[1];
simde_poly64_t b[1];
simde_poly64_t r13[1];
simde_poly64_t r26[1];
simde_poly64_t r39[1];
simde_poly64_t r52[1];
simde_poly64_t r64[1];
} test_vec[] = {
{ { SIMDE_POLY64_C( 8118597999197857303) },
{ SIMDE_POLY64_C( 6700592405235548485) },
{ SIMDE_POLY64_C( 8118556271744161270) },
{ SIMDE_POLY64_C( 8118597971396940452) },
{ SIMDE_POLY64_C( 8118597999203580562) },
{ SIMDE_POLY64_C( 8118597999197857231) },
{ SIMDE_POLY64_C( 8118597999197857303) } },
{ { SIMDE_POLY64_C( 5437571887890467294) },
{ SIMDE_POLY64_C( 2299076651735266132) },
{ SIMDE_POLY64_C( 5436125399241527449) },
{ SIMDE_POLY64_C( 5437571842384429608) },
{ SIMDE_POLY64_C( 5437571887888584684) },
{ SIMDE_POLY64_C( 5437571887890465278) },
{ SIMDE_POLY64_C( 5437571887890467294) } },
{ { SIMDE_POLY64_C(11306711651708258716) },
{ SIMDE_POLY64_C(14981836526368827203) },
{ SIMDE_POLY64_C(11308115701980227965) },
{ SIMDE_POLY64_C(11306711774126619747) },
{ SIMDE_POLY64_C(11306711651704624217) },
{ SIMDE_POLY64_C(11306711651708259582) },
{ SIMDE_POLY64_C(11306711651708258716) } },
{ { SIMDE_POLY64_C(13606175367699187381) },
{ SIMDE_POLY64_C( 8661343315588736267) },
{ SIMDE_POLY64_C(13606431767171472119) },
{ SIMDE_POLY64_C(13606175322693269188) },
{ SIMDE_POLY64_C(13606175367691789963) },
{ SIMDE_POLY64_C(13606175367699187587) },
{ SIMDE_POLY64_C(13606175367699187381) } },
{ { SIMDE_POLY64_C(15024812709372824207) },
{ SIMDE_POLY64_C(10539347668937650562) },
{ SIMDE_POLY64_C(15025294898371468021) },
{ SIMDE_POLY64_C(15024812806712211292) },
{ SIMDE_POLY64_C(15024812709376198289) },
{ SIMDE_POLY64_C(15024812709372823844) },
{ SIMDE_POLY64_C(15024812709372824207) } },
{ { SIMDE_POLY64_C( 9850194256950043790) },
{ SIMDE_POLY64_C(16511549005505433808) },
{ SIMDE_POLY64_C( 9851387955006235864) },
{ SIMDE_POLY64_C( 9850194241164383659) },
{ SIMDE_POLY64_C( 9850194256978397596) },
{ SIMDE_POLY64_C( 9850194256950046290) },
{ SIMDE_POLY64_C( 9850194256950043790) } },
{ { SIMDE_POLY64_C( 8301908658016163289) },
{ SIMDE_POLY64_C( 7669394719010886911) },
{ SIMDE_POLY64_C( 8301070318653859636) },
{ SIMDE_POLY64_C( 8301908564416034615) },
{ SIMDE_POLY64_C( 8301908658016804435) },
{ SIMDE_POLY64_C( 8301908658016163494) },
{ SIMDE_POLY64_C( 8301908658016163289) } },
{ { SIMDE_POLY64_C( 4959046430361684174) },
{ SIMDE_POLY64_C( 1539690372583681571) },
{ SIMDE_POLY64_C( 4958651140219850627) },
{ SIMDE_POLY64_C( 4959046228718718750) },
{ SIMDE_POLY64_C( 4959046430358158376) },
{ SIMDE_POLY64_C( 4959046430361682261) },
{ SIMDE_POLY64_C( 4959046430361684174) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly64x1_t a = simde_vld1_p64(test_vec[i].a);
simde_poly64x1_t b = simde_vld1_p64(test_vec[i].b);
simde_poly64x1_t r13 = simde_vsri_n_p64(a, b, 13);
simde_poly64x1_t r26 = simde_vsri_n_p64(a, b, 26);
simde_poly64x1_t r39 = simde_vsri_n_p64(a, b, 39);
simde_poly64x1_t r52 = simde_vsri_n_p64(a, b, 52);
simde_poly64x1_t r64 = simde_vsri_n_p64(a, b, 64);
simde_test_arm_neon_assert_equal_p64x1(r13, simde_vld1_p64(test_vec[i].r13));
simde_test_arm_neon_assert_equal_p64x1(r26, simde_vld1_p64(test_vec[i].r26));
simde_test_arm_neon_assert_equal_p64x1(r39, simde_vld1_p64(test_vec[i].r39));
simde_test_arm_neon_assert_equal_p64x1(r52, simde_vld1_p64(test_vec[i].r52));
simde_test_arm_neon_assert_equal_p64x1(r64, simde_vld1_p64(test_vec[i].r64));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x1_t a = simde_test_arm_neon_random_p64x1();
simde_poly64x1_t b = simde_test_arm_neon_random_p64x1();
simde_poly64x1_t r13 = simde_vsri_n_p64(a, b, 13);
simde_poly64x1_t r26 = simde_vsri_n_p64(a, b, 26);
simde_poly64x1_t r39 = simde_vsri_n_p64(a, b, 39);
simde_poly64x1_t r52 = simde_vsri_n_p64(a, b, 52);
simde_poly64x1_t r64 = simde_vsri_n_p64(a, b, 64);
simde_test_arm_neon_write_p64x1(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p64x1(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x1(2, r13, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x1(2, r26, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x1(2, r39, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x1(2, r52, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x1(2, r64, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vsriq_n_p8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly8_t a[16];
simde_poly8_t b[16];
simde_poly8_t r1[16];
simde_poly8_t r3[16];
simde_poly8_t r5[16];
simde_poly8_t r8[16];
} test_vec[] = {
{ { SIMDE_POLY8_C(212), SIMDE_POLY8_C(240), SIMDE_POLY8_C(121), SIMDE_POLY8_C(115), SIMDE_POLY8_C(191), SIMDE_POLY8_C(126), SIMDE_POLY8_C(114), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C(201), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(224), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(161), SIMDE_POLY8_C(221), SIMDE_POLY8_C(203) },
{ SIMDE_POLY8_C(140), SIMDE_POLY8_C(148), SIMDE_POLY8_C(121), SIMDE_POLY8_C(179), SIMDE_POLY8_C(125), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(188),
SIMDE_POLY8_C(211), SIMDE_POLY8_C(241), SIMDE_POLY8_C(143), SIMDE_POLY8_C(143), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 39), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(126) },
{ SIMDE_POLY8_C(198), SIMDE_POLY8_C(202), SIMDE_POLY8_C( 60), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(190), SIMDE_POLY8_C(121), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 94),
SIMDE_POLY8_C(233), SIMDE_POLY8_C(120), SIMDE_POLY8_C(199), SIMDE_POLY8_C(199), SIMDE_POLY8_C( 85), SIMDE_POLY8_C(147), SIMDE_POLY8_C(141), SIMDE_POLY8_C(191) },
{ SIMDE_POLY8_C(209), SIMDE_POLY8_C(242), SIMDE_POLY8_C(111), SIMDE_POLY8_C(118), SIMDE_POLY8_C(175), SIMDE_POLY8_C(126), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 23),
SIMDE_POLY8_C(218), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(241), SIMDE_POLY8_C(209), SIMDE_POLY8_C(117), SIMDE_POLY8_C(164), SIMDE_POLY8_C(195), SIMDE_POLY8_C(207) },
{ SIMDE_POLY8_C(212), SIMDE_POLY8_C(244), SIMDE_POLY8_C(123), SIMDE_POLY8_C(117), SIMDE_POLY8_C(187), SIMDE_POLY8_C(127), SIMDE_POLY8_C(113), SIMDE_POLY8_C( 13),
SIMDE_POLY8_C(206), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(228), SIMDE_POLY8_C(204), SIMDE_POLY8_C(101), SIMDE_POLY8_C(161), SIMDE_POLY8_C(216), SIMDE_POLY8_C(203) },
{ SIMDE_POLY8_C(212), SIMDE_POLY8_C(240), SIMDE_POLY8_C(121), SIMDE_POLY8_C(115), SIMDE_POLY8_C(191), SIMDE_POLY8_C(126), SIMDE_POLY8_C(114), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C(201), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(224), SIMDE_POLY8_C(207), SIMDE_POLY8_C( 99), SIMDE_POLY8_C(161), SIMDE_POLY8_C(221), SIMDE_POLY8_C(203) } },
{ { SIMDE_POLY8_C( 23), SIMDE_POLY8_C(148), SIMDE_POLY8_C(241), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(100), SIMDE_POLY8_C(222), SIMDE_POLY8_C(220),
SIMDE_POLY8_C(137), SIMDE_POLY8_C(190), SIMDE_POLY8_C(171), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(136), SIMDE_POLY8_C(184), SIMDE_POLY8_C(235) },
{ SIMDE_POLY8_C( 28), SIMDE_POLY8_C( 49), SIMDE_POLY8_C(159), SIMDE_POLY8_C(153), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(246),
SIMDE_POLY8_C(189), SIMDE_POLY8_C(229), SIMDE_POLY8_C(134), SIMDE_POLY8_C(103), SIMDE_POLY8_C( 12), SIMDE_POLY8_C(161), SIMDE_POLY8_C(229), SIMDE_POLY8_C( 35) },
{ SIMDE_POLY8_C( 14), SIMDE_POLY8_C(152), SIMDE_POLY8_C(207), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(102), SIMDE_POLY8_C(171), SIMDE_POLY8_C(251),
SIMDE_POLY8_C(222), SIMDE_POLY8_C(242), SIMDE_POLY8_C(195), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 6), SIMDE_POLY8_C(208), SIMDE_POLY8_C(242), SIMDE_POLY8_C(145) },
{ SIMDE_POLY8_C( 3), SIMDE_POLY8_C(134), SIMDE_POLY8_C(243), SIMDE_POLY8_C(211), SIMDE_POLY8_C( 4), SIMDE_POLY8_C(121), SIMDE_POLY8_C(202), SIMDE_POLY8_C(222),
SIMDE_POLY8_C(151), SIMDE_POLY8_C(188), SIMDE_POLY8_C(176), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(148), SIMDE_POLY8_C(188), SIMDE_POLY8_C(228) },
{ SIMDE_POLY8_C( 16), SIMDE_POLY8_C(145), SIMDE_POLY8_C(244), SIMDE_POLY8_C(212), SIMDE_POLY8_C( 17), SIMDE_POLY8_C(102), SIMDE_POLY8_C(218), SIMDE_POLY8_C(223),
SIMDE_POLY8_C(141), SIMDE_POLY8_C(191), SIMDE_POLY8_C(172), SIMDE_POLY8_C(235), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(141), SIMDE_POLY8_C(191), SIMDE_POLY8_C(233) },
{ SIMDE_POLY8_C( 23), SIMDE_POLY8_C(148), SIMDE_POLY8_C(241), SIMDE_POLY8_C(214), SIMDE_POLY8_C( 19), SIMDE_POLY8_C(100), SIMDE_POLY8_C(222), SIMDE_POLY8_C(220),
SIMDE_POLY8_C(137), SIMDE_POLY8_C(190), SIMDE_POLY8_C(171), SIMDE_POLY8_C(236), SIMDE_POLY8_C( 95), SIMDE_POLY8_C(136), SIMDE_POLY8_C(184), SIMDE_POLY8_C(235) } },
{ { SIMDE_POLY8_C( 53), SIMDE_POLY8_C(214), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(196),
SIMDE_POLY8_C(149), SIMDE_POLY8_C(208), SIMDE_POLY8_C(176), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(104), SIMDE_POLY8_C(224), SIMDE_POLY8_C(117) },
{ SIMDE_POLY8_C(153), SIMDE_POLY8_C(127), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(188), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(100), SIMDE_POLY8_C(179), SIMDE_POLY8_C( 8),
SIMDE_POLY8_C( 74), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 86), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 15) },
{ SIMDE_POLY8_C( 76), SIMDE_POLY8_C(191), SIMDE_POLY8_C(135), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(178), SIMDE_POLY8_C( 89), SIMDE_POLY8_C(132),
SIMDE_POLY8_C(165), SIMDE_POLY8_C(156), SIMDE_POLY8_C(183), SIMDE_POLY8_C(171), SIMDE_POLY8_C(109), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 7) },
{ SIMDE_POLY8_C( 51), SIMDE_POLY8_C(207), SIMDE_POLY8_C(225), SIMDE_POLY8_C( 87), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(204), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(193),
SIMDE_POLY8_C(137), SIMDE_POLY8_C(199), SIMDE_POLY8_C(173), SIMDE_POLY8_C(234), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(106), SIMDE_POLY8_C(239), SIMDE_POLY8_C( 97) },
{ SIMDE_POLY8_C( 52), SIMDE_POLY8_C(211), SIMDE_POLY8_C(248), SIMDE_POLY8_C( 77), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(211), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(192),
SIMDE_POLY8_C(146), SIMDE_POLY8_C(209), SIMDE_POLY8_C(179), SIMDE_POLY8_C(242), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(106), SIMDE_POLY8_C(227), SIMDE_POLY8_C(112) },
{ SIMDE_POLY8_C( 53), SIMDE_POLY8_C(214), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 72), SIMDE_POLY8_C( 58), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 36), SIMDE_POLY8_C(196),
SIMDE_POLY8_C(149), SIMDE_POLY8_C(208), SIMDE_POLY8_C(176), SIMDE_POLY8_C(244), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(104), SIMDE_POLY8_C(224), SIMDE_POLY8_C(117) } },
{ { SIMDE_POLY8_C( 42), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(224),
SIMDE_POLY8_C( 76), SIMDE_POLY8_C(217), SIMDE_POLY8_C(213), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(219) },
{ SIMDE_POLY8_C( 52), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(152), SIMDE_POLY8_C(127), SIMDE_POLY8_C(141), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(135), SIMDE_POLY8_C(215),
SIMDE_POLY8_C(132), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 94), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(167), SIMDE_POLY8_C(109), SIMDE_POLY8_C(116) },
{ SIMDE_POLY8_C( 26), SIMDE_POLY8_C( 20), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 63), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 37), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(235),
SIMDE_POLY8_C( 66), SIMDE_POLY8_C(251), SIMDE_POLY8_C(150), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(211), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(186) },
{ SIMDE_POLY8_C( 38), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 83), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 81), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 48), SIMDE_POLY8_C(250),
SIMDE_POLY8_C( 80), SIMDE_POLY8_C(222), SIMDE_POLY8_C(197), SIMDE_POLY8_C(171), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(180), SIMDE_POLY8_C( 13), SIMDE_POLY8_C(206) },
{ SIMDE_POLY8_C( 41), SIMDE_POLY8_C(113), SIMDE_POLY8_C( 92), SIMDE_POLY8_C( 99), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(122), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(230),
SIMDE_POLY8_C( 76), SIMDE_POLY8_C(223), SIMDE_POLY8_C(209), SIMDE_POLY8_C(162), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 27), SIMDE_POLY8_C(219) },
{ SIMDE_POLY8_C( 42), SIMDE_POLY8_C(115), SIMDE_POLY8_C( 88), SIMDE_POLY8_C(101), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 41), SIMDE_POLY8_C(224),
SIMDE_POLY8_C( 76), SIMDE_POLY8_C(217), SIMDE_POLY8_C(213), SIMDE_POLY8_C(165), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(181), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(219) } },
{ { SIMDE_POLY8_C( 27), SIMDE_POLY8_C(197), SIMDE_POLY8_C(217), SIMDE_POLY8_C(102), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(142),
SIMDE_POLY8_C(220), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 4) },
{ SIMDE_POLY8_C(118), SIMDE_POLY8_C(145), SIMDE_POLY8_C(131), SIMDE_POLY8_C( 3), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 10), SIMDE_POLY8_C(218), SIMDE_POLY8_C( 96),
SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 7), SIMDE_POLY8_C(190), SIMDE_POLY8_C( 74), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(191), SIMDE_POLY8_C(202) },
{ SIMDE_POLY8_C( 59), SIMDE_POLY8_C(200), SIMDE_POLY8_C(193), SIMDE_POLY8_C( 1), SIMDE_POLY8_C(110), SIMDE_POLY8_C( 5), SIMDE_POLY8_C(109), SIMDE_POLY8_C(176),
SIMDE_POLY8_C(128), SIMDE_POLY8_C( 3), SIMDE_POLY8_C( 95), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(215), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(223), SIMDE_POLY8_C(101) },
{ SIMDE_POLY8_C( 14), SIMDE_POLY8_C(210), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 91), SIMDE_POLY8_C( 1), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(140),
SIMDE_POLY8_C(192), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 9), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 69), SIMDE_POLY8_C(247), SIMDE_POLY8_C( 25) },
{ SIMDE_POLY8_C( 27), SIMDE_POLY8_C(196), SIMDE_POLY8_C(220), SIMDE_POLY8_C( 96), SIMDE_POLY8_C( 70), SIMDE_POLY8_C( 0), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(139),
SIMDE_POLY8_C(216), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(213), SIMDE_POLY8_C( 73), SIMDE_POLY8_C(253), SIMDE_POLY8_C( 6) },
{ SIMDE_POLY8_C( 27), SIMDE_POLY8_C(197), SIMDE_POLY8_C(217), SIMDE_POLY8_C(102), SIMDE_POLY8_C( 66), SIMDE_POLY8_C( 2), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(142),
SIMDE_POLY8_C(220), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 51), SIMDE_POLY8_C( 30), SIMDE_POLY8_C(208), SIMDE_POLY8_C( 77), SIMDE_POLY8_C(249), SIMDE_POLY8_C( 4) } },
{ { SIMDE_POLY8_C(241), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(155), SIMDE_POLY8_C(118), SIMDE_POLY8_C(194), SIMDE_POLY8_C(119),
SIMDE_POLY8_C(146), SIMDE_POLY8_C(245), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(142), SIMDE_POLY8_C(103), SIMDE_POLY8_C(185) },
{ SIMDE_POLY8_C( 32), SIMDE_POLY8_C(234), SIMDE_POLY8_C(188), SIMDE_POLY8_C(252), SIMDE_POLY8_C(245), SIMDE_POLY8_C(150), SIMDE_POLY8_C( 93), SIMDE_POLY8_C(245),
SIMDE_POLY8_C(157), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 64), SIMDE_POLY8_C( 76), SIMDE_POLY8_C( 71), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 22), SIMDE_POLY8_C( 57) },
{ SIMDE_POLY8_C(144), SIMDE_POLY8_C(245), SIMDE_POLY8_C( 94), SIMDE_POLY8_C(126), SIMDE_POLY8_C(250), SIMDE_POLY8_C( 75), SIMDE_POLY8_C(174), SIMDE_POLY8_C(122),
SIMDE_POLY8_C(206), SIMDE_POLY8_C(141), SIMDE_POLY8_C(160), SIMDE_POLY8_C( 38), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(UINT8_MAX), SIMDE_POLY8_C( 11), SIMDE_POLY8_C(156) },
{ SIMDE_POLY8_C(228), SIMDE_POLY8_C(157), SIMDE_POLY8_C( 55), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(158), SIMDE_POLY8_C(114), SIMDE_POLY8_C(203), SIMDE_POLY8_C(126),
SIMDE_POLY8_C(147), SIMDE_POLY8_C(227), SIMDE_POLY8_C(136), SIMDE_POLY8_C(105), SIMDE_POLY8_C( 72), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 98), SIMDE_POLY8_C(167) },
{ SIMDE_POLY8_C(241), SIMDE_POLY8_C(159), SIMDE_POLY8_C( 53), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(159), SIMDE_POLY8_C(116), SIMDE_POLY8_C(194), SIMDE_POLY8_C(119),
SIMDE_POLY8_C(148), SIMDE_POLY8_C(240), SIMDE_POLY8_C(146), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 66), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 96), SIMDE_POLY8_C(185) },
{ SIMDE_POLY8_C(241), SIMDE_POLY8_C(152), SIMDE_POLY8_C( 48), SIMDE_POLY8_C( 51), SIMDE_POLY8_C(155), SIMDE_POLY8_C(118), SIMDE_POLY8_C(194), SIMDE_POLY8_C(119),
SIMDE_POLY8_C(146), SIMDE_POLY8_C(245), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 67), SIMDE_POLY8_C(142), SIMDE_POLY8_C(103), SIMDE_POLY8_C(185) } },
{ { SIMDE_POLY8_C(151), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 79),
SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(177), SIMDE_POLY8_C(103), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(237) },
{ SIMDE_POLY8_C( 3), SIMDE_POLY8_C(220), SIMDE_POLY8_C(233), SIMDE_POLY8_C(248), SIMDE_POLY8_C(114), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(237), SIMDE_POLY8_C( 15),
SIMDE_POLY8_C( 98), SIMDE_POLY8_C( 45), SIMDE_POLY8_C( 92), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 44), SIMDE_POLY8_C(114), SIMDE_POLY8_C(226), SIMDE_POLY8_C(196) },
{ SIMDE_POLY8_C(129), SIMDE_POLY8_C(110), SIMDE_POLY8_C(116), SIMDE_POLY8_C(124), SIMDE_POLY8_C(185), SIMDE_POLY8_C( 35), SIMDE_POLY8_C(246), SIMDE_POLY8_C( 7),
SIMDE_POLY8_C( 49), SIMDE_POLY8_C( 22), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(150), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(113), SIMDE_POLY8_C(226) },
{ SIMDE_POLY8_C(128), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(125), SIMDE_POLY8_C( 63), SIMDE_POLY8_C(174), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 65),
SIMDE_POLY8_C( 44), SIMDE_POLY8_C( 37), SIMDE_POLY8_C(171), SIMDE_POLY8_C(117), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 14), SIMDE_POLY8_C( 60), SIMDE_POLY8_C(248) },
{ SIMDE_POLY8_C(144), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(111), SIMDE_POLY8_C( 55), SIMDE_POLY8_C(187), SIMDE_POLY8_C( 42), SIMDE_POLY8_C(175), SIMDE_POLY8_C( 72),
SIMDE_POLY8_C( 35), SIMDE_POLY8_C( 57), SIMDE_POLY8_C(178), SIMDE_POLY8_C(101), SIMDE_POLY8_C(201), SIMDE_POLY8_C( 27), SIMDE_POLY8_C( 39), SIMDE_POLY8_C(238) },
{ SIMDE_POLY8_C(151), SIMDE_POLY8_C( 70), SIMDE_POLY8_C(108), SIMDE_POLY8_C( 50), SIMDE_POLY8_C(189), SIMDE_POLY8_C( 46), SIMDE_POLY8_C(169), SIMDE_POLY8_C( 79),
SIMDE_POLY8_C( 36), SIMDE_POLY8_C( 62), SIMDE_POLY8_C(177), SIMDE_POLY8_C(103), SIMDE_POLY8_C(205), SIMDE_POLY8_C( 24), SIMDE_POLY8_C( 32), SIMDE_POLY8_C(237) } },
{ { SIMDE_POLY8_C(185), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(246), SIMDE_POLY8_C(118), SIMDE_POLY8_C(125), SIMDE_POLY8_C(160), SIMDE_POLY8_C(197), SIMDE_POLY8_C(161),
SIMDE_POLY8_C(222), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(171), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(152), SIMDE_POLY8_C(146) },
{ SIMDE_POLY8_C( 4), SIMDE_POLY8_C(130), SIMDE_POLY8_C(138), SIMDE_POLY8_C(118), SIMDE_POLY8_C(200), SIMDE_POLY8_C(119), SIMDE_POLY8_C(134), SIMDE_POLY8_C( 42),
SIMDE_POLY8_C(165), SIMDE_POLY8_C(226), SIMDE_POLY8_C(212), SIMDE_POLY8_C(209), SIMDE_POLY8_C( 84), SIMDE_POLY8_C(182), SIMDE_POLY8_C(149), SIMDE_POLY8_C( 13) },
{ SIMDE_POLY8_C(130), SIMDE_POLY8_C( 65), SIMDE_POLY8_C(197), SIMDE_POLY8_C( 59), SIMDE_POLY8_C(100), SIMDE_POLY8_C(187), SIMDE_POLY8_C(195), SIMDE_POLY8_C(149),
SIMDE_POLY8_C(210), SIMDE_POLY8_C(113), SIMDE_POLY8_C(106), SIMDE_POLY8_C(232), SIMDE_POLY8_C(170), SIMDE_POLY8_C( 91), SIMDE_POLY8_C(202), SIMDE_POLY8_C(134) },
{ SIMDE_POLY8_C(160), SIMDE_POLY8_C( 80), SIMDE_POLY8_C(241), SIMDE_POLY8_C(110), SIMDE_POLY8_C(121), SIMDE_POLY8_C(174), SIMDE_POLY8_C(208), SIMDE_POLY8_C(165),
SIMDE_POLY8_C(212), SIMDE_POLY8_C(124), SIMDE_POLY8_C( 26), SIMDE_POLY8_C(186), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 54), SIMDE_POLY8_C(146), SIMDE_POLY8_C(129) },
{ SIMDE_POLY8_C(184), SIMDE_POLY8_C( 76), SIMDE_POLY8_C(244), SIMDE_POLY8_C(115), SIMDE_POLY8_C(126), SIMDE_POLY8_C(163), SIMDE_POLY8_C(196), SIMDE_POLY8_C(161),
SIMDE_POLY8_C(221), SIMDE_POLY8_C(119), SIMDE_POLY8_C( 14), SIMDE_POLY8_C(174), SIMDE_POLY8_C(138), SIMDE_POLY8_C( 45), SIMDE_POLY8_C(156), SIMDE_POLY8_C(144) },
{ SIMDE_POLY8_C(185), SIMDE_POLY8_C( 79), SIMDE_POLY8_C(246), SIMDE_POLY8_C(118), SIMDE_POLY8_C(125), SIMDE_POLY8_C(160), SIMDE_POLY8_C(197), SIMDE_POLY8_C(161),
SIMDE_POLY8_C(222), SIMDE_POLY8_C(118), SIMDE_POLY8_C( 8), SIMDE_POLY8_C(171), SIMDE_POLY8_C(143), SIMDE_POLY8_C( 40), SIMDE_POLY8_C(152), SIMDE_POLY8_C(146) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly8x16_t a = simde_vld1q_p8(test_vec[i].a);
simde_poly8x16_t b = simde_vld1q_p8(test_vec[i].b);
simde_poly8x16_t r1 = simde_vsriq_n_p8(a, b, 1);
simde_poly8x16_t r3 = simde_vsriq_n_p8(a, b, 3);
simde_poly8x16_t r5 = simde_vsriq_n_p8(a, b, 5);
simde_poly8x16_t r8 = simde_vsriq_n_p8(a, b, 8);
simde_test_arm_neon_assert_equal_p8x16(r1, simde_vld1q_p8(test_vec[i].r1));
simde_test_arm_neon_assert_equal_p8x16(r3, simde_vld1q_p8(test_vec[i].r3));
simde_test_arm_neon_assert_equal_p8x16(r5, simde_vld1q_p8(test_vec[i].r5));
simde_test_arm_neon_assert_equal_p8x16(r8, simde_vld1q_p8(test_vec[i].r8));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly8x16_t a = simde_test_arm_neon_random_p8x16();
simde_poly8x16_t b = simde_test_arm_neon_random_p8x16();
simde_poly8x16_t r1 = simde_vsriq_n_p8(a, b, 1);
simde_poly8x16_t r3 = simde_vsriq_n_p8(a, b, 3);
simde_poly8x16_t r5 = simde_vsriq_n_p8(a, b, 5);
simde_poly8x16_t r8 = simde_vsriq_n_p8(a, b, 8);
simde_test_arm_neon_write_p8x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p8x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x16(2, r1, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x16(2, r3, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x16(2, r5, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p8x16(2, r8, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vsriq_n_p16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly16_t a[8];
simde_poly16_t b[8];
simde_poly16_t r3[8];
simde_poly16_t r6[8];
simde_poly16_t r10[8];
simde_poly16_t r13[8];
simde_poly16_t r16[8];
} test_vec[] = {
{ { SIMDE_POLY16_C(35845), SIMDE_POLY16_C(33667), SIMDE_POLY16_C(18476), SIMDE_POLY16_C( 2596), SIMDE_POLY16_C(11711), SIMDE_POLY16_C(20150), SIMDE_POLY16_C(20053), SIMDE_POLY16_C(23264) },
{ SIMDE_POLY16_C(27344), SIMDE_POLY16_C(39376), SIMDE_POLY16_C(22241), SIMDE_POLY16_C(34499), SIMDE_POLY16_C(38712), SIMDE_POLY16_C(36184), SIMDE_POLY16_C(60750), SIMDE_POLY16_C(21402) },
{ SIMDE_POLY16_C(36186), SIMDE_POLY16_C(37690), SIMDE_POLY16_C(19164), SIMDE_POLY16_C( 4312), SIMDE_POLY16_C(13031), SIMDE_POLY16_C(20907), SIMDE_POLY16_C(23977), SIMDE_POLY16_C(19059) },
{ SIMDE_POLY16_C(36267), SIMDE_POLY16_C(33383), SIMDE_POLY16_C(18779), SIMDE_POLY16_C( 2587), SIMDE_POLY16_C(11868), SIMDE_POLY16_C(20021), SIMDE_POLY16_C(20405), SIMDE_POLY16_C(22862) },
{ SIMDE_POLY16_C(35866), SIMDE_POLY16_C(33702), SIMDE_POLY16_C(18453), SIMDE_POLY16_C( 2593), SIMDE_POLY16_C(11685), SIMDE_POLY16_C(20131), SIMDE_POLY16_C(20091), SIMDE_POLY16_C(23252) },
{ SIMDE_POLY16_C(35843), SIMDE_POLY16_C(33668), SIMDE_POLY16_C(18474), SIMDE_POLY16_C( 2596), SIMDE_POLY16_C(11708), SIMDE_POLY16_C(20148), SIMDE_POLY16_C(20055), SIMDE_POLY16_C(23266) },
{ SIMDE_POLY16_C(35845), SIMDE_POLY16_C(33667), SIMDE_POLY16_C(18476), SIMDE_POLY16_C( 2596), SIMDE_POLY16_C(11711), SIMDE_POLY16_C(20150), SIMDE_POLY16_C(20053), SIMDE_POLY16_C(23264) } },
{ { SIMDE_POLY16_C( 7801), SIMDE_POLY16_C(42454), SIMDE_POLY16_C(64358), SIMDE_POLY16_C( 9648), SIMDE_POLY16_C(26152), SIMDE_POLY16_C(32115), SIMDE_POLY16_C(21428), SIMDE_POLY16_C(34263) },
{ SIMDE_POLY16_C(43197), SIMDE_POLY16_C(40734), SIMDE_POLY16_C(57854), SIMDE_POLY16_C(14117), SIMDE_POLY16_C(32121), SIMDE_POLY16_C(51140), SIMDE_POLY16_C(24171), SIMDE_POLY16_C(58394) },
{ SIMDE_POLY16_C( 5399), SIMDE_POLY16_C(46051), SIMDE_POLY16_C(64575), SIMDE_POLY16_C( 9956), SIMDE_POLY16_C(28591), SIMDE_POLY16_C(30968), SIMDE_POLY16_C(19405), SIMDE_POLY16_C(40067) },
{ SIMDE_POLY16_C( 7842), SIMDE_POLY16_C(42620), SIMDE_POLY16_C(64391), SIMDE_POLY16_C( 9436), SIMDE_POLY16_C(26101), SIMDE_POLY16_C(32543), SIMDE_POLY16_C(20857), SIMDE_POLY16_C(34704) },
{ SIMDE_POLY16_C( 7786), SIMDE_POLY16_C(42471), SIMDE_POLY16_C(64376), SIMDE_POLY16_C( 9613), SIMDE_POLY16_C(26143), SIMDE_POLY16_C(32113), SIMDE_POLY16_C(21399), SIMDE_POLY16_C(34297) },
{ SIMDE_POLY16_C( 7805), SIMDE_POLY16_C(42452), SIMDE_POLY16_C(64359), SIMDE_POLY16_C( 9649), SIMDE_POLY16_C(26155), SIMDE_POLY16_C(32118), SIMDE_POLY16_C(21426), SIMDE_POLY16_C(34263) },
{ SIMDE_POLY16_C( 7801), SIMDE_POLY16_C(42454), SIMDE_POLY16_C(64358), SIMDE_POLY16_C( 9648), SIMDE_POLY16_C(26152), SIMDE_POLY16_C(32115), SIMDE_POLY16_C(21428), SIMDE_POLY16_C(34263) } },
{ { SIMDE_POLY16_C(61820), SIMDE_POLY16_C(58250), SIMDE_POLY16_C(15084), SIMDE_POLY16_C( 5128), SIMDE_POLY16_C(31904), SIMDE_POLY16_C(21649), SIMDE_POLY16_C(27087), SIMDE_POLY16_C(36313) },
{ SIMDE_POLY16_C(63249), SIMDE_POLY16_C( 3884), SIMDE_POLY16_C(20953), SIMDE_POLY16_C(21062), SIMDE_POLY16_C( 2767), SIMDE_POLY16_C(14873), SIMDE_POLY16_C(13161), SIMDE_POLY16_C(58654) },
{ SIMDE_POLY16_C(65250), SIMDE_POLY16_C(57829), SIMDE_POLY16_C(10811), SIMDE_POLY16_C( 2632), SIMDE_POLY16_C(24921), SIMDE_POLY16_C(18243), SIMDE_POLY16_C(26221), SIMDE_POLY16_C(40099) },
{ SIMDE_POLY16_C(62428), SIMDE_POLY16_C(57404), SIMDE_POLY16_C(14663), SIMDE_POLY16_C( 5449), SIMDE_POLY16_C(31787), SIMDE_POLY16_C(21736), SIMDE_POLY16_C(26829), SIMDE_POLY16_C(36756) },
{ SIMDE_POLY16_C(61821), SIMDE_POLY16_C(58243), SIMDE_POLY16_C(15060), SIMDE_POLY16_C( 5140), SIMDE_POLY16_C(31874), SIMDE_POLY16_C(21646), SIMDE_POLY16_C(27084), SIMDE_POLY16_C(36345) },
{ SIMDE_POLY16_C(61823), SIMDE_POLY16_C(58248), SIMDE_POLY16_C(15082), SIMDE_POLY16_C( 5130), SIMDE_POLY16_C(31904), SIMDE_POLY16_C(21649), SIMDE_POLY16_C(27081), SIMDE_POLY16_C(36319) },
{ SIMDE_POLY16_C(61820), SIMDE_POLY16_C(58250), SIMDE_POLY16_C(15084), SIMDE_POLY16_C( 5128), SIMDE_POLY16_C(31904), SIMDE_POLY16_C(21649), SIMDE_POLY16_C(27087), SIMDE_POLY16_C(36313) } },
{ { SIMDE_POLY16_C(43044), SIMDE_POLY16_C( 4296), SIMDE_POLY16_C(53730), SIMDE_POLY16_C(33316), SIMDE_POLY16_C(46669), SIMDE_POLY16_C( 7383), SIMDE_POLY16_C(45087), SIMDE_POLY16_C(12457) },
{ SIMDE_POLY16_C(54696), SIMDE_POLY16_C(33087), SIMDE_POLY16_C(34343), SIMDE_POLY16_C(63187), SIMDE_POLY16_C(60560), SIMDE_POLY16_C(63792), SIMDE_POLY16_C(19999), SIMDE_POLY16_C(17631) },
{ SIMDE_POLY16_C(47797), SIMDE_POLY16_C( 4135), SIMDE_POLY16_C(53444), SIMDE_POLY16_C(40666), SIMDE_POLY16_C(48530), SIMDE_POLY16_C( 7974), SIMDE_POLY16_C(43459), SIMDE_POLY16_C(10395) },
{ SIMDE_POLY16_C(43862), SIMDE_POLY16_C( 4612), SIMDE_POLY16_C(53784), SIMDE_POLY16_C(33755), SIMDE_POLY16_C(47026), SIMDE_POLY16_C( 8164), SIMDE_POLY16_C(45368), SIMDE_POLY16_C(12563) },
{ SIMDE_POLY16_C(43061), SIMDE_POLY16_C( 4320), SIMDE_POLY16_C(53729), SIMDE_POLY16_C(33341), SIMDE_POLY16_C(46715), SIMDE_POLY16_C( 7422), SIMDE_POLY16_C(45075), SIMDE_POLY16_C(12433) },
{ SIMDE_POLY16_C(43046), SIMDE_POLY16_C( 4300), SIMDE_POLY16_C(53732), SIMDE_POLY16_C(33319), SIMDE_POLY16_C(46671), SIMDE_POLY16_C( 7383), SIMDE_POLY16_C(45082), SIMDE_POLY16_C(12458) },
{ SIMDE_POLY16_C(43044), SIMDE_POLY16_C( 4296), SIMDE_POLY16_C(53730), SIMDE_POLY16_C(33316), SIMDE_POLY16_C(46669), SIMDE_POLY16_C( 7383), SIMDE_POLY16_C(45087), SIMDE_POLY16_C(12457) } },
{ { SIMDE_POLY16_C(42999), SIMDE_POLY16_C(55636), SIMDE_POLY16_C(31096), SIMDE_POLY16_C(50524), SIMDE_POLY16_C(13103), SIMDE_POLY16_C(20194), SIMDE_POLY16_C(35811), SIMDE_POLY16_C(35710) },
{ SIMDE_POLY16_C(48481), SIMDE_POLY16_C(34828), SIMDE_POLY16_C(57155), SIMDE_POLY16_C(54398), SIMDE_POLY16_C(44747), SIMDE_POLY16_C(60365), SIMDE_POLY16_C(44284), SIMDE_POLY16_C(62255) },
{ SIMDE_POLY16_C(47020), SIMDE_POLY16_C(53505), SIMDE_POLY16_C(31720), SIMDE_POLY16_C(55951), SIMDE_POLY16_C(13785), SIMDE_POLY16_C(23929), SIMDE_POLY16_C(38303), SIMDE_POLY16_C(40549) },
{ SIMDE_POLY16_C(42741), SIMDE_POLY16_C(55840), SIMDE_POLY16_C(31613), SIMDE_POLY16_C(51025), SIMDE_POLY16_C(12987), SIMDE_POLY16_C(20399), SIMDE_POLY16_C(35507), SIMDE_POLY16_C(35788) },
{ SIMDE_POLY16_C(42991), SIMDE_POLY16_C(55650), SIMDE_POLY16_C(31095), SIMDE_POLY16_C(50549), SIMDE_POLY16_C(13099), SIMDE_POLY16_C(20218), SIMDE_POLY16_C(35819), SIMDE_POLY16_C(35708) },
{ SIMDE_POLY16_C(42997), SIMDE_POLY16_C(55636), SIMDE_POLY16_C(31102), SIMDE_POLY16_C(50526), SIMDE_POLY16_C(13101), SIMDE_POLY16_C(20199), SIMDE_POLY16_C(35813), SIMDE_POLY16_C(35711) },
{ SIMDE_POLY16_C(42999), SIMDE_POLY16_C(55636), SIMDE_POLY16_C(31096), SIMDE_POLY16_C(50524), SIMDE_POLY16_C(13103), SIMDE_POLY16_C(20194), SIMDE_POLY16_C(35811), SIMDE_POLY16_C(35710) } },
{ { SIMDE_POLY16_C(33620), SIMDE_POLY16_C(52429), SIMDE_POLY16_C(10748), SIMDE_POLY16_C(11154), SIMDE_POLY16_C(29788), SIMDE_POLY16_C(16249), SIMDE_POLY16_C(63487), SIMDE_POLY16_C(24779) },
{ SIMDE_POLY16_C(55221), SIMDE_POLY16_C(63720), SIMDE_POLY16_C(26295), SIMDE_POLY16_C(33484), SIMDE_POLY16_C(39444), SIMDE_POLY16_C( 4461), SIMDE_POLY16_C(40006), SIMDE_POLY16_C(39428) },
{ SIMDE_POLY16_C(39670), SIMDE_POLY16_C(57117), SIMDE_POLY16_C(11478), SIMDE_POLY16_C(12377), SIMDE_POLY16_C(29506), SIMDE_POLY16_C( 8749), SIMDE_POLY16_C(62344), SIMDE_POLY16_C(29504) },
{ SIMDE_POLY16_C(33630), SIMDE_POLY16_C(53219), SIMDE_POLY16_C(10650), SIMDE_POLY16_C(10763), SIMDE_POLY16_C(30312), SIMDE_POLY16_C(15429), SIMDE_POLY16_C(63089), SIMDE_POLY16_C(25192) },
{ SIMDE_POLY16_C(33653), SIMDE_POLY16_C(52478), SIMDE_POLY16_C(10713), SIMDE_POLY16_C(11168), SIMDE_POLY16_C(29798), SIMDE_POLY16_C(16196), SIMDE_POLY16_C(63463), SIMDE_POLY16_C(24806) },
{ SIMDE_POLY16_C(33622), SIMDE_POLY16_C(52431), SIMDE_POLY16_C(10747), SIMDE_POLY16_C(11156), SIMDE_POLY16_C(29788), SIMDE_POLY16_C(16248), SIMDE_POLY16_C(63484), SIMDE_POLY16_C(24780) },
{ SIMDE_POLY16_C(33620), SIMDE_POLY16_C(52429), SIMDE_POLY16_C(10748), SIMDE_POLY16_C(11154), SIMDE_POLY16_C(29788), SIMDE_POLY16_C(16249), SIMDE_POLY16_C(63487), SIMDE_POLY16_C(24779) } },
{ { SIMDE_POLY16_C(53536), SIMDE_POLY16_C( 7271), SIMDE_POLY16_C(63994), SIMDE_POLY16_C(22088), SIMDE_POLY16_C(49517), SIMDE_POLY16_C(27798), SIMDE_POLY16_C(25017), SIMDE_POLY16_C(28365) },
{ SIMDE_POLY16_C(46392), SIMDE_POLY16_C(61286), SIMDE_POLY16_C(13084), SIMDE_POLY16_C(12402), SIMDE_POLY16_C(57293), SIMDE_POLY16_C( 4929), SIMDE_POLY16_C(18044), SIMDE_POLY16_C(40110) },
{ SIMDE_POLY16_C(54951), SIMDE_POLY16_C( 7660), SIMDE_POLY16_C(58979), SIMDE_POLY16_C(17934), SIMDE_POLY16_C(56313), SIMDE_POLY16_C(25192), SIMDE_POLY16_C(26831), SIMDE_POLY16_C(29589) },
{ SIMDE_POLY16_C(53972), SIMDE_POLY16_C( 8125), SIMDE_POLY16_C(63692), SIMDE_POLY16_C(21697), SIMDE_POLY16_C(50047), SIMDE_POLY16_C(27725), SIMDE_POLY16_C(24857), SIMDE_POLY16_C(28274) },
{ SIMDE_POLY16_C(53549), SIMDE_POLY16_C( 7291), SIMDE_POLY16_C(63948), SIMDE_POLY16_C(22092), SIMDE_POLY16_C(49527), SIMDE_POLY16_C(27780), SIMDE_POLY16_C(24977), SIMDE_POLY16_C(28391) },
{ SIMDE_POLY16_C(53541), SIMDE_POLY16_C( 7271), SIMDE_POLY16_C(63993), SIMDE_POLY16_C(22089), SIMDE_POLY16_C(49518), SIMDE_POLY16_C(27792), SIMDE_POLY16_C(25018), SIMDE_POLY16_C(28364) },
{ SIMDE_POLY16_C(53536), SIMDE_POLY16_C( 7271), SIMDE_POLY16_C(63994), SIMDE_POLY16_C(22088), SIMDE_POLY16_C(49517), SIMDE_POLY16_C(27798), SIMDE_POLY16_C(25017), SIMDE_POLY16_C(28365) } },
{ { SIMDE_POLY16_C( 5399), SIMDE_POLY16_C( 4792), SIMDE_POLY16_C( 14), SIMDE_POLY16_C(31592), SIMDE_POLY16_C(65218), SIMDE_POLY16_C(31719), SIMDE_POLY16_C(46175), SIMDE_POLY16_C(39145) },
{ SIMDE_POLY16_C(20330), SIMDE_POLY16_C(34439), SIMDE_POLY16_C(63874), SIMDE_POLY16_C(20406), SIMDE_POLY16_C(63705), SIMDE_POLY16_C(21859), SIMDE_POLY16_C( 4414), SIMDE_POLY16_C(22001) },
{ SIMDE_POLY16_C( 2541), SIMDE_POLY16_C( 4304), SIMDE_POLY16_C( 7984), SIMDE_POLY16_C(27126), SIMDE_POLY16_C(65307), SIMDE_POLY16_C(27308), SIMDE_POLY16_C(41511), SIMDE_POLY16_C(35518) },
{ SIMDE_POLY16_C( 5437), SIMDE_POLY16_C( 4634), SIMDE_POLY16_C( 998), SIMDE_POLY16_C(31038), SIMDE_POLY16_C(65507), SIMDE_POLY16_C(31061), SIMDE_POLY16_C(46148), SIMDE_POLY16_C(39255) },
{ SIMDE_POLY16_C( 5395), SIMDE_POLY16_C( 4769), SIMDE_POLY16_C( 62), SIMDE_POLY16_C(31571), SIMDE_POLY16_C(65278), SIMDE_POLY16_C(31701), SIMDE_POLY16_C(46148), SIMDE_POLY16_C(39125) },
{ SIMDE_POLY16_C( 5394), SIMDE_POLY16_C( 4796), SIMDE_POLY16_C( 15), SIMDE_POLY16_C(31594), SIMDE_POLY16_C(65223), SIMDE_POLY16_C(31714), SIMDE_POLY16_C(46168), SIMDE_POLY16_C(39146) },
{ SIMDE_POLY16_C( 5399), SIMDE_POLY16_C( 4792), SIMDE_POLY16_C( 14), SIMDE_POLY16_C(31592), SIMDE_POLY16_C(65218), SIMDE_POLY16_C(31719), SIMDE_POLY16_C(46175), SIMDE_POLY16_C(39145) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly16x8_t a = simde_vld1q_p16(test_vec[i].a);
simde_poly16x8_t b = simde_vld1q_p16(test_vec[i].b);
simde_poly16x8_t r3 = simde_vsriq_n_p16(a, b, 3);
simde_poly16x8_t r6 = simde_vsriq_n_p16(a, b, 6);
simde_poly16x8_t r10 = simde_vsriq_n_p16(a, b, 10);
simde_poly16x8_t r13 = simde_vsriq_n_p16(a, b, 13);
simde_poly16x8_t r16 = simde_vsriq_n_p16(a, b, 16);
simde_test_arm_neon_assert_equal_p16x8(r3, simde_vld1q_p16(test_vec[i].r3));
simde_test_arm_neon_assert_equal_p16x8(r6, simde_vld1q_p16(test_vec[i].r6));
simde_test_arm_neon_assert_equal_p16x8(r10, simde_vld1q_p16(test_vec[i].r10));
simde_test_arm_neon_assert_equal_p16x8(r13, simde_vld1q_p16(test_vec[i].r13));
simde_test_arm_neon_assert_equal_p16x8(r16, simde_vld1q_p16(test_vec[i].r16));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly16x8_t a = simde_test_arm_neon_random_p16x8();
simde_poly16x8_t b = simde_test_arm_neon_random_p16x8();
simde_poly16x8_t r3 = simde_vsriq_n_p16(a, b, 3);
simde_poly16x8_t r6 = simde_vsriq_n_p16(a, b, 6);
simde_poly16x8_t r10 = simde_vsriq_n_p16(a, b, 10);
simde_poly16x8_t r13 = simde_vsriq_n_p16(a, b, 13);
simde_poly16x8_t r16 = simde_vsriq_n_p16(a, b, 16);
simde_test_arm_neon_write_p16x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p16x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x8(2, r3, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x8(2, r6, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x8(2, r10, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x8(2, r13, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p16x8(2, r16, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_vsriq_n_p64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
struct {
simde_poly64_t a[2];
simde_poly64_t b[2];
simde_poly64_t r13[2];
simde_poly64_t r26[2];
simde_poly64_t r39[2];
simde_poly64_t r52[2];
simde_poly64_t r64[2];
} test_vec[] = {
{ { SIMDE_POLY64_C( 4365139260797155633), SIMDE_POLY64_C(11130453238157857993) },
{ SIMDE_POLY64_C(14955214256351167976), SIMDE_POLY64_C( 2141459339168947609) },
{ SIMDE_POLY64_C( 4365813626599787866), SIMDE_POLY64_C(11128656087843234012) },
{ SIMDE_POLY64_C( 4365139450446350418), SIMDE_POLY64_C(11130452996909923091) },
{ SIMDE_POLY64_C( 4365139260808828720), SIMDE_POLY64_C(11130453238136664059) },
{ SIMDE_POLY64_C( 4365139260797156600), SIMDE_POLY64_C(11130453238157857243) },
{ SIMDE_POLY64_C( 4365139260797155633), SIMDE_POLY64_C(11130453238157857993) } },
{ { SIMDE_POLY64_C( 9455989917996262390), SIMDE_POLY64_C(17301022207733774400) },
{ SIMDE_POLY64_C(17782961611069834713), SIMDE_POLY64_C(15595114360048116834) },
{ SIMDE_POLY64_C( 9457478189345395150), SIMDE_POLY64_C(17302481669027164695) },
{ SIMDE_POLY64_C( 9455989929616168830), SIMDE_POLY64_C(17301022403626694803) },
{ SIMDE_POLY64_C( 9455989917997699978), SIMDE_POLY64_C(17301022207743416819) },
{ SIMDE_POLY64_C( 9455989917996265324), SIMDE_POLY64_C(17301022207733775750) },
{ SIMDE_POLY64_C( 9455989917996262390), SIMDE_POLY64_C(17301022207733774400) } },
{ { SIMDE_POLY64_C(17283144865266680732), SIMDE_POLY64_C( 7259952733400004552) },
{ SIMDE_POLY64_C( 2423261778652625485), SIMDE_POLY64_C( 8774942670212555532) },
{ SIMDE_POLY64_C(17282859378356867831), SIMDE_POLY64_C( 7260873759315161983) },
{ SIMDE_POLY64_C(17283144698038972394), SIMDE_POLY64_C( 7259952813415266171) },
{ SIMDE_POLY64_C(17283144865240269391), SIMDE_POLY64_C( 7259952733408693687) },
{ SIMDE_POLY64_C(17283144865266680346), SIMDE_POLY64_C( 7259952733400004508) },
{ SIMDE_POLY64_C(17283144865266680732), SIMDE_POLY64_C( 7259952733400004552) } },
{ { SIMDE_POLY64_C( 8412349912667167775), SIMDE_POLY64_C( 113159212066155682) },
{ SIMDE_POLY64_C( 2656927073845441023), SIMDE_POLY64_C( 5298442261255835184) },
{ SIMDE_POLY64_C( 8410796636032595303), SIMDE_POLY64_C( 113236773186857106) },
{ SIMDE_POLY64_C( 8412349759810127407), SIMDE_POLY64_C( 113159066904578691) },
{ SIMDE_POLY64_C( 8412349912658329242), SIMDE_POLY64_C( 113159212071325618) },
{ SIMDE_POLY64_C( 8412349912667165261), SIMDE_POLY64_C( 113159212066153624) },
{ SIMDE_POLY64_C( 8412349912667167775), SIMDE_POLY64_C( 113159212066155682) } },
{ { SIMDE_POLY64_C(11931958467903313781), SIMDE_POLY64_C(16120746881987107586) },
{ SIMDE_POLY64_C(16254472581633893462), SIMDE_POLY64_C(17599353210776037066) },
{ SIMDE_POLY64_C(11932019601452006635), SIMDE_POLY64_C(16122783224718927741) },
{ SIMDE_POLY64_C(11931958700951940187), SIMDE_POLY64_C(16120747003731615741) },
{ SIMDE_POLY64_C(11931958467931350777), SIMDE_POLY64_C(16120746882005236460) },
{ SIMDE_POLY64_C(11931958467903315481), SIMDE_POLY64_C(16120746881987108675) },
{ SIMDE_POLY64_C(11931958467903313781), SIMDE_POLY64_C(16120746881987107586) } },
{ { SIMDE_POLY64_C( 3203657109335332301), SIMDE_POLY64_C( 308386268589541512) },
{ SIMDE_POLY64_C( 3067239833563030783), SIMDE_POLY64_C(14132397843043811500) },
{ SIMDE_POLY64_C( 3202433753985418143), SIMDE_POLY64_C( 307969920882268412) },
{ SIMDE_POLY64_C( 3203656971161016364), SIMDE_POLY64_C( 308386284145425802) },
{ SIMDE_POLY64_C( 3203657109339447820), SIMDE_POLY64_C( 308386268600352953) },
{ SIMDE_POLY64_C( 3203657109335331497), SIMDE_POLY64_C( 308386268589542466) },
{ SIMDE_POLY64_C( 3203657109335332301), SIMDE_POLY64_C( 308386268589541512) } },
{ { SIMDE_POLY64_C( 7712425236134901425), SIMDE_POLY64_C( 9584252124101077841) },
{ SIMDE_POLY64_C( 2921085170296911358), SIMDE_POLY64_C(13115172626430732359) },
{ SIMDE_POLY64_C( 7712770939651551659), SIMDE_POLY64_C( 9585260980265415333) },
{ SIMDE_POLY64_C( 7712425125637906199), SIMDE_POLY64_C( 9584252289487274255) },
{ SIMDE_POLY64_C( 7712425236130501518), SIMDE_POLY64_C( 9584252124111045864) },
{ SIMDE_POLY64_C( 7712425236134900360), SIMDE_POLY64_C( 9584252124101077856) },
{ SIMDE_POLY64_C( 7712425236134901425), SIMDE_POLY64_C( 9584252124101077841) } },
{ { SIMDE_POLY64_C(17364079848386107050), SIMDE_POLY64_C(16614607949979897222) },
{ SIMDE_POLY64_C(15423647362425603942), SIMDE_POLY64_C( 9020735151165169525) },
{ SIMDE_POLY64_C(17365511132780368422), SIMDE_POLY64_C(16614880189328642210) },
{ SIMDE_POLY64_C(17364079942680404920), SIMDE_POLY64_C(16614607916678624478) },
{ SIMDE_POLY64_C(17364079848404555675), SIMDE_POLY64_C(16614607949980655661) },
{ SIMDE_POLY64_C(17364079848386108768), SIMDE_POLY64_C(16614607949979895763) },
{ SIMDE_POLY64_C(17364079848386107050), SIMDE_POLY64_C(16614607949979897222) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_poly64x2_t a = simde_vld1q_p64(test_vec[i].a);
simde_poly64x2_t b = simde_vld1q_p64(test_vec[i].b);
simde_poly64x2_t r13 = simde_vsriq_n_p64(a, b, 13);
simde_poly64x2_t r26 = simde_vsriq_n_p64(a, b, 26);
simde_poly64x2_t r39 = simde_vsriq_n_p64(a, b, 39);
simde_poly64x2_t r52 = simde_vsriq_n_p64(a, b, 52);
simde_poly64x2_t r64 = simde_vsriq_n_p64(a, b, 64);
simde_test_arm_neon_assert_equal_p64x2(r13, simde_vld1q_p64(test_vec[i].r13));
simde_test_arm_neon_assert_equal_p64x2(r26, simde_vld1q_p64(test_vec[i].r26));
simde_test_arm_neon_assert_equal_p64x2(r39, simde_vld1q_p64(test_vec[i].r39));
simde_test_arm_neon_assert_equal_p64x2(r52, simde_vld1q_p64(test_vec[i].r52));
simde_test_arm_neon_assert_equal_p64x2(r64, simde_vld1q_p64(test_vec[i].r64));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde_poly64x2_t a = simde_test_arm_neon_random_p64x2();
simde_poly64x2_t b = simde_test_arm_neon_random_p64x2();
simde_poly64x2_t r13 = simde_vsriq_n_p64(a, b, 13);
simde_poly64x2_t r26 = simde_vsriq_n_p64(a, b, 26);
simde_poly64x2_t r39 = simde_vsriq_n_p64(a, b, 39);
simde_poly64x2_t r52 = simde_vsriq_n_p64(a, b, 52);
simde_poly64x2_t r64 = simde_vsriq_n_p64(a, b, 64);
simde_test_arm_neon_write_p64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_arm_neon_write_p64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x2(2, r13, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x2(2, r26, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x2(2, r39, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x2(2, r52, SIMDE_TEST_VEC_POS_MIDDLE);
simde_test_arm_neon_write_p64x2(2, r64, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(vsri_n_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(vsri_n_s16)
@ -2022,6 +2711,13 @@ SIMDE_TEST_FUNC_LIST_ENTRY(vsriq_n_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(vsriq_n_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vsrid_n_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(vsrid_n_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(vsri_n_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vsri_n_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vsri_n_p64)
SIMDE_TEST_FUNC_LIST_ENTRY(vsriq_n_p8)
SIMDE_TEST_FUNC_LIST_ENTRY(vsriq_n_p16)
SIMDE_TEST_FUNC_LIST_ENTRY(vsriq_n_p64)
SIMDE_TEST_FUNC_LIST_END
#include <test/arm/neon/test-neon-footer.h>