| ; 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" } |