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)
  %v7_42 = fadd x86_fp80 %v3_18, %v3_1f
  %v3_45 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_45 = fpext double %v3_45 to x86_fp80
  %v3_47 = fmul x86_fp80 %v4_45, %v4_45
  %v4_49 = fdiv x86_fp80 %v7_42, %v3_47
  store x86_fp80 %v4_49, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v0_4f = load i32, i32* %fpsw.global-to-local, align 4
  %v1_4f = call i16 @__asm_fnstsw(i32 %v0_4f)
  %v2_4f = sext i16 %v1_4f to i32
  %v3_4f = load i32, i32* @eax, align 8
  %v4_4f = and i32 %v3_4f, -65536
  %v1_51 = udiv i32 %v2_4f, 256
  %v2_51 = trunc i32 %v1_51 to i8
  %v3_51 = and i8 %v2_51, 65
  %v4_51 = icmp eq i8 %v3_51, 0
  %v9_51 = zext i8 %v3_51 to i32
  %v11_51 = mul i32 %v9_51, 256
  %v2_4f.masked = and i32 %v2_4f, -65281
  %v12_51 = or i32 %v4_4f, %v2_4f.masked
  %v13_51 = or i32 %v12_51, %v11_51
  store i32 %v13_51, i32* @eax, align 8
  %v0_5a.pre = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v4_51, label %dec_label_pc_35.dec_label_pc_5a_crit_edge, label %dec_label_pc_56

dec_label_pc_35.dec_label_pc_5a_crit_edge:        ; preds = %dec_label_pc_35
  %v3_5c.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_5a

dec_label_pc_56:                                  ; preds = %dec_label_pc_35
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v3_58 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_58 = fdiv x86_fp80 0xK3FFF8000000000000000, %v3_58
  store x86_fp80 %v4_58, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_5a

dec_label_pc_5a:                                  ; preds = %dec_label_pc_35.dec_label_pc_5a_crit_edge, %dec_label_pc_56
  %v3_5c = phi x86_fp80 [ %v3_5c.pre, %dec_label_pc_35.dec_label_pc_5a_crit_edge ], [ %v4_58, %dec_label_pc_56 ]
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v4_5c = fadd x86_fp80 %v3_5c, 0xK3FFF8000000000000000
  %v2_5e = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_5c)
  store x86_fp80 %v2_5e, x86_fp80* %st7.global-to-local, align 4
  %v2_60 = load i32, i32* %edi.global-to-local, align 4
  %v3_60 = add i32 %v2_60, -16
  %v4_60 = inttoptr i32 %v3_60 to double*
  %v5_60 = load double, double* %v4_60, align 4
  %v6_60 = fpext double %v5_60 to x86_fp80
  %v7_60 = fmul x86_fp80 %v2_5e, %v6_60
  %v7_65 = fmul x86_fp80 %v7_60, %v2_39
  %v3_6f = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_6f = fpext double %v3_6f to x86_fp80
  %v7_71 = fmul x86_fp80 %v7_60, %v4_6f
  store x86_fp80 %v7_71, x86_fp80* %st7.global-to-local, align 4
  %v3_74 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_74 = fpext double %v3_74 to x86_fp80
  %v7_76 = fmul x86_fp80 %v7_65, %v4_74
  store x86_fp80 %v7_76, x86_fp80* %st6.global-to-local, align 4
  %v3_79 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_79 = fpext double %v3_79 to x86_fp80
  %v7_7b = fmul x86_fp80 %v7_65, %v4_79
  %tmp248 = bitcast double %v3_79 to i64
  %tmp249 = trunc i64 %tmp248 to i32
  %v3_7e = fptrunc x86_fp80 %v7_7b to double
  %v4_7e = inttoptr i32 %tmp249 to double*
  store double %v3_7e, double* %v4_7e, align 4
  %v1_80 = load x86_fp80, x86_fp80* %st6.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* %st7.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
  %v5_82 = add i3 %v0_5a.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 add (i3 sub (i3 0, 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 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)))))))
  store i3 %v5_82, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_82, 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_82
}

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 }
