source_filename = "test"
target datalayout = "e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

@edi = internal unnamed_addr global i32 0, align 8

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %eax.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_3 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_3 = load i32, i32* @edi, align 8
  %v2_3 = add i32 %v1_3, -80
  %v3_3 = inttoptr i32 %v2_3 to double*
  %v4_3 = load double, double* %v3_3, align 4
  %v5_3 = fpext double %v4_3 to x86_fp80
  store x86_fp80 %v5_3, x86_fp80* %st7.global-to-local, align 4
  %v1_6 = load i32, i32* %esi.global-to-local, align 4
  %v2_b = add i32 %v1_6, -120
  %v3_b = inttoptr i32 %v2_b to double*
  %v4_b = load double, double* %v3_b, align 4
  %v5_b = fpext double %v4_b to x86_fp80
  %v4_e = fmul x86_fp80 %v5_3, %v5_b
  %v3_10 = add i32 %v1_3, -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 = fadd x86_fp80 %v4_e, %v6_10
  %v3_15 = add i3 %v0_3, 3
  store i3 %v3_15, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_17 = call i32 @__asm_fpatan()
  store i32 %v0_17, i32* %eax.global-to-local, align 4
  %v4_1b = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_1b = fpext double %v4_1b to x86_fp80
  %tmp234 = fmul x86_fp80 %v7_10, %v5_1b
  %tmp235 = bitcast double %v4_1b to i64
  %tmp236 = trunc i64 %tmp235 to i32
  %v2_1d = add i32 %tmp236, -72
  %v3_1d = inttoptr i32 %v2_1d to i32*
  %v4_1d = load i32, i32* %v3_1d, align 4
  %v5_1d = sitofp i32 %v4_1d to x86_fp80
  %v6_1d = add i3 %v0_3, 2
  %tmp239 = fmul x86_fp80 %tmp234, %v5_1d
  %v4_22 = fsub x86_fp80 0xK80000000000000000000, %tmp239
  %v2_24 = call x86_fp80 @llvm.round.f80(x86_fp80 %v4_22)
  %v2_26 = fptosi x86_fp80 %v2_24 to i32
  %v4_29 = fdiv x86_fp80 %v2_24, %v5_1d
  %v3_2b = add i32 %tmp236, 8
  %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 %v4_29, %v6_2b
  %v2_2e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_2b)
  %v3_2e = fcmp olt x86_fp80 %v2_2e, 0xK403E8000000000000000
  br i1 %v3_2e, label %bb, label %bb237

bb:                                               ; preds = %dec_label_pc_0
  store i3 %v6_1d, i3* %fpu_stat_TOP.global-to-local, align 1
  %.pre = add i3 %v0_3, 1
  br label %bb237

bb237:                                            ; preds = %dec_label_pc_0, %bb
  %v0_30 = phi i3 [ %v3_15, %dec_label_pc_0 ], [ %v6_1d, %bb ]
  %v3_30.pre-phi = phi i3 [ %v6_1d, %dec_label_pc_0 ], [ %.pre, %bb ]
  store i3 %v3_30.pre-phi, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_3a = urem i32 %v2_26, 2
  %v4_3a = icmp eq i32 %v3_3a, 0
  %v1_3e = icmp eq i1 %v4_3a, false
  %v2_42.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v1_3e, label %dec_label_pc_42, label %dec_label_pc_40

dec_label_pc_40:                                  ; preds = %bb237
  %v2_40 = fsub x86_fp80 0xK80000000000000000000, %v2_42.pre
  store x86_fp80 %v2_40, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_42

