Пример #1
0
void extern
avx512vl_test (void)
{
  x1 = _mm256_roundscale_pd (x1, 0x42);
  x1 = _mm256_ceil_pd (x1);
  x1 = _mm256_floor_pd (x1);
  x1 = _mm256_mask_roundscale_pd (x1, 2, x1, 0x42);
  x1 = _mm256_maskz_roundscale_pd (2, x1, 0x42);
  x2 = _mm_roundscale_pd (x2, 0x42);
  x2 = _mm_ceil_pd (x2);
  x2 = _mm_floor_pd (x2);
  x2 = _mm_mask_roundscale_pd (x2, 2, x2, 0x42);
  x2 = _mm_maskz_roundscale_pd (2, x2, 0x42);
}
static void
TEST (void)
{
  union128d u, s;
  double e[2] = {0.0};
  int i;

  s.x = _mm_set_pd (1.1234, -2.3478);
  u.x = _mm_floor_pd (s.x);

  for (i = 0; i < 2; i++)
    {
      __m128d tmp = _mm_load_sd (&s.a[i]);
      tmp = _mm_floor_sd (tmp, tmp);
      _mm_store_sd (&e[i], tmp);
    }
  
  if (check_union128d (u, e))
    abort ();
} 
Пример #3
0
__m128d test_mm_floor_pd(__m128d x) {
  // CHECK-LABEL: test_mm_floor_pd
  // CHECK: call <2 x double> @llvm.x86.sse41.round.pd
  // CHECK-ASM: roundpd $1, %xmm{{.*}}, %xmm{{.*}}
  return _mm_floor_pd(x);
}
Пример #4
0
__m128d test_mm_floor_pd(__m128d x) {
  // CHECK-LABEL: test_mm_floor_pd
  // CHECK: call <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 1)
  return _mm_floor_pd(x);
}