@@ -146,6 +146,13 @@ define float @cos_f32(float %x) #0 {
146146 ret float %val
147147}
148148
149+ ; CHECK-LABEL: tan_f32:
150+ ; CHECK: bl tanf
151+ define float @tan_f32 (float %x ) #0 {
152+ %val = call float @llvm.experimental.constrained.tan.f32 (float %x , metadata !"round.tonearest" , metadata !"fpexcept.strict" ) #0
153+ ret float %val
154+ }
155+
149156; CHECK-LABEL: pow_f32:
150157; CHECK: bl powf
151158define float @pow_f32 (float %x , float %y ) #0 {
@@ -630,6 +637,13 @@ define double @cos_f64(double %x) #0 {
630637 ret double %val
631638}
632639
640+ ; CHECK-LABEL: tan_f64:
641+ ; CHECK: bl tan
642+ define double @tan_f64 (double %x ) #0 {
643+ %val = call double @llvm.experimental.constrained.tan.f64 (double %x , metadata !"round.tonearest" , metadata !"fpexcept.strict" ) #0
644+ ret double %val
645+ }
646+
633647; CHECK-LABEL: pow_f64:
634648; CHECK: bl pow
635649define double @pow_f64 (double %x , double %y ) #0 {
@@ -1114,6 +1128,13 @@ define fp128 @cos_f128(fp128 %x) #0 {
11141128 ret fp128 %val
11151129}
11161130
1131+ ; CHECK-LABEL: tan_f128:
1132+ ; CHECK: bl tanl
1133+ define fp128 @tan_f128 (fp128 %x ) #0 {
1134+ %val = call fp128 @llvm.experimental.constrained.tan.f128 (fp128 %x , metadata !"round.tonearest" , metadata !"fpexcept.strict" ) #0
1135+ ret fp128 %val
1136+ }
1137+
11171138; CHECK-LABEL: pow_f128:
11181139; CHECK: bl powl
11191140define fp128 @pow_f128 (fp128 %x , fp128 %y ) #0 {
@@ -1491,6 +1512,13 @@ define <1 x double> @cos_v1f64(<1 x double> %x, <1 x double> %y) #0 {
14911512 ret <1 x double > %val
14921513}
14931514
1515+ ; CHECK-LABEL: tan_v1f64:
1516+ ; CHECK: bl tan
1517+ define <1 x double > @tan_v1f64 (<1 x double > %x , <1 x double > %y ) #0 {
1518+ %val = call <1 x double > @llvm.experimental.constrained.tan.v1f64 (<1 x double > %x , metadata !"round.tonearest" , metadata !"fpexcept.strict" ) #0
1519+ ret <1 x double > %val
1520+ }
1521+
14941522; CHECK-LABEL: pow_v1f64:
14951523; CHECK: bl pow
14961524define <1 x double > @pow_v1f64 (<1 x double > %x , <1 x double > %y ) #0 {
@@ -1555,6 +1583,7 @@ declare float @llvm.experimental.constrained.sqrt.f32(float, metadata, metadata)
15551583declare float @llvm.experimental.constrained.powi.f32 (float , i32 , metadata , metadata )
15561584declare float @llvm.experimental.constrained.sin.f32 (float , metadata , metadata )
15571585declare float @llvm.experimental.constrained.cos.f32 (float , metadata , metadata )
1586+ declare float @llvm.experimental.constrained.tan.f32 (float , metadata , metadata )
15581587declare float @llvm.experimental.constrained.pow.f32 (float , float , metadata , metadata )
15591588declare float @llvm.experimental.constrained.log.f32 (float , metadata , metadata )
15601589declare float @llvm.experimental.constrained.log10.f32 (float , metadata , metadata )
@@ -1599,6 +1628,7 @@ declare double @llvm.experimental.constrained.sqrt.f64(double, metadata, metadat
15991628declare double @llvm.experimental.constrained.powi.f64 (double , i32 , metadata , metadata )
16001629declare double @llvm.experimental.constrained.sin.f64 (double , metadata , metadata )
16011630declare double @llvm.experimental.constrained.cos.f64 (double , metadata , metadata )
1631+ declare double @llvm.experimental.constrained.tan.f64 (double , metadata , metadata )
16021632declare double @llvm.experimental.constrained.pow.f64 (double , double , metadata , metadata )
16031633declare double @llvm.experimental.constrained.log.f64 (double , metadata , metadata )
16041634declare double @llvm.experimental.constrained.log10.f64 (double , metadata , metadata )
@@ -1643,6 +1673,7 @@ declare fp128 @llvm.experimental.constrained.sqrt.f128(fp128, metadata, metadata
16431673declare fp128 @llvm.experimental.constrained.powi.f128 (fp128 , i32 , metadata , metadata )
16441674declare fp128 @llvm.experimental.constrained.sin.f128 (fp128 , metadata , metadata )
16451675declare fp128 @llvm.experimental.constrained.cos.f128 (fp128 , metadata , metadata )
1676+ declare fp128 @llvm.experimental.constrained.tan.f128 (fp128 , metadata , metadata )
16461677declare fp128 @llvm.experimental.constrained.pow.f128 (fp128 , fp128 , metadata , metadata )
16471678declare fp128 @llvm.experimental.constrained.log.f128 (fp128 , metadata , metadata )
16481679declare fp128 @llvm.experimental.constrained.log10.f128 (fp128 , metadata , metadata )
0 commit comments