Esempio n. 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);
}
Esempio n. 2
0
void increment_sse41(float arr[4]) {
    double darr[4];
    __m128d val1 = _mm_set_pd(arr[0], arr[1]);
    __m128d val2 = _mm_set_pd(arr[2], arr[3]);
    __m128d one = _mm_set_pd(1.0, 1.0);
    __m128d result = _mm_add_pd(val1, one);
    result = _mm_ceil_pd(result); /* A no-op, only here to use a SSE4.1 intrinsic. */
    _mm_store_pd(darr, result);
    result = _mm_add_pd(val2, one);
    _mm_store_pd(&darr[2], result);
    arr[0] = (float)darr[1];
    arr[1] = (float)darr[0];
    arr[2] = (float)darr[3];
    arr[3] = (float)darr[2];
}
Esempio n. 3
0
__m128d test_mm_ceil_pd(__m128d x) {
  // CHECK-LABEL: test_mm_ceil_pd
  // CHECK: call <2 x double> @llvm.x86.sse41.round.pd
  // CHECK-ASM: roundpd $2, %xmm{{.*}}, %xmm{{.*}}
  return _mm_ceil_pd(x);
}
Esempio n. 4
0
__m128d test_mm_ceil_pd(__m128d x) {
  // CHECK-LABEL: test_mm_ceil_pd
  // CHECK: call <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 2)
  return _mm_ceil_pd(x);
}