コード例 #1
0
ファイル: avx2-builtins.c プロジェクト: CSI-LLVM/clang
__m256d test_mm256_i64gather_pd(double const *b, __m256i c) {
  // CHECK-LABEL: test_mm256_i64gather_pd
  // CHECK:         [[CMP:%.*]] = fcmp oeq <4 x double>
  // CHECK-NEXT:    [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i64>
  // CHECK-NEXT:    [[BC:%.*]] = bitcast <4 x i64> [[SEXT]] to <4 x double>
  // CHECK: call <4 x double> @llvm.x86.avx2.gather.q.pd.256(<4 x double> undef, i8* %{{.*}}, <4 x i64> %{{.*}}, <4 x double> %{{.*}}, i8 2)
  return _mm256_i64gather_pd(b, c, 2);
}
コード例 #2
0
__m256d test_mm256_i64gather_pd(double const *b, __m256i c) {
  // CHECK-LABEL: test_mm256_i64gather_pd
  // CHECK: call <4 x double> @llvm.x86.avx.cmp.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i8 0)
  // CHECK: call <4 x double> @llvm.x86.avx2.gather.q.pd.256(<4 x double> undef, i8* %{{.*}}, <4 x i64> %{{.*}}, <4 x double> %{{.*}}, i8 2)
  return _mm256_i64gather_pd(b, c, 2);
}
コード例 #3
0
ファイル: avx2-builtins.c プロジェクト: Bigcheese/clang
__m256d test_mm256_i64gather_pd(double const *b, __m256i c) {
  // CHECK: @llvm.x86.avx2.gather.q.pd.256
  return _mm256_i64gather_pd(b, c, 2);
}
コード例 #4
0
void extern
avx2_test (void)
{
  x = _mm256_i64gather_pd (base, idx, 1);
}