__m128 test_mm_i32gather_ps(float const *b, __m128i c) {
  // CHECK-LABEL: test_mm_i32gather_ps
  // CHECK:         [[CMP:%.*]] = fcmp oeq <4 x float>
  // CHECK-NEXT:    [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
  // CHECK-NEXT:    [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
  // CHECK: call <4 x float> @llvm.x86.avx2.gather.d.ps(<4 x float> undef, i8* %{{.*}}, <4 x i32> %{{.*}}, <4 x float> %{{.*}}, i8 2)
  return _mm_i32gather_ps(b, c, 2);
}
Exemple #2
0
__m128 test_mm_i32gather_ps(float const *b, __m128i c) {
  // CHECK: @llvm.x86.avx2.gather.d.ps
  return _mm_i32gather_ps(b, c, 2);
}
void extern
avx2_test (void)
{
  x = _mm_i32gather_ps (base, idx, 1);
}