

===================== parser output ===============================

let rec getx  v = 
   let x, y, z = v
   in x
in 
   let rec gety  v = 
      let x, y, z = v
      in y
   in 
      let rec getz  v = 
         let x, y, z = v
         in z
      in 
         let rec inprod  v1 v2 = ((((getx v1) *. (getx v2)) +. ((gety v1) *. (gety v2))) +. ((getz v1) *. (getz v2)))
         in (print_int (int_of_float (inprod (1., 2., 3.) (4., 5., 6.))))

===================== typing output ===============================

let rec getx  : ((float, float, float)) -> float v : (float, float, float) = 
   let x : float, y : float, z : float = v
   in x
in 
   let rec gety  : ((float, float, float)) -> float v : (float, float, float) = 
      let x : float, y : float, z : float = v
      in y
   in 
      let rec getz  : ((float, float, float)) -> float v : (float, float, float) = 
         let x : float, y : float, z : float = v
         in z
      in 
         let rec inprod  : ((float, float, float), (float, float, float)) -> float v1 : (float, float, float) v2 : (float, float, float) = ((((getx v1) *. (getx v2)) +. ((gety v1) *. (gety v2))) +. ((getz v1) *. (getz v2)))
         in (print_int (int_of_float (inprod (1., 2., 3.) (4., 5., 6.))))

===================== knormal output ===============================

let getx  : ((float, float, float)) -> floatv : (float, float, float) = 
   let x : float, y : float, z : float = v in
   x
in 
   let gety  : ((float, float, float)) -> floatv : (float, float, float) = 
      let x : float, y : float, z : float = v in
      y
   in 
      let getz  : ((float, float, float)) -> floatv : (float, float, float) = 
         let x : float, y : float, z : float = v in
         z
      in 
         let inprod  : ((float, float, float), (float, float, float)) -> floatv1 : (float, float, float) v2 : (float, float, float) = 
            let Td17  : float = let Td13  : float = let Td11  : float = (getx v1) in
            
            let Td12  : float = (getx v2) in
            (Td11 *. Td12) in
            
            let Td16  : float = let Td14  : float = (gety v1) in
            
            let Td15  : float = (gety v2) in
            (Td14 *. Td15) in
            (Td13 +. Td16) in
            
            let Td20  : float = let Td18  : float = (getz v1) in
            
            let Td19  : float = (getz v2) in
            (Td18 *. Td19) in
            (Td17 +. Td20)
         in 
            let Ti10  : int = let Td9  : float = let Tt4  : (float, float, float) = let Td1  : float = 1. in
            
            let Td2  : float = 2. in
            
            let Td3  : float = 3. in
            (Td1, Td2, Td3) in
            
            let Tt8  : (float, float, float) = let Td5  : float = 4. in
            
            let Td6  : float = 5. in
            
            let Td7  : float = 6. in
            (Td5, Td6, Td7) in
            (inprod Tt4 Tt8) in
            EXTERN(int_of_float Td9) in
            EXTERN(print_int Ti10)

===================== alpha output ===============================

let getx_21  : ((float, float, float)) -> floatv_22 : (float, float, float) = 
   let x_56 : float, y_57 : float, z_58 : float = v_22 in
   x_56
in 
   let gety_23  : ((float, float, float)) -> floatv_24 : (float, float, float) = 
      let x_53 : float, y_54 : float, z_55 : float = v_24 in
      y_54
   in 
      let getz_25  : ((float, float, float)) -> floatv_26 : (float, float, float) = 
         let x_50 : float, y_51 : float, z_52 : float = v_26 in
         z_52
      in 
         let inprod_27  : ((float, float, float), (float, float, float)) -> floatv1_28 : (float, float, float) v2_29 : (float, float, float) = 
            let Td17_40  : float = let Td13_44  : float = let Td11_48  : float = (getx_21 v1_28) in
            
            let Td12_49  : float = (getx_21 v2_29) in
            (Td11_48 *. Td12_49) in
            
            let Td16_45  : float = let Td14_46  : float = (gety_23 v1_28) in
            
            let Td15_47  : float = (gety_23 v2_29) in
            (Td14_46 *. Td15_47) in
            (Td13_44 +. Td16_45) in
            
            let Td20_41  : float = let Td18_42  : float = (getz_25 v1_28) in
            
            let Td19_43  : float = (getz_25 v2_29) in
            (Td18_42 *. Td19_43) in
            (Td17_40 +. Td20_41)
         in 
            let Ti10_30  : int = let Td9_31  : float = let Tt4_32  : (float, float, float) = let Td1_37  : float = 1. in
            
            let Td2_38  : float = 2. in
            
            let Td3_39  : float = 3. in
            (Td1_37, Td2_38, Td3_39) in
            
            let Tt8_33  : (float, float, float) = let Td5_34  : float = 4. in
            
            let Td6_35  : float = 5. in
            
            let Td7_36  : float = 6. in
            (Td5_34, Td6_35, Td7_36) in
            (inprod_27 Tt4_32 Tt8_33) in
            EXTERN(int_of_float Td9_31) in
            EXTERN(print_int Ti10_30)

