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
  %st3.global-to-local = alloca x86_fp80, align 4
  %st4.global-to-local = alloca x86_fp80, align 4
  %st5.global-to-local = alloca x86_fp80, align 4
  %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
  %tmp252 = bitcast double %v3_17 to i64
  %tmp253 = trunc i64 %tmp252 to i32
  %v3_1c = fptrunc x86_fp80 %v7_19 to double
  %v4_1c = inttoptr i32 %tmp253 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
  %tmp254 = bitcast double %v3_1e to i64
  %tmp255 = trunc i64 %tmp254 to i32
  %v3_23 = fptrunc x86_fp80 %v7_20 to double
  %v4_23 = inttoptr i32 %tmp255 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
  %v2_44 = add i32 %v3_d, 8
  %v3_44 = inttoptr i32 %v2_44 to double*
  %v4_44 = load double, double* %v3_44, align 4
  %v5_44 = fpext double %v4_44 to x86_fp80
  store x86_fp80 %v5_44, x86_fp80* %st5.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
  %tmp262 = udiv i32 %v2_49, 2
  %v12_4b = and i32 %tmp262, 32512
  %v2_49.masked = and i32 %v2_49, -65281
  %v13_4b = or i32 %v4_49, %v2_49.masked
  %v14_4b = or i32 %v13_4b, %v12_4b
  store i32 %v14_4b, i32* @eax, align 8
  %v15_4b13 = and i32 %v2_49, 256
  %v16_4b = icmp ne i32 %v15_4b13, 0
  %v1_4f = icmp eq i1 %v16_4b, false
  br i1 %v1_4f, label %dec_label_pc_111, label %dec_label_pc_55

dec_label_pc_55:                                  ; preds = %dec_label_pc_0
  %v0_55 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_55 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_55 = fpext double %v3_55 to x86_fp80
  %v5_55 = add i3 %v0_55, -1
  store i3 %v5_55, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_55, x86_fp80* %st6.global-to-local, align 4
  %v0_59 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_59 = call i16 @__asm_fnstsw(i32 %v0_59)
  %v2_59 = sext i16 %v1_59 to i32
  %v3_59 = load i32, i32* @eax, align 8
  %v4_59 = and i32 %v3_59, -65536
  %v11_5b = and i32 %v2_59, 20480
  %v2_59.masked = and i32 %v2_59, -65281
  %v12_5b = or i32 %v4_59, %v2_59.masked
  %v13_5b = or i32 %v12_5b, %v11_5b
  store i32 %v13_5b, i32* @eax, align 8
  %v9_5e17 = and i32 %v2_59, 16384
  %v10_5e = icmp ne i32 %v9_5e17, 0
  %v0_5f = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_5f = add i3 %v0_5f, 1
  store i3 %v4_5f, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_65 = icmp eq i1 %v10_5e, false
  br i1 %v1_65, label %dec_label_pc_86, label %dec_label_pc_67

dec_label_pc_67:                                  ; preds = %dec_label_pc_55
  %v1_6b = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xKBFFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v4_71 = fadd x86_fp80 %v1_6b, 0xKBFFF8000000000000000
  %v2_73 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_71)
  store x86_fp80 %v2_73, x86_fp80* %st7.global-to-local, align 4
  %v1_75 = load i32, i32* %edi.global-to-local, align 4
  %v2_75 = add i32 %v1_75, 8
  %v3_75 = inttoptr i32 %v2_75 to double*
  %v4_75 = load double, double* %v3_75, align 4
  %v5_75 = fpext double %v4_75 to x86_fp80
  store x86_fp80 %v5_75, x86_fp80* %st6.global-to-local, align 4
  store i3 %v4_5f, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_7a = load i32, i32* %fpsw.global-to-local, align 4
  %v1_7a = call i16 @__asm_fnstsw(i32 %v0_7a)
  %v2_7a = sext i16 %v1_7a to i32
  %v3_7a = load i32, i32* @eax, align 8
  %v4_7a = and i32 %v3_7a, -65536
  %tmp263 = udiv i32 %v2_7a, 2
  %v12_7c = and i32 %tmp263, 32512
  %v2_7a.masked = and i32 %v2_7a, -65281
  %v13_7c = or i32 %v4_7a, %v2_7a.masked
  %v14_7c = or i32 %v13_7c, %v12_7c
  store i32 %v14_7c, i32* @eax, align 8
  %v15_7c14 = and i32 %v2_7a, 256
  %v16_7c = icmp ne i32 %v15_7c14, 0
  %v1_80 = icmp eq i1 %v16_7c, false
  br i1 %v1_80, label %dec_label_pc_111, label %dec_label_pc_67.dec_label_pc_86_crit_edge

