Tests #1534
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2020-2024, Intel Corporation | |
# SPDX-License-Identifier: BSD-3-Clause | |
name: Tests | |
permissions: read-all | |
on: | |
schedule: | |
# Run daily - test sse2-avx512 targets @ -O0/-O1/-O2 | |
- cron: '0 7 * * *' | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
flow_type: | |
description: 'Workflow flow type (full or smoke)' | |
required: true | |
default: 'smoke' | |
type: choice | |
options: | |
- 'full' | |
- 'smoke' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
SDE_MIRROR_ID: 831748 | |
SDE_TAR_NAME: sde-external-9.44.0-2024-08-22 | |
USER_AGENT: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36" | |
LLVM_REPO: https://github.com/ispc/ispc.dependencies | |
TARGETS_SMOKE: '["avx2-i32x8"]' | |
OPTSETS_SMOKE: "-O2" | |
TARGETS_FULL: '["sse2-i32x4", "sse2-i32x8", | |
"sse4-i8x16", "sse4-i16x8", "sse4-i32x4", "sse4-i32x8", | |
"avx1-i32x4", "avx1-i32x8", "avx1-i32x16", "avx1-i64x4", | |
"avx2-i8x32", "avx2-i16x16", "avx2-i32x4", "avx2-i32x8", "avx2-i32x16", "avx2-i64x4", | |
"avx2vnni-i32x4", "avx2vnni-i32x8", "avx2vnni-i32x16", | |
"avx512skx-x4", "avx512skx-x8", "avx512skx-x16", "avx512skx-x64", "avx512skx-x32", | |
"avx512icl-x4", "avx512icl-x8", "avx512icl-x16", "avx512icl-x64", "avx512icl-x32", | |
"avx512spr-x4", "avx512spr-x8", "avx512spr-x16", "avx512spr-x64", "avx512spr-x32"]' | |
OPTSETS_FULL: "-O0 -O1 -O2" | |
ISPC_OPAQUE_PTR_MODE: "OFF" | |
ISPC_ANDROID_NDK_PATH: "/usr/local/share/android-ndk" | |
jobs: | |
define-flow: | |
runs-on: ubuntu-22.04 | |
outputs: | |
tests_matrix_targets: ${{ steps.set-flow.outputs.matrix }} | |
tests_optsets: ${{ steps.set-flow.outputs.optsets }} | |
flow_type: ${{ steps.set-flow.outputs.type }} | |
env: | |
# for debug purposes | |
REF_NAME: ${{ github.ref }} | |
EVENT_NAME: ${{ github.event_name }} | |
# define rule when to run full flow | |
RUN_FULL: ${{ (github.ref == 'refs/heads/main' && github.event_name == 'schedule') || | |
(github.event_name == 'workflow_dispatch' && github.event.inputs.flow_type == 'full') }} | |
# define rule when to run smoke flow | |
RUN_SMOKE: ${{ github.event_name == 'pull_request' || | |
(github.event_name == 'workflow_dispatch' && github.event.inputs.flow_type == 'smoke') }} | |
steps: | |
- name: Set workflow jobs flow | |
id: set-flow | |
run: | | |
# one and only one var should be set | |
if [[ "$RUN_SMOKE" == false && "$RUN_FULL" == true ]]; then | |
echo "type=full" >> "$GITHUB_OUTPUT" | |
elif [[ "$RUN_SMOKE" == true && "$RUN_FULL" == false ]]; then | |
echo "type=smoke" >> "$GITHUB_OUTPUT" | |
else | |
echo "One and only one env var must be set: RUN_SMOKE or RUN_FULL" | |
exit 1 | |
fi | |
# set tests matrix depends on flow | |
if [[ "$RUN_SMOKE" == "true" ]]; then | |
echo "matrix=${TARGETS_SMOKE}" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "$RUN_FULL" == "true" ]]; then | |
echo "matrix=${TARGETS_FULL}" >> "$GITHUB_OUTPUT" | |
fi | |
# set tests optsets | |
if [[ "$RUN_SMOKE" == "true" ]]; then | |
echo "optsets=${OPTSETS_SMOKE}" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "$RUN_FULL" == "true" ]]; then | |
echo "optsets=${OPTSETS_FULL}" >> "$GITHUB_OUTPUT" | |
fi | |
linux-aarch64-build-ispc: | |
needs: [define-flow] | |
runs-on: [self-hosted, Linux, ARM64] | |
# Disable self-hosted jobs for forks. | |
if: github.repository == 'ispc/ispc' | |
container: ubuntu:22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
opaque_ptr_mode: "ON" | |
env: | |
LLVM_VERSION: ${{ matrix.llvm.version }} | |
LLVM_TAR: llvm-${{ matrix.llvm.full_version }}-ubuntu22.04aarch64-Release+Asserts-x86.arm.wasm.tar.xz | |
ISPC_OPAQUE_PTR_MODE: ${{ matrix.llvm.opaque_ptr_mode }} | |
steps: | |
- name: Install git | |
run: | | |
apt-get -y update && apt-get install -y git | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: false | |
- name: Set git safe directory | |
run: | | |
git config --global --add safe.directory /__w/ispc/ispc | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps-aarch64.sh | |
- name: Check environment | |
run: | | |
which -a clang | |
cat /proc/cpuinfo | |
- name: Build package | |
run: | | |
.github/workflows/scripts/build-ispc.sh | |
- name: Sanity testing (make check-all, make test) | |
run: | | |
.github/workflows/scripts/check-ispc.sh | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm${{ matrix.llvm.short_version }}_linux.aarch64 | |
path: build/ispc-trunk-linux.tar.gz | |
linux-build-ispc: | |
needs: [define-flow] | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: | |
- version: "16.0" | |
full_version: "16.0.6" | |
short_version: 16 | |
opaque_ptr_mode: "ON" | |
- version: "17.0" | |
full_version: "17.0.6" | |
short_version: 17 | |
opaque_ptr_mode: "ON" | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
opaque_ptr_mode: "ON" | |
env: | |
LLVM_VERSION: ${{ matrix.llvm.version }} | |
LLVM_TAR: llvm-${{ matrix.llvm.full_version }}-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.xz | |
ISPC_OPAQUE_PTR_MODE: ${{ matrix.llvm.opaque_ptr_mode }} | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.sh | |
- name: Check environment | |
run: | | |
which -a clang | |
cat /proc/cpuinfo | |
- name: Build package | |
run: | | |
.github/workflows/scripts/build-ispc.sh | |
- name: Sanity testing (make check-all, make test) | |
run: | | |
.github/workflows/scripts/check-ispc.sh | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm${{ matrix.llvm.short_version }}_linux | |
path: build/ispc-trunk-linux.tar.gz | |
linux-build-ispc-llvm18-lto: | |
needs: [define-flow] | |
runs-on: ubuntu-22.04 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-ubuntu22.04-Release+Asserts-lto-x86.arm.wasm.tar.xz | |
ISPC_OPAQUE_PTR_MODE: "ON" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.sh | |
- name: Check environment | |
run: | | |
which -a clang | |
cat /proc/cpuinfo | |
- name: Build package | |
run: | | |
cmake -B build superbuild --preset os -DLTO=ON -DXE_DEPS=OFF -DCMAKE_CXX_FLAGS=-Werror -DPREBUILT_STAGE2_PATH="${GITHUB_WORKSPACE}/bin-$LLVM_VERSION" | |
cmake --build build | |
- name: Sanity testing (make check-all) | |
run: | | |
cmake --build build --target ispc-stage2-check-all | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm18_lto_linux | |
path: build/build-ispc-stage2/src/ispc-stage2-build/ispc-trunk-linux.tar.gz | |
linux-build-ispc-llvm18-release: | |
needs: [define-flow] | |
runs-on: ubuntu-22.04 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-ubuntu22.04-Release-x86.arm.wasm.tar.xz | |
ISPC_OPAQUE_PTR_MODE: "ON" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.sh | |
- name: Check environment | |
run: | | |
which -a clang | |
cat /proc/cpuinfo | |
- name: Build package | |
run: | | |
.github/workflows/scripts/build-ispc.sh | |
- name: Sanity testing (make check-all, make test) | |
run: | | |
.github/workflows/scripts/check-ispc.sh | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm18rel_linux | |
path: build/ispc-trunk-linux.tar.gz | |
linux-build-ispc-xe-llvm18-release: | |
needs: [define-flow] | |
runs-on: ubuntu-22.04 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-ubuntu22.04-Release-x86.arm.wasm.tar.xz | |
ISPC_OPAQUE_PTR_MODE: "OFF" | |
INSTALL_COMPUTE_RUNTIME: 1 | |
COMPUTE_RUNTIME_GITHUB_RELEASE: 1 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.sh | |
- name: Check environment | |
run: | | |
which -a clang | |
cat /proc/cpuinfo | |
- name: Build package | |
run: | | |
cmake superbuild \ | |
-B build \ | |
--preset os \ | |
-DINSTALL_WITH_XE_DEPS=ON \ | |
-DISPC_INCLUDE_BENCHMARKS=ON \ | |
-DPREBUILT_STAGE2_PATH="${GITHUB_WORKSPACE}/bin-${LLVM_VERSION}" \ | |
-DCMAKE_INSTALL_PREFIX="${GITHUB_WORKSPACE}"/ispc-xe | |
cmake --build build | |
- name: Sanity testing (make check-all, make test) | |
run: | | |
find build -name check_isa -exec {} \; | |
find build -name ispc -exec {} --support-matrix \; | |
cmake --build build --target ispc-stage2-check | |
- name: Upload XE enabled package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_xe_llvm18rel_linux | |
path: build/build-ispc-stage2/src/ispc-stage2-build/ispc-trunk-linux.tar.gz | |
- name: Upload ISPC with XE dependencies | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_xe_deps_llvm18rel_linux | |
path: ispc-xe | |
linux-test: | |
needs: [define-flow, linux-build-ispc] | |
runs-on: ubuntu-22.04 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [16, 17, 18] | |
arch: [x86, x86-64] | |
target: ${{fromJson(needs.define-flow.outputs.tests_matrix_targets)}} | |
# See issue #2818 for more deatils. It's SDE problem running on AMD runner. | |
exclude: | |
- arch: x86 | |
target: "avx2vnni-i32x4" | |
- arch: x86 | |
target: "avx2vnni-i32x8" | |
- arch: x86 | |
target: "avx2vnni-i32x16" | |
- arch: x86 | |
target: "avx512skx-x4" | |
- arch: x86 | |
target: "avx512skx-x8" | |
- arch: x86 | |
target: "avx512skx-x16" | |
- arch: x86 | |
target: "avx512skx-x32" | |
- arch: x86 | |
target: "avx512skx-x64" | |
- arch: x86 | |
target: "avx512icl-x4" | |
- arch: x86 | |
target: "avx512icl-x8" | |
- arch: x86 | |
target: "avx512icl-x16" | |
- arch: x86 | |
target: "avx512icl-x32" | |
- arch: x86 | |
target: "avx512icl-x64" | |
- arch: x86 | |
target: "avx512spr-x4" | |
- arch: x86 | |
target: "avx512spr-x8" | |
- arch: x86 | |
target: "avx512spr-x16" | |
- arch: x86 | |
target: "avx512spr-x32" | |
- arch: x86 | |
target: "avx512spr-x64" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm${{matrix.version}}_linux | |
- name: Install dependencies and unpack artifacts | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Check environment | |
run: | | |
cat /proc/cpuinfo | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
./scripts/alloy.py -r --only="stability ${{ matrix.arch }} current ${{ needs.define-flow.outputs.tests_optsets }}" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm${{matrix.version}}.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm${{matrix.version}}.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
linux-test-llvm18-lto: | |
needs: [define-flow, linux-build-ispc-llvm18-lto] | |
runs-on: ubuntu-22.04 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
target: ${{fromJson(needs.define-flow.outputs.tests_matrix_targets)}} | |
# See issue #2818 for more deatils. It's SDE problem running on AMD runner. | |
exclude: | |
- arch: x86 | |
target: "avx2vnni-i32x4" | |
- arch: x86 | |
target: "avx2vnni-i32x8" | |
- arch: x86 | |
target: "avx2vnni-i32x16" | |
- arch: x86 | |
target: "avx512skx-x4" | |
- arch: x86 | |
target: "avx512skx-x8" | |
- arch: x86 | |
target: "avx512skx-x16" | |
- arch: x86 | |
target: "avx512skx-x32" | |
- arch: x86 | |
target: "avx512skx-x64" | |
- arch: x86 | |
target: "avx512icl-x4" | |
- arch: x86 | |
target: "avx512icl-x8" | |
- arch: x86 | |
target: "avx512icl-x16" | |
- arch: x86 | |
target: "avx512icl-x32" | |
- arch: x86 | |
target: "avx512icl-x64" | |
- arch: x86 | |
target: "avx512spr-x4" | |
- arch: x86 | |
target: "avx512spr-x8" | |
- arch: x86 | |
target: "avx512spr-x16" | |
- arch: x86 | |
target: "avx512spr-x32" | |
- arch: x86 | |
target: "avx512spr-x64" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_lto_linux | |
- name: Install dependencies and unpack artifacts | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Check environment | |
run: | | |
cat /proc/cpuinfo | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
./scripts/alloy.py -r --only="stability ${{ matrix.arch }} current ${{ needs.define-flow.outputs.tests_optsets }}" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm18_lto.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm18_lto.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
# Test release version | |
linux-test-llvm18-release: | |
needs: [define-flow, linux-build-ispc-llvm18-release] | |
runs-on: ubuntu-22.04 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
target: [avx2-i32x8] | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18rel_linux | |
- name: Install dependencies and unpack artifacts | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Check environment | |
run: | | |
cat /proc/cpuinfo | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
./scripts/alloy.py -r --only="stability ${{ matrix.arch}} current -O0 -O2" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm18rel.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm18rel.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
# Debug run is experimental with the purpose to see if it's capable to catch anything. | |
# So it's running in "full" mode only for now. | |
# Single target, as it should be representative enough. | |
linux-test-debug-llvm18: | |
needs: [define-flow, linux-build-ispc] | |
if: ${{ needs.define-flow.outputs.flow_type == 'full' }} | |
runs-on: ubuntu-22.04 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
target: [avx2-i32x8] | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_linux | |
- name: Install dependencies and unpack artifacts | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Check environment | |
run: | | |
cat /proc/cpuinfo | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
./scripts/alloy.py -r --only="stability ${{ matrix.arch }} current debug -O0 -O2" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm18.debug.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm18.debug.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
# Test xe release version | |
linux-test-xe-llvm18-release: | |
needs: [define-flow, linux-build-ispc-xe-llvm18-release] | |
if: ${{ needs.define-flow.outputs.flow_type == 'smoke' }} | |
runs-on: ubuntu-22.04 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
target: [avx2-i32x8] | |
env: | |
INSTALL_COMPUTE_RUNTIME: 1 | |
COMPUTE_RUNTIME_GITHUB_RELEASE: 1 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_xe_llvm18rel_linux | |
- name: Install dependencies and unpack artifacts | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Check environment | |
run: | | |
cat /proc/cpuinfo | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
# github runners don't have GPU so run CPU tests at least | |
./scripts/alloy.py -r --only="stability ${{ matrix.arch }} current -O0 -O2" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.xe.llvm18rel.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.xe.llvm18rel.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
macos-build-ispc: | |
needs: [define-flow] | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
runner: [macos-13, macos-14] | |
llvm: | |
- version: "16.0" | |
full_version: "16.0.6" | |
short_version: 16 | |
opaque_ptr_mode: "ON" | |
- version: "17.0" | |
full_version: "17.0.6" | |
short_version: 17 | |
opaque_ptr_mode: "ON" | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
opaque_ptr_mode: "ON" | |
env: | |
LLVM_VERSION: ${{ matrix.llvm.version }} | |
LLVM_TAR: llvm-${{ matrix.llvm.full_version }}-macos-Release+Asserts-universal-x86.arm.wasm.tar.xz | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
ls -al /Library/Developer/CommandLineTools/SDKs/ | |
xcrun --show-sdk-path | |
[ -n "$LLVM_REPO" ] && wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 5 --no-verbose "$LLVM_REPO/releases/download/llvm-${LLVM_VERSION}-ispc-dev/${LLVM_TAR}" | |
tar xf "$LLVM_TAR" | |
echo "${GITHUB_WORKSPACE}/bin-${LLVM_VERSION}/bin" >> "$GITHUB_PATH" | |
brew install bison flex | |
if [ "${{ matrix.runner }}" == "macos-14" ]; then | |
echo "/opt/homebrew/opt/bison/bin" >> "$GITHUB_PATH" | |
echo "/opt/homebrew/opt/flex/bin" >> "$GITHUB_PATH" | |
else | |
echo "/usr/local/opt/bison/bin" >> "$GITHUB_PATH" | |
echo "/usr/local/opt/flex/bin" >> "$GITHUB_PATH" | |
fi | |
- name: Check environment | |
run: | | |
which -a clang | |
llvm-config --system-libs | |
sysctl -n machdep.cpu.brand_string | |
- name: Build package | |
run: | | |
.github/workflows/scripts/build-ispc.sh #-DBENCHMARKS_ISPC_TARGETS=avx1-i32x4 | |
- name: Sanity testing (make check-all, make test) | |
run: | | |
.github/workflows/scripts/check-ispc.sh | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm${{ matrix.llvm.short_version }}_${{ matrix.runner }} | |
path: build/ispc-trunk-macos.tar.gz | |
macos-build-ispc-llvm18-lto: | |
needs: [define-flow] | |
runs-on: macos-13 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-macos-Release+Asserts-lto-universal-x86.arm.wasm.tar.xz | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
ls -al /Library/Developer/CommandLineTools/SDKs/ | |
xcrun --show-sdk-path | |
[ -n "$LLVM_REPO" ] && wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 5 --no-verbose "$LLVM_REPO/releases/download/llvm-${LLVM_VERSION}-ispc-dev/${LLVM_TAR}" | |
tar xf "$LLVM_TAR" | |
echo "${GITHUB_WORKSPACE}/bin-${LLVM_VERSION}/bin" >> "$GITHUB_PATH" | |
brew install bison flex ninja | |
echo "/usr/local/opt/bison/bin" >> "$GITHUB_PATH" | |
echo "/usr/local/opt/flex/bin" >> "$GITHUB_PATH" | |
- name: Check environment | |
run: | | |
which -a clang | |
llvm-config --system-libs | |
sysctl -n machdep.cpu.brand_string | |
- name: Build package | |
run: | | |
cmake -B build superbuild --preset os -DLTO=ON -DXE_DEPS=OFF -DCMAKE_CXX_FLAGS=-Werror -DPREBUILT_STAGE2_PATH="${GITHUB_WORKSPACE}/bin-${LLVM_VERSION}" -DMACOS_UNIVERSAL_BIN=ON -DISPC_ANDROID_NDK_PATH=${{ env.ISPC_ANDROID_NDK_PATH }} | |
cmake --build build | |
- name: Sanity testing (make check-all) | |
run: | | |
cmake --build build --target ispc-stage2-check-all | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm18_lto_macos | |
path: build/build-ispc-stage2/src/ispc-stage2-build/ispc-trunk-macOS.universal.tar.gz | |
macos-test-ispc: | |
needs: [define-flow, macos-build-ispc] | |
runs-on: macos-13 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [16, 17, 18] | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm${{matrix.version}}_macos-13 | |
- name: Install dependencies and unpack artifacts | |
run: | | |
tar xf ispc-trunk-macos.tar.gz | |
echo "$GITHUB_WORKSPACE/ispc-trunk-macos/bin" >> "$GITHUB_PATH" | |
echo "ISPC_HOME=$GITHUB_WORKSPACE" >> "$GITHUB_ENV" | |
echo "LLVM_HOME=$GITHUB_WORKSPACE" >> "$GITHUB_ENV" | |
- name: Check environment | |
run: | | |
sysctl -n machdep.cpu.brand_string | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
./scripts/alloy.py -r --only="stability current x86-64 -O0 -O2" --only-targets="sse4-i32x4" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm${{matrix.version}}.macos.sse4.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm${{matrix.version}}.macos.sse4 | |
path: alloy_results_* | |
macos-test-ispc-llvm18-lto: | |
needs: [define-flow, macos-build-ispc-llvm18-lto] | |
runs-on: macos-13 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_lto_macos | |
- name: Install dependencies and unpack artifacts | |
run: | | |
tar xf ispc-trunk-macOS.universal.tar.gz | |
echo "$GITHUB_WORKSPACE/ispc-trunk-macOS.universal/bin" >> "$GITHUB_PATH" | |
echo "ISPC_HOME=$GITHUB_WORKSPACE" >> "$GITHUB_ENV" | |
echo "LLVM_HOME=$GITHUB_WORKSPACE" >> "$GITHUB_ENV" | |
- name: Check environment | |
run: | | |
sysctl -n machdep.cpu.brand_string | |
- name: Running tests | |
run: | | |
echo PATH="$PATH" | |
./scripts/alloy.py -r --only="stability current x86-64 -O0 -O2" --only-targets="sse4-i32x4" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm18_lto.macos.sse4.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm18_lto.macos.sse4 | |
path: alloy_results_* | |
win-build-ispc: | |
needs: [define-flow] | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: | |
- version: "16.0" | |
full_version: "16.0.6" | |
short_version: 16 | |
opaque_ptr_mode: "ON" | |
- version: "17.0" | |
full_version: "17.0.6" | |
short_version: 17 | |
opaque_ptr_mode: "ON" | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
opaque_ptr_mode: "ON" | |
env: | |
LLVM_VERSION: ${{ matrix.llvm.version }} | |
LLVM_TAR: llvm-${{ matrix.llvm.full_version }}-win.vs2019-Release+Asserts-x86.arm.wasm.tar.7z | |
ISPC_OPAQUE_PTR_MODE: ${{ matrix.llvm.opaque_ptr_mode }} | |
LLVM_HOME: "C:\\projects\\llvm" | |
CROSS_TOOLS_GNUWIN32: "C:\\projects\\cross\\gnuwin32" | |
BUILD_TYPE: "Release" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Build package | |
run: | | |
.github/workflows/scripts/build-ispc.ps1 | |
- name: Sanity testing (make check-all, make test) | |
run: | | |
.github/workflows/scripts/check-ispc.ps1 | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm${{ matrix.llvm.short_version }}_win | |
path: build/ispc-trunk-windows.zip | |
win-build-ispc-llvm18-lto: | |
needs: [define-flow] | |
runs-on: windows-2019 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-win.vs2019-Release+Asserts-lto-x86.arm.wasm.tar.7z | |
LLVM_HOME: "C:\\projects\\llvm" | |
CROSS_TOOLS_GNUWIN32: "C:\\projects\\cross\\gnuwin32" | |
BUILD_TYPE: "Release" | |
ISPC_OPAQUE_PTR_MODE: "ON" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Build package | |
shell: cmd | |
run: | | |
set VSVARS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
call %VSVARS% | |
cmake -B build superbuild --preset os -G "NMake Makefiles" -DLTO=ON -DXE_DEPS=OFF -DPREBUILT_STAGE2_PATH=%LLVM_HOME%\bin-%LLVM_VERSION% -DEXPLICIT_ENV_PATH=OFF -DGNUWIN32=%CROSS_TOOLS_GNUWIN32% | |
cmake --build build | |
- name: Sanity testing (make check-all) | |
shell: cmd | |
run: | | |
set VSVARS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
call %VSVARS% | |
cmake --build build --target ispc-stage2-check-all | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_llvm18_lto_win | |
path: build/build-ispc-stage2/src/ispc-stage2-build/ispc-trunk-windows.zip | |
win-build-ispc-xe-llvm18-release: | |
needs: [define-flow] | |
runs-on: windows-2019 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-win.vs2019-Release-x86.arm.wasm.tar.7z | |
LLVM_HOME: "C:\\projects\\llvm" | |
CROSS_TOOLS_GNUWIN32: "C:\\projects\\cross\\gnuwin32" | |
BUILD_TYPE: "Release" | |
ISPC_OPAQUE_PTR_MODE: "OFF" | |
ISPC_DIR: "build\\build-ispc-stage2\\src\\ispc-stage2-build" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Build package | |
shell: cmd | |
run: | | |
set VSVARS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
call %VSVARS% | |
cmake superbuild -B build --preset os -G "NMake Makefiles" -DINSTALL_WITH_XE_DEPS=ON -DPREBUILT_STAGE2_PATH=%LLVM_HOME%/bin-%LLVM_VERSION% -DCMAKE_INSTALL_PREFIX=%GITHUB_WORKSPACE%\ispc-xe -DISPC_INCLUDE_BENCHMARKS=ON -DEXPLICIT_ENV_PATH=OFF -DGNUWIN32=%CROSS_TOOLS_GNUWIN32% | |
cmake --build build | |
- name: Sanity testing (make check-all, make test) | |
shell: cmd | |
run: | | |
set VSVARS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
call %VSVARS% | |
%ISPC_DIR%\bin\check_isa | |
%ISPC_DIR%\bin\ispc --support-matrix | |
cmake --build build --target ispc-stage2-check | |
- name: Upload XE enabled package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_xe_llvm18rel_win | |
path: ${{ env.ISPC_DIR }}/ispc-trunk-windows.zip | |
- name: Upload ISPC with XE dependencies | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: ispc_xe_deps_llvm18rel_win | |
path: ispc-xe | |
win-test: | |
needs: [define-flow, win-build-ispc] | |
env: | |
LLVM_HOME: "C:\\projects\\llvm" | |
runs-on: windows-2022 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [16, 17, 18] | |
arch: [x86, x86-64] | |
target: ${{fromJson(needs.define-flow.outputs.tests_matrix_targets)}} | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm${{matrix.version}}_win | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Running tests | |
run: | | |
$env:ISPC_HOME = "$pwd" | |
.github/workflows/scripts/load-vs-env.ps1 "${{ matrix.arch }}" | |
python .\scripts\alloy.py -r --only="stability ${{ matrix.arch }} current ${{ needs.define-flow.outputs.tests_optsets }}" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm${{matrix.version}}.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm${{matrix.version}}.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
win-test-llvm18-lto: | |
needs: [define-flow, win-build-ispc-llvm18-lto] | |
env: | |
LLVM_HOME: "C:\\projects\\llvm" | |
runs-on: windows-2022 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
target: ${{fromJson(needs.define-flow.outputs.tests_matrix_targets)}} | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_lto_win | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Running tests | |
run: | | |
$env:ISPC_HOME = "$pwd" | |
.github/workflows/scripts/load-vs-env.ps1 "${{ matrix.arch }}" | |
python .\scripts\alloy.py -r --only="stability ${{ matrix.arch }} current ${{ needs.define-flow.outputs.tests_optsets }}" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm18_lto.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm18_lto.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
win-test-xe-llvm18-release: | |
needs: [define-flow, win-build-ispc-xe-llvm18-release] | |
if: ${{ needs.define-flow.outputs.flow_type == 'smoke' }} | |
env: | |
LLVM_HOME: "C:\\projects\\llvm" | |
runs-on: windows-2022 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
target: ${{fromJson(needs.define-flow.outputs.tests_matrix_targets)}} | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_xe_llvm18rel_win | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Running tests | |
run: | | |
$env:ISPC_HOME = "$pwd" | |
.github/workflows/scripts/load-vs-env.ps1 "${{ matrix.arch }}" | |
python .\scripts\alloy.py -r --only="stability ${{ matrix.arch }} current ${{ needs.define-flow.outputs.tests_optsets }}" --only-targets="${{ matrix.target }}" --time --update-errors=FP | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.xe.llvm18rel.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
- name: Upload alloy logs | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: alloy_results.llvm18rel.${{matrix.arch}}.${{matrix.target}} | |
path: alloy_results_* | |
win-test-llvm18-vectorcall: | |
needs: [define-flow, win-build-ispc-xe-llvm18-release] | |
env: | |
LLVM_HOME: "C:\\projects\\llvm" | |
runs-on: windows-2022 | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86-64] | |
target: [avx2-i32x8] | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_xe_llvm18rel_win | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.ps1 | |
- name: Check environment | |
shell: cmd | |
run: | | |
wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status | |
- name: Running tests | |
run: | | |
$env:ISPC_HOME = "$pwd" | |
.github/workflows/scripts/load-vs-env.ps1 "${{ matrix.arch }}" | |
python .\scripts\run_tests.py --calling_conv=vectorcall --target=${{matrix.target}} --arch=${{matrix.arch}} | |
- name: Check | |
run: | | |
# Print fails to the log. | |
git diff --exit-code | |
- name: Upload fail_db.txt | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
if: failure() | |
with: | |
name: fail_db.llvm18_veccall.${{matrix.arch}}.${{matrix.target}}.txt | |
path: tests/fail_db.txt | |
win-package-examples: | |
needs: [define-flow] | |
runs-on: windows-2019 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-win.vs2019-Release+Asserts-x86.arm.wasm.tar.7z | |
LLVM_HOME: "C:\\projects\\llvm" | |
CROSS_TOOLS_GNUWIN32: "C:\\projects\\cross\\gnuwin32" | |
BUILD_TYPE: "Release" | |
ISPC_OPAQUE_PTR_MODE: "ON" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.ps1 | |
- name: Build examples package | |
run: | | |
cmake -B build ./ -DISPC_PREPARE_PACKAGE=ON | |
cmake --build build --target package-examples | |
- name: Upload examples package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: examples_zip | |
path: build/ispc-examples-trunk.zip | |
linux-package-examples: | |
needs: [define-flow] | |
runs-on: ubuntu-22.04 | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.xz | |
ISPC_OPAQUE_PTR_MODE: "ON" | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.sh | |
- name: Build examples package | |
run: | | |
cmake -B build ./ -DISPC_PREPARE_PACKAGE=ON | |
cmake --build build --target package-examples | |
- name: Upload package | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: examples_tgz | |
path: build/ispc-examples-trunk.tar.gz | |
win-build-examples: | |
needs: [win-package-examples, win-build-ispc] | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download ispc package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_win | |
- name: Download examples package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: examples_zip | |
path: examples-package | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.ps1 | |
- name: Unpack examples | |
run: | | |
unzip ispc-examples-trunk.zip | |
working-directory: examples-package | |
shell: cmd | |
- name: Build examples | |
run: | | |
mkdir examples-build | |
cmake examples-package\examples\cpu -B examples-build -Thost=x64 -G "Visual Studio 16" | |
cmake --build examples-build --target ALL_BUILD --config Release | |
shell: cmd | |
linux-build-examples: | |
needs: [linux-package-examples, linux-build-ispc] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download ispc package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_linux | |
- name: Download examples package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: examples_tgz | |
path: examples-package | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Unpack examples | |
run: | | |
tar xf ispc-examples-trunk.tar.gz | |
working-directory: examples-package | |
- name: Build examples | |
run: | | |
mkdir examples-build | |
cmake examples-package/examples/cpu -B examples-build | |
cmake --build examples-build | |
macos-build-examples: | |
needs: [linux-package-examples, macos-build-ispc] | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download ispc package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_llvm18_macos-14 | |
- name: Download examples package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: examples_tgz | |
path: examples-package | |
- name: Install dependencies and unpack artifacts | |
run: | | |
tar xf ispc-trunk-macos.tar.gz | |
echo "$GITHUB_WORKSPACE/ispc-trunk-macos/bin" >> "$GITHUB_PATH" | |
echo "ISPC_HOME=$GITHUB_WORKSPACE" >> "$GITHUB_ENV" | |
- name: Unpack examples | |
run: | | |
tar xf ispc-examples-trunk.tar.gz | |
working-directory: examples-package | |
- name: Build examples | |
run: | | |
mkdir examples-build | |
cmake examples-package/examples/cpu -B examples-build | |
cmake --build examples-build |