Skip to content

Commit 92dabf9

Browse files
committed
fixup, run gcc-16 on amd64 as well
1 parent d6d105a commit 92dabf9

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

.github/workflows/gcc-snapshot.yml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,105 @@ concurrency:
1515
cancel-in-progress: true
1616

1717
jobs:
18+
x86:
19+
runs-on: ubuntu-24.04
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
isax:
24+
- -DSIMDE_NATURAL_VECTOR_SIZE=256 -march=x86-64-v3 -mavx512bw -mavx512vl
25+
# https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
26+
- -march=x86-64 -maes -mpclmul # the x86-64 baseline is CMOV, CX8, FPU, FXSR, MMX, OSFXSR, SCE, SSE, SSE2
27+
- -march=x86-64-v2 # CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4_1, SSE4_2, SSSE3
28+
- -march=x86-64-v3 # AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE
29+
- -march=x86-64-v4 # AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL a.k.a. skylake+ (including zen4)
30+
include:
31+
- target: tgl
32+
- isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes # icelake
33+
target: icl
34+
- isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes -mpconfig -mwbnoinvd -mclwb -mmovdiri -mmovdir64b -menqcmd -mcldemote -mptwrite -mwaitpkg -mserialize -mtsxldtrk -muintr -mavxvnni -mavx512fp16 # sapphire rapids without bf16
35+
# See https://github.com/simd-everywhere/simde/issues/1095
36+
target: spr
37+
env:
38+
CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
39+
CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
40+
INTEL_TARGET: ${{ matrix.target }}
41+
steps:
42+
- uses: actions/checkout@v6
43+
with:
44+
submodules: recursive
45+
- name: CPU Information
46+
run: cat /proc/cpuinfo
47+
- name: Install APT Dependencies
48+
run: |
49+
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
50+
sudo add-apt-repository ppa:stephanosio/ccache && sudo apt-get update
51+
sudo apt-get install -y --no-install-recommends ninja-build ninja-build \
52+
pipx gcc-16 g++-16
53+
sudo apt-get purge -y gcc g++
54+
sudo ln -s /usr/bin/gcc-16 /usr/bin/gcc
55+
sudo ln -s /usr/bin/g++-16 /usr/bin/g++
56+
pipx install meson==0.55.1
57+
- name: ccache
58+
uses: hendrikmuhs/ccache-action@v1.2
59+
with:
60+
key: ${{ github.job }}-${{ matrix.isax }}
61+
verbose: 2
62+
- name: add ccache to the build path
63+
run: |
64+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
65+
- name: Configure
66+
run: meson setup build || (cat build/meson-logs/meson-log.txt ; false)
67+
- name: Test run native?
68+
run: |
69+
test/check-flags.sh query && echo Tests with "$CFLAGS" will be run natively
70+
test/check-flags.sh query || echo Tests with "$CFLAGS" will be run using SDE
71+
- name: Build
72+
run: ninja -C build -v
73+
- name: Test
74+
run: |
75+
# shellcheck disable=SC2046
76+
meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde" $(meson test -C build --list | grep -v emul)
77+
78+
x86-xop:
79+
runs-on: ubuntu-24.04
80+
strategy:
81+
fail-fast: false
82+
env:
83+
CFLAGS: -Wall -Wextra -Werror -march=bdver2
84+
CXXFLAGS: -Wall -Wextra -Werror -march=bdver2
85+
steps:
86+
- uses: actions/checkout@v6
87+
with:
88+
submodules: recursive
89+
- name: CPU Information
90+
run: cat /proc/cpuinfo
91+
- name: Install APT Dependencies
92+
run: |
93+
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
94+
sudo add-apt-repository ppa:stephanosio/ccache && sudo apt-get update
95+
sudo apt-get install -y --no-install-recommends ninja-build ninja-build \
96+
pipx g++-16 gcc-16 qemu-user-static
97+
sudo apt-get purge -y gcc g++
98+
sudo ln -s /usr/bin/gcc-16 /usr/bin/gcc
99+
sudo ln -s /usr/bin/g++-16 /usr/bin/g++
100+
pipx install meson==0.55.1
101+
- name: ccache
102+
uses: hendrikmuhs/ccache-action@v1.2
103+
with:
104+
key: ${{ github.job }}
105+
verbose: 2
106+
- name: add ccache to the build path
107+
run: |
108+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
109+
- name: Configure
110+
run: meson setup build || (cat build/meson-logs/meson-log.txt ; false)
111+
- name: Build
112+
run: ninja -C build -v
113+
# can't test until we find a combination of `gcc -march=` and `qemu -cpu` that both enable XOP and allows qemu to test it
114+
# - name: Test
115+
# run: meson test -C build --print-errorlogs --wrapper "qemu-amd64-static -cpu Opteron_G5-v1"
116+
18117
sleef-arm:
19118
runs-on: ubuntu-24.04-arm
20119
env:

0 commit comments

Comments
 (0)