diff --git a/simde/arm/neon/sli_n.h b/simde/arm/neon/sli_n.h index 1fff37abd..889bafd99 100644 --- a/simde/arm/neon/sli_n.h +++ b/simde/arm/neon/sli_n.h @@ -54,7 +54,7 @@ SIMDE_BEGIN_DECLS_ #define simde_vslid_n_u64(a, b, n) vslid_n_u64(a, b, n) #else #define simde_vslid_n_u64(a, b, n) \ - (((a & (UINT64_C(0xffffffffffffffff) >> (64 - n))) | simde_vshld_n_u64((b), (n)))) + (((a & (UINT64_C(0x7fffffffffffffff) >> (63 - n))) | simde_vshld_n_u64((b), (n)))) #endif #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) #undef vslid_n_u64 @@ -103,7 +103,7 @@ SIMDE_BEGIN_DECLS_ #else #define simde_vsli_n_u16(a, b, n) \ simde_vorr_u16( \ - simde_vand_u16((a), simde_vdup_n_u16((UINT16_C(0xffff) >> (16 - n)))), \ + simde_vand_u16((a), simde_vdup_n_u16((UINT16_C(0x7fff) >> (15 - n)))), \ simde_vshl_n_u16((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -129,7 +129,7 @@ SIMDE_BEGIN_DECLS_ #define simde_vsli_n_u32(a, b, n) \ simde_vorr_u32( \ simde_vand_u32((a), \ - simde_vdup_n_u32((UINT32_C(0xffffffff) >> (32 - n)))), \ + simde_vdup_n_u32((UINT32_C(0x7fffffff) >> (31 - n)))), \ simde_vshl_n_u32((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -155,7 +155,7 @@ SIMDE_BEGIN_DECLS_ #define simde_vsli_n_u64(a, b, n) \ simde_vorr_u64( \ simde_vand_u64((a), simde_vdup_n_u64( \ - (UINT64_C(0xffffffffffffffff) >> (64 - n)))), \ + (UINT64_C(0x7fffffffffffffff) >> (63 - n)))), \ simde_vshl_n_u64((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -180,7 +180,7 @@ SIMDE_BEGIN_DECLS_ #else #define simde_vsliq_n_u8(a, b, n) \ simde_vorrq_u8( \ - simde_vandq_u8((a), simde_vdupq_n_u8((UINT8_C(0xff) >> (8 - n)))), \ + simde_vandq_u8((a), simde_vdupq_n_u8((UINT8_C(0x7f) >> (7 - n)))), \ simde_vshlq_n_u8((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -205,7 +205,7 @@ SIMDE_BEGIN_DECLS_ #else #define simde_vsliq_n_u16(a, b, n) \ simde_vorrq_u16( \ - simde_vandq_u16((a), simde_vdupq_n_u16((UINT16_C(0xffff) >> (16 - n)))), \ + simde_vandq_u16((a), simde_vdupq_n_u16((UINT16_C(0x7fff) >> (15 - n)))), \ simde_vshlq_n_u16((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -231,7 +231,7 @@ SIMDE_BEGIN_DECLS_ #define simde_vsliq_n_u32(a, b, n) \ simde_vorrq_u32( \ simde_vandq_u32((a), \ - simde_vdupq_n_u32((UINT32_C(0xffffffff) >> (32 - n)))), \ + simde_vdupq_n_u32((UINT32_C(0x7fffffff) >> (31 - n)))), \ simde_vshlq_n_u32((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -257,7 +257,7 @@ SIMDE_BEGIN_DECLS_ #define simde_vsliq_n_u64(a, b, n) \ simde_vorrq_u64( \ simde_vandq_u64((a), simde_vdupq_n_u64( \ - (UINT64_C(0xffffffffffffffff) >> (64 - n)))), \ + (UINT64_C(0x7fffffffffffffff) >> (63 - n)))), \ simde_vshlq_n_u64((b), (n))) #endif #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) diff --git a/test/arm/neon/sli_n.c b/test/arm/neon/sli_n.c index 7e15f61b0..2c6171092 100644 --- a/test/arm/neon/sli_n.c +++ b/test/arm/neon/sli_n.c @@ -107,80 +107,91 @@ test_simde_vsli_n_s16 (SIMDE_MUNIT_TEST_ARGS) { struct { int16_t a[4]; int16_t b[4]; + int16_t r0[4]; int16_t r3[4]; int16_t r6[4]; int16_t r10[4]; int16_t r13[4]; int16_t r15[4]; } test_vec[] = { - { { INT16_C( 23715), -INT16_C( 5119), -INT16_C( 948), -INT16_C( 10596) }, - { -INT16_C( 10350), -INT16_C( 1795), -INT16_C( 14589), INT16_C( 23500) }, - { -INT16_C( 17261), -INT16_C( 14359), INT16_C( 14364), -INT16_C( 8604) }, - { -INT16_C( 7005), INT16_C( 16193), -INT16_C( 16180), -INT16_C( 3300) }, - { INT16_C( 18595), -INT16_C( 3071), INT16_C( 3148), INT16_C( 12956) }, - { INT16_C( 23715), -INT16_C( 21503), INT16_C( 31820), -INT16_C( 26980) }, - { INT16_C( 23715), -INT16_C( 5119), -INT16_C( 948), INT16_C( 22172) } }, - { { -INT16_C( 7934), INT16_C( 21731), -INT16_C( 14529), INT16_C( 7523) }, - { INT16_C( 19582), INT16_C( 30872), -INT16_C( 13482), INT16_C( 26450) }, - { INT16_C( 25586), -INT16_C( 15165), INT16_C( 23223), INT16_C( 14995) }, - { INT16_C( 8066), INT16_C( 9763), -INT16_C( 10817), -INT16_C( 11101) }, - { -INT16_C( 1790), INT16_C( 24803), INT16_C( 23359), INT16_C( 18787) }, - { -INT16_C( 16126), INT16_C( 5347), -INT16_C( 14529), INT16_C( 23907) }, - { INT16_C( 24834), INT16_C( 21731), INT16_C( 18239), INT16_C( 7523) } }, - { { -INT16_C( 24714), -INT16_C( 31480), -INT16_C( 32651), INT16_C( 11630) }, - { -INT16_C( 15138), INT16_C( 24046), INT16_C( 29437), INT16_C( 12656) }, - { INT16_C( 9974), -INT16_C( 4240), -INT16_C( 26643), -INT16_C( 29818) }, - { INT16_C( 14262), INT16_C( 31624), -INT16_C( 16523), INT16_C( 23598) }, - { INT16_C( 31606), -INT16_C( 18168), -INT16_C( 2955), -INT16_C( 16018) }, - { -INT16_C( 8330), -INT16_C( 15096), -INT16_C( 24459), INT16_C( 3438) }, - { INT16_C( 8054), INT16_C( 1288), -INT16_C( 32651), INT16_C( 11630) } }, - { { INT16_C( 16403), INT16_C( 27409), -INT16_C( 10162), INT16_C( 4136) }, - { -INT16_C( 19183), INT16_C( 17481), INT16_C( 8984), -INT16_C( 8279) }, - { -INT16_C( 22389), INT16_C( 8777), INT16_C( 6342), -INT16_C( 696) }, - { INT16_C( 17491), INT16_C( 4689), -INT16_C( 14834), -INT16_C( 5528) }, - { INT16_C( 17427), INT16_C( 10001), INT16_C( 24654), -INT16_C( 23512) }, - { INT16_C( 8211), INT16_C( 11025), INT16_C( 6222), INT16_C( 12328) }, - { -INT16_C( 16365), -INT16_C( 5359), INT16_C( 22606), -INT16_C( 28632) } }, - { { -INT16_C( 13838), -INT16_C( 14285), -INT16_C( 31333), INT16_C( 13782) }, - { -INT16_C( 27229), -INT16_C( 5507), INT16_C( 956), INT16_C( 28420) }, - { -INT16_C( 21222), INT16_C( 21483), INT16_C( 7651), INT16_C( 30758) }, - { INT16_C( 26866), -INT16_C( 24717), -INT16_C( 4325), -INT16_C( 16106) }, - { -INT16_C( 29198), -INT16_C( 3021), -INT16_C( 3685), INT16_C( 4566) }, - { INT16_C( 27122), -INT16_C( 22477), -INT16_C( 31333), -INT16_C( 27178) }, - { -INT16_C( 13838), -INT16_C( 14285), INT16_C( 1435), INT16_C( 13782) } }, - { { -INT16_C( 18860), INT16_C( 10979), INT16_C( 2287), INT16_C( 27177) }, - { -INT16_C( 19616), -INT16_C( 31797), -INT16_C( 22340), -INT16_C( 25390) }, - { -INT16_C( 25852), INT16_C( 7771), INT16_C( 17895), -INT16_C( 6511) }, - { -INT16_C( 10220), -INT16_C( 3357), INT16_C( 12079), INT16_C( 13481) }, - { -INT16_C( 32172), INT16_C( 12003), -INT16_C( 3857), INT16_C( 18985) }, - { INT16_C( 5716), INT16_C( 27363), -INT16_C( 30481), INT16_C( 18985) }, - { INT16_C( 13908), -INT16_C( 21789), INT16_C( 2287), INT16_C( 27177) } }, - { { -INT16_C( 2519), -INT16_C( 16767), INT16_C( 1614), -INT16_C( 7018) }, - { -INT16_C( 20639), -INT16_C( 13532), INT16_C( 11903), INT16_C( 7823) }, - { INT16_C( 31497), INT16_C( 22817), INT16_C( 29694), -INT16_C( 2946) }, - { -INT16_C( 10135), -INT16_C( 14079), -INT16_C( 24626), -INT16_C( 23594) }, - { -INT16_C( 31191), -INT16_C( 28031), -INT16_C( 434), INT16_C( 15510) }, - { INT16_C( 13865), -INT16_C( 24959), -INT16_C( 6578), -INT16_C( 7018) }, - { -INT16_C( 2519), INT16_C( 16001), -INT16_C( 31154), -INT16_C( 7018) } }, - { { INT16_C( 23386), -INT16_C( 5076), INT16_C( 2178), -INT16_C( 19292) }, - { -INT16_C( 15822), INT16_C( 11790), -INT16_C( 26587), INT16_C( 12479) }, - { INT16_C( 4498), INT16_C( 28788), -INT16_C( 16086), -INT16_C( 31236) }, - { -INT16_C( 29542), -INT16_C( 31828), INT16_C( 2370), INT16_C( 12260) }, - { -INT16_C( 13478), INT16_C( 14380), -INT16_C( 27518), -INT16_C( 860) }, - { INT16_C( 23386), -INT16_C( 13268), -INT16_C( 22398), -INT16_C( 2908) }, - { INT16_C( 23386), INT16_C( 27692), -INT16_C( 30590), -INT16_C( 19292) } }, + { { INT16_C( 2651), INT16_C( 27627), INT16_C( 22991), INT16_C( 30968) }, + { INT16_C( 25414), -INT16_C( 21444), -INT16_C( 30442), INT16_C( 30264) }, + { INT16_C( 25414), -INT16_C( 21444), -INT16_C( 30442), INT16_C( 30264) }, + { INT16_C( 6707), INT16_C( 25059), INT16_C( 18615), -INT16_C( 20032) }, + { -INT16_C( 11877), INT16_C( 3883), INT16_C( 17807), -INT16_C( 29128) }, + { INT16_C( 6747), -INT16_C( 3093), INT16_C( 22991), -INT16_C( 7944) }, + { -INT16_C( 13733), -INT16_C( 29717), -INT16_C( 9777), INT16_C( 6392) }, + { INT16_C( 2651), INT16_C( 27627), INT16_C( 22991), INT16_C( 30968) } }, + { { -INT16_C( 1399), INT16_C( 19741), -INT16_C( 31117), INT16_C( 19132) }, + { -INT16_C( 3798), INT16_C( 30592), INT16_C( 4195), -INT16_C( 16885) }, + { -INT16_C( 3798), INT16_C( 30592), INT16_C( 4195), -INT16_C( 16885) }, + { -INT16_C( 30383), -INT16_C( 17403), -INT16_C( 31973), -INT16_C( 4004) }, + { INT16_C( 19081), -INT16_C( 8163), INT16_C( 6387), -INT16_C( 32004) }, + { -INT16_C( 21879), INT16_C( 285), -INT16_C( 29069), INT16_C( 11964) }, + { INT16_C( 23177), INT16_C( 3357), INT16_C( 26227), INT16_C( 27324) }, + { INT16_C( 31369), INT16_C( 19741), -INT16_C( 31117), -INT16_C( 13636) } }, + { { -INT16_C( 2534), -INT16_C( 5846), INT16_C( 8783), -INT16_C( 27038) }, + { -INT16_C( 24955), -INT16_C( 25790), INT16_C( 31271), -INT16_C( 20207) }, + { -INT16_C( 24955), -INT16_C( 25790), INT16_C( 31271), -INT16_C( 20207) }, + { -INT16_C( 3030), -INT16_C( 9710), -INT16_C( 11969), -INT16_C( 30582) }, + { -INT16_C( 24230), -INT16_C( 12118), -INT16_C( 30257), INT16_C( 17506) }, + { INT16_C( 5658), INT16_C( 2346), -INT16_C( 25009), INT16_C( 18018) }, + { -INT16_C( 18918), INT16_C( 18730), -INT16_C( 7601), INT16_C( 13922) }, + { -INT16_C( 2534), INT16_C( 26922), -INT16_C( 23985), -INT16_C( 27038) } }, + { { INT16_C( 12148), -INT16_C( 5890), -INT16_C( 17739), -INT16_C( 8398) }, + { -INT16_C( 19796), INT16_C( 3926), INT16_C( 25026), -INT16_C( 8754) }, + { -INT16_C( 19796), INT16_C( 3926), INT16_C( 25026), -INT16_C( 8754) }, + { -INT16_C( 27292), INT16_C( 31414), INT16_C( 3605), -INT16_C( 4494) }, + { -INT16_C( 21708), -INT16_C( 10818), INT16_C( 28853), INT16_C( 29618) }, + { -INT16_C( 19596), INT16_C( 22782), INT16_C( 2741), INT16_C( 15154) }, + { -INT16_C( 28812), -INT16_C( 14082), INT16_C( 23221), -INT16_C( 8398) }, + { INT16_C( 12148), INT16_C( 26878), INT16_C( 15029), INT16_C( 24370) } }, + { { -INT16_C( 1960), -INT16_C( 22586), INT16_C( 10266), -INT16_C( 24515) }, + { INT16_C( 32711), -INT16_C( 4549), INT16_C( 19961), INT16_C( 28319) }, + { INT16_C( 32711), -INT16_C( 4549), INT16_C( 19961), INT16_C( 28319) }, + { -INT16_C( 456), INT16_C( 29150), INT16_C( 28618), INT16_C( 29949) }, + { -INT16_C( 3624), -INT16_C( 28986), INT16_C( 32346), -INT16_C( 22531) }, + { INT16_C( 7256), -INT16_C( 4154), -INT16_C( 7142), INT16_C( 31805) }, + { -INT16_C( 1960), INT16_C( 26566), INT16_C( 10266), -INT16_C( 8131) }, + { -INT16_C( 1960), -INT16_C( 22586), -INT16_C( 22502), -INT16_C( 24515) } }, + { { -INT16_C( 25220), INT16_C( 12630), -INT16_C( 30632), INT16_C( 1040) }, + { INT16_C( 26170), -INT16_C( 749), -INT16_C( 7736), INT16_C( 8410) }, + { INT16_C( 26170), -INT16_C( 749), -INT16_C( 7736), INT16_C( 8410) }, + { INT16_C( 12756), -INT16_C( 5986), INT16_C( 3648), INT16_C( 1744) }, + { -INT16_C( 28996), INT16_C( 17622), INT16_C( 29208), INT16_C( 13968) }, + { -INT16_C( 5764), INT16_C( 19798), INT16_C( 8280), INT16_C( 26640) }, + { INT16_C( 23932), INT16_C( 29014), INT16_C( 2136), INT16_C( 17424) }, + { INT16_C( 7548), -INT16_C( 20138), INT16_C( 2136), INT16_C( 1040) } }, + { { -INT16_C( 24359), -INT16_C( 2873), INT16_C( 1481), -INT16_C( 28524) }, + { -INT16_C( 12412), INT16_C( 32382), INT16_C( 7708), -INT16_C( 26388) }, + { -INT16_C( 12412), INT16_C( 32382), INT16_C( 7708), -INT16_C( 26388) }, + { INT16_C( 31777), -INT16_C( 3081), -INT16_C( 3871), -INT16_C( 14492) }, + { -INT16_C( 7911), -INT16_C( 24697), -INT16_C( 30967), INT16_C( 15124) }, + { INT16_C( 4313), -INT16_C( 1849), INT16_C( 29129), -INT16_C( 20332) }, + { -INT16_C( 32551), -INT16_C( 11065), -INT16_C( 31287), -INT16_C( 28524) }, + { INT16_C( 8409), INT16_C( 29895), INT16_C( 1481), INT16_C( 4244) } }, + { { INT16_C( 17083), INT16_C( 5065), -INT16_C( 9782), INT16_C( 1047) }, + { INT16_C( 11072), INT16_C( 2049), -INT16_C( 9460), -INT16_C( 6616) }, + { INT16_C( 11072), INT16_C( 2049), -INT16_C( 9460), -INT16_C( 6616) }, + { INT16_C( 23043), INT16_C( 16393), -INT16_C( 10142), INT16_C( 12615) }, + { -INT16_C( 12229), INT16_C( 73), -INT16_C( 15606), -INT16_C( 30185) }, + { INT16_C( 699), INT16_C( 1993), INT16_C( 12746), -INT16_C( 24553) }, + { INT16_C( 699), INT16_C( 13257), -INT16_C( 26166), INT16_C( 1047) }, + { INT16_C( 17083), -INT16_C( 27703), INT16_C( 22986), INT16_C( 1047) } }, }; 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 r0 = simde_vsli_n_s16(a, b, 0); simde_int16x4_t r3 = simde_vsli_n_s16(a, b, 3); simde_int16x4_t r6 = simde_vsli_n_s16(a, b, 6); simde_int16x4_t r10 = simde_vsli_n_s16(a, b, 10); simde_int16x4_t r13 = simde_vsli_n_s16(a, b, 13); simde_int16x4_t r15 = simde_vsli_n_s16(a, b, 15); + simde_test_arm_neon_assert_equal_i16x4(r0, simde_vld1_s16(test_vec[i].r0)); simde_test_arm_neon_assert_equal_i16x4(r3, simde_vld1_s16(test_vec[i].r3)); simde_test_arm_neon_assert_equal_i16x4(r6, simde_vld1_s16(test_vec[i].r6)); simde_test_arm_neon_assert_equal_i16x4(r10, simde_vld1_s16(test_vec[i].r10)); @@ -194,6 +205,7 @@ test_simde_vsli_n_s16 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_int16x4_t a = simde_test_arm_neon_random_i16x4(); simde_int16x4_t b = simde_test_arm_neon_random_i16x4(); + simde_int16x4_t r0 = simde_vsli_n_s16(a, b, 0); simde_int16x4_t r3 = simde_vsli_n_s16(a, b, 3); simde_int16x4_t r6 = simde_vsli_n_s16(a, b, 6); simde_int16x4_t r10 = simde_vsli_n_s16(a, b, 10); @@ -202,6 +214,7 @@ test_simde_vsli_n_s16 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_i16x4(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_i16x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i16x4(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i16x4(2, r3, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i16x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i16x4(2, r10, SIMDE_TEST_VEC_POS_MIDDLE); @@ -218,80 +231,91 @@ test_simde_vsli_n_s32 (SIMDE_MUNIT_TEST_ARGS) { struct { int32_t a[2]; int32_t b[2]; + int32_t r0[2]; int32_t r6[2]; int32_t r13[2]; int32_t r19[2]; int32_t r26[2]; int32_t r31[2]; } test_vec[] = { - { { -INT32_C(1940115604), -INT32_C( 493831926) }, - { INT32_C(1869505583), -INT32_C( 899781217) }, - { -INT32_C( 610726932), -INT32_C(1751423030) }, - { -INT32_C( 863637652), -INT32_C( 843843318) }, - { INT32_C( 561786732), INT32_C(1828239626) }, - { -INT32_C(1134809236), INT32_C(2123413770) }, - { -INT32_C(1940115604), -INT32_C( 493831926) } }, - { { -INT32_C(1955947586), INT32_C(1978912402) }, - { -INT32_C(1236739145), INT32_C(1680908470) }, - { -INT32_C(1841893890), INT32_C( 203959698) }, - { INT32_C( 460782526), INT32_C( 337038994) }, - { -INT32_C( 574972994), INT32_C( 95669906) }, - { -INT32_C( 546661442), -INT32_C( 638333294) }, - { -INT32_C(1955947586), INT32_C(1978912402) } }, - { { INT32_C( 280147815), -INT32_C( 796117516) }, - { INT32_C( 183449113), -INT32_C(1555283915) }, - { -INT32_C(1144158617), -INT32_C( 753922700) }, - { -INT32_C( 423413913), -INT32_C(2012826124) }, - { -INT32_C(1328892057), INT32_C( 28063220) }, - { INT32_C(1689433959), -INT32_C( 729008652) }, - { -INT32_C(1867335833), -INT32_C( 796117516) } }, - { { -INT32_C( 481956659), INT32_C(1163086735) }, - { -INT32_C( 907228244), -INT32_C( 499683881) }, - { INT32_C(2066934541), -INT32_C(1914997297) }, - { -INT32_C(1720349491), -INT32_C( 306517105) }, - { INT32_C(1566960845), INT32_C(1857768335) }, - { -INT32_C(1287263027), INT32_C(1565739919) }, - { INT32_C(1665526989), -INT32_C( 984396913) } }, - { { INT32_C( 866589805), -INT32_C(1170103474) }, - { -INT32_C( 619576881), -INT32_C(1677689277) }, - { -INT32_C( 998214675), INT32_C( 2068686) }, - { INT32_C(1077541997), INT32_C( 264790862) }, - { INT32_C( 243211373), -INT32_C( 233200818) }, - { INT32_C(1067916397), INT32_C( 239182670) }, - { -INT32_C(1280893843), -INT32_C(1170103474) } }, - { { -INT32_C(1782422731), INT32_C(1801404031) }, - { -INT32_C( 75297761), -INT32_C( 202030994) }, - { -INT32_C( 524089355), -INT32_C( 45081665) }, - { INT32_C(1636033333), -INT32_C(1475486081) }, - { INT32_C(1627022133), INT32_C( 58146431) }, - { INT32_C(2109891381), -INT32_C(1151385985) }, - { -INT32_C(1782422731), INT32_C(1801404031) } }, - { { -INT32_C(1145515122), -INT32_C(1205350463) }, - { -INT32_C(2014419578), -INT32_C( 605233209) }, - { -INT32_C( 73834098), -INT32_C( 80219711) }, - { -INT32_C( 860826738), -INT32_C(1678184511) }, - { INT32_C( 741397390), -INT32_C( 29372479) }, - { INT32_C( 465097614), INT32_C( 472371137) }, - { INT32_C(1001968526), -INT32_C(1205350463) } }, - { { INT32_C(1262095535), -INT32_C(1722331384) }, - { INT32_C(1969407398), -INT32_C(1230587853) }, - { INT32_C(1488021935), -INT32_C(1448211256) }, - { INT32_C(1488243887), -INT32_C( 687444216) }, - { INT32_C( 758254767), -INT32_C(1046524152) }, - { -INT32_C(1690694481), -INT32_C( 849916152) }, - { INT32_C(1262095535), -INT32_C(1722331384) } }, + { { INT32_C( 1909526748), -INT32_C( 2075901045) }, + { INT32_C( 1329752665), INT32_C( 1432189339) }, + { INT32_C( 1329752665), INT32_C( 1432189339) }, + { -INT32_C( 795175332), INT32_C( 1465804491) }, + { INT32_C( 1296773340), -INT32_C( 1355586677) }, + { INT32_C( 1388908764), -INT32_C( 857980021) }, + { INT32_C( 1708200156), INT32_C( 1816413067) }, + { -INT32_C( 237956900), -INT32_C( 2075901045) } }, + { { -INT32_C( 1171938026), INT32_C( 1703417334) }, + { -INT32_C( 1951100506), INT32_C( 991307615) }, + { -INT32_C( 1951100506), INT32_C( 991307615) }, + { -INT32_C( 316380778), -INT32_C( 980822026) }, + { -INT32_C( 1842035434), -INT32_C( 991169034) }, + { -INT32_C( 1925864170), INT32_C( 989337078) }, + { -INT32_C( 1708808938), INT32_C( 2106070518) }, + { INT32_C( 975545622), -INT32_C( 444066314) } }, + { { -INT32_C( 1028790217), -INT32_C( 2075659989) }, + { -INT32_C( 153908901), INT32_C( 424357891) }, + { -INT32_C( 153908901), INT32_C( 424357891) }, + { -INT32_C( 1260235017), INT32_C( 1389101291) }, + { INT32_C( 1898670135), INT32_C( 1711305003) }, + { INT32_C( 1256056887), -INT32_C( 2145390293) }, + { INT32_C( 1856890935), INT32_C( 206041387) }, + { -INT32_C( 1028790217), -INT32_C( 2075659989) } }, + { { -INT32_C( 858558250), INT32_C( 741432453) }, + { INT32_C( 1287120365), INT32_C( 1149816077) }, + { INT32_C( 1287120365), INT32_C( 1149816077) }, + { INT32_C( 771324758), INT32_C( 573784901) }, + { -INT32_C( 54677290), INT32_C( 430029957) }, + { INT32_C( 795570390), INT32_C( 1751735429) }, + { -INT32_C( 1261211434), INT32_C( 875650181) }, + { -INT32_C( 858558250), -INT32_C( 1406051195) } }, + { { -INT32_C( 519621195), -INT32_C( 2107290074) }, + { -INT32_C( 629655081), INT32_C( 1072940137) }, + { -INT32_C( 629655081), INT32_C( 1072940137) }, + { -INT32_C( 1643219467), -INT32_C( 51307930) }, + { INT32_C( 121304501), INT32_C( 2022518310) }, + { -INT32_C( 826329675), INT32_C( 592268838) }, + { INT32_C( 1560753589), -INT32_C( 1503310298) }, + { -INT32_C( 519621195), -INT32_C( 2107290074) } }, + { { -INT32_C( 1173633228), INT32_C( 283524387) }, + { INT32_C( 794598690), INT32_C( 544531562) }, + { INT32_C( 794598690), INT32_C( 544531562) }, + { -INT32_C( 685291340), INT32_C( 490281635) }, + { -INT32_C( 1817950412), -INT32_C( 1668457181) }, + { -INT32_C( 384579788), INT32_C( 592854307) }, + { -INT32_C( 1978939596), -INT32_C( 1461306077) }, + { INT32_C( 973850420), INT32_C( 283524387) } }, + { { INT32_C( 1073838873), -INT32_C( 1597872439) }, + { INT32_C( 159070879), INT32_C( 860385022) }, + { INT32_C( 159070879), INT32_C( 860385022) }, + { INT32_C( 1590601689), -INT32_C( 769933431) }, + { INT32_C( 1733557017), INT32_C( 232769225) }, + { -INT32_C( 721847527), INT32_C( 2012374729) }, + { INT32_C( 2080471833), -INT32_C( 121477431) }, + { -INT32_C( 1073644775), INT32_C( 549611209) } }, + { { INT32_C( 1491948597), -INT32_C( 1284975727) }, + { -INT32_C( 622606992), -INT32_C( 1007003735) }, + { -INT32_C( 622606992), -INT32_C( 1007003735) }, + { -INT32_C( 1192141771), -INT32_C( 23729583) }, + { INT32_C( 2024674357), INT32_C( 1257583505) }, + { INT32_C( 730158133), -INT32_C( 1119300719) }, + { -INT32_C( 1058188235), -INT32_C( 1486302319) }, + { INT32_C( 1491948597), -INT32_C( 1284975727) } }, }; 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 r0 = simde_vsli_n_s32(a, b, 0); simde_int32x2_t r6 = simde_vsli_n_s32(a, b, 6); simde_int32x2_t r13 = simde_vsli_n_s32(a, b, 13); simde_int32x2_t r19 = simde_vsli_n_s32(a, b, 19); simde_int32x2_t r26 = simde_vsli_n_s32(a, b, 26); simde_int32x2_t r31 = simde_vsli_n_s32(a, b, 31); + simde_test_arm_neon_assert_equal_i32x2(r0, simde_vld1_s32(test_vec[i].r0)); simde_test_arm_neon_assert_equal_i32x2(r6, simde_vld1_s32(test_vec[i].r6)); simde_test_arm_neon_assert_equal_i32x2(r13, simde_vld1_s32(test_vec[i].r13)); simde_test_arm_neon_assert_equal_i32x2(r19, simde_vld1_s32(test_vec[i].r19)); @@ -305,6 +329,7 @@ test_simde_vsli_n_s32 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_int32x2_t a = simde_test_arm_neon_random_i32x2(); simde_int32x2_t b = simde_test_arm_neon_random_i32x2(); + simde_int32x2_t r0 = simde_vsli_n_s32(a, b, 0); simde_int32x2_t r6 = simde_vsli_n_s32(a, b, 6); simde_int32x2_t r13 = simde_vsli_n_s32(a, b, 13); simde_int32x2_t r19 = simde_vsli_n_s32(a, b, 19); @@ -313,6 +338,7 @@ test_simde_vsli_n_s32 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_i32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_i32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x2(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i32x2(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i32x2(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i32x2(2, r19, SIMDE_TEST_VEC_POS_MIDDLE); @@ -329,80 +355,91 @@ test_simde_vsli_n_s64 (SIMDE_MUNIT_TEST_ARGS) { struct { int64_t a[1]; int64_t b[1]; + int64_t r0[1]; int64_t r13[1]; int64_t r26[1]; int64_t r39[1]; int64_t r52[1]; int64_t r63[1]; } test_vec[] = { - { { INT64_C( 6231160190656283089) }, - { -INT64_C( 460160416367637488) }, - { -INT64_C( 6498339846937771567) }, - { INT64_C( 2903370611581485521) }, - { INT64_C( 6558938900547469777) }, - { -INT64_C( 4536946518386572847) }, - { INT64_C( 6231160190656283089) } }, - { { -INT64_C( 1382763905312428596) }, - { -INT64_C( 4253508470463334304) }, - { INT64_C( 1158165201708387788) }, - { INT64_C( 6062878508435041740) }, - { INT64_C( 8465694235828350412) }, - { -INT64_C( 8786681692709524020) }, - { INT64_C( 7840608131542347212) } }, - { { -INT64_C( 188675660009576721) }, - { INT64_C( 8862026640770314742) }, - { -INT64_C( 8662432930376792337) }, - { INT64_C( 1973885914004186863) }, - { -INT64_C( 7721145048391358737) }, - { INT64_C( 2261282537279973103) }, - { INT64_C( 9034696376845199087) } }, - { { INT64_C( 8280825101553980221) }, - { -INT64_C( 5326939997036914826) }, - { INT64_C( 6704022670392873789) }, - { INT64_C( 3396608425067762493) }, - { INT64_C( 7326154889283982141) }, - { INT64_C( 8605084274724655933) }, - { INT64_C( 8280825101553980221) } }, - { { -INT64_C( 4186443145725907458) }, - { INT64_C( 8264653391654679543) }, - { INT64_C( 4489833921080389118) }, - { -INT64_C( 2088201486283346434) }, - { -INT64_C( 6414819513448829442) }, - { INT64_C( 4573058129509707262) }, - { -INT64_C( 4186443145725907458) } }, - { { INT64_C( 668356405945180429) }, - { -INT64_C( 5702155833444664254) }, - { -INT64_C( 4904592946104876787) }, - { -INT64_C( 1416821951687024371) }, - { -INT64_C( 3603406246906420979) }, - { -INT64_C( 4312624781926588147) }, - { INT64_C( 668356405945180429) } }, - { { -INT64_C( 7452140987469877822) }, - { -INT64_C( 6307661369476126878) }, - { -INT64_C( 3031788287977304638) }, - { -INT64_C( 7092131897022960190) }, - { INT64_C( 8499331815746219458) }, - { INT64_C( 8513119691558530498) }, - { INT64_C( 1771231049384897986) } }, - { { INT64_C( 8764810789801773550) }, - { -INT64_C( 8804733489023547712) }, - { -INT64_C( 1607413876556035602) }, - { INT64_C( 3040791881582987758) }, - { INT64_C( 7062594716434778606) }, - { INT64_C( 7783026071035005422) }, - { INT64_C( 8764810789801773550) } }, + { { INT64_C( 6511967064408534046) }, + { -INT64_C( 9043287907392305807) }, + { -INT64_C( 9043287907392305807) }, + { -INT64_C( 490337340209877986) }, + { INT64_C( 4546717069388622878) }, + { INT64_C( 2729947231533476894) }, + { INT64_C( 6277779883785268254) }, + { -INT64_C( 2711404972446241762) } }, + { { -INT64_C( 3478704709806457214) }, + { -INT64_C( 8701403731567860542) }, + { -INT64_C( 8701403731567860542) }, + { -INT64_C( 3680268190206108030) }, + { -INT64_C( 6777197727068324222) }, + { INT64_C( 5895882061704724098) }, + { INT64_C( 5487962148288200322) }, + { INT64_C( 5744667327048318594) } }, + { { -INT64_C( 830361613242049644) }, + { INT64_C( 1138348084824818875) }, + { INT64_C( 1138348084824818875) }, + { -INT64_C( 8704990412116886636) }, + { INT64_C( 3831132899593575316) }, + { INT64_C( 6729043610996988820) }, + { INT64_C( 5456663466567162772) }, + { -INT64_C( 830361613242049644) } }, + { { INT64_C( 4072976403923225911) }, + { INT64_C( 2644443731753970114) }, + { INT64_C( 2644443731753970114) }, + { INT64_C( 6805507993509580087) }, + { INT64_C( 4660892080227503415) }, + { -INT64_C( 2732311178219598537) }, + { -INT64_C( 7195029863757755081) }, + { INT64_C( 4072976403923225911) } }, + { { -INT64_C( 448744510357026738) }, + { -INT64_C( 1072402373768150911) }, + { -INT64_C( 1072402373768150911) }, + { -INT64_C( 4470066822945691570) }, + { -INT64_C( 2000427257641613234) }, + { -INT64_C( 6791357049775896498) }, + { INT64_C( 582579804310816846) }, + { -INT64_C( 448744510357026738) } }, + { { INT64_C( 7136566732569150300) }, + { INT64_C( 3167357582098006) }, + { INT64_C( 3167357582098006) }, + { INT64_C( 7500249238837314396) }, + { -INT64_C( 4062744971199413412) }, + { -INT64_C( 4080495313106271396) }, + { -INT64_C( 1915668518445546660) }, + { INT64_C( 7136566732569150300) } }, + { { -INT64_C( 8232132562708770935) }, + { INT64_C( 8124980900826711063) }, + { INT64_C( 8124980900826711063) }, + { INT64_C( 3990921628354801545) }, + { INT64_C( 5999480869240262537) }, + { INT64_C( 5621067984187510665) }, + { INT64_C( 4715716365981405065) }, + { -INT64_C( 8232132562708770935) } }, + { { -INT64_C( 1350432727383250626) }, + { -INT64_C( 7296712028971544309) }, + { -INT64_C( 7296712028971544309) }, + { -INT64_C( 7214142515943741122) }, + { INT64_C( 5112521554311407934) }, + { INT64_C( 7667525248635529534) }, + { INT64_C( 1203108261335820606) }, + { -INT64_C( 1350432727383250626) } }, }; 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 r0 = simde_vsli_n_s64(a, b, 0); simde_int64x1_t r13 = simde_vsli_n_s64(a, b, 13); simde_int64x1_t r26 = simde_vsli_n_s64(a, b, 26); simde_int64x1_t r39 = simde_vsli_n_s64(a, b, 39); simde_int64x1_t r52 = simde_vsli_n_s64(a, b, 52); simde_int64x1_t r63 = simde_vsli_n_s64(a, b, 63); + simde_test_arm_neon_assert_equal_i64x1(r0, simde_vld1_s64(test_vec[i].r0)); simde_test_arm_neon_assert_equal_i64x1(r13, simde_vld1_s64(test_vec[i].r13)); simde_test_arm_neon_assert_equal_i64x1(r26, simde_vld1_s64(test_vec[i].r26)); simde_test_arm_neon_assert_equal_i64x1(r39, simde_vld1_s64(test_vec[i].r39)); @@ -416,6 +453,7 @@ test_simde_vsli_n_s64 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_int64x1_t a = simde_test_arm_neon_random_i64x1(); simde_int64x1_t b = simde_test_arm_neon_random_i64x1(); + simde_int64x1_t r0 = simde_vsli_n_s64(a, b, 0); simde_int64x1_t r13 = simde_vsli_n_s64(a, b, 13); simde_int64x1_t r26 = simde_vsli_n_s64(a, b, 26); simde_int64x1_t r39 = simde_vsli_n_s64(a, b, 39); @@ -424,6 +462,7 @@ test_simde_vsli_n_s64 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_i64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_i64x1(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x1(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i64x1(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i64x1(2, r26, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i64x1(2, r39, SIMDE_TEST_VEC_POS_MIDDLE); @@ -649,80 +688,91 @@ test_simde_vsli_n_u32 (SIMDE_MUNIT_TEST_ARGS) { struct { uint32_t a[2]; uint32_t b[2]; + uint32_t r0[2]; uint32_t r6[2]; uint32_t r13[2]; uint32_t r19[2]; uint32_t r26[2]; uint32_t r31[2]; } test_vec[] = { - { { UINT32_C(3081230558), UINT32_C(1323792986) }, - { UINT32_C(1071965024), UINT32_C(2237917539) }, - { UINT32_C(4181252126), UINT32_C(1492801754) }, - { UINT32_C(2624329950), UINT32_C(2100066906) }, - { UINT32_C( 453499102), UINT32_C(1260354138) }, - { UINT32_C(2208815326), UINT32_C(2397534810) }, - { UINT32_C( 933746910), UINT32_C(3471276634) } }, - { { UINT32_C(1801753472), UINT32_C(3276321139) }, - { UINT32_C(3767665232), UINT32_C(1682889056) }, - { UINT32_C( 612406272), UINT32_C( 330717235) }, - { UINT32_C(1078596480), UINT32_C(3677098355) }, - { UINT32_C( 310678400), UINT32_C(3405820275) }, - { UINT32_C(1130664832), UINT32_C(2202579315) }, - { UINT32_C(1801753472), UINT32_C(1128837491) } }, - { { UINT32_C(1903242450), UINT32_C( 544175578) }, - { UINT32_C(1301025297), UINT32_C(2094177212) }, - { UINT32_C(1661240402), UINT32_C( 883355418) }, - { UINT32_C(2185374930), UINT32_C(1400346074) }, - { UINT32_C(2424909010), UINT32_C(3722933722) }, - { UINT32_C(1165044946), UINT32_C(4033836506) }, - { UINT32_C(4050726098), UINT32_C( 544175578) } }, - { { UINT32_C(2126941907), UINT32_C( 977695758) }, - { UINT32_C(1486134999), UINT32_C(1742360137) }, - { UINT32_C( 623359443), UINT32_C(4136866382) }, - { UINT32_C(2480598739), UINT32_C(1237922830) }, - { UINT32_C(4139683539), UINT32_C(1917744142) }, - { UINT32_C(1590070995), UINT32_C( 642151438) }, - { UINT32_C(4274425555), UINT32_C(3125179406) } }, - { { UINT32_C(2706916007), UINT32_C(1068692422) }, - { UINT32_C( 545324817), UINT32_C(1867710312) }, - { UINT32_C( 541049959), UINT32_C(3569342982) }, - { UINT32_C( 534913703), UINT32_C(1609372614) }, - { UINT32_C(4169679527), UINT32_C(4215468998) }, - { UINT32_C(1163412135), UINT32_C(2746414022) }, - { UINT32_C(2706916007), UINT32_C(1068692422) } }, - { { UINT32_C(4153598072), UINT32_C(1583301308) }, - { UINT32_C(1843033608), UINT32_C(3432411003) }, - { UINT32_C(1990033976), UINT32_C( 630972156) }, - { UINT32_C(1321271416), UINT32_C(3455017660) }, - { UINT32_C(2957172856), UINT32_C(2078229180) }, - { UINT32_C( 596828280), UINT32_C(3999220412) }, - { UINT32_C(2006114424), UINT32_C(3730784956) } }, - { { UINT32_C( 503922803), UINT32_C( 102391840) }, - { UINT32_C(1659267842), UINT32_C(3517337088) }, - { UINT32_C(3113926835), UINT32_C(1771274272) }, - { UINT32_C(3445637235), UINT32_C(3384803360) }, - { UINT32_C(1477525619), UINT32_C(1879203872) }, - { UINT32_C( 168378483), UINT32_C( 35282976) }, - { UINT32_C( 503922803), UINT32_C( 102391840) } }, - { { UINT32_C( 135317347), UINT32_C(3314568864) }, - { UINT32_C( 923437489), UINT32_C( 213085622) }, - { UINT32_C(3265424483), UINT32_C( 752577952) }, - { UINT32_C(1362503523), UINT32_C(1840696992) }, - { UINT32_C(1300809571), UINT32_C(1840271008) }, - { UINT32_C(3289433955), UINT32_C(3650113184) }, - { UINT32_C(2282800995), UINT32_C(1167085216) } }, + { { UINT32_C(3817254805), UINT32_C(2538561500) }, + { UINT32_C(2907341763), UINT32_C( 54590683) }, + { UINT32_C(2907341763), UINT32_C( 54590683) }, + { UINT32_C(1386279125), UINT32_C(3493803740) }, + { UINT32_C(1350070165), UINT32_C( 530284508) }, + { UINT32_C( 505327509), UINT32_C(3873398748) }, + { UINT32_C( 260485013), UINT32_C(1867472860) }, + { UINT32_C(3817254805), UINT32_C(2538561500) } }, + { { UINT32_C(2557869169), UINT32_C(2753497045) }, + { UINT32_C(1302346433), UINT32_C(1197991346) }, + { UINT32_C(1302346433), UINT32_C(1197991346) }, + { UINT32_C(1745793137), UINT32_C(3657002133) }, + { UINT32_C( 123223153), UINT32_C(4239804373) }, + { UINT32_C(3591240817), UINT32_C( 764872661) }, + { UINT32_C( 74841201), UINT32_C(3357476821) }, + { UINT32_C(2557869169), UINT32_C( 606013397) } }, + { { UINT32_C(1898638741), UINT32_C( 268990797) }, + { UINT32_C(3619574524), UINT32_C(3218800206) }, + { UINT32_C(3619574524), UINT32_C(3218800206) }, + { UINT32_C(4019502869), UINT32_C(4139750285) }, + { UINT32_C(3395259797), UINT32_C(1607063885) }, + { UINT32_C(2548231573), UINT32_C(4067457357) }, + { UINT32_C(4046122389), UINT32_C( 940079437) }, + { UINT32_C(1898638741), UINT32_C( 268990797) } }, + { { UINT32_C(3478606074), UINT32_C( 426997335) }, + { UINT32_C(1650856880), UINT32_C(2393558521) }, + { UINT32_C(1650856880), UINT32_C(2393558521) }, + { UINT32_C(2575625274), UINT32_C(2863890007) }, + { UINT32_C(3262517498), UINT32_C(1505703511) }, + { UINT32_C(2642891002), UINT32_C(1875605079) }, + { UINT32_C(3277279482), UINT32_C(3849549399) }, + { UINT32_C(1331122426), UINT32_C(2574480983) } }, + { { UINT32_C( 134206650), UINT32_C(1243088718) }, + { UINT32_C(2804078169), UINT32_C(3479633108) }, + { UINT32_C(2804078169), UINT32_C(3479633108) }, + { UINT32_C(3367343738), UINT32_C(3653186830) }, + { UINT32_C(1523266746), UINT32_C(3751446350) }, + { UINT32_C(2999964858), UINT32_C(3869247310) }, + { UINT32_C(1744819386), UINT32_C(1377306446) }, + { UINT32_C(2281690298), UINT32_C(1243088718) } }, + { { UINT32_C(2761866572), UINT32_C(3837596212) }, + { UINT32_C( 507978533), UINT32_C(2863460848) }, + { UINT32_C( 507978533), UINT32_C(2863460848) }, + { UINT32_C(2445855052), UINT32_C(2872867892) }, + { UINT32_C(3831807308), UINT32_C(2654868020) }, + { UINT32_C( 422493516), UINT32_C(2407862836) }, + { UINT32_C(2493431116), UINT32_C(3233616436) }, + { UINT32_C(2761866572), UINT32_C(1690112564) } }, + { { UINT32_C( 330476485), UINT32_C( 190761650) }, + { UINT32_C(1957855392), UINT32_C(3376617596) }, + { UINT32_C(1957855392), UINT32_C(3376617596) }, + { UINT32_C( 748693509), UINT32_C(1355161394) }, + { UINT32_C(1343491013), UINT32_C(1661962930) }, + { UINT32_C( 84061125), UINT32_C(3286682290) }, + { UINT32_C(2209524677), UINT32_C(4083075762) }, + { UINT32_C( 330476485), UINT32_C( 190761650) } }, + { { UINT32_C( 174973654), UINT32_C( 435038964) }, + { UINT32_C(1027093837), UINT32_C(3974620198) }, + { UINT32_C(1027093837), UINT32_C(3974620198) }, + { UINT32_C(1309496150), UINT32_C( 972622260) }, + { UINT32_C( 111780566), UINT32_C(4236561140) }, + { UINT32_C(2859328214), UINT32_C( 557198068) }, + { UINT32_C( 913171158), UINT32_C(2582522612) }, + { UINT32_C(2322457302), UINT32_C( 435038964) } }, }; 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 r0 = simde_vsli_n_u32(a, b, 0); simde_uint32x2_t r6 = simde_vsli_n_u32(a, b, 6); simde_uint32x2_t r13 = simde_vsli_n_u32(a, b, 13); simde_uint32x2_t r19 = simde_vsli_n_u32(a, b, 19); simde_uint32x2_t r26 = simde_vsli_n_u32(a, b, 26); simde_uint32x2_t r31 = simde_vsli_n_u32(a, b, 31); + simde_test_arm_neon_assert_equal_u32x2(r0, simde_vld1_u32(test_vec[i].r0)); simde_test_arm_neon_assert_equal_u32x2(r6, simde_vld1_u32(test_vec[i].r6)); simde_test_arm_neon_assert_equal_u32x2(r13, simde_vld1_u32(test_vec[i].r13)); simde_test_arm_neon_assert_equal_u32x2(r19, simde_vld1_u32(test_vec[i].r19)); @@ -736,6 +786,7 @@ test_simde_vsli_n_u32 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_uint32x2_t a = simde_test_arm_neon_random_u32x2(); simde_uint32x2_t b = simde_test_arm_neon_random_u32x2(); + simde_uint32x2_t r0 = simde_vsli_n_u32(a, b, 0); simde_uint32x2_t r6 = simde_vsli_n_u32(a, b, 6); simde_uint32x2_t r13 = simde_vsli_n_u32(a, b, 13); simde_uint32x2_t r19 = simde_vsli_n_u32(a, b, 19); @@ -744,6 +795,7 @@ test_simde_vsli_n_u32 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_u32x2(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_u32x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u32x2(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_u32x2(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_u32x2(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_u32x2(2, r19, SIMDE_TEST_VEC_POS_MIDDLE); @@ -760,80 +812,91 @@ test_simde_vsli_n_u64 (SIMDE_MUNIT_TEST_ARGS) { struct { uint64_t a[1]; uint64_t b[1]; + uint64_t r0[1]; uint64_t r13[1]; uint64_t r26[1]; uint64_t r39[1]; uint64_t r52[1]; uint64_t r63[1]; } test_vec[] = { - { { UINT64_C( 2367438358383478378) }, - { UINT64_C(10151069329549398822) }, - { UINT64_C(18084407459726018154) }, - { UINT64_C( 1664254114169931370) }, - { UINT64_C( 1425832543274714730) }, - { UINT64_C( 3632949853674587754) }, - { UINT64_C( 2367438358383478378) } }, - { { UINT64_C( 4289360236958653475) }, - { UINT64_C( 9003445777938185491) }, - { UINT64_C( 6145006178828188707) }, - { UINT64_C(17172783880833014819) }, - { UINT64_C( 4575245904564132899) }, - { UINT64_C(15075481344510991395) }, - { UINT64_C(13512732273813429283) } }, - { { UINT64_C( 4661840731346591672) }, - { UINT64_C(16008367045675390461) }, - { UINT64_C( 2639218171596226488) }, - { UINT64_C( 891207328682762168) }, - { UINT64_C(14306527482023272376) }, - { UINT64_C( 6904633345777098680) }, - { UINT64_C(13885212768201367480) } }, - { { UINT64_C( 560855986095228110) }, - { UINT64_C(12519105941898633195) }, - { UINT64_C(11065570282205701326) }, - { UINT64_C( 1851373620381320398) }, - { UINT64_C( 3229069440521569486) }, - { UINT64_C(18354578113836057806) }, - { UINT64_C( 9784228022950003918) } }, - { { UINT64_C(15210706800944352878) }, - { UINT64_C( 2343987333079752503) }, - { UINT64_C(17330395931398827630) }, - { UINT64_C( 4461078750471655022) }, - { UINT64_C( 2157113990720261742) }, - { UINT64_C(17543571407922269806) }, - { UINT64_C(15210706800944352878) } }, - { { UINT64_C( 3102245097986106578) }, - { UINT64_C(11620068368410445742) }, - { UINT64_C( 6400653677085181138) }, - { UINT64_C( 8508265199309464786) }, - { UINT64_C( 7909402293599511762) }, - { UINT64_C( 8857845421765600466) }, - { UINT64_C( 3102245097986106578) } }, - { { UINT64_C(17038098246975051983) }, - { UINT64_C(18292780545233057134) }, - { UINT64_C(11556115806516271311) }, - { UINT64_C(17456844777586120911) }, - { UINT64_C( 7312358247877793999) }, - { UINT64_C( 6260984338677455055) }, - { UINT64_C( 7814726210120276175) } }, - { { UINT64_C( 1351949120307680797) }, - { UINT64_C(15139404553755458091) }, - { UINT64_C( 4541696815397172765) }, - { UINT64_C(16944259135176136221) }, - { UINT64_C(14068424518630069789) }, - { UINT64_C(11723739062141933085) }, - { UINT64_C(10575321157162456605) } }, + { { UINT64_C(18343259907600131392) }, + { UINT64_C( 8278853807148295019) }, + { UINT64_C( 8278853807148295019) }, + { UINT64_C(10139173202521056576) }, + { UINT64_C(12865055212136277312) }, + { UINT64_C( 4283404500995908928) }, + { UINT64_C( 3940748299269285184) }, + { UINT64_C(18343259907600131392) } }, + { { UINT64_C( 8095305309804679016) }, + { UINT64_C( 5887261420508919171) }, + { UINT64_C( 5887261420508919171) }, + { UINT64_C( 8656548132297928552) }, + { UINT64_C( 5158080445136359272) }, + { UINT64_C(11951077633891880808) }, + { UINT64_C( 6356915853639667560) }, + { UINT64_C(17318677346659454824) } }, + { { UINT64_C(11680050685844446822) }, + { UINT64_C( 6548842929392553412) }, + { UINT64_C( 6548842929392553412) }, + { UINT64_C( 4989511236421459558) }, + { UINT64_C(14537925497881419366) }, + { UINT64_C( 2505938968937291366) }, + { UINT64_C(15872901938926378598) }, + { UINT64_C( 2456678648989671014) } }, + { { UINT64_C(17344362090335641593) }, + { UINT64_C( 2784501928755068482) }, + { UINT64_C( 2784501928755068482) }, + { UINT64_C(10464125256515215353) }, + { UINT64_C( 94390844327796729) }, + { UINT64_C(16933289877082284025) }, + { UINT64_C(16439138565234171897) }, + { UINT64_C( 8120990053480865785) } }, + { { UINT64_C(11043203236788958311) }, + { UINT64_C(12191221861036164835) }, + { UINT64_C(12191221861036164835) }, + { UINT64_C(18263814618459436135) }, + { UINT64_C(14074916635248948327) }, + { UINT64_C( 9566615195778806887) }, + { UINT64_C( 7940223093530686567) }, + { UINT64_C(11043203236788958311) } }, + { { UINT64_C( 3848500645836055819) }, + { UINT64_C( 3351572881984732829) }, + { UINT64_C( 3351572881984732829) }, + { UINT64_C( 7329867539118531851) }, + { UINT64_C( 2122920534427264267) }, + { UINT64_C(14132100959029650699) }, + { UINT64_C(16850392770054677771) }, + { UINT64_C(13071872682690831627) } }, + { { UINT64_C(18126723625083847201) }, + { UINT64_C(10371227559987812501) }, + { UINT64_C(10371227559987812501) }, + { UINT64_C(13839711987674817057) }, + { UINT64_C( 1231526013239673377) }, + { UINT64_C(16738835935865455137) }, + { UINT64_C( 9898647105877951009) }, + { UINT64_C(18126723625083847201) } }, + { { UINT64_C( 1552738534182869605) }, + { UINT64_C( 7179852996240610733) }, + { UINT64_C( 7179852996240610733) }, + { UINT64_C( 9135638217032579685) }, + { UINT64_C( 707566891237366373) }, + { UINT64_C( 4110333972029364837) }, + { UINT64_C( 6547230520936749669) }, + { UINT64_C(10776110571037645413) } }, }; 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 r0 = simde_vsli_n_u64(a, b, 0); simde_uint64x1_t r13 = simde_vsli_n_u64(a, b, 13); simde_uint64x1_t r26 = simde_vsli_n_u64(a, b, 26); simde_uint64x1_t r39 = simde_vsli_n_u64(a, b, 39); simde_uint64x1_t r52 = simde_vsli_n_u64(a, b, 52); simde_uint64x1_t r63 = simde_vsli_n_u64(a, b, 63); + simde_test_arm_neon_assert_equal_u64x1(r0, simde_vld1_u64(test_vec[i].r0)); simde_test_arm_neon_assert_equal_u64x1(r13, simde_vld1_u64(test_vec[i].r13)); simde_test_arm_neon_assert_equal_u64x1(r26, simde_vld1_u64(test_vec[i].r26)); simde_test_arm_neon_assert_equal_u64x1(r39, simde_vld1_u64(test_vec[i].r39)); @@ -847,6 +910,7 @@ test_simde_vsli_n_u64 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_uint64x1_t a = simde_test_arm_neon_random_u64x1(); simde_uint64x1_t b = simde_test_arm_neon_random_u64x1(); + simde_uint64x1_t r0 = simde_vsli_n_u64(a, b, 0); simde_uint64x1_t r13 = simde_vsli_n_u64(a, b, 13); simde_uint64x1_t r26 = simde_vsli_n_u64(a, b, 26); simde_uint64x1_t r39 = simde_vsli_n_u64(a, b, 39); @@ -855,6 +919,7 @@ test_simde_vsli_n_u64 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_u64x1(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_u64x1(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_u64x1(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_u64x1(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_u64x1(2, r26, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_u64x1(2, r39, SIMDE_TEST_VEC_POS_MIDDLE); @@ -1080,80 +1145,91 @@ test_simde_vsliq_n_s32 (SIMDE_MUNIT_TEST_ARGS) { struct { int32_t a[4]; int32_t b[4]; + int32_t r0[4]; int32_t r6[4]; int32_t r13[4]; int32_t r19[4]; int32_t r26[4]; int32_t r31[4]; } test_vec[] = { - { { -INT32_C( 2048672908), INT32_C( 482466515), -INT32_C( 375121982), INT32_C( 1919378555) }, - { -INT32_C( 92957730), INT32_C( 1419974623), INT32_C( 1820210245), -INT32_C( 127918576) }, - { -INT32_C( 1654327372), INT32_C( 684062675), INT32_C( 529338690), INT32_C( 403145787) }, - { -INT32_C( 1300505740), INT32_C( 1660680915), -INT32_C( 964118590), INT32_C( 63046779) }, - { -INT32_C( 1628193932), -INT32_C( 1090921773), -INT32_C( 1574168638), -INT32_C( 259562373) }, - { INT32_C( 2044967796), INT32_C( 2093079251), INT32_C( 363075522), INT32_C( 1114072187) }, - { INT32_C( 98810740), -INT32_C( 1665017133), -INT32_C( 375121982), INT32_C( 1919378555) } }, - { { INT32_C( 429638935), INT32_C( 807280638), INT32_C( 482365039), INT32_C( 1712721656) }, - { INT32_C( 396810675), INT32_C( 2144555430), -INT32_C( 705681075), INT32_C( 287557555) }, - { -INT32_C( 373920553), -INT32_C( 187405890), INT32_C( 2081051503), INT32_C( 1223814392) }, - { -INT32_C( 617192169), INT32_C( 1781850110), INT32_C( 86617711), INT32_C( 2029416184) }, - { -INT32_C( 845429481), -INT32_C( 1925832706), INT32_C( 1248349807), INT32_C( 1033768696) }, - { -INT32_C( 845429481), -INT32_C( 1742856194), INT32_C( 885018223), -INT32_C( 837415176) }, - { -INT32_C( 1717844713), INT32_C( 807280638), -INT32_C( 1665118609), -INT32_C( 434761992) } }, - { { -INT32_C( 517994438), INT32_C( 1285438865), -INT32_C( 338029974), INT32_C( 40999571) }, - { INT32_C( 291353625), -INT32_C( 1038552292), -INT32_C( 2119572785), -INT32_C( 1620388047) }, - { INT32_C( 1466762874), -INT32_C( 2042837231), INT32_C( 1786295274), -INT32_C( 625619885) }, - { -INT32_C( 1232918470), INT32_C( 509844881), INT32_C( 1012527722), INT32_C( 1525037715) }, - { -INT32_C( 1597503430), -INT32_C( 1729741423), INT32_C( 377098858), -INT32_C( 1182164333) }, - { INT32_C( 1696598074), INT32_C( 1889418641), INT32_C( 1071256170), -INT32_C( 965633389) }, - { -INT32_C( 517994438), INT32_C( 1285438865), -INT32_C( 338029974), -INT32_C( 2106484077) } }, - { { -INT32_C( 61481464), INT32_C( 164801062), -INT32_C( 1442367081), INT32_C( 600232314) }, - { INT32_C( 268218714), -INT32_C( 64451073), -INT32_C( 735524508), -INT32_C( 1224314185) }, - { -INT32_C( 13871480), INT32_C( 170098662), INT32_C( 171071767), -INT32_C( 1046696454) }, - { -INT32_C( 1775542776), INT32_C( 297789990), INT32_C( 422353303), -INT32_C( 833162886) }, - { -INT32_C( 1965695480), INT32_C( 1878698534), INT32_C( 1260861847), -INT32_C( 1782656646) }, - { INT32_C( 1750457864), -INT32_C( 36525530), -INT32_C( 1845020265), -INT32_C( 540618374) }, - { INT32_C( 2086002184), -INT32_C( 1982682586), INT32_C( 705116567), -INT32_C( 1547251334) } }, - { { -INT32_C( 126851217), -INT32_C( 1366643457), -INT32_C( 1960710568), INT32_C( 1373905720) }, - { INT32_C( 491803898), INT32_C( 803598513), -INT32_C( 1851430137), -INT32_C( 750917567) }, - { INT32_C( 1410678447), -INT32_C( 109302657), INT32_C( 1767555544), -INT32_C( 814083976) }, - { INT32_C( 178210671), -INT32_C( 1105842945), -INT32_C( 1386156456), -INT32_C( 1123540168) }, - { -INT32_C( 1479514257), -INT32_C( 2054509313), INT32_C( 1480191576), INT32_C( 1108091704) }, - { -INT32_C( 395286673), -INT32_C( 963990273), INT32_C( 522317400), INT32_C( 98837304) }, - { INT32_C( 2020632431), -INT32_C( 1366643457), -INT32_C( 1960710568), -INT32_C( 773577928) } }, - { { -INT32_C( 2137359464), -INT32_C( 615731445), INT32_C( 708318726), INT32_C( 944041089) }, - { INT32_C( 938801535), -INT32_C( 84228041), INT32_C( 353656812), INT32_C( 158358579) }, - { -INT32_C( 46243880), -INT32_C( 1095627317), INT32_C( 1159199494), INT32_C( 1545014465) }, - { -INT32_C( 1624245352), INT32_C( 1493626635), -INT32_C( 1946315258), INT32_C( 193358977) }, - { -INT32_C( 872776808), INT32_C( 1102884619), -INT32_C( 10480122), -INT32_C( 509809535) }, - { -INT32_C( 56984680), -INT32_C( 548622581), -INT32_C( 1304947194), -INT32_C( 867898239) }, - { -INT32_C( 2137359464), -INT32_C( 615731445), INT32_C( 708318726), -INT32_C( 1203442559) } }, - { { INT32_C( 1569927325), INT32_C( 1349793024), INT32_C( 1347867252), INT32_C( 583373983) }, - { INT32_C( 198226018), INT32_C( 1371438700), INT32_C( 322817713), INT32_C( 1605845413) }, - { -INT32_C( 198436707), INT32_C( 1872730880), -INT32_C( 814502796), -INT32_C( 305108641) }, - { INT32_C( 369905821), -INT32_C( 808610560), -INT32_C( 1177144716), -INT32_C( 399199073) }, - { -INT32_C( 2095894371), -INT32_C( 211536640), INT32_C( 1972294260), INT32_C( 221090975) }, - { -INT32_C( 1986842467), -INT32_C( 1334561536), -INT32_C( 1000942988), -INT32_C( 1765436257) }, - { INT32_C( 1569927325), INT32_C( 1349793024), -INT32_C( 799616396), -INT32_C( 1564109665) } }, - { { INT32_C( 2115085206), INT32_C( 1904667615), -INT32_C( 1478857215), -INT32_C( 1378658545) }, - { INT32_C( 738556760), INT32_C( 523005912), -INT32_C( 406383756), INT32_C( 1614439741) }, - { INT32_C( 22992406), -INT32_C( 887359969), -INT32_C( 238756607), INT32_C( 244928335) }, - { -INT32_C( 1351941226), -INT32_C( 1912927265), -INT32_C( 496071167), INT32_C( 1286059791) }, - { -INT32_C( 624843882), INT32_C( 2126965727), -INT32_C( 1683853823), INT32_C( 703289103) }, - { INT32_C( 1645323158), INT32_C( 1636232159), -INT32_C( 740659711), -INT32_C( 170698993) }, - { INT32_C( 2115085206), INT32_C( 1904667615), INT32_C( 668626433), -INT32_C( 1378658545) } }, + { { -INT32_C( 1784973200), -INT32_C( 455270145), INT32_C( 857168175), -INT32_C( 247341020) }, + { -INT32_C( 1534615373), INT32_C( 123345014), -INT32_C( 997515808), -INT32_C( 145904506) }, + { -INT32_C( 1534615373), INT32_C( 123345014), -INT32_C( 997515808), -INT32_C( 145904506) }, + { INT32_C( 568863984), -INT32_C( 695853633), INT32_C( 583497775), -INT32_C( 747953756) }, + { -INT32_C( 199853968), INT32_C( 1125040383), INT32_C( 1673271599), -INT32_C( 1248804828) }, + { INT32_C( 94074992), -INT32_C( 1011539713), -INT32_C( 284731089), INT32_C( 1680990244) }, + { -INT32_C( 845449104), -INT32_C( 656596737), -INT32_C( 2095621841), INT32_C( 423747620) }, + { -INT32_C( 1784973200), INT32_C( 1692213503), INT32_C( 857168175), INT32_C( 1900142628) } }, + { { INT32_C( 596437028), INT32_C( 940009737), -INT32_C( 412410173), -INT32_C( 1311200002) }, + { -INT32_C( 1034526644), INT32_C( 1489678456), INT32_C( 1411143117), INT32_C( 625699073) }, + { -INT32_C( 1034526644), INT32_C( 1489678456), INT32_C( 1411143117), INT32_C( 625699073) }, + { -INT32_C( 1785195740), INT32_C( 850140681), INT32_C( 118846275), INT32_C( 1390035070) }, + { -INT32_C( 871790556), INT32_C( 1443825929), -INT32_C( 1967538493), INT32_C( 1830825214) }, + { INT32_C( 40167460), -INT32_C( 2084083447), -INT32_C( 1368711485), INT32_C( 1208528126) }, + { INT32_C( 864872484), -INT32_C( 536385271), INT32_C( 929767107), INT32_C( 98086142) }, + { INT32_C( 596437028), INT32_C( 940009737), -INT32_C( 412410173), -INT32_C( 1311200002) } }, + { { INT32_C( 1514723153), INT32_C( 76763201), INT32_C( 1844182638), -INT32_C( 148978517) }, + { -INT32_C( 1665502172), -INT32_C( 218856412), -INT32_C( 632942375), -INT32_C( 889220743) }, + { -INT32_C( 1665502172), -INT32_C( 218856412), -INT32_C( 632942375), -INT32_C( 889220743) }, + { INT32_C( 782043409), -INT32_C( 1121908479), -INT32_C( 1853606290), -INT32_C( 1075552661) }, + { INT32_C( 1317312337), -INT32_C( 1870360511), -INT32_C( 1038401938), -INT32_C( 231791445) }, + { -INT32_C( 1591683247), INT32_C( 555962433), -INT32_C( 2033451410), -INT32_C( 1949383509) }, + { -INT32_C( 1840720047), -INT32_C( 1869393855), INT32_C( 1709964910), -INT32_C( 417413973) }, + { INT32_C( 1514723153), INT32_C( 76763201), -INT32_C( 303301010), -INT32_C( 148978517) } }, + { { -INT32_C( 1457174680), INT32_C( 112048279), INT32_C( 1634965942), -INT32_C( 2124836515) }, + { INT32_C( 706548486), INT32_C( 1880887703), -INT32_C( 1706401247), INT32_C( 1550076403) }, + { INT32_C( 706548486), INT32_C( 1880887703), -INT32_C( 1706401247), INT32_C( 1550076403) }, + { -INT32_C( 2025537112), INT32_C( 117728727), -INT32_C( 1835497354), INT32_C( 420642013) }, + { -INT32_C( 1570715800), -INT32_C( 2110588777), INT32_C( 1279539638), -INT32_C( 1992396451) }, + { -INT32_C( 1741338776), -INT32_C( 1933723497), INT32_C( 285972918), INT32_C( 1335464285) }, + { INT32_C( 421873512), INT32_C( 1588443287), -INT32_C( 2056021578), -INT32_C( 849768099) }, + { INT32_C( 690308968), -INT32_C( 2035435369), -INT32_C( 512517706), -INT32_C( 2124836515) } }, + { { INT32_C( 671451536), -INT32_C( 131157183), -INT32_C( 1453743796), INT32_C( 942322226) }, + { INT32_C( 1550010309), INT32_C( 2043445080), -INT32_C( 720169246), -INT32_C( 265193633) }, + { INT32_C( 1550010309), INT32_C( 2043445080), -INT32_C( 720169246), -INT32_C( 265193633) }, + { INT32_C( 416411984), INT32_C( 1931466241), INT32_C( 1153808524), INT32_C( 207476722) }, + { INT32_C( 1761126800), -INT32_C( 1880419519), INT32_C( 1658601804), INT32_C( 787214898) }, + { INT32_C( 1043171728), -INT32_C( 87641279), -INT32_C( 1223581364), -INT32_C( 1157975502) }, + { INT32_C( 335907216), INT32_C( 1613673281), -INT32_C( 1990614708), INT32_C( 2083172914) }, + { -INT32_C( 1476032112), INT32_C( 2016326465), INT32_C( 693739852), -INT32_C( 1205161422) } }, + { { INT32_C( 1108883201), INT32_C( 909788906), INT32_C( 434083047), INT32_C( 206702918) }, + { -INT32_C( 1469532848), INT32_C( 371275060), -INT32_C( 1410583477), -INT32_C( 1399120469) }, + { -INT32_C( 1469532848), INT32_C( 371275060), -INT32_C( 1410583477), -INT32_C( 1399120469) }, + { INT32_C( 439178241), -INT32_C( 2008199894), -INT32_C( 83029273), INT32_C( 650603206) }, + { INT32_C( 380245761), INT32_C( 648447722), -INT32_C( 2037811993), INT32_C( 1672833350) }, + { -INT32_C( 1434437887), -INT32_C( 1448982806), -INT32_C( 1570794265), -INT32_C( 312866490) }, + { INT32_C( 1108883201), -INT32_C( 767932694), INT32_C( 769627367), -INT32_C( 1403909818) }, + { INT32_C( 1108883201), INT32_C( 909788906), -INT32_C( 1713400601), -INT32_C( 1940780730) } }, + { { INT32_C( 1055896404), -INT32_C( 529257991), INT32_C( 83448765), -INT32_C( 1408218276) }, + { INT32_C( 894728192), -INT32_C( 112495187), INT32_C( 1436825513), -INT32_C( 1459536043) }, + { INT32_C( 894728192), -INT32_C( 112495187), INT32_C( 1436825513), -INT32_C( 1459536043) }, + { INT32_C( 1428029460), INT32_C( 1390242681), INT32_C( 1762519677), INT32_C( 1078973788) }, + { -INT32_C( 1895820460), INT32_C( 1857399289), -INT32_C( 2030750787), INT32_C( 669690716) }, + { -INT32_C( 1073237164), -INT32_C( 1385420295), -INT32_C( 1119267907), -INT32_C( 89633956) }, + { INT32_C( 49263444), -INT32_C( 1267455495), -INT32_C( 1527163971), INT32_C( 1410354012) }, + { INT32_C( 1055896404), -INT32_C( 529257991), -INT32_C( 2064034883), -INT32_C( 1408218276) } }, + { { -INT32_C( 337055502), -INT32_C( 674538470), INT32_C( 215729328), INT32_C( 280619792) }, + { INT32_C( 289738084), INT32_C( 738890115), INT32_C( 495038152), -INT32_C( 540572691) }, + { INT32_C( 289738084), INT32_C( 738890115), INT32_C( 495038152), -INT32_C( 540572691) }, + { INT32_C( 1363368242), INT32_C( 44327130), INT32_C( 1617670704), -INT32_C( 236913840) }, + { -INT32_C( 1582526222), INT32_C( 1378909210), INT32_C( 903414960), -INT32_C( 260199664) }, + { INT32_C( 1797320946), -INT32_C( 1944364006), INT32_C( 1984152752), INT32_C( 527035152) }, + { -INT32_C( 1813450510), INT32_C( 264985626), INT32_C( 551273648), -INT32_C( 1262884080) }, + { INT32_C( 1810428146), -INT32_C( 674538470), INT32_C( 215729328), -INT32_C( 1866863856) } }, }; 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 r0 = simde_vsliq_n_s32(a, b, 0); simde_int32x4_t r6 = simde_vsliq_n_s32(a, b, 6); simde_int32x4_t r13 = simde_vsliq_n_s32(a, b, 13); simde_int32x4_t r19 = simde_vsliq_n_s32(a, b, 19); simde_int32x4_t r26 = simde_vsliq_n_s32(a, b, 26); simde_int32x4_t r31 = simde_vsliq_n_s32(a, b, 31); + simde_test_arm_neon_assert_equal_i32x4(r0, simde_vld1q_s32(test_vec[i].r0)); simde_test_arm_neon_assert_equal_i32x4(r6, simde_vld1q_s32(test_vec[i].r6)); simde_test_arm_neon_assert_equal_i32x4(r13, simde_vld1q_s32(test_vec[i].r13)); simde_test_arm_neon_assert_equal_i32x4(r19, simde_vld1q_s32(test_vec[i].r19)); @@ -1167,6 +1243,7 @@ test_simde_vsliq_n_s32 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_int32x4_t a = simde_test_arm_neon_random_i32x4(); simde_int32x4_t b = simde_test_arm_neon_random_i32x4(); + simde_int32x4_t r0 = simde_vsliq_n_s32(a, b, 0); simde_int32x4_t r6 = simde_vsliq_n_s32(a, b, 6); simde_int32x4_t r13 = simde_vsliq_n_s32(a, b, 13); simde_int32x4_t r19 = simde_vsliq_n_s32(a, b, 19); @@ -1175,6 +1252,7 @@ test_simde_vsliq_n_s32 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i32x4(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i32x4(2, r6, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i32x4(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i32x4(2, r19, SIMDE_TEST_VEC_POS_MIDDLE); @@ -1191,80 +1269,91 @@ test_simde_vsliq_n_s64 (SIMDE_MUNIT_TEST_ARGS) { struct { int64_t a[2]; int64_t b[2]; + int64_t r0[2]; int64_t r13[2]; int64_t r26[2]; int64_t r39[2]; int64_t r52[2]; int64_t r63[2]; } test_vec[] = { - { { -INT64_C( 5263643971819047857), INT64_C( 541502720996737267) }, - { INT64_C( 3946797069985802130), -INT64_C( 42445362033043898) }, - { -INT64_C( 4980763889152928689), INT64_C( 2775731625785868531) }, - { INT64_C( 1780111104754152527), -INT64_C( 6041964446011948813) }, - { -INT64_C( 8704392437862665137), -INT64_C( 3158391839620661005) }, - { INT64_C( 8729040070421083215), INT64_C( 7233851767269294323) }, - { INT64_C( 3959728065035727951), INT64_C( 541502720996737267) } }, - { { -INT64_C( 7912615021952819050), -INT64_C( 5293486681595043945) }, - { INT64_C( 6940172625691428387), INT64_C( 9115758130503661579) }, - { INT64_C( 1028914491343265942), INT64_C( 3870594709730721687) }, - { -INT64_C( 1294528601230335850), -INT64_C( 2041200592708952169) }, - { INT64_C( 2099541159110320278), -INT64_C( 8765124277553586281) }, - { INT64_C( 7075364537936191638), -INT64_C( 9171085960761041001) }, - { -INT64_C( 7912615021952819050), -INT64_C( 5293486681595043945) } }, - { { INT64_C( 2180577019911891298), -INT64_C( 1541747926973591080) }, - { -INT64_C( 8065666064468080886), -INT64_C( 6826784933820909701) }, - { INT64_C( 2300871905095272802), INT64_C( 5505853626468233688) }, - { -INT64_C( 3829796790686029470), INT64_C( 1663647807938712024) }, - { INT64_C( 4216360182134499682), -INT64_C( 3541027852909850152) }, - { INT64_C( 8116321328786205026), INT64_C( 8627380031628988888) }, - { INT64_C( 2180577019911891298), -INT64_C( 1541747926973591080) } }, - { { -INT64_C( 1415110380634122788), INT64_C( 3816863978450722004) }, - { INT64_C( 6818280905982752686), INT64_C( 9098726142237371117) }, - { -INT64_C( 1383873381812283940), -INT64_C( 6528244651753882412) }, - { INT64_C( 8056861525103990236), -INT64_C( 2269117483815658284) }, - { -INT64_C( 640682009993816612), INT64_C( 5707598467225492692) }, - { INT64_C( 8857600369397978588), -INT64_C( 5847860821886362412) }, - { INT64_C( 7808261656220653020), -INT64_C( 5406508058404053804) } }, - { { -INT64_C( 1783781172000361495), INT64_C( 7705716969977077247) }, - { -INT64_C( 8358257093625578635), -INT64_C( 7084006825256911651) }, - { INT64_C( 3471890629115425769), INT64_C( 1272943385629146623) }, - { -INT64_C( 3151327946570763287), INT64_C( 5541813428062969343) }, - { -INT64_C( 8683578925376113687), INT64_C( 1098437138345549311) }, - { -INT64_C( 5233538486566161431), -INT64_C( 3616332493232349697) }, - { -INT64_C( 1783781172000361495), -INT64_C( 1517655066877698561) } }, - { { -INT64_C( 4154394067891526097), -INT64_C( 2189220270624961150) }, - { -INT64_C( 6795139893074132725), -INT64_C( 309058967878318537) }, - { INT64_C( 6487610392131495471), -INT64_C( 4607126760976880254) }, - { INT64_C( 1434655984018908719), INT64_C( 455948887150071170) }, - { INT64_C( 2125845925662680623), INT64_C( 8890980614938856834) }, - { INT64_C( 1204889488679364143), INT64_C( 7169259755050929538) }, - { -INT64_C( 4154394067891526097), -INT64_C( 2189220270624961150) } }, - { { -INT64_C( 2333047277017444018), INT64_C( 7658204717489207402) }, - { -INT64_C( 6281729226854084346), INT64_C( 6339895830207820242) }, - { INT64_C( 6490139260990050638), INT64_C( 8842073570075629674) }, - { INT64_C( 3704405599550624078), -INT64_C( 6097291397849008022) }, - { INT64_C( 1596670502572577102), INT64_C( 4771820118565599338) }, - { INT64_C( 1184264031958913358), INT64_C( 2100762777314015338) }, - { INT64_C( 6890324759837331790), INT64_C( 7658204717489207402) } }, - { { INT64_C( 8524677170650393138), INT64_C( 3185460102790185058) }, - { -INT64_C( 4517026812874662391), INT64_C( 3366551090117233348) }, - { INT64_C( 684960792126237234), INT64_C( 904140044595920994) }, - { INT64_C( 3388610690435492402), -INT64_C( 8875872301439188894) }, - { -INT64_C( 2851054848273569230), INT64_C( 5919245132162203746) }, - { -INT64_C( 2261443936901944782), -INT64_C( 6033408334437220254) }, - { -INT64_C( 698694866204382670), INT64_C( 3185460102790185058) } }, + { { INT64_C( 8295995506420482328), -INT64_C( 2360511796702872245) }, + { -INT64_C( 2812947499142811275), INT64_C( 4063032051912191200) }, + { -INT64_C( 2812947499142811275), INT64_C( 4063032051912191200) }, + { -INT64_C( 3682564914679996136), INT64_C( 6432260292639202635) }, + { -INT64_C( 7145220543372984040), INT64_C( 9175242785830731083) }, + { -INT64_C( 2127745260314558184), -INT64_C( 6893199004186182325) }, + { INT64_C( 1680207653813223704), -INT64_C( 3599001694229758645) }, + { -INT64_C( 927376530434293480), INT64_C( 6862860240151903563) } }, + { { INT64_C( 7436809796956377291), -INT64_C( 2900694867859694632) }, + { -INT64_C( 3847758624821771621), INT64_C( 8072141193756007087) }, + { -INT64_C( 3847758624821771621), INT64_C( 8072141193756007087) }, + { INT64_C( 4646967429670596811), -INT64_C( 4596844999532479528) }, + { -INT64_C( 6122584274991656757), -INT64_C( 7549581728878388264) }, + { INT64_C( 486755566098239691), INT64_C( 5759356130399394776) }, + { INT64_C( 3005267763623809227), -INT64_C( 6125272201056969768) }, + { -INT64_C( 1786562239898398517), -INT64_C( 2900694867859694632) } }, + { { INT64_C( 8382436526817132754), INT64_C( 376915241957835009) }, + { -INT64_C( 411690914050258796), -INT64_C( 4876888313748199364) }, + { -INT64_C( 411690914050258796), -INT64_C( 4876888313748199364) }, + { INT64_C( 3182197589127889106), INT64_C( 4178597429639610625) }, + { INT64_C( 3313273984089440466), -INT64_C( 6086857197183844095) }, + { INT64_C( 7179945189739446482), -INT64_C( 1984928093481746175) }, + { -INT64_C( 8555601671723302702), -INT64_C( 8950039586326462207) }, + { INT64_C( 8382436526817132754), INT64_C( 376915241957835009) } }, + { { -INT64_C( 1612289868456950897), -INT64_C( 7408553310546955585) }, + { -INT64_C( 7776203250057349424), INT64_C( 4390946604609559881) }, + { -INT64_C( 7776203250057349424), INT64_C( 4390946604609559881) }, + { -INT64_C( 6049737950724750449), -INT64_C( 516358772111101249) }, + { INT64_C( 6948033720463491983), -INT64_C( 5706668254671539521) }, + { -INT64_C( 8359973486664776817), -INT64_C( 4976859650662206785) }, + { INT64_C( 7858780147903202191), -INT64_C( 3125630064917613889) }, + { INT64_C( 7611082168397824911), -INT64_C( 7408553310546955585) } }, + { { INT64_C( 6132502559755573321), -INT64_C( 4569272421852419848) }, + { INT64_C( 6309807025108528548), INT64_C( 1564571839693981134) }, + { INT64_C( 6309807025108528548), INT64_C( 1564571839693981134) }, + { INT64_C( 2162255154902243401), -INT64_C( 3514620455044921096) }, + { INT64_C( 4319918197997803593), INT64_C( 3596731332622772472) }, + { INT64_C( 7914744387926988873), INT64_C( 4972791411045787896) }, + { -INT64_C( 2717070708027451319), INT64_C( 6694230246201190648) }, + { INT64_C( 6132502559755573321), INT64_C( 4654099615002355960) } }, + { { INT64_C( 2088934806968016145), -INT64_C( 3495726612667073333) }, + { INT64_C( 1639693205438683228), -INT64_C( 3007481218249700511) }, + { INT64_C( 1639693205438683228), -INT64_C( 3007481218249700511) }, + { INT64_C( 3137053293139434769), INT64_C( 7563942574414380235) }, + { INT64_C( 2426082720787930385), INT64_C( 1204226012160294091) }, + { INT64_C( 7326281424506920209), -INT64_C( 3988587647619990325) }, + { -INT64_C( 8805272691641213679), -INT64_C( 5324188061379494709) }, + { INT64_C( 2088934806968016145), -INT64_C( 3495726612667073333) } }, + { { -INT64_C( 5069791020384875931), -INT64_C( 3895066755961864712) }, + { INT64_C( 8838583758890450249), -INT64_C( 1811595485708273344) }, + { INT64_C( 8838583758890450249), -INT64_C( 1811595485708273344) }, + { INT64_C( 2207663520578349669), INT64_C( 9038760414013824504) }, + { INT64_C( 7370368342466398821), INT64_C( 294599731088571896) }, + { INT64_C( 1864108635882162789), -INT64_C( 3162476452025877000) }, + { -INT64_C( 3128739580988192155), -INT64_C( 7781673234382602760) }, + { -INT64_C( 5069791020384875931), INT64_C( 5328305280892911096) } }, + { { -INT64_C( 3739091787702183563), -INT64_C( 3745059190122507824) }, + { INT64_C( 8012192009766713757), INT64_C( 4154376887750416704) }, + { INT64_C( 8012192009766713757), INT64_C( 4154376887750416704) }, + { INT64_C( 2361529750334454133), -INT64_C( 1587351542709087792) }, + { -INT64_C( 4982818581467211403), INT64_C( 1370734092381819344) }, + { INT64_C( 3394815630727076213), -INT64_C( 5013456353680715312) }, + { -INT64_C( 7359985888108062347), -INT64_C( 7780284456246472240) }, + { -INT64_C( 3739091787702183563), INT64_C( 5478312846732267984) } }, }; 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 r0 = simde_vsliq_n_s64(a, b, 0); simde_int64x2_t r13 = simde_vsliq_n_s64(a, b, 13); simde_int64x2_t r26 = simde_vsliq_n_s64(a, b, 26); simde_int64x2_t r39 = simde_vsliq_n_s64(a, b, 39); simde_int64x2_t r52 = simde_vsliq_n_s64(a, b, 52); simde_int64x2_t r63 = simde_vsliq_n_s64(a, b, 63); + simde_test_arm_neon_assert_equal_i64x2(r0, simde_vld1q_s64(test_vec[i].r0)); simde_test_arm_neon_assert_equal_i64x2(r13, simde_vld1q_s64(test_vec[i].r13)); simde_test_arm_neon_assert_equal_i64x2(r26, simde_vld1q_s64(test_vec[i].r26)); simde_test_arm_neon_assert_equal_i64x2(r39, simde_vld1q_s64(test_vec[i].r39)); @@ -1278,6 +1367,7 @@ test_simde_vsliq_n_s64 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { simde_int64x2_t a = simde_test_arm_neon_random_i64x2(); simde_int64x2_t b = simde_test_arm_neon_random_i64x2(); + simde_int64x2_t r0 = simde_vsliq_n_s64(a, b, 0); simde_int64x2_t r13 = simde_vsliq_n_s64(a, b, 13); simde_int64x2_t r26 = simde_vsliq_n_s64(a, b, 26); simde_int64x2_t r39 = simde_vsliq_n_s64(a, b, 39); @@ -1286,6 +1376,7 @@ test_simde_vsliq_n_s64 (SIMDE_MUNIT_TEST_ARGS) { simde_test_arm_neon_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_arm_neon_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_arm_neon_write_i64x2(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i64x2(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i64x2(2, r26, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_arm_neon_write_i64x2(2, r39, SIMDE_TEST_VEC_POS_MIDDLE); @@ -1733,77 +1824,88 @@ test_simde_vslid_n_s64 (SIMDE_MUNIT_TEST_ARGS) { struct { int64_t a; int64_t b; + int64_t r0; int64_t r13; int64_t r26; int64_t r39; int64_t r52; int64_t r63; } test_vec[] = { - { -INT64_C( 4403672992202505812), - -INT64_C( 1230496034501682882), - -INT64_C( 8301250392370986580), - -INT64_C( 9144558609705090644), - INT64_C( 3552791725982124), - -INT64_C( 7790379911985118804), - INT64_C( 4819699044652269996) }, - { -INT64_C( 3907786404754124187), - INT64_C( 7915678331130018259), - INT64_C( 4931469528035652197), - INT64_C( 228852244148621925), - -INT64_C( 6810311284617670043), - -INT64_C( 7118852939069287835), - -INT64_C( 3907786404754124187) }, - { -INT64_C( 7546561803657959031), - -INT64_C( 5215796123490493360), - -INT64_C( 5142568922800060023), - INT64_C( 4438848774528280969), - INT64_C( 4516591482021325193), - -INT64_C( 4249926876422755959), - INT64_C( 1676810233196816777) }, - { INT64_C( 3478031672116439332), - -INT64_C( 8079927811897769318), - -INT64_C( 3850898596655052508), - -INT64_C( 2628937754841519836), - -INT64_C( 8907753509524412124), - INT64_C( 3000650111615166756), - INT64_C( 3478031672116439332) }, - { INT64_C( 7801976851260586890), - INT64_C( 4148771054844773256), - INT64_C( 7829897515388443530), - INT64_C( 3191301773980941194), - INT64_C( 4107779959898323850), - INT64_C( 4072996359797816202), - INT64_C( 7801976851260586890) }, - { INT64_C( 5698065473092539665), - -INT64_C( 6783390212694855361), - -INT64_C( 7939472383085644527), - INT64_C( 3061841662278456593), - -INT64_C( 4965042823300033263), - INT64_C( 1437660225600050449), - -INT64_C( 3525306563762236143) }, - { INT64_C( 4286310312536331710), - INT64_C( 2689930727598008905), - -INT64_C( 7946647600025225794), - -INT64_C( 377303285623532098), - INT64_C( 8184488051327784382), - -INT64_C( 6585379187936045634), - -INT64_C( 4937061724318444098) }, - { INT64_C( 7214605044141401542), - INT64_C( 5142768677345030141), - -INT64_C( 2802459542128974394), - INT64_C( 8447802647868220870), - -INT64_C( 7784473535874193978), - -INT64_C( 9168758160874042), - -INT64_C( 2008766992713374266) }, + { -INT64_C( 4407049649672154289), + INT64_C( 7685653594098796223), + INT64_C( 7685653594098796223), + INT64_C( 2136719286638998351), + -INT64_C( 1955729803667041457), + INT64_C( 8882048105861092175), + INT64_C( 7779690941992407887), + -INT64_C( 4407049649672154289) }, + { INT64_C( 7285866699229672730), + -INT64_C( 2905986655787820623), + -INT64_C( 2905986655787820623), + INT64_C( 8903914945204598042), + INT64_C( 2445163668463072538), + -INT64_C( 2383291881746418406), + -INT64_C( 7269767296431770342), + -INT64_C( 1937505337625103078) }, + { INT64_C( 3846956399612097520), + INT64_C( 7082777137927379624), + INT64_C( 7082777137927379624), + INT64_C( 7100202084554052592), + INT64_C( 2271412260562498544), + -INT64_C( 5355531513384700944), + -INT64_C( 6160041972405144592), + INT64_C( 3846956399612097520) }, + { INT64_C( 312901578607213257), + -INT64_C( 2170968181156342401), + -INT64_C( 2170968181156342401), + -INT64_C( 1910052976749184311), + -INT64_C( 4315011023631631671), + -INT64_C( 4608660351632098615), + INT64_C( 6338717880028936905), + -INT64_C( 8910470458247562551) }, + { -INT64_C( 771551171704575330), + -INT64_C( 7860431950642236096), + -INT64_C( 7860431950642236096), + INT64_C( 4925021658846595742), + INT64_C( 2748140068509264542), + INT64_C( 7735671558584347294), + INT64_C( 6055905863389096606), + INT64_C( 8451820865150200478) }, + { -INT64_C( 7334995888055225124), + INT64_C( 9062510049244591345), + INT64_C( 9062510049244591345), + -INT64_C( 8062573269252950820), + INT64_C( 9190306233746486492), + INT64_C( 5826101671574664412), + INT64_C( 5698421433554990300), + -INT64_C( 7334995888055225124) }, + { INT64_C( 7993004429149292458), + -INT64_C( 4544729177563676015), + -INT64_C( 4544729177563676015), + -INT64_C( 4891881855758751830), + -INT64_C( 7968034278505101398), + INT64_C( 8890467051426105258), + INT64_C( 2962483645376448426), + -INT64_C( 1230367607705483350) }, + { INT64_C( 4469862545157550420), + -INT64_C( 3083587873218123048), + -INT64_C( 3083587873218123048), + -INT64_C( 7159220494487842476), + -INT64_C( 6134880521728003756), + -INT64_C( 8010377282379026092), + -INT64_C( 5942459793323036332), + INT64_C( 4469862545157550420) }, }; for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) { + int64_t r0 = simde_vslid_n_s64(test_vec[i].a, test_vec[i].b, 0); int64_t r13 = simde_vslid_n_s64(test_vec[i].a, test_vec[i].b, 13); int64_t r26 = simde_vslid_n_s64(test_vec[i].a, test_vec[i].b, 26); int64_t r39 = simde_vslid_n_s64(test_vec[i].a, test_vec[i].b, 39); int64_t r52 = simde_vslid_n_s64(test_vec[i].a, test_vec[i].b, 52); int64_t r63 = simde_vslid_n_s64(test_vec[i].a, test_vec[i].b, 63); + simde_assert_equal_i64(r0, test_vec[i].r0); simde_assert_equal_i64(r13, test_vec[i].r13); simde_assert_equal_i64(r26, test_vec[i].r26); simde_assert_equal_i64(r39, test_vec[i].r39); @@ -1817,6 +1919,7 @@ test_simde_vslid_n_s64 (SIMDE_MUNIT_TEST_ARGS) { for (int i = 0 ; i < 8 ; i++) { int64_t a = simde_test_codegen_random_i64(); int64_t b = simde_test_codegen_random_i64(); + int64_t r0 = simde_vslid_n_s64(a, b, 0); int64_t r13 = simde_vslid_n_s64(a, b, 13); int64_t r26 = simde_vslid_n_s64(a, b, 26); int64_t r39 = simde_vslid_n_s64(a, b, 39); @@ -1825,6 +1928,7 @@ test_simde_vslid_n_s64 (SIMDE_MUNIT_TEST_ARGS) { simde_test_codegen_write_i64(2, a, SIMDE_TEST_VEC_POS_FIRST); simde_test_codegen_write_i64(2, b, SIMDE_TEST_VEC_POS_MIDDLE); + simde_test_codegen_write_i64(2, r0, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_codegen_write_i64(2, r13, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_codegen_write_i64(2, r26, SIMDE_TEST_VEC_POS_MIDDLE); simde_test_codegen_write_i64(2, r39, SIMDE_TEST_VEC_POS_MIDDLE);