Skip to content

Commit 62232fb

Browse files
authored
Merge branch 'master' into hidayat/may16_1
2 parents bb2de39 + 647dc12 commit 62232fb

File tree

586 files changed

+250385
-14562
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

586 files changed

+250385
-14562
lines changed

.azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ jobs:
1414
variables:
1515
CC: clang-10
1616
CXX: clang++-10
17-
# CFLAGS: -Weverything -Werror
18-
# CXXFLAGS: -Weverything -Werror
17+
CFLAGS: -Wextra -Werror
18+
CXXFLAGS: -Wextra -Werror
1919
steps:
2020
- script: uname -a && cat /proc/cpuinfo /proc/meminfo
2121
displayName: System Information

.cirrus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ task:
1717
- apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel gcovr clang
1818
- pip3 install meson
1919
configure_script:
20-
- /usr/local/bin/meson setup build -Db_coverage=true -Db_sanitize=address,undefined
20+
- /usr/local/bin/meson setup build -Db_coverage=true -Db_sanitize=address,undefined -Db_lundef=false
2121
build_script:
2222
- ninja -C build -v -j 3
2323
test_script:

.drone.star

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,12 @@ def main(ctx):
6363
"environment": environment,
6464
"commands": [
6565
"cat /proc/cpuinfo",
66+
"echo 'APT::Acquire::Retries \"3\";' > /etc/apt/apt.conf.d/80-retries",
6667
"apt-get update -y",
6768
"apt-get install -y " + " ".join(packages),
6869
"pip3 install meson",
6970
"meson build -Db_coverage=true || (cat build/meson-logs/meson-log.txt; false)",
70-
"ninja -C build -v test",
71+
"ninja -C build -v test || (cat build/meson-logs/testlog.txt; false)",
7172
],
7273
}
7374
],

.github/workflows/ci.yml

Lines changed: 120 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ on:
66
- 'master'
77
- 'ci/**'
88
- '!ci/gha**'
9+
pull_request:
10+
branches:
11+
- 'master'
912

