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:
  %ebx.global-to-local = alloca i32, align 4
  %edi.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
  %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
  %v0_9 = load i32, i32* %ebx.global-to-local, align 4
  %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.global-to-local, 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.global-to-local, align 4
  %v0_12 = load i32, i32* @eax, align 8
  store i32 %v0_12, i32* %ebx.global-to-local, align 4
  %v0_16 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_16 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_16 = fpext double %v3_16 to x86_fp80
  %v3_18 = fmul x86_fp80 %v4_16, %v4_16
  %v3_1a = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_1a = fpext double %v3_1a to x86_fp80
  %v3_1c = fmul x86_fp80 %v4_1a, %v4_1a
  %v3_1e = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_1e = fpext double %v3_1e to x86_fp80
  %v3_20 = fmul x86_fp80 %v4_1e, %v4_1e
  store x86_fp80 %v3_20, x86_fp80* %st5.global-to-local, align 4
  %v4_22 = fadd x86_fp80 %v3_1c, %v3_20
  %v4_24 = fadd x86_fp80 %v3_18, %v4_22
  %v2_26 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_24)
  %v6_2b = add i3 %v0_16, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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 %v6_2b, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_30 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v2_26)
  %v3_32 = call i32 @__asm_fyl2x(i32 %v0_b, i32 %v0_a, i32 %v0_9)
  store i32 %v3_32, i32* @eax, align 8
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st5.global-to-local, align 4
  %v3_36 = add i3 %v0_16, add (i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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)))))), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3))))
  store i3 %v3_36, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_30, x86_fp80* %st4.global-to-local, align 4
  %v0_38 = call i32 @__asm_fprem()
  store i32 %v0_38, i32* @eax, align 8
  %v0_3a = call i32 @__asm_f2xm1()
  store i32 %v0_3a, i32* @eax, align 8
  %v3_3c = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_3c = fadd x86_fp80 %v2_30, %v3_3c
  store x86_fp80 %v4_3c, x86_fp80* %st5.global-to-local, align 4
  %v7_3c = add i3 %v0_16, add (i3 add (i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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)))))), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))), i3 ptrtoint (i8* @global_var_1.1 to i3))
  store i3 %v7_3c, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_3e = call i32 @__asm_fscale()
  store i32 %v0_3e, i32* @eax, align 8
  %v3_47 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_47 = fpext double %v3_47 to x86_fp80
  %v3_49 = fmul x86_fp80 %v4_47, %v4_47
  %v3_4b = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_4b = fpext double %v3_4b to x86_fp80
  %v5_4b = add i3 %v0_16, add (i3 add (i3 add (i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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)))))), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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)))))
  %v3_4d = fmul x86_fp80 %v4_4b, %v4_4b
  %v4_4f = fadd x86_fp80 %v3_49, %v3_4d
  %v2_51 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_4f)
  %v3_56 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_56 = fpext double %v3_56 to x86_fp80
  store i3 %v5_4b, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_56, x86_fp80* %st5.global-to-local, align 4
  %v4_58 = call i32 @__asm_fpatan(x86_fp80 %v2_51, x86_fp80 %v4_3c)
  store i32 %v4_58, i32* @eax, align 8
  %v2_5a = load i32, i32* %edi.global-to-local, align 4
  %v3_5a = add i32 %v2_5a, -16
  %v4_5a = inttoptr i32 %v3_5a to double*
  %v5_5a = load double, double* %v4_5a, align 4
  %v6_5a = fpext double %v5_5a to x86_fp80
  %v7_5a = fmul x86_fp80 %v4_56, %v6_5a
  store x86_fp80 %v7_5a, x86_fp80* %st5.global-to-local, align 4
  %v2_5d = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_5a)
  %v3_5d = fcmp olt x86_fp80 %v2_5d, 0xK403E8000000000000000
  %v0_5d = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v3_5d, label %bb, label %dec_label_pc_0._crit_edge

dec_label_pc_0._crit_edge:                        ; preds = %dec_label_pc_0
  %v1_5f.pre = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  br label %bb253

bb:                                               ; preds = %dec_label_pc_0
  %v4_5d = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_5a)
  store x86_fp80 %v4_5d, x86_fp80* %st5.global-to-local, align 4
  %v7_5d = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_5a)
  %v8_5d = sub i3 %v0_5d, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_5d, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_5d, x86_fp80* %st4.global-to-local, align 4
  br label %bb253

bb253:                                            ; preds = %dec_label_pc_0._crit_edge, %bb
  %v1_62 = phi x86_fp80 [ %v7_5a, %dec_label_pc_0._crit_edge ], [ %v4_5d, %bb ]
  %v1_5f = phi x86_fp80 [ %v1_5f.pre, %dec_label_pc_0._crit_edge ], [ %v7_5d, %bb ]
  %v0_5f = phi i3 [ %v0_5d, %dec_label_pc_0._crit_edge ], [ %v8_5d, %bb ]
  %v3_66 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_66 = fpext double %v3_66 to x86_fp80
  store x86_fp80 %v4_66, x86_fp80* %st5.global-to-local, align 4
  %v3_68 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_68 = fpext double %v3_68 to x86_fp80
  %v5_68 = add i3 %v0_5f, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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_68, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_68, x86_fp80* %st4.global-to-local, align 4
  %v4_6a = call i32 @__asm_fpatan(x86_fp80 %v1_5f, x86_fp80 %v1_62)
  store i32 %v4_6a, i32* @eax, align 8
  %v2_6c = load i32, i32* %edi.global-to-local, align 4
  %v3_6c = add i32 %v2_6c, -24
  %v4_6c = inttoptr i32 %v3_6c to double*
  %v5_6c = load double, double* %v4_6c, align 4
  %v6_6c = fpext double %v5_6c to x86_fp80
  %v7_6c = fmul x86_fp80 %v4_68, %v6_6c
  store x86_fp80 %v7_6c, x86_fp80* %st4.global-to-local, align 4
  %v2_6f = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_6c)
  %v3_6f = fcmp olt x86_fp80 %v2_6f, 0xK403E8000000000000000
  %v0_6f = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v3_6f, label %bb254, label %._crit_edge

