Skip to content

Commit 35de429

Browse files
committed
Tweak tests
1 parent 42b0963 commit 35de429

File tree

1 file changed

+47
-15
lines changed

1 file changed

+47
-15
lines changed

clang/test/CodeGen/AArch64/sincos.c

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,9 @@
1-
// RUN: %clang_cc1 -triple=aarch64-gnu-linux -emit-llvm -O1 %s -o - -DUSE_BUILTIN | FileCheck --check-prefix=NO-MATH-ERRNO %s
2-
// RUN: %clang_cc1 -triple=aarch64-gnu-linux -emit-llvm -fmath-errno %s -o - -DUSE_BUILTIN | FileCheck --check-prefix=MATH-ERRNO %s
3-
// RUN: %clang_cc1 -triple=aarch64-gnu-linux -emit-llvm -O1 %s -o - -DUSE_C_DECL | FileCheck --check-prefix=NO-MATH-ERRNO %s
4-
// RUN: %clang_cc1 -triple=aarch64-gnu-linux -emit-llvm -fmath-errno %s -o - -DUSE_C_DECL | FileCheck --check-prefix=MATH-ERRNO %s
1+
// RUN: %clang_cc1 -triple=aarch64-gnu-linux -emit-llvm -O1 %s -o - | FileCheck --check-prefix=NO-MATH-ERRNO %s
2+
// RUN: %clang_cc1 -triple=aarch64-gnu-linux -emit-llvm -fmath-errno %s -o - | FileCheck --check-prefix=MATH-ERRNO %s
53

6-
#if defined(USE_BUILTIN)
7-
#define sincos __builtin_sincos
8-
#define sincosf __builtin_sincosf
9-
#define sincosl __builtin_sincosl
10-
#elif defined(USE_C_DECL)
11-
void sincos(double, double*, double*);
12-
void sincosf(float, float*, float*);
13-
void sincosl(long double, long double*, long double*);
14-
#else
15-
#error Expected USE_BUILTIN or USE_C_DECL to be defined.
16-
#endif
4+
void sincos(double, double*, double*);
5+
void sincosf(float, float*, float*);
6+
void sincosl(long double, long double*, long double*);
177

188
// NO-MATH-ERRNO-LABEL: @sincos_f32
199
// NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { float, float } @llvm.sincos.f32(float {{.*}})
@@ -29,6 +19,20 @@ void sincos_f32(float x, float* fp0, float* fp1) {
2919
sincosf(x, fp0, fp1);
3020
}
3121

22+
// NO-MATH-ERRNO-LABEL: @sincos_builtin_f32
23+
// NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { float, float } @llvm.sincos.f32(float {{.*}})
24+
// NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { float, float } [[SINCOS]], 0
25+
// NO-MATH-ERRNO-NEXT: [[COS:%.*]] = extractvalue { float, float } [[SINCOS]], 1
26+
// NO-MATH-ERRNO-NEXT: store float [[SIN]], ptr {{.*}}, align 4, !alias.scope [[SINCOS_ALIAS_SCOPE:![0-9]+]]
27+
// NO-MATH-ERRNO-NEXT: store float [[COS]], ptr {{.*}}, align 4, !noalias [[SINCOS_ALIAS_SCOPE]]
28+
//
29+
// MATH-ERRNO-LABEL: @sincos_builtin_f32
30+
// MATH-ERRNO: call void @sincosf(
31+
//
32+
void sincos_builtin_f32(float x, float* fp0, float* fp1) {
33+
__builtin_sincosf(x, fp0, fp1);
34+
}
35+
3236
// NO-MATH-ERRNO-LABEL: @sincos_f64
3337
// NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { double, double } @llvm.sincos.f64(double {{.*}})
3438
// NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { double, double } [[SINCOS]], 0
@@ -43,6 +47,20 @@ void sincos_f64(double x, double* dp0, double* dp1) {
4347
sincos(x, dp0, dp1);
4448
}
4549

50+
// NO-MATH-ERRNO-LABEL: @sincos_builtin_f64
51+
// NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { double, double } @llvm.sincos.f64(double {{.*}})
52+
// NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { double, double } [[SINCOS]], 0
53+
// NO-MATH-ERRNO-NEXT: [[COS:%.*]] = extractvalue { double, double } [[SINCOS]], 1
54+
// NO-MATH-ERRNO-NEXT: store double [[SIN]], ptr {{.*}}, align 8, !alias.scope [[SINCOS_ALIAS_SCOPE:![0-9]+]]
55+
// NO-MATH-ERRNO-NEXT: store double [[COS]], ptr {{.*}}, align 8, !noalias [[SINCOS_ALIAS_SCOPE]]
56+
//
57+
// MATH-ERRNO-LABEL: @sincos_builtin_f64
58+
// MATH-ERRNO: call void @sincos(
59+
//
60+
void sincos_builtin_f64(double x, double* dp0, double* dp1) {
61+
__builtin_sincos(x, dp0, dp1);
62+
}
63+
4664
// NO-MATH-ERRNO-LABEL: @sincos_f128
4765
// NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { fp128, fp128 } @llvm.sincos.f128(fp128 {{.*}})
4866
// NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { fp128, fp128 } [[SINCOS]], 0
@@ -56,3 +74,17 @@ void sincos_f64(double x, double* dp0, double* dp1) {
5674
void sincos_f128(long double x, long double* ldp0, long double* ldp1) {
5775
sincosl(x, ldp0, ldp1);
5876
}
77+
78+
// NO-MATH-ERRNO-LABEL: @sincos_builtin_f128
79+
// NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { fp128, fp128 } @llvm.sincos.f128(fp128 {{.*}})
80+
// NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { fp128, fp128 } [[SINCOS]], 0
81+
// NO-MATH-ERRNO-NEXT: [[COS:%.*]] = extractvalue { fp128, fp128 } [[SINCOS]], 1
82+
// NO-MATH-ERRNO-NEXT: store fp128 [[SIN]], ptr {{.*}}, align 16, !alias.scope [[SINCOS_ALIAS_SCOPE:![0-9]+]]
83+
// NO-MATH-ERRNO-NEXT: store fp128 [[COS]], ptr {{.*}}, align 16, !noalias [[SINCOS_ALIAS_SCOPE]]
84+
//
85+
// MATH-ERRNO-LABEL: @sincos_builtin_f128
86+
// MATH-ERRNO: call void @sincosl(
87+
//
88+
void sincos_builtin_f128(long double x, long double* ldp0, long double* ldp1) {
89+
__builtin_sincosl(x, ldp0, ldp1);
90+
}

0 commit comments

Comments
 (0)