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
  %st5.global-to-local = alloca x86_fp80, align 4
  %st6.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_15 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_17 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_17 = fpext double %v3_17 to x86_fp80
  %v5_17 = add i3 %v0_15, 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_17, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_17, x86_fp80* %st6.global-to-local, align 4
  %v3_19 = call i32 @__asm_fpatan(i32 %v0_b, i32 %v0_a, i32 %v0_9)
  store i32 %v3_19, i32* @eax, align 8
  %v2_1b = load i32, i32* %edi.global-to-local, align 4
  %v3_1b = add i32 %v2_1b, -32
  %v4_1b = inttoptr i32 %v3_1b to double*
  %v5_1b = load double, double* %v4_1b, align 4
  %v6_1b = fpext double %v5_1b to x86_fp80
  %v7_1b = fmul x86_fp80 %v4_17, %v6_1b
  %v0_1e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_1e = fptrunc x86_fp80 %v7_1b to float
  %v3_22 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_22 = fpext double %v3_22 to x86_fp80
  %v3_24 = fmul x86_fp80 %v4_22, %v4_22
  %v3_26 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_26 = fpext double %v3_26 to x86_fp80
  %v5_26 = sub i3 %v0_1e, ptrtoint (i8* @global_var_1.1 to i3)
  %v3_28 = fmul x86_fp80 %v4_26, %v4_26
  store x86_fp80 %v3_28, x86_fp80* %st5.global-to-local, align 4
  %v4_2a = fadd x86_fp80 %v3_24, %v3_28
  %v2_2c = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_2a)
  store x86_fp80 %v2_2c, x86_fp80* %st6.global-to-local, align 4
  %v4_2e = fptrunc x86_fp80 %v2_2c to float
  %v3_31 = add i32 %v2_1b, -16
  %v4_31 = inttoptr i32 %v3_31 to double*
  %v5_31 = load double, double* %v4_31, align 4
  %v6_31 = fpext double %v5_31 to x86_fp80
  %v7_31 = fsub x86_fp80 %v2_2c, %v6_31
  %v4_34 = fptrunc x86_fp80 %v7_31 to float
  store x86_fp80 %v7_1b, x86_fp80* %st6.global-to-local, align 4
  %v2_3b = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_1b)
  %v3_3b = fcmp olt x86_fp80 %v2_3b, 0xK403E8000000000000000
  %tmp245 = bitcast double %v3_26 to i64
  %tmp246 = trunc i64 %tmp245 to i32
  br i1 %v3_3b, label %bb, label %bb247

bb:                                               ; preds = %dec_label_pc_0
  %v4_3b = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_1b)
  store x86_fp80 %v4_3b, x86_fp80* %st6.global-to-local, align 4
  %v7_3b = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_1b)
  store i3 %v5_26, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_3b, x86_fp80* %st5.global-to-local, align 4
  %.pre = sub i3 %v5_26, ptrtoint (i8* @global_var_1.1 to i3)
  br label %bb247

