@@ -325,24 +325,21 @@ define float @sqrt_afn_ieee(float %x) #0 {
325325;
326326; GLOBAL-LABEL: sqrt_afn_ieee:
327327; GLOBAL: # %bb.0:
328- ; GLOBAL-NEXT: addis 3, 2, .LCPI11_1@toc@ha
329- ; GLOBAL-NEXT: xsabsdp 0, 1
330- ; GLOBAL-NEXT: lfs 2, .LCPI11_1@toc@l(3)
331- ; GLOBAL-NEXT: fcmpu 0, 0, 2
332- ; GLOBAL-NEXT: xxlxor 0, 0, 0
333- ; GLOBAL-NEXT: blt 0, .LBB11_2
334- ; GLOBAL-NEXT: # %bb.1:
335328; GLOBAL-NEXT: xsrsqrtesp 0, 1
336329; GLOBAL-NEXT: vspltisw 2, -3
337330; GLOBAL-NEXT: addis 3, 2, .LCPI11_0@toc@ha
338- ; GLOBAL-NEXT: xvcvsxwdp 2, 34
339- ; GLOBAL-NEXT: xsmulsp 1, 1, 0
340- ; GLOBAL-NEXT: xsmaddasp 2, 1, 0
331+ ; GLOBAL-NEXT: xvcvsxwdp 3, 34
332+ ; GLOBAL-NEXT: xsmulsp 2, 1, 0
333+ ; GLOBAL-NEXT: xsabsdp 1, 1
334+ ; GLOBAL-NEXT: xsmaddasp 3, 2, 0
341335; GLOBAL-NEXT: lfs 0, .LCPI11_0@toc@l(3)
342- ; GLOBAL-NEXT: xsmulsp 0, 1, 0
343- ; GLOBAL-NEXT: xsmulsp 0, 0, 2
344- ; GLOBAL-NEXT: .LBB11_2:
345- ; GLOBAL-NEXT: fmr 1, 0
336+ ; GLOBAL-NEXT: addis 3, 2, .LCPI11_1@toc@ha
337+ ; GLOBAL-NEXT: xsmulsp 0, 2, 0
338+ ; GLOBAL-NEXT: lfs 2, .LCPI11_1@toc@l(3)
339+ ; GLOBAL-NEXT: xssubsp 1, 1, 2
340+ ; GLOBAL-NEXT: xxlxor 2, 2, 2
341+ ; GLOBAL-NEXT: xsmulsp 0, 0, 3
342+ ; GLOBAL-NEXT: fsel 1, 1, 0, 2
346343; GLOBAL-NEXT: blr
347344 %rt = call afn ninf float @llvm.sqrt.f32 (float %x )
348345 ret float %rt
@@ -393,21 +390,19 @@ define float @sqrt_afn_preserve_sign(float %x) #1 {
393390;
394391; GLOBAL-LABEL: sqrt_afn_preserve_sign:
395392; GLOBAL: # %bb.0:
396- ; GLOBAL-NEXT: xxlxor 0, 0, 0
397- ; GLOBAL-NEXT: fcmpu 0, 1, 0
398- ; GLOBAL-NEXT: beq 0, .LBB13_2
399- ; GLOBAL-NEXT: # %bb.1:
400393; GLOBAL-NEXT: xsrsqrtesp 0, 1
401394; GLOBAL-NEXT: vspltisw 2, -3
402395; GLOBAL-NEXT: addis 3, 2, .LCPI13_0@toc@ha
403- ; GLOBAL-NEXT: xvcvsxwdp 2 , 34
404- ; GLOBAL-NEXT: xsmulsp 1 , 1, 0
405- ; GLOBAL-NEXT: xsmaddasp 2, 1 , 0
396+ ; GLOBAL-NEXT: xvcvsxwdp 3 , 34
397+ ; GLOBAL-NEXT: xsmulsp 2 , 1, 0
398+ ; GLOBAL-NEXT: xsmaddasp 3, 2 , 0
406399; GLOBAL-NEXT: lfs 0, .LCPI13_0@toc@l(3)
407- ; GLOBAL-NEXT: xsmulsp 0, 1, 0
408- ; GLOBAL-NEXT: xsmulsp 0, 0, 2
409- ; GLOBAL-NEXT: .LBB13_2:
410- ; GLOBAL-NEXT: fmr 1, 0
400+ ; GLOBAL-NEXT: xsmulsp 0, 2, 0
401+ ; GLOBAL-NEXT: xxlxor 2, 2, 2
402+ ; GLOBAL-NEXT: xsmulsp 0, 0, 3
403+ ; GLOBAL-NEXT: fsel 2, 1, 2, 0
404+ ; GLOBAL-NEXT: xsnegdp 1, 1
405+ ; GLOBAL-NEXT: fsel 1, 1, 2, 0
411406; GLOBAL-NEXT: blr
412407 %rt = call afn ninf float @llvm.sqrt.f32 (float %x )
413408 ret float %rt
@@ -462,24 +457,21 @@ define float @sqrt_fast_ieee(float %x) #0 {
462457;
463458; GLOBAL-LABEL: sqrt_fast_ieee:
464459; GLOBAL: # %bb.0:
465- ; GLOBAL-NEXT: addis 3, 2, .LCPI15_1@toc@ha
466- ; GLOBAL-NEXT: xsabsdp 0, 1
467- ; GLOBAL-NEXT: lfs 2, .LCPI15_1@toc@l(3)
468- ; GLOBAL-NEXT: fcmpu 0, 0, 2
469- ; GLOBAL-NEXT: xxlxor 0, 0, 0
470- ; GLOBAL-NEXT: blt 0, .LBB15_2
471- ; GLOBAL-NEXT: # %bb.1:
472460; GLOBAL-NEXT: xsrsqrtesp 0, 1
473461; GLOBAL-NEXT: vspltisw 2, -3
474462; GLOBAL-NEXT: addis 3, 2, .LCPI15_0@toc@ha
475- ; GLOBAL-NEXT: xvcvsxwdp 2, 34
476- ; GLOBAL-NEXT: xsmulsp 1, 1, 0
477- ; GLOBAL-NEXT: xsmaddasp 2, 1, 0
463+ ; GLOBAL-NEXT: xvcvsxwdp 3, 34
464+ ; GLOBAL-NEXT: xsmulsp 2, 1, 0
465+ ; GLOBAL-NEXT: xsabsdp 1, 1
466+ ; GLOBAL-NEXT: xsmaddasp 3, 2, 0
478467; GLOBAL-NEXT: lfs 0, .LCPI15_0@toc@l(3)
479- ; GLOBAL-NEXT: xsmulsp 0, 1, 0
480- ; GLOBAL-NEXT: xsmulsp 0, 0, 2
481- ; GLOBAL-NEXT: .LBB15_2:
482- ; GLOBAL-NEXT: fmr 1, 0
468+ ; GLOBAL-NEXT: addis 3, 2, .LCPI15_1@toc@ha
469+ ; GLOBAL-NEXT: xsmulsp 0, 2, 0
470+ ; GLOBAL-NEXT: lfs 2, .LCPI15_1@toc@l(3)
471+ ; GLOBAL-NEXT: xssubsp 1, 1, 2
472+ ; GLOBAL-NEXT: xxlxor 2, 2, 2
473+ ; GLOBAL-NEXT: xsmulsp 0, 0, 3
474+ ; GLOBAL-NEXT: fsel 1, 1, 0, 2
483475; GLOBAL-NEXT: blr
484476 %rt = call contract reassoc afn ninf float @llvm.sqrt.f32 (float %x )
485477 ret float %rt
@@ -517,21 +509,19 @@ define float @sqrt_fast_preserve_sign(float %x) #1 {
517509;
518510; GLOBAL-LABEL: sqrt_fast_preserve_sign:
519511; GLOBAL: # %bb.0:
520- ; GLOBAL-NEXT: xxlxor 0, 0, 0
521- ; GLOBAL-NEXT: fcmpu 0, 1, 0
522- ; GLOBAL-NEXT: beq 0, .LBB16_2
523- ; GLOBAL-NEXT: # %bb.1:
524512; GLOBAL-NEXT: xsrsqrtesp 0, 1
525513; GLOBAL-NEXT: vspltisw 2, -3
526514; GLOBAL-NEXT: addis 3, 2, .LCPI16_0@toc@ha
527- ; GLOBAL-NEXT: xvcvsxwdp 2 , 34
528- ; GLOBAL-NEXT: xsmulsp 1 , 1, 0
529- ; GLOBAL-NEXT: xsmaddasp 2, 1 , 0
515+ ; GLOBAL-NEXT: xvcvsxwdp 3 , 34
516+ ; GLOBAL-NEXT: xsmulsp 2 , 1, 0
517+ ; GLOBAL-NEXT: xsmaddasp 3, 2 , 0
530518; GLOBAL-NEXT: lfs 0, .LCPI16_0@toc@l(3)
531- ; GLOBAL-NEXT: xsmulsp 0, 1, 0
532- ; GLOBAL-NEXT: xsmulsp 0, 0, 2
533- ; GLOBAL-NEXT: .LBB16_2:
534- ; GLOBAL-NEXT: fmr 1, 0
519+ ; GLOBAL-NEXT: xsmulsp 0, 2, 0
520+ ; GLOBAL-NEXT: xxlxor 2, 2, 2
521+ ; GLOBAL-NEXT: xsmulsp 0, 0, 3
522+ ; GLOBAL-NEXT: fsel 2, 1, 2, 0
523+ ; GLOBAL-NEXT: xsnegdp 1, 1
524+ ; GLOBAL-NEXT: fsel 1, 1, 2, 0
535525; GLOBAL-NEXT: blr
536526 %rt = call contract reassoc ninf afn float @llvm.sqrt.f32 (float %x )
537527 ret float %rt
0 commit comments