void static avx2_test (void) { union128i_q s1, s2, res; long long int res_ref[2]; int i, j, sign = 2; int fail = 0; for (i = 0; i < 10; i++) { for (j = 0; j < 2; j++) { s1.a[j] = j * i * sign; s2.a[j] = (j + i) >> 2; sign = -sign; } res.x = _mm_sllv_epi64 (s1.x, s2.x); compute_psllvq128 (s1.a, s2.a, res_ref); fail += check_union128i_q (res, res_ref); } if (fail != 0) abort (); }
__m128i test_mm_sllv_epi64(__m128i a, __m128i b) { // CHECK: @llvm.x86.avx2.psllv.q return _mm_sllv_epi64(a, b); }
__m128i test_mm_sllv_epi64(__m128i a, __m128i b) { // CHECK-LABEL: test_mm_sllv_epi64 // CHECK: call <2 x i64> @llvm.x86.avx2.psllv.q(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}) return _mm_sllv_epi64(a, b); }