===================== simplify output ===============================

let getx_21  : ((float, float, float)) -> floatv_22 : (float, float, float) = 
   let x_56 : float, y_57 : float, z_58 : float = v_22 in
   x_56
in 
   let gety_23  : ((float, float, float)) -> floatv_24 : (float, float, float) = 
      let x_53 : float, y_54 : float, z_55 : float = v_24 in
      y_54
   in 
      let getz_25  : ((float, float, float)) -> floatv_26 : (float, float, float) = 
         let x_50 : float, y_51 : float, z_52 : float = v_26 in
         z_52
      in 
         let inprod_27  : ((float, float, float), (float, float, float)) -> floatv1_28 : (float, float, float) v2_29 : (float, float, float) = 
            let Td11_48  : float = (getx_21 v1_28) in
            
            let Td12_49  : float = (getx_21 v2_29) in
            
            let Td13_44  : float = (Td11_48 *. Td12_49) in
            
            let Td14_46  : float = (gety_23 v1_28) in
            
            let Td15_47  : float = (gety_23 v2_29) in
            
            let Td16_45  : float = (Td14_46 *. Td15_47) in
            
            let Td17_40  : float = (Td13_44 +. Td16_45) in
            
            let Td18_42  : float = (getz_25 v1_28) in
            
            let Td19_43  : float = (getz_25 v2_29) in
            
            let Td20_41  : float = (Td18_42 *. Td19_43) in
            (Td17_40 +. Td20_41)
         in 
            let Td1_37  : float = 1. in
            
            let Td2_38  : float = 2. in
            
            let Td3_39  : float = 3. in
            
            let Tt4_32  : (float, float, float) = (Td1_37, Td2_38, Td3_39) in
            
            let Td5_34  : float = 4. in
            
            let Td6_35  : float = 5. in
            
            let Td7_36  : float = 6. in
            
            let Tt8_33  : (float, float, float) = (Td5_34, Td6_35, Td7_36) in
            
            let Td9_31  : float = (inprod_27 Tt4_32 Tt8_33) in
            
            let Ti10_30  : int = EXTERN(int_of_float Td9_31) in
            EXTERN(print_int Ti10_30)

===================== closure output ===============================
let LABEL(getx_21) [] v_22 : (float, float, float) = 
   let x_56 : float, y_57 : float, z_58 : float = v_22 in
   x_56
in

let LABEL(gety_23) [] v_24 : (float, float, float) = 
   let x_53 : float, y_54 : float, z_55 : float = v_24 in
   y_54
in

let LABEL(getz_25) [] v_26 : (float, float, float) = 
   let x_50 : float, y_51 : float, z_52 : float = v_26 in
   z_52
in

let LABEL(inprod_27) [] v1_28 : (float, float, float), v2_29 : (float, float, float) = 
   let Td11_48  : float = APPLY_DIRECT(LABEL(getx_21) v1_28) in
   
   let Td12_49  : float = APPLY_DIRECT(LABEL(getx_21) v2_29) in
   
   let Td13_44  : float = (Td11_48 *. Td12_49) in
   
   let Td14_46  : float = APPLY_DIRECT(LABEL(gety_23) v1_28) in
   
   let Td15_47  : float = APPLY_DIRECT(LABEL(gety_23) v2_29) in
   
   let Td16_45  : float = (Td14_46 *. Td15_47) in
   
   let Td17_40  : float = (Td13_44 +. Td16_45) in
   
   let Td18_42  : float = APPLY_DIRECT(LABEL(getz_25) v1_28) in
   
   let Td19_43  : float = APPLY_DIRECT(LABEL(getz_25) v2_29) in
   
   let Td20_41  : float = (Td18_42 *. Td19_43) in
   (Td17_40 +. Td20_41)
in

let Td1_37  : float = 1. in

let Td2_38  : float = 2. in

let Td3_39  : float = 3. in

