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