@@ -146,6 +146,13 @@ define float @cos_f32(float %x) #0 {
146
146
ret float %val
147
147
}
148
148
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
+
149
156
; CHECK-LABEL: pow_f32:
150
157
; CHECK: bl powf
151
158
define float @pow_f32 (float %x , float %y ) #0 {
@@ -630,6 +637,13 @@ define double @cos_f64(double %x) #0 {
630
637
ret double %val
631
638
}
632
639
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
+
633
647
; CHECK-LABEL: pow_f64:
634
648
; CHECK: bl pow
635
649
define double @pow_f64 (double %x , double %y ) #0 {
@@ -1114,6 +1128,13 @@ define fp128 @cos_f128(fp128 %x) #0 {
1114
1128
ret fp128 %val
1115
1129
}
1116
1130
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
+
1117
1138
; CHECK-LABEL: pow_f128:
1118
1139
; CHECK: bl powl
1119
1140
define 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 {
1491
1512
ret <1 x double > %val
1492
1513
}
1493
1514
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
+
1494
1522
; CHECK-LABEL: pow_v1f64:
1495
1523
; CHECK: bl pow
1496
1524
define <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)
1555
1583
declare float @llvm.experimental.constrained.powi.f32 (float , i32 , metadata , metadata )
1556
1584
declare float @llvm.experimental.constrained.sin.f32 (float , metadata , metadata )
1557
1585
declare float @llvm.experimental.constrained.cos.f32 (float , metadata , metadata )
1586
+ declare float @llvm.experimental.constrained.tan.f32 (float , metadata , metadata )
1558
1587
declare float @llvm.experimental.constrained.pow.f32 (float , float , metadata , metadata )
1559
1588
declare float @llvm.experimental.constrained.log.f32 (float , metadata , metadata )
1560
1589
declare float @llvm.experimental.constrained.log10.f32 (float , metadata , metadata )
@@ -1599,6 +1628,7 @@ declare double @llvm.experimental.constrained.sqrt.f64(double, metadata, metadat
1599
1628
declare double @llvm.experimental.constrained.powi.f64 (double , i32 , metadata , metadata )
1600
1629
declare double @llvm.experimental.constrained.sin.f64 (double , metadata , metadata )
1601
1630
declare double @llvm.experimental.constrained.cos.f64 (double , metadata , metadata )
1631
+ declare double @llvm.experimental.constrained.tan.f64 (double , metadata , metadata )
1602
1632
declare double @llvm.experimental.constrained.pow.f64 (double , double , metadata , metadata )
1603
1633
declare double @llvm.experimental.constrained.log.f64 (double , metadata , metadata )
1604
1634
declare double @llvm.experimental.constrained.log10.f64 (double , metadata , metadata )
@@ -1643,6 +1673,7 @@ declare fp128 @llvm.experimental.constrained.sqrt.f128(fp128, metadata, metadata
1643
1673
declare fp128 @llvm.experimental.constrained.powi.f128 (fp128 , i32 , metadata , metadata )
1644
1674
declare fp128 @llvm.experimental.constrained.sin.f128 (fp128 , metadata , metadata )
1645
1675
declare fp128 @llvm.experimental.constrained.cos.f128 (fp128 , metadata , metadata )
1676
+ declare fp128 @llvm.experimental.constrained.tan.f128 (fp128 , metadata , metadata )
1646
1677
declare fp128 @llvm.experimental.constrained.pow.f128 (fp128 , fp128 , metadata , metadata )
1647
1678
declare fp128 @llvm.experimental.constrained.log.f128 (fp128 , metadata , metadata )
1648
1679
declare fp128 @llvm.experimental.constrained.log10.f128 (fp128 , metadata , metadata )
0 commit comments