Initial import of libdpf.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-24 14:08:32 -06:00
commit e4e666f459
4563 changed files with 1690372 additions and 0 deletions

771
thirdparty/simde/test/arm/neon/eor.c vendored Normal file
View file

@ -0,0 +1,771 @@
#define SIMDE_TEST_ARM_NEON_INSN eor
#include "test-neon.h"
#include "../../../simde/arm/neon/eor.h"
static int
test_simde_veor_s8 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int8_t a[8];
int8_t b[8];
int8_t r[8];
} test_vec[] = {
{ { -INT8_C( 57), INT8_C( 76), INT8_C( 112), INT8_C( 126), INT8_C( 46), -INT8_C( 66), -INT8_C( 3), INT8_C( 47) },
{ INT8_C( 8), -INT8_C( 105), -INT8_C( 32), -INT8_C( 33), INT8_C( 118), INT8_C( 37), INT8_C( 95), INT8_C( 95) },
{ -INT8_C( 49), -INT8_C( 37), -INT8_C( 112), -INT8_C( 95), INT8_C( 88), -INT8_C( 101), -INT8_C( 94), INT8_C( 112) } },
{ { -INT8_C( 52), -INT8_C( 65), INT8_C( 78), -INT8_C( 24), INT8_C( 60), -INT8_C( 59), -INT8_C( 102), -INT8_C( 44) },
{ -INT8_C( 22), -INT8_C( 3), INT8_C( 118), -INT8_C( 6), INT8_C( 21), -INT8_C( 127), INT8_C( 40), -INT8_C( 36) },
{ INT8_C( 38), INT8_C( 66), INT8_C( 56), INT8_C( 18), INT8_C( 41), INT8_C( 68), -INT8_C( 78), INT8_C( 8) } },
{ { -INT8_C( 50), -INT8_C( 104), INT8_C( 90), -INT8_C( 4), INT8_C( 86), INT8_C( 88), INT8_C( 43), INT8_C( 94) },
{ -INT8_C( 17), INT8_C( 11), INT8_C( 62), INT8_C( 101), INT8_C( 48), -INT8_C( 99), -INT8_C( 60), -INT8_C( 3) },
{ INT8_C( 33), -INT8_C( 109), INT8_C( 100), -INT8_C( 103), INT8_C( 102), -INT8_C( 59), -INT8_C( 17), -INT8_C( 93) } },
{ { INT8_C( 92), INT8_C( 19), -INT8_C( 27), -INT8_C( 103), -INT8_C( 40), INT8_MAX, INT8_C( 109), -INT8_C( 61) },
{ INT8_C( 124), -INT8_C( 28), -INT8_C( 67), -INT8_C( 110), INT8_C( 101), -INT8_C( 26), INT8_C( 110), INT8_C( 51) },
{ INT8_C( 32), -INT8_C( 9), INT8_C( 88), INT8_C( 11), -INT8_C( 67), -INT8_C( 103), INT8_C( 3), -INT8_C( 16) } },
{ { INT8_C( 126), -INT8_C( 55), INT8_C( 48), -INT8_C( 43), INT8_C( 33), INT8_C( 91), INT8_C( 51), INT8_C( 16) },
{ INT8_C( 103), INT8_C( 113), INT8_C( 117), -INT8_C( 105), INT8_C( 14), INT8_C( 58), -INT8_C( 108), INT8_C( 107) },
{ INT8_C( 25), -INT8_C( 72), INT8_C( 69), INT8_C( 66), INT8_C( 47), INT8_C( 97), -INT8_C( 89), INT8_C( 123) } },
{ { INT8_C( 77), INT8_C( 122), INT8_C( 4), INT8_C( 37), -INT8_C( 7), INT8_C( 113), -INT8_C( 24), INT8_C( 118) },
{ INT8_C( 85), -INT8_C( 90), INT8_C( 8), -INT8_C( 69), -INT8_C( 116), INT8_C( 118), -INT8_C( 18), INT8_C( 10) },
{ INT8_C( 24), -INT8_C( 36), INT8_C( 12), -INT8_C( 98), INT8_C( 117), INT8_C( 7), INT8_C( 6), INT8_C( 124) } },
{ { INT8_C( 63), INT8_C( 30), -INT8_C( 33), INT8_C( 96), INT8_C( 122), INT8_C( 19), INT8_C( 112), -INT8_C( 31) },
{ -INT8_C( 124), -INT8_C( 26), INT8_C( 120), -INT8_C( 109), INT8_C( 32), INT8_C( 13), -INT8_C( 2), INT8_C( 109) },
{ -INT8_C( 69), -INT8_C( 8), -INT8_C( 89), -INT8_C( 13), INT8_C( 90), INT8_C( 30), -INT8_C( 114), -INT8_C( 116) } },
{ { -INT8_C( 121), INT8_C( 2), -INT8_C( 110), INT8_MIN, INT8_C( 115), INT8_C( 123), -INT8_C( 10), -INT8_C( 55) },
{ INT8_C( 33), -INT8_C( 2), -INT8_C( 124), -INT8_C( 83), INT8_C( 117), INT8_C( 114), -INT8_C( 73), -INT8_C( 76) },
{ -INT8_C( 90), -INT8_C( 4), INT8_C( 22), INT8_C( 45), INT8_C( 6), INT8_C( 9), INT8_C( 65), INT8_C( 125) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int8x8_t a = simde_vld1_s8(test_vec[i].a);
simde_int8x8_t b = simde_vld1_s8(test_vec[i].b);
simde_int8x8_t r = simde_veor_s8(a, b);
simde_test_arm_neon_assert_equal_i8x8(r, simde_vld1_s8(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_s16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int16_t a[4];
int16_t b[4];
int16_t r[4];
} test_vec[] = {
{ { INT16_C( 7761), -INT16_C( 3055), INT16_C( 13277), INT16_C( 25055) },
{ INT16_C( 10106), -INT16_C( 30479), -INT16_C( 20937), INT16_C( 24721) },
{ INT16_C( 14635), INT16_C( 31968), -INT16_C( 25110), INT16_C( 334) } },
{ { INT16_C( 10700), INT16_C( 30148), -INT16_C( 17695), INT16_C( 25566) },
{ INT16_C( 15382), -INT16_C( 3115), -INT16_C( 27357), INT16_C( 29773) },
{ INT16_C( 5594), -INT16_C( 31215), INT16_C( 12226), INT16_C( 6035) } },
{ { INT16_C( 24499), -INT16_C( 28311), INT16_C( 18578), INT16_C( 3314) },
{ -INT16_C( 7312), -INT16_C( 22635), INT16_C( 9874), INT16_C( 24071) },
{ -INT16_C( 17213), INT16_C( 14076), INT16_C( 28160), INT16_C( 21237) } },
{ { -INT16_C( 13489), INT16_C( 12755), -INT16_C( 20090), -INT16_C( 25452) },
{ INT16_C( 27117), INT16_C( 4239), -INT16_C( 8705), -INT16_C( 19835) },
{ -INT16_C( 23902), INT16_C( 8540), INT16_C( 27769), INT16_C( 11793) } },
{ { -INT16_C( 4548), -INT16_C( 12733), INT16_C( 13878), -INT16_C( 22822) },
{ INT16_C( 28441), -INT16_C( 21683), INT16_C( 21654), -INT16_C( 6903) },
{ -INT16_C( 32475), INT16_C( 25870), INT16_C( 25248), INT16_C( 17363) } },
{ { -INT16_C( 8928), -INT16_C( 23018), -INT16_C( 21618), INT16_C( 31810) },
{ -INT16_C( 11756), INT16_C( 5004), INT16_C( 4527), -INT16_C( 5178) },
{ INT16_C( 3892), -INT16_C( 19046), -INT16_C( 17887), -INT16_C( 26748) } },
{ { INT16_C( 2559), INT16_C( 14009), -INT16_C( 27841), INT16_C( 23004) },
{ INT16_C( 10755), -INT16_C( 26364), INT16_C( 3710), -INT16_C( 24962) },
{ INT16_C( 9212), -INT16_C( 20547), -INT16_C( 25279), -INT16_C( 14430) } },
{ { -INT16_C( 27157), INT16_C( 31044), -INT16_C( 30912), INT16_C( 21749) },
{ -INT16_C( 32167), INT16_C( 2152), INT16_C( 11923), -INT16_C( 27661) },
{ INT16_C( 6066), INT16_C( 28972), -INT16_C( 22061), -INT16_C( 14586) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int16x4_t a = simde_vld1_s16(test_vec[i].a);
simde_int16x4_t b = simde_vld1_s16(test_vec[i].b);
simde_int16x4_t r = simde_veor_s16(a, b);
simde_test_arm_neon_assert_equal_i16x4(r, simde_vld1_s16(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_s32 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int32_t a[2];
int32_t b[2];
int32_t r[2];
} test_vec[] = {
{ { -INT32_C( 223173885), -INT32_C( 1105528766) },
{ -INT32_C( 647648370), INT32_C( 936515285) },
{ INT32_C( 735512717), -INT32_C( 1983320425) } },
{ { INT32_C( 307579213), INT32_C( 1903436113) },
{ INT32_C( 777768489), -INT32_C( 910509627) },
{ INT32_C( 1007585124), -INT32_C( 1194420076) } },
{ { -INT32_C( 1615106980), -INT32_C( 211954331) },
{ INT32_C( 1439482496), INT32_C( 646749913) },
{ -INT32_C( 898126116), -INT32_C( 707703876) } },
{ { INT32_C( 960029159), INT32_C( 749382659) },
{ INT32_C( 1079641467), INT32_C( 453579966) },
{ INT32_C( 2036524188), INT32_C( 933476541) } },
{ { -INT32_C( 440744832), INT32_C( 433592217) },
{ -INT32_C( 1284594214), INT32_C( 735705923) },
{ INT32_C( 1456759130), INT32_C( 838986970) } },
{ { -INT32_C( 547089700), INT32_C( 957025982) },
{ -INT32_C( 763730668), -INT32_C( 85097607) },
{ INT32_C( 220100552), -INT32_C( 1008300601) } },
{ { -INT32_C( 505436344), -INT32_C( 1711556417) },
{ -INT32_C( 1605605027), INT32_C( 1103832420) },
{ INT32_C( 1100205589), -INT32_C( 667902501) } },
{ { -INT32_C( 165662921), INT32_C( 1378823230) },
{ INT32_C( 186952081), INT32_C( 1963266605) },
{ -INT32_C( 50035034), INT32_C( 657079827) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int32x2_t a = simde_vld1_s32(test_vec[i].a);
simde_int32x2_t b = simde_vld1_s32(test_vec[i].b);
simde_int32x2_t r = simde_veor_s32(a, b);
simde_test_arm_neon_assert_equal_i32x2(r, simde_vld1_s32(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_s64 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int64_t a[1];
int64_t b[1];
int64_t r[1];
} test_vec[] = {
{ { -INT64_C( 4828891895394799279) },
{ -INT64_C( 978485463844695772) },
{ INT64_C( 5663255367859937397) } },
{ { -INT64_C( 2340679889570635955) },
{ INT64_C( 3561912863977746482) },
{ -INT64_C( 1231091376201633921) } },
{ { INT64_C( 2416474760244209765) },
{ INT64_C( 3960126324202680667) },
{ INT64_C( 1692292520539298110) } },
{ { -INT64_C( 6847313742192954864) },
{ INT64_C( 2033041761997308452) },
{ -INT64_C( 4841469826250411980) } },
{ { -INT64_C( 6226382278488406919) },
{ -INT64_C( 7006577862129197661) },
{ INT64_C( 3987041097380862426) } },
{ { INT64_C( 5540466748793861076) },
{ -INT64_C( 8086909024474151181) },
{ -INT64_C( 4384757599176100569) } },
{ { -INT64_C( 4268396355849441589) },
{ -INT64_C( 1863060805330571271) },
{ INT64_C( 2514847184329163058) } },
{ { -INT64_C( 9134975086147019321) },
{ -INT64_C( 2379888436905800878) },
{ INT64_C( 6900355332590163605) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int64x1_t a = simde_vld1_s64(test_vec[i].a);
simde_int64x1_t b = simde_vld1_s64(test_vec[i].b);
simde_int64x1_t r = simde_veor_s64(a, b);
simde_test_arm_neon_assert_equal_i64x1(r, simde_vld1_s64(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_u8 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint8_t a[16];
uint8_t b[16];
uint8_t r[16];
} test_vec[] = {
{ { UINT8_C(158), UINT8_C(246), UINT8_C( 5), UINT8_C(215), UINT8_C( 79), UINT8_C( 59), UINT8_C( 70), UINT8_C( 65) },
{ UINT8_C(121), UINT8_C( 69), UINT8_C( 69), UINT8_C(120), UINT8_C( 84), UINT8_C(102), UINT8_C( 65), UINT8_C( 73) },
{ UINT8_C(231), UINT8_C(179), UINT8_C( 64), UINT8_C(175), UINT8_C( 27), UINT8_C( 93), UINT8_C( 7), UINT8_C( 8) } },
{ { UINT8_C(124), UINT8_C( 81), UINT8_C( 15), UINT8_C(239), UINT8_C(130), UINT8_C(246), UINT8_C( 22), UINT8_C( 98) },
{ UINT8_C(136), UINT8_C(214), UINT8_C(239), UINT8_C(250), UINT8_C(198), UINT8_C( 97), UINT8_C( 56), UINT8_C(100) },
{ UINT8_C(244), UINT8_C(135), UINT8_C(224), UINT8_C( 21), UINT8_C( 68), UINT8_C(151), UINT8_C( 46), UINT8_C( 6) } },
{ { UINT8_C( 87), UINT8_C( 62), UINT8_C( 60), UINT8_C(166), UINT8_C(121), UINT8_C(130), UINT8_C(232), UINT8_C(242) },
{ UINT8_C(199), UINT8_C( 45), UINT8_C(106), UINT8_C( 27), UINT8_C(147), UINT8_C(171), UINT8_C(101), UINT8_C( 15) },
{ UINT8_C(144), UINT8_C( 19), UINT8_C( 86), UINT8_C(189), UINT8_C(234), UINT8_C( 41), UINT8_C(141), UINT8_C(253) } },
{ { UINT8_C(253), UINT8_C(116), UINT8_MAX, UINT8_C(127), UINT8_C(106), UINT8_C( 21), UINT8_C(225), UINT8_C(243) },
{ UINT8_C(235), UINT8_C(208), UINT8_C(237), UINT8_C(178), UINT8_C( 50), UINT8_C( 37), UINT8_C( 22), UINT8_C(137) },
{ UINT8_C( 22), UINT8_C(164), UINT8_C( 18), UINT8_C(205), UINT8_C( 88), UINT8_C( 48), UINT8_C(247), UINT8_C(122) } },
{ { UINT8_C( 99), UINT8_C( 82), UINT8_C( 48), UINT8_C(220), UINT8_C(212), UINT8_C( 24), UINT8_C(207), UINT8_C(156) },
{ UINT8_C( 69), UINT8_C( 57), UINT8_C(183), UINT8_C(216), UINT8_C(229), UINT8_C( 28), UINT8_C(232), UINT8_C(226) },
{ UINT8_C( 38), UINT8_C(107), UINT8_C(135), UINT8_C( 4), UINT8_C( 49), UINT8_C( 4), UINT8_C( 39), UINT8_C(126) } },
{ { UINT8_C(145), UINT8_C(231), UINT8_C( 97), UINT8_C(251), UINT8_C(252), UINT8_C( 66), UINT8_C(238), UINT8_C(231) },
{ UINT8_C( 19), UINT8_C(219), UINT8_C(153), UINT8_C( 69), UINT8_C( 1), UINT8_C(176), UINT8_C(206), UINT8_C(100) },
{ UINT8_C(130), UINT8_C( 60), UINT8_C(248), UINT8_C(190), UINT8_C(253), UINT8_C(242), UINT8_C( 32), UINT8_C(131) } },
{ { UINT8_C( 2), UINT8_C(254), UINT8_C( 65), UINT8_C(215), UINT8_C( 22), UINT8_C( 16), UINT8_C(115), UINT8_C( 91) },
{ UINT8_C( 73), UINT8_C( 42), UINT8_C( 52), UINT8_C( 46), UINT8_C( 71), UINT8_C( 28), UINT8_C( 16), UINT8_C(216) },
{ UINT8_C( 75), UINT8_C(212), UINT8_C(117), UINT8_C(249), UINT8_C( 81), UINT8_C( 12), UINT8_C( 99), UINT8_C(131) } },
{ { UINT8_C( 3), UINT8_C(113), UINT8_C(211), UINT8_MAX, UINT8_C(180), UINT8_C(194), UINT8_C(230), UINT8_C(199) },
{ UINT8_C(157), UINT8_C(128), UINT8_C( 12), UINT8_C(158), UINT8_C( 48), UINT8_C(218), UINT8_C( 3), UINT8_C( 50) },
{ UINT8_C(158), UINT8_C(241), UINT8_C(223), UINT8_C( 97), UINT8_C(132), UINT8_C( 24), UINT8_C(229), UINT8_C(245) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint8x8_t a = simde_vld1_u8(test_vec[i].a);
simde_uint8x8_t b = simde_vld1_u8(test_vec[i].b);
simde_uint8x8_t r = simde_veor_u8(a, b);
simde_test_arm_neon_assert_equal_u8x8(r, simde_vld1_u8(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_u16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint16_t a[4];
uint16_t b[4];
uint16_t r[4];
} test_vec[] = {
{ { UINT16_C(44341), UINT16_C(23492), UINT16_C(26475), UINT16_C(49752) },
{ UINT16_C( 6246), UINT16_C( 3973), UINT16_C(21664), UINT16_C(43892) },
{ UINT16_C(46419), UINT16_C(21569), UINT16_C(13259), UINT16_C(26924) } },
{ { UINT16_C(18060), UINT16_C(35603), UINT16_C(17216), UINT16_C(50117) },
{ UINT16_C(54080), UINT16_C(21475), UINT16_C( 1737), UINT16_C(65206) },
{ UINT16_C(38348), UINT16_C(55536), UINT16_C(17801), UINT16_C(15731) } },
{ { UINT16_C(31412), UINT16_C( 8025), UINT16_C(45793), UINT16_C(18657) },
{ UINT16_C(26314), UINT16_C(27223), UINT16_C(52155), UINT16_C(18198) },
{ UINT16_C( 7294), UINT16_C(29966), UINT16_C(31066), UINT16_C( 4087) } },
{ { UINT16_C(10513), UINT16_C(21202), UINT16_C(38764), UINT16_C(44053) },
{ UINT16_C(63594), UINT16_C(13312), UINT16_C(46847), UINT16_C(45874) },
{ UINT16_C(53627), UINT16_C(26322), UINT16_C( 8595), UINT16_C( 7975) } },
{ { UINT16_C(35889), UINT16_C( 4818), UINT16_C(46142), UINT16_C( 2138) },
{ UINT16_C(45338), UINT16_C(54643), UINT16_C(35196), UINT16_C(36381) },
{ UINT16_C(15659), UINT16_C(51105), UINT16_C(15682), UINT16_C(34375) } },
{ { UINT16_C(61362), UINT16_C( 7904), UINT16_C(62855), UINT16_C(61898) },
{ UINT16_C(51950), UINT16_C(60709), UINT16_C(22657), UINT16_C(45728) },
{ UINT16_C( 9564), UINT16_C(62405), UINT16_C(44294), UINT16_C(17258) } },
{ { UINT16_C(29412), UINT16_C( 8900), UINT16_C( 7974), UINT16_C(16682) },
{ UINT16_C(40400), UINT16_C(19734), UINT16_C(13094), UINT16_C(55515) },
{ UINT16_C(61236), UINT16_C(28626), UINT16_C(11264), UINT16_C(39409) } },
{ { UINT16_C(47907), UINT16_C(43766), UINT16_C(49584), UINT16_C(40603) },
{ UINT16_C(49547), UINT16_C( 3211), UINT16_C(11033), UINT16_C(64958) },
{ UINT16_C(31400), UINT16_C(42621), UINT16_C(60073), UINT16_C(25381) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint16x4_t a = simde_vld1_u16(test_vec[i].a);
simde_uint16x4_t b = simde_vld1_u16(test_vec[i].b);
simde_uint16x4_t r = simde_veor_u16(a, b);
simde_test_arm_neon_assert_equal_u16x4(r, simde_vld1_u16(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_u32 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint32_t a[2];
uint32_t b[2];
uint32_t r[2];
} test_vec[] = {
{ { UINT32_C( 475910642), UINT32_C(2198092259) },
{ UINT32_C(1779073253), UINT32_C( 710440248) },
{ UINT32_C(1985433879), UINT32_C(2841398491) } },
{ { UINT32_C(2529940306), UINT32_C(1981044553) },
{ UINT32_C(4205813484), UINT32_C( 565923630) },
{ UINT32_C(1818512830), UINT32_C(1471092839) } },
{ { UINT32_C( 54335520), UINT32_C( 914833745) },
{ UINT32_C(4204827074), UINT32_C(1478818054) },
{ UINT32_C(4187851234), UINT32_C(1856223319) } },
{ { UINT32_C( 384823244), UINT32_C( 864813894) },
{ UINT32_C(3492625314), UINT32_C(2884757642) },
{ UINT32_C(3334657134), UINT32_C(2558389196) } },
{ { UINT32_C(1387146752), UINT32_C( 847787376) },
{ UINT32_C(3442223558), UINT32_C(3995423010) },
{ UINT32_C(2676099014), UINT32_C(3702350930) } },
{ { UINT32_C(2265191488), UINT32_C(3132789016) },
{ UINT32_C(1468721100), UINT32_C(3473046735) },
{ UINT32_C(3499029388), UINT32_C(1975053783) } },
{ { UINT32_C( 438415530), UINT32_C(2890705638) },
{ UINT32_C(4118378963), UINT32_C( 182689738) },
{ UINT32_C(4015573369), UINT32_C(2796500268) } },
{ { UINT32_C(3415337139), UINT32_C(1166363513) },
{ UINT32_C( 27004978), UINT32_C( 919707276) },
{ UINT32_C(3389913217), UINT32_C(1934939637) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint32x2_t a = simde_vld1_u32(test_vec[i].a);
simde_uint32x2_t b = simde_vld1_u32(test_vec[i].b);
simde_uint32x2_t r = simde_veor_u32(a, b);
simde_test_arm_neon_assert_equal_u32x2(r, simde_vld1_u32(test_vec[i].r));
}
return 0;
}
static int
test_simde_veor_u64 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint64_t a[1];
uint64_t b[1];
uint64_t r[1];
} test_vec[] = {
{ { UINT64_C(12398498631144494080) },
{ UINT64_C(12830720206572806384) },
{ UINT64_C( 2170648006984611056) } },
{ { UINT64_C(14503918927718196209) },
{ UINT64_C(11943777821855590383) },
{ UINT64_C( 7820667666536924190) } },
{ { UINT64_C( 9809779626162407590) },
{ UINT64_C( 2879441961520354615) },
{ UINT64_C(12670459381603638673) } },
{ { UINT64_C(16081757167494409208) },
{ UINT64_C(10038957759141646855) },
{ UINT64_C( 6087857433790822911) } },
{ { UINT64_C( 2734570005143328978) },
{ UINT64_C( 9788114807057594746) },
{ UINT64_C(11683879364330070440) } },
{ { UINT64_C( 6186002290649558537) },
{ UINT64_C( 43438603698807594) },
{ UINT64_C( 6143837196495015203) } },
{ { UINT64_C( 4251220755635477483) },
{ UINT64_C(14856461225913050903) },
{ UINT64_C(17641617911741349116) } },
{ { UINT64_C( 6544470438163519278) },
{ UINT64_C( 1329409782962574404) },
{ UINT64_C( 5233642461911434090) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint64x1_t a = simde_vld1_u64(test_vec[i].a);
simde_uint64x1_t b = simde_vld1_u64(test_vec[i].b);
simde_uint64x1_t r = simde_veor_u64(a, b);
simde_test_arm_neon_assert_equal_u64x1(r, simde_vld1_u64(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_s8 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int8_t a[16];
int8_t b[16];
int8_t r[16];
} test_vec[] = {
{ { INT8_C( 7), INT8_C( 33), -INT8_C( 55), -INT8_C( 62), -INT8_C( 87), INT8_C( 96), -INT8_C( 63), -INT8_C( 107),
-INT8_C( 112), -INT8_C( 109), INT8_C( 45), INT8_C( 65), INT8_C( 62), INT8_C( 1), -INT8_C( 77), INT8_C( 15) },
{ INT8_C( 105), -INT8_C( 96), -INT8_C( 51), INT8_C( 40), -INT8_C( 44), INT8_C( 104), INT8_C( 89), INT8_C( 64),
INT8_C( 119), -INT8_C( 33), INT8_C( 15), -INT8_C( 57), -INT8_C( 109), -INT8_C( 96), -INT8_C( 73), -INT8_C( 101) },
{ INT8_C( 110), -INT8_C( 127), INT8_C( 4), -INT8_C( 22), INT8_C( 125), INT8_C( 8), -INT8_C( 104), -INT8_C( 43),
-INT8_C( 25), INT8_C( 76), INT8_C( 34), -INT8_C( 122), -INT8_C( 83), -INT8_C( 95), INT8_C( 4), -INT8_C( 108) } },
{ { -INT8_C( 63), INT8_MIN, INT8_C( 93), INT8_C( 106), -INT8_C( 31), INT8_C( 30), -INT8_C( 1), INT8_C( 113),
-INT8_C( 78), INT8_C( 45), -INT8_C( 78), -INT8_C( 16), INT8_C( 46), INT8_C( 101), -INT8_C( 1), -INT8_C( 105) },
{ INT8_C( 5), -INT8_C( 51), -INT8_C( 65), -INT8_C( 38), INT8_C( 53), INT8_C( 24), INT8_C( 26), -INT8_C( 84),
-INT8_C( 8), INT8_C( 42), INT8_C( 115), -INT8_C( 117), -INT8_C( 54), INT8_C( 43), INT8_C( 38), -INT8_C( 117) },
{ -INT8_C( 60), INT8_C( 77), -INT8_C( 30), -INT8_C( 80), -INT8_C( 44), INT8_C( 6), -INT8_C( 27), -INT8_C( 35),
INT8_C( 74), INT8_C( 7), -INT8_C( 63), INT8_C( 123), -INT8_C( 28), INT8_C( 78), -INT8_C( 39), INT8_C( 28) } },
{ { -INT8_C( 85), -INT8_C( 124), -INT8_C( 10), -INT8_C( 116), -INT8_C( 94), -INT8_C( 11), -INT8_C( 2), INT8_C( 84),
INT8_C( 34), -INT8_C( 80), INT8_C( 68), INT8_C( 80), INT8_C( 22), INT8_C( 68), -INT8_C( 25), INT8_C( 27) },
{ INT8_C( 17), -INT8_C( 90), -INT8_C( 11), INT8_C( 70), -INT8_C( 65), INT8_C( 16), -INT8_C( 14), -INT8_C( 73),
INT8_C( 58), INT8_C( 101), INT8_C( 66), INT8_C( 4), -INT8_C( 112), INT8_C( 105), -INT8_C( 113), INT8_C( 60) },
{ -INT8_C( 70), INT8_C( 34), INT8_C( 3), -INT8_C( 54), INT8_C( 29), -INT8_C( 27), INT8_C( 12), -INT8_C( 29),
INT8_C( 24), -INT8_C( 43), INT8_C( 6), INT8_C( 84), -INT8_C( 122), INT8_C( 45), INT8_C( 104), INT8_C( 39) } },
{ { -INT8_C( 19), -INT8_C( 123), -INT8_C( 56), -INT8_C( 113), INT8_C( 123), -INT8_C( 58), -INT8_C( 28), -INT8_C( 99),
INT8_C( 119), INT8_C( 40), -INT8_C( 18), -INT8_C( 115), INT8_C( 108), -INT8_C( 43), -INT8_C( 88), INT8_C( 125) },
{ INT8_C( 124), -INT8_C( 98), -INT8_C( 61), INT8_C( 59), -INT8_C( 82), -INT8_C( 75), -INT8_C( 14), -INT8_C( 24),
INT8_C( 27), INT8_C( 52), -INT8_C( 20), -INT8_C( 85), -INT8_C( 99), INT8_C( 123), -INT8_C( 25), -INT8_C( 118) },
{ -INT8_C( 111), INT8_C( 27), INT8_C( 11), -INT8_C( 76), -INT8_C( 43), INT8_C( 115), INT8_C( 22), INT8_C( 117),
INT8_C( 108), INT8_C( 28), INT8_C( 2), INT8_C( 38), -INT8_C( 15), -INT8_C( 82), INT8_C( 79), -INT8_C( 9) } },
{ { INT8_C( 1), -INT8_C( 80), INT8_C( 26), INT8_C( 124), INT8_C( 118), -INT8_C( 2), INT8_C( 25), -INT8_C( 19),
INT8_C( 38), INT8_C( 7), INT8_C( 122), -INT8_C( 109), -INT8_C( 35), INT8_C( 35), INT8_C( 16), INT8_C( 89) },
{ -INT8_C( 63), -INT8_C( 44), -INT8_C( 108), INT8_C( 111), -INT8_C( 119), -INT8_C( 122), INT8_C( 87), -INT8_C( 92),
-INT8_C( 70), INT8_C( 67), INT8_C( 80), INT8_C( 88), -INT8_C( 66), INT8_C( 55), -INT8_C( 30), -INT8_C( 65) },
{ -INT8_C( 64), INT8_C( 100), -INT8_C( 114), INT8_C( 19), -INT8_C( 1), INT8_C( 120), INT8_C( 78), INT8_C( 73),
-INT8_C( 100), INT8_C( 68), INT8_C( 42), -INT8_C( 53), INT8_C( 99), INT8_C( 20), -INT8_C( 14), -INT8_C( 26) } },
{ { -INT8_C( 25), -INT8_C( 4), INT8_C( 59), INT8_C( 94), -INT8_C( 6), INT8_C( 85), INT8_C( 75), INT8_C( 33),
INT8_C( 92), -INT8_C( 58), -INT8_C( 76), INT8_C( 57), -INT8_C( 23), -INT8_C( 60), -INT8_C( 110), -INT8_C( 86) },
{ -INT8_C( 104), INT8_C( 38), INT8_C( 25), INT8_C( 34), -INT8_C( 84), INT8_C( 112), -INT8_C( 58), INT8_C( 103),
-INT8_C( 77), INT8_C( 22), -INT8_C( 65), INT8_C( 113), INT8_C( 78), -INT8_C( 95), INT8_C( 49), INT8_C( 53) },
{ INT8_MAX, -INT8_C( 38), INT8_C( 34), INT8_C( 124), INT8_C( 86), INT8_C( 37), -INT8_C( 115), INT8_C( 70),
-INT8_C( 17), -INT8_C( 48), INT8_C( 11), INT8_C( 72), -INT8_C( 89), INT8_C( 101), -INT8_C( 93), -INT8_C( 97) } },
{ { -INT8_C( 98), INT8_C( 108), -INT8_C( 109), -INT8_C( 104), -INT8_C( 63), -INT8_C( 33), -INT8_C( 71), INT8_C( 30),
-INT8_C( 91), INT8_C( 109), INT8_C( 87), -INT8_C( 114), INT8_C( 50), -INT8_C( 22), INT8_C( 56), -INT8_C( 54) },
{ INT8_C( 16), INT8_C( 81), -INT8_C( 20), -INT8_C( 67), -INT8_C( 63), -INT8_C( 77), INT8_C( 36), INT8_C( 116),
-INT8_C( 55), -INT8_C( 29), -INT8_C( 27), INT8_C( 23), -INT8_C( 124), INT8_C( 22), INT8_C( 77), INT8_C( 34) },
{ -INT8_C( 114), INT8_C( 61), INT8_MAX, INT8_C( 37), INT8_C( 0), INT8_C( 108), -INT8_C( 99), INT8_C( 106),
INT8_C( 108), -INT8_C( 114), -INT8_C( 78), -INT8_C( 103), -INT8_C( 74), -INT8_C( 4), INT8_C( 117), -INT8_C( 24) } },
{ { -INT8_C( 125), -INT8_C( 32), -INT8_C( 69), INT8_C( 68), -INT8_C( 65), INT8_C( 116), INT8_C( 98), INT8_C( 100),
-INT8_C( 30), -INT8_C( 70), -INT8_C( 14), INT8_C( 20), -INT8_C( 92), INT8_C( 42), -INT8_C( 34), -INT8_C( 76) },
{ INT8_C( 123), -INT8_C( 53), INT8_C( 113), INT8_C( 60), INT8_C( 126), -INT8_C( 107), -INT8_C( 80), INT8_C( 71),
INT8_C( 120), -INT8_C( 106), INT8_C( 95), -INT8_C( 3), -INT8_C( 84), -INT8_C( 84), INT8_C( 31), INT8_C( 47) },
{ -INT8_C( 8), INT8_C( 43), -INT8_C( 54), INT8_C( 120), -INT8_C( 63), -INT8_C( 31), -INT8_C( 46), INT8_C( 35),
-INT8_C( 102), INT8_C( 44), -INT8_C( 83), -INT8_C( 23), INT8_C( 8), -INT8_C( 122), -INT8_C( 63), -INT8_C( 101) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int8x16_t a = simde_vld1q_s8(test_vec[i].a);
simde_int8x16_t b = simde_vld1q_s8(test_vec[i].b);
simde_int8x16_t r = simde_veorq_s8(a, b);
simde_test_arm_neon_assert_equal_i8x16(r, simde_vld1q_s8(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_s16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int16_t a[8];
int16_t b[8];
int16_t r[8];
} test_vec[] = {
{ { -INT16_C( 22070), -INT16_C( 27902), INT16_C( 20197), -INT16_C( 6856), INT16_C( 29980), -INT16_C( 23942), -INT16_C( 27791), INT16_C( 8437) },
{ -INT16_C( 27754), INT16_C( 5134), -INT16_C( 9605), INT16_C( 10935), -INT16_C( 4606), INT16_C( 3542), INT16_C( 29604), INT16_C( 28643) },
{ INT16_C( 14940), -INT16_C( 30964), -INT16_C( 27490), -INT16_C( 12401), -INT16_C( 25826), -INT16_C( 20564), -INT16_C( 7979), INT16_C( 20246) } },
{ { -INT16_C( 6884), INT16_C( 514), INT16_C( 14900), INT16_C( 20711), INT16_C( 25007), INT16_C( 8690), -INT16_C( 6156), -INT16_C( 30143) },
{ INT16_C( 20346), -INT16_C( 2657), INT16_C( 22057), INT16_C( 11039), -INT16_C( 2748), -INT16_C( 5832), INT16_C( 7016), -INT16_C( 31400) },
{ -INT16_C( 21914), -INT16_C( 2147), INT16_C( 27677), INT16_C( 31736), -INT16_C( 27413), -INT16_C( 14134), -INT16_C( 868), INT16_C( 3865) } },
{ { INT16_C( 23041), INT16_C( 13703), INT16_C( 28309), INT16_C( 17541), INT16_C( 30671), -INT16_C( 15515), -INT16_C( 22946), -INT16_C( 10163) },
{ -INT16_C( 4874), INT16_C( 8141), -INT16_C( 4797), -INT16_C( 30901), -INT16_C( 31774), INT16_C( 19312), -INT16_C( 14177), -INT16_C( 24368) },
{ -INT16_C( 18697), INT16_C( 10826), -INT16_C( 31786), -INT16_C( 15410), -INT16_C( 3027), -INT16_C( 30699), INT16_C( 28353), INT16_C( 30877) } },
{ { INT16_C( 22307), -INT16_C( 18219), INT16_C( 23237), -INT16_C( 27396), INT16_C( 25297), INT16_C( 12119), -INT16_C( 23544), -INT16_C( 505) },
{ -INT16_C( 11119), -INT16_C( 11234), INT16_C( 27073), -INT16_C( 23461), -INT16_C( 13076), -INT16_C( 29713), -INT16_C( 16492), -INT16_C( 18645) },
{ -INT16_C( 31822), INT16_C( 27851), INT16_C( 13060), INT16_C( 12455), -INT16_C( 20931), -INT16_C( 23368), INT16_C( 7068), INT16_C( 18732) } },
{ { INT16_C( 22), -INT16_C( 9361), INT16_C( 27738), INT16_C( 11119), -INT16_C( 14642), -INT16_C( 10662), INT16_C( 24938), -INT16_C( 1067) },
{ -INT16_C( 3274), -INT16_C( 2097), INT16_C( 11100), INT16_C( 18587), -INT16_C( 29961), -INT16_C( 29740), -INT16_C( 183), INT16_C( 24387) },
{ -INT16_C( 3296), INT16_C( 11424), INT16_C( 18182), INT16_C( 25588), INT16_C( 19513), INT16_C( 23950), -INT16_C( 25053), -INT16_C( 23402) } },
{ { -INT16_C( 19968), INT16_C( 23098), -INT16_C( 22242), -INT16_C( 4986), -INT16_C( 8081), -INT16_C( 9533), -INT16_C( 26558), INT16_C( 30933) },
{ -INT16_C( 23157), -INT16_C( 6289), INT16_C( 3024), -INT16_C( 14545), INT16_C( 917), -INT16_C( 8366), -INT16_C( 27389), INT16_C( 830) },
{ INT16_C( 6027), -INT16_C( 17067), -INT16_C( 23858), INT16_C( 11177), -INT16_C( 7174), INT16_C( 1425), INT16_C( 3393), INT16_C( 31723) } },
{ { INT16_C( 31048), INT16_C( 26205), -INT16_C( 7390), -INT16_C( 28077), INT16_C( 5828), INT16_C( 1644), INT16_C( 16814), INT16_C( 14718) },
{ -INT16_C( 4634), -INT16_C( 18912), INT16_C( 20472), -INT16_C( 29059), -INT16_C( 12205), INT16_C( 22125), -INT16_C( 21659), -INT16_C( 21159) },
{ -INT16_C( 27474), -INT16_C( 12163), -INT16_C( 21286), INT16_C( 7214), -INT16_C( 14697), INT16_C( 20481), -INT16_C( 5429), -INT16_C( 27609) } },
{ { -INT16_C( 18908), INT16_C( 18196), INT16_C( 26522), INT16_C( 24281), INT16_C( 17789), INT16_C( 11108), -INT16_C( 7546), INT16_C( 28004) },
{ -INT16_C( 31537), -INT16_C( 14301), -INT16_C( 24109), INT16_C( 9814), -INT16_C( 15503), -INT16_C( 10628), -INT16_C( 10898), -INT16_C( 27772) },
{ INT16_C( 13035), -INT16_C( 28873), -INT16_C( 14775), INT16_C( 30863), -INT16_C( 31220), -INT16_C( 744), INT16_C( 14312), -INT16_C( 288) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int16x8_t a = simde_vld1q_s16(test_vec[i].a);
simde_int16x8_t b = simde_vld1q_s16(test_vec[i].b);
simde_int16x8_t r = simde_veorq_s16(a, b);
simde_test_arm_neon_assert_equal_i16x8(r, simde_vld1q_s16(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_s32 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int32_t a[4];
int32_t b[4];
int32_t r[4];
} test_vec[] = {
{ { INT32_C( 2023602252), -INT32_C( 1635477608), INT32_C( 1571456524), -INT32_C( 1631778536) },
{ -INT32_C( 771340562), -INT32_C( 1375991329), -INT32_C( 1944584857), INT32_C( 248442050) },
{ -INT32_C( 1432617310), INT32_C( 863542855), -INT32_C( 776111253), -INT32_C( 1871452710) } },
{ { INT32_C( 1032219556), INT32_C( 266013443), -INT32_C( 1452505711), INT32_C( 2085038734) },
{ INT32_C( 1330531952), -INT32_C( 1090762153), INT32_C( 172692296), -INT32_C( 1541924353) },
{ INT32_C( 1925719508), -INT32_C( 1322827436), -INT32_C( 1557686567), -INT32_C( 664849551) } },
{ { -INT32_C( 1998479739), INT32_C( 983022761), -INT32_C( 790428863), -INT32_C( 1655952595) },
{ -INT32_C( 789800071), INT32_C( 764406245), -INT32_C( 63448324), INT32_C( 2023772147) },
{ INT32_C( 1477248508), INT32_C( 387470668), INT32_C( 752146877), -INT32_C( 437492514) } },
{ { -INT32_C( 1761574418), INT32_C( 2127730493), -INT32_C( 934365797), INT32_C( 1499896800) },
{ INT32_C( 455758390), INT32_C( 944355643), -INT32_C( 2043379565), -INT32_C( 1090530096) },
{ -INT32_C( 1943350312), INT32_C( 1184574982), INT32_C( 1316631816), -INT32_C( 409383120) } },
{ { -INT32_C( 1839857835), INT32_C( 839919511), -INT32_C( 1107664931), INT32_C( 806838522) },
{ -INT32_C( 297057869), -INT32_C( 1926851334), -INT32_C( 451716587), -INT32_C( 2086464978) },
{ INT32_C( 2082389734), -INT32_C( 1086934163), INT32_C( 1491666376), -INT32_C( 1280019756) } },
{ { -INT32_C( 1458178030), -INT32_C( 35969504), INT32_C( 2142950789), -INT32_C( 374353610) },
{ INT32_C( 215480850), -INT32_C( 1533411697), -INT32_C( 2021020328), -INT32_C( 787862337) },
{ -INT32_C( 1514012160), INT32_C( 1497553071), -INT32_C( 130844451), INT32_C( 950402441) } },
{ { INT32_C( 1148854308), -INT32_C( 884910778), INT32_C( 1632304171), -INT32_C( 531957299) },
{ -INT32_C( 2098454029), INT32_C( 2015790623), -INT32_C( 218124493), INT32_C( 12847579) },
{ -INT32_C( 963247657), -INT32_C( 1285041319), -INT32_C( 1816833256), -INT32_C( 527503338) } },
{ { INT32_C( 1866743337), -INT32_C( 1086683500), INT32_C( 1327531138), INT32_C( 1898932861) },
{ -INT32_C( 1410130805), -INT32_C( 719119710), -INT32_C( 1513676087), INT32_C( 1436912427) },
{ -INT32_C( 994631006), INT32_C( 1780063286), -INT32_C( 353917365), INT32_C( 613081430) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int32x4_t a = simde_vld1q_s32(test_vec[i].a);
simde_int32x4_t b = simde_vld1q_s32(test_vec[i].b);
simde_int32x4_t r = simde_veorq_s32(a, b);
simde_test_arm_neon_assert_equal_i32x4(r, simde_vld1q_s32(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_s64 (SIMDE_MUNIT_TEST_ARGS) {
struct {
int64_t a[2];
int64_t b[2];
int64_t r[2];
} test_vec[] = {
{ { INT64_C( 7838966427958002848), -INT64_C( 8261242307613928860) },
{ -INT64_C( 7431965701611751289), -INT64_C( 7407344992410839652) },
{ -INT64_C( 858567960746443737), INT64_C( 1470980658505123832) } },
{ { -INT64_C( 2886416538353870570), -INT64_C( 2150656445132361547) },
{ -INT64_C( 6271031530521972019), INT64_C( 8555292687707573543) },
{ INT64_C( 9154042880290745307), -INT64_C( 7737795467991990894) } },
{ { INT64_C( 7829206375937561691), -INT64_C( 4369848476834029283) },
{ INT64_C( 5445726219798794719), -INT64_C( 4720293152652729688) },
{ INT64_C( 2825435453100393860), INT64_C( 9017626565343331253) } },
{ { -INT64_C( 8962951169386382982), -INT64_C( 5796880591085591596) },
{ INT64_C( 8365487760686624936), INT64_C( 2608422744189862928) },
{ -INT64_C( 611049541326091822), -INT64_C( 8376786039276034108) } },
{ { -INT64_C( 4152896156506669197), INT64_C( 6419350962335406486) },
{ -INT64_C( 1293309491724046130), -INT64_C( 608104132508481087) },
{ INT64_C( 2905049548670898109), -INT64_C( 5865506187303006121) } },
{ { INT64_C( 7857425477002191955), -INT64_C( 8749955623567516792) },
{ -INT64_C( 5303219508194789478), -INT64_C( 5750620235210045001) },
{ -INT64_C( 2635728232020618295), INT64_C( 3936243814942003775) } },
{ { -INT64_C( 5055008894465277291), INT64_C( 3520270740420144539) },
{ -INT64_C( 2385764142126859718), INT64_C( 5541198542273054425) },
{ INT64_C( 7439119847274641583), INT64_C( 8952251304586554178) } },
{ { INT64_C( 8518438691616185165), -INT64_C( 1943686230725547969) },
{ -INT64_C( 7447835856211759203), INT64_C( 6053598794347363582) },
{ -INT64_C( 1255261415251544880), -INT64_C( 5691397999926209343) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_int64x2_t a = simde_vld1q_s64(test_vec[i].a);
simde_int64x2_t b = simde_vld1q_s64(test_vec[i].b);
simde_int64x2_t r = simde_veorq_s64(a, b);
simde_test_arm_neon_assert_equal_i64x2(r, simde_vld1q_s64(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_u8 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint8_t a[16];
uint8_t b[16];
uint8_t r[16];
} test_vec[] = {
{ { UINT8_C(163), UINT8_C(170), UINT8_C(155), UINT8_C(223), UINT8_C(123), UINT8_C( 66), UINT8_C( 74), UINT8_C(148),
UINT8_C(241), UINT8_C(216), UINT8_C(221), UINT8_C( 81), UINT8_C(250), UINT8_C(209), UINT8_C(216), UINT8_C(238) },
{ UINT8_C(131), UINT8_C(191), UINT8_C(180), UINT8_C( 39), UINT8_C(251), UINT8_C(201), UINT8_C(227), UINT8_C(246),
UINT8_C( 77), UINT8_C(182), UINT8_C(108), UINT8_C( 73), UINT8_C(249), UINT8_C(179), UINT8_C(147), UINT8_C(156) },
{ UINT8_C( 32), UINT8_C( 21), UINT8_C( 47), UINT8_C(248), UINT8_C(128), UINT8_C(139), UINT8_C(169), UINT8_C( 98),
UINT8_C(188), UINT8_C(110), UINT8_C(177), UINT8_C( 24), UINT8_C( 3), UINT8_C( 98), UINT8_C( 75), UINT8_C(114) } },
{ { UINT8_C( 93), UINT8_C( 46), UINT8_C(124), UINT8_C(217), UINT8_C(112), UINT8_C(198), UINT8_C(109), UINT8_C( 98),
UINT8_C(159), UINT8_C( 74), UINT8_C(179), UINT8_C(153), UINT8_C( 27), UINT8_C(139), UINT8_C(135), UINT8_C(159) },
{ UINT8_C( 75), UINT8_C( 60), UINT8_C(198), UINT8_C( 70), UINT8_C( 5), UINT8_C(169), UINT8_C( 60), UINT8_C( 82),
UINT8_C( 95), UINT8_C(168), UINT8_C(156), UINT8_C( 89), UINT8_C( 92), UINT8_C( 47), UINT8_C(245), UINT8_C(185) },
{ UINT8_C( 22), UINT8_C( 18), UINT8_C(186), UINT8_C(159), UINT8_C(117), UINT8_C(111), UINT8_C( 81), UINT8_C( 48),
UINT8_C(192), UINT8_C(226), UINT8_C( 47), UINT8_C(192), UINT8_C( 71), UINT8_C(164), UINT8_C(114), UINT8_C( 38) } },
{ { UINT8_C( 93), UINT8_C(113), UINT8_C(146), UINT8_C(205), UINT8_C( 56), UINT8_MAX, UINT8_C( 47), UINT8_C(215),
UINT8_C( 73), UINT8_C(226), UINT8_C(112), UINT8_C(101), UINT8_C(110), UINT8_C(248), UINT8_C( 4), UINT8_C(185) },
{ UINT8_C( 52), UINT8_C(202), UINT8_MAX, UINT8_C( 57), UINT8_C(116), UINT8_C( 59), UINT8_C(140), UINT8_C(211),
UINT8_C(228), UINT8_C( 40), UINT8_C( 44), UINT8_C( 64), UINT8_C( 87), UINT8_C( 34), UINT8_C(249), UINT8_C(180) },
{ UINT8_C(105), UINT8_C(187), UINT8_C(109), UINT8_C(244), UINT8_C( 76), UINT8_C(196), UINT8_C(163), UINT8_C( 4),
UINT8_C(173), UINT8_C(202), UINT8_C( 92), UINT8_C( 37), UINT8_C( 57), UINT8_C(218), UINT8_C(253), UINT8_C( 13) } },
{ { UINT8_C(147), UINT8_C(140), UINT8_C(129), UINT8_C(203), UINT8_C(139), UINT8_C(177), UINT8_C(162), UINT8_C(213),
UINT8_C(147), UINT8_C( 19), UINT8_C( 58), UINT8_C( 1), UINT8_C( 11), UINT8_C( 62), UINT8_C(186), UINT8_C( 63) },
{ UINT8_C( 8), UINT8_C(185), UINT8_C(120), UINT8_C(124), UINT8_C(245), UINT8_C( 4), UINT8_C( 80), UINT8_C(217),
UINT8_C( 44), UINT8_C(124), UINT8_C( 25), UINT8_C(131), UINT8_C(158), UINT8_C( 18), UINT8_C( 55), UINT8_C( 50) },
{ UINT8_C(155), UINT8_C( 53), UINT8_C(249), UINT8_C(183), UINT8_C(126), UINT8_C(181), UINT8_C(242), UINT8_C( 12),
UINT8_C(191), UINT8_C(111), UINT8_C( 35), UINT8_C(130), UINT8_C(149), UINT8_C( 44), UINT8_C(141), UINT8_C( 13) } },
{ { UINT8_C(158), UINT8_C(185), UINT8_C(253), UINT8_C( 42), UINT8_C(106), UINT8_C(160), UINT8_MAX, UINT8_C(253),
UINT8_C(179), UINT8_C( 57), UINT8_MAX, UINT8_C(190), UINT8_C(119), UINT8_C(185), UINT8_C(253), UINT8_C(127) },
{ UINT8_C(115), UINT8_C(117), UINT8_C(252), UINT8_C(104), UINT8_C(122), UINT8_C( 76), UINT8_C( 65), UINT8_C(166),
UINT8_C(200), UINT8_C( 90), UINT8_C( 42), UINT8_C(103), UINT8_C(108), UINT8_C( 97), UINT8_C(153), UINT8_C( 11) },
{ UINT8_C(237), UINT8_C(204), UINT8_C( 1), UINT8_C( 66), UINT8_C( 16), UINT8_C(236), UINT8_C(190), UINT8_C( 91),
UINT8_C(123), UINT8_C( 99), UINT8_C(213), UINT8_C(217), UINT8_C( 27), UINT8_C(216), UINT8_C(100), UINT8_C(116) } },
{ { UINT8_C( 26), UINT8_C(150), UINT8_C( 53), UINT8_C(132), UINT8_C( 54), UINT8_C( 52), UINT8_C(130), UINT8_C(233),
UINT8_C(109), UINT8_C(129), UINT8_C(167), UINT8_C(228), UINT8_C( 58), UINT8_C(164), UINT8_C( 99), UINT8_C(173) },
{ UINT8_C( 26), UINT8_C( 95), UINT8_C( 21), UINT8_C(148), UINT8_C(171), UINT8_C( 86), UINT8_C( 58), UINT8_C(116),
UINT8_C(176), UINT8_C(100), UINT8_C(219), UINT8_C( 29), UINT8_C(198), UINT8_C(116), UINT8_C( 40), UINT8_C(224) },
{ UINT8_C( 0), UINT8_C(201), UINT8_C( 32), UINT8_C( 16), UINT8_C(157), UINT8_C( 98), UINT8_C(184), UINT8_C(157),
UINT8_C(221), UINT8_C(229), UINT8_C(124), UINT8_C(249), UINT8_C(252), UINT8_C(208), UINT8_C( 75), UINT8_C( 77) } },
{ { UINT8_C( 10), UINT8_C( 93), UINT8_C(101), UINT8_C( 65), UINT8_C(145), UINT8_C(231), UINT8_C( 42), UINT8_C(254),
UINT8_C(104), UINT8_C(210), UINT8_C(226), UINT8_C(162), UINT8_C(118), UINT8_C( 69), UINT8_C( 80), UINT8_C(144) },
{ UINT8_C(165), UINT8_C(101), UINT8_C( 36), UINT8_C( 80), UINT8_C(188), UINT8_C( 95), UINT8_C(196), UINT8_C(108),
UINT8_C(195), UINT8_C(159), UINT8_C(137), UINT8_C(137), UINT8_C( 19), UINT8_C(177), UINT8_C(106), UINT8_C( 30) },
{ UINT8_C(175), UINT8_C( 56), UINT8_C( 65), UINT8_C( 17), UINT8_C( 45), UINT8_C(184), UINT8_C(238), UINT8_C(146),
UINT8_C(171), UINT8_C( 77), UINT8_C(107), UINT8_C( 43), UINT8_C(101), UINT8_C(244), UINT8_C( 58), UINT8_C(142) } },
{ { UINT8_C( 14), UINT8_C(207), UINT8_C( 95), UINT8_C(159), UINT8_C(182), UINT8_C(137), UINT8_C(157), UINT8_C( 30),
UINT8_C( 91), UINT8_C(127), UINT8_C(192), UINT8_C(210), UINT8_C(197), UINT8_C( 16), UINT8_C( 98), UINT8_C(106) },
{ UINT8_C(118), UINT8_C(135), UINT8_C(186), UINT8_C( 50), UINT8_C(230), UINT8_C(127), UINT8_C(158), UINT8_C(169),
UINT8_C( 30), UINT8_C( 40), UINT8_C( 51), UINT8_C( 50), UINT8_C(217), UINT8_C(157), UINT8_C( 80), UINT8_C(232) },
{ UINT8_C(120), UINT8_C( 72), UINT8_C(229), UINT8_C(173), UINT8_C( 80), UINT8_C(246), UINT8_C( 3), UINT8_C(183),
UINT8_C( 69), UINT8_C( 87), UINT8_C(243), UINT8_C(224), UINT8_C( 28), UINT8_C(141), UINT8_C( 50), UINT8_C(130) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint8x16_t a = simde_vld1q_u8(test_vec[i].a);
simde_uint8x16_t b = simde_vld1q_u8(test_vec[i].b);
simde_uint8x16_t r = simde_veorq_u8(a, b);
simde_test_arm_neon_assert_equal_u8x16(r, simde_vld1q_u8(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_u16 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint16_t a[8];
uint16_t b[8];
uint16_t r[8];
} test_vec[] = {
{ { UINT16_C(40817), UINT16_C(53417), UINT16_C(32015), UINT16_C(44806), UINT16_C( 9027), UINT16_C(13174), UINT16_C(64941), UINT16_C(39222) },
{ UINT16_C(48960), UINT16_C(16190), UINT16_C(49883), UINT16_C(20177), UINT16_C(31404), UINT16_C(58163), UINT16_C(36172), UINT16_C(48412) },
{ UINT16_C( 8241), UINT16_C(61335), UINT16_C(49108), UINT16_C(57815), UINT16_C(23023), UINT16_C(53317), UINT16_C(28897), UINT16_C( 9258) } },
{ { UINT16_C(50477), UINT16_C(15501), UINT16_C(37954), UINT16_C(34283), UINT16_C(25015), UINT16_C(26041), UINT16_C(61278), UINT16_C(40958) },
{ UINT16_C(15534), UINT16_C(35294), UINT16_C(45055), UINT16_C(43991), UINT16_C( 2857), UINT16_C(30094), UINT16_C(43672), UINT16_C(50483) },
{ UINT16_C(63875), UINT16_C(46419), UINT16_C(15293), UINT16_C(11836), UINT16_C(27294), UINT16_C( 4151), UINT16_C(17862), UINT16_C(23245) } },
{ { UINT16_C(49264), UINT16_C(45569), UINT16_C(60756), UINT16_C( 3128), UINT16_C(61774), UINT16_C(44401), UINT16_C(28640), UINT16_C(36684) },
{ UINT16_C(10924), UINT16_C(43800), UINT16_C(61657), UINT16_C( 598), UINT16_C(58619), UINT16_C(37751), UINT16_C(43663), UINT16_C(65369) },
{ UINT16_C(60124), UINT16_C( 6425), UINT16_C( 7565), UINT16_C( 3694), UINT16_C( 5557), UINT16_C(15878), UINT16_C(50543), UINT16_C(28693) } },
{ { UINT16_C(23147), UINT16_C(49073), UINT16_C(59719), UINT16_C(38603), UINT16_C(15578), UINT16_C(47939), UINT16_C(36780), UINT16_C(22602) },
{ UINT16_C(25273), UINT16_C(37379), UINT16_C(22866), UINT16_C(19860), UINT16_C( 2877), UINT16_C(52449), UINT16_C(15030), UINT16_C( 8651) },
{ UINT16_C(14546), UINT16_C(11698), UINT16_C(45077), UINT16_C(56159), UINT16_C(14311), UINT16_C(30626), UINT16_C(46362), UINT16_C(31105) } },
{ { UINT16_C(32148), UINT16_C(56544), UINT16_C(44134), UINT16_C(16754), UINT16_C(46568), UINT16_C(38140), UINT16_C(17988), UINT16_C(65004) },
{ UINT16_C(61352), UINT16_C(64399), UINT16_C( 9032), UINT16_C(34376), UINT16_C(10542), UINT16_C(58450), UINT16_C( 7779), UINT16_C(63493) },
{ UINT16_C(37436), UINT16_C(10095), UINT16_C(36654), UINT16_C(51002), UINT16_C(40134), UINT16_C(28846), UINT16_C(22567), UINT16_C( 1513) } },
{ { UINT16_C(59035), UINT16_C( 468), UINT16_C(18066), UINT16_C(31298), UINT16_C(16123), UINT16_C(16143), UINT16_C(64388), UINT16_C(11580) },
{ UINT16_C(52203), UINT16_C(13096), UINT16_C(28910), UINT16_C( 7353), UINT16_C( 3226), UINT16_C(64769), UINT16_C( 1578), UINT16_C(50677) },
{ UINT16_C(11632), UINT16_C(13052), UINT16_C(13948), UINT16_C(26363), UINT16_C(12897), UINT16_C(49678), UINT16_C(64942), UINT16_C(59593) } },
{ { UINT16_C(51692), UINT16_C(32454), UINT16_C( 2319), UINT16_C( 2809), UINT16_C( 2119), UINT16_C(52297), UINT16_C(34051), UINT16_C(61177) },
{ UINT16_C( 8528), UINT16_C(15906), UINT16_C(56209), UINT16_C(11099), UINT16_C(23783), UINT16_C( 4393), UINT16_C( 7778), UINT16_C(20438) },
{ UINT16_C(59580), UINT16_C(16612), UINT16_C(53918), UINT16_C( 8610), UINT16_C(21664), UINT16_C(56672), UINT16_C(39777), UINT16_C(41263) } },
{ { UINT16_C(40424), UINT16_C(63437), UINT16_C(50854), UINT16_C(60674), UINT16_C(19406), UINT16_C(53945), UINT16_C(45777), UINT16_C( 8640) },
{ UINT16_C(58067), UINT16_C(25952), UINT16_C(48062), UINT16_C(42384), UINT16_C(47383), UINT16_C(31159), UINT16_C(36312), UINT16_C(49352) },
{ UINT16_C(32571), UINT16_C(37549), UINT16_C(32024), UINT16_C(18578), UINT16_C(62169), UINT16_C(43790), UINT16_C(16137), UINT16_C(57608) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint16x8_t a = simde_vld1q_u16(test_vec[i].a);
simde_uint16x8_t b = simde_vld1q_u16(test_vec[i].b);
simde_uint16x8_t r = simde_veorq_u16(a, b);
simde_test_arm_neon_assert_equal_u16x8(r, simde_vld1q_u16(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_u32 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint32_t a[4];
uint32_t b[4];
uint32_t r[4];
} test_vec[] = {
{ { UINT32_C(1830076854), UINT32_C(2624093226), UINT32_C(4093110100), UINT32_C( 698167114) },
{ UINT32_C( 927289064), UINT32_C(1414399674), UINT32_C(4078960399), UINT32_C( 302114395) },
{ UINT32_C(1515294558), UINT32_C(3357964944), UINT32_C( 15210587), UINT32_C(1000130833) } },
{ { UINT32_C(3531544232), UINT32_C(3866027922), UINT32_C( 433677774), UINT32_C(2084730516) },
{ UINT32_C(2142537924), UINT32_C(2647851662), UINT32_C(1553003009), UINT32_C(2171507417) },
{ UINT32_C(2915802732), UINT32_C(2076042524), UINT32_C(1162450895), UINT32_C(4247577677) } },
{ { UINT32_C( 978579112), UINT32_C(2753610453), UINT32_C(3166566695), UINT32_C( 859373423) },
{ UINT32_C( 364047495), UINT32_C(4021454574), UINT32_C(1363952504), UINT32_C(2110962389) },
{ UINT32_C( 803275311), UINT32_C(1267876923), UINT32_C(3992042079), UINT32_C(1323976122) } },
{ { UINT32_C(2125932200), UINT32_C( 253941736), UINT32_C(1070325712), UINT32_C(1718748382) },
{ UINT32_C(3749389808), UINT32_C( 600714923), UINT32_C(1182079601), UINT32_C(2109949909) },
{ UINT32_C(2714501976), UINT32_C( 753727811), UINT32_C(2042545569), UINT32_C( 464601867) } },
{ { UINT32_C(1442544237), UINT32_C( 560274769), UINT32_C(3680514300), UINT32_C( 625070644) },
{ UINT32_C(2718219511), UINT32_C(1539756778), UINT32_C(3265346541), UINT32_C(4030686338) },
{ UINT32_C(4160734874), UINT32_C(2057555899), UINT32_C( 432081681), UINT32_C(3581851318) } },
{ { UINT32_C( 793066462), UINT32_C(1431349848), UINT32_C( 254849243), UINT32_C(2050257283) },
{ UINT32_C( 404568109), UINT32_C(4168344331), UINT32_C(2696549662), UINT32_C(1485896057) },
{ UINT32_C( 928515059), UINT32_C(2904770899), UINT32_C(2945099205), UINT32_C( 581208314) } },
{ { UINT32_C(2374489652), UINT32_C(1541593216), UINT32_C( 191566472), UINT32_C(2961612675) },
{ UINT32_C(3821577176), UINT32_C(2765831302), UINT32_C(3393492305), UINT32_C(3273840014) },
{ UINT32_C(1850701292), UINT32_C(4281984006), UINT32_C(3241117657), UINT32_C(1940146701) } },
{ { UINT32_C( 726706859), UINT32_C( 176632450), UINT32_C(3340169796), UINT32_C(1769446545) },
{ UINT32_C(3310108735), UINT32_C(3446220668), UINT32_C(1268231612), UINT32_C( 755939970) },
{ UINT32_C(3994872468), UINT32_C(3354269182), UINT32_C(2357288952), UINT32_C(1148790291) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint32x4_t a = simde_vld1q_u32(test_vec[i].a);
simde_uint32x4_t b = simde_vld1q_u32(test_vec[i].b);
simde_uint32x4_t r = simde_veorq_u32(a, b);
simde_test_arm_neon_assert_equal_u32x4(r, simde_vld1q_u32(test_vec[i].r));
}
return 0;
}
static int
test_simde_veorq_u64 (SIMDE_MUNIT_TEST_ARGS) {
struct {
uint64_t a[2];
uint64_t b[2];
uint64_t r[2];
} test_vec[] = {
{ { UINT64_C( 8527705653078384895), UINT64_C(10179607844703931613) },
{ UINT64_C(10192410360933839086), UINT64_C( 2403911898190977636) },
{ UINT64_C(18098498112181702673), UINT64_C(12401033501679916729) } },
{ { UINT64_C(10149867462929755977), UINT64_C( 6922438834607896094) },
{ UINT64_C(11828856431356447074), UINT64_C(15918126349759228581) },
{ UINT64_C( 2950729595619485227), UINT64_C(13617190798025235643) } },
{ { UINT64_C(15129031179623276987), UINT64_C(17664637898287554899) },
{ UINT64_C( 7842376392276655600), UINT64_C( 5427430808190387426) },
{ UINT64_C(13628079889122729035), UINT64_C(13724575844232734129) } },
{ { UINT64_C( 343024198562911037), UINT64_C( 7949959993762584523) },
{ UINT64_C( 8962008892823233323), UINT64_C(16956972536245162616) },
{ UINT64_C( 8691341630343114774), UINT64_C( 9583847818821076403) } },
{ { UINT64_C( 9046779137311311831), UINT64_C( 7971704781101815221) },
{ UINT64_C( 3110227796088078098), UINT64_C( 3957404440158477138) },
{ UINT64_C( 6243433851020589253), UINT64_C( 6362083362209287911) } },
{ { UINT64_C( 1854438940996454029), UINT64_C(15587219748785264543) },
{ UINT64_C(13982179792934777132), UINT64_C( 5863314818597010889) },
{ UINT64_C(15832092318380029857), UINT64_C( 9875901426487437910) } },
{ { UINT64_C( 572322636551429492), UINT64_C( 6233608789164637667) },
{ UINT64_C( 9087772245743765483), UINT64_C( 185216643220562046) },
{ UINT64_C( 8786255496314493599), UINT64_C( 6057411476368383389) } },
{ { UINT64_C( 5949478783376040482), UINT64_C(11495577361277811208) },
{ UINT64_C( 9059581084911189638), UINT64_C( 9766426763440578809) },
{ UINT64_C( 3398761491516660900), UINT64_C( 1729716309622659825) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde_uint64x2_t a = simde_vld1q_u64(test_vec[i].a);
simde_uint64x2_t b = simde_vld1q_u64(test_vec[i].b);
simde_uint64x2_t r = simde_veorq_u64(a, b);
simde_test_arm_neon_assert_equal_u64x2(r, simde_vld1q_u64(test_vec[i].r));
}
return 0;
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(veor_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(veor_u64)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_s8)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_s16)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_s32)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_s64)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_u8)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_u16)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_u32)
SIMDE_TEST_FUNC_LIST_ENTRY(veorq_u64)
SIMDE_TEST_FUNC_LIST_END
#include "test-neon-footer.h"