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 (); }
__m128i test_mm_maskload_epi32(int const *a, __m128i m) { // CHECK: @llvm.x86.avx2.maskload.d return _mm_maskload_epi32(a, m); }
__m128i test_mm_maskload_epi32(int const *a, __m128i m) { // CHECK-LABEL: test_mm_maskload_epi32 // CHECK: call <4 x i32> @llvm.x86.avx2.maskload.d(i8* %{{.*}}, <4 x i32> %{{.*}}) return _mm_maskload_epi32(a, m); }
void extern avx2_test (void) { x = _mm_maskload_epi32 (y, x); }