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
  %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_14 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_14 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_14 = fpext double %v3_14 to x86_fp80
  %v5_14 = add i3 %v0_14, -1
  %v3_16 = fmul x86_fp80 %v4_14, %v4_14
  store x86_fp80 %v3_16, x86_fp80* %st7.global-to-local, align 4
  %v3_18 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_18 = fpext double %v3_18 to x86_fp80
  %v3_1a = fmul x86_fp80 %v4_18, %v4_18
  store x86_fp80 %v3_1a, x86_fp80* %st6.global-to-local, align 4
  %v2_1c = add i32 %v3_d, -40
  %v3_1c = inttoptr i32 %v2_1c to double*
  %v4_1c = load double, double* %v3_1c, align 4
  %v5_1c = fpext double %v4_1c to x86_fp80
  store x86_fp80 %v5_1c, x86_fp80* %st5.global-to-local, align 4
  %v4_1f = fadd x86_fp80 %v3_1a, %v5_1c
  %v4_21 = fadd x86_fp80 %v3_16, %v4_1f
  store x86_fp80 %v4_21, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK00000000000000000000, x86_fp80* %st6.global-to-local, align 4
  store i3 %v5_14, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_27 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_27 = call i16 @__asm_fnstsw(i32 %v0_27)
  %v2_27 = sext i16 %v1_27 to i32
  %v3_27 = load i32, i32* @eax, align 8
  %v4_27 = and i32 %v3_27, -65536
  %v5_27 = or i32 %v4_27, %v2_27
  store i32 %v5_27, i32* @eax, align 8
  %tmp243 = and i32 %v2_27, 16640
  %tmp244 = icmp eq i32 %tmp243, 0
  %v0_92 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %tmp244, label %dec_label_pc_92, label %dec_label_pc_2c

dec_label_pc_2c:                                  ; preds = %dec_label_pc_0
  %v9_292 = and i32 %v2_27, 16384
  %v10_29 = icmp eq i32 %v9_292, 0
  br i1 %v10_29, label %dec_label_pc_2e, label %dec_label_pc_9a

dec_label_pc_2e:                                  ; preds = %dec_label_pc_2c
  %v3_30 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_30 = fpext double %v3_30 to x86_fp80
  %v3_32 = fmul x86_fp80 %v4_30, %v4_30
  %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
  %v2_38 = fsub x86_fp80 0xK80000000000000000000, %v3_36
  store x86_fp80 %v2_38, x86_fp80* %st5.global-to-local, align 4
  %v4_3a = fsub x86_fp80 %v3_32, %v3_36
  store x86_fp80 %v4_3a, x86_fp80* %st6.global-to-local, align 4
  %v2_3c = load i32, i32* %edi.global-to-local, align 4
  %v3_3c = add i32 %v2_3c, -16
  %v4_3c = inttoptr i32 %v3_3c to double*
  %v5_3c = load double, double* %v4_3c, align 4
  %v6_3c = fpext double %v5_3c to x86_fp80
  %v7_3c = fmul x86_fp80 %v4_3a, %v6_3c
  store x86_fp80 %v7_3c, x86_fp80* %st6.global-to-local, align 4
  %v2_3f = add i32 %v2_3c, -48
  %v3_3f = inttoptr i32 %v2_3f to double*
  %v4_3f = load double, double* %v3_3f, align 4
  %v5_3f = fpext double %v4_3f to x86_fp80
  %v3_42 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_42 = fpext double %v3_42 to x86_fp80
  %v3_44 = fmul x86_fp80 %v4_42, %v4_42
  %v3_46 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_46 = fdiv x86_fp80 %v3_44, %v3_46
  %v4_4a = fsub x86_fp80 %v5_3f, %v4_46
  store x86_fp80 %v4_4a, x86_fp80* %st5.global-to-local, align 4
  %v4_4c = fmul x86_fp80 %v7_3c, %v4_4a
  store x86_fp80 %v4_4c, x86_fp80* %st6.global-to-local, align 4
  %v2_4e = load i32, i32* %esi.global-to-local, align 4
  %v3_4e = add i32 %v2_4e, 24
  %v4_4e = inttoptr i32 %v3_4e to double*
  %v5_4e = load double, double* %v4_4e, align 4
  %v6_4e = fpext double %v5_4e to x86_fp80
  %v7_4e = fadd x86_fp80 %v4_4c, %v6_4e
  store x86_fp80 %v7_4e, x86_fp80* %st6.global-to-local, align 4
  %v6_55 = fmul x86_fp80 %v4_30, %v4_34
  store x86_fp80 %v6_55, x86_fp80* %st5.global-to-local, align 4
  %v3_57 = add i32 %v2_3c, -24
  %v4_57 = inttoptr i32 %v3_57 to double*
  %v5_57 = load double, double* %v4_57, align 4
  %v6_57 = fpext double %v5_57 to x86_fp80
  %v7_57 = fmul x86_fp80 %v6_55, %v6_57
  store x86_fp80 %v7_57, x86_fp80* %st5.global-to-local, align 4
  %v4_5a = load double, double* %v3_3f, align 4
  %v5_5a = fpext double %v4_5a to x86_fp80
  %v6_5a = add i3 %v0_92, -3
  %v4_65 = fsub x86_fp80 %v5_5a, %v4_46
  %v4_67 = fmul x86_fp80 %v7_57, %v4_65
  store x86_fp80 %v4_67, x86_fp80* %st5.global-to-local, align 4
  %v3_69 = add i32 %v2_4e, 32
  %v4_69 = inttoptr i32 %v3_69 to double*
  %v5_69 = load double, double* %v4_69, align 4
  %v6_69 = fpext double %v5_69 to x86_fp80
  %v7_69 = fadd x86_fp80 %v4_67, %v6_69
  store x86_fp80 %v7_69, x86_fp80* %st5.global-to-local, align 4
  %v2_72 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v3_46)
  %v4_74 = fmul x86_fp80 %v2_72, %v4_42
  store i3 %v6_5a, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_76 = add i32 %v2_3c, -32
  %v4_76 = inttoptr i32 %v3_76 to double*
  %v5_76 = load double, double* %v4_76, align 4
  %v6_76 = fpext double %v5_76 to x86_fp80
  %v7_76 = fmul x86_fp80 %v4_74, %v6_76
  %v3_79 = add i32 %v2_4e, 40
  %v4_79 = inttoptr i32 %v3_79 to double*
  %v5_79 = load double, double* %v4_79, align 4
  %v6_79 = fpext double %v5_79 to x86_fp80
  %v7_79 = fadd x86_fp80 %v7_76, %v6_79
  br label %dec_label_pc_7c

