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_0 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_0 = load i32, i32* %esi.global-to-local, align 4
  %v2_0 = add i32 %v1_0, -104
  %v3_0 = inttoptr i32 %v2_0 to double*
  %v4_0 = load double, double* %v3_0, align 4
  %v5_0 = fpext double %v4_0 to x86_fp80
  store x86_fp80 %v5_0, x86_fp80* %st7.global-to-local, align 4
  %v2_3 = load i32, i32* @edi, align 8
  %v3_3 = add i32 %v2_3, -32
  %v4_3 = inttoptr i32 %v3_3 to double*
  %v5_3 = load double, double* %v4_3, align 4
  %v6_3 = fpext double %v5_3 to x86_fp80
  %v7_3 = fadd x86_fp80 %v5_0, %v6_3
  store x86_fp80 %v7_3, x86_fp80* %st7.global-to-local, align 4
  %v2_6 = add i32 %v1_0, -112
  %v3_6 = inttoptr i32 %v2_6 to double*
  %v4_6 = load double, double* %v3_6, align 4
  %v5_6 = fpext double %v4_6 to x86_fp80
  %v3_9 = add i32 %v2_3, -24
  %v4_9 = inttoptr i32 %v3_9 to double*
  %v5_9 = load double, double* %v4_9, align 4
  %v6_9 = fpext double %v5_9 to x86_fp80
  %v7_9 = fadd x86_fp80 %v5_6, %v6_9
  %v2_c = add i32 %v1_0, -120
  %v3_c = inttoptr i32 %v2_c to double*
  %v4_c = load double, double* %v3_c, align 4
  %v5_c = fpext double %v4_c to x86_fp80
  %v3_f = add i32 %v2_3, -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 %v5_c, %v6_f
  %v3_14 = add i32 %v2_3, -60
  %v4_14 = inttoptr i32 %v3_14 to float*
  %v5_14 = load float, float* %v4_14, align 4
  %v6_14 = fpext float %v5_14 to x86_fp80
  %v7_14 = fmul x86_fp80 %v7_f, %v6_14
  %v3_17 = add i3 %v0_0, 3
  %v3_19 = add i32 %v2_3, -64
  %v4_19 = inttoptr i32 %v3_19 to float*
  %v5_19 = load float, float* %v4_19, align 4
  %v6_19 = fpext float %v5_19 to x86_fp80
  %v7_19 = fmul x86_fp80 %v7_9, %v6_19
  %v4_1c = fadd x86_fp80 %v7_14, %v7_19
  %v3_20 = add i32 %v2_3, -68
  %v4_20 = inttoptr i32 %v3_20 to float*
  %v5_20 = load float, float* %v4_20, align 4
  %v6_20 = fpext float %v5_20 to x86_fp80
  %v7_20 = fmul x86_fp80 %v7_3, %v6_20
  %v4_23 = fadd x86_fp80 %v4_1c, %v7_20
  %v3_27 = add i32 %v2_3, -36
  %v4_27 = inttoptr i32 %v3_27 to float*
  %v5_27 = load float, float* %v4_27, align 4
  %v6_27 = fpext float %v5_27 to x86_fp80
  %v7_27 = fmul x86_fp80 %v7_f, %v6_27
  %v3_2c = add i32 %v2_3, -40
  %v4_2c = inttoptr i32 %v3_2c to float*
  %v5_2c = load float, float* %v4_2c, align 4
  %v6_2c = fpext float %v5_2c to x86_fp80
  %v7_2c = fmul x86_fp80 %v7_9, %v6_2c
  %v4_2f = fadd x86_fp80 %v7_27, %v7_2c
  %v3_33 = add i32 %v2_3, -44
  %v4_33 = inttoptr i32 %v3_33 to float*
  %v5_33 = load float, float* %v4_33, align 4
  %v6_33 = fpext float %v5_33 to x86_fp80
  %v7_33 = fmul x86_fp80 %v7_3, %v6_33
  %v4_36 = fadd x86_fp80 %v4_2f, %v7_33
  store x86_fp80 %v4_23, x86_fp80* %st7.global-to-local, align 4
  store i3 %v3_17, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_4f = call i32 @__asm_fpatan()
  store i32 %v0_4f, i32* %eax.global-to-local, align 4
  %v2_51 = load i32, i32* @edi, align 8
  %v3_51 = add i32 %v2_51, 16
  %v4_51 = inttoptr i32 %v3_51 to double*
  %v5_51 = load double, double* %v4_51, align 4
  %v6_51 = fpext double %v5_51 to x86_fp80
  %v7_51 = fsub x86_fp80 %v6_51, %v4_36
  %v4_54 = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_54 = fpext double %v4_54 to x86_fp80
  %v6_54 = fmul x86_fp80 %v7_51, %v5_54
  %tmp236 = bitcast double %v4_54 to i64
  %tmp237 = trunc i64 %tmp236 to i32
  %v3_56 = add i32 %tmp237, -72
  %v4_56 = inttoptr i32 %v3_56 to i32*
  %v5_56 = load i32, i32* %v4_56, align 4
  %v6_56 = sitofp i32 %v5_56 to x86_fp80
  %v7_56 = fmul x86_fp80 %v6_54, %v6_56
  %v2_59 = call x86_fp80 @llvm.round.f80(x86_fp80 %v7_56)
  %v2_5f = fptosi x86_fp80 %v2_59 to i32
  %v6_65 = sitofp i32 %v5_56 to x86_fp80
  %v7_65 = fdiv x86_fp80 %v2_59, %v6_65
  %v3_68 = add i32 %tmp237, 8
  %v4_68 = inttoptr i32 %v3_68 to double*
  %v5_68 = load double, double* %v4_68, align 4
  %v6_68 = fpext double %v5_68 to x86_fp80
  %v7_68 = fmul x86_fp80 %v7_65, %v6_68
  %v2_6b = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_68)
  %v3_6b = fcmp olt x86_fp80 %v2_6b, 0xK403E8000000000000000
  %v0_6b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v3_6b, label %bb, label %bb238

