@@ -33,41 +33,48 @@ jobs:
3333 - { compiler: 'clang', version: '18', flags: '', preset: 'avx_128' }
3434 - { compiler: 'clang', version: '18', flags: '', preset: 'avx2_128' }
3535 steps :
36- - name : Setup compiler
36+ - name : Setup GCC compiler
3737 if : ${{ matrix.sys.compiler == 'gcc' }}
3838 run : |
3939 GCC_VERSION=${{ matrix.sys.version }}
4040 sudo apt-get update
4141 sudo apt-get --no-install-suggests --no-install-recommends install g++-$GCC_VERSION
42- sudo dpkg --add-architecture i386
43- sudo add-apt-repository ppa:ubuntu-toolchain-r/test
44- sudo apt-get update
45- sudo apt-get --no-install-suggests --no-install-recommends install gcc-$GCC_VERSION-multilib g++-$GCC_VERSION-multilib linux-libc-dev:i386
46- CC=gcc-$GCC_VERSION
47- echo "CC=$CC" >> $GITHUB_ENV
48- CXX=g++-$GCC_VERSION
49- echo "CXX=$CXX" >> $GITHUB_ENV
50- - name : Setup compiler
42+ # Setup i386 as needed
43+ if [[ '${{ matrix.sys.flags }}' == 'i386' ]]; then
44+ sudo dpkg --add-architecture i386
45+ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
46+ sudo apt-get update
47+ sudo apt-get --no-install-suggests --no-install-recommends install \
48+ gcc-$GCC_VERSION-multilib g++-$GCC_VERSION-multilib linux-libc-dev:i386
49+ fi
50+ # Export compiler as environment var
51+ echo "CC=gcc-$GCC_VERSION" >> $GITHUB_ENV
52+ echo "CXX=g++-$GCC_VERSION" >> $GITHUB_ENV
53+
54+ - name : Setup Clang compiler
5155 if : ${{ matrix.sys.compiler == 'clang' }}
5256 run : |
5357 LLVM_VERSION=${{ matrix.sys.version }}
5458 sudo apt-get update || exit 1
5559 sudo apt-get --no-install-suggests --no-install-recommends install clang-$LLVM_VERSION || exit 1
5660 sudo apt-get --no-install-suggests --no-install-recommends install g++ g++-multilib || exit 1
5761 sudo ln -s /usr/include/asm-generic /usr/include/asm
58- CC=clang-$LLVM_VERSION
59- echo "CC=$CC " >> $GITHUB_ENV
60- CXX=clang++-$LLVM_VERSION
61- echo "CXX=$CXX" >> $GITHUB_ENV
62+ # Export compiler as environment var
63+ echo "CC=clang-$LLVM_VERSION " >> $GITHUB_ENV
64+ echo " CXX=clang++-$LLVM_VERSION" >> $GITHUB_ENV
65+
6266 - name : Checkout xsimd
6367 uses : actions/checkout@v6
68+
6469 - name : Install mamba
6570 uses : mamba-org/setup-micromamba@v3
6671 with :
6772 environment-file : environment.yml
73+
6874 - name : Setup SDE
6975 if : startswith(matrix.sys.preset, 'avx512')
7076 run : sh install_sde.sh
77+
7178 - name : Configure build
7279 env :
7380 CC : ${{ env.CC }}
@@ -97,24 +104,25 @@ jobs:
97104 $CMAKE_EXTRA_ARGS \
98105 -DCMAKE_CXX_FLAGS='$CXX_FLAGS' \
99106 -G Ninja
107+
100108 - name : Build
101- run : cmake --build _build
109+ run : cmake --build _build --parallel
102110 - name : Test
103111 run : |
104112 # Set CPU feature test expectations, 0 is explicit absence of the feature
105113 export XSIMD_TEST_CPU_ASSUME_NEON64="0"
106114 export XSIMD_TEST_CPU_ASSUME_RVV="0"
107115 export XSIMD_TEST_CPU_ASSUME_VSX="0"
108116 export XSIMD_TEST_CPU_ASSUME_VXE="0"
109- cd _build/test
117+
110118 if echo '${{ matrix.sys.preset }}' | grep -q 'avx512' ; then
111119 # Running with emulation, must have AVX512, lower tier are checked by implications in tests
112120 export XSIMD_TEST_CPU_ASSUME_AVX512F="1"
113- ../../ sde-external-9.48.0-2024-11-25-lin/sde64 -tgl -- ./test_xsimd
121+ ./ sde-external-9.48.0-2024-11-25-lin/sde64 -tgl -- ./_build/test /test_xsimd
114122 else
115123 export XSIMD_TEST_CPU_ASSUME_SSE4_2=$(grep -q 'sse4_2' /proc/cpuinfo && echo "1" || echo "0")
116124 export XSIMD_TEST_CPU_ASSUME_AVX=$(grep -q 'avx' /proc/cpuinfo && echo "1" || echo "0")
117125 export XSIMD_TEST_CPU_ASSUME_AVX512F=$(grep -q 'avx512f' /proc/cpuinfo && echo "1" || echo "0")
118126 export XSIMD_TEST_CPU_ASSUME_MANUFACTURER="intel,amd"
119- ./test_xsimd
127+ ./_build/test/ test_xsimd
120128 fi
0 commit comments