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

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %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
  %st1.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
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  %v0_4 = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_8 = add i32 %arg1, 48
  %v2_8 = inttoptr i32 %v1_8 to i32*
  %v3_8 = load i32, i32* %v2_8, align 4
  store i32 %v3_8, i32* %edi.global-to-local, align 4
  %v0_b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st7.global-to-local, align 4
  %v3_d = add i32 %arg1, 64
  %v4_d = inttoptr i32 %v3_d to i32*
  %v5_d = load i32, i32* %v4_d, align 4
  %v6_d = sitofp i32 %v5_d to x86_fp80
  %v7_d = fadd x86_fp80 %v6_d, 0xK3FFF8000000000000000
  store x86_fp80 %v7_d, x86_fp80* %st7.global-to-local, align 4
  %v3_10 = add i32 %v3_8, -16
  %v4_10 = inttoptr i32 %v3_10 to double*
  %v5_10 = load double, double* %v4_10, align 4
  %v6_10 = fpext double %v5_10 to x86_fp80
  %v7_10 = fmul x86_fp80 %v7_d, %v6_10
  store x86_fp80 %v7_10, x86_fp80* %st7.global-to-local, align 4
  %v2_13 = add i32 %arg1, 56
  %v3_13 = inttoptr i32 %v2_13 to double*
  %v4_13 = load double, double* %v3_13, align 4
  %v5_13 = fpext double %v4_13 to x86_fp80
  store x86_fp80 %v5_13, x86_fp80* %st6.global-to-local, align 4
  %v2_18 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v5_13)
  %v4_1a = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_1a = fpext double %v4_1a to x86_fp80
  %v6_1a = fdiv x86_fp80 %v5_1a, %v2_18
  store x86_fp80 %v6_1a, x86_fp80* %st5.global-to-local, align 4
  %v3_20 = fmul x86_fp80 %v6_1a, %v6_1a
  %v4_22 = fsub x86_fp80 0xK3FFF8000000000000000, %v3_20
  %v7_22 = xor i3 %v0_b, -4
  store i3 %v7_22, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_24 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_22)
  store x86_fp80 %v2_24, x86_fp80* %st4.global-to-local, align 4
  %v0_26 = call i32 @__asm_fpatan()
  store i32 %v0_26, i32* @eax, align 8
  %v3_28 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_28 = fmul x86_fp80 %v2_24, %v3_28
  store x86_fp80 %v4_28, x86_fp80* %st4.global-to-local, align 4
  %v0_2a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_2a = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_2a = fpext double %v3_2a to x86_fp80
  %v3_2c = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_2c = fpext double %v3_2c to x86_fp80
  %v5_2c = add i3 %v0_2a, -2
  store i3 %v5_2c, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_2e = call i32 @__asm_fpatan()
  store i32 %v0_2e, i32* @eax, align 8
  %v3_30 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_30 = fmul x86_fp80 %v3_30, %v4_2c
  store x86_fp80 %v4_30, x86_fp80* %st5.global-to-local, align 4
  %v7_30 = add i3 %v0_2a, -1
  %v2_32 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_2a)
  %v3_32 = fcmp olt x86_fp80 %v2_32, 0xK403E8000000000000000
  br i1 %v3_32, label %bb, label %bb244

bb:                                               ; preds = %dec_label_pc_0
  %v7_32 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v4_2a)
  br label %bb244

bb244:                                            ; preds = %dec_label_pc_0, %bb
  %storemerge = phi i3 [ %v5_2c, %bb ], [ %v7_30, %dec_label_pc_0 ]
  %v0_36 = phi i3 [ %v5_2c, %bb ], [ %v7_30, %dec_label_pc_0 ]
  %v2_34 = phi x86_fp80 [ %v7_32, %bb ], [ %v4_2c, %dec_label_pc_0 ]
  store i3 %storemerge, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_34, x86_fp80* %st5.global-to-local, align 4
  %v2_36 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_30)
  %v3_36 = fcmp olt x86_fp80 %v2_36, 0xK403E8000000000000000
  br i1 %v3_36, label %bb245, label %._crit_edge

._crit_edge:                                      ; preds = %bb244
  %v2_38.pre = load x86_fp80, x86_fp80* %st1.global-to-local, align 4
  br label %bb246

bb245:                                            ; preds = %bb244
  %v7_36 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v4_30)
  %v8_36 = add i3 %v0_36, -1
  store i3 %v8_36, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_36, x86_fp80* %st1.global-to-local, align 4
  br label %bb246

