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
@global_var_1.1 = constant i8 -117

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebp.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
  %v0_0 = load i32, i32* %ebp.global-to-local, align 4
  %v0_9 = load i32, i32* %esi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_d = add i32 %arg1, 48
  %v2_d = inttoptr i32 %v1_d to i32*
  %v3_d = load i32, i32* %v2_d, align 4
  store i32 %v3_d, i32* %esi.global-to-local, align 4
  %v0_10 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_10 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_10 = fpext double %v3_10 to x86_fp80
  %v5_10 = sub i3 %v0_10, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v5_10, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_12 = add i32 %v3_d, -24
  %v4_12 = inttoptr i32 %v3_12 to double*
  %v5_12 = load double, double* %v4_12, align 4
  %v6_12 = fpext double %v5_12 to x86_fp80
  %v7_12 = fadd x86_fp80 %v4_10, %v6_12
  %v2_15 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_12)
  %v3_15 = fcmp olt x86_fp80 %v2_15, 0xK403E8000000000000000
  br i1 %v3_15, label %bb, label %dec_label_pc_0._crit_edge

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

bb:                                               ; preds = %dec_label_pc_0
  %v4_15 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_12)
  %v7_15 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_12)
  %v8_15 = sub i3 %v5_10, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_15, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_15, x86_fp80* %st6.global-to-local, align 4
  br label %bb242

bb242:                                            ; preds = %dec_label_pc_0._crit_edge, %bb
  %v1_1a = phi x86_fp80 [ %v7_12, %dec_label_pc_0._crit_edge ], [ %v4_15, %bb ]
  %v1_17 = phi x86_fp80 [ %v1_17.pre, %dec_label_pc_0._crit_edge ], [ %v7_15, %bb ]
  %v0_17 = phi i3 [ %v5_10, %dec_label_pc_0._crit_edge ], [ %v8_15, %bb ]
  %v3_1d = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_1d = fpext double %v3_1d to x86_fp80
  %v5_1d = add i3 %v0_17, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)))
  store i3 %v5_1d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_1f = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_1d)
  %v3_1f = fcmp olt x86_fp80 %v2_1f, 0xK403E8000000000000000
  %tmp243 = bitcast double %v3_1d to i64
  %tmp244 = trunc i64 %tmp243 to i32
  br i1 %v3_1f, label %bb245, label %bb246

bb245:                                            ; preds = %bb242
  %v4_1f = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_1d)
  %v7_1f = call x86_fp80 @llvm.cos.f80(x86_fp80 %v4_1d)
  %v8_1f = sub i3 %v5_1d, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_1f, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_1f, x86_fp80* %st6.global-to-local, align 4
  br label %bb246

bb246:                                            ; preds = %bb242, %bb245
  %v4_21.pre-phi.in = phi x86_fp80 [ %v1_17, %bb242 ], [ %v7_1f, %bb245 ]
  %v1_24 = phi x86_fp80 [ %v4_1d, %bb242 ], [ %v4_1f, %bb245 ]
  %v0_21 = phi i3 [ %v5_1d, %bb242 ], [ %v8_1f, %bb245 ]
  %v6_24 = add i3 %v0_21, add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3))
  %v3_28 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_28 = fpext double %v3_28 to x86_fp80
  %v7_2a = fmul x86_fp80 %v1_17, %v4_28
  %v3_2d = add i32 %v3_d, -16
  %v4_2d = inttoptr i32 %v3_2d to double*
  %v5_2d = load double, double* %v4_2d, align 4
  %v6_2d = fpext double %v5_2d to x86_fp80
  %v7_2d = fadd x86_fp80 %v7_2a, %v6_2d
  %v7_36 = fmul x86_fp80 %v1_1a, %v4_28
  %v3_39 = fptrunc x86_fp80 %v7_36 to double
  %v4_39 = inttoptr i32 %tmp244 to double*
  store double %v3_39, double* %v4_39, align 4
  %v7_3e = fmul x86_fp80 %v1_24, %v7_2d
  %v2_41 = load i32, i32* @edx, align 8
  %v3_41 = fptrunc x86_fp80 %v7_3e to double
  %v4_41 = inttoptr i32 %v2_41 to double*
  store double %v3_41, double* %v4_41, align 4
  %v7_46 = fmul x86_fp80 %v7_2d, %v4_21.pre-phi.in
  %v2_49 = load i32, i32* @eax, align 8
  %v3_49 = fptrunc x86_fp80 %v7_46 to double
  %v4_49 = inttoptr i32 %v2_49 to double*
  store double %v3_49, double* %v4_49, align 4
  store i3 %v6_24, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_9, i32* %esi.global-to-local, align 4
  store i32 %v0_0, i32* %ebp.global-to-local, align 4
  %v0_4f = load i32, i32* @eax, align 8
  ret i32 %v0_4f
}

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