Home | History | Annotate | Download | only in AArch64
      1 ; RUN: llc -mtriple=aarch64-linux-gnu -verify-machineinstrs -o - %s | FileCheck %s
      2 
      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
     10 }
     11 
     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
     20 }
     21 
     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
     29 }
     30 
     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
     39 }
     40 
     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
     48 }
     49 
     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
     58 }
     59 
     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)
     66