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
@global_var_20.2 = constant double* inttoptr (i32 -1207599359 to double*)
@global_var_28.3 = constant double* inttoptr (i32 64868569 to double*)

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
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %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
  %v1_16 = add i32 %v3_f, -68
  %v2_16 = inttoptr i32 %v1_16 to i32*
  %v3_16 = load i32, i32* %v2_16, align 4
  %v8_1c = icmp slt i32 %v3_16, 23
  %v9_21 = icmp sgt i32 %v3_16, sext (i8 ptrtoint (i8* @global_var_1.1 to i8) to i32)
  %or.cond = icmp eq i1 %v8_1c, %v9_21
  %spec.store.select = select i1 %or.cond, i32 %v3_16, i32 8
  store i32 %spec.store.select, i32* @eax, align 8
  %v0_2a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_2a = load double, double* bitcast (i32* @eax to double*), align 8
  %v3_2c = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_2c = fpext double %v3_2c to x86_fp80
  %v3_2e = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_2e = fpext double %v3_2e to x86_fp80
  %tmp259 = bitcast double %v3_2a to i64
  %tmp260 = trunc i64 %tmp259 to i32
  %v1_39 = add i32 %tmp260, -1
  store i32 %v1_39, i32* @eax, align 8
  %v3_3c = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_3c = fpext double %v3_3c to x86_fp80
  %v3_3e = fmul x86_fp80 %v4_3c, %v4_3c
  %v3_42 = fmul x86_fp80 %v4_2c, %v4_2c
  %v4_44 = fadd x86_fp80 %v3_42, %v3_3e
  %v2_46 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_44)
  store x86_fp80 %v2_46, x86_fp80* %st7.global-to-local, align 4
  %v6_48 = add i3 %v0_2a, add (i3 add (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 %v6_48, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_6c = add i32 %v3_f, -16
  %v4_6c = inttoptr i32 %v3_6c to double*
  %tmp262 = bitcast double %v3_3c to i64
  %tmp263 = trunc i64 %tmp262 to i32
  br label %dec_label_pc_4d

dec_label_pc_4d:                                  ; preds = %dec_label_pc_4d.dec_label_pc_4d_crit_edge, %dec_label_pc_0
  %v0_b2 = phi i32 [ %tmp263, %dec_label_pc_0 ], [ %tmp265, %dec_label_pc_4d.dec_label_pc_4d_crit_edge ]
  %v3_9d = phi double [ %v3_3c, %dec_label_pc_0 ], [ %v3_87.pre, %dec_label_pc_4d.dec_label_pc_4d_crit_edge ]
  %v6_af2 = phi i3 [ %v6_48, %dec_label_pc_0 ], [ %v0_2a, %dec_label_pc_4d.dec_label_pc_4d_crit_edge ]
  %stack_var_-28.0 = phi double [ %v3_2e, %dec_label_pc_0 ], [ %v4_af, %dec_label_pc_4d.dec_label_pc_4d_crit_edge ]
  %stack_var_-20.0 = phi double [ %v3_2c, %dec_label_pc_0 ], [ %v4_a9, %dec_label_pc_4d.dec_label_pc_4d_crit_edge ]
  %stack_var_-12.0 = phi double [ %v3_2a, %dec_label_pc_0 ], [ %v4_ac, %dec_label_pc_4d.dec_label_pc_4d_crit_edge ]
  %v5_4f = fpext double %stack_var_-12.0 to x86_fp80
  %v3_52 = fmul x86_fp80 %v5_4f, %v5_4f
  %v5_54 = fpext double %stack_var_-20.0 to x86_fp80
  %v3_57 = fmul x86_fp80 %v5_54, %v5_54
  %v4_59 = fadd x86_fp80 %v3_57, %v3_52
  %v2_5b = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_59)
  %v6_62 = fmul x86_fp80 %v2_5b, %v4_2e
  %v6_67 = fpext double %stack_var_-28.0 to x86_fp80
  %v7_67 = fmul x86_fp80 %v2_46, %v6_67
  %v4_6a = fsub x86_fp80 %v6_62, %v7_67
  store x86_fp80 %v4_6a, x86_fp80* %st7.global-to-local, align 4
  %v5_6c = load double, double* %v4_6c, align 4
  %v6_6c = fpext double %v5_6c to x86_fp80
  %v7_6c = fmul x86_fp80 %v4_6a, %v6_6c
  store x86_fp80 %v7_6c, x86_fp80* %st7.global-to-local, align 4
  %v6_74 = fmul x86_fp80 %v4_2e, %v6_67
  %v7_76 = fdiv x86_fp80 %v6_74, %v2_46
  %v7_79 = fdiv x86_fp80 %v7_76, %v2_5b
  %v4_80 = fsub x86_fp80 0xK3FFF8000000000000000, %v7_79
  %v4_87 = fpext double %v3_9d to x86_fp80
  %v7_89 = fmul x86_fp80 %v4_87, %v5_4f
  %v7_8e = fmul x86_fp80 %v4_2c, %v5_54
  %v4_91 = fsub x86_fp80 %v7_89, %v7_8e
  %v7_93 = fmul x86_fp80 %v4_91, %v4_80
  %v7_9a = fmul x86_fp80 %v4_2c, %v5_4f
  %v7_9f = fmul x86_fp80 %v4_87, %v5_54
  %v4_a2 = fadd x86_fp80 %v7_9f, %v7_9a
  %v7_a4 = fmul x86_fp80 %v4_a2, %v4_80
  %v1_b2 = add i32 %v0_b2, -1
  %v9_b2 = icmp eq i32 %v1_b2, 0
  %v10_b2 = icmp slt i32 %v1_b2, 0
  store i32 %v1_b2, i32* @eax, align 8
  %v3_b6 = icmp eq i1 %v10_b2, false
  %v4_b6 = icmp eq i1 %v9_b2, false
  %v5_b6 = icmp eq i1 %v3_b6, %v4_b6
  br i1 %v5_b6, label %dec_label_pc_4d.dec_label_pc_4d_crit_edge, label %dec_label_pc_b8

dec_label_pc_4d.dec_label_pc_4d_crit_edge:        ; preds = %dec_label_pc_4d
  %v4_af = fptrunc x86_fp80 %v7_6c to double
  %v4_ac = fptrunc x86_fp80 %v7_93 to double
  %v4_a9 = fptrunc x86_fp80 %v7_a4 to double
  %v3_87.pre = load double, double* bitcast (i32* @eax to double*), align 8
  %tmp264 = bitcast double %v3_87.pre to i64
  %tmp265 = trunc i64 %tmp264 to i32
  br label %dec_label_pc_4d

dec_label_pc_b8:                                  ; preds = %dec_label_pc_4d
  store x86_fp80 %v7_93, x86_fp80* %st7.global-to-local, align 4
  %v3_c2 = add i32 %v3_f, -48
  %v4_c2 = inttoptr i32 %v3_c2 to double*
  %v5_c2 = load double, double* %v4_c2, align 4
  %v6_c2 = fpext double %v5_c2 to x86_fp80
  %v7_c2 = fmul x86_fp80 %v7_93, %v6_c2
  store x86_fp80 %v7_c2, x86_fp80* %st7.global-to-local, align 4
  %v3_c5 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_c5 = fpext double %v3_c5 to x86_fp80
  %v3_c7 = add i32 %v3_f, -56
  %v4_c7 = inttoptr i32 %v3_c7 to double*
  %v5_c7 = load double, double* %v4_c7, align 4
  %v6_c7 = fpext double %v5_c7 to x86_fp80
  %v7_c7 = fmul x86_fp80 %v4_c5, %v6_c7
  %v2_ca = add i32 %arg1, 24
  %v3_ca = inttoptr i32 %v2_ca to double*
  %v4_ca = load double, double* %v3_ca, align 4
  %v5_ca = fpext double %v4_ca to x86_fp80
  %v3_cd = add i32 %v3_f, -64
  %v4_cd = inttoptr i32 %v3_cd to double*
  %v5_cd = load double, double* %v4_cd, align 4
  %v6_cd = fpext double %v5_cd to x86_fp80
  %v7_cd = fmul x86_fp80 %v5_ca, %v6_cd
  %v4_d0 = fadd x86_fp80 %v7_c7, %v7_cd
  %v4_d2 = fadd x86_fp80 %v7_c2, %v4_d0
  store x86_fp80 %v7_a4, x86_fp80* %st7.global-to-local, align 4
  %v5_db = load double, double* %v4_c2, align 4
  %v6_db = fpext double %v5_db to x86_fp80
  %v7_db = fmul x86_fp80 %v7_a4, %v6_db
  store x86_fp80 %v7_db, x86_fp80* %st7.global-to-local, align 4
  %v5_e0 = load double, double* %v4_c7, align 4
  %v6_e0 = fpext double %v5_e0 to x86_fp80
  %v7_e0 = fmul x86_fp80 %v4_2c, %v6_e0
  %v2_e3 = add i32 %arg1, ptrtoint (double** @global_var_20.2 to i32)
  %v3_e3 = inttoptr i32 %v2_e3 to double*
  %v4_e3 = load double, double* %v3_e3, align 4
  %v5_e3 = fpext double %v4_e3 to x86_fp80
  %v5_e6 = load double, double* %v4_cd, align 4
  %v6_e6 = fpext double %v5_e6 to x86_fp80
  %v7_e6 = fmul x86_fp80 %v5_e3, %v6_e6
  %v4_e9 = fadd x86_fp80 %v7_e0, %v7_e6
  %v4_eb = fadd x86_fp80 %v7_db, %v4_e9
  store x86_fp80 %v7_6c, x86_fp80* %st7.global-to-local, align 4
  %v5_f4 = load double, double* %v4_c2, align 4
  %v6_f4 = fpext double %v5_f4 to x86_fp80
  %v7_f4 = fmul x86_fp80 %v7_6c, %v6_f4
  store x86_fp80 %v7_f4, x86_fp80* %st7.global-to-local, align 4
  %v5_f9 = load double, double* %v4_c7, align 4
  %v6_f9 = fpext double %v5_f9 to x86_fp80
  %v7_f9 = fmul x86_fp80 %v4_2e, %v6_f9
  %v2_fc = add i32 %arg1, ptrtoint (double** @global_var_28.3 to i32)
  %v3_fc = inttoptr i32 %v2_fc to double*
  %v4_fc = load double, double* %v3_fc, align 4
  %v5_fc = fpext double %v4_fc to x86_fp80
  %v5_ff = load double, double* %v4_cd, align 4
  %v6_ff = fpext double %v5_ff to x86_fp80
  %v7_ff = fmul x86_fp80 %v5_fc, %v6_ff
  %v4_102 = fadd x86_fp80 %v7_f9, %v7_ff
  %v4_104 = fadd x86_fp80 %v7_f4, %v4_102
  store x86_fp80 %v4_104, x86_fp80* %st7.global-to-local, align 4
  %v2_10a = add i32 %v3_f, -24
  %v3_10a = inttoptr i32 %v2_10a to double*
  %v4_10a = load double, double* %v3_10a, align 4
  %v5_10a = fpext double %v4_10a to x86_fp80
  %v6_10d = fadd x86_fp80 %v5_10a, %v4_c5
  store x86_fp80 %v6_10d, x86_fp80* %st7.global-to-local, align 4
  %v2_114 = add i32 %v3_f, -32
  %v3_114 = inttoptr i32 %v2_114 to double*
  %v4_114 = load double, double* %v3_114, align 4
  %v5_114 = fpext double %v4_114 to x86_fp80
  %v6_117 = fadd x86_fp80 %v5_114, %v4_2c
  store x86_fp80 %v6_117, x86_fp80* %st7.global-to-local, align 4
  %v2_11e = add i32 %v3_f, -40
  %v3_11e = inttoptr i32 %v2_11e to double*
  %v4_11e = load double, double* %v3_11e, align 4
  %v5_11e = fpext double %v4_11e to x86_fp80
  %v6_121 = fadd x86_fp80 %v5_11e, %v4_2e
  %v3_12d = fmul x86_fp80 %v6_10d, %v6_10d
  %v3_132 = fmul x86_fp80 %v6_117, %v6_117
  %v3_137 = fmul x86_fp80 %v6_121, %v6_121
  %v4_139 = fadd x86_fp80 %v3_132, %v3_137
  %v4_13b = fadd x86_fp80 %v3_12d, %v4_139
  %v3_144 = fmul x86_fp80 %v4_d2, %v4_d2
  %v3_149 = fmul x86_fp80 %v4_eb, %v4_eb
  %v4_14b = fadd x86_fp80 %v3_144, %v3_149
  %v2_14d = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_14b)
  %v4_15d = fadd x86_fp80 %v3_12d, %v3_132
  %v2_15f = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_15d)
  %v7_168 = fmul x86_fp80 %v4_104, %v2_15f
  %v7_16e = fmul x86_fp80 %v2_14d, %v6_121
  %v4_171 = fsub x86_fp80 %v7_168, %v7_16e
  %v11_173 = fdiv x86_fp80 %v4_171, %v4_13b
  store x86_fp80 %v11_173, x86_fp80* %st7.global-to-local, align 4
  %v5_176 = load double, double* %v4_6c, align 4
  %v6_176 = fpext double %v5_176 to x86_fp80
  %v7_176 = fmul x86_fp80 %v11_173, %v6_176
  %tmp267 = bitcast double %v3_2e to i64
  %tmp268 = trunc i64 %tmp267 to i32
  %v3_179 = fptrunc x86_fp80 %v7_176 to double
  %v4_179 = inttoptr i32 %tmp268 to double*
  store double %v3_179, double* %v4_179, align 4
  %v7_180 = fmul x86_fp80 %v4_104, %v6_121
  %v7_183 = fdiv x86_fp80 %v7_180, %v2_15f
  %v7_186 = fdiv x86_fp80 %v7_183, %v2_14d
  %v4_18b = fadd x86_fp80 %v7_186, 0xK3FFF8000000000000000
  %v11_18d = fdiv x86_fp80 %v4_18b, %v4_13b
  %v7_197 = fmul x86_fp80 %v4_d2, %v6_10d
  %v7_19d = fmul x86_fp80 %v4_eb, %v6_117
  %v4_1a0 = fadd x86_fp80 %v7_197, %v7_19d
  %v11_1a2 = fmul x86_fp80 %v4_1a0, %v11_18d
  %v2_1a5 = load i32, i32* %ebx.global-to-local, align 4
  %v3_1a5 = fptrunc x86_fp80 %v11_1a2 to double
  %v4_1a5 = inttoptr i32 %v2_1a5 to double*
  store double %v3_1a5, double* %v4_1a5, align 4
  %v7_1ac = fmul x86_fp80 %v4_d2, %v6_117
  %v7_1b2 = fmul x86_fp80 %v4_eb, %v6_10d
  %v4_1b5 = fsub x86_fp80 %v7_1b2, %v7_1ac
  %v11_1b7 = fmul x86_fp80 %v4_1b5, %v11_18d
  %v2_1ba = load i32, i32* @edx, align 8
  %v3_1ba = fptrunc x86_fp80 %v11_1b7 to double
  %v4_1ba = inttoptr i32 %v2_1ba to double*
  store double %v3_1ba, double* %v4_1ba, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st7.global-to-local, align 4
  %v2_1c0 = load i32, i32* %edi.global-to-local, align 4
  %v3_1c0 = add i32 %v2_1c0, -64
  %v4_1c0 = inttoptr i32 %v3_1c0 to double*
  %v5_1c0 = load double, double* %v4_1c0, align 4
  %v6_1c0 = fpext double %v5_1c0 to x86_fp80
  %v7_1c0 = fsub x86_fp80 0xK3FFF8000000000000000, %v6_1c0
  store x86_fp80 %v7_1c0, x86_fp80* %st7.global-to-local, align 4
  %v1_1c3 = load i32, i32* %esi.global-to-local, align 4
  %v2_1c3 = add i32 %v1_1c3, 24
  %v3_1c3 = inttoptr i32 %v2_1c3 to double*
  %v4_1c3 = load double, double* %v3_1c3, align 4
  %v5_1c3 = fpext double %v4_1c3 to x86_fp80
  %v4_1c6 = fmul x86_fp80 %v7_1c0, %v5_1c3
  %v4_1c8 = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_1c8 = fpext double %v4_1c8 to x86_fp80
  %v6_1c8 = fadd x86_fp80 %v4_1c6, %v5_1c8
  %v3_1ca = fptrunc x86_fp80 %v6_1c8 to double
  store double %v3_1ca, double* %v4_1a5, align 4
  %v2_1cc = add i32 %v1_1c3, ptrtoint (double** @global_var_20.2 to i32)
  %v3_1cc = inttoptr i32 %v2_1cc to double*
  %v4_1cc = load double, double* %v3_1cc, align 4
  %v5_1cc = fpext double %v4_1cc to x86_fp80
  %v3_1cf = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_1cf = fmul x86_fp80 %v3_1cf, %v5_1cc
  %v4_1d1 = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_1d1 = fpext double %v4_1d1 to x86_fp80
  %v6_1d1 = fadd x86_fp80 %v4_1cf, %v5_1d1
  %tmp270 = bitcast double %v4_1d1 to i64
  %tmp271 = trunc i64 %tmp270 to i32
  %v3_1d3 = fptrunc x86_fp80 %v6_1d1 to double
  %v4_1d3 = inttoptr i32 %tmp271 to double*
  store double %v3_1d3, double* %v4_1d3, align 4
  %v2_1d5 = add i32 %v1_1c3, ptrtoint (double** @global_var_28.3 to i32)
  %v3_1d5 = inttoptr i32 %v2_1d5 to double*
  %v4_1d5 = load double, double* %v3_1d5, align 4
  %v5_1d5 = fpext double %v4_1d5 to x86_fp80
  %v3_1d8 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_1d8 = fmul x86_fp80 %v3_1d8, %v5_1d5
  %v4_1da = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_1da = fpext double %v4_1da to x86_fp80
  %v6_1da = fadd x86_fp80 %v4_1d8, %v5_1da
  store x86_fp80 %v6_1da, x86_fp80* %st7.global-to-local, align 4
  %tmp272 = bitcast double %v4_1da to i64
  %tmp273 = trunc i64 %tmp272 to i32
  %v3_1dc = fptrunc x86_fp80 %v6_1da to double
  %v4_1dc = inttoptr i32 %tmp273 to double*
  store double %v3_1dc, double* %v4_1dc, align 4
  %v5_1dc = add i3 %v6_af2, add (i3 add (i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 1), 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 xor (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 -1))), i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 1), 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 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 -1), i3 add (i3 add (i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 -3), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 -1), i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 2))))))))
  store i3 %v5_1dc, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_1a5, 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_1a5
}

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

attributes #0 = { nounwind readnone speculatable }
