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 x86_fp80 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebp.global-to-local = alloca i32, align 4
  %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
  %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 i32, i32* %esi.global-to-local, align 4
  %v0_4 = load i32, i32* %edi.global-to-local, align 4
  %v0_5 = load i32, i32* %ebx.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v0_9 = load i32, i32* @eax, align 8
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  %v1_b = add i32 %arg1, 48
  %v2_b = inttoptr i32 %v1_b to i32*
  %v3_b = load i32, i32* %v2_b, align 4
  store i32 %v3_b, i32* %edi.global-to-local, align 4
  %v0_e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_e = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_e = fpext double %v3_e to x86_fp80
  store x86_fp80 %v4_e, x86_fp80* %st7.global-to-local, align 4
  %v3_10 = add i32 %v3_b, -40
  %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 = fadd x86_fp80 %v4_e, %v6_10
  store x86_fp80 %v7_10, x86_fp80* %st7.global-to-local, align 4
  %tmp237 = bitcast double %v3_e to i64
  %tmp238 = trunc i64 %tmp237 to i32
  %v3_13 = fptrunc x86_fp80 %v7_10 to double
  %v4_13 = inttoptr i32 %tmp238 to double*
  store double %v3_13, double* %v4_13, align 4
  %v3_15 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_15 = fpext double %v3_15 to x86_fp80
  %v5_15 = add i3 %v0_e, -2
  store i3 %v5_15, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_15, x86_fp80* %st6.global-to-local, align 4
  %v3_17 = add i32 %v3_b, -32
  %v4_17 = inttoptr i32 %v3_17 to double*
  %v5_17 = load double, double* %v4_17, align 4
  %v6_17 = fpext double %v5_17 to x86_fp80
  %v7_17 = fadd x86_fp80 %v4_15, %v6_17
  store x86_fp80 %v7_17, x86_fp80* %st6.global-to-local, align 4
  %v3_1a = fptrunc x86_fp80 %v7_17 to double
  %v4_1a = inttoptr i32 %v0_9 to double*
  store double %v3_1a, double* %v4_1a, align 4
  %v4_1c = call i32 @__asm_fpatan(i32 %v0_5, i32 %v0_4, i32 %v0_3, i32 %v0_0)
  store i32 %v4_1c, i32* @eax, align 8
  %v0_1e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_1e = load i32, i32* %edi.global-to-local, align 4
  %v2_1e = add i32 %v1_1e, -48
  %v3_1e = inttoptr i32 %v2_1e to double*
  %v4_1e = load double, double* %v3_1e, align 4
  %v5_1e = fpext double %v4_1e to x86_fp80
  %v6_1e = add i3 %v0_1e, -1
  %v3_21 = add i32 %v1_1e, -24
  %v4_21 = inttoptr i32 %v3_21 to double*
  %v5_21 = load double, double* %v4_21, align 4
  %v6_21 = fpext double %v5_21 to x86_fp80
  %v7_21 = fadd x86_fp80 %v5_1e, %v6_21
  %v3_24 = add i32 %v1_1e, 8
  %v4_24 = inttoptr i32 %v3_24 to double*
  %v5_24 = load double, double* %v4_24, align 4
  %v6_24 = fpext double %v5_24 to x86_fp80
  %v7_24 = fmul x86_fp80 %v7_21, %v6_24
  %v3_27 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_27 = fadd x86_fp80 %v3_27, %v7_24
  store x86_fp80 %v4_27, x86_fp80* %st6.global-to-local, align 4
  %v3_29 = inttoptr i32 %v1_1e to double*
  %v4_29 = load double, double* %v3_29, align 4
  %v5_29 = fpext double %v4_29 to x86_fp80
  %v6_29 = fdiv x86_fp80 %v4_27, %v5_29
  store x86_fp80 %v6_29, x86_fp80* %st6.global-to-local, align 4
  %v3_2b = add i32 %v1_1e, -16
  %v4_2b = inttoptr i32 %v3_2b to double*
  %v5_2b = load double, double* %v4_2b, align 4
  %v6_2b = fpext double %v5_2b to x86_fp80
  %v7_2b = fmul x86_fp80 %v6_29, %v6_2b
  %v2_32 = fptosi x86_fp80 %v7_2b to i32
  %v2_38 = fsub x86_fp80 0xK80000000000000000000, %v7_2b
  store x86_fp80 %v2_38, x86_fp80* %st6.global-to-local, align 4
  %v5_3a = load double, double* %v4_2b, align 4
  %v6_3a = fpext double %v5_3a to x86_fp80
  %v7_3a = fdiv x86_fp80 %v2_38, %v6_3a
  store x86_fp80 %v7_3a, x86_fp80* %st6.global-to-local, align 4
  %v4_3d = load double, double* %v3_29, align 4
  %v5_3d = fpext double %v4_3d to x86_fp80
  %v6_3d = fmul x86_fp80 %v7_3a, %v5_3d
  store x86_fp80 %v6_3d, x86_fp80* %st6.global-to-local, align 4
  %v4_3f = load double, double* %v4_21, align 4
  %v5_3f = fpext double %v4_3f to x86_fp80
  %v5_42 = load double, double* %v4_24, align 4
  %v6_42 = fpext double %v5_42 to x86_fp80
  %v7_42 = fmul x86_fp80 %v5_3f, %v6_42
  %v4_45 = fadd x86_fp80 %v6_3d, %v7_42
  store x86_fp80 %v4_45, x86_fp80* %st6.global-to-local, align 4
  %v2_47 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_45)
  %v3_47 = fcmp olt x86_fp80 %v2_47, 0xK403E8000000000000000
  br i1 %v3_47, label %bb, label %bb239

