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
@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
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %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
  store i32 %v3_7, i32* %esi.global-to-local, align 4
  %v0_a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_a = load double, double* bitcast (i32* @eax 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
  %v2_c = add i3 %v0_a, -2
  %v2_e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_a)
  %v3_e = fcmp olt x86_fp80 %v2_e, 0xK403E8000000000000000
  %v4_e = call x86_fp80 @llvm.cos.f80(x86_fp80 %v4_a)
  %storemerge1 = select i1 %v3_e, x86_fp80 %v4_e, x86_fp80 %v4_a
  %v3_10 = add i32 %v3_7, -48
  %v4_10 = inttoptr i32 %v3_10 to double*
  %v5_10 = load double, double* %v4_10, align 4
  %v6_10 = fpext double %v5_10 to x86_fp80
  %v7_10 = fmul x86_fp80 %storemerge1, %v6_10
  %v4_13 = fadd x86_fp80 %v7_10, %v4_a
  store x86_fp80 %v4_13, x86_fp80* %st7.global-to-local, align 4
  %v7_13 = add i3 %v0_a, -1
  store i3 %v7_13, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_15 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_13)
  %v3_15 = fcmp olt x86_fp80 %v2_15, 0xK403E8000000000000000
  br i1 %v3_15, label %bb, label %bb236

bb:                                               ; preds = %dec_label_pc_0
  %v4_15 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_13)
  store x86_fp80 %v4_15, x86_fp80* %st7.global-to-local, align 4
  br label %bb236

bb236:                                            ; preds = %dec_label_pc_0, %bb
  %v1_17 = phi x86_fp80 [ %v4_13, %dec_label_pc_0 ], [ %v4_15, %bb ]
  %v3_17 = add i32 %v3_7, -40
  %v4_17 = inttoptr i32 %v3_17 to double*
  %v5_17 = load double, double* %v4_17, align 4
  %v6_17 = fpext double %v5_17 to x86_fp80
  %v7_17 = fmul x86_fp80 %v1_17, %v6_17
  store x86_fp80 %v7_17, x86_fp80* %st7.global-to-local, align 4
  %v3_1a = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_1a = fpext double %v3_1a to x86_fp80
  %v6_1c = fadd x86_fp80 %v4_a, %v4_1a
  %v3_1e = add i32 %v3_7, -56
  %v4_1e = inttoptr i32 %v3_1e to double*
  %v5_1e = load double, double* %v4_1e, align 4
  %v6_1e = fpext double %v5_1e to x86_fp80
  %v7_1e = fmul x86_fp80 %v6_1c, %v6_1e
  %v4_21 = fsub x86_fp80 %v7_1e, %v7_17
  store x86_fp80 %v4_21, x86_fp80* %st7.global-to-local, align 4
  store i3 %v7_13, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_23 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_21)
  %v3_23 = fcmp olt x86_fp80 %v2_23, 0xK403E8000000000000000
  %tmp237 = bitcast double %v3_1a to i64
  %tmp238 = trunc i64 %tmp237 to i32
  br i1 %v3_23, label %bb239, label %bb240

bb239:                                            ; preds = %bb236
  %v4_23 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_21)
  store x86_fp80 %v4_23, x86_fp80* %st7.global-to-local, align 4
  br label %bb240

bb240:                                            ; preds = %bb236, %bb239
  %v1_25 = phi x86_fp80 [ %v4_21, %bb236 ], [ %v4_23, %bb239 ]
  %v3_25 = add i32 %v3_7, -24
  %v4_25 = inttoptr i32 %v3_25 to double*
  %v5_25 = load double, double* %v4_25, align 4
  %v6_25 = fpext double %v5_25 to x86_fp80
  %v7_25 = fmul x86_fp80 %v1_25, %v6_25
  %v6_28 = fadd x86_fp80 %v7_25, %v4_1a
  store x86_fp80 %v6_28, x86_fp80* %st7.global-to-local, align 4
  %v5_31 = load double, double* %v4_10, align 4
  %v6_31 = fpext double %v5_31 to x86_fp80
  %v7_31 = fmul x86_fp80 %v6_28, %v6_31
  %v4_34 = fadd x86_fp80 %v7_31, %v7_31
  store x86_fp80 %v4_34, x86_fp80* %st7.global-to-local, align 4
  %v5_36 = load double, double* %v4_17, align 4
  %v6_36 = fpext double %v5_36 to x86_fp80
  %v7_36 = fmul x86_fp80 %v4_34, %v6_36
  %v2_39 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_36)
  %v3_39 = fcmp olt x86_fp80 %v2_39, 0xK403E8000000000000000
  %v4_39 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_36)
  %storemerge = select i1 %v3_39, x86_fp80 %v4_39, x86_fp80 %v7_36
  store x86_fp80 %storemerge, x86_fp80* %st7.global-to-local, align 4
  %v6_3d = fsub x86_fp80 %v4_a, %v4_1a
  %v5_3f = load double, double* %v4_1e, align 4
  %v6_3f = fpext double %v5_3f to x86_fp80
  %v7_3f = fmul x86_fp80 %v6_3d, %v6_3f
  %v4_42 = fadd x86_fp80 %v7_3f, %storemerge
  store x86_fp80 %v4_42, x86_fp80* %st7.global-to-local, align 4
  store i3 %v2_c, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_44 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_42)
  %v3_44 = fcmp olt x86_fp80 %v2_44, 0xK403E8000000000000000
  br i1 %v3_44, label %bb241, label %bb242

bb241:                                            ; preds = %bb240
  %v4_44 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v4_42)
  store x86_fp80 %v4_44, x86_fp80* %st7.global-to-local, align 4
  br label %bb242

bb242:                                            ; preds = %bb240, %bb241
  %v1_46 = phi x86_fp80 [ %v4_42, %bb240 ], [ %v4_44, %bb241 ]
  %v5_46 = load double, double* %v4_25, align 4
  %v6_46 = fpext double %v5_46 to x86_fp80
  %v7_46 = fmul x86_fp80 %v1_46, %v6_46
  %v6_49 = fadd x86_fp80 %v7_46, %v4_a
  store x86_fp80 %v6_49, x86_fp80* %st7.global-to-local, align 4
  %v2_4c = add i32 %v3_7, -16
  %v3_4c = inttoptr i32 %v2_4c to double*
  %v4_4c = load double, double* %v3_4c, align 4
  %v5_4c = fpext double %v4_4c to x86_fp80
  %v4_4f = fmul x86_fp80 %v6_49, %v5_4c
  %v4_51 = fmul x86_fp80 %v4_4f, %v5_4c
  store x86_fp80 %v4_51, x86_fp80* %st7.global-to-local, align 4
  %v3_53 = fptrunc x86_fp80 %v4_51 to double
  %v4_53 = inttoptr i32 %tmp238 to double*
  store double %v3_53, double* %v4_53, align 4
  %v1_55 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_55 = load i32, i32* @eax, align 8
  %v3_55 = fptrunc x86_fp80 %v1_55 to double
  %v4_55 = inttoptr i32 %v2_55 to double*
  store double %v3_55, double* %v4_55, align 4
  store i3 %v0_a, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  store i32 %v0_0, i32* %ebp.global-to-local, align 4
  %v0_59 = load i32, i32* @eax, align 8
  ret i32 %v0_59
}

; 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

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

attributes #0 = { nounwind readnone speculatable }
