blob: f1a039dc033accad75abe16c40dd9886412561a7 [file] [log] [blame] [edit]
; RUN: opt -S -passes=declare-runtime-libcalls -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
; Check an already declared function
; CHECK: declare float @logf(float)
declare float @logf(float)
; Check an already defined function
; CHECK: define float @sinf(float %x) {
define float @sinf(float %x) {
ret float %x
}
; CHECK: declare void @_Unwind_Resume(...)
; CHECK: declare void @__memcpy_chk(...)
; CHECK: declare void @__memmove_chk(...)
; CHECK: declare void @__memset_chk(...)
; CHECK: declare void @__umodti3(...)
; CHECK: declare void @acosf(...)
; CHECK: declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) [[CALLOC_ATTRS:#[0-9]+]]
; CHECK: declare void @fdim(...)
; CHECK: declare void @fdimf(...)
; CHECK: declare void @fdiml(...)
; CHECK: declare void @free(ptr allocptr noundef captures(none)) [[FREE_ATTRS:#[0-9]+]]
; CHECK: declare noalias noundef ptr @malloc(i64 noundef) [[MALLOC_ATTRS:#[0-9]+]]
; CHECK: declare void @nan(...)
; CHECK: declare void @nanf(...)
; CHECK: declare void @nanl(...)
; CHECK: declare void @nexttoward(...)
; CHECK: declare void @nexttowardf(...)
; CHECK: declare void @nexttowardl(...)
; CHECK: declare void @remainder(...)
; CHECK: declare void @remainderf(...)
; CHECK: declare void @remainderl(...)
; CHECK: declare void @remquo(...)
; CHECK: declare void @remquof(...)
; CHECK: declare void @remquol(...)
; CHECK: declare void @scalbln(...)
; CHECK: declare void @scalblnf(...)
; CHECK: declare void @scalblnl(...)
; CHECK: declare void @scalbn(...)
; CHECK: declare void @scalbnf(...)
; CHECK: declare void @scalbnl(...)
; CHECK: declare nofpclass(ninf nsub nnorm) double @sqrt(double) [[SQRT_ATTRS:#[0-9]+]]
; CHECK: declare nofpclass(ninf nsub nnorm) float @sqrtf(float) [[SQRT_ATTRS:#[0-9]+]]
; CHECK: declare void @tgamma(...)
; CHECK: declare void @tgammaf(...)
; CHECK: declare void @tgammal(...)
; CHECK: declare void @truncl(...)
; CHECK: attributes [[CALLOC_ATTRS]] = { mustprogress nofree nounwind willreturn allockind("alloc") allocsize(0,1) "alloc-family"="malloc" }
; CHECK: attributes [[FREE_ATTRS]] = { mustprogress nounwind willreturn allockind("free") "alloc-family"="malloc" }
; CHECK: attributes [[MALLOC_ATTRS]] = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) "alloc-family"="malloc" }