blob: 81350497a4f26610ec9fbe3f3c6b39c45999abe9 [file] [log] [blame]
Richard Osborne37fe7d62011-11-01 10:51:48 +00001; RUN: llc < %s -march=xcore | FileCheck %s
2declare double @llvm.cos.f64(double)
3declare double @llvm.exp.f64(double)
4declare double @llvm.exp2.f64(double)
5declare double @llvm.log.f64(double)
6declare double @llvm.log10.f64(double)
7declare double @llvm.log2.f64(double)
8declare double @llvm.pow.f64(double, double)
Bjorn Pettersson4c7f8202021-03-26 21:02:26 +01009declare double @llvm.powi.f64.i32(double, i32)
Richard Osborne37fe7d62011-11-01 10:51:48 +000010declare double @llvm.sin.f64(double)
11declare double @llvm.sqrt.f64(double)
12
13define double @cos(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000014; CHECK-LABEL: cos:
Richard Osborne37fe7d62011-11-01 10:51:48 +000015; CHECK: bl cos
16 %result = call double @llvm.cos.f64(double %F)
17 ret double %result
18}
19
20declare float @llvm.cos.f32(float)
21
Stephen Lind24ab202013-07-14 06:24:09 +000022; CHECK-LABEL: cosf:
Richard Osborne37fe7d62011-11-01 10:51:48 +000023; CHECK: bl cosf
24define float @cosf(float %F) {
25 %result = call float @llvm.cos.f32(float %F)
26 ret float %result
27}
28
29define double @exp(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000030; CHECK-LABEL: exp:
Richard Osborne37fe7d62011-11-01 10:51:48 +000031; CHECK: bl exp
32 %result = call double @llvm.exp.f64(double %F)
33 ret double %result
34}
35
36declare float @llvm.exp.f32(float)
37
38define float @expf(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000039; CHECK-LABEL: expf:
Richard Osborne37fe7d62011-11-01 10:51:48 +000040; CHECK: bl expf
41 %result = call float @llvm.exp.f32(float %F)
42 ret float %result
43}
44
45define double @exp2(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000046; CHECK-LABEL: exp2:
Richard Osborne37fe7d62011-11-01 10:51:48 +000047; CHECK: bl exp2
48 %result = call double @llvm.exp2.f64(double %F)
49 ret double %result
50}
51
52declare float @llvm.exp2.f32(float)
53
54define float @exp2f(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000055; CHECK-LABEL: exp2f:
Richard Osborne37fe7d62011-11-01 10:51:48 +000056; CHECK: bl exp2f
57 %result = call float @llvm.exp2.f32(float %F)
58 ret float %result
59}
60
61define double @log(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000062; CHECK-LABEL: log:
Richard Osborne37fe7d62011-11-01 10:51:48 +000063; CHECK: bl log
64 %result = call double @llvm.log.f64(double %F)
65 ret double %result
66}
67
68declare float @llvm.log.f32(float)
69
70define float @logf(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000071; CHECK-LABEL: logf:
Richard Osborne37fe7d62011-11-01 10:51:48 +000072; CHECK: bl logf
73 %result = call float @llvm.log.f32(float %F)
74 ret float %result
75}
76
77define double @log10(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000078; CHECK-LABEL: log10:
Richard Osborne37fe7d62011-11-01 10:51:48 +000079; CHECK: bl log10
80 %result = call double @llvm.log10.f64(double %F)
81 ret double %result
82}
83
84declare float @llvm.log10.f32(float)
85
86define float @log10f(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000087; CHECK-LABEL: log10f:
Richard Osborne37fe7d62011-11-01 10:51:48 +000088; CHECK: bl log10f
89 %result = call float @llvm.log10.f32(float %F)
90 ret float %result
91}
92
93define double @log2(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +000094; CHECK-LABEL: log2:
Richard Osborne37fe7d62011-11-01 10:51:48 +000095; CHECK: bl log2
96 %result = call double @llvm.log2.f64(double %F)
97 ret double %result
98}
99
100declare float @llvm.log2.f32(float)
101
102define float @log2f(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +0000103; CHECK-LABEL: log2f:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000104; CHECK: bl log2f
105 %result = call float @llvm.log2.f32(float %F)
106 ret float %result
107}
108
109define double @pow(double %F, double %power) {
Stephen Lind24ab202013-07-14 06:24:09 +0000110; CHECK-LABEL: pow:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000111; CHECK: bl pow
112 %result = call double @llvm.pow.f64(double %F, double %power)
113 ret double %result
114}
115
116declare float @llvm.pow.f32(float, float)
117
118define float @powf(float %F, float %power) {
Stephen Lind24ab202013-07-14 06:24:09 +0000119; CHECK-LABEL: powf:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000120; CHECK: bl powf
121 %result = call float @llvm.pow.f32(float %F, float %power)
122 ret float %result
123}
124
125define double @powi(double %F, i32 %power) {
Stephen Lind24ab202013-07-14 06:24:09 +0000126; CHECK-LABEL: powi:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000127; CHECK: bl __powidf2
Bjorn Pettersson4c7f8202021-03-26 21:02:26 +0100128 %result = call double @llvm.powi.f64.i32(double %F, i32 %power)
Richard Osborne37fe7d62011-11-01 10:51:48 +0000129 ret double %result
130}
131
Bjorn Pettersson4c7f8202021-03-26 21:02:26 +0100132declare float @llvm.powi.f32.i32(float, i32)
Richard Osborne37fe7d62011-11-01 10:51:48 +0000133
134define float @powif(float %F, i32 %power) {
Stephen Lind24ab202013-07-14 06:24:09 +0000135; CHECK-LABEL: powif:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000136; CHECK: bl __powisf2
Bjorn Pettersson4c7f8202021-03-26 21:02:26 +0100137 %result = call float @llvm.powi.f32.i32(float %F, i32 %power)
Richard Osborne37fe7d62011-11-01 10:51:48 +0000138 ret float %result
139}
140
141define double @sin(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +0000142; CHECK-LABEL: sin:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000143; CHECK: bl sin
144 %result = call double @llvm.sin.f64(double %F)
145 ret double %result
146}
147
148declare float @llvm.sin.f32(float)
149
150define float @sinf(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +0000151; CHECK-LABEL: sinf:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000152; CHECK: bl sinf
153 %result = call float @llvm.sin.f32(float %F)
154 ret float %result
155}
156
157define double @sqrt(double %F) {
Stephen Lind24ab202013-07-14 06:24:09 +0000158; CHECK-LABEL: sqrt:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000159; CHECK: bl sqrt
160 %result = call double @llvm.sqrt.f64(double %F)
161 ret double %result
162}
163
164declare float @llvm.sqrt.f32(float)
165
166define float @sqrtf(float %F) {
Stephen Lind24ab202013-07-14 06:24:09 +0000167; CHECK-LABEL: sqrtf:
Richard Osborne37fe7d62011-11-01 10:51:48 +0000168; CHECK: bl sqrtf
169 %result = call float @llvm.sqrt.f32(float %F)
170 ret float %result
171}