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
@ecx = 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:
  %ebx.global-to-local = alloca i32, align 4
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %fpsw.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 i32, i32* %ebx.global-to-local, align 4
  %v0_4 = load i32, i32* @eax, align 8
  %v0_5 = load i32, i32* %esi.global-to-local, align 4
  %v0_6 = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* %ebx.global-to-local, align 4
  %v1_d = add i32 %arg1, 48
  %v2_d = inttoptr i32 %v1_d to i32*
  %v3_d = load i32, i32* %v2_d, align 4
  store i32 %v3_d, i32* %edi.global-to-local, align 4
  %v0_10 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_10 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_10 = fpext double %v3_10 to x86_fp80
  %v5_10 = add i3 %v0_10, -1
  store x86_fp80 %v4_10, x86_fp80* %st7.global-to-local, align 4
  %v3_12 = add i32 %v3_d, -16
  %v4_12 = inttoptr i32 %v3_12 to double*
  %v5_12 = load double, double* %v4_12, align 4
  %v6_12 = fpext double %v5_12 to x86_fp80
  %v7_12 = fadd x86_fp80 %v4_10, %v6_12
  %v3_15 = fptrunc x86_fp80 %v7_12 to double
  %v4_15 = inttoptr i32 %v0_4 to double*
  store double %v3_15, double* %v4_15, align 4
  %v3_17 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_17 = fpext double %v3_17 to x86_fp80
  store x86_fp80 %v4_17, x86_fp80* %st7.global-to-local, align 4
  %v3_19 = add i32 %v3_d, -24
  %v4_19 = inttoptr i32 %v3_19 to double*
  %v5_19 = load double, double* %v4_19, align 4
  %v6_19 = fpext double %v5_19 to x86_fp80
  %v7_19 = fadd x86_fp80 %v4_17, %v6_19
  %tmp242 = bitcast double %v3_17 to i64
  %tmp243 = trunc i64 %tmp242 to i32
  %v3_1c = fptrunc x86_fp80 %v7_19 to double
  %v4_1c = inttoptr i32 %tmp243 to double*
  store double %v3_1c, double* %v4_1c, align 4
  %v3_1e = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_1e = fpext double %v3_1e to x86_fp80
  store x86_fp80 %v4_1e, x86_fp80* %st7.global-to-local, align 4
  %v3_20 = add i32 %v3_d, -32
  %v4_20 = inttoptr i32 %v3_20 to double*
  %v5_20 = load double, double* %v4_20, align 4
  %v6_20 = fpext double %v5_20 to x86_fp80
  %v7_20 = fadd x86_fp80 %v4_1e, %v6_20
  store x86_fp80 %v7_20, x86_fp80* %st7.global-to-local, align 4
  %tmp244 = bitcast double %v3_1e to i64
  %tmp245 = trunc i64 %tmp244 to i32
  %v3_23 = fptrunc x86_fp80 %v7_20 to double
  %v4_23 = inttoptr i32 %tmp245 to double*
  store double %v3_23, double* %v4_23, align 4
  %v1_25 = load i32, i32* @ecx, align 8
  %v2_25 = add i32 %v1_25, 8
  %v3_25 = inttoptr i32 %v2_25 to double*
  %v4_25 = load double, double* %v3_25, align 4
  %v5_25 = fpext double %v4_25 to x86_fp80
  store x86_fp80 %v5_25, x86_fp80* %st7.global-to-local, align 4
  %v3_28 = add i32 %v3_d, -40
  %v4_28 = inttoptr i32 %v3_28 to double*
  %v5_28 = load double, double* %v4_28, align 4
  %v6_28 = fpext double %v5_28 to x86_fp80
  %v7_28 = fadd x86_fp80 %v5_25, %v6_28
  store x86_fp80 %v7_28, x86_fp80* %st7.global-to-local, align 4
  %v4_2b = fptrunc x86_fp80 %v7_28 to double
  store double %v4_2b, double* %v3_25, align 4
  %v1_2f = load i32, i32* @ecx, align 8
  %v2_2f = add i32 %v1_2f, 8
  %v3_2f = inttoptr i32 %v2_2f to double*
  %v4_2f = load double, double* %v3_2f, align 4
  %v5_2f = fpext double %v4_2f to x86_fp80
  %v3_32 = fmul x86_fp80 %v5_2f, %v5_2f
  %v3_34 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_34 = fpext double %v3_34 to x86_fp80
  %v3_36 = fmul x86_fp80 %v4_34, %v4_34
  %v4_38 = fadd x86_fp80 %v3_32, %v3_36
  %v3_3a = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_3a = fpext double %v3_3a to x86_fp80
  %v3_3c = fmul x86_fp80 %v4_3a, %v4_3a
  %v4_3e = fadd x86_fp80 %v3_3c, %v4_38
  %v2_40 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_3e)
  store x86_fp80 %v2_40, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v2_40, x86_fp80* %st6.global-to-local, align 4
  store i3 %v5_10, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_49 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_49 = call i16 @__asm_fnstsw(i32 %v0_49)
  %v2_49 = sext i16 %v1_49 to i32
  %v3_49 = load i32, i32* @eax, align 8
  %v4_49 = and i32 %v3_49, -65536
  %v2_49.masked = and i32 %v2_49, -48641
  %v13_4b = or i32 %v4_49, %v2_49.masked
  store i32 %v13_4b, i32* @eax, align 8
  %v0_cf = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_cf = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_cf = fpext double %v3_cf to x86_fp80
  %v5_cf = add i3 %v0_cf, -1
  store i3 %v5_cf, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_cf, x86_fp80* %st6.global-to-local, align 4
  %v2_d1 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_cf)
  %v3_d1 = fcmp olt x86_fp80 %v2_d1, 0xK403E8000000000000000
  br i1 %v3_d1, label %bb, label %dec_label_pc_d8

