Home | History | Annotate | Download | only in PowerPC
      1 ; RUN: llc < %s -march=ppc64
      2 
      3 define i128 @__fixsfdi(float %a) {
      4 entry:
      5 	%a_addr = alloca float		; <float*> [#uses=4]
      6 	%retval = alloca i128, align 16		; <i128*> [#uses=2]
      7 	%tmp = alloca i128, align 16		; <i128*> [#uses=3]
      8 	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
      9 	store float %a, float* %a_addr
     10 	%tmp1 = load float* %a_addr, align 4		; <float> [#uses=1]
     11 	%tmp2 = fcmp olt float %tmp1, 0.000000e+00		; <i1> [#uses=1]
     12 	%tmp23 = zext i1 %tmp2 to i8		; <i8> [#uses=1]
     13 	%toBool = icmp ne i8 %tmp23, 0		; <i1> [#uses=1]
     14 	br i1 %toBool, label %bb, label %bb8
     15 bb:		; preds = %entry
     16 	%tmp4 = load float* %a_addr, align 4		; <float> [#uses=1]
     17 	%tmp5 = fsub float -0.000000e+00, %tmp4		; <float> [#uses=1]
     18 	%tmp6 = call i128 @__fixunssfDI( float %tmp5 ) nounwind 		; <i128> [#uses=1]
     19 	%tmp7 = sub i128 0, %tmp6		; <i128> [#uses=1]
     20 	store i128 %tmp7, i128* %tmp, align 16
     21 	br label %bb11
     22 bb8:		; preds = %entry
     23 	%tmp9 = load float* %a_addr, align 4		; <float> [#uses=1]
     24 	%tmp10 = call i128 @__fixunssfDI( float %tmp9 ) nounwind 		; <i128> [#uses=1]
     25 	store i128 %tmp10, i128* %tmp, align 16
     26 	br label %bb11
     27 bb11:		; preds = %bb8, %bb
     28 	%tmp12 = load i128* %tmp, align 16		; <i128> [#uses=1]
     29 	store i128 %tmp12, i128* %retval, align 16
     30 	br label %return
     31 return:		; preds = %bb11
     32 	%retval13 = load i128* %retval		; <i128> [#uses=1]
     33 	ret i128 %retval13
     34 }
     35 
     36 declare i128 @__fixunssfDI(float)
     37