let Tt4_32  : (float, float, float) = (Td1_37, Td2_38, Td3_39) in

let Td5_34  : float = 4. in

let Td6_35  : float = 5. in

let Td7_36  : float = 6. in

let Tt8_33  : (float, float, float) = (Td5_34, Td6_35, Td7_36) in

let Td9_31  : float = APPLY_DIRECT(LABEL(inprod_27) Tt4_32 Tt8_33) in

let Ti10_30  : int = APPLY_DIRECT(LABEL(min_caml_int_of_float) Td9_31) in
APPLY_DIRECT(LABEL(min_caml_print_int) Ti10_30)

===================== virtual  output ===============================
==== Data Segment =======
l_73:	! 6.000000
	.long	0x0
	.long	0x40180000
l_71:	! 5.000000
	.long	0x0
	.long	0x40140000
l_69:	! 4.000000
	.long	0x0
	.long	0x40100000
l_63:	! 3.000000
	.long	0x0
	.long	0x40080000
l_61:	! 2.000000
	.long	0x0
	.long	0x40000000
l_59:	! 1.000000
	.long	0x0
	.long	0x3ff00000
==== Function Declarations =======

LABEL(getx_21) (arg=(v_22), farg=())

LET(x_56, LdDF(v_22, 0), 
   ANSWER(fmovd(x_56)))

LABEL(gety_23) (arg=(v_24), farg=())

LET(y_54, LdDF(v_24, 8), 
   ANSWER(fmovd(y_54)))

LABEL(getz_25) (arg=(v_26), farg=())

LET(z_52, LdDF(v_26, 16), 
   ANSWER(fmovd(z_52)))

LABEL(inprod_27) (arg=(v1_28, v2_29), farg=())

LET(Td11_48, CallDirect(LABEL(getx_21), args=(v1_28), farg=()), 
   LET(Td12_49, CallDirect(LABEL(getx_21), args=(v2_29), farg=()), 
      LET(Td13_44, fmul(Td11_48, Td12_49), 
         LET(Td14_46, CallDirect(LABEL(gety_23), args=(v1_28), farg=()), 
            LET(Td15_47, CallDirect(LABEL(gety_23), args=(v2_29), farg=()), 
               LET(Td16_45, fmul(Td14_46, Td15_47), 
                  LET(Td17_40, fadd(Td13_44, Td16_45), 
                     LET(Td18_42, CallDirect(LABEL(getz_25), args=(v1_28), farg=()), 
                        LET(Td19_43, CallDirect(LABEL(getz_25), args=(v2_29), farg=()), 
                           LET(Td20_41, fmul(Td18_42, Td19_43), 
                              ANSWER(fadd(Td17_40, Td20_41))))))))))))
==== Expression =======

LET(l_60, set(LABEL(l_59)), 
   LET(Td1_37, LdDF(l_60, 0), 
      LET(l_62, set(LABEL(l_61)), 
         LET(Td2_38, LdDF(l_62, 0), 
            LET(l_64, set(LABEL(l_63)), 
               LET(Td3_39, LdDF(l_64, 0), 
                  LET(t_65, mov(%i1), 
                     LET(%i1, add(%i1, 24), 
                        LET(Tu68, StDF(Td3_39, t_65, 16), 
                           LET(Tu67, StDF(Td2_38, t_65, 8), 
                              LET(Tu66, StDF(Td1_37, t_65, 0), 
                                 LET(Tt4_32, mov(t_65), 
                                    LET(l_70, set(LABEL(l_69)), 
                                       LET(Td5_34, LdDF(l_70, 0), 
                                          LET(l_72, set(LABEL(l_71)), 
                                             LET(Td6_35, LdDF(l_72, 0), 
                                                LET(l_74, set(LABEL(l_73)), 
                                                   LET(Td7_36, LdDF(l_74, 0), 
                                                      LET(t_75, mov(%i1), 
                                                         LET(%i1, add(%i1, 24), 
                                                            LET(Tu78, StDF(Td7_36, t_75, 16), 
                                                               LET(Tu77, StDF(Td6_35, t_75, 8), 
                                                                  LET(Tu76, StDF(Td5_34, t_75, 0), 
                                                                     LET(Tt8_33, mov(t_75), 
                                                                        LET(Td9_31, CallDirect(LABEL(inprod_27), args=(Tt4_32, Tt8_33), farg=()), 
                                                                           LET(Ti10_30, CallDirect(LABEL(min_caml_int_of_float), args=(), farg=(Td9_31)), 
                                                                              ANSWER(CallDirect(LABEL(min_caml_print_int), args=(Ti10_30), farg=()))))))))))))))))))))))))))))


