Skip to content
Open
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
10 changes: 9 additions & 1 deletion .github/workflows/Clang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,15 @@ jobs:
path: vc-testdata

- name: Run test suite
run: cd vir-simd && make check DRIVEROPTS=-vvf
# Pinned below AVX-512 on purpose. libstdc++'s <experimental/simd> does
# not compile under Clang for the AVX-512 mask ABIs: _S_to_bits asserts
# is_same_v<_Tp, __int_for_sizeof_t<_Tp>>, and for _Tp = long long that
# is false there, so simd<double, _VecBltnBtmsk<N>>::operator== fails to
# instantiate. The testsuite otherwise builds with -march=native, so
# this job started failing when the runner fleet moved to AVX-512
# capable hardware, with nothing in this repository having changed.
# GCC compiles the same code, and keeps -march=native.
run: cd vir-simd && make check DRIVEROPTS=-vvf testflags=-march=x86-64-v3
Comment on lines +56 to +64

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is really just a hot patch to get CI to green up. Not sure how to fix/work-around the underlying libstdc++ issue yet.


clang-libcxx:
strategy:
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/GCC.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,11 @@ jobs:
diff -r $HOME/vir-simd-cmake/include $HOME/vir-simd-make/include && echo "cmake and make installations match ✅"

- name: Run test suite
run: cd vir-simd && make check DRIVEROPTS=-vvf
# Pinned below AVX-512, as the Clang jobs are, though for a
# different reason. simd_abi::max_fixed_size<int> is 32, so on
# AVX-512 a 64-lane simd<char> has no matching int ABI: transform
# widening char to int asks for simd<int, fixed_size<64>>, which
# libstdc++ gives a deleted destructor. The testsuite otherwise
# builds -march=native, and the runner fleet is mixed, so whether a
# job saw this came down to which machine it landed on.
run: cd vir-simd && make check DRIVEROPTS=-vvf testflags=-march=x86-64-v3