._crit_edge:                                      ; preds = %bb253
  %v1_71.pre = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  br label %bb255

bb254:                                            ; preds = %bb253
  %v4_6f = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_6c)
  store x86_fp80 %v4_6f, x86_fp80* %st4.global-to-local, align 4
  %v7_6f = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_6c)
  %v8_6f = sub i3 %v0_6f, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_6f, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_6f, x86_fp80* %st3.global-to-local, align 4
  br label %bb255

bb255:                                            ; preds = %._crit_edge, %bb254
  %v1_74 = phi x86_fp80 [ %v7_6c, %._crit_edge ], [ %v4_6f, %bb254 ]
  %v1_71 = phi x86_fp80 [ %v1_71.pre, %._crit_edge ], [ %v7_6f, %bb254 ]
  %v0_71 = phi i3 [ %v0_6f, %._crit_edge ], [ %v8_6f, %bb254 ]
  %v7_7c = fmul x86_fp80 %v4_3c, %v1_5f
  store x86_fp80 %v7_7c, x86_fp80* %st4.global-to-local, align 4
  %v2_7f = load i32, i32* %esi.global-to-local, align 4
  %v3_7f = add i32 %v2_7f, 24
  %v4_7f = inttoptr i32 %v3_7f to double*
  %v5_7f = load double, double* %v4_7f, align 4
  %v6_7f = fpext double %v5_7f to x86_fp80
  %v7_7f = fadd x86_fp80 %v7_7c, %v6_7f
  %v2_82 = load i32, i32* %ebx.global-to-local, align 4
  %v3_82 = fptrunc x86_fp80 %v7_7f to double
  %v4_82 = inttoptr i32 %v2_82 to double*
  store double %v3_82, double* %v4_82, align 4
  %v7_87 = fmul x86_fp80 %v1_62, %v1_71
  %v7_8a = fmul x86_fp80 %v7_87, %v4_3c
  store x86_fp80 %v7_8a, x86_fp80* %st4.global-to-local, align 4
  %v3_8d = add i32 %v2_7f, 32
  %v4_8d = inttoptr i32 %v3_8d to double*
  %v5_8d = load double, double* %v4_8d, align 4
  %v6_8d = fpext double %v5_8d to x86_fp80
  %v7_8d = fadd x86_fp80 %v7_8a, %v6_8d
  %v2_90 = load i32, i32* @edx, align 8
  %v3_90 = fptrunc x86_fp80 %v7_8d to double
  %v4_90 = inttoptr i32 %v2_90 to double*
  store double %v3_90, double* %v4_90, align 4
  %v7_95 = fmul x86_fp80 %v1_62, %v1_74
  store x86_fp80 %v7_95, x86_fp80* %st4.global-to-local, align 4
  %v3_98 = add i32 %v2_6c, -32
  %v4_98 = inttoptr i32 %v3_98 to double*
  %v5_98 = load double, double* %v4_98, align 4
  %v6_98 = fpext double %v5_98 to x86_fp80
  %v7_98 = fmul x86_fp80 %v7_95, %v6_98
  %v7_9b = fmul x86_fp80 %v7_98, %v4_3c
  store x86_fp80 %v7_9b, x86_fp80* %st4.global-to-local, align 4
  %v3_9e = add i32 %v2_7f, 40
  %v4_9e = inttoptr i32 %v3_9e to double*
  %v5_9e = load double, double* %v4_9e, align 4
  %v6_9e = fpext double %v5_9e to x86_fp80
  %v7_9e = fadd x86_fp80 %v7_9b, %v6_9e
  store x86_fp80 %v7_9e, x86_fp80* %st4.global-to-local, align 4
  %v2_a1 = load i32, i32* @ecx, align 8
  %v3_a1 = fptrunc x86_fp80 %v7_9e to double
  %v4_a1 = inttoptr i32 %v2_a1 to double*
  store double %v3_a1, double* %v4_a1, align 4
  %v5_a1 = add i3 %v0_71, add (i3 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))), i3 ptrtoint (i8* @global_var_1.1 to i3))
  store i3 %v5_a1, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_82, i32* @eax, align 8
  store i32 %v0_b, i32* %edi.global-to-local, align 4
  store i32 %v0_a, i32* %esi.global-to-local, align 4
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  ret i32 %v2_82
}

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

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

declare i32 @__asm_fyl2x(i32, i32, i32) local_unnamed_addr

declare i32 @__asm_fprem() local_unnamed_addr

declare i32 @__asm_f2xm1() local_unnamed_addr

declare i32 @__asm_fscale() local_unnamed_addr

declare i32 @__asm_fpatan(x86_fp80, x86_fp80) local_unnamed_addr

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