Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,5 +161,9 @@ jobs:
cd builddir
ninja

- name: List exported symbols
run: |
nm --demangle --dynamic --defined-only --extern-only builddir/libx86simdsort.so

- name: Run test suite on SPR
run: sde -spr -- ./builddir/testexe
45 changes: 45 additions & 0 deletions lib/list-of-exported-symbols.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<double>(double*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<float>(float*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<int>(int*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<long>(long*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<short>(short*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<unsigned int>(unsigned int*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<unsigned long>(unsigned long*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<unsigned short>(unsigned short*, unsigned long, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<double>(double*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<float>(float*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<int>(int*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<long>(long*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<short>(short*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<unsigned int>(unsigned int*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<unsigned long>(unsigned long*, unsigned long, bool)
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<unsigned short>(unsigned short*, unsigned long, bool)
void x86simdsort::partial_qsort<double>(double*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<float>(float*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<int>(int*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<long>(long*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<short>(short*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<unsigned int>(unsigned int*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<unsigned long>(unsigned long*, unsigned long, unsigned long, bool)
void x86simdsort::partial_qsort<unsigned short>(unsigned short*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<double>(double*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<float>(float*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<int>(int*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<long>(long*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<short>(short*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<unsigned int>(unsigned int*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<unsigned long>(unsigned long*, unsigned long, unsigned long, bool)
void x86simdsort::qselect<unsigned short>(unsigned short*, unsigned long, unsigned long, bool)
void x86simdsort::qsort<double>(double*, unsigned long, bool)
void x86simdsort::qsort<float>(float*, unsigned long, bool)
void x86simdsort::qsort<int>(int*, unsigned long, bool)
void x86simdsort::qsort<long>(long*, unsigned long, bool)
void x86simdsort::qsort<short>(short*, unsigned long, bool)
void x86simdsort::qsort<unsigned int>(unsigned int*, unsigned long, bool)
void x86simdsort::qsort<unsigned long>(unsigned long*, unsigned long, bool)
void x86simdsort::qsort<unsigned short>(unsigned short*, unsigned long, bool)
_ZN11x86simdsort13partial_qsortIDF16_EEvPT_mmb
_ZN11x86simdsort5qsortIDF16_EEvPT_mb
_ZN11x86simdsort7argsortIDF16_EESt6vectorImSaImEEPT_mb
_ZN11x86simdsort7qselectIDF16_EEvPT_mmb
_ZN11x86simdsort9argselectIDF16_EESt6vectorImSaImEEPT_mmb
12 changes: 8 additions & 4 deletions lib/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ if cpp.has_argument('-march=haswell')
'x86simdsort-avx2.cpp',
),
include_directories : [src],
cpp_args : ['-march=haswell', flags_hide_symbols],
cpp_args : ['-march=haswell'],
gnu_symbol_visibility : 'inlineshidden',
)
endif

Expand All @@ -16,7 +17,8 @@ if cpp.has_argument('-march=skylake-avx512')
'x86simdsort-skx.cpp',
),
include_directories : [src],
cpp_args : ['-march=skylake-avx512', flags_hide_symbols],
cpp_args : ['-march=skylake-avx512'],
gnu_symbol_visibility : 'inlineshidden',
)
endif

Expand All @@ -26,7 +28,8 @@ if cpp.has_argument('-march=icelake-client')
'x86simdsort-icl.cpp',
),
include_directories : [src],
cpp_args : ['-march=icelake-client', flags_hide_symbols],
cpp_args : ['-march=icelake-client'],
gnu_symbol_visibility : 'inlineshidden',
)
endif

Expand All @@ -36,7 +39,8 @@ if cancompilefp16
'x86simdsort-spr.cpp',
),
include_directories : [src],
cpp_args : ['-march=sapphirerapids', flags_hide_symbols],
cpp_args : ['-march=sapphirerapids'],
gnu_symbol_visibility : 'inlineshidden',
)
endif

Expand Down
4 changes: 2 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ int main() {
}
'''
cancompilefp16 = cpp.compiles(fp16code, args:'-march=sapphirerapids')
flags_hide_symbols = ['-fvisibility=hidden', '-fvisibility-inlines-hidden']

subdir('lib')
libsimdsort = shared_library('x86simdsort',
'lib/x86simdsort.cpp',
include_directories : [utils, lib],
link_with : [libtargets],
cpp_args : [flags_hide_symbols],
gnu_symbol_visibility : 'inlineshidden',
install : true,
soversion : 0,
)

pkg_mod = import('pkgconfig')
Expand Down