=====================  simm13  output ===============================
==== Data Segment =======
l_73:	! 6.000000
	.long	0x0
	.long	0x40180000
l_71:	! 5.000000
	.long	0x0
	.long	0x40140000
l_69:	! 4.000000
	.long	0x0
	.long	0x40100000
l_63:	! 3.000000
	.long	0x0
	.long	0x40080000
l_61:	! 2.000000
	.long	0x0
	.long	0x40000000
l_59:	! 1.000000
	.long	0x0
	.long	0x3ff00000
==== Function Declarations =======

LABEL(getx_21) (arg=(v_22), farg=())

LET(x_56, LdDF(v_22, 0), 
   ANSWER(fmovd(x_56)))

LABEL(gety_23) (arg=(v_24), farg=())

LET(y_54, LdDF(v_24, 8), 
   ANSWER(fmovd(y_54)))

LABEL(getz_25) (arg=(v_26), farg=())

LET(z_52, LdDF(v_26, 16), 
   ANSWER(fmovd(z_52)))

LABEL(inprod_27) (arg=(v1_28, v2_29), farg=())

LET(Td11_48, CallDirect(LABEL(getx_21), args=(v1_28), farg=()), 
   LET(Td12_49, CallDirect(LABEL(getx_21), args=(v2_29), farg=()), 
      LET(Td13_44, fmul(Td11_48, Td12_49), 
         LET(Td14_46, CallDirect(LABEL(gety_23), args=(v1_28), farg=()), 
            LET(Td15_47, CallDirect(LABEL(gety_23), args=(v2_29), farg=()), 
               LET(Td16_45, fmul(Td14_46, Td15_47), 
                  LET(Td17_40, fadd(Td13_44, Td16_45), 
                     LET(Td18_42, CallDirect(LABEL(getz_25), args=(v1_28), farg=()), 
                        LET(Td19_43, CallDirect(LABEL(getz_25), args=(v2_29), farg=()), 
                           LET(Td20_41, fmul(Td18_42, Td19_43), 
                              ANSWER(fadd(Td17_40, Td20_41))))))))))))
==== Expression =======

LET(l_60, set(LABEL(l_59)), 
   LET(Td1_37, LdDF(l_60, 0), 
      LET(l_62, set(LABEL(l_61)), 
         LET(Td2_38, LdDF(l_62, 0), 
            LET(l_64, set(LABEL(l_63)), 
               LET(Td3_39, LdDF(l_64, 0), 
                  LET(t_65, mov(%i1), 
                     LET(%i1, add(%i1, 24), 
                        LET(Tu68, StDF(Td3_39, t_65, 16), 
                           LET(Tu67, StDF(Td2_38, t_65, 8), 
                              LET(Tu66, StDF(Td1_37, t_65, 0), 
                                 LET(Tt4_32, mov(t_65), 
                                    LET(l_70, set(LABEL(l_69)), 
                                       LET(Td5_34, LdDF(l_70, 0), 
                                          LET(l_72, set(LABEL(l_71)), 
                                             LET(Td6_35, LdDF(l_72, 0), 
                                                LET(l_74, set(LABEL(l_73)), 
                                                   LET(Td7_36, LdDF(l_74, 0), 
                                                      LET(t_75, mov(%i1), 
                                                         LET(%i1, add(%i1, 24), 
                                                            LET(Tu78, StDF(Td7_36, t_75, 16), 
                                                               LET(Tu77, StDF(Td6_35, t_75, 8), 
                                                                  LET(Tu76, StDF(Td5_34, t_75, 0), 
                                                                     LET(Tt8_33, mov(t_75), 
                                                                        LET(Td9_31, CallDirect(LABEL(inprod_27), args=(Tt4_32, Tt8_33), farg=()), 
                                                                           LET(Ti10_30, CallDirect(LABEL(min_caml_int_of_float), args=(), farg=(Td9_31)), 
                                                                              ANSWER(CallDirect(LABEL(min_caml_print_int), args=(Ti10_30), farg=()))))))))))))))))))))))))))))


===================== RegAlloc output ===============================
==== Data Segment =======
l_73:	! 6.000000
	.long	0x0
	.long	0x40180000
l_71:	! 5.000000
	.long	0x0
	.long	0x40140000
l_69:	! 4.000000
	.long	0x0
	.long	0x40100000
