diff --git a/.github/workflows/Clang.yml b/.github/workflows/Clang.yml index 21c8d77..2e40854 100644 --- a/.github/workflows/Clang.yml +++ b/.github/workflows/Clang.yml @@ -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 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>::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 clang-libcxx: strategy: diff --git a/.github/workflows/GCC.yml b/.github/workflows/GCC.yml index bfcd096..881c4cf 100644 --- a/.github/workflows/GCC.yml +++ b/.github/workflows/GCC.yml @@ -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 is 32, so on + # AVX-512 a 64-lane simd has no matching int ABI: transform + # widening char to int asks for simd>, 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