; ModuleID = 'audio/llvm_math.c'
target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"
target triple = "i686-w64-windows-gnu"

; Function Attrs: nounwind
define noalias i8* @llvm_malloc(i32 %size) #0 {
entry:
  %call = tail call i8* @malloc(i32 %size) #4
  ret i8* %call
}

; Function Attrs: nounwind
declare noalias i8* @malloc(i32) #0

; Function Attrs: nounwind
define void @llvm_free(i8* nocapture %ptr) #0 {
entry:
  tail call void @free(i8* %ptr)
  ret void
}

; Function Attrs: nounwind
declare void @free(i8* nocapture) #0

; Function Attrs: inlinehint nounwind readnone
define float @fabsf(float %x) #1 {
entry:
  %fabsf = tail call float @fabsf(float %x) #1
  ret float %fabsf
}

; Function Attrs: nounwind
define float @acosf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @acos(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @acos(double) #0

; Function Attrs: nounwind
define float @asinf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @asin(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @asin(double) #0

; Function Attrs: nounwind
define float @atanf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @atan(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @atan(double) #0

; Function Attrs: nounwind
define float @atan2f(float %x, float %y) #0 {
entry:
  %conv = fpext float %x to double
  %conv1 = fpext float %y to double
  %call = tail call double @atan2(double %conv, double %conv1) #4
  %conv2 = fptrunc double %call to float
  ret float %conv2
}

; Function Attrs: nounwind
declare double @atan2(double, double) #0

; Function Attrs: nounwind readnone
define float @ceilf(float %x) #2 {
entry:
  br label %tailrecurse

tailrecurse:                                      ; preds = %tailrecurse, %entry
  br label %tailrecurse
}

; Function Attrs: nounwind
define float @cosf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @cos(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @cos(double) #0

; Function Attrs: inlinehint nounwind
define float @coshf(float %x) #3 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @cosh(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @cosh(double) #0

; Function Attrs: inlinehint nounwind
define float @expf(float %x) #3 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @exp(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @exp(double) #0

; Function Attrs: nounwind readnone
define float @floorf(float %x) #2 {
entry:
  %floorf = tail call float @floorf(float %x) #2
  ret float %floorf
}

; Function Attrs: nounwind
define float @fmodf(float %x, float %y) #0 {
entry:
  %conv = fpext float %x to double
  %conv1 = fpext float %y to double
  %call = tail call double @fmod(double %conv, double %conv1) #4
  %conv2 = fptrunc double %call to float
  ret float %conv2
}

; Function Attrs: nounwind
declare double @fmod(double, double) #0

; Function Attrs: nounwind
define float @logf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @log(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @log(double) #0

; Function Attrs: nounwind
define float @log10f(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @log10(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @log10(double) #0

; Function Attrs: inlinehint nounwind
define float @powf(float %x, float %y) #3 {
entry:
  %conv = fpext float %x to double
  %conv1 = fpext float %y to double
  %call = tail call double @pow(double %conv, double %conv1) #4
  %conv2 = fptrunc double %call to float
  ret float %conv2
}

; Function Attrs: nounwind
declare double @pow(double, double) #0

; Function Attrs: nounwind readnone
define float @roundf(float %x) #2 {
entry:
  br label %tailrecurse

tailrecurse:                                      ; preds = %tailrecurse, %entry
  br label %tailrecurse
}

; Function Attrs: nounwind
define float @sinf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @sin(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @sin(double) #0

; Function Attrs: inlinehint nounwind
define float @sinhf(float %x) #3 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @sinh(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @sinh(double) #0

; Function Attrs: nounwind readnone
define float @sqrtf(float %x) #2 {
entry:
  %sqrtf = tail call float @sqrtf(float %x) #0
  ret float %sqrtf
}

; Function Attrs: nounwind
define float @tanf(float %x) #0 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @tan(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @tan(double) #0

; Function Attrs: inlinehint nounwind
define float @tanhf(float %x) #3 {
entry:
  %conv = fpext float %x to double
  %call = tail call double @tanh(double %conv) #4
  %conv1 = fptrunc double %call to float
  ret float %conv1
}

; Function Attrs: nounwind
declare double @tanh(double) #0

attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { inlinehint nounwind readnone "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #2 = { nounwind readnone "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { inlinehint nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #4 = { nounwind }

!llvm.ident = !{!0}

!0 = !{!"clang version 3.6.2 (tags/RELEASE_362/final)"}