bb:                                               ; preds = %dec_label_pc_0
  %v4_47 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_45)
  store x86_fp80 %v4_47, x86_fp80* %st6.global-to-local, align 4
  store i3 %v6_1e, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %bb239

bb239:                                            ; preds = %dec_label_pc_0, %bb
  %v0_4b = phi i3 [ %v0_1e, %dec_label_pc_0 ], [ %v6_1e, %bb ]
  %v3_4f = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_4f = add i3 %v0_4b, -2
  store i3 %v5_4f, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_64 = urem i32 %v2_32, 2
  %v2_64 = icmp eq i32 %v1_64, 0
  store i32 %v1_64, i32* @eax, align 8
  %v1_67 = icmp eq i1 %v2_64, false
  %tmp240 = bitcast double %v3_4f to i64
  %tmp241 = trunc i64 %tmp240 to i32
  %v1_6e.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v1_67, label %dec_label_pc_6b, label %dec_label_pc_69

dec_label_pc_69:                                  ; preds = %bb239
  %v2_69 = fsub x86_fp80 0xK80000000000000000000, %v1_6e.pre
  store x86_fp80 %v2_69, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_6b

dec_label_pc_6b:                                  ; preds = %bb239, %dec_label_pc_69
  %v1_6e = phi x86_fp80 [ %v2_69, %dec_label_pc_69 ], [ %v1_6e.pre, %bb239 ]
  %v3_6e = add i32 %v1_1e, -40
  %v4_6e = inttoptr i32 %v3_6e to double*
  %v5_6e = load double, double* %v4_6e, align 4
  %v6_6e = fpext double %v5_6e to x86_fp80
  %v7_6e = fsub x86_fp80 %v1_6e, %v6_6e
  store x86_fp80 %v7_6e, x86_fp80* %st7.global-to-local, align 4
  %v3_71 = fptrunc x86_fp80 %v7_6e to double
  %v4_71 = inttoptr i32 %tmp241 to double*
  store double %v3_71, double* %v4_71, align 4
  %v1_73 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_73 = add i32 %v1_1e, -32
  %v4_73 = inttoptr i32 %v3_73 to double*
  %v5_73 = load double, double* %v4_73, align 4
  %v6_73 = fpext double %v5_73 to x86_fp80
  %v7_73 = fsub x86_fp80 %v1_73, %v6_73
  store x86_fp80 %v7_73, x86_fp80* %st7.global-to-local, align 4
  %v2_76 = load i32, i32* %ebx.global-to-local, align 4
  %v3_76 = fptrunc x86_fp80 %v7_73 to double
  %v4_76 = inttoptr i32 %v2_76 to double*
  store double %v3_76, double* %v4_76, align 4
  %v1_78 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_7a = add i3 %v0_4b, 2
  store i3 %v4_7a, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_5, i32* %ebx.global-to-local, align 4
  store i32 %v0_4, i32* %edi.global-to-local, align 4
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  ret x86_fp80 %v1_78
}

declare i32 @__asm_fpatan(i32, i32, i32, i32) 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

attributes #0 = { nounwind readnone speculatable }
