diff options
Diffstat (limited to 'test/CodeGen/sse-builtins.c')
| -rw-r--r-- | test/CodeGen/sse-builtins.c | 31 | 
1 files changed, 31 insertions, 0 deletions
| diff --git a/test/CodeGen/sse-builtins.c b/test/CodeGen/sse-builtins.c index 0e48560b0869..400209fca291 100644 --- a/test/CodeGen/sse-builtins.c +++ b/test/CodeGen/sse-builtins.c @@ -1,8 +1,39 @@  // RUN: %clang_cc1 -ffreestanding -triple i386-apple-darwin9 -target-cpu pentium4 -target-feature +sse4.1 -g -emit-llvm %s -o - | FileCheck %s +#include <xmmintrin.h>  #include <emmintrin.h>  #include <smmintrin.h> +__m128 test_rsqrt_ss(__m128 x) { +  // CHECK: define {{.*}} @test_rsqrt_ss +  // CHECK: call <4 x float> @llvm.x86.sse.rsqrt.ss +  // CHECK: extractelement <4 x float> {{.*}}, i32 0 +  // CHECK: extractelement <4 x float> {{.*}}, i32 1 +  // CHECK: extractelement <4 x float> {{.*}}, i32 2 +  // CHECK: extractelement <4 x float> {{.*}}, i32 3 +  return _mm_rsqrt_ss(x); +} + +__m128 test_rcp_ss(__m128 x) { +  // CHECK: define {{.*}} @test_rcp_ss +  // CHECK: call <4 x float> @llvm.x86.sse.rcp.ss +  // CHECK: extractelement <4 x float> {{.*}}, i32 0 +  // CHECK: extractelement <4 x float> {{.*}}, i32 1 +  // CHECK: extractelement <4 x float> {{.*}}, i32 2 +  // CHECK: extractelement <4 x float> {{.*}}, i32 3 +  return _mm_rcp_ss(x); +} + +__m128 test_sqrt_ss(__m128 x) { +  // CHECK: define {{.*}} @test_sqrt_ss +  // CHECK: call <4 x float> @llvm.x86.sse.sqrt.ss +  // CHECK: extractelement <4 x float> {{.*}}, i32 0 +  // CHECK: extractelement <4 x float> {{.*}}, i32 1 +  // CHECK: extractelement <4 x float> {{.*}}, i32 2 +  // CHECK: extractelement <4 x float> {{.*}}, i32 3 +  return _mm_sqrt_ss(x); +} +  __m128 test_loadl_pi(__m128 x, void* y) {    // CHECK: define {{.*}} @test_loadl_pi    // CHECK: load <2 x float>* {{.*}}, align 1{{$}} | 
