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
  %st6.global-to-local = alloca x86_fp80, align 4
  %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* %esi.global-to-local, align 4
  %v2_3 = add i32 %v1_3, -112
  %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
  %v2_6 = load i32, i32* @edi, align 8
  %v3_6 = add i32 %v2_6, -80
  %v4_6 = inttoptr i32 %v3_6 to double*
  %v5_6 = load double, double* %v4_6, align 4
  %v6_6 = fpext double %v5_6 to x86_fp80
  %v7_6 = fmul x86_fp80 %v5_3, %v6_6
  store x86_fp80 %v7_6, x86_fp80* %st7.global-to-local, align 4
  %v2_9 = add i32 %v1_3, -120
  %v3_9 = inttoptr i32 %v2_9 to double*
  %v4_9 = load double, double* %v3_9, align 4
  %v5_9 = fpext double %v4_9 to x86_fp80
  store x86_fp80 %v5_9, x86_fp80* %st6.global-to-local, align 4
  %v5_c = load double, double* %v4_6, align 4
  %v6_c = fpext double %v5_c to x86_fp80
  %v7_c = fmul x86_fp80 %v5_9, %v6_c
  store x86_fp80 %v7_c, x86_fp80* %st6.global-to-local, align 4
  %v3_f = add i32 %v2_6, -16
  %v4_f = inttoptr i32 %v3_f to double*
  %v5_f = load double, double* %v4_f, align 4
  %v6_f = fpext double %v5_f to x86_fp80
  %v7_f = fadd x86_fp80 %v7_c, %v6_f
  store x86_fp80 %v7_f, x86_fp80* %st6.global-to-local, align 4
  %v3_14 = xor i3 %v0_3, -4
  store i3 %v3_14, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_16 = call i32 @__asm_fpatan()
  store i32 %v0_16, 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
  %tmp241 = fmul x86_fp80 %v7_f, %v5_1b
  %tmp242 = bitcast double %v4_1b to i64
  %tmp243 = trunc i64 %tmp242 to i32
  %v3_1d = add i32 %tmp243, -72
  %v4_1d = inttoptr i32 %v3_1d to i32*
  %v5_1d = load i32, i32* %v4_1d, align 4
  %v6_1d = sitofp i32 %v5_1d to x86_fp80
  %tmp248 = fmul x86_fp80 %tmp241, %v6_1d
  %v7_1d = fsub x86_fp80 0xK80000000000000000000, %tmp248
  %v2_20 = call x86_fp80 @llvm.round.f80(x86_fp80 %v7_1d)
  %tmp249 = fptrunc x86_fp80 %v2_20 to float
  %v4_25 = bitcast float %tmp249 to i32
  %v5_28 = load i32, i32* %v4_1d, align 4
  %v6_28 = sitofp i32 %v5_28 to x86_fp80
  %v7_28 = fdiv x86_fp80 %v2_20, %v6_28
  %v3_2b = add i32 %tmp243, 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 %v7_28, %v6_2b
  %v2_2e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_2b)
  %v3_2e = fcmp olt x86_fp80 %v2_2e, 0xK403E8000000000000000
  %v0_2e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v3_2e, label %bb, label %bb245

bb:                                               ; preds = %dec_label_pc_0
  %v8_2e = add i3 %v0_2e, -1
  store i3 %v8_2e, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %bb245

bb245:                                            ; preds = %dec_label_pc_0, %bb
  %v0_30 = phi i3 [ %v8_2e, %bb ], [ %v0_2e, %dec_label_pc_0 ]
  %v3_30 = add i3 %v0_30, -1
  store i3 %v3_30, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_3a = urem i32 %v4_25, 2
  %v2_3a = icmp eq i32 %v1_3a, 0
  %v1_3d = icmp eq i1 %v2_3a, false
  %v1_42.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v1_3d, label %dec_label_pc_42, label %dec_label_pc_3f

dec_label_pc_3f:                                  ; preds = %bb245
  %v2_3f = fsub x86_fp80 0xK80000000000000000000, %v1_42.pre
  store x86_fp80 %v2_3f, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_42

