xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/sincos-expansion.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=aarch64-linux-gnu -verify-machineinstrs -o - %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine float @test_sincos_f32(float %f) {
4*9880d681SAndroid Build Coastguard Worker  %sin = call float @sinf(float %f) readnone
5*9880d681SAndroid Build Coastguard Worker  %cos = call float @cosf(float %f) readnone
6*9880d681SAndroid Build Coastguard Worker; CHECK: bl sinf
7*9880d681SAndroid Build Coastguard Worker; CHECK: bl cosf
8*9880d681SAndroid Build Coastguard Worker  %val = fadd float %sin, %cos
9*9880d681SAndroid Build Coastguard Worker  ret float %val
10*9880d681SAndroid Build Coastguard Worker}
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerdefine double @test_sincos_f64(double %f) {
13*9880d681SAndroid Build Coastguard Worker  %sin = call double @sin(double %f) readnone
14*9880d681SAndroid Build Coastguard Worker  %cos = call double @cos(double %f) readnone
15*9880d681SAndroid Build Coastguard Worker  %val = fadd double %sin, %cos
16*9880d681SAndroid Build Coastguard Worker; CHECK: bl sin
17*9880d681SAndroid Build Coastguard Worker; CHECK: bl cos
18*9880d681SAndroid Build Coastguard Worker  ret double %val
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine fp128 @test_sincos_f128(fp128 %f) {
22*9880d681SAndroid Build Coastguard Worker  %sin = call fp128 @sinl(fp128 %f) readnone
23*9880d681SAndroid Build Coastguard Worker  %cos = call fp128 @cosl(fp128 %f) readnone
24*9880d681SAndroid Build Coastguard Worker  %val = fadd fp128 %sin, %cos
25*9880d681SAndroid Build Coastguard Worker; CHECK: bl sinl
26*9880d681SAndroid Build Coastguard Worker; CHECK: bl cosl
27*9880d681SAndroid Build Coastguard Worker  ret fp128 %val
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdeclare float  @sinf(float) readonly
31*9880d681SAndroid Build Coastguard Workerdeclare double @sin(double) readonly
32*9880d681SAndroid Build Coastguard Workerdeclare fp128 @sinl(fp128) readonly
33*9880d681SAndroid Build Coastguard Workerdeclare float @cosf(float) readonly
34*9880d681SAndroid Build Coastguard Workerdeclare double @cos(double) readonly
35*9880d681SAndroid Build Coastguard Workerdeclare fp128 @cosl(fp128) readonly
36