l_63:	! 3.000000
	.long	0x0
	.long	0x40080000
l_61:	! 2.000000
	.long	0x0
	.long	0x40000000
l_59:	! 1.000000
	.long	0x0
	.long	0x3ff00000
==== Function Declarations =======

LABEL(getx_21) (arg=(%i2), farg=())

LET(%f0, LdDF(%i2, 0), 
   ANSWER(fmovd(%f0)))

LABEL(gety_23) (arg=(%i2), farg=())

LET(%f0, LdDF(%i2, 8), 
   ANSWER(fmovd(%f0)))

LABEL(getz_25) (arg=(%i2), farg=())

LET(%f0, LdDF(%i2, 16), 
   ANSWER(fmovd(%f0)))

LABEL(inprod_27) (arg=(%i2, %i3), farg=())

LET(%g0, save(%i2, v1_28), 
   LET(%g0, save(%i3, v2_29), 
      LET(%f0, CallDirect(LABEL(getx_21), args=(%i2), farg=()), 
         LET(%f0, fmovd(%f0), 
            LET(%g0, save(%f0, Td11_48), 
               LET(%i2, restore(v2_29), 
                  LET(%f0, CallDirect(LABEL(getx_21), args=(%i2), farg=()), 
                     LET(%f0, fmovd(%f0), 
                        LET(%f2, restore(Td11_48), 
                           LET(%f0, fmul(%f2, %f0), 
                              LET(%g0, save(%f0, Td13_44), 
                                 LET(%i2, restore(v1_28), 
                                    LET(%f0, CallDirect(LABEL(gety_23), args=(%i2), farg=()), 
                                       LET(%f0, fmovd(%f0), 
                                          LET(%g0, save(%f0, Td14_46), 
                                             LET(%i2, restore(v2_29), 
                                                LET(%f0, CallDirect(LABEL(gety_23), args=(%i2), farg=()), 
                                                   LET(%f0, fmovd(%f0), 
                                                      LET(%f2, restore(Td14_46), 
                                                         LET(%f0, fmul(%f2, %f0), 
                                                            LET(%f2, restore(Td13_44), 
                                                               LET(%f0, fadd(%f2, %f0), 
                                                                  LET(%g0, save(%f0, Td17_40), 
                                                                     LET(%i2, restore(v1_28), 
                                                                        LET(%f0, CallDirect(LABEL(getz_25), args=(%i2), farg=()), 
                                                                           LET(%f0, fmovd(%f0), 
                                                                              LET(%g0, save(%f0, Td18_42), 
                                                                                 LET(%i2, restore(v2_29), 
                                                                                    LET(%f0, CallDirect(LABEL(getz_25), args=(%i2), farg=()), 
                                                                                       LET(%f0, fmovd(%f0), 
                                                                                          LET(%f2, restore(Td18_42), 
                                                                                             LET(%f0, fmul(%f2, %f0), 
                                                                                                LET(%f2, restore(Td17_40), 
                                                                                                   ANSWER(fadd(%f2, %f0)))))))))))))))))))))))))))))))))))
==== Expression =======

LET(%i2, set(LABEL(l_59)), 
   LET(%f0, LdDF(%i2, 0), 
      LET(%i2, set(LABEL(l_61)), 
         LET(%f2, LdDF(%i2, 0), 
            LET(%i2, set(LABEL(l_63)), 
               LET(%f4, LdDF(%i2, 0), 
                  LET(%i2, mov(%i1), 
                     LET(%i1, add(%i1, 24), 
                        LET(%g0, StDF(%f4, %i2, 16), 
                           LET(%g0, StDF(%f2, %i2, 8), 
                              LET(%g0, StDF(%f0, %i2, 0), 
                                 LET(%i2, mov(%i2), 
                                    LET(%i3, set(LABEL(l_69)), 
                                       LET(%f0, LdDF(%i3, 0), 
                                          LET(%i3, set(LABEL(l_71)), 
                                             LET(%f2, LdDF(%i3, 0), 
                                                LET(%i3, set(LABEL(l_73)), 
                                                   LET(%f4, LdDF(%i3, 0), 
                                                      LET(%i3, mov(%i1), 
                                                         LET(%i1, add(%i1, 24), 
                                                            LET(%g0, StDF(%f4, %i3, 16), 
                                                               LET(%g0, StDF(%f2, %i3, 8), 
                                                                  LET(%g0, StDF(%f0, %i3, 0), 
                                                                     LET(%i3, mov(%i3), 
                                                                        LET(%f0, CallDirect(LABEL(inprod_27), args=(%i2, %i3), farg=()), 
                                                                           LET(%i2, CallDirect(LABEL(min_caml_int_of_float), args=(), farg=(%f0)), 
                                                                              ANSWER(CallDirect(LABEL(min_caml_print_int), args=(%i2), farg=()))))))))))))))))))))))))))))


