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
  %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
  %v1_16 = add i32 %v3_f, -52
  %v2_16 = inttoptr i32 %v1_16 to i8*
  %v3_16 = load i8, i8* %v2_16, align 1
  %v4_16 = zext i8 %v3_16 to i32
  %v6_16 = and i32 %v0_12, -256
  %v7_16 = or i32 %v6_16, %v4_16
  store i32 %v7_16, i32* @eax, align 8
  %v3_1b = inttoptr i32 %v3_f to double*
  %v3_1f = add i32 %v3_f, 8
  %v4_1f = inttoptr i32 %v3_1f to double*
  %v3_26 = add i32 %v3_f, 16
  %v4_26 = inttoptr i32 %v3_26 to double*
  %v4_58 = inttoptr i32 %v0_12 to double*
  %v3_97 = add i32 %v3_f, -16
  %v4_97 = inttoptr i32 %v3_97 to double*
  %v3_9a = add i32 %v3_f, -24
  %v4_9a = inttoptr i32 %v3_9a to double*
  %fpu_stat_TOP.promoted = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_19

dec_label_pc_19:                                  ; preds = %dec_label_pc_19, %dec_label_pc_0
  %v5_ab1 = phi i3 [ %v5_92, %dec_label_pc_19 ], [ %fpu_stat_TOP.promoted, %dec_label_pc_0 ]
  %v3_19 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_19 = fpext double %v3_19 to x86_fp80
  store x86_fp80 %v4_19, x86_fp80* %st7.global-to-local, align 4
  %v4_1b = load double, double* %v3_1b, align 4
  %v5_1b = fpext double %v4_1b to x86_fp80
  %v6_1b = fmul x86_fp80 %v4_19, %v5_1b
  store x86_fp80 %v6_1b, x86_fp80* %st7.global-to-local, align 4
  %v3_1d = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_1d = fpext double %v3_1d to x86_fp80
  store x86_fp80 %v4_1d, x86_fp80* %st6.global-to-local, align 4
  %v5_1f = load double, double* %v4_1f, align 4
  %v6_1f = fpext double %v5_1f to x86_fp80
  %v7_1f = fmul x86_fp80 %v4_1d, %v6_1f
  %v2_22 = fsub x86_fp80 0xK80000000000000000000, %v7_1f
  store x86_fp80 %v2_22, x86_fp80* %st6.global-to-local, align 4
  %v4_24 = fsub x86_fp80 %v6_1b, %v7_1f
  store x86_fp80 %v4_24, x86_fp80* %st7.global-to-local, align 4
  %v5_26 = load double, double* %v4_26, align 4
  %v6_26 = fpext double %v5_26 to x86_fp80
  %v7_26 = fmul x86_fp80 %v4_24, %v6_26
  store x86_fp80 %v4_19, x86_fp80* %st7.global-to-local, align 4
  %v5_2e = load double, double* %v4_1f, align 4
  %v6_2e = fpext double %v5_2e to x86_fp80
  %v7_2e = fmul x86_fp80 %v4_19, %v6_2e
  store x86_fp80 %v7_2e, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_1d, x86_fp80* %st6.global-to-local, align 4
  %v4_33 = load double, double* %v3_1b, align 4
  %v5_33 = fpext double %v4_33 to x86_fp80
  %v6_33 = fmul x86_fp80 %v4_1d, %v5_33
  %v4_35 = fadd x86_fp80 %v7_2e, %v6_33
  %v2_37 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_35)
  store x86_fp80 %v2_37, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_26, x86_fp80* %st6.global-to-local, align 4
  %v3_3d = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_3d = fpext double %v3_3d to x86_fp80
  %v5_3f = load double, double* %v4_26, align 4
  %v6_3f = fpext double %v5_3f to x86_fp80
  %v7_3f = fmul x86_fp80 %v4_3d, %v6_3f
  %v4_44 = fsub x86_fp80 %v7_26, %v7_3f
  %v2_46 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_44)
  store x86_fp80 %v2_46, x86_fp80* %st6.global-to-local, align 4
  %v5_4e = load double, double* %v4_26, align 4
  %v6_4e = fpext double %v5_4e to x86_fp80
  %v7_4e = fmul x86_fp80 %v4_3d, %v6_4e
  %v4_51 = fadd x86_fp80 %v7_4e, %v7_26
  %tmp242 = bitcast double %v3_3d to i64
  %tmp243 = trunc i64 %tmp242 to i32
  %tmp244 = fptrunc x86_fp80 %v4_51 to double
  %v3_56 = call double @llvm.fabs.f64(double %tmp244)
  %v4_56 = inttoptr i32 %tmp243 to double*
  store double %v3_56, double* %v4_56, align 4
  %v1_58 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_58 = fptrunc x86_fp80 %v1_58 to double
  store double %v3_58, double* %v4_58, align 4
  %v1_5a = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_5a = load i32, i32* @ecx, align 8
  %v3_5a = fptrunc x86_fp80 %v1_5a to double
  %v4_5a = inttoptr i32 %v2_5a to double*
  store double %v3_5a, double* %v4_5a, align 4
  %v3_5d = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_5d = fpext double %v3_5d to x86_fp80
  %v4_5f = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_5f = fpext double %v4_5f to x86_fp80
  %v6_5f = fadd x86_fp80 %v4_5d, %v5_5f
  store x86_fp80 %v6_5f, x86_fp80* %st7.global-to-local, align 4
  %v5_61 = load double, double* %v4_26, align 4
  %v6_61 = fpext double %v5_61 to x86_fp80
  %v7_61 = fmul x86_fp80 %v6_5f, %v6_61
  %v6_6c = fsub x86_fp80 %v5_5f, %v4_5d
  store x86_fp80 %v6_6c, x86_fp80* %st7.global-to-local, align 4
  %v5_6e = load double, double* %v4_26, align 4
  %v6_6e = fpext double %v5_6e to x86_fp80
  %v7_6e = fmul x86_fp80 %v6_6c, %v6_6e
  store x86_fp80 %v7_6e, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_61, x86_fp80* %st6.global-to-local, align 4
  %v4_75 = load double, double* %v3_1b, align 4
  %v5_75 = fpext double %v4_75 to x86_fp80
  %v6_75 = fmul x86_fp80 %v7_61, %v5_75
  store x86_fp80 %v6_75, x86_fp80* %st6.global-to-local, align 4
  %v3_77 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_77 = fpext double %v3_77 to x86_fp80
  %v5_79 = load double, double* %v4_1f, align 4
  %v6_79 = fpext double %v5_79 to x86_fp80
  %v7_79 = fmul x86_fp80 %v4_77, %v6_79
  %v4_7c = fadd x86_fp80 %v6_75, %v7_79
  store x86_fp80 %v4_7c, x86_fp80* %st6.global-to-local, align 4
  %v5_82 = load double, double* %v4_1f, align 4
  %v6_82 = fpext double %v5_82 to x86_fp80
  %v7_82 = fmul x86_fp80 %v7_61, %v6_82
  %v4_89 = load double, double* %v3_1b, align 4
  %v5_89 = fpext double %v4_89 to x86_fp80
  %v6_89 = fmul x86_fp80 %v4_77, %v5_89
  %v4_8b = fsub x86_fp80 %v6_89, %v7_82
  %tmp245 = bitcast double %v3_77 to i64
  %tmp246 = trunc i64 %tmp245 to i32
  %v3_8e = fptrunc x86_fp80 %v4_8b to double
  %v4_8e = inttoptr i32 %tmp246 to double*
  store double %v3_8e, double* %v4_8e, align 4
  %v1_90 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_90 = fptrunc x86_fp80 %v1_90 to double
  store double %v3_90, double* %v4_58, align 4
  %v1_92 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_92 = load i32, i32* @edx, align 8
  %v3_92 = fptrunc x86_fp80 %v1_92 to double
  %v4_92 = inttoptr i32 %v2_92 to double*
  store double %v3_92, double* %v4_92, align 4
  %v5_92 = add i3 %v5_ab1, add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 3), i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 3), 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 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 xor (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 -1))))))))))
  %v3_95 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_95 = fpext double %v3_95 to x86_fp80
  store x86_fp80 %v4_95, x86_fp80* %st7.global-to-local, align 4
  %v5_97 = load double, double* %v4_97, align 4
  %v6_97 = fpext double %v5_97 to x86_fp80
  %v7_97 = fmul x86_fp80 %v4_95, %v6_97
  store x86_fp80 %v7_97, x86_fp80* %st7.global-to-local, align 4
  %v5_9a = load double, double* %v4_9a, align 4
  %v6_9a = fpext double %v5_9a to x86_fp80
  %v7_9a = fsub x86_fp80 %v7_97, %v6_9a
  %v3_9d = fptrunc x86_fp80 %v7_9a to double
  store double %v3_9d, double* %v4_58, align 4
  %v3_9f = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_9f = fpext double %v3_9f to x86_fp80
  store x86_fp80 %v4_9f, x86_fp80* %st7.global-to-local, align 4
  %v5_a1 = load double, double* %v4_97, align 4
  %v6_a1 = fpext double %v5_a1 to x86_fp80
  %v7_a1 = fmul x86_fp80 %v4_9f, %v6_a1
  %tmp247 = bitcast double %v3_9f to i64
  %tmp248 = trunc i64 %tmp247 to i32
  %v3_a4 = fptrunc x86_fp80 %v7_a1 to double
  %v4_a4 = inttoptr i32 %tmp248 to double*
  store double %v3_a4, double* %v4_a4, align 4
  %v3_a6 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_a6 = fpext double %v3_a6 to x86_fp80
  store x86_fp80 %v4_a6, x86_fp80* %st7.global-to-local, align 4
  %v5_a8 = load double, double* %v4_97, align 4
  %v6_a8 = fpext double %v5_a8 to x86_fp80
  %v7_a8 = fmul x86_fp80 %v4_a6, %v6_a8
  store x86_fp80 %v7_a8, x86_fp80* %st7.global-to-local, align 4
  %tmp249 = bitcast double %v3_a6 to i64
  %tmp250 = trunc i64 %tmp249 to i32
  %v3_ab = fptrunc x86_fp80 %v7_a8 to double
  %v4_ab = inttoptr i32 %tmp250 to double*
  store double %v3_ab, double* %v4_ab, align 4
  %v0_ae = load i32, i32* @eax, align 8
  %v1_ae = trunc i32 %v0_ae to i8
  %v2_ae = sub i8 %v1_ae, ptrtoint (i8* @global_var_1.1 to i8)
  %v10_ae = icmp eq i8 %v2_ae, 0
  %v15_ae = zext i8 %v2_ae to i32
  %v17_ae = and i32 %v0_ae, -256
  %v18_ae = or i32 %v17_ae, %v15_ae
  store i32 %v18_ae, i32* @eax, align 8
  %v1_b0 = icmp eq i1 %v10_ae, false
  br i1 %v1_b0, label %dec_label_pc_19, label %dec_label_pc_b6

