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
@global_var_1.1 = constant i8 -117

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_9 = load i32, i32* %ebx.global-to-local, align 4
  %v0_a = load i32, i32* %esi.global-to-local, align 4
  %v0_b = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_f = add i32 %arg1, 48
  %v2_f = inttoptr i32 %v1_f to i32*
  %v3_f = load i32, i32* %v2_f, align 4
  store i32 %v3_f, i32* %edi.global-to-local, align 4
  %v0_12 = load i32, i32* @eax, align 8
  store i32 %v0_12, i32* %ebx.global-to-local, align 4
  %v0_16 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_16 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_16 = fpext double %v3_16 to x86_fp80
  %v5_16 = sub i3 %v0_16, ptrtoint (i8* @global_var_1.1 to i3)
  %v3_18 = fmul x86_fp80 %v4_16, %v4_16
  %v3_1d = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_1d = fpext double %v3_1d to x86_fp80
  %v3_1f = fmul x86_fp80 %v4_1d, %v4_1d
  %v4_24 = fdiv x86_fp80 %v3_18, %v3_1f
  store x86_fp80 %v4_24, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  store i3 %v5_16, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_2a = load i32, i32* %fpsw.global-to-local, align 4
  %v1_2a = call i16 @__asm_fnstsw(i32 %v0_2a)
  %v2_2a = sext i16 %v1_2a to i32
  %v3_2a = load i32, i32* @eax, align 8
  %v4_2a = and i32 %v3_2a, -65536
  %v1_2c = udiv i32 %v2_2a, 256
  %v2_2c = trunc i32 %v1_2c to i8
  %v3_2c = and i8 %v2_2c, 65
  %v4_2c = icmp eq i8 %v3_2c, 0
  %v9_2c = zext i8 %v3_2c to i32
  %v11_2c = mul i32 %v9_2c, 256
  %v2_2a.masked = and i32 %v2_2a, -65281
  %v12_2c = or i32 %v4_2a, %v2_2a.masked
  %v13_2c = or i32 %v12_2c, %v11_2c
  store i32 %v13_2c, i32* @eax, align 8
  br i1 %v4_2c, label %dec_label_pc_0.dec_label_pc_35_crit_edge, label %dec_label_pc_31

dec_label_pc_0.dec_label_pc_35_crit_edge:         ; preds = %dec_label_pc_0
  %v3_37.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_35

dec_label_pc_31:                                  ; preds = %dec_label_pc_0
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v3_33 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_33 = fdiv x86_fp80 0xK3FFF8000000000000000, %v3_33
  store x86_fp80 %v4_33, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_35

dec_label_pc_35:                                  ; preds = %dec_label_pc_0.dec_label_pc_35_crit_edge, %dec_label_pc_31
  %v3_37 = phi x86_fp80 [ %v3_37.pre, %dec_label_pc_0.dec_label_pc_35_crit_edge ], [ %v4_33, %dec_label_pc_31 ]
  %v4_37 = fadd x86_fp80 %v3_37, 0xK3FFF8000000000000000
  %v2_39 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_37)
  %v4_3d = fdiv x86_fp80 0xK3FFF8000000000000000, %v2_39
  %v4_41 = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_41 = fpext double %v4_41 to x86_fp80
  %v6_41 = fmul x86_fp80 %v4_3d, %v5_41
  %v3_46 = fmul x86_fp80 %v6_41, %v6_41
  %v4_4c = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_4c = fpext double %v4_4c to x86_fp80
  %v6_4c = fmul x86_fp80 %v4_3d, %v5_4c
  %v3_51 = fmul x86_fp80 %v6_4c, %v6_4c
  %v7_53 = fadd x86_fp80 %v3_51, %v3_46
  %v3_56 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_56 = fpext double %v3_56 to x86_fp80
  %v3_58 = fmul x86_fp80 %v4_56, %v4_56
  %v4_5a = fdiv x86_fp80 %v7_53, %v3_58
  store x86_fp80 %v4_5a, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v0_60 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_60 = call i16 @__asm_fnstsw(i32 %v0_60)
  %v2_60 = sext i16 %v1_60 to i32
  %v3_60 = load i32, i32* @eax, align 8
  %v4_60 = and i32 %v3_60, -65536
  %v1_62 = udiv i32 %v2_60, 256
  %v2_62 = trunc i32 %v1_62 to i8
  %v3_62 = and i8 %v2_62, 65
  %v4_62 = icmp eq i8 %v3_62, 0
  %v9_62 = zext i8 %v3_62 to i32
  %v11_62 = mul i32 %v9_62, 256
  %v2_60.masked = and i32 %v2_60, -65281
  %v12_62 = or i32 %v4_60, %v2_60.masked
  %v13_62 = or i32 %v12_62, %v11_62
  store i32 %v13_62, i32* @eax, align 8
  %v0_6b.pre = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v4_62, label %dec_label_pc_35.dec_label_pc_6b_crit_edge, label %dec_label_pc_67