===================== Emit output ===============================
.section	".rodata"
.align	8
l_73:	! 6.000000
	.long	0x0
	.long	0x40180000
l_71:	! 5.000000
	.long	0x0
	.long	0x40140000
l_69:	! 4.000000
	.long	0x0
	.long	0x40100000
l_63:	! 3.000000
	.long	0x0
	.long	0x40080000
l_61:	! 2.000000
	.long	0x0
	.long	0x40000000
l_59:	! 1.000000
	.long	0x0
	.long	0x3ff00000
.section	".text"
getx_21:
	ldd	[%i2 + 0], %f0
	retl
	nop
gety_23:
	ldd	[%i2 + 8], %f0
	retl
	nop
getz_25:
	ldd	[%i2 + 16], %f0
	retl
	nop
inprod_27:
	st	%i2, [%i0 + 0]
	st	%i3, [%i0 + 4]
	st	%o7, [%i0 + 12]
	call	getx_21
	add	%i0, 16, %i0	! delay slot
	sub	%i0, 16, %i0
	ld	[%i0 + 12], %o7
	std	%f0, [%i0 + 8]
	ld	[%i0 + 4], %i2
	st	%o7, [%i0 + 20]
	call	getx_21
	add	%i0, 24, %i0	! delay slot
	sub	%i0, 24, %i0
	ld	[%i0 + 20], %o7
	ldd	[%i0 + 8], %f2
	fmuld	%f2, %f0, %f0
	std	%f0, [%i0 + 16]
	ld	[%i0 + 0], %i2
	st	%o7, [%i0 + 28]
	call	gety_23
	add	%i0, 32, %i0	! delay slot
	sub	%i0, 32, %i0
	ld	[%i0 + 28], %o7
	std	%f0, [%i0 + 24]
	ld	[%i0 + 4], %i2
	st	%o7, [%i0 + 36]
	call	gety_23
	add	%i0, 40, %i0	! delay slot
	sub	%i0, 40, %i0
	ld	[%i0 + 36], %o7
	ldd	[%i0 + 24], %f2
	fmuld	%f2, %f0, %f0
	ldd	[%i0 + 16], %f2
	faddd	%f2, %f0, %f0
	std	%f0, [%i0 + 32]
	ld	[%i0 + 0], %i2
	st	%o7, [%i0 + 44]
	call	getz_25
	add	%i0, 48, %i0	! delay slot
	sub	%i0, 48, %i0
	ld	[%i0 + 44], %o7
	std	%f0, [%i0 + 40]
	ld	[%i0 + 4], %i2
	st	%o7, [%i0 + 52]
	call	getz_25
	add	%i0, 56, %i0	! delay slot
	sub	%i0, 56, %i0
	ld	[%i0 + 52], %o7
	ldd	[%i0 + 40], %f2
	fmuld	%f2, %f0, %f0
	ldd	[%i0 + 32], %f2
	faddd	%f2, %f0, %f0
	retl
	nop
.global	min_caml_start
min_caml_start:
	save	%sp, -112, %sp
	set	l_59, %i2
	ldd	[%i2 + 0], %f0
	set	l_61, %i2
	ldd	[%i2 + 0], %f2
	set	l_63, %i2
	ldd	[%i2 + 0], %f4
	mov	%i1, %i2
	add	%i1, 24, %i1
	std	%f4, [%i2 + 16]
	std	%f2, [%i2 + 8]
	std	%f0, [%i2 + 0]
	set	l_69, %i3
	ldd	[%i3 + 0], %f0
	set	l_71, %i3
	ldd	[%i3 + 0], %f2
	set	l_73, %i3
	ldd	[%i3 + 0], %f4
	mov	%i1, %i3
	add	%i1, 24, %i1
	std	%f4, [%i3 + 16]
	std	%f2, [%i3 + 8]
	std	%f0, [%i3 + 0]
	st	%o7, [%i0 + 4]
	call	inprod_27
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	st	%o7, [%i0 + 4]
	call	min_caml_int_of_float
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	st	%o7, [%i0 + 4]
	call	min_caml_print_int
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	ret
	restore