dec_label_pc_67.dec_label_pc_86_crit_edge:        ; preds = %dec_label_pc_67
  %v0_86.pre = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_86

dec_label_pc_86:                                  ; preds = %dec_label_pc_67.dec_label_pc_86_crit_edge, %dec_label_pc_55
  %v0_86 = phi i3 [ %v0_86.pre, %dec_label_pc_67.dec_label_pc_86_crit_edge ], [ %v4_5f, %dec_label_pc_55 ]
  %v1_86 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v1_8a = add i3 %v0_86, -2
  %v4_8c = fsub x86_fp80 0xK3FFF8000000000000000, %v1_86
  %v3_8e = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_8e = fpext double %v3_8e to x86_fp80
  store i3 %v1_8a, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_8c, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_8e, x86_fp80* %st7.global-to-local, align 4
  %v0_92 = call i32 @__asm_fpatan()
  store i32 %v0_92, i32* @eax, align 8
  %v1_96 = xor i3 %v0_86, -4
  %v4_98 = fadd x86_fp80 %v4_8e, 0xK3FFF8000000000000000
  %v3_9a = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_9a = fpext double %v3_9a to x86_fp80
  store i3 %v1_96, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_9c = fsub x86_fp80 0xK80000000000000000000, %v4_9a
  store x86_fp80 %v4_98, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v2_9c, x86_fp80* %st5.global-to-local, align 4
  %v0_a0 = call i32 @__asm_fpatan()
  store i32 %v0_a0, i32* @eax, align 8
  %v2_a2 = fsub x86_fp80 0xK80000000000000000000, %v4_98
  store x86_fp80 %v2_a2, x86_fp80* %st4.global-to-local, align 4
  %v0_a4 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_a4 = fsub x86_fp80 %v2_9c, %v4_98
  store x86_fp80 %v4_a4, x86_fp80* %st5.global-to-local, align 4
  %v2_a6 = load i32, i32* %edi.global-to-local, align 4
  %v3_a6 = inttoptr i32 %v2_a6 to double*
  %v4_a6 = load double, double* %v3_a6, align 4
  %v5_a6 = fpext double %v4_a6 to x86_fp80
  %v6_a6 = fmul x86_fp80 %v4_a4, %v5_a6
  store x86_fp80 %v6_a6, x86_fp80* %st5.global-to-local, align 4
  %v2_ac = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v1_ae = add i3 %v0_a4, -1
  %v4_b0 = fadd x86_fp80 %v2_ac, 0xK3FFF8000000000000000
  %v3_b2 = fmul x86_fp80 %v4_b0, %v4_b0
  %v3_b4 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_b4 = fpext double %v3_b4 to x86_fp80
  %v3_b6 = fmul x86_fp80 %v4_b4, %v4_b4
  %v4_b8 = fadd x86_fp80 %v3_b2, %v3_b6
  %v4_c0 = fsub x86_fp80 0xK3FFF8000000000000000, %v2_ac
  %v3_c2 = fmul x86_fp80 %v4_c0, %v4_c0
  %v4_c8 = fadd x86_fp80 %v3_c2, %v3_b6
  %v4_ca = fdiv x86_fp80 %v4_b8, %v4_c8
  store i3 %v1_ae, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_ca, x86_fp80* %st3.global-to-local, align 4
  store x86_fp80 0xK3FFEB17217F7D1CF7800, x86_fp80* %st4.global-to-local, align 4
  %v0_d0 = call i32 @__asm_fyl2x()
  store i32 %v0_d0, i32* @eax, align 8
  %v2_d2 = load i32, i32* %edi.global-to-local, align 4
  %v3_d2 = add i32 %v2_d2, 16
  %v4_d2 = inttoptr i32 %v3_d2 to double*
  %v5_d2 = load double, double* %v4_d2, align 4
  %v6_d2 = fpext double %v5_d2 to x86_fp80
  %v7_d2 = fmul x86_fp80 %v4_ca, %v6_d2
  %v3_d5 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_d5 = fdiv x86_fp80 %v7_d2, %v3_d5
  store x86_fp80 %v4_d5, x86_fp80* %st3.global-to-local, align 4
  %v0_d9 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_d9 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v3_db = add i32 %v2_d2, -48
  %v4_db = inttoptr i32 %v3_db to double*
  %v5_db = load double, double* %v4_db, align 4
  %v6_db = fpext double %v5_db to x86_fp80
  %v7_db = fmul x86_fp80 %v2_d9, %v6_db
  %v2_de = load i32, i32* %ebx.global-to-local, align 4
  %v3_de = fptrunc x86_fp80 %v7_db to double
  %v4_de = inttoptr i32 %v2_de to double*
  store double %v3_de, double* %v4_de, align 4
  %v3_e0 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_e0 = fpext double %v3_e0 to x86_fp80
  %v5_e2 = load double, double* %v4_db, align 4
  %v6_e2 = fpext double %v5_e2 to x86_fp80
  %v7_e2 = fmul x86_fp80 %v4_e0, %v6_e2
  %v3_e5 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v4_e5 = fmul x86_fp80 %v3_e5, %v7_e2
  %tmp258 = bitcast double %v3_e0 to i64
  %tmp259 = trunc i64 %tmp258 to i32
  %v3_e7 = fptrunc x86_fp80 %v4_e5 to double
  %v4_e7 = inttoptr i32 %tmp259 to double*
  store double %v3_e7, double* %v4_e7, align 4
  %v3_e9 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_e9 = fpext double %v3_e9 to x86_fp80
  %v5_eb = load double, double* %v4_db, align 4
  %v6_eb = fpext double %v5_eb to x86_fp80
  %v7_eb = fmul x86_fp80 %v4_e9, %v6_eb
  %v3_ee = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v4_ee = fmul x86_fp80 %v3_ee, %v7_eb
  %tmp260 = bitcast double %v3_e9 to i64
  %tmp261 = trunc i64 %tmp260 to i32
  %v3_f0 = fptrunc x86_fp80 %v4_ee to double
  %v4_f0 = inttoptr i32 %tmp261 to double*
  store double %v3_f0, double* %v4_f0, align 4
  %v1_f2 = load i32, i32* @ecx, align 8
  %v2_f2 = add i32 %v1_f2, 8
  %v3_f2 = inttoptr i32 %v2_f2 to double*
  %v4_f2 = load double, double* %v3_f2, align 4
  %v5_f2 = fpext double %v4_f2 to x86_fp80
  %v5_f5 = load double, double* %v4_db, align 4
  %v6_f5 = fpext double %v5_f5 to x86_fp80
  %v7_f5 = fmul x86_fp80 %v5_f2, %v6_f5
  %v3_f8 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v4_f8 = fmul x86_fp80 %v3_f8, %v7_f5
  %v4_fa = fptrunc x86_fp80 %v4_f8 to double
  store double %v4_fa, double* %v3_f2, align 4
  %v4_101 = add i3 %v0_d9, 3
  store i3 %v4_101, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_103 = xor i3 %v0_d9, -4
  br label %dec_label_pc_105

dec_label_pc_105:                                 ; preds = %dec_label_pc_111, %dec_label_pc_86
  %storemerge = phi i3 [ %v0_111, %dec_label_pc_111 ], [ %v4_103, %dec_label_pc_86 ]
  store i3 %storemerge, 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

dec_label_pc_111:                                 ; preds = %dec_label_pc_67, %dec_label_pc_0
  %v0_111 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_113 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_113 = fpext double %v3_113 to x86_fp80
  store x86_fp80 %v4_113, x86_fp80* %st7.global-to-local, align 4
  %v1_115 = add i3 %v0_111, -1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  store i3 %v1_115, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_117 = call i32 @__asm_fpatan()
  store i32 %v0_117, i32* @eax, align 8
  %v2_119 = load i32, i32* %ebx.global-to-local, align 4
  %v4_119 = inttoptr i32 %v2_119 to double*
  store double 1.000000e+00, double* %v4_119, align 4
  br label %dec_label_pc_105
}

; 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

declare i32 @__asm_fpatan() local_unnamed_addr

declare i32 @__asm_fyl2x() local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