dec_label_pc_b6:                                  ; preds = %dec_label_pc_19
  %v3_b6 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_b6 = fpext double %v3_b6 to x86_fp80
  %v3_b8 = fmul x86_fp80 %v4_b6, %v4_b6
  %v3_bd = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_bd = fpext double %v3_bd to x86_fp80
  %v3_bf = fmul x86_fp80 %v4_bd, %v4_bd
  %v3_c4 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_c4 = fpext double %v3_c4 to x86_fp80
  %v3_c6 = fmul x86_fp80 %v4_c4, %v4_c4
  %v3_cd = fadd x86_fp80 %v4_b6, %v4_b6
  %v7_d2 = fadd x86_fp80 %v3_bf, %v3_c6
  %v2_d5 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v7_d2)
  %v4_d7 = fdiv x86_fp80 %v3_cd, %v2_d5
  %v7_e0 = fsub x86_fp80 %v3_b8, %v3_bf
  %v7_e3 = fsub x86_fp80 %v7_e0, %v3_c6
  store x86_fp80 %v7_e3, x86_fp80* %st7.global-to-local, align 4
  %v7_ed = fsub x86_fp80 %v3_bf, %v3_c6
  %v4_f0 = fmul x86_fp80 %v7_ed, %v4_d7
  store x86_fp80 %v4_f0, x86_fp80* %st6.global-to-local, align 4
  %v3_f6 = fadd x86_fp80 %v4_d7, %v4_d7
  %v6_f8 = fmul x86_fp80 %v3_f6, %v4_c4
  %v6_fa = fmul x86_fp80 %v6_f8, %v4_bd
  %v1_fd = load i32, i32* %esi.global-to-local, align 4
  %v2_fd = add i32 %v1_fd, 32
  %v3_fd = inttoptr i32 %v2_fd to double*
  %v4_fd = load double, double* %v3_fd, align 4
  %v5_fd = fpext double %v4_fd to x86_fp80
  %v2_100 = load i32, i32* %edi.global-to-local, align 4
  %v3_100 = add i32 %v2_100, -48
  %v4_100 = inttoptr i32 %v3_100 to double*
  %v5_100 = load double, double* %v4_100, align 4
  %v6_100 = fpext double %v5_100 to x86_fp80
  %v7_100 = fmul x86_fp80 %v5_fd, %v6_100
  %v4_103 = fadd x86_fp80 %v7_100, %v6_fa
  %tmp251 = bitcast double %v3_bd to i64
  %tmp252 = trunc i64 %tmp251 to i32
  %v3_105 = fptrunc x86_fp80 %v4_103 to double
  %v4_105 = inttoptr i32 %tmp252 to double*
  store double %v3_105, double* %v4_105, align 4
  %v2_108 = add i32 %v1_fd, 40
  %v3_108 = inttoptr i32 %v2_108 to double*
  %v4_108 = load double, double* %v3_108, align 4
  %v5_108 = fpext double %v4_108 to x86_fp80
  %v3_10b = add i32 %v2_100, -40
  %v4_10b = inttoptr i32 %v3_10b to double*
  %v5_10b = load double, double* %v4_10b, align 4
  %v6_10b = fpext double %v5_10b to x86_fp80
  %v7_10b = fmul x86_fp80 %v5_108, %v6_10b
  %v3_10e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_10e = fadd x86_fp80 %v3_10e, %v7_10b
  store x86_fp80 %v4_10e, x86_fp80* %st6.global-to-local, align 4
  %v2_110 = load i32, i32* @ecx, align 8
  %v3_110 = fptrunc x86_fp80 %v4_10e to double
  %v4_110 = inttoptr i32 %v2_110 to double*
  store double %v3_110, double* %v4_110, align 4
  %v2_113 = add i32 %v1_fd, 24
  %v3_113 = inttoptr i32 %v2_113 to double*
  %v4_113 = load double, double* %v3_113, align 4
  %v5_113 = fpext double %v4_113 to x86_fp80
  store x86_fp80 %v5_113, x86_fp80* %st6.global-to-local, align 4
  %v3_116 = add i32 %v2_100, -32
  %v4_116 = inttoptr i32 %v3_116 to double*
  %v5_116 = load double, double* %v4_116, align 4
  %v6_116 = fpext double %v5_116 to x86_fp80
  %v7_116 = fmul x86_fp80 %v5_113, %v6_116
  store x86_fp80 %v7_116, x86_fp80* %st6.global-to-local, align 4
  %v3_119 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_119 = fadd x86_fp80 %v7_116, %v3_119
  store x86_fp80 %v4_119, x86_fp80* %st7.global-to-local, align 4
  %v2_11b = load i32, i32* %ebx.global-to-local, align 4
  %v3_11b = fptrunc x86_fp80 %v4_119 to double
  %v4_11b = inttoptr i32 %v2_11b to double*
  store double %v3_11b, double* %v4_11b, align 4
  %v5_11b = add i3 %v5_ab1, add (i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 3), i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 3), 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 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 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 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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 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 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_11b, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_11b, 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_11b
}

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

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

; Function Attrs: nounwind readnone speculatable
declare double @llvm.fabs.f64(double) #0

attributes #0 = { nounwind readnone speculatable }