bb247:                                            ; preds = %dec_label_pc_0, %bb
  %v6_3e.pre-phi = phi i3 [ %v5_26, %dec_label_pc_0 ], [ %.pre, %bb ]
  %v3_43 = phi x86_fp80 [ %v3_28, %dec_label_pc_0 ], [ %v7_3b, %bb ]
  %v2_41 = phi x86_fp80 [ %v7_1b, %dec_label_pc_0 ], [ %v4_3b, %bb ]
  %v4_41 = fmul x86_fp80 %v2_41, %v2_2c
  store x86_fp80 %v4_41, x86_fp80* %st6.global-to-local, align 4
  %v4_43 = fmul x86_fp80 %v3_43, %v2_2c
  store x86_fp80 %v4_43, x86_fp80* %st5.global-to-local, align 4
  %v2_45 = add i32 %v2_1b, -24
  %v3_45 = inttoptr i32 %v2_45 to double*
  %v4_45 = load double, double* %v3_45, align 4
  %v5_45 = fpext double %v4_45 to x86_fp80
  %v4_48 = fsub x86_fp80 %v4_41, %v5_45
  store x86_fp80 %v4_48, x86_fp80* %st6.global-to-local, align 4
  %v4_4a = fsub x86_fp80 %v4_43, %v5_45
  store x86_fp80 %v4_4a, x86_fp80* %st5.global-to-local, align 4
  %v3_4c = fptrunc x86_fp80 %v4_4a to double
  %v4_4c = inttoptr i32 %tmp246 to double*
  store double %v3_4c, double* %v4_4c, align 4
  %v1_4e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_4e = load i32, i32* %ebx.global-to-local, align 4
  %v3_4e = fptrunc x86_fp80 %v1_4e to double
  %v4_4e = inttoptr i32 %v2_4e to double*
  store double %v3_4e, double* %v4_4e, align 4
  %v3_50 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_50 = fpext double %v3_50 to x86_fp80
  %v3_52 = fmul x86_fp80 %v4_50, %v4_50
  store x86_fp80 %v3_52, x86_fp80* %st6.global-to-local, align 4
  %v5_54 = load double, double* %v3_45, align 4
  %v6_54 = fpext double %v5_54 to x86_fp80
  %v7_54 = fsub x86_fp80 %v3_52, %v6_54
  %v3_5a = fmul x86_fp80 %v7_31, %v7_31
  store x86_fp80 %v3_5a, x86_fp80* %st5.global-to-local, align 4
  %v4_5c = fadd x86_fp80 %v3_5a, %v7_54
  %tmp248 = bitcast double %v3_50 to i64
  %tmp249 = trunc i64 %tmp248 to i32
  %v3_5e = add i32 %tmp249, 8
  %v4_5e = fptrunc x86_fp80 %v4_5c to double
  %v5_5e = inttoptr i32 %v3_5e to double*
  store double %v4_5e, double* %v5_5e, align 4
  %v3_62 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_62 = fpext double %v3_62 to x86_fp80
  store x86_fp80 %v4_62, x86_fp80* %st6.global-to-local, align 4
  %v5_64 = load double, double* %v3_45, align 4
  %v6_64 = fpext double %v5_64 to x86_fp80
  %v7_64 = fsub x86_fp80 %v4_62, %v6_64
  store x86_fp80 %v7_64, x86_fp80* %st6.global-to-local, align 4
  %tmp250 = bitcast double %v3_62 to i64
  %tmp251 = trunc i64 %tmp250 to i32
  %v3_67 = fptrunc x86_fp80 %v7_64 to double
  %v4_67 = inttoptr i32 %tmp251 to double*
  store double %v3_67, double* %v4_67, align 4
  %v1_6a = load i32, i32* %esi.global-to-local, align 4
  %v2_6a = add i32 %v1_6a, 24
  %v3_6a = inttoptr i32 %v2_6a to double*
  %v4_6a = load double, double* %v3_6a, align 4
  %v5_6a = fpext double %v4_6a to x86_fp80
  store x86_fp80 %v5_6a, x86_fp80* %st6.global-to-local, align 4
  %v2_6d = add i32 %v1_6a, 32
  %v3_6d = inttoptr i32 %v2_6d to double*
  %v4_6d = load double, double* %v3_6d, align 4
  %v5_6d = fpext double %v4_6d to x86_fp80
  %v6_6d = add i3 %v6_3e.pre-phi, 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 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 ptrtoint (i8* @global_var_1.1 to i3)))))))
  store i3 %v6_6d, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_6d, x86_fp80* %st5.global-to-local, align 4
  %v1_70 = bitcast float %v4_34 to i32
  %v3_70 = bitcast float %v4_2e to i32
  %v5_70 = bitcast float %v4_1e to i32
  %v6_70 = call i32 @__asm_fpatan(i32 %v1_70, i32 %v3_70, i32 %v5_70)
  store i32 %v6_70, i32* @eax, align 8
  %v2_72 = load i32, i32* %edi.global-to-local, align 4
  %v3_72 = add i32 %v2_72, -32
  %v4_72 = inttoptr i32 %v3_72 to double*
  %v5_72 = load double, double* %v4_72, align 4
  %v6_72 = fpext double %v5_72 to x86_fp80
  %v7_72 = fmul x86_fp80 %v5_6d, %v6_72
  store x86_fp80 %v7_72, x86_fp80* %st5.global-to-local, align 4
  %v0_75 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_79 = load i32, i32* %esi.global-to-local, align 4
  %v2_79 = add i32 %v1_79, 24
  %v3_79 = inttoptr i32 %v2_79 to double*
  %v4_79 = load double, double* %v3_79, align 4
  %v5_79 = fpext double %v4_79 to x86_fp80
  %v3_7c = fmul x86_fp80 %v5_79, %v5_79
  store x86_fp80 %v3_7c, x86_fp80* %st5.global-to-local, align 4
  %v2_7e = add i32 %v1_79, 32
  %v3_7e = inttoptr i32 %v2_7e to double*
  %v4_7e = load double, double* %v3_7e, align 4
  %v5_7e = fpext double %v4_7e to x86_fp80
  %v6_7e = sub i3 %v0_75, ptrtoint (i8* @global_var_1.1 to i3)
  %v3_81 = fmul x86_fp80 %v5_7e, %v5_7e
  %v4_83 = fadd x86_fp80 %v3_7c, %v3_81
  %v2_85 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_83)
  store x86_fp80 %v2_85, x86_fp80* %st5.global-to-local, align 4
  %v3_8a = add i32 %v2_72, -16
  %v4_8a = inttoptr i32 %v3_8a to double*
  %v5_8a = load double, double* %v4_8a, align 4
  %v6_8a = fpext double %v5_8a to x86_fp80
  %v7_8a = fsub x86_fp80 %v2_85, %v6_8a
  store x86_fp80 %v7_72, x86_fp80* %st5.global-to-local, align 4
  %v2_94 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_72)
  %v3_94 = fcmp olt x86_fp80 %v2_94, 0xK403E8000000000000000
  br i1 %v3_94, label %bb252, label %bb253

