void check_mm_vmfrcz_ss (__m128 __A, __m128 __B) { union128 a, b, c; float f[4]; a.x = __A; b.x = __B; c.x = _mm_frcz_ss (__A, __B); f[0] = b.a[0] - (int)b.a[0] ; f[1] = a.a[1]; f[2] = a.a[2]; f[3] = a.a[3]; if (check_union128 (c, f)) abort (); }
__m128 test_mm_frcz_ss(__m128 a) { // CHECK-LABEL: test_mm_frcz_ss // CHECK: call <4 x float> @llvm.x86.xop.vfrcz.ss(<4 x float> %{{.*}}) return _mm_frcz_ss(a); }
__m128 test_mm_frcz_ss(__m128 a) { // CHECK: @llvm.x86.xop.vfrcz.ss // CHECK-ASM: vfrczss %xmm{{.*}}, %xmm{{.*}} return _mm_frcz_ss(a); }
__m128 test_mm_frcz_ss(__m128 a) { // CHECK-LABEL: test_mm_frcz_ss // CHECK: @llvm.x86.xop.vfrcz.ss return _mm_frcz_ss(a); }