bb246:                                            ; preds = %._crit_edge, %bb245
  %v0_3a = phi i3 [ %v0_36, %._crit_edge ], [ %v8_36, %bb245 ]
  %v2_38 = phi x86_fp80 [ %v2_38.pre, %._crit_edge ], [ %v7_36, %bb245 ]
  %v3_38 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v3_38, x86_fp80* %st1.global-to-local, align 4
  store x86_fp80 %v2_38, x86_fp80* %st4.global-to-local, align 4
  %v2_3c = load i32, i32* %edi.global-to-local, align 4
  %v3_3c = add i32 %v2_3c, -16
  %v4_3c = inttoptr i32 %v3_3c to double*
  %v5_3c = load double, double* %v4_3c, align 4
  %v6_3c = fpext double %v5_3c to x86_fp80
  %v7_3c = fadd x86_fp80 %v6_3c, 0xKBFFF8000000000000000
  store x86_fp80 %v7_3c, x86_fp80* %st1.global-to-local, align 4
  %v1_41 = add i3 %v0_3a, -2
  store i3 %v1_41, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFEB17217F7D1CF7800, x86_fp80* %st7.global-to-local, align 4
  %v0_45 = call i32 @__asm_fyl2x()
  store i32 %v0_45, i32* @eax, align 8
  %v2_51 = call x86_fp80 @llvm.round.f80(x86_fp80 0xK40008535263E14FCCFEC)
  %v4_53 = fsub x86_fp80 %v2_51, %v2_51
  store x86_fp80 %v4_53, x86_fp80* %st7.global-to-local, align 4
  %v0_57 = call i32 @__asm_f2xm1()
  store i32 %v0_57, i32* @eax, align 8
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v4_5b = fadd x86_fp80 %v4_53, 0xK3FFF8000000000000000
  store x86_fp80 %v4_5b, x86_fp80* %st7.global-to-local, align 4
  %v0_5d = call i32 @__asm_fscale()
  store i32 %v0_5d, i32* @eax, align 8
  %v0_5f = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_61 = fmul x86_fp80 %v4_5b, %v4_5b
  %v4_63 = fmul x86_fp80 %v4_61, %v4_61
  %v4_65 = fmul x86_fp80 %v4_63, %v4_63
  store x86_fp80 %v4_65, x86_fp80* %st7.global-to-local, align 4
  %v2_67 = load i32, i32* %edi.global-to-local, align 4
  %v3_67 = add i32 %v2_67, -24
  %v4_67 = inttoptr i32 %v3_67 to double*
  %v5_67 = load double, double* %v4_67, align 4
  %v6_67 = fpext double %v5_67 to x86_fp80
  %v7_67 = fmul x86_fp80 %v4_65, %v6_67
  store x86_fp80 %v7_67, x86_fp80* %st7.global-to-local, align 4
  %v2_6a = load i32, i32* %esi.global-to-local, align 4
  %v3_6a = add i32 %v2_6a, 32
  %v4_6a = inttoptr i32 %v3_6a to double*
  %v5_6a = load double, double* %v4_6a, align 4
  %v6_6a = fpext double %v5_6a to x86_fp80
  %v7_6a = fadd x86_fp80 %v7_67, %v6_6a
  store x86_fp80 %v7_6a, x86_fp80* %st7.global-to-local, align 4
  %v2_6d = load i32, i32* @edx, align 8
  %v3_6d = fptrunc x86_fp80 %v7_6a to double
  %v4_6d = inttoptr i32 %v2_6d to double*
  store double %v3_6d, double* %v4_6d, align 4
  %v1_6f = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_6f = add i32 %v2_6a, 40
  %v4_6f = inttoptr i32 %v3_6f to double*
  %v5_6f = load double, double* %v4_6f, align 4
  %v6_6f = fpext double %v5_6f to x86_fp80
  %v7_6f = fsub x86_fp80 %v6_6f, %v1_6f
  store x86_fp80 %v7_6f, x86_fp80* %st7.global-to-local, align 4
  %v2_72 = load i32, i32* @ecx, align 8
  %v3_72 = fptrunc x86_fp80 %v7_6f to double
  %v4_72 = inttoptr i32 %v2_72 to double*
  store double %v3_72, double* %v4_72, align 4
  %v2_74 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_74 = fmul x86_fp80 %v2_74, %v2_74
  store x86_fp80 %v4_74, x86_fp80* %st7.global-to-local, align 4
  %v3_76 = add i32 %v2_6a, 24
  %v4_76 = inttoptr i32 %v3_76 to double*
  %v5_76 = load double, double* %v4_76, align 4
  %v6_76 = fpext double %v5_76 to x86_fp80
  %v7_76 = fadd x86_fp80 %v4_74, %v6_76
  store x86_fp80 %v7_76, x86_fp80* %st7.global-to-local, align 4
  %v2_79 = load i32, i32* @eax, align 8
  %v3_79 = fptrunc x86_fp80 %v7_76 to double
  %v4_79 = inttoptr i32 %v2_79 to double*
  store double %v3_79, double* %v4_79, align 4
  %v5_79 = add i3 %v0_5f, -2
  store i3 %v5_79, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_4, i32* %edi.global-to-local, align 4
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  %v0_7e = load i32, i32* @eax, align 8
  ret i32 %v0_7e
}

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

declare i32 @__asm_fpatan() local_unnamed_addr

; 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

declare i32 @__asm_fyl2x() local_unnamed_addr

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

declare i32 @__asm_f2xm1() local_unnamed_addr

declare i32 @__asm_fscale() local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