dec_label_pc_42:                                  ; preds = %bb237, %dec_label_pc_40
  %v2_42 = phi x86_fp80 [ %v2_40, %dec_label_pc_40 ], [ %v2_42.pre, %bb237 ]
  %v4_44 = fmul x86_fp80 %v2_42, %v2_42
  %v4_46 = fmul x86_fp80 %v4_44, %v4_44
  %v4_48 = fsub x86_fp80 %v4_46, %v4_46
  store x86_fp80 %v4_48, x86_fp80* %st7.global-to-local, align 4
  %v1_4c = load i32, i32* %esi.global-to-local, align 4
  %v2_4c = add i32 %v1_4c, -104
  %v3_4c = inttoptr i32 %v2_4c to double*
  %v4_4c = load double, double* %v3_4c, align 4
  %v5_4c = fpext double %v4_4c to x86_fp80
  store x86_fp80 %v5_4c, x86_fp80* %st7.global-to-local, align 4
  %v3_52 = add i32 %tmp236, -24
  %v4_52 = inttoptr i32 %v3_52 to double*
  %v5_52 = load double, double* %v4_52, align 4
  %v6_52 = fpext double %v5_52 to x86_fp80
  %v7_52 = fadd x86_fp80 %v5_4c, %v6_52
  store x86_fp80 %v7_52, x86_fp80* %st7.global-to-local, align 4
  %v3_6e = add i32 %tmp236, -36
  %v4_6e = inttoptr i32 %v3_6e to float*
  %v5_6e = load float, float* %v4_6e, align 4
  %v6_6e = fpext float %v5_6e to x86_fp80
  %v7_6e = fmul x86_fp80 %v7_52, %v6_6e
  %v3_74 = add i32 %tmp236, -40
  %v4_74 = inttoptr i32 %v3_74 to float*
  %v5_74 = load float, float* %v4_74, align 4
  %v6_74 = fpext float %v5_74 to x86_fp80
  %v7_74 = fmul x86_fp80 %v7_52, %v6_74
  %v4_78 = fadd x86_fp80 %v7_6e, %v7_74
  %v3_7c = add i32 %tmp236, -44
  %v4_7c = inttoptr i32 %v3_7c to float*
  %v5_7c = load float, float* %v4_7c, align 4
  %v6_7c = fpext float %v5_7c to x86_fp80
  %v7_7c = fmul x86_fp80 %v7_52, %v6_7c
  %v4_80 = fadd x86_fp80 %v4_78, %v7_7c
  store x86_fp80 %v4_80, x86_fp80* %st7.global-to-local, align 4
  %v3_84 = add i32 %tmp236, -48
  %v4_84 = inttoptr i32 %v3_84 to float*
  %v5_84 = load float, float* %v4_84, align 4
  %v6_84 = fpext float %v5_84 to x86_fp80
  %v7_84 = fmul x86_fp80 %v7_52, %v6_84
  store x86_fp80 %v7_84, x86_fp80* %st7.global-to-local, align 4
  %v3_8a = add i32 %tmp236, -52
  %v4_8a = inttoptr i32 %v3_8a to float*
  %v5_8a = load float, float* %v4_8a, align 4
  %v6_8a = fpext float %v5_8a to x86_fp80
  %v7_8a = fmul x86_fp80 %v7_84, %v6_8a
  %v4_8e = fadd x86_fp80 %v7_8a, %v7_8a
  store x86_fp80 %v4_8e, x86_fp80* %st7.global-to-local, align 4
  %v3_92 = add i32 %tmp236, -56
  %v4_92 = inttoptr i32 %v3_92 to float*
  %v5_92 = load float, float* %v4_92, align 4
  %v6_92 = fpext float %v5_92 to x86_fp80
  %v7_92 = fmul x86_fp80 %v4_8e, %v6_92
  %v4_96 = fadd x86_fp80 %v7_92, %v7_92
  store x86_fp80 %v4_96, x86_fp80* %st7.global-to-local, align 4
  %v3_98 = add i32 %v1_4c, -112
  %v4_98 = fptrunc x86_fp80 %v4_96 to double
  %v5_98 = inttoptr i32 %v3_98 to double*
  store double %v4_98, double* %v5_98, align 4
  %v1_9c = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_9c = fsub x86_fp80 0xK80000000000000000000, %v1_9c
  store x86_fp80 %v2_9c, x86_fp80* %st7.global-to-local, align 4
  %v2_a0 = load i32, i32* @edi, align 8
  %v3_a0 = add i32 %v2_a0, -32
  %v4_a0 = inttoptr i32 %v3_a0 to double*
  %v5_a0 = load double, double* %v4_a0, align 4
  %v6_a0 = fpext double %v5_a0 to x86_fp80
  %v7_a0 = fmul x86_fp80 %v2_9c, %v6_a0
  store x86_fp80 %v7_a0, x86_fp80* %st7.global-to-local, align 4
  %v4_a4 = fptrunc x86_fp80 %v7_a0 to double
  store double %v4_a4, double* %v3_4c, align 4
  %v1_a8 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_aa = fmul x86_fp80 %v1_a8, %v1_a8
  store x86_fp80 %v3_aa, x86_fp80* %st7.global-to-local, align 4
  %v4_ac = load double, double* %v5_98, align 4
  %v5_ac = fpext double %v4_ac to x86_fp80
  %v3_b0 = fmul x86_fp80 %v5_ac, %v5_ac
  %v4_b2 = fadd x86_fp80 %v3_aa, %v3_b0
  %v4_b8 = fadd x86_fp80 %v4_b2, 0xKBFFF8000000000000000
  store x86_fp80 %v4_b8, x86_fp80* %st7.global-to-local, align 4
  %v4_be = fadd x86_fp80 %v4_b2, 0xK3FFF8000000000000000
  %v4_c0 = load double, double* %v5_98, align 4
  %v5_c0 = fpext double %v4_c0 to x86_fp80
  %v3_c4 = fadd x86_fp80 %v5_c0, %v5_c0
  %v4_c6 = fadd x86_fp80 %v4_be, %v3_c4
  %v4_c8 = fmul x86_fp80 %v4_b8, %v4_c6
  %v4_ce = fdiv x86_fp80 0xK3FFF8000000000000000, %v4_c8
  %v4_d2 = fmul x86_fp80 %v4_ce, %v4_ce
  store x86_fp80 %v4_d2, x86_fp80* %st7.global-to-local, align 4
  %v2_d4 = load i32, i32* @edi, align 8
  %v3_d4 = add i32 %v2_d4, -88
  %v4_d4 = inttoptr i32 %v3_d4 to double*
  %v5_d4 = load double, double* %v4_d4, align 4
  %v6_d4 = fpext double %v5_d4 to x86_fp80
  %v7_d4 = fadd x86_fp80 %v4_d2, %v6_d4
  store x86_fp80 %v7_d4, x86_fp80* %st7.global-to-local, align 4
  %v3_d8 = add i32 %v1_4c, -120
  %v4_d8 = fptrunc x86_fp80 %v7_d4 to double
  %v5_d8 = inttoptr i32 %v3_d8 to double*
  store double %v4_d8, double* %v5_d8, align 4
  %v1_dc = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_dc = fadd x86_fp80 %v1_dc, %v1_dc
  %v4_e0 = fmul x86_fp80 %v3_dc, %v3_dc
  store x86_fp80 %v4_e0, x86_fp80* %st7.global-to-local, align 4
  %v4_e2 = fptrunc x86_fp80 %v4_e0 to double
  store double %v4_e2, double* %v5_98, align 4
  %v6_e2 = add i3 %v0_30, -3
  %v2_e6 = add i32 %v1_4c, 112
  %v3_e6 = inttoptr i32 %v2_e6 to double*
  %v4_e6 = load double, double* %v3_e6, align 4
  %v5_e6 = fpext double %v4_e6 to x86_fp80
  store x86_fp80 %v5_e6, x86_fp80* %st7.global-to-local, align 4
  %v1_e9 = load i32, i32* @edi, align 8
  %v2_e9 = add i32 %v1_e9, -32
  %v3_e9 = inttoptr i32 %v2_e9 to double*
  %v4_e9 = load double, double* %v3_e9, align 4
  %tmp238 = call double @llvm.fabs.f64(double %v4_e9)
  %v2_ec = fpext double %tmp238 to x86_fp80
  %v4_ee = fmul x86_fp80 %v5_e6, %v2_ec
  store x86_fp80 %v4_ee, x86_fp80* %st7.global-to-local, align 4
  %v2_f0 = load i32, i32* %esi.global-to-local, align 4
  %v3_f0 = add i32 %v2_f0, 112
  %v4_f0 = fptrunc x86_fp80 %v4_ee to double
  %v5_f0 = inttoptr i32 %v3_f0 to double*
  store double %v4_f0, double* %v5_f0, align 4
  store i3 %v6_e2, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_f6 = load i32, i32* %eax.global-to-local, align 4
  ret i32 %v0_f6
}

declare i32 @__asm_fpatan() local_unnamed_addr

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

; 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 double @llvm.fabs.f64(double) #0

attributes #0 = { nounwind readnone speculatable }
