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

@edi = internal unnamed_addr global i32 0, align 8

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %eax.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_0 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_0 = load i32, i32* %esi.global-to-local, align 4
  %v2_0 = add i32 %v1_0, -104
  %v3_0 = inttoptr i32 %v2_0 to double*
  %v4_0 = load double, double* %v3_0, align 4
  %v5_0 = fpext double %v4_0 to x86_fp80
  store x86_fp80 %v5_0, x86_fp80* %st7.global-to-local, align 4
  %v2_3 = load i32, i32* @edi, align 8
  %v3_3 = add i32 %v2_3, -32
  %v4_3 = inttoptr i32 %v3_3 to double*
  %v5_3 = load double, double* %v4_3, align 4
  %v6_3 = fpext double %v5_3 to x86_fp80
  %v7_3 = fadd x86_fp80 %v5_0, %v6_3
  store x86_fp80 %v7_3, x86_fp80* %st7.global-to-local, align 4
  %v2_6 = add i32 %v1_0, -112
  %v3_6 = inttoptr i32 %v2_6 to double*
  %v4_6 = load double, double* %v3_6, align 4
  %v5_6 = fpext double %v4_6 to x86_fp80
  %v6_6 = add i3 %v0_0, -2
  store x86_fp80 %v5_6, x86_fp80* %st6.global-to-local, align 4
  %v3_9 = add i32 %v2_3, -24
  %v4_9 = inttoptr i32 %v3_9 to double*
  %v5_9 = load double, double* %v4_9, align 4
  %v6_9 = fpext double %v5_9 to x86_fp80
  %v7_9 = fadd x86_fp80 %v5_6, %v6_9
  store x86_fp80 %v7_9, x86_fp80* %st6.global-to-local, align 4
  %v2_c = add i32 %v1_0, -120
  %v3_c = inttoptr i32 %v2_c to double*
  %v4_c = load double, double* %v3_c, align 4
  %v5_c = fpext double %v4_c to x86_fp80
  %v3_f = add i32 %v2_3, -16
  %v4_f = inttoptr i32 %v3_f to double*
  %v5_f = load double, double* %v4_f, align 4
  %v6_f = fpext double %v5_f to x86_fp80
  %v7_f = fadd x86_fp80 %v5_c, %v6_f
  %v3_14 = add i32 %v2_3, -60
  %v4_14 = inttoptr i32 %v3_14 to float*
  %v5_14 = load float, float* %v4_14, align 4
  %v6_14 = fpext float %v5_14 to x86_fp80
  %v7_14 = fmul x86_fp80 %v7_f, %v6_14
  %v3_19 = add i32 %v2_3, -64
  %v4_19 = inttoptr i32 %v3_19 to float*
  %v5_19 = load float, float* %v4_19, align 4
  %v6_19 = fpext float %v5_19 to x86_fp80
  %v7_19 = fmul x86_fp80 %v7_9, %v6_19
  %v4_1c = fadd x86_fp80 %v7_14, %v7_19
  %v3_20 = add i32 %v2_3, -68
  %v4_20 = inttoptr i32 %v3_20 to float*
  %v5_20 = load float, float* %v4_20, align 4
  %v6_20 = fpext float %v5_20 to x86_fp80
  %v7_20 = fmul x86_fp80 %v7_3, %v6_20
  %v4_23 = fadd x86_fp80 %v7_20, %v4_1c
  %v3_27 = add i32 %v2_3, -36
  %v4_27 = inttoptr i32 %v3_27 to float*
  %v5_27 = load float, float* %v4_27, align 4
  %v6_27 = fpext float %v5_27 to x86_fp80
  %v7_27 = fmul x86_fp80 %v7_f, %v6_27
  %v3_2c = add i32 %v2_3, -40
  %v4_2c = inttoptr i32 %v3_2c to float*
  %v5_2c = load float, float* %v4_2c, align 4
  %v6_2c = fpext float %v5_2c to x86_fp80
  %v7_2c = fmul x86_fp80 %v7_9, %v6_2c
  %v4_2f = fadd x86_fp80 %v7_27, %v7_2c
  %v3_33 = add i32 %v2_3, -44
  %v4_33 = inttoptr i32 %v3_33 to float*
  %v5_33 = load float, float* %v4_33, align 4
  %v6_33 = fpext float %v5_33 to x86_fp80
  %v7_33 = fmul x86_fp80 %v7_3, %v6_33
  %v4_36 = fadd x86_fp80 %v4_2f, %v7_33
  %v3_3a = add i32 %v2_3, -48
  %v4_3a = inttoptr i32 %v3_3a to float*
  %v5_3a = load float, float* %v4_3a, align 4
  %v6_3a = fpext float %v5_3a to x86_fp80
  %v7_3a = fmul x86_fp80 %v7_f, %v6_3a
  store x86_fp80 %v7_3a, x86_fp80* %st6.global-to-local, align 4
  %v3_3f = add i32 %v2_3, -52
  %v4_3f = inttoptr i32 %v3_3f to float*
  %v5_3f = load float, float* %v4_3f, align 4
  %v6_3f = fpext float %v5_3f to x86_fp80
  %v7_3f = fmul x86_fp80 %v7_9, %v6_3f
  %v4_42 = fadd x86_fp80 %v7_3a, %v7_3f
  store x86_fp80 %v4_42, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_23, x86_fp80* %st7.global-to-local, align 4
  %v3_46 = add i32 %v2_3, -56
  %v4_46 = inttoptr i32 %v3_46 to float*
  %v5_46 = load float, float* %v4_46, align 4
  %v6_46 = fpext float %v5_46 to x86_fp80
  %v7_46 = fmul x86_fp80 %v7_3, %v6_46
  %v4_49 = fadd x86_fp80 %v4_42, %v7_46
  store x86_fp80 %v4_49, x86_fp80* %st6.global-to-local, align 4
  %v4_4b = fptrunc x86_fp80 %v4_36 to double
  store double %v4_4b, double* %v3_c, align 4
  %v1_4e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_4e = fptrunc x86_fp80 %v1_4e to double
  store double %v4_4e, double* %v3_6, align 4
  %v1_51 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_51 = fptrunc x86_fp80 %v1_51 to double
  store double %v4_51, double* %v3_0, align 4
  %v4_57 = load double, double* %v3_c, align 4
  %v5_57 = fpext double %v4_57 to x86_fp80
  %v3_5a = fmul x86_fp80 %v5_57, %v5_57
  store x86_fp80 %v3_5a, x86_fp80* %st7.global-to-local, align 4
  %v4_5c = load double, double* %v3_6, align 4
  %v5_5c = fpext double %v4_5c to x86_fp80
  %v3_5f = fmul x86_fp80 %v5_5c, %v5_5c
  store x86_fp80 %v3_5f, x86_fp80* %st6.global-to-local, align 4
  %v4_61 = fadd x86_fp80 %v3_5a, %v3_5f
  %v2_63 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_61)
  store x86_fp80 %v2_63, x86_fp80* %st7.global-to-local, align 4
  %v2_65 = load i32, i32* @edi, align 8
  %v3_65 = add i32 %v2_65, -92
  %v4_65 = inttoptr i32 %v3_65 to double*
  %v5_65 = load double, double* %v4_65, align 4
  %v6_65 = fpext double %v5_65 to x86_fp80
  %v7_65 = fmul x86_fp80 %v2_63, %v6_65
  store x86_fp80 %v7_65, x86_fp80* %st7.global-to-local, align 4
  %v2_6c = add i32 %v2_65, -84
  %v3_6c = inttoptr i32 %v2_6c to double*
  %v4_6c = load double, double* %v3_6c, align 4
  %v5_6c = fpext double %v4_6c to x86_fp80
  store i3 %v6_6, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_65, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v5_6c, x86_fp80* %st7.global-to-local, align 4
  %v2_71 = call i32 @__asm_fyl2x(x86_fp80 %v7_65)
  store i32 %v2_71, i32* %eax.global-to-local, align 4
  %v4_73 = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_73 = fpext double %v4_73 to x86_fp80
  %v6_73 = fmul x86_fp80 %v7_65, %v5_73
  store x86_fp80 %v6_73, x86_fp80* %st6.global-to-local, align 4
  %v0_75 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_78 = load i32, i32* %esi.global-to-local, align 4
  %v2_78 = add i32 %v1_78, -112
  %v3_78 = inttoptr i32 %v2_78 to double*
  %v4_78 = load double, double* %v3_78, align 4
  %v5_78 = fpext double %v4_78 to x86_fp80
  store x86_fp80 %v5_78, x86_fp80* %st6.global-to-local, align 4
  %v2_7b = add i32 %v1_78, -120
  %v3_7b = inttoptr i32 %v2_7b to double*
  %v4_7b = load double, double* %v3_7b, align 4
  %v5_7b = fpext double %v4_7b to x86_fp80
  %v6_7b = add i3 %v0_75, -1
  store i3 %v6_7b, i3* %fpu_stat_TOP.global-to-local, align 1
  %v5_7e = call i32 @__asm_fpatan(x86_fp80 %v6_73)
  store i32 %v5_7e, i32* %eax.global-to-local, align 4
  %v4_80 = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_80 = fpext double %v4_80 to x86_fp80
  %v6_80 = fmul x86_fp80 %v5_7b, %v5_80
  %tmp238 = bitcast double %v4_80 to i64
  %tmp239 = trunc i64 %tmp238 to i32
  %v2_86 = add i32 %tmp239, -72
  %v3_86 = inttoptr i32 %v2_86 to i32*
  %v4_86 = load i32, i32* %v3_86, align 4
  %v5_86 = sitofp i32 %v4_86 to x86_fp80
  %v10_89 = fmul x86_fp80 %v6_73, %v5_86
  %v2_8c = add i32 %tmp239, -76
  %v3_8c = inttoptr i32 %v2_8c to i32*
  %v4_8c = load i32, i32* %v3_8c, align 4
  %v5_8c = sitofp i32 %v4_8c to x86_fp80
  %v7_8f = fmul x86_fp80 %v6_80, %v5_8c
  %v4_93 = fadd x86_fp80 %v10_89, %v7_8f
  %v2_97 = call x86_fp80 @llvm.round.f80(x86_fp80 %v4_93)
  %v4_99 = fsub x86_fp80 %v2_97, %v4_93
  %v3_9b = add i32 %tmp239, 8
  %v4_9b = inttoptr i32 %v3_9b to double*
  %v5_9b = load double, double* %v4_9b, align 4
  %v6_9b = fpext double %v5_9b to x86_fp80
  %v7_9b = fmul x86_fp80 %v4_99, %v6_9b
  %v2_9e = load i32, i32* %esi.global-to-local, align 4
  %v3_9e = add i32 %v2_9e, -120
  %v4_9e = fptrunc x86_fp80 %v7_9b to double
  %v5_9e = inttoptr i32 %v3_9e to double*
  store double %v4_9e, double* %v5_9e, align 4
  %v1_a1 = load i32, i32* @edi, align 8
  %v2_a1 = add i32 %v1_a1, -76
  %v3_a1 = inttoptr i32 %v2_a1 to i32*
  %v4_a1 = load i32, i32* %v3_a1, align 4
  %v5_a1 = sitofp i32 %v4_a1 to x86_fp80
  %v10_a4 = fmul x86_fp80 %v6_73, %v5_a1
  %v2_a7 = add i32 %v1_a1, -72
  %v3_a7 = inttoptr i32 %v2_a7 to i32*
  %v4_a7 = load i32, i32* %v3_a7, align 4
  %v5_a7 = sitofp i32 %v4_a7 to x86_fp80
  %v7_aa = fmul x86_fp80 %v6_80, %v5_a7
  %v4_b0 = fsub x86_fp80 %v10_a4, %v7_aa
  %v2_b4 = call x86_fp80 @llvm.round.f80(x86_fp80 %v4_b0)
  %v4_b6 = fsub x86_fp80 %v2_b4, %v4_b0
  %v3_b8 = add i32 %v1_a1, 8
  %v4_b8 = inttoptr i32 %v3_b8 to double*
  %v5_b8 = load double, double* %v4_b8, align 4
  %v6_b8 = fpext double %v5_b8 to x86_fp80
  %v7_b8 = fmul x86_fp80 %v4_b6, %v6_b8
  %v3_bb = add i32 %v2_9e, -112
  %v4_bb = fptrunc x86_fp80 %v7_b8 to double
  %v5_bb = inttoptr i32 %v3_bb to double*
  store double %v4_bb, double* %v5_bb, align 4
  %v2_be = add i32 %v2_9e, 112
  %v3_be = inttoptr i32 %v2_be to double*
  %v4_be = load double, double* %v3_be, align 4
  %v5_be = fpext double %v4_be to x86_fp80
  %v2_c5 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v7_65)
  %v2_ca = load i32, i32* @edi, align 8
  %v3_ca = add i32 %v2_ca, 16
  %v4_ca = inttoptr i32 %v3_ca to double*
  %v5_ca = load double, double* %v4_ca, align 4
  %v6_ca = fpext double %v5_ca to x86_fp80
  %v7_ca = fadd x86_fp80 %v2_c5, %v6_ca
  %v4_cd = fdiv x86_fp80 %v7_ca, %v5_be
  %v2_cf = add i32 %v2_ca, -76
  %v3_cf = inttoptr i32 %v2_cf to i32*
  %v4_cf = load i32, i32* %v3_cf, align 4
  %v5_cf = sitofp i32 %v4_cf to x86_fp80
  %v3_d2 = fmul x86_fp80 %v5_cf, %v5_cf
  %v2_d4 = add i32 %v2_ca, -72
  %v3_d4 = inttoptr i32 %v2_d4 to i32*
  %v4_d4 = load i32, i32* %v3_d4, align 4
  %v5_d4 = sitofp i32 %v4_d4 to x86_fp80
  %v3_d7 = fmul x86_fp80 %v5_d4, %v5_d4
  %v4_d9 = fadd x86_fp80 %v3_d2, %v3_d7
  %v2_db = add i32 %v2_ca, -84
  %v3_db = inttoptr i32 %v2_db to double*
  %v4_db = load double, double* %v3_db, align 4
  %v5_db = fpext double %v4_db to x86_fp80
  %v3_de = fmul x86_fp80 %v5_db, %v5_db
  %v4_e0 = fadd x86_fp80 %v3_de, %v4_d9
  %v2_e2 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_e0)
  %v4_e4 = fmul x86_fp80 %v4_cd, %v2_e2
  %v3_e6 = add i32 %v2_ca, 24
  %v4_e6 = inttoptr i32 %v3_e6 to double*
  %v5_e6 = load double, double* %v4_e6, align 4
  %v6_e6 = fpext double %v5_e6 to x86_fp80
  %v7_e6 = fmul x86_fp80 %v4_e4, %v6_e6
  %v4_e9 = fptrunc x86_fp80 %v7_e6 to double
  store double %v4_e9, double* %v3_be, align 4
  store i3 %v0_75, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_ef = load i32, i32* %eax.global-to-local, align 4
  ret i32 %v0_ef
}

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

declare i32 @__asm_fyl2x(x86_fp80) local_unnamed_addr

declare i32 @__asm_fpatan(x86_fp80) local_unnamed_addr

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

attributes #0 = { nounwind readnone speculatable }