bb:                                               ; preds = %dec_label_pc_0
  %v4_5d = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_cf)
  store x86_fp80 %v4_5d, x86_fp80* %st6.global-to-local, align 4
  %v8_5d = add i3 %v0_cf, -2
  store i3 %v8_5d, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_d8

dec_label_pc_d8:                                  ; preds = %dec_label_pc_0, %bb
  %v0_61 = phi i3 [ %v5_cf, %dec_label_pc_0 ], [ %v8_5d, %bb ]
  %v2_61 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_65 = fmul x86_fp80 %v2_61, 0xK3FFFB8AA3B295C17F000
  store x86_fp80 %v4_65, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v3_69 = add i3 %v0_61, -3
  store i3 %v3_69, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_6b = call i32 @__asm_fprem()
  store i32 %v0_6b, i32* @eax, align 8
  %v0_6d = call i32 @__asm_f2xm1()
  store i32 %v0_6d, i32* @eax, align 8
  %v3_6f = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_6f = fadd x86_fp80 %v4_65, %v3_6f
  store x86_fp80 %v4_6f, x86_fp80* %st6.global-to-local, align 4
  %v7_6f = add i3 %v0_61, -2
  store i3 %v7_6f, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_71 = call i32 @__asm_fscale()
  store i32 %v0_71, i32* @eax, align 8
  store x86_fp80 %v4_6f, x86_fp80* %st7.global-to-local, align 4
  %v4_7e = fdiv x86_fp80 0xK3FFF8000000000000000, %v4_6f
  %v4_82 = fsub x86_fp80 %v4_6f, %v4_7e
  store x86_fp80 %v4_82, x86_fp80* %st6.global-to-local, align 4
  %v2_84 = load i32, i32* %edi.global-to-local, align 4
  %v3_84 = inttoptr i32 %v2_84 to double*
  %v4_84 = load double, double* %v3_84, align 4
  %v5_84 = fpext double %v4_84 to x86_fp80
  %v6_84 = fmul x86_fp80 %v4_82, %v5_84
  store x86_fp80 %v6_84, x86_fp80* %st6.global-to-local, align 4
  %v4_93 = fadd x86_fp80 %v4_6f, %v4_7e
  %v4_95 = load double, double* %v3_84, align 4
  %v5_95 = fpext double %v4_95 to x86_fp80
  %v6_95 = fmul x86_fp80 %v4_93, %v5_95
  store x86_fp80 %v6_95, x86_fp80* %st7.global-to-local, align 4
  %v4_9e = fmul x86_fp80 %v6_95, %v6_95
  %v2_a0 = load i32, i32* %ebx.global-to-local, align 4
  %v3_a0 = fptrunc x86_fp80 %v4_9e to double
  %v4_a0 = inttoptr i32 %v2_a0 to double*
  store double %v3_a0, double* %v4_a0, align 4
  %v3_b4 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_b4 = fpext double %v3_b4 to x86_fp80
  %v4_b6 = fmul x86_fp80 %v4_b4, %v4_b4
  %tmp246 = bitcast double %v3_b4 to i64
  %tmp247 = trunc i64 %tmp246 to i32
  %v3_b8 = fptrunc x86_fp80 %v4_b6 to double
  %v4_b8 = inttoptr i32 %tmp247 to double*
  store double %v3_b8, double* %v4_b8, align 4
  %v3_ba = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_ba = fpext double %v3_ba to x86_fp80
  %v4_bc = fmul x86_fp80 %v4_ba, %v4_ba
  store x86_fp80 %v4_bc, x86_fp80* %st7.global-to-local, align 4
  %tmp248 = bitcast double %v3_ba to i64
  %tmp249 = trunc i64 %tmp248 to i32
  %v3_be = fptrunc x86_fp80 %v4_bc to double
  %v4_be = inttoptr i32 %tmp249 to double*
  store double %v3_be, double* %v4_be, align 4
  %v1_c0 = load i32, i32* @ecx, align 8
  %v2_c0 = add i32 %v1_c0, 8
  %v3_c0 = inttoptr i32 %v2_c0 to double*
  %v4_c0 = load double, double* %v3_c0, align 4
  %v5_c0 = fpext double %v4_c0 to x86_fp80
  %v4_c3 = fmul x86_fp80 %v5_c0, %v5_c0
  %v4_c5 = fptrunc x86_fp80 %v4_c3 to double
  store double %v4_c5, double* %v3_c0, align 4
  %v3_d8 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_d8 = fpext double %v3_d8 to x86_fp80
  store x86_fp80 %v4_d8, x86_fp80* %st7.global-to-local, align 4
  %v3_da = add i32 %v2_84, -48
  %v4_da = inttoptr i32 %v3_da to double*
  %v5_da = load double, double* %v4_da, align 4
  %v6_da = fpext double %v5_da to x86_fp80
  %v7_da = fmul x86_fp80 %v4_d8, %v6_da
  %v3_dd = fptrunc x86_fp80 %v7_da to double
  store double %v3_dd, double* %v4_a0, align 4
  %v5_dd = xor i3 %v0_61, -4
  %v3_df = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_df = fpext double %v3_df to x86_fp80
  store x86_fp80 %v4_df, x86_fp80* %st7.global-to-local, align 4
  %v5_e1 = load double, double* %v4_da, align 4
  %v6_e1 = fpext double %v5_e1 to x86_fp80
  %v7_e1 = fmul x86_fp80 %v4_df, %v6_e1
  %tmp250 = bitcast double %v3_df to i64
  %tmp251 = trunc i64 %tmp250 to i32
  %v3_e4 = fptrunc x86_fp80 %v7_e1 to double
  %v4_e4 = inttoptr i32 %tmp251 to double*
  store double %v3_e4, double* %v4_e4, align 4
  %v3_e6 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_e6 = fpext double %v3_e6 to x86_fp80
  store x86_fp80 %v4_e6, x86_fp80* %st7.global-to-local, align 4
  %v5_e8 = load double, double* %v4_da, align 4
  %v6_e8 = fpext double %v5_e8 to x86_fp80
  %v7_e8 = fmul x86_fp80 %v4_e6, %v6_e8
  store x86_fp80 %v7_e8, x86_fp80* %st7.global-to-local, align 4
  %tmp252 = bitcast double %v3_e6 to i64
  %tmp253 = trunc i64 %tmp252 to i32
  %v3_eb = fptrunc x86_fp80 %v7_e8 to double
  %v4_eb = inttoptr i32 %tmp253 to double*
  store double %v3_eb, double* %v4_eb, align 4
  %v1_ed = load i32, i32* @ecx, align 8
  %v2_ed = add i32 %v1_ed, 8
  %v3_ed = inttoptr i32 %v2_ed to double*
  %v4_ed = load double, double* %v3_ed, align 4
  %v5_ed = fpext double %v4_ed to x86_fp80
  store x86_fp80 %v5_ed, x86_fp80* %st7.global-to-local, align 4
  %v5_f0 = load double, double* %v4_da, align 4
  %v6_f0 = fpext double %v5_f0 to x86_fp80
  %v7_f0 = fmul x86_fp80 %v5_ed, %v6_f0
  store x86_fp80 %v7_f0, x86_fp80* %st7.global-to-local, align 4
  %v4_f3 = fptrunc x86_fp80 %v7_f0 to double
  store double %v4_f3, double* %v3_ed, align 4
  store i3 %v5_dd, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_6, i32* %edi.global-to-local, align 4
  store i32 %v0_5, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* @eax, align 8
  store i32 %v0_3, i32* %ebx.global-to-local, align 4
  ret i32 %v0_4
}

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

declare i16 @__asm_fnstsw(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

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

declare i32 @__asm_fprem() local_unnamed_addr

declare i32 @__asm_f2xm1() local_unnamed_addr

declare i32 @__asm_fscale() local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
