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

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebp.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_0 = load i32, i32* %ebp.global-to-local, align 4
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_7 = add i32 %arg1, 48
  %v2_7 = inttoptr i32 %v1_7 to i32*
  %v3_7 = load i32, i32* %v2_7, align 4
  %v3_a = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_a = fpext double %v3_a to x86_fp80
  store x86_fp80 %v4_a, x86_fp80* %st7.global-to-local, align 4
  %v3_c = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_c = fpext double %v3_c to x86_fp80
  %v3_e = add i32 %v3_7, -32
  %v4_e = inttoptr i32 %v3_e to double*
  %v5_e = load double, double* %v4_e, align 4
  %v6_e = fpext double %v5_e to x86_fp80
  %v7_e = fmul x86_fp80 %v4_c, %v6_e
  %v2_11 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_e)
  %v3_11 = fcmp olt x86_fp80 %v2_11, 0xK403E8000000000000000
  %v4_11 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_e)
  %storemerge1 = select i1 %v3_11, x86_fp80 %v4_11, x86_fp80 %v7_e
  %v3_15 = add i32 %v3_7, -24
  %v4_15 = inttoptr i32 %v3_15 to double*
  %v5_15 = load double, double* %v4_15, align 4
  %v6_15 = fpext double %v5_15 to x86_fp80
  %tmp237 = fmul x86_fp80 %storemerge1, %v6_15
  %v4_18 = fsub x86_fp80 %v4_a, %tmp237
  store x86_fp80 %v4_18, x86_fp80* %st7.global-to-local, align 4
  %v3_1a = add i32 %v3_7, -16
  %v4_1a = inttoptr i32 %v3_1a to double*
  %v5_1a = load double, double* %v4_1a, align 4
  %v6_1a = fpext double %v5_1a to x86_fp80
  %v7_1a = fmul x86_fp80 %v4_18, %v6_1a
  store x86_fp80 %v7_1a, x86_fp80* %st7.global-to-local, align 4
  %v2_1f = add i32 %v3_7, -40
  %v3_1f = inttoptr i32 %v2_1f to double*
  %v4_1f = load double, double* %v3_1f, align 4
  %v5_1f = fpext double %v4_1f to x86_fp80
  %v6_22 = fsub x86_fp80 %v5_1f, %v4_c
  %v5_24 = load double, double* %v4_1a, align 4
  %v6_24 = fpext double %v5_24 to x86_fp80
  %v7_24 = fmul x86_fp80 %v6_22, %v6_24
  %tmp233 = bitcast double %v3_a to i64
  %tmp234 = trunc i64 %tmp233 to i32
  %v3_29 = fptrunc x86_fp80 %v7_24 to double
  %v4_29 = inttoptr i32 %tmp234 to double*
  store double %v3_29, double* %v4_29, align 4
  %v1_2b = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_2b = load i32, i32* @eax, align 8
  %v3_2b = fptrunc x86_fp80 %v1_2b to double
  %v4_2b = inttoptr i32 %v2_2b to double*
  store double %v3_2b, double* %v4_2b, align 4
  %v1_2f = load i32, i32* @ecx, align 8
  %v2_2f = add i32 %v1_2f, 8
  %v3_2f = inttoptr i32 %v2_2f to double*
  %v4_2f = load double, double* %v3_2f, align 4
  %v5_2f = fpext double %v4_2f to x86_fp80
  %v3_32 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_32 = fpext double %v3_32 to x86_fp80
  %v2_39 = fsub x86_fp80 0xK80000000000000000000, %v5_2f
  store x86_fp80 %v2_39, x86_fp80* %st7.global-to-local, align 4
  %v5_3b = load double, double* %v4_15, align 4
  %v6_3b = fpext double %v5_3b to x86_fp80
  %v7_3b = fmul x86_fp80 %v2_39, %v6_3b
  %v4_3e = fadd x86_fp80 %v7_3b, %v7_3b
  store x86_fp80 %v4_3e, x86_fp80* %st7.global-to-local, align 4
  %v5_40 = load double, double* %v4_1a, align 4
  %v6_40 = fpext double %v5_40 to x86_fp80
  %v7_40 = fmul x86_fp80 %v4_3e, %v6_40
  store x86_fp80 %v7_40, x86_fp80* %st7.global-to-local, align 4
  %v2_45 = add i32 %v3_7, -48
  %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
  %v6_48 = fsub x86_fp80 %v5_45, %v4_32
  %v5_4a = load double, double* %v4_1a, align 4
  %v6_4a = fpext double %v5_4a to x86_fp80
  %v7_4a = fmul x86_fp80 %v6_48, %v6_4a
  %tmp235 = bitcast double %v3_32 to i64
  %tmp236 = trunc i64 %tmp235 to i32
  %v3_4f = add i32 %tmp236, 8
  %v4_4f = fptrunc x86_fp80 %v7_4a to double
  %v5_4f = inttoptr i32 %v3_4f to double*
  store double %v4_4f, double* %v5_4f, align 4
  %v1_52 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_52 = load i32, i32* @ecx, align 8
  %v3_52 = fptrunc x86_fp80 %v1_52 to double
  %v4_52 = inttoptr i32 %v2_52 to double*
  store double %v3_52, double* %v4_52, align 4
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  store i32 %v0_0, i32* %ebp.global-to-local, align 4
  %v0_58 = load i32, i32* @eax, align 8
  ret i32 %v0_58
}

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

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

attributes #0 = { nounwind readnone speculatable }
