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(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
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_0 = load i32, i32* %ebp.global-to-local, align 4
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_7 = add i32 %arg1, 48
  %v2_7 = inttoptr i32 %v1_7 to i32*
  %v3_7 = load i32, i32* %v2_7, align 4
  store i32 %v3_7, i32* %esi.global-to-local, align 4
  %v0_a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_a = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_a = fpext double %v3_a to x86_fp80
  %v2_c = fsub x86_fp80 0xK80000000000000000000, %v4_a
  store x86_fp80 %v2_c, x86_fp80* %st7.global-to-local, align 4
  %v3_e = add i32 %v3_7, -16
  %v4_e = inttoptr i32 %v3_e to double*
  %v5_e = load double, double* %v4_e, align 4
  %v6_e = fpext double %v5_e to x86_fp80
  %v7_e = fsub x86_fp80 %v6_e, %v4_a
  %v2_11 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_e)
  %v3_13 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_13 = fpext double %v3_13 to x86_fp80
  %v5_13 = add i3 %v0_a, -2
  %v2_15 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_13)
  %v3_15 = fcmp olt x86_fp80 %v2_15, 0xK403E8000000000000000
  %v4_15 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v4_13)
  %storemerge = select i1 %v3_15, x86_fp80 %v4_15, x86_fp80 %v4_13
  %v2_17 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %storemerge)
  %v4_19 = fmul x86_fp80 %v2_11, %v2_17
  store x86_fp80 %v4_19, x86_fp80* %st7.global-to-local, align 4
  %tmp231 = bitcast double %v3_a to i64
  %tmp232 = trunc i64 %tmp231 to i32
  %v3_1b = fptrunc x86_fp80 %v4_19 to double
  %v4_1b = inttoptr i32 %tmp232 to double*
  store double %v3_1b, double* %v4_1b, align 4
  %v3_1d = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_1d = fpext double %v3_1d to x86_fp80
  store i3 %v5_13, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_1f = call i32 @__asm_fptan(i32 %v0_3, i32 %v0_0)
  store i32 %v2_1f, i32* @eax, align 8
  %v3_21 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_21 = fmul x86_fp80 %v3_21, %v4_1d
  %v4_23 = fmul x86_fp80 %v4_21, %v4_21
  store x86_fp80 %v4_23, x86_fp80* %st7.global-to-local, align 4
  %v2_25 = load i32, i32* @edx, align 8
  %v3_25 = fptrunc x86_fp80 %v4_23 to double
  %v4_25 = inttoptr i32 %v2_25 to double*
  store double %v3_25, double* %v4_25, align 4
  %v5_25 = add i3 %v0_a, 1
  store i3 %v5_25, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  %v0_29 = load i32, i32* @eax, align 8
  ret i32 %v0_29
}

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

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

declare i32 @__asm_fptan(i32, i32) local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
