void static avx2_test (void) { union128i_d s1, s2, res; int res_ref[4]; int i, j, sign = 1; int fail = 0; for (i = 0; i < 10; i++) { for (j = 0; j < 4; j++) { s1.a[j] = j * i * sign; s2.a[j] = (j + i) >> 2; sign = -sign; } res.x = _mm_sllv_epi32 (s1.x, s2.x); compute_psllvd128 (s1.a, s2.a, res_ref); fail += check_union128i_d (res, res_ref); } if (fail != 0) abort (); }
static void TEST (void) { union128i_d u; int e[4] __attribute__ ((aligned(16))) = {0}; u.x = _mm_set_epi32 (1, 2, 3, 4); test ((__m128i *)e, u.x); if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128i_d u; int e[4] = {0}; u.x = _mm_set_epi32 (1, 2, 3, 4); test ((__m128i *)e, u.x); if (check_union128i_d (u, e)) abort (); }
static void sha_test (void) { union128i_d s1, s2, res; int res_ref[4]; s1.x = _mm_set_epi32 (111, 222, 333, 444); s2.x = _mm_set_epi32 (555, 666, 777, 0); res.x = _mm_sha1msg2_epu32 (s1.x, s2.x); compute_sha1msg2 (s1.a, s2.a, res_ref); if (check_union128i_d (res, res_ref)) abort (); }
static void sha_test (void) { union128i_d s1, s2, res; int res_ref[4]; s1.x = _mm_set_epi32 (111, 0, 0, 0); s2.x = _mm_set_epi32 (222, 333, 444, 555); res.x = _mm_sha1nexte_epu32 (s1.x, s2.x); compute_sha1nexte (s1.a, s2.a, res_ref); if (check_union128i_d (res, res_ref)) abort (); }
static void TEST (void) { union128i_d u; union128d s; int e[4] = {0}; s.x = _mm_set_pd (2.78, 7777768.82); u.x = test (s.x); e[0] = (int)(s.a[0] + 0.5); e[1] = (int)(s.a[1] + 0.5); if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128i_d u, s1, s2; int e[4]; int i; s1.x = _mm_set_epi32 (30,90,-80,-40); s2.x = _mm_set_epi32 (76, -100, -34, -78); u.x = test (s1.x, s2.x); for (i = 0; i < 4; i++) e[i] = s1.a[i] - s2.a[i]; if (check_union128i_d (u, e)) abort (); }
void static avx_test (void) { int i; union256d s1; union128i_d u; int e [4]; s1.x = _mm256_set_pd (2.78, 7777768.82, 23.67, 536.46); u.x = _mm256_cvtpd_epi32 (s1.x); for (i = 0; i < 4; i++) e[i] = (int)(s1.a[i] + 0.5); if (check_union128i_d (u, e)) abort (); }
static void avx2_test (void) { union128i_d src1, src2, dst; int dst_ref[4]; int i; for (i = 0; i < NUM; i++) { init_pblendd128 (src1.a, src2.a, i); dst.x = _mm_blend_epi32 (src1.x, src2.x, MASK); calc_pblendd128 (src1.a, src2.a, MASK, dst_ref); if (check_union128i_d (dst, dst_ref)) abort (); } }
void static avx2_test (void) { int i; int m[4] = { mask_v (0), mask_v (1), mask_v (2), mask_v (3) }; int s[4] = { 1, 2, 3, 4 }; union128i_d u, mask; int e[4] = { 0 }; mask.x = _mm_loadu_si128 ((__m128i *) m); u.x = _mm_maskload_epi32 (s, mask.x); for (i = 0; i < 4; i++) e[i] = m[i] ? s[i] : 0; if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128i_d u, s; int e[4] = {0}; int i; s.x = _mm_set_epi32 (1, -2, 3, 4); u.x = test (s.x); if (N < 32) for (i = 0; i < 4; i++) e[i] = s.a[i] >> N; if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128 s; union128i_d u; int e[4] = {0}; s.x = _mm_set_ps (123.321, 456.987, 33.56, 7765.321); u.x = test (s.x); e[0] = (int)s.a[0]; e[1] = (int)s.a[1]; e[2] = (int)s.a[2]; e[3] = (int)s.a[3]; if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128i_d u, s1, s2; int e[4]; int i; s1.x = _mm_set_epi32 (10,20,-80,-40); s2.x = _mm_set_epi32 (11, -34, -78, -39); u.x = test (s1.x, s2.x); for (i = 0; i < 2; i++) { e[2*i] = s1.a[i]; e[2*i+1] = s2.a[i]; } if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128i_d u, s; union128i_q c; int e[4] = {0}; int i; s.x = _mm_set_epi32 (1, -2, 3, 4); c.x = _mm_set_epi64x (16, 29); u.x = test (s.x, c.x); if (c.a[0] < 32) for (i = 0; i < 4; i++) e[i] = s.a[i] >> c.a[0]; if (check_union128i_d (u, e)) abort (); }
static void TEST (void) { union128i_d u, s; union128i_q c; int e[4] = {0}; int i; s.x = _mm_set_epi32 (2, -3, 0x7000, 0x9000); c.x = _mm_set_epi64x (12, 23); u.x = test (s.x, c.x); if (c.a[0] < 32) for (i = 0; i < 4; i++) e[i] = s.a[i] << c.a[0]; if (check_union128i_d (u, e)) abort (); }