xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/fp16instrinsmc.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=pic < %s | FileCheck %s -check-prefix=pic
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=static -mips32-function-mask=1010111 -mips-os16 < %s | FileCheck %s -check-prefix=fmask
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker@x = global float 1.500000e+00, align 4
5*9880d681SAndroid Build Coastguard Worker@xn = global float -1.900000e+01, align 4
6*9880d681SAndroid Build Coastguard Worker@negone = global float -1.000000e+00, align 4
7*9880d681SAndroid Build Coastguard Worker@one = global float 1.000000e+00, align 4
8*9880d681SAndroid Build Coastguard Worker@xd = global double 0x40048B0A8EA4481E, align 8
9*9880d681SAndroid Build Coastguard Worker@xdn = global double 0xC0311F9ADD373963, align 8
10*9880d681SAndroid Build Coastguard Worker@negoned = global double -1.000000e+00, align 8
11*9880d681SAndroid Build Coastguard Worker@oned = global float 1.000000e+00, align 4
12*9880d681SAndroid Build Coastguard Worker@y = common global float 0.000000e+00, align 4
13*9880d681SAndroid Build Coastguard Worker@yd = common global double 0.000000e+00, align 8
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
16*9880d681SAndroid Build Coastguard Workerdefine void @foo1() #0 {
17*9880d681SAndroid Build Coastguard Worker; fmask: .ent foo1
18*9880d681SAndroid Build Coastguard Worker; fmask: .set	noreorder
19*9880d681SAndroid Build Coastguard Worker; fmask: .set	nomacro
20*9880d681SAndroid Build Coastguard Worker; fmask: .set	noat
21*9880d681SAndroid Build Coastguard Worker; fmask: .set	at
22*9880d681SAndroid Build Coastguard Worker; fmask: .set	macro
23*9880d681SAndroid Build Coastguard Worker; fmask: .set	reorder
24*9880d681SAndroid Build Coastguard Worker; fmask: .end	foo1
25*9880d681SAndroid Build Coastguard Workerentry:
26*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
27*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @one, align 4
28*9880d681SAndroid Build Coastguard Worker  %call = call float @copysignf(float %0, float %1) #2
29*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
30*9880d681SAndroid Build Coastguard Worker  ret void
31*9880d681SAndroid Build Coastguard Worker}
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
34*9880d681SAndroid Build Coastguard Workerdeclare float @copysignf(float, float) #1
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
37*9880d681SAndroid Build Coastguard Workerdefine void @foo2() #0 {
38*9880d681SAndroid Build Coastguard Worker; fmask:	.ent	foo2
39*9880d681SAndroid Build Coastguard Worker; fmask:	save	{{.*}}
40*9880d681SAndroid Build Coastguard Worker; fmask:	.end	foo2
41*9880d681SAndroid Build Coastguard Workerentry:
42*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
43*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @negone, align 4
44*9880d681SAndroid Build Coastguard Worker  %call = call float @copysignf(float %0, float %1) #2
45*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
46*9880d681SAndroid Build Coastguard Worker  ret void
47*9880d681SAndroid Build Coastguard Worker}
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
50*9880d681SAndroid Build Coastguard Workerdefine void @foo3() #0 {
51*9880d681SAndroid Build Coastguard Workerentry:
52*9880d681SAndroid Build Coastguard Worker; fmask: .ent foo3
53*9880d681SAndroid Build Coastguard Worker; fmask: .set	noreorder
54*9880d681SAndroid Build Coastguard Worker; fmask: .set	nomacro
55*9880d681SAndroid Build Coastguard Worker; fmask: .set	noat
56*9880d681SAndroid Build Coastguard Worker; fmask: .set	at
57*9880d681SAndroid Build Coastguard Worker; fmask: .set	macro
58*9880d681SAndroid Build Coastguard Worker; fmask: .set	reorder
59*9880d681SAndroid Build Coastguard Worker; fmask: .end	foo3
60*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
61*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @oned, align 4
62*9880d681SAndroid Build Coastguard Worker  %conv = fpext float %1 to double
63*9880d681SAndroid Build Coastguard Worker  %call = call double @copysign(double %0, double %conv) #2
64*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
65*9880d681SAndroid Build Coastguard Worker  ret void
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
69*9880d681SAndroid Build Coastguard Workerdeclare double @copysign(double, double) #1
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
72*9880d681SAndroid Build Coastguard Workerdefine void @foo4() #0 {
73*9880d681SAndroid Build Coastguard Workerentry:
74*9880d681SAndroid Build Coastguard Worker; fmask:	.ent	foo4
75*9880d681SAndroid Build Coastguard Worker; fmask:	save	{{.*}}
76*9880d681SAndroid Build Coastguard Worker; fmask:	.end	foo4
77*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
78*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @negoned, align 8
79*9880d681SAndroid Build Coastguard Worker  %call = call double @copysign(double %0, double %1) #2
80*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
81*9880d681SAndroid Build Coastguard Worker  ret void
82*9880d681SAndroid Build Coastguard Worker}
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
85*9880d681SAndroid Build Coastguard Workerdefine void @foo5() #0 {
86*9880d681SAndroid Build Coastguard Workerentry:
87*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @xn, align 4
88*9880d681SAndroid Build Coastguard Worker  %call = call float @fabsf(float %0) #2
89*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
90*9880d681SAndroid Build Coastguard Worker  ret void
91*9880d681SAndroid Build Coastguard Worker}
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
94*9880d681SAndroid Build Coastguard Workerdeclare float @fabsf(float) #1
95*9880d681SAndroid Build Coastguard Worker
96*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
97*9880d681SAndroid Build Coastguard Workerdefine void @foo6() #0 {
98*9880d681SAndroid Build Coastguard Workerentry:
99*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xdn, align 8
100*9880d681SAndroid Build Coastguard Worker  %call = call double @fabs(double %0) #2
101*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
102*9880d681SAndroid Build Coastguard Worker  ret void
103*9880d681SAndroid Build Coastguard Worker}
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
106*9880d681SAndroid Build Coastguard Workerdeclare double @fabs(double) #1
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
109*9880d681SAndroid Build Coastguard Workerdefine void @foo7() #0 {
110*9880d681SAndroid Build Coastguard Workerentry:
111*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
112*9880d681SAndroid Build Coastguard Worker  %call = call float @sinf(float %0) #3
113*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(sinf)(${{[0-9]+}})
114*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
115*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
116*9880d681SAndroid Build Coastguard Worker  ret void
117*9880d681SAndroid Build Coastguard Worker}
118*9880d681SAndroid Build Coastguard Worker
119*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
120*9880d681SAndroid Build Coastguard Workerdeclare float @sinf(float) #0
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
123*9880d681SAndroid Build Coastguard Workerdefine void @foo8() #0 {
124*9880d681SAndroid Build Coastguard Workerentry:
125*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
126*9880d681SAndroid Build Coastguard Worker  %call = call double @sin(double %0) #3
127*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(sin)(${{[0-9]+}})
128*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
129*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
130*9880d681SAndroid Build Coastguard Worker  ret void
131*9880d681SAndroid Build Coastguard Worker}
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
134*9880d681SAndroid Build Coastguard Workerdeclare double @sin(double) #0
135*9880d681SAndroid Build Coastguard Worker
136*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
137*9880d681SAndroid Build Coastguard Workerdefine void @foo9() #0 {
138*9880d681SAndroid Build Coastguard Workerentry:
139*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
140*9880d681SAndroid Build Coastguard Worker  %call = call float @cosf(float %0) #3
141*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(cosf)(${{[0-9]+}})
142*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
143*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
144*9880d681SAndroid Build Coastguard Worker  ret void
145*9880d681SAndroid Build Coastguard Worker}
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
148*9880d681SAndroid Build Coastguard Workerdeclare float @cosf(float) #0
149*9880d681SAndroid Build Coastguard Worker
150*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
151*9880d681SAndroid Build Coastguard Workerdefine void @foo10() #0 {
152*9880d681SAndroid Build Coastguard Workerentry:
153*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
154*9880d681SAndroid Build Coastguard Worker  %call = call double @cos(double %0) #3
155*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(cos)(${{[0-9]+}})
156*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
157*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
158*9880d681SAndroid Build Coastguard Worker  ret void
159*9880d681SAndroid Build Coastguard Worker}
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
162*9880d681SAndroid Build Coastguard Workerdeclare double @cos(double) #0
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
165*9880d681SAndroid Build Coastguard Workerdefine void @foo11() #0 {
166*9880d681SAndroid Build Coastguard Workerentry:
167*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
168*9880d681SAndroid Build Coastguard Worker  %call = call float @sqrtf(float %0) #3
169*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(sqrtf)(${{[0-9]+}})
170*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
171*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
172*9880d681SAndroid Build Coastguard Worker  ret void
173*9880d681SAndroid Build Coastguard Worker}
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
176*9880d681SAndroid Build Coastguard Workerdeclare float @sqrtf(float) #0
177*9880d681SAndroid Build Coastguard Worker
178*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
179*9880d681SAndroid Build Coastguard Workerdefine void @foo12() #0 {
180*9880d681SAndroid Build Coastguard Workerentry:
181*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
182*9880d681SAndroid Build Coastguard Worker  %call = call double @sqrt(double %0) #3
183*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(sqrt)(${{[0-9]+}})
184*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
185*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
186*9880d681SAndroid Build Coastguard Worker  ret void
187*9880d681SAndroid Build Coastguard Worker}
188*9880d681SAndroid Build Coastguard Worker
189*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
190*9880d681SAndroid Build Coastguard Workerdeclare double @sqrt(double) #0
191*9880d681SAndroid Build Coastguard Worker
192*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
193*9880d681SAndroid Build Coastguard Workerdefine void @foo13() #0 {
194*9880d681SAndroid Build Coastguard Workerentry:
195*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
196*9880d681SAndroid Build Coastguard Worker  %call = call float @floorf(float %0) #2
197*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(floorf)(${{[0-9]+}})
198*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
199*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
200*9880d681SAndroid Build Coastguard Worker  ret void
201*9880d681SAndroid Build Coastguard Worker}
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
204*9880d681SAndroid Build Coastguard Workerdeclare float @floorf(float) #1
205*9880d681SAndroid Build Coastguard Worker
206*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
207*9880d681SAndroid Build Coastguard Workerdefine void @foo14() #0 {
208*9880d681SAndroid Build Coastguard Workerentry:
209*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
210*9880d681SAndroid Build Coastguard Worker  %call = call double @floor(double %0) #2
211*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(floor)(${{[0-9]+}})
212*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
213*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
214*9880d681SAndroid Build Coastguard Worker  ret void
215*9880d681SAndroid Build Coastguard Worker}
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
218*9880d681SAndroid Build Coastguard Workerdeclare double @floor(double) #1
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
221*9880d681SAndroid Build Coastguard Workerdefine void @foo15() #0 {
222*9880d681SAndroid Build Coastguard Workerentry:
223*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
224*9880d681SAndroid Build Coastguard Worker  %call = call float @nearbyintf(float %0) #2
225*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(nearbyintf)(${{[0-9]+}})
226*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
227*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
228*9880d681SAndroid Build Coastguard Worker  ret void
229*9880d681SAndroid Build Coastguard Worker}
230*9880d681SAndroid Build Coastguard Worker
231*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
232*9880d681SAndroid Build Coastguard Workerdeclare float @nearbyintf(float) #1
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
235*9880d681SAndroid Build Coastguard Workerdefine void @foo16() #0 {
236*9880d681SAndroid Build Coastguard Workerentry:
237*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
238*9880d681SAndroid Build Coastguard Worker  %call = call double @nearbyint(double %0) #2
239*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(nearbyint)(${{[0-9]+}})
240*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
241*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
242*9880d681SAndroid Build Coastguard Worker  ret void
243*9880d681SAndroid Build Coastguard Worker}
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
246*9880d681SAndroid Build Coastguard Workerdeclare double @nearbyint(double) #1
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
249*9880d681SAndroid Build Coastguard Workerdefine void @foo17() #0 {
250*9880d681SAndroid Build Coastguard Workerentry:
251*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
252*9880d681SAndroid Build Coastguard Worker  %call = call float @ceilf(float %0) #2
253*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(ceilf)(${{[0-9]+}})
254*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
255*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
256*9880d681SAndroid Build Coastguard Worker  ret void
257*9880d681SAndroid Build Coastguard Worker}
258*9880d681SAndroid Build Coastguard Worker
259*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
260*9880d681SAndroid Build Coastguard Workerdeclare float @ceilf(float) #1
261*9880d681SAndroid Build Coastguard Worker
262*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
263*9880d681SAndroid Build Coastguard Workerdefine void @foo18() #0 {
264*9880d681SAndroid Build Coastguard Workerentry:
265*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
266*9880d681SAndroid Build Coastguard Worker  %call = call double @ceil(double %0) #2
267*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(ceil)(${{[0-9]+}})
268*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
269*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
270*9880d681SAndroid Build Coastguard Worker  ret void
271*9880d681SAndroid Build Coastguard Worker}
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
274*9880d681SAndroid Build Coastguard Workerdeclare double @ceil(double) #1
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
277*9880d681SAndroid Build Coastguard Workerdefine void @foo19() #0 {
278*9880d681SAndroid Build Coastguard Workerentry:
279*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
280*9880d681SAndroid Build Coastguard Worker  %call = call float @rintf(float %0) #2
281*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(rintf)(${{[0-9]+}})
282*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
283*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
284*9880d681SAndroid Build Coastguard Worker  ret void
285*9880d681SAndroid Build Coastguard Worker}
286*9880d681SAndroid Build Coastguard Worker
287*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
288*9880d681SAndroid Build Coastguard Workerdeclare float @rintf(float) #1
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
291*9880d681SAndroid Build Coastguard Workerdefine void @foo20() #0 {
292*9880d681SAndroid Build Coastguard Workerentry:
293*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
294*9880d681SAndroid Build Coastguard Worker  %call = call double @rint(double %0) #2
295*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(rint)(${{[0-9]+}})
296*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
297*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
298*9880d681SAndroid Build Coastguard Worker  ret void
299*9880d681SAndroid Build Coastguard Worker}
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
302*9880d681SAndroid Build Coastguard Workerdeclare double @rint(double) #1
303*9880d681SAndroid Build Coastguard Worker
304*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
305*9880d681SAndroid Build Coastguard Workerdefine void @foo21() #0 {
306*9880d681SAndroid Build Coastguard Workerentry:
307*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
308*9880d681SAndroid Build Coastguard Worker  %call = call float @truncf(float %0) #2
309*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(truncf)(${{[0-9]+}})
310*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
311*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
312*9880d681SAndroid Build Coastguard Worker  ret void
313*9880d681SAndroid Build Coastguard Worker}
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
316*9880d681SAndroid Build Coastguard Workerdeclare float @truncf(float) #1
317*9880d681SAndroid Build Coastguard Worker
318*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
319*9880d681SAndroid Build Coastguard Workerdefine void @foo22() #0 {
320*9880d681SAndroid Build Coastguard Workerentry:
321*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
322*9880d681SAndroid Build Coastguard Worker  %call = call double @trunc(double %0) #2
323*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(trunc)(${{[0-9]+}})
324*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
325*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
326*9880d681SAndroid Build Coastguard Worker  ret void
327*9880d681SAndroid Build Coastguard Worker}
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
330*9880d681SAndroid Build Coastguard Workerdeclare double @trunc(double) #1
331*9880d681SAndroid Build Coastguard Worker
332*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
333*9880d681SAndroid Build Coastguard Workerdefine void @foo23() #0 {
334*9880d681SAndroid Build Coastguard Workerentry:
335*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
336*9880d681SAndroid Build Coastguard Worker  %call = call float @log2f(float %0) #3
337*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(log2f)(${{[0-9]+}})
338*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
339*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
340*9880d681SAndroid Build Coastguard Worker  ret void
341*9880d681SAndroid Build Coastguard Worker}
342*9880d681SAndroid Build Coastguard Worker
343*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
344*9880d681SAndroid Build Coastguard Workerdeclare float @log2f(float) #0
345*9880d681SAndroid Build Coastguard Worker
346*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
347*9880d681SAndroid Build Coastguard Workerdefine void @foo24() #0 {
348*9880d681SAndroid Build Coastguard Workerentry:
349*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
350*9880d681SAndroid Build Coastguard Worker  %call = call double @log2(double %0) #3
351*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(log2)(${{[0-9]+}})
352*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
353*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
354*9880d681SAndroid Build Coastguard Worker  ret void
355*9880d681SAndroid Build Coastguard Worker}
356*9880d681SAndroid Build Coastguard Worker
357*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
358*9880d681SAndroid Build Coastguard Workerdeclare double @log2(double) #0
359*9880d681SAndroid Build Coastguard Worker
360*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
361*9880d681SAndroid Build Coastguard Workerdefine void @foo25() #0 {
362*9880d681SAndroid Build Coastguard Workerentry:
363*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
364*9880d681SAndroid Build Coastguard Worker  %call = call float @exp2f(float %0) #3
365*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(exp2f)(${{[0-9]+}})
366*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})
367*9880d681SAndroid Build Coastguard Worker  store float %call, float* @y, align 4
368*9880d681SAndroid Build Coastguard Worker  ret void
369*9880d681SAndroid Build Coastguard Worker}
370*9880d681SAndroid Build Coastguard Worker
371*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
372*9880d681SAndroid Build Coastguard Workerdeclare float @exp2f(float) #0
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
375*9880d681SAndroid Build Coastguard Workerdefine void @foo26() #0 {
376*9880d681SAndroid Build Coastguard Workerentry:
377*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
378*9880d681SAndroid Build Coastguard Worker  %call = call double @exp2(double %0) #3
379*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %call16(exp2)(${{[0-9]+}})
380*9880d681SAndroid Build Coastguard Worker;pic:	lw	${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})
381*9880d681SAndroid Build Coastguard Worker  store double %call, double* @yd, align 8
382*9880d681SAndroid Build Coastguard Worker  ret void
383*9880d681SAndroid Build Coastguard Worker}
384*9880d681SAndroid Build Coastguard Worker
385*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
386*9880d681SAndroid Build Coastguard Workerdeclare double @exp2(double) #0
387*9880d681SAndroid Build Coastguard Worker
388*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
389*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind readnone "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="true" }
390*9880d681SAndroid Build Coastguard Workerattributes #2 = { nounwind readnone }
391*9880d681SAndroid Build Coastguard Workerattributes #3 = { nounwind }
392