@@ -3,23 +3,35 @@ on: [push, pull_request]
33concurrency :
44 group : ${{ github.workflow }}-${{ github.job }}-${{ github.ref }}
55 cancel-in-progress : true
6+
67jobs :
78 build :
8- runs-on : ubuntu-latest
9- name : ' Arm SVE${{ matrix.vector_bits }}'
9+ runs-on : ubuntu-24.04-arm
10+ name : ' ${{ matrix.sys.compiler }} ${{ matrix.sys.version }} - Arm SVE${{ matrix.vector_bits }}'
1011 strategy :
1112 matrix :
1213 vector_bits :
1314 - 128
1415 - 256
1516 - 512
17+ sys :
18+ - { compiler: 'gcc', version: '14' }
19+ - { compiler: 'clang', version: '20' }
1620 steps :
17- - name : Setup compiler
21+ - name : Setup GCC
22+ if : ${{ matrix.sys.compiler == 'gcc' }}
1823 run : |
1924 sudo apt-get update || exit 1
20- sudo apt-get --no-install-suggests --no-install-recommends install g++-10-aarch64-linux-gnu || exit 1
21- sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-10 20
22- sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-10 20
25+ sudo apt-get --no-install-suggests --no-install-recommends install g++-${{ matrix.sys.version }} || exit 1
26+ echo "CC=gcc-${{ matrix.sys.version }}" >> $GITHUB_ENV
27+ echo "CXX=g++-${{ matrix.sys.version }}" >> $GITHUB_ENV
28+ - name : Setup Clang
29+ if : ${{ matrix.sys.compiler == 'clang' }}
30+ run : |
31+ sudo apt-get update || exit 1
32+ sudo apt-get --no-install-suggests --no-install-recommends install clang-${{ matrix.sys.version }} || exit 1
33+ echo "CC=clang-${{ matrix.sys.version }}" >> $GITHUB_ENV
34+ echo "CXX=clang++-${{ matrix.sys.version }}" >> $GITHUB_ENV
2335 - name : Setup QEMU
2436 run : |
2537 sudo apt-get --no-install-suggests --no-install-recommends install qemu-user
@@ -34,10 +46,11 @@ jobs:
3446 -GNinja \
3547 -DBUILD_TESTS=ON -DDOWNLOAD_DOCTEST=ON \
3648 -DCMAKE_BUILD_TYPE=Release \
49+ -DCMAKE_C_COMPILER=${{ env.CC }} \
50+ -DCMAKE_CXX_COMPILER=${{ env.CXX }} \
3751 -DTARGET_ARCH=generic \
3852 -DCMAKE_C_FLAGS="-march=armv8-a+sve -msve-vector-bits=${{ matrix.vector_bits }}" \
39- -DCMAKE_CXX_FLAGS="-march=armv8-a+sve -msve-vector-bits=${{ matrix.vector_bits }}" \
40- -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/.github/toolchains/gcc-aarch64-linux-gnu.cmake
53+ -DCMAKE_CXX_FLAGS="-march=armv8-a+sve -msve-vector-bits=${{ matrix.vector_bits }}"
4154 - name : Build
4255 run : cmake --build _build
4356 - name : Set CPU feature test expectations
4861 echo "XSIMD_TEST_CPU_ASSUME_SVE=1" >> "$GITHUB_ENV"
4962 echo "XSIMD_TEST_CPU_ASSUME_MANUFACTURER=unknown" >> "$GITHUB_ENV"
5063 - name : Testing xsimd
51- run : qemu-aarch64 --cpu max,sve${{ matrix.vector_bits }}=on -L /usr/aarch64-linux-gnu/ ./test/test_xsimd
64+ run : qemu-aarch64 --cpu max,sve${{ matrix.vector_bits }}=on ./test/test_xsimd
5265 working-directory : ${{ github.workspace }}/_build
0 commit comments