bb:                                               ; preds = %dec_label_pc_0
  %v8_6b = add i3 %v0_6b, -1
  store i3 %v8_6b, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %bb238

bb238:                                            ; preds = %dec_label_pc_0, %bb
  %v0_6d = phi i3 [ %v8_6b, %bb ], [ %v0_6b, %dec_label_pc_0 ]
  %v3_6d = add i3 %v0_6d, -1
  store i3 %v3_6d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_77 = urem i32 %v2_5f, 2
  %v2_77 = icmp eq i32 %v1_77, 0
  %v1_7a = icmp eq i1 %v2_77, false
  %v1_83.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v1_7a, label %dec_label_pc_7f, label %dec_label_pc_7c

dec_label_pc_7c:                                  ; preds = %bb238
  %v2_7c = fsub x86_fp80 0xK80000000000000000000, %v1_83.pre
  store x86_fp80 %v2_7c, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_7f

dec_label_pc_7f:                                  ; preds = %bb238, %dec_label_pc_7c
  %v1_83 = phi x86_fp80 [ %v2_7c, %dec_label_pc_7c ], [ %v1_83.pre, %bb238 ]
  %v2_83 = load i32, i32* %esi.global-to-local, align 4
  %v3_83 = add i32 %v2_83, -112
  %v4_83 = fptrunc x86_fp80 %v1_83 to double
  %v5_83 = inttoptr i32 %v3_83 to double*
  store double %v4_83, double* %v5_83, align 4
  %v2_86 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_88 = fmul x86_fp80 %v2_86, %v2_86
  %v4_8e = fsub x86_fp80 %v4_88, %v4_88
  %v2_90 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_8e)
  store x86_fp80 %v2_90, x86_fp80* %st7.global-to-local, align 4
  %v3_92 = add i32 %v2_83, -120
  %tmp239 = fptrunc x86_fp80 %v4_8e to double
  %v4_92 = call double @llvm.fabs.f64(double %tmp239)
  %v5_92 = inttoptr i32 %v3_92 to double*
  store double %v4_92, double* %v5_92, align 4
  %v1_95 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_9d = add i32 %v2_83, -104
  %v4_9d = fptrunc x86_fp80 %v1_95 to double
  %v5_9d = inttoptr i32 %v3_9d to double*
  store double %v4_9d, double* %v5_9d, align 4
  %v4_a0 = load double, double* %v5_92, align 4
  %v5_a0 = fpext double %v4_a0 to x86_fp80
  store x86_fp80 %v5_a0, x86_fp80* %st7.global-to-local, align 4
  %v2_a3 = load i32, i32* @edi, align 8
  %v3_a3 = add i32 %v2_a3, -76
  %v4_a3 = inttoptr i32 %v3_a3 to float*
  %v5_a3 = load float, float* %v4_a3, align 4
  %v6_a3 = fpext float %v5_a3 to x86_fp80
  %v7_a3 = fmul x86_fp80 %v5_a0, %v6_a3
  store x86_fp80 %v7_a3, x86_fp80* %st7.global-to-local, align 4
  %v4_a6 = load double, double* %v5_9d, align 4
  %v5_a6 = fpext double %v4_a6 to x86_fp80
  %v3_a9 = add i32 %v2_a3, -80
  %v4_a9 = inttoptr i32 %v3_a9 to float*
  %v5_a9 = load float, float* %v4_a9, align 4
  %v6_a9 = fpext float %v5_a9 to x86_fp80
  %v7_a9 = fmul x86_fp80 %v5_a6, %v6_a9
  %v4_ac = fadd x86_fp80 %v7_a3, %v7_a9
  store x86_fp80 %v4_ac, x86_fp80* %st7.global-to-local, align 4
  %v4_ae = load double, double* %v5_92, align 4
  %v5_ae = fpext double %v4_ae to x86_fp80
  %v5_b1 = load float, float* %v4_a9, align 4
  %v6_b1 = fpext float %v5_b1 to x86_fp80
  %v7_b1 = fmul x86_fp80 %v5_ae, %v6_b1
  %v4_b4 = load double, double* %v5_9d, align 4
  %v5_b4 = fpext double %v4_b4 to x86_fp80
  %v5_b7 = load float, float* %v4_a3, align 4
  %v6_b7 = fpext float %v5_b7 to x86_fp80
  %v7_b7 = fmul x86_fp80 %v5_b4, %v6_b7
  %v4_ba = fsub x86_fp80 %v7_b1, %v7_b7
  %v4_bc = fptrunc x86_fp80 %v4_ba to double
  store double %v4_bc, double* %v5_92, align 4
  %v1_bf = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_bf = fptrunc x86_fp80 %v1_bf to double
  store double %v4_bf, double* %v5_9d, align 4
  %v4_c2 = load double, double* %v5_92, align 4
  %v5_c2 = fpext double %v4_c2 to x86_fp80
  store x86_fp80 %v5_c2, x86_fp80* %st7.global-to-local, align 4
  %v1_c5 = load i32, i32* @edi, align 8
  %v2_c5 = add i32 %v1_c5, -80
  %v3_c5 = inttoptr i32 %v2_c5 to float*
  %v4_c5 = load float, float* %v3_c5, align 4
  %v5_c5 = fpext float %v4_c5 to x86_fp80
  %v3_c8 = add i32 %v1_c5, -88
  %v4_c8 = inttoptr i32 %v3_c8 to double*
  %v5_c8 = load double, double* %v4_c8, align 4
  %v6_c8 = fpext double %v5_c8 to x86_fp80
  %v7_c8 = fmul x86_fp80 %v5_c5, %v6_c8
  %v4_cb = fsub x86_fp80 %v7_c8, %v5_c2
  %tmp240 = fptrunc x86_fp80 %v4_cb to double
  %v4_d0 = call double @llvm.fabs.f64(double %tmp240)
  store double %v4_d0, double* %v5_92, align 4
  %v5_d3 = fpext double %v4_d0 to x86_fp80
  store x86_fp80 %v5_d3, x86_fp80* %st7.global-to-local, align 4
  %v2_d6 = load i32, i32* @edi, align 8
  %v3_d6 = add i32 %v2_d6, -76
  %v4_d6 = inttoptr i32 %v3_d6 to float*
  %v5_d6 = load float, float* %v4_d6, align 4
  %v6_d6 = fpext float %v5_d6 to x86_fp80
  %v7_d6 = fmul x86_fp80 %v5_d3, %v6_d6
  store x86_fp80 %v7_d6, x86_fp80* %st7.global-to-local, align 4
  %v4_d9 = load double, double* %v5_9d, align 4
  %v5_d9 = fpext double %v4_d9 to x86_fp80
  %v3_dc = add i32 %v2_d6, -80
  %v4_dc = inttoptr i32 %v3_dc to float*
  %v5_dc = load float, float* %v4_dc, align 4
  %v6_dc = fpext float %v5_dc to x86_fp80
  %v7_dc = fmul x86_fp80 %v5_d9, %v6_dc
  %v4_df = fsub x86_fp80 %v7_dc, %v7_d6
  store x86_fp80 %v4_df, x86_fp80* %st7.global-to-local, align 4
  %v4_e1 = load double, double* %v5_92, align 4
  %v5_e1 = fpext double %v4_e1 to x86_fp80
  %v5_e4 = load float, float* %v4_dc, align 4
  %v6_e4 = fpext float %v5_e4 to x86_fp80
  %v7_e4 = fmul x86_fp80 %v5_e1, %v6_e4
  %v4_e7 = load double, double* %v5_9d, align 4
  %v5_e7 = fpext double %v4_e7 to x86_fp80
  %v5_ea = load float, float* %v4_d6, align 4
  %v6_ea = fpext float %v5_ea to x86_fp80
  %v7_ea = fmul x86_fp80 %v5_e7, %v6_ea
  %v4_ed = fadd x86_fp80 %v7_e4, %v7_ea
  %v4_ef = fptrunc x86_fp80 %v4_ed to double
  store double %v4_ef, double* %v5_92, align 4
  %v1_f2 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_f2 = fptrunc x86_fp80 %v1_f2 to double
  store double %v4_f2, double* %v5_9d, align 4
  %v4_f5 = load double, double* %v5_92, align 4
  %v5_f5 = fpext double %v4_f5 to x86_fp80
  store x86_fp80 %v5_f5, x86_fp80* %st7.global-to-local, align 4
  %v1_f8 = load i32, i32* @edi, align 8
  %v2_f8 = add i32 %v1_f8, -76
  %v3_f8 = inttoptr i32 %v2_f8 to float*
  %v4_f8 = load float, float* %v3_f8, align 4
  %v5_f8 = fpext float %v4_f8 to x86_fp80
  %v3_fb = add i32 %v1_f8, -88
  %v4_fb = inttoptr i32 %v3_fb to double*
  %v5_fb = load double, double* %v4_fb, align 4
  %v6_fb = fpext double %v5_fb to x86_fp80
  %v7_fb = fmul x86_fp80 %v5_f8, %v6_fb
  %v4_fe = fsub x86_fp80 %v7_fb, %v5_f5
  %v2_100 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_fe)
  store x86_fp80 %v2_100, x86_fp80* %st7.global-to-local, align 4
  %tmp241 = fptrunc x86_fp80 %v4_fe to double
  %v4_102 = call double @llvm.fabs.f64(double %tmp241)
  store double %v4_102, double* %v5_92, align 4
  %v1_105 = load i32, i32* @edi, align 8
  %v2_105 = add i32 %v1_105, -96
  %v3_105 = inttoptr i32 %v2_105 to double*
  %v4_105 = load double, double* %v3_105, align 4
  %v5_105 = fpext double %v4_105 to x86_fp80
  store x86_fp80 %v5_105, x86_fp80* %st7.global-to-local, align 4
  %v4_108 = load double, double* %v5_9d, align 4
  %v5_108 = fpext double %v4_108 to x86_fp80
  %v4_10b = fmul x86_fp80 %v5_105, %v5_108
  %v4_10d = fptrunc x86_fp80 %v4_10b to double
  store double %v4_10d, double* %v5_9d, align 4
  %v4_110 = load double, double* %v5_83, align 4
  %v5_110 = fpext double %v4_110 to x86_fp80
  %v3_113 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_113 = fmul x86_fp80 %v3_113, %v5_110
  %v2_115 = load i32, i32* %esi.global-to-local, align 4
  %v3_115 = add i32 %v2_115, -112
  %v4_115 = fptrunc x86_fp80 %v4_113 to double
  %v5_115 = inttoptr i32 %v3_115 to double*
  store double %v4_115, double* %v5_115, align 4
  %v2_118 = add i32 %v2_115, -120
  %v3_118 = inttoptr i32 %v2_118 to double*
  %v4_118 = load double, double* %v3_118, align 4
  %v5_118 = fpext double %v4_118 to x86_fp80
  %v3_11b = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_11b = fmul x86_fp80 %v3_11b, %v5_118
  %v4_11d = fptrunc x86_fp80 %v4_11b to double
  store double %v4_11d, double* %v3_118, align 4
  %v2_120 = add i32 %v2_115, 112
  %v3_120 = inttoptr i32 %v2_120 to double*
  %v4_120 = load double, double* %v3_120, align 4
  %v5_120 = fpext double %v4_120 to x86_fp80
  %v3_123 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_123 = fmul x86_fp80 %v3_123, %v5_120
  %v4_125 = fptrunc x86_fp80 %v4_123 to double
  store double %v4_125, double* %v3_120, align 4
  %v4_12a = load double, double* %v3_118, align 4
  %v5_12a = fpext double %v4_12a to x86_fp80
  store x86_fp80 %v5_12a, x86_fp80* %st7.global-to-local, align 4
  %v2_12d = load i32, i32* @edi, align 8
  %v3_12d = add i32 %v2_12d, -104
  %v4_12d = inttoptr i32 %v3_12d to double*
  %v5_12d = load double, double* %v4_12d, align 4
  %v6_12d = fpext double %v5_12d to x86_fp80
  %v7_12d = fsub x86_fp80 %v5_12a, %v6_12d
  store x86_fp80 %v7_12d, x86_fp80* %st7.global-to-local, align 4
  %v4_130 = fptrunc x86_fp80 %v7_12d to double
  store double %v4_130, double* %v3_118, align 4
  %v6_130 = add i3 %v0_6d, -3
  %v2_133 = add i32 %v2_115, -104
  %v3_133 = inttoptr i32 %v2_133 to double*
  %v4_133 = load double, double* %v3_133, align 4
  %v5_133 = fpext double %v4_133 to x86_fp80
  store x86_fp80 %v5_133, x86_fp80* %st7.global-to-local, align 4
  %v2_136 = load i32, i32* @edi, align 8
  %v3_136 = add i32 %v2_136, -112
  %v4_136 = inttoptr i32 %v3_136 to double*
  %v5_136 = load double, double* %v4_136, align 4
  %v6_136 = fpext double %v5_136 to x86_fp80
  %v7_136 = fsub x86_fp80 %v5_133, %v6_136
  store x86_fp80 %v7_136, x86_fp80* %st7.global-to-local, align 4
  %v4_139 = fptrunc x86_fp80 %v7_136 to double
  store double %v4_139, double* %v3_133, align 4
  store i3 %v6_130, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_13c = load i32, i32* %eax.global-to-local, align 4
  ret i32 %v0_13c
}

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

attributes #0 = { nounwind readnone speculatable }
