1 // RUN: %clang_cc1 -fno-builtin -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s 2 // RUN: %clang_cc1 -fno-builtin-crealf -fno-builtin-creal -fno-builtin-creall \ 3 // RUN: -fno-builtin-cimagf -fno-builtin-cimag -fno-builtin-cimagl -emit-llvm \ 4 // RUN: -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s 5 // RUN: %clang_cc1 -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-NO %s 6 7 extern float crealf(float _Complex); 8 extern double creal(double _Complex); 9 extern long double creall(long double _Complex); 10 11 extern float cimagf(float _Complex); 12 extern double cimag(double _Complex); 13 extern long double cimagl(long double _Complex); 14 15 double test_creal(double _Complex z) { 16 return creal(z); 17 // CHECK-NO-NOT: call double @creal 18 // CHECK-YES: call double @creal 19 } 20 21 long double test_creall(double _Complex z) { 22 return creall(z); 23 // CHECK-NO-NOT: call x86_fp80 @creall 24 // CHECK-YES: call x86_fp80 @creall 25 } 26 27 float test_crealf(double _Complex z) { 28 return crealf(z); 29 // CHECK-NO-NOT: call float @crealf 30 // CHECK-YES: call float @crealf 31 } 32 33 double test_cimag(double _Complex z) { 34 return cimag(z); 35 // CHECK-NO-NOT: call double @cimag 36 // CHECK-YES: call double @cimag 37 } 38 39 long double test_cimagl(double _Complex z) { 40 return cimagl(z); 41 // CHECK-NO-NOT: call x86_fp80 @cimagl 42 // CHECK-YES: call x86_fp80 @cimagl 43 } 44 45 float test_cimagf(double _Complex z) { 46 return cimagf(z); 47 // CHECK-NO-NOT: call float @cimagf 48 // CHECK-YES: call float @cimagf 49 } 50