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 (); }
__m128i test_mm_sllv_epi32(__m128i a, __m128i b) { // CHECK-LABEL: test_mm_sllv_epi32 // CHECK: call <4 x i32> @llvm.x86.avx2.psllv.d(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}) return _mm_sllv_epi32(a, b); }
__m128i test_mm_sllv_epi32(__m128i a, __m128i b) { // CHECK: @llvm.x86.avx2.psllv.d return _mm_sllv_epi32(a, b); }
void extern avx2_test (void) { x = _mm_sllv_epi32 (x, x); }