Пример #1
0
static void
fma4_test (void)
{
  int i;

  init_nmaccps ();
  
  for (i = 0; i < NUM; i++)
    dst.x[i] = _mm256_nmacc_ps (src1.x[i], src2.x[i], src3.x[i]);
  
  if (check_nmaccps ()) 
    abort ();
  
  init_nmaccpd ();
  
  for (i = 0; i < NUM; i++)
    dst.y[i] = _mm256_nmacc_pd (src1.y[i], src2.y[i], src3.y[i]);
  
  if (check_nmaccpd ()) 
    abort ();

}
Пример #2
0
__m256 test_mm256_nmacc_ps(__m256 a, __m256 b, __m256 c) {
  // CHECK: @llvm.x86.fma.vfnmadd.ps.256
  // CHECK-ASM: vfnmaddps %ymm{{.*}}, %ymm{{.*}}, %ymm{{.*}}, %ymm{{.*}}
  return _mm256_nmacc_ps(a, b, c);
}
Пример #3
0
__m256 test_mm256_nmacc_ps(__m256 a, __m256 b, __m256 c) {
  // CHECK-LABEL: test_mm256_nmacc_ps
  // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
  // CHECK: @llvm.x86.fma.vfmadd.ps.256(<8 x float> [[NEG]], <8 x float> %{{.+}}, <8 x float> %{{.+}})
  return _mm256_nmacc_ps(a, b, c);
}