1013
jobs:
1114
formatting:
@@ -35,6 +38,12 @@ jobs:
3538
# Make sure neon.h includes all the NEON headers.
3639
- name: Missing NEON includes
3740
run: for f in simde/arm/neon/*.h; do grep -q "include \"neon/$(basename "$f")\"" simde/arm/neon.h || (echo "Missing $f" && exit 1); done
41+
# Make sure sve.h includes all the SVE headers.
42+
- name: Missing SVE includes
43+
run: for f in simde/arm/sve/*.h; do grep -q "include \"sve/$(basename "$f")\"" simde/arm/sve.h || (echo "Missing $f" && exit 1); done
44+
# Make sure msa.h includes all the MSA headers.
45+
- name: Missing MSA includes
46+
run: for f in simde/mips/msa/*.h; do grep -q "include \"msa/$(basename "$f")\"" simde/mips/msa.h || (echo "Missing $f" && exit 1); done
3847
# Make sure we can find the expected header guards. It's easy to miss this when doing C&P
3948
- name: Header guards
4049
run: for file in $(find simde/*/ -name '*.h'); do grep -q "$(echo "$file" | tr '[:lower:]' '[:upper:]' | tr '[:punct:]' '_')" "$file" || (echo "Missing or incorrect header guard in $file" && exit 1); done
@@ -53,87 +62,30 @@ jobs:
5362
# Check indentation of preprocessor directives.
5463
- name: Preprocessor directive indentation
5564
run: find simde/*/ -name 'avx*.h' -exec pcre2grep -M '{\n#' {} + && exit 1 || exit 0
56-
57-
# Running the tests in SDE is pretty slow, so we put these early
58-
# in the file so hopefully they start sooner.
59-
60-
SDE:
61-
runs-on: ubuntu-latest
62-
strategy:
63-
matrix:
64-
arch: ["icelake-server"]
65-
env:
66-
CC: clang
67-
CXX: clang++
68-
CFLAGS: -march=icelake-server -Wall -Wextra -Werror
69-
CXXFLAGS: -march=icelake-server -Wall -Wextra -Werror
70-
steps:
71-
- uses: actions/checkout@v2
72-
with:
73-
submodules: recursive
74-
- name: CPU Information
75-
run: cat /proc/cpuinfo
76-
- name: Install APT Dependencies
77-
run: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel parallel gcovr
78-
- name: Install pip Dependencies
79-
run: pip3 install meson
80-
- name: Download SDE
81-
run: ./test/download-sde.sh ~/sde
82-
- name: Configure
83-
run: ~/.local/bin/meson setup build -Db_coverage=true
84-
- name: Build
85-
run: ninja -C build -v
86-
- name: Test
87-
run: |
88-
find build/test/ -type f -executable -exec parallel ~/sde/sde64 -- ::: {} \;
89-
- name: Coverage Report
90-
run: ninja -C build -v coverage-xml
91-
- name: CodeCov.io
92-
uses: codecov/codecov-action@v1
93-
with:
94-
file: ./build/meson-logs/coverage.xml
95-
96-
sleef-SDE:
97-
runs-on: ubuntu-20.04
98-
strategy:
99-
matrix:
100-
arch: ["icelake-server"]
101-
env:
102-
CC: clang
103-
CXX: clang++
104-
CFLAGS: -march=icelake-server -Wall -Wextra -Werror
105-
CXXFLAGS: -march=icelake-server -Wall -Wextra -Werror
106-
steps:
107-
- uses: actions/checkout@v2
108-
with:
109-
submodules: recursive
110-
- name: CPU Information
111-
run: cat /proc/cpuinfo
112-
- name: Install APT Dependencies
113-
run: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel parallel gcovr libsleef-dev
114-
- name: Install pip Dependencies
115-
run: pip3 install meson
116-
- name: Download SDE
117-
run: ./test/download-sde.sh ~/sde
118-
- name: Configure
119-
run: ~/.local/bin/meson setup build -Dsleef=enabled -Db_coverage=true
120-
- name: Build
121-
run: ninja -C build -v
122-
- name: Test
123-
run: |
124-
find build/test/ -type f -executable -exec parallel ~/sde/sde64 -- ::: {} \;
125-
- name: Coverage Report
126-
run: ninja -C build -v coverage-xml
127-
- name: CodeCov.io
128-
uses: codecov/codecov-action@v1
129-
with:
130-
file: ./build/meson-logs/coverage.xml
65+
- name: Stray `&& 0`
66+
run: git grep ' && 0' simde/ test/ && exit 1 || exit 0
13167

13268
x86:
13369
runs-on: ubuntu-latest
13470
strategy:
13571
matrix:
136-
isax: ["", "-msse3", "-mssse3", "-msse4.1", "-msse4.2", "-mavx", "-mfma", "-mavx2", "-march=native"]
72+
isax:
73+
- -mavx512bw -mavx512vl -mavx512cd -mavx512dq -mavx512vbmi -mavx512ifma -mavx512vpopcntdq -mavx512bitalg -mavx512vnni -mvpclmulqdq
74+
- -mavx512bw -mavx512vl -DSIMDE_NATURAL_VECTOR_SIZE=256
75+
- -mavx512f
76+
- -mavx512bw
77+
- -mavx512vl
78+
- -mavx512vl -mavx512dq
79+
- -mavx512cd
80+
- -mavx512dq
81+
- -msse2
82+
- -msse3
83+
- -mssse3
84+
- -msse4.1
85+
- -msse4.2
86+
- -mavx
87+
- -mfma
88+
- -mavx2
13789
env:
13890
CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
13991
CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
@@ -152,76 +104,52 @@ jobs:
152104
- name: Build
153105
run: ninja -C build -v
154106
- name: Test
155-
run: ninja -C build -v test
107+
run: meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde"
156108
- name: Coverage Report
157109
run: ninja -C build -v coverage-xml
158110
- name: CodeCov.io
159111
uses: codecov/codecov-action@v1
160112
with:
161113
file: ./build/meson-logs/coverage.xml
162114

163-
avx512:
115+
emscripten:
164116
runs-on: ubuntu-latest
165-
strategy:
166-
matrix:
167-
isax: ["-mavx512f", "-mavx512bw", "-mavx512cd", "-mavx512dq", "-mavx512vl", "-mavx512bw -mavx512vl", "-mavx512vl -mavx512dq"]
168117
env:
169-
CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
170-
CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
118+
CFLAGS: -Weverything -Werror -O2 -msimd128
119+
CXXFLAGS: -Weverything -Werror -O2 -msimd128
120+
LDFLAGS: -s ENVIRONMENT=shell -s ASSERTIONS=1
171121
steps:
172122
- uses: actions/checkout@v2
173123
with:
174124
submodules: recursive
175125
- name: CPU Information
176126
run: cat /proc/cpuinfo
177127
- name: Install APT Dependencies
178-
run: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel parallel gcovr
128+
run: sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get -yq install ninja-build ninja-build python3-pip python3-setuptools python3-wheel gcovr
179129
- name: Install pip Dependencies
180130
run: pip3 install meson
181-
- name: Configure
182-
run: ~/.local/bin/meson setup build -Db_coverage=true
183-
- name: Build
184-
run: ninja -C build -v
185-
# We can't actually run the tests without AVX-512. GitHub Actions doesn't
186-
# currently support it, and SDE is too slow.
187-
# - name: Test
188-
# run: ninja -C build -v test
189-
# - name: Coverage Report
190-
# run: ninja -C build -v coverage-xml
191-
# - name: CodeCov.io
192-
# uses: codecov/codecov-action@v1
193-
# with:
194-
# file: ./build/meson-logs/coverage.xml
195-
196-
emscripten:
197-
runs-on: ubuntu-latest
198-
env:
199-
CFLAGS: -Weverything -Werror -O3 -msimd128
200-
CXXFLAGS: -Weverything -Werror -O3 -msimd128
201-
steps:
202-
- uses: actions/checkout@v2
203-
with:
204-
submodules: recursive
205-
- name: CPU Information
206-
run: cat /proc/cpuinfo
207-
- name: Install APT Dependencies
208-
run: sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get -yq install ninja-build
209131
- name: Install emscripten
210132
run: |
211-
git clone https://github.com/emscripten-core/emsdk.git
212-
cd emsdk
133+
git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk
134+
cd /opt/emsdk
213135
./emsdk update-tags
214136
./emsdk install tot
215137
./emsdk activate tot
216138
source emsdk_env.sh
217139
- name: Install v8
218-
run: sudo npm install jsvu -g && jsvu --os=linux64 --engines=v8
140+
run: |
141+
sudo npm install jsvu -g
142+
jsvu --os=linux64 --engines=v8
143+
sudo ln -s $HOME/.jsvu/v8 /usr/bin/v8
144+
ls -l /usr/bin/v8
145+
ls -l ~/.jsvu || true
146+
/usr/bin/v8 --help
219147
- name: Configure
220-
run: mkdir test/build && cd test/build && ../../emsdk/upstream/emscripten/emcmake cmake -G Ninja ..
148+
run: ~/.local/bin/meson setup build --optimization 2 --cross-file docker/cross-files/emscripten.cross
221149
- name: Build
222-
run: ninja -C test/build -v
150+
run: ninja -C build -v
223151
- name: Test
224-
run: cd test/build && ~/.jsvu/v8 --experimental-wasm-simd run-tests.js
152+
run: ninja -C build -v test
225153

226154
native-aliases:
227155
runs-on: ubuntu-latest
@@ -283,16 +211,43 @@ jobs:
283211
with:
284212
file: ./build/meson-logs/coverage.xml
285213

286-
xenial-gcc:
287-
runs-on: ubuntu-16.04
214+
gcc:
288215
strategy:
289216
matrix:
290-
version: ["4.7", "4.8", "4.9", "5"]
217+
include:
218+
# - version: 4.7
219+
# distro: ubuntu-16.04
220+
# arch_flags: -mavx2
221+
# - version: 4.8
222+
# distro: ubuntu-16.04
223+
# arch_flags: -mavx2
224+
# - version: 4.9
225+
# distro: ubuntu-16.04
226+
# arch_flags: -mavx2
227+
- version: 5
228+
distro: ubuntu-16.04
229+
arch_flags: -mavx2
230+
# - version: 6
231+
# distro: ubuntu-18.04
232+
# arch_flags: -march=native
233+
# - version: 7
234+
# distro: ubuntu-18.04
235+
# arch_flags: -march=native
236+
- version: 8
237+
distro: ubuntu-18.04
238+
arch_flags: -march=native
239+
# - version: 9
240+
# distro: ubuntu-20.04
241+
# arch_flags: -march=native
242+
- version: 10
243+
distro: ubuntu-20.04
244+
arch_flags: -march=native
245+
runs-on: ${{ matrix.distro }}
291246
env:
292247
CC: gcc-${{ matrix.version }}
293248
CXX: g++-${{ matrix.version }}
294-
CFLAGS: -mavx2 -Wall -Wextra -Werror
295-
CXXFLAGS: -mavx2 -Wall -Wextra -Werror
249+
CFLAGS: ${{ matrix.arch_flags }} -Wall -Wextra -Werror
250+
CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Wextra -Werror
296251
steps:
297252
- uses: actions/checkout@v2
298253
with:
@@ -306,18 +261,51 @@ jobs:
306261
- name: Build
307262
run: ninja -C test/build -v
308263
- name: Test
309-
run: ninja -C test/build -v test
264+
run: ctest -C test/build ---output-on-failure
310265

311-
xenial-clang:
312-
runs-on: ubuntu-16.04
266+
clang:
313267
strategy:
314268
matrix:
315-
version: ["3.5", "3.9", "6.0"]
269+
include:
270+
- version: "3.5"
271+
distro: ubuntu-16.04
272+
arch_flags: -mavx2
273+
# - version: "3.6"
274+
# distro: ubuntu-16.04
275+
# arch_flags: -mavx2
276+
# - version: "3.7"
277+
# distro: ubuntu-16.04
278+
# arch_flags: -mavx2
279+
# - version: "3.8"
280+
# distro: ubuntu-16.04
281+
# arch_flags: -mavx2
282+
# - version: "3.9"
283+
# distro: ubuntu-18.04
284+
# arch_flags: -mavx2
285+
# - version: "4.0"
286+
# distro: ubuntu-18.04
287+
# arch_flags: -mavx2
288+
- version: "5.0"
289+
distro: ubuntu-18.04
290+
arch_flags: -mavx2
291+
# - version: "6.0"
292+
# distro: ubuntu-20.04
293+
# arch_flags: -march=native
294+
- version: "7"
295+
distro: ubuntu-20.04
296+
arch_flags: -march=native
297+
# - version: "8"
298+
# distro: ubuntu-20.04
299+
# arch_flags: -march=native
300+
- version: "10"
301+
distro: ubuntu-20.04
302+
arch_flags: -march=native
303+
runs-on: ${{ matrix.distro }}
316304
env:
317305
CC: clang-${{ matrix.version }}
318306
CXX: clang++-${{ matrix.version }}
319-
CFLAGS: -mavx2 -Wall -Wextra -Werror
320-
CXXFLAGS: -mavx2 -Wall -Wextra -Werror
307+
CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions
308+
CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions
321309
steps:
322310
- uses: actions/checkout@v2
323311
with:
@@ -331,7 +319,7 @@ jobs:
331319
- name: Build
332320
run: ninja -C test/build -v
333321
- name: Test
334-
run: ninja -C test/build -v test
322+
run: ctest -C test/build ---output-on-failure
335323

336324
macos:
337325
runs-on: macos-latest
@@ -356,6 +344,8 @@ jobs:
356344
run: meson setup build -Db_coverage=true
357345
- name: Build
358346
run: ninja -C build -v
347+
- name: Test
348+
run: ninja -C build -v test
359349
- name: Coverage Report
360350
run: ninja -C build -v coverage-xml
361351
- name: CodeCov.io

.github/workflows/codeql-analysis.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,6 @@ jobs:
2626
steps:
2727
- name: Checkout repository
2828
uses: actions/checkout@v2
29-
with:
30-
# We must fetch at least the immediate parents so that if this is
31-
# a pull request then we can checkout the head.
32-
fetch-depth: 2
33-
34-
# If this run was triggered by a pull request event, then checkout
35-
# the head of the pull request instead of the merge commit.
36-
- run: git checkout HEAD^2
37-
if: ${{ github.event_name == 'pull_request' }}
3829

3930
# Initializes the CodeQL tools for scanning.
4031
- name: Initialize CodeQL

0 commit comments

Comments
 (0)