dec_label_pc_35.dec_label_pc_6b_crit_edge:        ; preds = %dec_label_pc_35
  %v3_6d.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_6b

dec_label_pc_67:                                  ; preds = %dec_label_pc_35
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v3_69 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_69 = fdiv x86_fp80 0xK3FFF8000000000000000, %v3_69
  store x86_fp80 %v4_69, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_6b

dec_label_pc_6b:                                  ; preds = %dec_label_pc_35.dec_label_pc_6b_crit_edge, %dec_label_pc_67
  %v3_6d = phi x86_fp80 [ %v3_6d.pre, %dec_label_pc_35.dec_label_pc_6b_crit_edge ], [ %v4_69, %dec_label_pc_67 ]
  %v4_6d = fadd x86_fp80 %v3_6d, 0xK3FFF8000000000000000
  %v2_6f = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_6d)
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v4_73 = fdiv x86_fp80 0xK3FFF8000000000000000, %v2_6f
  store x86_fp80 %v4_73, x86_fp80* %st7.global-to-local, align 4
  %v2_75 = load i32, i32* %edi.global-to-local, align 4
  %v3_75 = add i32 %v2_75, -16
  %v4_75 = inttoptr i32 %v3_75 to double*
  %v5_75 = load double, double* %v4_75, align 4
  %v6_75 = fpext double %v5_75 to x86_fp80
  %v7_75 = fmul x86_fp80 %v4_73, %v6_75
  %v3_7c = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_7c = fpext double %v3_7c to x86_fp80
  %v7_7e = fmul x86_fp80 %v7_75, %v4_7c
  store x86_fp80 %v7_7e, x86_fp80* %st7.global-to-local, align 4
  %v7_84 = fmul x86_fp80 %v6_41, %v7_75
  store x86_fp80 %v7_84, x86_fp80* %st6.global-to-local, align 4
  %v7_8a = fmul x86_fp80 %v6_4c, %v7_75
  %v2_8d = load i32, i32* @ecx, align 8
  %v3_8d = fptrunc x86_fp80 %v7_8a to double
  %v4_8d = inttoptr i32 %v2_8d to double*
  store double %v3_8d, double* %v4_8d, align 4
  %v1_8f = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_8f = load i32, i32* @edx, align 8
  %v3_8f = fptrunc x86_fp80 %v1_8f to double
  %v4_8f = inttoptr i32 %v2_8f to double*
  store double %v3_8f, double* %v4_8f, align 4
  %v1_91 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_91 = load i32, i32* %ebx.global-to-local, align 4
  %v3_91 = fptrunc x86_fp80 %v1_91 to double
  %v4_91 = inttoptr i32 %v2_91 to double*
  store double %v3_91, double* %v4_91, align 4
  %v5_91 = add i3 %v0_6b.pre, add (i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3))))
  store i3 %v5_91, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_91, i32* @eax, align 8
  store i32 %v0_b, i32* %edi.global-to-local, align 4
  store i32 %v0_a, i32* %esi.global-to-local, align 4
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  ret i32 %v2_91
}

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 }
