@@ -109,6 +109,24 @@ define void @cos_test(float %0, <8 x float> %1) {
109109 %4 = call <8 x float > @llvm.cos.v8f32 (<8 x float > %1 )
110110 ret void
111111}
112+ ; CHECK-LABEL: llvm.func @hyperbolic_trig_test
113+ define void @hyperbolic_trig_test (float %0 , <8 x float > %1 ) {
114+ ; CHECK: llvm.intr.sinh(%{{.*}}) : (f32) -> f32
115+ %3 = call float @llvm.sinh.f32 (float %0 )
116+ ; CHECK: llvm.intr.sinh(%{{.*}}) : (vector<8xf32>) -> vector<8xf32>
117+ %4 = call <8 x float > @llvm.sinh.v8f32 (<8 x float > %1 )
118+
119+ ; CHECK: llvm.intr.cosh(%{{.*}}) : (f32) -> f32
120+ %5 = call float @llvm.cosh.f32 (float %0 )
121+ ; CHECK: llvm.intr.cosh(%{{.*}}) : (vector<8xf32>) -> vector<8xf32>
122+ %6 = call <8 x float > @llvm.cosh.v8f32 (<8 x float > %1 )
123+
124+ ; CHECK: llvm.intr.tanh(%{{.*}}) : (f32) -> f32
125+ %7 = call float @llvm.tanh.f32 (float %0 )
126+ ; CHECK: llvm.intr.tanh(%{{.*}}) : (vector<8xf32>) -> vector<8xf32>
127+ %8 = call <8 x float > @llvm.tanh.v8f32 (<8 x float > %1 )
128+ ret void
129+ }
112130
113131; CHECK-LABEL: llvm.func @copysign_test
114132define void @copysign_test (float %0 , float %1 , <8 x float > %2 , <8 x float > %3 ) {
@@ -959,6 +977,12 @@ declare float @llvm.floor.f32(float)
959977declare <8 x float > @llvm.floor.v8f32 (<8 x float >)
960978declare float @llvm.cos.f32 (float )
961979declare <8 x float > @llvm.cos.v8f32 (<8 x float >)
980+ declare float @llvm.sinh.f32 (float )
981+ declare <8 x float > @llvm.sinh.v8f32 (<8 x float >)
982+ declare float @llvm.cosh.f32 (float )
983+ declare <8 x float > @llvm.cosh.v8f32 (<8 x float >)
984+ declare float @llvm.tanh.f32 (float )
985+ declare <8 x float > @llvm.tanh.v8f32 (<8 x float >)
962986declare float @llvm.copysign.f32 (float , float )
963987declare <8 x float > @llvm.copysign.v8f32 (<8 x float >, <8 x float >)
964988declare float @llvm.pow.f32 (float , float )
0 commit comments