Skip to content

Commit cc1883e

Browse files
committed
Only setup i386 support as needed
1 parent a188fec commit cc1883e

1 file changed

Lines changed: 26 additions & 18 deletions

File tree

.github/workflows/linux.yml

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)