@@ -20,6 +20,23 @@ entry:
2020 ret double %conv
2121}
2222
23+ define double @foo_d_ll_freeze (ppc_fp128 %a , ppc_fp128 %b ) #0 {
24+ ; CHECK-LABEL: foo_d_ll_freeze:
25+ ; CHECK: # %bb.0: # %entry
26+ ; CHECK-NEXT: fcpsgn 1, 3, 1
27+ ; CHECK-NEXT: blr
28+ ;
29+ ; CHECK-VSX-LABEL: foo_d_ll_freeze:
30+ ; CHECK-VSX: # %bb.0: # %entry
31+ ; CHECK-VSX-NEXT: xscpsgndp 1, 3, 1
32+ ; CHECK-VSX-NEXT: blr
33+ entry:
34+ %call = tail call ppc_fp128 @copysignl (ppc_fp128 %a , ppc_fp128 %b ) #0
35+ %freeze = freeze ppc_fp128 %call
36+ %conv = fptrunc ppc_fp128 %freeze to double
37+ ret double %conv
38+ }
39+
2340declare ppc_fp128 @copysignl (ppc_fp128 , ppc_fp128 ) #0
2441
2542define double @foo_dl (double %a , ppc_fp128 %b ) #0 {
@@ -46,9 +63,9 @@ define ppc_fp128 @foo_ll(double %a, ppc_fp128 %b) #0 {
4663; CHECK-NEXT: mflr 0
4764; CHECK-NEXT: stdu 1, -112(1)
4865; CHECK-NEXT: fmr 3, 2
49- ; CHECK-NEXT: addis 3, 2, .LCPI2_0 @toc@ha
66+ ; CHECK-NEXT: addis 3, 2, .LCPI3_0 @toc@ha
5067; CHECK-NEXT: std 0, 128(1)
51- ; CHECK-NEXT: lfs 2, .LCPI2_0 @toc@l(3)
68+ ; CHECK-NEXT: lfs 2, .LCPI3_0 @toc@l(3)
5269; CHECK-NEXT: bl copysignl
5370; CHECK-NEXT: nop
5471; CHECK-NEXT: addi 1, 1, 112
@@ -81,9 +98,9 @@ define ppc_fp128 @foo_ld(double %a, double %b) #0 {
8198; CHECK-NEXT: mflr 0
8299; CHECK-NEXT: stdu 1, -112(1)
83100; CHECK-NEXT: fmr 3, 2
84- ; CHECK-NEXT: addis 3, 2, .LCPI3_0 @toc@ha
101+ ; CHECK-NEXT: addis 3, 2, .LCPI4_0 @toc@ha
85102; CHECK-NEXT: std 0, 128(1)
86- ; CHECK-NEXT: lfs 2, .LCPI3_0 @toc@l(3)
103+ ; CHECK-NEXT: lfs 2, .LCPI4_0 @toc@l(3)
87104; CHECK-NEXT: bl copysignl
88105; CHECK-NEXT: nop
89106; CHECK-NEXT: addi 1, 1, 112
@@ -117,9 +134,9 @@ define ppc_fp128 @foo_lf(double %a, float %b) #0 {
117134; CHECK-NEXT: mflr 0
118135; CHECK-NEXT: stdu 1, -112(1)
119136; CHECK-NEXT: fmr 3, 2
120- ; CHECK-NEXT: addis 3, 2, .LCPI4_0 @toc@ha
137+ ; CHECK-NEXT: addis 3, 2, .LCPI5_0 @toc@ha
121138; CHECK-NEXT: std 0, 128(1)
122- ; CHECK-NEXT: lfs 2, .LCPI4_0 @toc@l(3)
139+ ; CHECK-NEXT: lfs 2, .LCPI5_0 @toc@l(3)
123140; CHECK-NEXT: bl copysignl
124141; CHECK-NEXT: nop
125142; CHECK-NEXT: addi 1, 1, 112
0 commit comments