1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -enable-ppc-gen-scalar-mass -verify-machineinstrs -O3 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck --check-prefix=CHECK-LNX %s
3 ; RUN: llc -enable-ppc-gen-scalar-mass -verify-machineinstrs -O3 -mtriple=powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefix=CHECK-AIX %s
5 declare float @powf (float, float);
6 declare double @pow (double, double);
7 declare float @__powf_finite (float, float);
8 declare double @__pow_finite (double, double);
10 ; fast-math powf with 0.25
11 define float @powf_f32_fast025(float %a) #1 {
13 ; CHECK-LNX-LABEL: powf_f32_fast025:
14 ; CHECK-LNX: # %bb.0: # %entry
15 ; CHECK-LNX-NEXT: mflr 0
16 ; CHECK-LNX-NEXT: stdu 1, -32(1)
17 ; CHECK-LNX-NEXT: std 0, 48(1)
18 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
19 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
20 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI0_0@toc@ha
21 ; CHECK-LNX-NEXT: lfs 2, .LCPI0_0@toc@l(3)
22 ; CHECK-LNX-NEXT: bl __xl_powf_finite
24 ; CHECK-LNX-NEXT: addi 1, 1, 32
25 ; CHECK-LNX-NEXT: ld 0, 16(1)
26 ; CHECK-LNX-NEXT: mtlr 0
29 ; CHECK-AIX-LABEL: powf_f32_fast025:
30 ; CHECK-AIX: # %bb.0: # %entry
31 ; CHECK-AIX-NEXT: mflr 0
32 ; CHECK-AIX-NEXT: stwu 1, -64(1)
33 ; CHECK-AIX-NEXT: lwz 3, L..C0(2) # %const.0
34 ; CHECK-AIX-NEXT: stw 0, 72(1)
35 ; CHECK-AIX-NEXT: lfs 2, 0(3)
36 ; CHECK-AIX-NEXT: bl .__xl_powf_finite[PR]
38 ; CHECK-AIX-NEXT: addi 1, 1, 64
39 ; CHECK-AIX-NEXT: lwz 0, 8(1)
40 ; CHECK-AIX-NEXT: mtlr 0
43 %call = tail call nnan ninf afn nsz float @powf(float %a, float 2.500000e-01)
47 ; fast-math pow with 0.25
48 define double @pow_f64_fast025(double %a) #1 {
50 ; CHECK-LNX-LABEL: pow_f64_fast025:
51 ; CHECK-LNX: # %bb.0: # %entry
52 ; CHECK-LNX-NEXT: mflr 0
53 ; CHECK-LNX-NEXT: stdu 1, -32(1)
54 ; CHECK-LNX-NEXT: std 0, 48(1)
55 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
56 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
57 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI1_0@toc@ha
58 ; CHECK-LNX-NEXT: lfs 2, .LCPI1_0@toc@l(3)
59 ; CHECK-LNX-NEXT: bl __xl_pow_finite
61 ; CHECK-LNX-NEXT: addi 1, 1, 32
62 ; CHECK-LNX-NEXT: ld 0, 16(1)
63 ; CHECK-LNX-NEXT: mtlr 0
66 ; CHECK-AIX-LABEL: pow_f64_fast025:
67 ; CHECK-AIX: # %bb.0: # %entry
68 ; CHECK-AIX-NEXT: mflr 0
69 ; CHECK-AIX-NEXT: stwu 1, -64(1)
70 ; CHECK-AIX-NEXT: lwz 3, L..C1(2) # %const.0
71 ; CHECK-AIX-NEXT: stw 0, 72(1)
72 ; CHECK-AIX-NEXT: lfs 2, 0(3)
73 ; CHECK-AIX-NEXT: bl .__xl_pow_finite[PR]
75 ; CHECK-AIX-NEXT: addi 1, 1, 64
76 ; CHECK-AIX-NEXT: lwz 0, 8(1)
77 ; CHECK-AIX-NEXT: mtlr 0
80 %call = tail call nnan ninf afn nsz double @pow(double %a, double 2.500000e-01)
84 ; fast-math powf with 0.75
85 define float @powf_f32_fast075(float %a) #1 {
87 ; CHECK-LNX-LABEL: powf_f32_fast075:
88 ; CHECK-LNX: # %bb.0: # %entry
89 ; CHECK-LNX-NEXT: mflr 0
90 ; CHECK-LNX-NEXT: stdu 1, -32(1)
91 ; CHECK-LNX-NEXT: std 0, 48(1)
92 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
93 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
94 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI2_0@toc@ha
95 ; CHECK-LNX-NEXT: lfs 2, .LCPI2_0@toc@l(3)
96 ; CHECK-LNX-NEXT: bl __xl_powf_finite
98 ; CHECK-LNX-NEXT: addi 1, 1, 32
99 ; CHECK-LNX-NEXT: ld 0, 16(1)
100 ; CHECK-LNX-NEXT: mtlr 0
101 ; CHECK-LNX-NEXT: blr
103 ; CHECK-AIX-LABEL: powf_f32_fast075:
104 ; CHECK-AIX: # %bb.0: # %entry
105 ; CHECK-AIX-NEXT: mflr 0
106 ; CHECK-AIX-NEXT: stwu 1, -64(1)
107 ; CHECK-AIX-NEXT: lwz 3, L..C2(2) # %const.0
108 ; CHECK-AIX-NEXT: stw 0, 72(1)
109 ; CHECK-AIX-NEXT: lfs 2, 0(3)
110 ; CHECK-AIX-NEXT: bl .__xl_powf_finite[PR]
111 ; CHECK-AIX-NEXT: nop
112 ; CHECK-AIX-NEXT: addi 1, 1, 64
113 ; CHECK-AIX-NEXT: lwz 0, 8(1)
114 ; CHECK-AIX-NEXT: mtlr 0
115 ; CHECK-AIX-NEXT: blr
117 %call = tail call nnan ninf afn nsz float @powf(float %a, float 7.500000e-01)
121 ; fast-math pow with 0.75
122 define double @pow_f64_fast075(double %a) #1 {
124 ; CHECK-LNX-LABEL: pow_f64_fast075:
125 ; CHECK-LNX: # %bb.0: # %entry
126 ; CHECK-LNX-NEXT: mflr 0
127 ; CHECK-LNX-NEXT: stdu 1, -32(1)
128 ; CHECK-LNX-NEXT: std 0, 48(1)
129 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
130 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
131 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI3_0@toc@ha
132 ; CHECK-LNX-NEXT: lfs 2, .LCPI3_0@toc@l(3)
133 ; CHECK-LNX-NEXT: bl __xl_pow_finite
134 ; CHECK-LNX-NEXT: nop
135 ; CHECK-LNX-NEXT: addi 1, 1, 32
136 ; CHECK-LNX-NEXT: ld 0, 16(1)
137 ; CHECK-LNX-NEXT: mtlr 0
138 ; CHECK-LNX-NEXT: blr
140 ; CHECK-AIX-LABEL: pow_f64_fast075:
141 ; CHECK-AIX: # %bb.0: # %entry
142 ; CHECK-AIX-NEXT: mflr 0
143 ; CHECK-AIX-NEXT: stwu 1, -64(1)
144 ; CHECK-AIX-NEXT: lwz 3, L..C3(2) # %const.0
145 ; CHECK-AIX-NEXT: stw 0, 72(1)
146 ; CHECK-AIX-NEXT: lfs 2, 0(3)
147 ; CHECK-AIX-NEXT: bl .__xl_pow_finite[PR]
148 ; CHECK-AIX-NEXT: nop
149 ; CHECK-AIX-NEXT: addi 1, 1, 64
150 ; CHECK-AIX-NEXT: lwz 0, 8(1)
151 ; CHECK-AIX-NEXT: mtlr 0
152 ; CHECK-AIX-NEXT: blr
154 %call = tail call nnan ninf afn nsz double @pow(double %a, double 7.500000e-01)
158 ; fast-math powf with 0.50
159 define float @powf_f32_fast050(float %a) #1 {
161 ; CHECK-LNX-LABEL: powf_f32_fast050:
162 ; CHECK-LNX: # %bb.0: # %entry
163 ; CHECK-LNX-NEXT: mflr 0
164 ; CHECK-LNX-NEXT: stdu 1, -32(1)
165 ; CHECK-LNX-NEXT: std 0, 48(1)
166 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
167 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
168 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI4_0@toc@ha
169 ; CHECK-LNX-NEXT: lfs 2, .LCPI4_0@toc@l(3)
170 ; CHECK-LNX-NEXT: bl __xl_powf_finite
171 ; CHECK-LNX-NEXT: nop
172 ; CHECK-LNX-NEXT: addi 1, 1, 32
173 ; CHECK-LNX-NEXT: ld 0, 16(1)
174 ; CHECK-LNX-NEXT: mtlr 0
175 ; CHECK-LNX-NEXT: blr
177 ; CHECK-AIX-LABEL: powf_f32_fast050:
178 ; CHECK-AIX: # %bb.0: # %entry
179 ; CHECK-AIX-NEXT: mflr 0
180 ; CHECK-AIX-NEXT: stwu 1, -64(1)
181 ; CHECK-AIX-NEXT: lwz 3, L..C4(2) # %const.0
182 ; CHECK-AIX-NEXT: stw 0, 72(1)
183 ; CHECK-AIX-NEXT: lfs 2, 0(3)
184 ; CHECK-AIX-NEXT: bl .__xl_powf_finite[PR]
185 ; CHECK-AIX-NEXT: nop
186 ; CHECK-AIX-NEXT: addi 1, 1, 64
187 ; CHECK-AIX-NEXT: lwz 0, 8(1)
188 ; CHECK-AIX-NEXT: mtlr 0
189 ; CHECK-AIX-NEXT: blr
191 %call = tail call nnan ninf afn nsz float @powf(float %a, float 5.000000e-01)
195 ; fast-math pow with 0.50
196 define double @pow_f64_fast050(double %a) #1 {
198 ; CHECK-LNX-LABEL: pow_f64_fast050:
199 ; CHECK-LNX: # %bb.0: # %entry
200 ; CHECK-LNX-NEXT: mflr 0
201 ; CHECK-LNX-NEXT: stdu 1, -32(1)
202 ; CHECK-LNX-NEXT: std 0, 48(1)
203 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
204 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
205 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI5_0@toc@ha
206 ; CHECK-LNX-NEXT: lfs 2, .LCPI5_0@toc@l(3)
207 ; CHECK-LNX-NEXT: bl __xl_pow_finite
208 ; CHECK-LNX-NEXT: nop
209 ; CHECK-LNX-NEXT: addi 1, 1, 32
210 ; CHECK-LNX-NEXT: ld 0, 16(1)
211 ; CHECK-LNX-NEXT: mtlr 0
212 ; CHECK-LNX-NEXT: blr
214 ; CHECK-AIX-LABEL: pow_f64_fast050:
215 ; CHECK-AIX: # %bb.0: # %entry
216 ; CHECK-AIX-NEXT: mflr 0
217 ; CHECK-AIX-NEXT: stwu 1, -64(1)
218 ; CHECK-AIX-NEXT: lwz 3, L..C5(2) # %const.0
219 ; CHECK-AIX-NEXT: stw 0, 72(1)
220 ; CHECK-AIX-NEXT: lfs 2, 0(3)
221 ; CHECK-AIX-NEXT: bl .__xl_pow_finite[PR]
222 ; CHECK-AIX-NEXT: nop
223 ; CHECK-AIX-NEXT: addi 1, 1, 64
224 ; CHECK-AIX-NEXT: lwz 0, 8(1)
225 ; CHECK-AIX-NEXT: mtlr 0
226 ; CHECK-AIX-NEXT: blr
228 %call = tail call nnan ninf afn nsz double @pow(double %a, double 5.000000e-01)
232 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
234 ; fast-math __powf_finite with 0.25
235 define float @__powf_finite_f32_fast025(float %a) #1 {
237 ; CHECK-LNX-LABEL: __powf_finite_f32_fast025:
238 ; CHECK-LNX: # %bb.0: # %entry
239 ; CHECK-LNX-NEXT: mflr 0
240 ; CHECK-LNX-NEXT: stdu 1, -32(1)
241 ; CHECK-LNX-NEXT: std 0, 48(1)
242 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
243 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
244 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI6_0@toc@ha
245 ; CHECK-LNX-NEXT: lfs 2, .LCPI6_0@toc@l(3)
246 ; CHECK-LNX-NEXT: bl __xl_powf_finite
247 ; CHECK-LNX-NEXT: nop
248 ; CHECK-LNX-NEXT: addi 1, 1, 32
249 ; CHECK-LNX-NEXT: ld 0, 16(1)
250 ; CHECK-LNX-NEXT: mtlr 0
251 ; CHECK-LNX-NEXT: blr
253 ; CHECK-AIX-LABEL: __powf_finite_f32_fast025:
254 ; CHECK-AIX: # %bb.0: # %entry
255 ; CHECK-AIX-NEXT: mflr 0
256 ; CHECK-AIX-NEXT: stwu 1, -64(1)
257 ; CHECK-AIX-NEXT: lwz 3, L..C6(2) # %const.0
258 ; CHECK-AIX-NEXT: stw 0, 72(1)
259 ; CHECK-AIX-NEXT: lfs 2, 0(3)
260 ; CHECK-AIX-NEXT: bl .__xl_powf_finite[PR]
261 ; CHECK-AIX-NEXT: nop
262 ; CHECK-AIX-NEXT: addi 1, 1, 64
263 ; CHECK-AIX-NEXT: lwz 0, 8(1)
264 ; CHECK-AIX-NEXT: mtlr 0
265 ; CHECK-AIX-NEXT: blr
267 %call = tail call nnan ninf afn nsz float @__powf_finite(float %a, float 2.500000e-01)
271 ; fast-math __pow_finite with 0.25
272 define double @__pow_finite_f64_fast025(double %a) #1 {
274 ; CHECK-LNX-LABEL: __pow_finite_f64_fast025:
275 ; CHECK-LNX: # %bb.0: # %entry
276 ; CHECK-LNX-NEXT: mflr 0
277 ; CHECK-LNX-NEXT: stdu 1, -32(1)
278 ; CHECK-LNX-NEXT: std 0, 48(1)
279 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
280 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
281 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI7_0@toc@ha
282 ; CHECK-LNX-NEXT: lfs 2, .LCPI7_0@toc@l(3)
283 ; CHECK-LNX-NEXT: bl __xl_pow_finite
284 ; CHECK-LNX-NEXT: nop
285 ; CHECK-LNX-NEXT: addi 1, 1, 32
286 ; CHECK-LNX-NEXT: ld 0, 16(1)
287 ; CHECK-LNX-NEXT: mtlr 0
288 ; CHECK-LNX-NEXT: blr
290 ; CHECK-AIX-LABEL: __pow_finite_f64_fast025:
291 ; CHECK-AIX: # %bb.0: # %entry
292 ; CHECK-AIX-NEXT: mflr 0
293 ; CHECK-AIX-NEXT: stwu 1, -64(1)
294 ; CHECK-AIX-NEXT: lwz 3, L..C7(2) # %const.0
295 ; CHECK-AIX-NEXT: stw 0, 72(1)
296 ; CHECK-AIX-NEXT: lfs 2, 0(3)
297 ; CHECK-AIX-NEXT: bl .__xl_pow_finite[PR]
298 ; CHECK-AIX-NEXT: nop
299 ; CHECK-AIX-NEXT: addi 1, 1, 64
300 ; CHECK-AIX-NEXT: lwz 0, 8(1)
301 ; CHECK-AIX-NEXT: mtlr 0
302 ; CHECK-AIX-NEXT: blr
304 %call = tail call nnan ninf afn nsz double @__pow_finite(double %a, double 2.500000e-01)
308 ; fast-math __powf_finite with 0.75
309 define float @__powf_finite_f32_fast075(float %a) #1 {
311 ; CHECK-LNX-LABEL: __powf_finite_f32_fast075:
312 ; CHECK-LNX: # %bb.0: # %entry
313 ; CHECK-LNX-NEXT: mflr 0
314 ; CHECK-LNX-NEXT: stdu 1, -32(1)
315 ; CHECK-LNX-NEXT: std 0, 48(1)
316 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
317 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
318 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI8_0@toc@ha
319 ; CHECK-LNX-NEXT: lfs 2, .LCPI8_0@toc@l(3)
320 ; CHECK-LNX-NEXT: bl __xl_powf_finite
321 ; CHECK-LNX-NEXT: nop
322 ; CHECK-LNX-NEXT: addi 1, 1, 32
323 ; CHECK-LNX-NEXT: ld 0, 16(1)
324 ; CHECK-LNX-NEXT: mtlr 0
325 ; CHECK-LNX-NEXT: blr
327 ; CHECK-AIX-LABEL: __powf_finite_f32_fast075:
328 ; CHECK-AIX: # %bb.0: # %entry
329 ; CHECK-AIX-NEXT: mflr 0
330 ; CHECK-AIX-NEXT: stwu 1, -64(1)
331 ; CHECK-AIX-NEXT: lwz 3, L..C8(2) # %const.0
332 ; CHECK-AIX-NEXT: stw 0, 72(1)
333 ; CHECK-AIX-NEXT: lfs 2, 0(3)
334 ; CHECK-AIX-NEXT: bl .__xl_powf_finite[PR]
335 ; CHECK-AIX-NEXT: nop
336 ; CHECK-AIX-NEXT: addi 1, 1, 64
337 ; CHECK-AIX-NEXT: lwz 0, 8(1)
338 ; CHECK-AIX-NEXT: mtlr 0
339 ; CHECK-AIX-NEXT: blr
341 %call = tail call nnan ninf afn nsz float @__powf_finite(float %a, float 7.500000e-01)
345 ; fast-math __pow_finite with 0.75
346 define double @__pow_finite_f64_fast075(double %a) #1 {
348 ; CHECK-LNX-LABEL: __pow_finite_f64_fast075:
349 ; CHECK-LNX: # %bb.0: # %entry
350 ; CHECK-LNX-NEXT: mflr 0
351 ; CHECK-LNX-NEXT: stdu 1, -32(1)
352 ; CHECK-LNX-NEXT: std 0, 48(1)
353 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
354 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
355 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI9_0@toc@ha
356 ; CHECK-LNX-NEXT: lfs 2, .LCPI9_0@toc@l(3)
357 ; CHECK-LNX-NEXT: bl __xl_pow_finite
358 ; CHECK-LNX-NEXT: nop
359 ; CHECK-LNX-NEXT: addi 1, 1, 32
360 ; CHECK-LNX-NEXT: ld 0, 16(1)
361 ; CHECK-LNX-NEXT: mtlr 0
362 ; CHECK-LNX-NEXT: blr
364 ; CHECK-AIX-LABEL: __pow_finite_f64_fast075:
365 ; CHECK-AIX: # %bb.0: # %entry
366 ; CHECK-AIX-NEXT: mflr 0
367 ; CHECK-AIX-NEXT: stwu 1, -64(1)
368 ; CHECK-AIX-NEXT: lwz 3, L..C9(2) # %const.0
369 ; CHECK-AIX-NEXT: stw 0, 72(1)
370 ; CHECK-AIX-NEXT: lfs 2, 0(3)
371 ; CHECK-AIX-NEXT: bl .__xl_pow_finite[PR]
372 ; CHECK-AIX-NEXT: nop
373 ; CHECK-AIX-NEXT: addi 1, 1, 64
374 ; CHECK-AIX-NEXT: lwz 0, 8(1)
375 ; CHECK-AIX-NEXT: mtlr 0
376 ; CHECK-AIX-NEXT: blr
378 %call = tail call nnan ninf afn nsz double @__pow_finite(double %a, double 7.500000e-01)
382 ; fast-math __powf_finite with 0.50
383 define float @__powf_finite_f32_fast050(float %a) #1 {
385 ; CHECK-LNX-LABEL: __powf_finite_f32_fast050:
386 ; CHECK-LNX: # %bb.0: # %entry
387 ; CHECK-LNX-NEXT: mflr 0
388 ; CHECK-LNX-NEXT: stdu 1, -32(1)
389 ; CHECK-LNX-NEXT: std 0, 48(1)
390 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
391 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
392 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI10_0@toc@ha
393 ; CHECK-LNX-NEXT: lfs 2, .LCPI10_0@toc@l(3)
394 ; CHECK-LNX-NEXT: bl __xl_powf_finite
395 ; CHECK-LNX-NEXT: nop
396 ; CHECK-LNX-NEXT: addi 1, 1, 32
397 ; CHECK-LNX-NEXT: ld 0, 16(1)
398 ; CHECK-LNX-NEXT: mtlr 0
399 ; CHECK-LNX-NEXT: blr
401 ; CHECK-AIX-LABEL: __powf_finite_f32_fast050:
402 ; CHECK-AIX: # %bb.0: # %entry
403 ; CHECK-AIX-NEXT: mflr 0
404 ; CHECK-AIX-NEXT: stwu 1, -64(1)
405 ; CHECK-AIX-NEXT: lwz 3, L..C10(2) # %const.0
406 ; CHECK-AIX-NEXT: stw 0, 72(1)
407 ; CHECK-AIX-NEXT: lfs 2, 0(3)
408 ; CHECK-AIX-NEXT: bl .__xl_powf_finite[PR]
409 ; CHECK-AIX-NEXT: nop
410 ; CHECK-AIX-NEXT: addi 1, 1, 64
411 ; CHECK-AIX-NEXT: lwz 0, 8(1)
412 ; CHECK-AIX-NEXT: mtlr 0
413 ; CHECK-AIX-NEXT: blr
415 %call = tail call nnan ninf afn nsz float @__powf_finite(float %a, float 5.000000e-01)
419 ; fast-math __pow_finite with 0.50
420 define double @__pow_finite_f64_fast050(double %a) #1 {
422 ; CHECK-LNX-LABEL: __pow_finite_f64_fast050:
423 ; CHECK-LNX: # %bb.0: # %entry
424 ; CHECK-LNX-NEXT: mflr 0
425 ; CHECK-LNX-NEXT: stdu 1, -32(1)
426 ; CHECK-LNX-NEXT: std 0, 48(1)
427 ; CHECK-LNX-NEXT: .cfi_def_cfa_offset 32
428 ; CHECK-LNX-NEXT: .cfi_offset lr, 16
429 ; CHECK-LNX-NEXT: addis 3, 2, .LCPI11_0@toc@ha
430 ; CHECK-LNX-NEXT: lfs 2, .LCPI11_0@toc@l(3)
431 ; CHECK-LNX-NEXT: bl __xl_pow_finite
432 ; CHECK-LNX-NEXT: nop
433 ; CHECK-LNX-NEXT: addi 1, 1, 32
434 ; CHECK-LNX-NEXT: ld 0, 16(1)
435 ; CHECK-LNX-NEXT: mtlr 0
436 ; CHECK-LNX-NEXT: blr
438 ; CHECK-AIX-LABEL: __pow_finite_f64_fast050:
439 ; CHECK-AIX: # %bb.0: # %entry
440 ; CHECK-AIX-NEXT: mflr 0
441 ; CHECK-AIX-NEXT: stwu 1, -64(1)
442 ; CHECK-AIX-NEXT: lwz 3, L..C11(2) # %const.0
443 ; CHECK-AIX-NEXT: stw 0, 72(1)
444 ; CHECK-AIX-NEXT: lfs 2, 0(3)
445 ; CHECK-AIX-NEXT: bl .__xl_pow_finite[PR]
446 ; CHECK-AIX-NEXT: nop
447 ; CHECK-AIX-NEXT: addi 1, 1, 64
448 ; CHECK-AIX-NEXT: lwz 0, 8(1)
449 ; CHECK-AIX-NEXT: mtlr 0
450 ; CHECK-AIX-NEXT: blr
452 %call = tail call nnan ninf afn nsz double @__pow_finite(double %a, double 5.000000e-01)
456 attributes #1 = { "approx-func-fp-math"="true" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" }