source_filename = "test"
target datalayout = "e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

@eax = internal unnamed_addr global i32 0, align 8
@ecx = internal unnamed_addr global i32 0, align 8
@edx = internal unnamed_addr global i32 0, align 8
@ebx = internal unnamed_addr global i32 0, align 8
@ebp = internal unnamed_addr global i32 0
@esi = internal unnamed_addr global i32 0
@edi = internal unnamed_addr global i32 0
@0 = external global i32
@global_var_1.1 = constant i8 -117

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %v0_9 = load i32, i32* @ebx, align 8
  %v0_a = load i32, i32* %esi.global-to-local, align 4
  %v0_b = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* @esi, align 4
  %v1_f = add i32 %arg1, 48
  %v2_f = inttoptr i32 %v1_f to i32*
  %v3_f = load i32, i32* %v2_f, align 4
  store i32 %v3_f, i32* @edi, align 4
  %v0_12 = load i32, i32* @eax, align 8
  store i32 %v0_12, i32* @ebx, align 8
  %v3_2e = call i32 @function_35(i32 %v0_b, i32 %v0_a, i32 %v0_9)
  store i32 %v3_2e, i32* @eax, align 8
  ret i32 %v3_2e
}

define i32 @function_30() local_unnamed_addr {
dec_label_pc_30:
  %ebp.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %st7.global-to-local = alloca x86_fp80, align 4
  %v1_30 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_30 = fsub x86_fp80 %v1_30, %v1_30
  store x86_fp80 %v3_30, x86_fp80* %st7.global-to-local, align 4
  %v0_32 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_32 = load i32, i32* %ebp.global-to-local, align 4
  %v3_32 = add i32 %v2_32, -8
  %v4_32 = fptrunc x86_fp80 %v3_30 to double
  %v5_32 = inttoptr i32 %v3_32 to double*
  store double %v4_32, double* %v5_32, align 4
  %v6_32 = add i3 %v0_32, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v6_32, i3* %fpu_stat_TOP.global-to-local, align 1
  %v7_32 = load i32, i32* @eax, align 8
  ret i32 %v7_32
}

define i32 @function_35(i32 %arg1, i32 %arg2, i32 %arg3) local_unnamed_addr {
dec_label_pc_35:
  %v1_35 = load i32, i32* @esi, align 4
  %v2_35 = add i32 %v1_35, 24
  %v3_35 = inttoptr i32 %v2_35 to double*
  %v4_35 = load double, double* %v3_35, align 4
  %tmp2 = call double @llvm.fabs.f64(double %v4_35)
  %v2_38 = fpext double %tmp2 to x86_fp80
  %tmp3 = call double @llvm.fabs.f64(double %v4_35)
  %v2_3d = fpext double %tmp3 to x86_fp80
  %v2_3f = load i32, i32* @edi, align 4
  %v3_3f = add i32 %v2_3f, -64
  %v4_3f = inttoptr i32 %v3_3f to double*
  %v5_3f = load double, double* %v4_3f, align 4
  %v6_3f = fpext double %v5_3f to x86_fp80
  %v7_3f = fadd x86_fp80 %v2_3d, %v6_3f
  %v4_42 = fmul x86_fp80 %v7_3f, %v2_38
  %v3_44 = add i32 %v2_3f, -72
  %v4_44 = inttoptr i32 %v3_44 to double*
  %v5_44 = load double, double* %v4_44, align 4
  %v6_44 = fpext double %v5_44 to x86_fp80
  %v7_44 = fmul x86_fp80 %v4_42, %v6_44
  %v2_47 = load i32, i32* @ebp, align 4
  %v3_47 = add i32 %v2_47, -16
  %v4_47 = fptrunc x86_fp80 %v7_44 to double
  %v5_47 = inttoptr i32 %v3_47 to double*
  store double %v4_47, double* %v5_47, align 4
  %v3_4a = call i32 @function_51(i32 ptrtoint (i32* @0 to i32), i32 ptrtoint (i32* @0 to i32), i32 ptrtoint (i32* @0 to i32))
  store i32 %v3_4a, i32* @eax, align 8
  ret i32 %v3_4a
}

define i32 @function_4c() local_unnamed_addr {
dec_label_pc_4c:
  %ebp.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %st7.global-to-local = alloca x86_fp80, align 4
  %v1_4c = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_4c = fsub x86_fp80 %v1_4c, %v1_4c
  store x86_fp80 %v3_4c, x86_fp80* %st7.global-to-local, align 4
  %v0_4e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_4e = load i32, i32* %ebp.global-to-local, align 4
  %v3_4e = add i32 %v2_4e, -16
  %v4_4e = fptrunc x86_fp80 %v3_4c to double
  %v5_4e = inttoptr i32 %v3_4e to double*
  store double %v4_4e, double* %v5_4e, align 4
  %v6_4e = add i3 %v0_4e, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v6_4e, i3* %fpu_stat_TOP.global-to-local, align 1
  %v7_4e = load i32, i32* @eax, align 8
  ret i32 %v7_4e
}

define i32 @function_51(i32 %arg1, i32 %arg2, i32 %arg3) local_unnamed_addr {
dec_label_pc_51:
  %v3_51 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_51 = fpext double %v3_51 to x86_fp80
  %v3_53 = fmul x86_fp80 %v4_51, %v4_51
  %v3_55 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_55 = fpext double %v3_55 to x86_fp80
  %v3_57 = fmul x86_fp80 %v4_55, %v4_55
  %v4_59 = fadd x86_fp80 %v3_53, %v3_57
  %v2_5b = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_59)
  %v2_5d = load i32, i32* @edi, align 4
  %v3_5d = add i32 %v2_5d, -48
  %v4_5d = inttoptr i32 %v3_5d to double*
  %v5_5d = load double, double* %v4_5d, align 4
  %v6_5d = fpext double %v5_5d to x86_fp80
  %v7_5d = fmul x86_fp80 %v2_5b, %v6_5d
  %v2_60 = load i32, i32* @ebp, align 4
  %v3_60 = add i32 %v2_60, -8
  %v4_60 = inttoptr i32 %v3_60 to double*
  %v5_60 = load double, double* %v4_60, align 4
  %v6_60 = fpext double %v5_60 to x86_fp80
  %v7_60 = fadd x86_fp80 %v7_5d, %v6_60
  %v3_63 = add i32 %v2_60, -16
  %v4_63 = inttoptr i32 %v3_63 to double*
  %v5_63 = load double, double* %v4_63, align 4
  %v6_63 = fpext double %v5_63 to x86_fp80
  %v7_63 = fadd x86_fp80 %v7_60, %v6_63
  %v4_68 = load double, double* bitcast (i32* @ebx to double*), align 8
  %v5_68 = fpext double %v4_68 to x86_fp80
  %v6_68 = fsub x86_fp80 %v5_68, %v7_63
  %tmp5 = bitcast double %v4_68 to i64
  %tmp6 = trunc i64 %tmp5 to i32
  %v3_6c = fptrunc x86_fp80 %v6_68 to double
  %v4_6c = inttoptr i32 %tmp6 to double*
  store double %v3_6c, double* %v4_6c, align 4
  %v0_70 = load i32, i32* @ebx, align 8
  store i32 %v0_70, i32* @eax, align 8
  store i32 %arg3, i32* @ebx, align 8
  ret i32 %v0_70
}

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.sqrt.f80(x86_fp80) #0

; Function Attrs: nounwind readnone speculatable
declare double @llvm.fabs.f64(double) #0

attributes #0 = { nounwind readnone speculatable }