bb252:                                            ; preds = %bb247
  %v4_94 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_72)
  store x86_fp80 %v4_94, x86_fp80* %st5.global-to-local, align 4
  %v7_94 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_72)
  store i3 %v6_7e, i3* %fpu_stat_TOP.global-to-local, align 1
  %.pre7 = sub i3 %v6_7e, ptrtoint (i8* @global_var_1.1 to i3)
  br label %bb253

bb253:                                            ; preds = %bb247, %bb252
  %v6_97.pre-phi = phi i3 [ %v6_7e, %bb247 ], [ %.pre7, %bb252 ]
  %v3_9c = phi x86_fp80 [ %v3_81, %bb247 ], [ %v7_94, %bb252 ]
  %v2_9a = phi x86_fp80 [ %v7_72, %bb247 ], [ %v4_94, %bb252 ]
  %v4_9a = fmul x86_fp80 %v2_9a, %v2_85
  store x86_fp80 %v4_9a, x86_fp80* %st5.global-to-local, align 4
  %v4_9c = fmul x86_fp80 %v3_9c, %v2_85
  %v2_9e = add i32 %v2_72, -24
  %v3_9e = inttoptr i32 %v2_9e to double*
  %v4_9e = load double, double* %v3_9e, align 4
  %v5_9e = fpext double %v4_9e to x86_fp80
  %v4_a1 = fsub x86_fp80 %v4_9a, %v5_9e
  store x86_fp80 %v4_a1, x86_fp80* %st5.global-to-local, align 4
  %v4_a3 = fsub x86_fp80 %v4_9c, %v5_9e
  %v4_a5 = fptrunc x86_fp80 %v4_a3 to double
  store double %v4_a5, double* %v3_7e, align 4
  %v1_a8 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_a8 = fptrunc x86_fp80 %v1_a8 to double
  store double %v4_a8, double* %v3_79, align 4
  %v2_ab = add i32 %v1_79, 40
  %v3_ab = inttoptr i32 %v2_ab to double*
  %v4_ab = load double, double* %v3_ab, align 4
  %v5_ab = fpext double %v4_ab to x86_fp80
  %v3_ae = fmul x86_fp80 %v5_ab, %v5_ab
  store x86_fp80 %v3_ae, x86_fp80* %st5.global-to-local, align 4
  %v5_b0 = load double, double* %v3_9e, align 4
  %v6_b0 = fpext double %v5_b0 to x86_fp80
  %v7_b0 = fsub x86_fp80 %v3_ae, %v6_b0
  %v3_b6 = fmul x86_fp80 %v7_8a, %v7_8a
  %v4_b8 = fadd x86_fp80 %v3_b6, %v7_b0
  store x86_fp80 %v4_b8, x86_fp80* %st5.global-to-local, align 4
  %v3_ba = add i32 %v1_79, -56
  %v4_ba = fptrunc x86_fp80 %v4_b8 to double
  %v5_ba = inttoptr i32 %v3_ba to double*
  store double %v4_ba, double* %v5_ba, align 4
  %v6_ba = add i3 %v6_97.pre-phi, 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 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)))))
  %v4_be = load double, double* %v3_ab, align 4
  %v5_be = fpext double %v4_be to x86_fp80
  store x86_fp80 %v5_be, x86_fp80* %st5.global-to-local, align 4
  %v5_c1 = load double, double* %v3_9e, align 4
  %v6_c1 = fpext double %v5_c1 to x86_fp80
  %v7_c1 = fsub x86_fp80 %v5_be, %v6_c1
  store x86_fp80 %v7_c1, x86_fp80* %st5.global-to-local, align 4
  %v4_c4 = fptrunc x86_fp80 %v7_c1 to double
  store double %v4_c4, double* %v3_ab, align 4
  store i3 %v6_ba, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_c8 = load i32, i32* %ebx.global-to-local, align 4
  store i32 %v0_c8, 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 %v0_c8
}

declare i32 @__asm_fpatan(i32, i32, i32) local_unnamed_addr

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

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

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

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

attributes #0 = { nounwind readnone speculatable }