dec_label_pc_7c:                                  ; preds = %dec_label_pc_9a, %dec_label_pc_92, %dec_label_pc_2e
  %v1_7e = phi x86_fp80 [ %v5_a0, %dec_label_pc_9a ], [ 0xK00000000000000000000, %dec_label_pc_92 ], [ %v7_79, %dec_label_pc_2e ]
  %v0_7e = phi i3 [ %v6_a0, %dec_label_pc_9a ], [ %v1_96, %dec_label_pc_92 ], [ %v6_5a, %dec_label_pc_2e ]
  %v2_7e = load i32, i32* @ecx, align 8
  %v3_7e = fptrunc x86_fp80 %v1_7e to double
  %v4_7e = inttoptr i32 %v2_7e to double*
  store double %v3_7e, double* %v4_7e, align 4
  %v1_80 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v2_80 = load i32, i32* @edx, align 8
  %v3_80 = fptrunc x86_fp80 %v1_80 to double
  %v4_80 = inttoptr i32 %v2_80 to double*
  store double %v3_80, double* %v4_80, align 4
  %v1_82 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_82 = load i32, i32* %ebx.global-to-local, align 4
  %v3_82 = fptrunc x86_fp80 %v1_82 to double
  %v4_82 = inttoptr i32 %v2_82 to double*
  store double %v3_82, double* %v4_82, align 4
  %v4_84 = xor i3 %v0_7e, -4
  store i3 %v4_84, 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_92:                                  ; preds = %dec_label_pc_0
  store x86_fp80 0xK00000000000000000000, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 0xK00000000000000000000, x86_fp80* %st5.global-to-local, align 4
  %v1_96 = add i3 %v0_92, -3
  store i3 %v1_96, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_7c

dec_label_pc_9a:                                  ; preds = %dec_label_pc_2c
  %v1_9a = load i32, i32* %esi.global-to-local, align 4
  %v2_9a = add i32 %v1_9a, 24
  %v3_9a = inttoptr i32 %v2_9a to double*
  %v4_9a = load double, double* %v3_9a, align 4
  %v5_9a = fpext double %v4_9a to x86_fp80
  store x86_fp80 %v5_9a, x86_fp80* %st6.global-to-local, align 4
  %v2_9d = add i32 %v1_9a, 32
  %v3_9d = inttoptr i32 %v2_9d to double*
  %v4_9d = load double, double* %v3_9d, align 4
  %v5_9d = fpext double %v4_9d to x86_fp80
  store x86_fp80 %v5_9d, x86_fp80* %st5.global-to-local, align 4
  %v2_a0 = add i32 %v1_9a, 40
  %v3_a0 = inttoptr i32 %v2_a0 to double*
  %v4_a0 = load double, double* %v3_a0, align 4
  %v5_a0 = fpext double %v4_a0 to x86_fp80
  %v6_a0 = add i3 %v0_92, -3
  store i3 %v6_a0, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_7c
}

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

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

attributes #0 = { nounwind readnone speculatable }
