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
@edx = internal unnamed_addr global i32 0, align 8

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %ebp.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 i32, i32* %ebp.global-to-local, align 4
  %v0_3 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_3 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_3 = fpext double %v3_3 to x86_fp80
  %v5_3 = add i3 %v0_3, -1
  store i3 %v5_3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_3, x86_fp80* %st7.global-to-local, align 4
  %v2_5 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_3)
  %v3_5 = fcmp olt x86_fp80 %v2_5, 0xK403E8000000000000000
  br i1 %v3_5, label %bb, label %dec_label_pc_0._crit_edge

dec_label_pc_0._crit_edge:                        ; preds = %dec_label_pc_0
  %v3_b.pre = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  br label %bb231

bb:                                               ; preds = %dec_label_pc_0
  %v4_5 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_3)
  store x86_fp80 %v4_5, x86_fp80* %st7.global-to-local, align 4
  %v7_5 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v4_3)
  %v8_5 = add i3 %v0_3, -2
  store i3 %v8_5, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_5, x86_fp80* %st6.global-to-local, align 4
  br label %bb231

bb231:                                            ; preds = %dec_label_pc_0._crit_edge, %bb
  %v3_b = phi x86_fp80 [ %v3_b.pre, %dec_label_pc_0._crit_edge ], [ %v7_5, %bb ]
  %v2_9 = phi x86_fp80 [ %v4_3, %dec_label_pc_0._crit_edge ], [ %v4_5, %bb ]
  %v0_7 = phi i3 [ %v5_3, %dec_label_pc_0._crit_edge ], [ %v8_5, %bb ]
  %v3_7 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_7 = fpext double %v3_7 to x86_fp80
  %v4_9 = fmul x86_fp80 %v2_9, %v4_7
  store x86_fp80 %v4_9, x86_fp80* %st7.global-to-local, align 4
  %v4_b = fmul x86_fp80 %v3_b, %v4_7
  store x86_fp80 %v4_b, x86_fp80* %st6.global-to-local, align 4
  %tmp232 = bitcast double %v3_7 to i64
  %tmp233 = trunc i64 %tmp232 to i32
  %v3_d = fptrunc x86_fp80 %v4_b to double
  %v4_d = inttoptr i32 %tmp233 to double*
  store double %v3_d, double* %v4_d, align 4
  %v1_f = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_f = load i32, i32* @edx, align 8
  %v3_f = fptrunc x86_fp80 %v1_f to double
  %v4_f = inttoptr i32 %v2_f to double*
  store double %v3_f, double* %v4_f, align 4
  %v5_f = add i3 %v0_7, 2
  store i3 %v5_f, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_0, i32* %ebp.global-to-local, align 4
  %v0_12 = load i32, i32* @eax, align 8
  ret i32 %v0_12
}

; 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 }
