[Github] Label lldb-dap PRs (#125139)
[llvm-project.git] / clang / test / CodeGen / AArch64 / sincos.c
blobb77d98ceab48691c1628cd7b23421df676e71a5f
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
4 // NO-MATH-ERRNO-LABEL: @sincos_f32
5 // NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { float, float } @llvm.sincos.f32(float {{.*}})
6 // NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { float, float } [[SINCOS]], 0
7 // NO-MATH-ERRNO-NEXT: [[COS:%.*]] = extractvalue { float, float } [[SINCOS]], 1
8 // NO-MATH-ERRNO-NEXT: store float [[SIN]], ptr {{.*}}, align 4, !alias.scope [[SINCOS_ALIAS_SCOPE:![0-9]+]]
9 // NO-MATH-ERRNO-NEXT: store float [[COS]], ptr {{.*}}, align 4, !noalias [[SINCOS_ALIAS_SCOPE]]
11 // MATH-ERRNO-LABEL: @sincos_f32
12 // MATH-ERRNO: call void @sincosf(
14 void sincos_f32(float x, float* fp0, float* fp1) {
15 __builtin_sincosf(x, fp0, fp1);
18 // NO-MATH-ERRNO-LABEL: @sincos_f64
19 // NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { double, double } @llvm.sincos.f64(double {{.*}})
20 // NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { double, double } [[SINCOS]], 0
21 // NO-MATH-ERRNO-NEXT: [[COS:%.*]] = extractvalue { double, double } [[SINCOS]], 1
22 // NO-MATH-ERRNO-NEXT: store double [[SIN]], ptr {{.*}}, align 8, !alias.scope [[SINCOS_ALIAS_SCOPE:![0-9]+]]
23 // NO-MATH-ERRNO-NEXT: store double [[COS]], ptr {{.*}}, align 8, !noalias [[SINCOS_ALIAS_SCOPE]]
25 // MATH-ERRNO-LABEL: @sincos_f64
26 // MATH-ERRNO: call void @sincos(
28 void sincos_f64(double x, double* dp0, double* dp1) {
29 __builtin_sincos(x, dp0, dp1);
32 // NO-MATH-ERRNO-LABEL: @sincos_f128
33 // NO-MATH-ERRNO: [[SINCOS:%.*]] = tail call { fp128, fp128 } @llvm.sincos.f128(fp128 {{.*}})
34 // NO-MATH-ERRNO-NEXT: [[SIN:%.*]] = extractvalue { fp128, fp128 } [[SINCOS]], 0
35 // NO-MATH-ERRNO-NEXT: [[COS:%.*]] = extractvalue { fp128, fp128 } [[SINCOS]], 1
36 // NO-MATH-ERRNO-NEXT: store fp128 [[SIN]], ptr {{.*}}, align 16, !alias.scope [[SINCOS_ALIAS_SCOPE:![0-9]+]]
37 // NO-MATH-ERRNO-NEXT: store fp128 [[COS]], ptr {{.*}}, align 16, !noalias [[SINCOS_ALIAS_SCOPE]]
39 // MATH-ERRNO-LABEL: @sincos_f128
40 // MATH-ERRNO: call void @sincosl(
42 void sincos_f128(long double x, long double* ldp0, long double* ldp1) {
43 __builtin_sincosl(x, ldp0, ldp1);