dec_label_pc_42:                                  ; preds = %bb245, %dec_label_pc_3f
  %v1_42 = phi x86_fp80 [ %v2_3f, %dec_label_pc_3f ], [ %v1_42.pre, %bb245 ]
  %v2_42 = load i32, i32* %esi.global-to-local, align 4
  %v3_42 = add i32 %v2_42, -112
  %v4_42 = fptrunc x86_fp80 %v1_42 to double
  %v5_42 = inttoptr i32 %v3_42 to double*
  store double %v4_42, double* %v5_42, align 4
  %v2_45 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_47 = fmul x86_fp80 %v2_45, %v2_45
  %v4_4b = fmul x86_fp80 %v4_47, %v4_47
  store x86_fp80 %v4_4b, x86_fp80* %st6.global-to-local, align 4
  %v4_4d = fsub x86_fp80 %v4_47, %v4_47
  store x86_fp80 %v4_4d, x86_fp80* %st7.global-to-local, align 4
  %v3_51 = add i32 %v2_42, -120
  %v4_51 = fptrunc x86_fp80 %v4_4d to double
  %v5_51 = inttoptr i32 %v3_51 to double*
  store double %v4_51, double* %v5_51, align 4
  %v2_5c = add i32 %v2_42, -104
  %v3_5c = inttoptr i32 %v2_5c to double*
  %v4_5c = load double, double* %v3_5c, align 4
  %v5_5c = fpext double %v4_5c to x86_fp80
  store x86_fp80 %v5_5c, x86_fp80* %st7.global-to-local, align 4
  %v4_5f = load double, double* %v5_42, align 4
  %v5_5f = fpext double %v4_5f to x86_fp80
  store x86_fp80 %v5_5f, x86_fp80* %st6.global-to-local, align 4
  %v4_62 = load double, double* %v5_51, align 4
  %v5_62 = fpext double %v4_62 to x86_fp80
  %v2_65 = load i32, i32* @edi, align 8
  %v3_65 = add i32 %v2_65, -24
  %v4_65 = inttoptr i32 %v3_65 to double*
  %v5_65 = load double, double* %v4_65, align 4
  %v6_65 = fpext double %v5_65 to x86_fp80
  %v7_65 = fadd x86_fp80 %v5_62, %v6_65
  %v3_6a = add i32 %v2_65, -60
  %v4_6a = inttoptr i32 %v3_6a to float*
  %v5_6a = load float, float* %v4_6a, align 4
  %v6_6a = fpext float %v5_6a to x86_fp80
  %v7_6a = fmul x86_fp80 %v7_65, %v6_6a
  %v3_6f = add i32 %v2_65, -64
  %v4_6f = inttoptr i32 %v3_6f to float*
  %v5_6f = load float, float* %v4_6f, align 4
  %v6_6f = fpext float %v5_6f to x86_fp80
  %v7_6f = fmul x86_fp80 %v5_5f, %v6_6f
  %v4_72 = fadd x86_fp80 %v7_6a, %v7_6f
  %v3_76 = add i32 %v2_65, -68
  %v4_76 = inttoptr i32 %v3_76 to float*
  %v5_76 = load float, float* %v4_76, align 4
  %v6_76 = fpext float %v5_76 to x86_fp80
  %v7_76 = fmul x86_fp80 %v5_5c, %v6_76
  %v4_79 = fadd x86_fp80 %v4_72, %v7_76
  %v3_7d = add i32 %v2_65, -36
  %v4_7d = inttoptr i32 %v3_7d to float*
  %v5_7d = load float, float* %v4_7d, align 4
  %v6_7d = fpext float %v5_7d to x86_fp80
  %v7_7d = fmul x86_fp80 %v7_65, %v6_7d
  %v3_82 = add i32 %v2_65, -40
  %v4_82 = inttoptr i32 %v3_82 to float*
  %v5_82 = load float, float* %v4_82, align 4
  %v6_82 = fpext float %v5_82 to x86_fp80
  %v7_82 = fmul x86_fp80 %v5_5f, %v6_82
  %v4_85 = fadd x86_fp80 %v7_7d, %v7_82
  %v3_89 = add i32 %v2_65, -44
  %v4_89 = inttoptr i32 %v3_89 to float*
  %v5_89 = load float, float* %v4_89, align 4
  %v6_89 = fpext float %v5_89 to x86_fp80
  %v7_89 = fmul x86_fp80 %v5_5c, %v6_89
  %v4_8c = fadd x86_fp80 %v4_85, %v7_89
  %v3_90 = add i32 %v2_65, -48
  %v4_90 = inttoptr i32 %v3_90 to float*
  %v5_90 = load float, float* %v4_90, align 4
  %v6_90 = fpext float %v5_90 to x86_fp80
  %v7_90 = fmul x86_fp80 %v7_65, %v6_90
  store x86_fp80 %v7_90, x86_fp80* %st6.global-to-local, align 4
  %v3_95 = add i32 %v2_65, -52
  %v4_95 = inttoptr i32 %v3_95 to float*
  %v5_95 = load float, float* %v4_95, align 4
  %v6_95 = fpext float %v5_95 to x86_fp80
  %v7_95 = fmul x86_fp80 %v5_5f, %v6_95
  %v4_98 = fadd x86_fp80 %v7_90, %v7_95
  store x86_fp80 %v4_98, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_79, x86_fp80* %st7.global-to-local, align 4
  %v3_9c = add i32 %v2_65, -56
  %v4_9c = inttoptr i32 %v3_9c to float*
  %v5_9c = load float, float* %v4_9c, align 4
  %v6_9c = fpext float %v5_9c to x86_fp80
  %v7_9c = fmul x86_fp80 %v5_5c, %v6_9c
  %v4_9f = fadd x86_fp80 %v4_98, %v7_9c
  store x86_fp80 %v4_9f, x86_fp80* %st6.global-to-local, align 4
  %v2_a1 = load i32, i32* %esi.global-to-local, align 4
  %v3_a1 = add i32 %v2_a1, -112
  %v4_a1 = fptrunc x86_fp80 %v4_8c to double
  %v5_a1 = inttoptr i32 %v3_a1 to double*
  store double %v4_a1, double* %v5_a1, align 4
  %v1_a4 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_a4 = fsub x86_fp80 0xK80000000000000000000, %v1_a4
  store x86_fp80 %v2_a4, x86_fp80* %st6.global-to-local, align 4
  %v3_a6 = add i32 %v2_a1, -120
  %v4_a6 = fptrunc x86_fp80 %v2_a4 to double
  %v5_a6 = inttoptr i32 %v3_a6 to double*
  store double %v4_a6, double* %v5_a6, align 4
  %v1_a9 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_a9 = add i32 %v2_a1, -104
  %v4_a9 = fptrunc x86_fp80 %v1_a9 to double
  %v5_a9 = inttoptr i32 %v3_a9 to double*
  store double %v4_a9, double* %v5_a9, align 4
  %v4_ac = load double, double* %v5_a6, align 4
  %v5_ac = fpext double %v4_ac to x86_fp80
  %v3_b3 = fmul x86_fp80 %v5_ac, %v5_ac
  store x86_fp80 %v3_b3, x86_fp80* %st7.global-to-local, align 4
  %v4_b8 = load double, double* %v5_a1, align 4
  %v5_b8 = fpext double %v4_b8 to x86_fp80
  %v3_bb = fmul x86_fp80 %v5_b8, %v5_b8
  %v10_bf = fadd x86_fp80 %v3_bb, %v3_b3
  %v4_c5 = fadd x86_fp80 %v3_b3, %v3_bb
  %v4_c9 = fadd x86_fp80 %v4_c5, 0xKBFFF8000000000000000
  store x86_fp80 %v4_c9, x86_fp80* %st7.global-to-local, align 4
  %v4_d0 = fadd x86_fp80 %v10_bf, 0xK3FFF8000000000000000
  store x86_fp80 %v4_d0, x86_fp80* %st6.global-to-local, align 4
  %v4_d2 = load double, double* %v5_a1, align 4
  %v5_d2 = fpext double %v4_d2 to x86_fp80
  %v3_d5 = fadd x86_fp80 %v5_d2, %v5_d2
  %v4_d7 = fadd x86_fp80 %v3_d5, %v4_d0
  store x86_fp80 %v4_d7, x86_fp80* %st6.global-to-local, align 4
  %v4_dd = fdiv x86_fp80 %v4_c9, %v4_d7
  store x86_fp80 %v4_dd, x86_fp80* %st7.global-to-local, align 4
  %v2_df = load i32, i32* @edi, align 8
  %v3_df = add i32 %v2_df, -88
  %v4_df = inttoptr i32 %v3_df to double*
  %v5_df = load double, double* %v4_df, align 4
  %v6_df = fpext double %v5_df to x86_fp80
  %v7_df = fadd x86_fp80 %v4_dd, %v6_df
  store x86_fp80 %v7_df, x86_fp80* %st7.global-to-local, align 4
  %v3_e6 = add i32 %v2_df, -80
  %v4_e6 = inttoptr i32 %v3_e6 to double*
  %v5_e6 = load double, double* %v4_e6, align 4
  %v6_e6 = fpext double %v5_e6 to x86_fp80
  %v7_e6 = fdiv x86_fp80 %v7_df, %v6_e6
  %v4_e9 = fptrunc x86_fp80 %v7_e6 to double
  store double %v4_e9, double* %v5_a6, align 4
  %v3_f0 = fadd x86_fp80 %v5_ac, %v5_ac
  %v2_f2 = fsub x86_fp80 0xK80000000000000000000, %v3_f0
  %v7_f4 = fdiv x86_fp80 %v2_f2, %v4_d7
  store x86_fp80 %v7_f4, x86_fp80* %st7.global-to-local, align 4
  %v2_fc = load i32, i32* @edi, align 8
  %v3_fc = add i32 %v2_fc, -80
  %v4_fc = inttoptr i32 %v3_fc to double*
  %v5_fc = load double, double* %v4_fc, align 4
  %v6_fc = fpext double %v5_fc to x86_fp80
  %v7_fc = fdiv x86_fp80 %v7_f4, %v6_fc
  %v4_ff = fptrunc x86_fp80 %v7_fc to double
  store double %v4_ff, double* %v5_a1, align 4
  %v3_107 = fmul x86_fp80 %v7_df, %v7_df
  %v3_10d = fmul x86_fp80 %v7_f4, %v7_f4
  store x86_fp80 %v3_10d, x86_fp80* %st6.global-to-local, align 4
  %v4_10f = fadd x86_fp80 %v3_10d, %v3_107
  store x86_fp80 %v4_10f, x86_fp80* %st7.global-to-local, align 4
  %v2_111 = load i32, i32* @edi, align 8
  %v3_111 = add i32 %v2_111, -96
  %v4_111 = inttoptr i32 %v3_111 to double*
  %v5_111 = load double, double* %v4_111, align 4
  %v6_111 = fpext double %v5_111 to x86_fp80
  %v7_111 = fadd x86_fp80 %v4_10f, %v6_111
  %v2_114 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v7_111)
  store x86_fp80 %v2_114, x86_fp80* %st7.global-to-local, align 4
  %v2_117 = add i32 %v2_111, -32
  %v3_117 = inttoptr i32 %v2_117 to double*
  %v4_117 = load double, double* %v3_117, align 4
  %v5_117 = fpext double %v4_117 to x86_fp80
  %v4_11a = fdiv x86_fp80 %v5_117, %v2_114
  store x86_fp80 %v4_11a, x86_fp80* %st7.global-to-local, align 4
  %v2_11e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_11a)
  store x86_fp80 %v2_11e, x86_fp80* %st6.global-to-local, align 4
  %v3_120 = add i32 %v2_a1, 112
  %v4_120 = inttoptr i32 %v3_120 to double*
  %v5_120 = load double, double* %v4_120, align 4
  %v6_120 = fpext double %v5_120 to x86_fp80
  %v7_120 = fmul x86_fp80 %v2_11e, %v6_120
  store x86_fp80 %v7_120, x86_fp80* %st6.global-to-local, align 4
  %v4_123 = fptrunc x86_fp80 %v7_120 to double
  store double %v4_123, double* %v4_120, align 4
  %v1_126 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v5_126 = load double, double* %v5_a9, align 4
  %v6_126 = fpext double %v5_126 to x86_fp80
  %v7_126 = fmul x86_fp80 %v1_126, %v6_126
  store x86_fp80 %v7_126, x86_fp80* %st7.global-to-local, align 4
  %v4_129 = fptrunc x86_fp80 %v7_126 to double
  store double %v4_129, double* %v5_a9, align 4
  %v6_129 = xor i3 %v0_30, -4
  store i3 %v6_129, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_12f = load i32, i32* %eax.global-to-local, align 4
  ret i32 %v0_12f
}

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 x86_fp80 @llvm.cos.f80(x86_fp80) #0

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

attributes #0 = { nounwind readnone speculatable }
