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:
  %esi.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %st2.global-to-local = alloca x86_fp80, align 4
  %st3.global-to-local = alloca x86_fp80, align 4
  %st4.global-to-local = alloca x86_fp80, align 4
  %st5.global-to-local = alloca x86_fp80, align 4
  %st6.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
  %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
  %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
  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
  store x86_fp80 %v5_c, x86_fp80* %st5.global-to-local, align 4
  %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
  store x86_fp80 %v7_f, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v7_f, x86_fp80* %st4.global-to-local, align 4
  %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
  store x86_fp80 %v7_14, x86_fp80* %st4.global-to-local, align 4
  %v3_17 = add i3 %v0_0, 3
  store x86_fp80 %v7_9, x86_fp80* %st3.global-to-local, align 4
  %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
  store x86_fp80 %v4_1c, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v7_3, x86_fp80* %st3.global-to-local, align 4
  %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 %v4_1c, %v7_20
  store x86_fp80 %v4_23, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v7_f, x86_fp80* %st3.global-to-local, align 4
  %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
  store x86_fp80 %v7_27, x86_fp80* %st3.global-to-local, align 4
  store x86_fp80 %v7_9, x86_fp80* %st2.global-to-local, align 4
  %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
  store x86_fp80 %v4_2f, x86_fp80* %st3.global-to-local, align 4
  store x86_fp80 %v7_3, x86_fp80* %st2.global-to-local, align 4
  %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
  store x86_fp80 %v7_33, x86_fp80* %st2.global-to-local, align 4
  %v4_36 = fadd x86_fp80 %v4_2f, %v7_33
  store x86_fp80 %v7_f, x86_fp80* %st3.global-to-local, align 4
  store x86_fp80 %v4_36, x86_fp80* %st5.global-to-local, align 4
  %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_9, x86_fp80* %st3.global-to-local, align 4
  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
  store x86_fp80 %v7_3f, x86_fp80* %st3.global-to-local, align 4
  %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 %v7_3, x86_fp80* %st4.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
  store x86_fp80 %v4_49, x86_fp80* %st4.global-to-local, align 4
  store i3 %v3_17, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_36, x86_fp80* %st3.global-to-local, align 4
  %v0_4f = call i32 @__asm_fpatan()
  %v2_51 = load i32, i32* @edi, align 8
  %v3_51 = add i32 %v2_51, -80
  %v4_51 = inttoptr i32 %v3_51 to double*
  %v5_51 = load double, double* %v4_51, align 4
  %v6_51 = fpext double %v5_51 to x86_fp80
  %v7_51 = fsub x86_fp80 %v6_51, %v4_36
  %v4_54 = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_54 = fpext double %v4_54 to x86_fp80
  %v6_54 = fmul x86_fp80 %v7_51, %v5_54
  store x86_fp80 %v6_54, x86_fp80* %st3.global-to-local, align 4
  %tmp230 = bitcast double %v4_54 to i64
  %tmp231 = trunc i64 %tmp230 to i32
  %v3_56 = add i32 %tmp231, -72
  %v4_56 = inttoptr i32 %v3_56 to i32*
  %v5_56 = load i32, i32* %v4_56, align 4
  %v6_56 = sitofp i32 %v5_56 to x86_fp80
  %v7_56 = fmul x86_fp80 %v6_54, %v6_56
  %v2_59 = call x86_fp80 @llvm.round.f80(x86_fp80 %v7_56)
  store x86_fp80 %v2_59, x86_fp80* %st3.global-to-local, align 4
  %v5_5b = load i32, i32* %v4_56, align 4
  %v6_5b = sitofp i32 %v5_5b to x86_fp80
  %v7_5b = fdiv x86_fp80 %v2_59, %v6_5b
  store x86_fp80 %v7_5b, x86_fp80* %st3.global-to-local, align 4
  %v3_5e = add i32 %tmp231, 8
  %v4_5e = inttoptr i32 %v3_5e to double*
  %v5_5e = load double, double* %v4_5e, align 4
  %v6_5e = fpext double %v5_5e to x86_fp80
  %v7_5e = fmul x86_fp80 %v7_5b, %v6_5e
  store x86_fp80 %v7_5e, x86_fp80* %st3.global-to-local, align 4
  %v2_61 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_5e)
  %v3_61 = fcmp olt x86_fp80 %v2_61, 0xK403E8000000000000000
  %v0_61 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v3_61, label %bb, label %dec_label_pc_0._crit_edge

dec_label_pc_0._crit_edge:                        ; preds = %dec_label_pc_0
  %v3_65.pre = load x86_fp80, x86_fp80* %st2.global-to-local, align 4
  br label %bb232

bb:                                               ; preds = %dec_label_pc_0
  %v4_61 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_5e)
  store x86_fp80 %v4_61, x86_fp80* %st3.global-to-local, align 4
  %v7_61 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_5e)
  %v8_61 = add i3 %v0_61, -1
  store i3 %v8_61, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_61, x86_fp80* %st2.global-to-local, align 4
  br label %bb232

bb232:                                            ; preds = %dec_label_pc_0._crit_edge, %bb
  %v3_69 = phi x86_fp80 [ %v7_5e, %dec_label_pc_0._crit_edge ], [ %v4_61, %bb ]
  %v3_65 = phi x86_fp80 [ %v3_65.pre, %dec_label_pc_0._crit_edge ], [ %v7_61, %bb ]
  %v0_63 = phi i3 [ %v0_61, %dec_label_pc_0._crit_edge ], [ %v8_61, %bb ]
  %v2_63 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_65 = fmul x86_fp80 %v3_65, %v2_63
  %v2_67 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v4_69 = fmul x86_fp80 %v3_69, %v2_67
  %v4_6b = fadd x86_fp80 %v4_65, %v4_69
  %v2_6f = load i32, i32* %esi.global-to-local, align 4
  %v3_6f = add i32 %v2_6f, -112
  %v4_6f = fptrunc x86_fp80 %v4_6b to double
  %v5_6f = inttoptr i32 %v3_6f to double*
  store double %v4_6f, double* %v5_6f, align 4
  %v2_72 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v3_74 = load x86_fp80, x86_fp80* %st2.global-to-local, align 4
  %v4_74 = fmul x86_fp80 %v2_72, %v3_74
  %v2_76 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v3_78 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v4_78 = fmul x86_fp80 %v2_76, %v3_78
  %v4_7a = fsub x86_fp80 %v4_74, %v4_78
  %v3_7e = add i32 %v2_6f, -120
  %v4_7e = fptrunc x86_fp80 %v4_7a to double
  %v5_7e = inttoptr i32 %v3_7e to double*
  store double %v4_7e, double* %v5_7e, align 4
  %v1_89 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_89 = add i32 %v2_6f, -104
  %v4_89 = fptrunc x86_fp80 %v1_89 to double
  %v5_89 = inttoptr i32 %v3_89 to double*
  store double %v4_89, double* %v5_89, align 4
  %v6_89 = add i3 %v0_63, -3
  store i3 %v6_89, i3* %fpu_stat_TOP.global-to-local, align 1
  ret i32 %v0_4f
}

declare i32 @__asm_fpatan() local_unnamed_addr

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

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

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

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

attributes #0 = { nounwind readnone speculatable }
