37 lines · c
1// REQUIRES: arm-registered-target2// RUN: %clang_cc1 -triple armv7-unknown-unknown -mfpmath vfp -emit-llvm -o - %s | FileCheck %s3 4// CHECK-NOT: error:5 6double fabs(double x) { // CHECK-LABEL: @fabs(7 // CHECK: call double asm "vabs.f64 ${0:P}, ${1:P}", "=w,w"(double8 __asm__("vabs.f64 %P0, %P1"9 : "=w"(x)10 : "w"(x));11 return x;12}13 14float fabsf(float x) { // CHECK-LABEL: @fabsf(15 // CHECK: call float asm "vabs.f32 $0, $1", "=t,t"(float16 __asm__("vabs.f32 %0, %1"17 : "=t"(x)18 : "t"(x));19 return x;20}21 22double sqrt(double x) { // CHECK-LABEL: @sqrt(23 // CHECK: call double asm "vsqrt.f64 ${0:P}, ${1:P}", "=w,w"(double24 __asm__("vsqrt.f64 %P0, %P1"25 : "=w"(x)26 : "w"(x));27 return x;28}29 30float sqrtf(float x) { // CHECK-LABEL: @sqrtf(31 // CHECK: call float asm "vsqrt.f32 $0, $1", "=t,t"(float32 __asm__("vsqrt.f32 %0, %1"33 : "=t"(x)34 : "t"(x));35 return x;36}37