[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / sincos-expansion.ll
blob41ee40378b4fc84795000d28a998b489e866e632
1 ; RUN: llc -mtriple=aarch64-linux-gnu -verify-machineinstrs -o - %s | FileCheck %s
3 define float @test_sincos_f32(float %f) {
4 ; CHECK-LABEL: test_sincos_f32:
5   %sin = call float @sinf(float %f) readnone
6   %cos = call float @cosf(float %f) readnone
7 ; CHECK: bl sincosf
8   %val = fadd float %sin, %cos
9   ret float %val
12 define float @test_sincos_f32_errno(float %f) {
13 ; CHECK-LABEL: test_sincos_f32_errno:
14   %sin = call float @sinf(float %f)
15   %cos = call float @cosf(float %f)
16 ; CHECK: bl sinf
17 ; CHECK: bl cosf
18   %val = fadd float %sin, %cos
19   ret float %val
22 define double @test_sincos_f64(double %f) {
23 ; CHECK-LABEL: test_sincos_f64:
24   %sin = call double @sin(double %f) readnone
25   %cos = call double @cos(double %f) readnone
26   %val = fadd double %sin, %cos
27 ; CHECK: bl sincos
28   ret double %val
31 define double @test_sincos_f64_errno(double %f) {
32 ; CHECK-LABEL: test_sincos_f64_errno:
33   %sin = call double @sin(double %f)
34   %cos = call double @cos(double %f)
35   %val = fadd double %sin, %cos
36 ; CHECK: bl sin
37 ; CHECK: bl cos
38   ret double %val
41 define fp128 @test_sincos_f128(fp128 %f) {
42 ; CHECK-LABEL: test_sincos_f128:
43   %sin = call fp128 @sinl(fp128 %f) readnone
44   %cos = call fp128 @cosl(fp128 %f) readnone
45   %val = fadd fp128 %sin, %cos
46 ; CHECK: bl sincosl
47   ret fp128 %val
50 define fp128 @test_sincos_f128_errno(fp128 %f) {
51 ; CHECK-LABEL: test_sincos_f128_errno:
52   %sin = call fp128 @sinl(fp128 %f)
53   %cos = call fp128 @cosl(fp128 %f)
54   %val = fadd fp128 %sin, %cos
55 ; CHECK: bl sinl
56 ; CHECK: bl cosl
57   ret fp128 %val
60 declare float  @sinf(float)
61 declare double @sin(double)
62 declare fp128 @sinl(fp128)
63 declare float @cosf(float)
64 declare double @cos(double)
65 declare fp128 @cosl(fp128)