# Base configuration for linux cross-compilation.
# SPDX-FileCopyrightText: The Eigen Authors
# SPDX-License-Identifier: MPL-2.0
.build:linux:cross:
  needs: []
  extends: [ .common:linux:cross, .artifacts:linux:builddir ]
  stage: build
  variables:
    EIGEN_CI_BUILD_TARGET: buildtests
    EIGEN_CI_SKIP_APT: "false"
    # "off" disables the ccache compiler launchers (see build.linux.script.sh);
    # the jobs that set it explain why. Images without ccache build exactly as
    # before regardless of this setting.
    EIGEN_CI_CCACHE: "on"
    CCACHE_DIR: ${CI_PROJECT_DIR}/.ccache
    # A full buildtests job stores ~4-6 GB of compressed objects; at 2G every
    # nightly build filled the cache (149 LRU cleanups, 0.4% hits) and evicted
    # what the previous run had stored, so nothing was ever reused. 4G is the
    # largest safe cap: hosted runners reject cache archives over 5 GB, and
    # the archive is about the size of the (already zstd-compressed) ccache
    # directory. The raised compression level packs more of the working set
    # under that cap; 5 is the ccache manual's recommended ceiling for live
    # (compile-time) compression, and captures most of the density gain.
    CCACHE_MAXSIZE: 4G
    CCACHE_COMPRESSLEVEL: 5
    # Hash compile paths relative to the project directory: absolute -I/source
    # paths are part of ccache's hash, so without this a checkout-path change
    # (runner layout, concurrent build slots) turns every compile into a miss.
    CCACHE_BASEDIR: ${CI_PROJECT_DIR}
    # The ccache payload is already zstd-compressed, so re-compressing it into
    # cache.zip at the default level burns CPU for no size gain: a fully warm
    # build spent 87s archiving+uploading a 2 GB cache it compiled in 71s.
    # Fastzip at "fastest" effectively stores the archive instead, and also
    # speeds up cache extraction on restore.
    FF_USE_FASTZIP: "true"
    CACHE_COMPRESSION_LEVEL: "fastest"
    # ccache pool name, minus the `-ccache` suffix the cache stanza appends:
    # the job's own slug by default. A job that compiles a subset of another
    # job's targets with the same flags names that job's slug instead (see the
    # affected-tests section), so it draws on a pool the full builds fill.
    EIGEN_CI_CCACHE_POOL: $CI_JOB_NAME_SLUG
  script:
    - . ci/scripts/build.linux.script.sh
  tags:
    - saas-linux-2xlarge-amd64
  rules: !reference [.rules:libeigen:all-tests, rules]
  # Cache the ccache directory, not ${EIGEN_CI_BUILDDIR}: each job starts from
  # a fresh clone whose checkout mtimes are newer than any restored build
  # output, so ninja rebuilt every target despite a successfully restored
  # cache. ccache keys on file content and compiler, which survives the
  # re-clone. No ${CI_COMMIT_REF_SLUG} in the key: pipelines share one cache
  # pool per EIGEN_CI_CCACHE_POOL. GitLab still splits each pool by a suffix:
  # `-protected` for a pipeline on a protected ref or started by a Maintainer
  # or Owner, `-non_protected` otherwise. A Developer-started merge request
  # pipeline therefore has a pool the scheduled master builds never fill; a
  # maintainer starting that pipeline puts it on the shared one.
  cache:
    key: "$EIGEN_CI_CCACHE_POOL-ccache"
    paths:
      - .ccache/
    # Push the cache even when the build fails: the retry pipeline after a
    # compile error is exactly where cache hits matter most.
    when: always

######## x86-64 ################################################################

.build:linux:cross:x86-64:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: x86_64
    EIGEN_CI_CROSS_TARGET_TRIPLE: x86_64-linux-gnu

# GCC-10 (stable recent version)
build:linux:cross:x86-64:gcc-10:default:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_C_COMPILER: gcc-10
    EIGEN_CI_CXX_COMPILER: g++-10
    EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-10
    EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-10

# GCC-13 for AVX512-FP16 (_Float16 support).
build:linux:cross:x86-64:gcc-13:default:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_C_COMPILER: gcc-13
    EIGEN_CI_CXX_COMPILER: g++-13
    EIGEN_CI_CROSS_INSTALL: g++-13-x86-64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-13
    EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-13

build:linux:cross:x86-64:gcc-10:avx:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=on"

build:linux:cross:x86-64:gcc-10:avx2:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"

build:linux:cross:x86-64:gcc-10:avx512dq:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"

# AVX512-FP16 builds are split into official/unsupported because building all
# tests exceeds the 3-hour GitLab SaaS shared-runner timeout.
.build:linux:cross:x86-64:gcc-13:avx512fp16:
  extends: build:linux:cross:x86-64:gcc-13:default
  variables:
    # Force -O2 via EIGEN_TEST_CUSTOM_CXX_FLAGS (appended after the default
    # Release -O3 -DNDEBUG; last -O wins). GCC bug at -O3 generates invalid
    # masked vmovsh with {z} on memory stores for _Float16 operations
    # (zero-masking on memory destinations is architecturally illegal in
    # AVX-512).
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512FP16=on -DEIGEN_TEST_AVX512DQ=on -DEIGEN_TEST_F16C=on -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-O2"

build:linux:cross:x86-64:gcc-13:avx512fp16:official:
  extends: .build:linux:cross:x86-64:gcc-13:avx512fp16
  variables:
    EIGEN_CI_BUILD_TARGET: BuildOfficial

build:linux:cross:x86-64:gcc-13:avx512fp16:unsupported:
  extends: .build:linux:cross:x86-64:gcc-13:avx512fp16
  variables:
    EIGEN_CI_BUILD_TARGET: BuildUnsupported

# Clang-14 (stable recent version)
build:linux:cross:x86-64:clang-14:default:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu clang-14

build:linux:cross:x86-64:clang-14:avx2:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"

build:linux:cross:x86-64:clang-14:avx512dq:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"

# Generic vector extension backend.
build:linux:cross:x86-64:clang-19:generic:avx512dq:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_INSTALL: clang-19
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-mfma;-mavx512dq;-DEIGEN_VECTORIZE_GENERIC=1

# Nightly and all-tests full test suite in C++20 mode.
build:linux:cross:x86-64:clang-19:cxx20:nightly:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_INSTALL: clang-19
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DCMAKE_CXX_STANDARD=20
  # Nightly job restricted to the default branch on schedule.
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"

build:linux:docs:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: any
    EIGEN_CI_BUILD_TARGET: doc
    EIGEN_CI_INSTALL: ca-certificates clang flex python3 bison graphviz
    EIGEN_CI_C_COMPILER: clang
    EIGEN_CI_CXX_COMPILER: clang++
    EIGEN_CI_BEFORE_SCRIPT: ". ci/scripts/build_and_install_doxygen.sh Release_1_13_2"
  tags:
    - saas-linux-medium-amd64
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"


######## Sanitizers ############################################################

# ASAN/UBSAN builds are split into official/unsupported because the
# instrumented executables are too large to upload as a single artifact.
.build:linux:cross:x86-64:clang-19:default:asan-ubsan:
  extends: .build:linux:cross:x86-64
  # Disable caching for ASAN builds: instrumented .o files are so large that
  # moving them through the cache can take longer than a clean build from
  # scratch.  Both settings below are needed and do different things:
  # cache: [] drops the archive round trip, and without it a pool populated
  # before ccache was turned off here would keep being restored under the same
  # $CI_JOB_NAME_SLUG-ccache key; EIGEN_CI_CCACHE: "off" drops the compiler
  # launchers, so nothing is written to the runner's disk either.
  cache: []
  timeout: 2h
  variables:
    EIGEN_CI_CCACHE: "off"
    EIGEN_CI_INSTALL: clang-19 libclang-rt-19-dev
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19 libclang-rt-19-dev
    # Statically linked sanitizer runtimes make the test artifacts exceed GitLab's 1 GB upload limit.
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-fsanitize=address,undefined;-fno-omit-frame-pointer;-fno-sanitize-recover=undefined
      -DEIGEN_TEST_CUSTOM_LINKER_FLAGS=-fsanitize=address,undefined;-shared-libsan

build:linux:cross:x86-64:clang-19:default:asan-ubsan:official:
  extends: .build:linux:cross:x86-64:clang-19:default:asan-ubsan
  variables:
    EIGEN_CI_BUILD_TARGET: BuildOfficial

build:linux:cross:x86-64:clang-19:default:asan-ubsan:unsupported:
  extends: .build:linux:cross:x86-64:clang-19:default:asan-ubsan
  variables:
    EIGEN_CI_BUILD_TARGET: BuildUnsupported

######## NVHPC #################################################################

# NVHPC (nvc++) uses NVIDIA's HPC SDK container image with the compilers
# pre-installed. We override EIGEN_CI_INSTALL to avoid trying to apt-get
# install the compiler.
# Split into official/unsupported because nvc++ is so slow that the full
# build exceeds the 3-hour GitLab SaaS shared-runner timeout.
.build:linux:x86-64:nvhpc-26.1:
  extends: .build:linux:cross:x86-64
  image: nvcr.io/nvidia/nvhpc:26.1-devel-cuda13.1-ubuntu24.04
  # ccache has no dedicated nvc++ support -- the name falls through its
  # compiler-type guess to "other" -- but that is a generic handling path, not a
  # refusal: the calls are cacheable and hit. Which matters most here, given the
  # frontend cost the section comment above describes.
  variables:
    EIGEN_CI_C_COMPILER: nvc
    EIGEN_CI_CXX_COMPILER: nvc++
    EIGEN_CI_INSTALL: ""
    EIGEN_CI_CROSS_INSTALL: ""
    # NVHPC's compiler frontend is very memory-hungry with template-heavy code.
    # The 2xlarge runner has 128 GB, so 16 jobs gives ~8 GB per process.
    # The shuffled-batch build strategy spreads memory-hungry targets across
    # batches, preventing simultaneous OOM-prone compilations.
    EIGEN_CI_BUILD_JOBS: "16"
    EIGEN_CI_FALLBACK_JOBS: "4"
  # Schedules and web pipelines only, not the `all-tests` label the rest of the
  # matrix inherits from .build:linux:cross. That slow frontend makes this the
  # single most expensive pair of jobs in the tree -- together about a quarter
  # of the project's hosted-runner minutes -- while covering one compiler that
  # no merge request is likely to break in isolation. Start a web pipeline on a
  # merge request that touches something nvc++ is known to be fussy about
  # rather than waiting for the scheduled run to find it.
  rules: !reference [.rules:libeigen:scheduled-or-web, rules]

build:linux:x86-64:nvhpc-26.1:default:official:
  extends: .build:linux:x86-64:nvhpc-26.1
  variables:
    EIGEN_CI_BUILD_TARGET: BuildOfficial

build:linux:x86-64:nvhpc-26.1:default:unsupported:
  extends: .build:linux:x86-64:nvhpc-26.1
  variables:
    EIGEN_CI_BUILD_TARGET: BuildUnsupported

######## CUDA ##################################################################

.build:linux:cuda:
  extends: .build:linux:cross:x86-64
  # ccache and the inherited cache stanza apply here: the .cu compiles that
  # dominate these builds now reach the launcher through the wrapper that
  # ei_cuda_use_compiler_launcher() puts in front of nvcc. A new image costs
  # one cold build rather than serving stale objects, since ccache hashes the
  # nvcc it runs and the preprocessed source. nvcc's -M dependency and -dlink
  # passes are not cacheable and appear as misses in the statistics.
  variables:
    # Additional flags passed to the cuda compiler.
    EIGEN_CI_CUDA_CXX_FLAGS: ""
    # Default architecture coverage spans the GPUs used by CI: GitLab's SaaS
    # runners are Tesla T4 (sm_75), and eigen-gpu-testing-001.gcloud is an L4
    # (sm_89). Jobs tied to one runner pool may override this set below.
    EIGEN_CI_CUDA_COMPUTE_ARCH: "75;89"
    EIGEN_CI_BUILD_TARGET: buildtests_gpu
    EIGEN_CI_TEST_CUDA_CLANG: "off"
    EIGEN_CI_TEST_CUDA_NVC: "off"
    EIGEN_CI_ADDITIONAL_ARGS:
      -DEIGEN_TEST_CUDA=on
      -DEIGEN_CUDA_CXX_FLAGS=${EIGEN_CI_CUDA_CXX_FLAGS}
      -DEIGEN_CUDA_COMPUTE_ARCH=${EIGEN_CI_CUDA_COMPUTE_ARCH}
      -DEIGEN_TEST_CUDA_CLANG=${EIGEN_CI_TEST_CUDA_CLANG}
      -DEIGEN_TEST_CUDA_NVC=${EIGEN_CI_TEST_CUDA_NVC}
  rules: !reference [.rules:libeigen:gpu, rules]
  tags:
    # Build on regular linux to limit GPU cost.
    - saas-linux-2xlarge-amd64

# ---- CUDA 11.8 + oldest supported compilers ---------------------------------
# 11.8 is the oldest toolkit that knows sm_89, so gcc can cover the default
# T4/L4 architecture set. CUDA 11.x images are Ubuntu 20.04 only, which lacks
# clang-14 and cmake >= 3.17; the before_scripts add the Kitware and LLVM apt
# repos.

build:linux:cuda-11.8:gcc-10:
  extends: .build:linux:cuda
  image: nvidia/cuda:11.8.0-devel-ubuntu20.04
  before_script:
    # Ubuntu 20.04 has cmake 3.16; Eigen requires 3.17+. Pull a newer
    # cmake from Kitware's official apt repo for focal.
    - apt-get update -y > /dev/null
    - apt-get install -y --no-install-recommends wget gnupg ca-certificates > /dev/null
    - wget -qO - https://apt.kitware.com/keys/kitware-archive-latest.asc
        | gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg
    - echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main'
        > /etc/apt/sources.list.d/kitware.list
    - apt-get update -y > /dev/null
    - . ci/scripts/common.linux.before_script.sh
  variables:
    EIGEN_CI_INSTALL: gcc-10 g++-10
    EIGEN_CI_C_COMPILER: gcc-10
    EIGEN_CI_CXX_COMPILER: g++-10

build:linux:cuda-11.8:clang-14:
  extends: build:linux:cuda-11.8:gcc-10
  before_script:
    # Ubuntu 20.04 lacks clang-14 and has cmake 3.16. Add both the LLVM
    # apt repo (for clang-14) and Kitware's apt repo (for cmake >= 3.17)
    # before running common.linux.before_script.sh, which apt-installs
    # cmake + the requested compiler.
    - apt-get update -y > /dev/null
    - apt-get install -y --no-install-recommends wget gnupg ca-certificates > /dev/null
    - wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key
        | gpg --dearmor -o /usr/share/keyrings/llvm-archive-keyring.gpg
    - echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main'
        > /etc/apt/sources.list.d/llvm-14.list
    - wget -qO - https://apt.kitware.com/keys/kitware-archive-latest.asc
        | gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg
    - echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main'
        > /etc/apt/sources.list.d/kitware.list
    - apt-get update -y > /dev/null
    - . ci/scripts/common.linux.before_script.sh
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_TEST_CUDA_CLANG: "on"
    # clang-14 predates sm_89 (LLVM 16 added it), so this pair targets sm_75.
    # The 11.8 toolkit is newer than clang-14 knows; it treats it as 11.5,
    # which is what the suppressed warning says.
    EIGEN_CI_CUDA_COMPUTE_ARCH: "75"
    EIGEN_CI_CUDA_CXX_FLAGS: "-Wno-unknown-cuda-version"

# ---- Latest CUDA + newest compilers, sm_89;sm_90 ---------------------------
# These jobs run natively on the L4 at sm_89 and retain compile-only coverage
# for sm_90.

# GCC-13, CUDA-12.6 (nvcc)
# CUDA 12.6 nvcc only supports gcc up to 13.
build:linux:cuda-12.6:gcc-13:
  extends: .build:linux:cuda
  image: nvidia/cuda:12.6.3-devel-ubuntu24.04
  variables:
    EIGEN_CI_C_COMPILER: gcc-13
    EIGEN_CI_CXX_COMPILER: g++-13
    EIGEN_CI_CUDA_COMPUTE_ARCH: "89;90"

# Clang-19, CUDA-12.6 (clang as CUDA compiler)
# Clang CUDA support lags behind nvcc; clang-19 supports up to CUDA 12.x.
build:linux:cuda-12.6:clang-19:
  extends: .build:linux:cuda
  image: nvidia/cuda:12.6.3-devel-ubuntu24.04
  variables:
    EIGEN_CI_INSTALL: clang-19
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_TEST_CUDA_CLANG: "on"
    EIGEN_CI_CUDA_COMPUTE_ARCH: "89;90"


######### HIP ##################################################################
# Note: these are currently build-only, until we get an AMD-supported runner.

# ROCm HIP
build:linux:rocm-latest:gcc-11:
  extends: .build:linux:cross
  image: rocm/dev-ubuntu-24.04:6.3.1
  variables:
    EIGEN_CI_CCACHE: "off"
    EIGEN_CI_C_COMPILER: gcc-11
    EIGEN_CI_CXX_COMPILER: g++-11
    EIGEN_CI_BUILD_TARGET: buildtests_gpu
    EIGEN_CI_ADDITIONAL_ARGS: -DEIGEN_TEST_HIP=on
  rules: !reference [.rules:libeigen:gpu, rules]
  # Disable cache for ROCm, since it fails whenever the image updates.  As with
  # the ASAN build above, this and EIGEN_CI_CCACHE: "off" are both needed: one
  # drops the archive round trip, the other the compiler launchers.
  cache: []


######## Arm ###################################################################

.build:linux:cross:arm:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: arm
    EIGEN_CI_CROSS_TARGET_TRIPLE: arm-linux-gnueabihf
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv7-a;-mfpu=neon-vfpv4
      -DCMAKE_SYSTEM_NAME=Linux
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-arm-static;-L;/usr/arm-linux-gnueabihf

build:linux:cross:arm:gcc-10:default:
  extends: .build:linux:cross:arm
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf qemu-user-static
    EIGEN_CI_CROSS_C_COMPILER: arm-linux-gnueabihf-gcc-10
    EIGEN_CI_CROSS_CXX_COMPILER: arm-linux-gnueabihf-g++-10

build:linux:cross:arm:clang-14:default:
  extends: .build:linux:cross:arm
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-14 qemu-user-static

######## aarch64 ###############################################################

.build:linux:cross:aarch64:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: aarch64
    EIGEN_CI_CROSS_TARGET_TRIPLE: aarch64-linux-gnu
    EIGEN_CI_ADDITIONAL_ARGS: -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+fp16
  tags:
    - saas-linux-large-arm64

######## SME ###################################################################

# Emulation via QEMU for SME (Streaming Matrix Extension)
.build:linux:cross:sme:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: aarch64-sme
    EIGEN_CI_CROSS_TARGET_TRIPLE: aarch64-linux-gnu
    # The emulator baked in here deliberately has no -cpu argument: each test job
    # selects its streaming SVL via qemu-user's QEMU_CPU environment variable
    # instead (a command-line -cpu would silently override it).
    #
    # EIGEN_CI_ADDITIONAL_ARGS is expanded *unquoted* into the cmake command
    # line (ci/scripts/build.linux.script.sh), so each -D value must be a single
    # shell word: multi-token flags use CMake's ';' list separator, with no
    # spaces or embedded quotes (cf. the arm / generic-vector jobs).
    # +sme-f64f64 (FEAT_SME_F64F64) enables the double-precision GEMM kernel:
    # GCC refuses to compile its fp64 FMOPA without it, and qemu's `max` CPU
    # implements the extension, so the test jobs below exercise that kernel.
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SME=ON
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv9.2-a+sme2+sme-f64f64
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu
    # SME ACLE (arm_sme.h, __arm_streaming, +sme2) requires GCC >= 14.
    # The build stage only cross-compiles and never invokes the emulator, so
    # no qemu here -- the test stage installs qemu-user.
    EIGEN_CI_CROSS_INSTALL: g++-14-aarch64-linux-gnu
    # product_symm/product_trsolve/product_trmm/product_syrk/product_mmtr/
    # mixingtypes exercise the SME packers through their non-dense-GEMM consumers
    # (selfadjoint, triangular-solve, triangular-product, rank-update,
    # triangular-result product, mixed-scalar) that product_sme can't reach; each
    # has double and complex subtests, so they cover all four SME scalar types.
    # product_mmtr additionally covers tribb_kernel's lcm(mr, nr) block, which is
    # only larger than mr for complex<float>. Explicit list, not `buildtests`:
    # cross-building every test under the SME flags overruns the runner timeout.
    EIGEN_CI_BUILD_TARGET: product_sme product_symm product_trsolve product_trmm product_syrk product_mmtr mixingtypes
  # Inherit the 2xlarge runner from .build:linux:cross: GitLab's open-source
  # program bills small and large runners the same, so don't downsize.

build:linux:cross:sme:gcc-14:default:
  extends: .build:linux:cross:sme
  variables:
    EIGEN_CI_C_COMPILER: gcc-14
    EIGEN_CI_CXX_COMPILER: g++-14
    EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-14

# Full nightly SME coverage: compile the *entire* test suite (buildtests, both
# Official and Unsupported) under +sme2, not just the SME-relevant targets. This
# is what treats SME "as any other platform": it catches any compile breakage
# under the streaming-mode flags across the whole codebase -- e.g. the tensor-
# contraction packer path that only surfaces once TensorContraction is built
# with the SME backend active. Runs on the nightly schedule and on all-tests
# MRs via the inherited .rules:libeigen:all-tests; the per-SVL subset build
# above stays as the fast, cheap signal. Cross-building every test under the SME
# flags is slow -- the raised timeout is a starting estimate; tune it once a
# real run establishes the wall-clock (drop to BuildOfficial/BuildUnsupported
# split builds if a single job overruns).
build:linux:cross:sme:gcc-14:full:
  extends: .build:linux:cross:sme
  variables:
    EIGEN_CI_C_COMPILER: gcc-14
    EIGEN_CI_CXX_COMPILER: g++-14
    EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-14
    EIGEN_CI_BUILD_TARGET: buildtests
  timeout: 2h

# FEAT_SME_F64F64 is optional, and every job above builds with it, so nothing
# else compiles the configuration where it is absent: the #else static_asserts
# that keep double and complex<double> off the GEMM driver, and both on the
# generic kernel inside an SME build. GCC hard-errors on the fp64 FMOPA without
# the feature, so this is also what catches an fp64 SME intrinsic escaping the
# EIGEN_VECTORIZE_SME_F64F64 gate. The EIGEN_ARM64_NO_SME_F64F64 opt-out reaches
# the same branch, so one job covers both ways in. product_sme alone: its double
# and complex<double> subtests are written to run in either configuration, and
# one target keeps the job cheap.
build:linux:cross:sme:gcc-14:no-f64f64:
  extends: .build:linux:cross:sme
  variables:
    EIGEN_CI_C_COMPILER: gcc-14
    EIGEN_CI_CXX_COMPILER: g++-14
    EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-14
    # The anchor's arguments, less +sme-f64f64.
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SME=ON
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv9.2-a+sme2
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu
    EIGEN_CI_BUILD_TARGET: product_sme


build:linux:cross:aarch64:gcc-10:default:
  extends: .build:linux:cross:aarch64
  variables:
    EIGEN_CI_C_COMPILER: gcc-10
    EIGEN_CI_CXX_COMPILER: g++-10
    EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-10
    EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-10

build:linux:cross:aarch64:clang-14:default:
  extends: .build:linux:cross:aarch64
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu clang-14

######## SVE ###################################################################

# The SVE backend is selected only by -DEIGEN_ARM64_USE_SVE, so none of the
# aarch64 or SME jobs above compile a line of Eigen/src/Core/arch/SVE: the SME
# jobs deliberately take the NEON headers (Eigen/Core). These jobs are the only
# coverage it has.
#
# Eigen needs a compile-time vector length (EIGEN_ARM64_SVE_VL comes from
# __ARM_FEATURE_SVE_BITS, which only -msve-vector-bits sets), so each length is
# a separate build. That is also what makes the sweep worth having: the packet
# code has VL-dependent fold counts and transpose networks that a single length
# cannot exercise.
#
# No compiler here: common.linux.before_script.sh overwrites
# EIGEN_CI_CXX_COMPILER with EIGEN_CI_CROSS_CXX_COMPILER whenever host and
# target differ, so a cross compiler named in this anchor would override the one
# a job sets for itself. Left unset it defaults to the job's own choice
# (.common:linux:cross), which is what the clang job below needs.
.build:linux:cross:sve:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: aarch64-sve
    EIGEN_CI_CROSS_TARGET_TRIPLE: aarch64-linux-gnu
    # As for SME, the emulator here carries no -cpu: the test jobs select their
    # vector length through qemu-user's QEMU_CPU instead.
    #
    # EIGEN_CI_ADDITIONAL_ARGS is expanded *unquoted* into the cmake command
    # line (ci/scripts/build.linux.script.sh), so each -D value must be a single
    # shell word: multi-token flags use CMake's ';' list separator.
    #
    # EIGEN_TEST_SVE_VL is spelled out per job rather than interpolated from a
    # variable: a mis-expansion would silently fall back to the CMake default of
    # 128 and every job in the sweep would build the same length while still
    # passing.
    #
    # Keep the -march at armv8.2-a+sve, which is what the backend actually
    # needs -- it uses only base SVE intrinsics. Do NOT "upgrade" it to +sve2:
    # with SVE2 enabled, GCC 13 through 15 emit `whilewr p0.b, wzr, wzr` for the
    # autovectorizer's alias checks, using 32-bit W registers where the
    # instruction takes X registers, and the assembler rejects it. It reproduces
    # at every vector length from 256 up (unsupported/test/tensor_block_eval.cpp
    # is one trigger) and is a GCC bug, not an Eigen one; clang is unaffected.
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SVE=ON
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+sve
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu

# One compiler for all three widths. gcc-14 is not usable above 128 bits: at -O3
# with -msve-vector-bits=256 or above, gcc-14.2 miscompiles
# redux_commutative<double> in test/redux.cpp, summing a 16x16 block of a 17x17
# matrix to 660 instead of 1022, deterministically. That is a compiler bug and
# not an Eigen one -- it reproduces with EIGEN_ARM64_USE_SVE unset, with GCC
# autovectorizing to fixed-length SVE while Eigen is on NEON -- and not an
# emulation artifact, since QEMU 8.2 and 10.0 produce the same wrong value. It
# goes away at -O2, with -fno-tree-slp-vectorize, and at 128 bits.
#
# gcc-13.3 is clean at 128, 256 and 512, and SVE ACLE needs only gcc-10, so
# nothing here depends on 14 the way SME's ACLE does. Naming one compiler is
# what lets the test jobs install the compiler their artifacts were built with,
# which the failtest and buildsystem tests require -- see .test:linux:sve.
.build:linux:cross:sve:gcc-13:
  extends: .build:linux:cross:sve
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-13-aarch64-linux-gnu
    EIGEN_CI_C_COMPILER: gcc-13
    EIGEN_CI_CXX_COMPILER: g++-13
    EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-13
    EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-13

# One build per vector length that SVE hardware actually implements: 128 for
# Neoverse V2 and Grace, 256 for Neoverse V1 and Graviton3, 512 for A64FX. Each
# feeds a test job, so each builds the full suite. Lengths above 512 are
# architecturally legal but unimplemented, and compile-only coverage of them
# bought two latent compile fixes at the cost of running nothing -- if a wider
# part ships, add it here with a test job rather than as a build on its own.
build:linux:cross:sve:gcc-13:vl128:
  extends: .build:linux:cross:sve:gcc-13
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SVE=ON
      -DEIGEN_TEST_SVE_VL=128
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+sve
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu

build:linux:cross:sve:gcc-13:vl512:
  extends: .build:linux:cross:sve:gcc-13
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SVE=ON
      -DEIGEN_TEST_SVE_VL=512
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+sve
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu

build:linux:cross:sve:gcc-13:vl256:
  extends: .build:linux:cross:sve:gcc-13
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SVE=ON
      -DEIGEN_TEST_SVE_VL=256
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+sve
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu

# clang diagnoses different things here than GCC -- MR 2928 shipped three
# -Wsign-compare warnings that no job caught, and clang is stricter about
# fixed-length SVE vector types. It extends the compiler-free anchor so that
# EIGEN_CI_CROSS_CXX_COMPILER defaults to clang++-14 rather than a cross GCC;
# the cross g++ is still installed, for the aarch64 headers and libraries clang
# links against.
build:linux:cross:sve:clang-14:vl128:
  extends: .build:linux:cross:sve
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-13-aarch64-linux-gnu clang-14
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_SVE=ON
      -DEIGEN_TEST_SVE_VL=128
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+sve
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64;-L;/usr/aarch64-linux-gnu
    EIGEN_CI_BUILD_TARGET: sve_vector_length packetmath vectorization_logic

######## ppc64le ###############################################################

.build:linux:cross:ppc64le:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: ppc64le
    EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DCMAKE_SYSTEM_NAME=Linux
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-ppc64le-static;-L;/usr/powerpc64le-linux-gnu

build:linux:cross:ppc64le:gcc-14:default:
  extends: .build:linux:cross:ppc64le
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu qemu-user-static
    EIGEN_CI_CROSS_C_COMPILER: powerpc64le-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: powerpc64le-linux-gnu-g++-14

build:linux:cross:ppc64le:clang-16:default:
  extends: .build:linux:cross:ppc64le
  variables:
    EIGEN_CI_C_COMPILER: clang-16
    EIGEN_CI_CXX_COMPILER: clang++-16
    EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu clang-16 qemu-user-static

######## loongarch64 #################################################

.build:linux:cross:loongarch64:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: loongarch64
    EIGEN_CI_CROSS_TARGET_TRIPLE: loongarch64-linux-gnu

# GCC-14 (minimum on Ubuntu 24)
build:linux:cross:loongarch64:gcc-14:default:
  extends: .build:linux:cross:loongarch64
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu qemu-user-static
    EIGEN_CI_CROSS_C_COMPILER: loongarch64-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: loongarch64-linux-gnu-g++-14
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DCMAKE_SYSTEM_NAME=Linux
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-loongarch64-static;-L;/usr/loongarch64-linux-gnu
      -DEIGEN_TEST_LSX=on

######## riscv64 ###############################################################
# Builds cross-compile on amd64; tests run natively on the riscv runner
# (SpacemiT K3, RVA23, RVV 1.0, VLEN=256).  Jobs are allowed to fail while
# the runner is being brought up.

# Eigen's RVV backend requires a compile-time-fixed vector length, so pin it to
# the runner's 256-bit VLEN with zvl256b and -mrvv-vector-bits=zvl (gcc-15 rejects
# a numeric -mrvv-vector-bits=256, accepting only "zvl"/"scalable"; "zvl" takes the
# length from the Zvl*b march extension).  Zvfh enables half-precision
# vectorization.  Set here so every riscv64 build below -- full builds and smoke
# tests, gcc and clang -- is actually vectorized.
.build:linux:riscv64:
  extends: .build:linux:cross
  # Cross-compiles to riscv64 on an amd64 runner using the prebuilt image, which
  # carries the riscv64 cross toolchain (g++-15-riscv64-linux-gnu / clang-21)
  # plus cmake/ninja/git -- so apt is skipped entirely.
  image: ${EIGEN_CI_IMAGE_LINUX_RISCV64_SMOKETEST_BUILD}
  variables:
    EIGEN_CI_TARGET_ARCH: riscv64
    EIGEN_CI_SKIP_APT: "true"
    EIGEN_CI_CROSS_TARGET_TRIPLE: riscv64-linux-gnu
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=rv64gc_v_zvl256b_zfh_zvfh;-mrvv-vector-bits=zvl;-DEIGEN_RISCV64_USE_RVV10
  allow_failure: true

build:linux:riscv64:gcc-15:default:
  extends: .build:linux:riscv64
  variables:
    EIGEN_CI_C_COMPILER: gcc-15
    EIGEN_CI_CXX_COMPILER: g++-15
    EIGEN_CI_CROSS_INSTALL: g++-15-riscv64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: riscv64-linux-gnu-gcc-15
    EIGEN_CI_CROSS_CXX_COMPILER: riscv64-linux-gnu-g++-15
    # Zvfbfmin+Zvfbfwma additionally enable the bfloat16 packets
    # (PacketMathBF16.h), which are otherwise never compiled by CI.  gcc-only:
    # clang 21 crashes mangling any function signature containing a
    # fixed-length (riscv_rvv_vector_bits) RVV bfloat16 vector type; fixed in
    # clang 22.
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=rv64gc_v_zvl256b_zfh_zvfh_zvfbfmin_zvfbfwma;-mrvv-vector-bits=zvl;-DEIGEN_RISCV64_USE_RVV10

build:linux:riscv64:clang-21:default:
  extends: .build:linux:riscv64
  variables:
    EIGEN_CI_INSTALL: clang-21
    EIGEN_CI_C_COMPILER: clang-21
    EIGEN_CI_CXX_COMPILER: clang++-21
    EIGEN_CI_CROSS_INSTALL: g++-15-riscv64-linux-gnu clang-21

# Namespace-guarded, unlike the other smoke builds: their consumers are the
# riscv64 smoke tests, which need a self-hosted runner no fork has.  See
# test.linux.gitlab-ci.yml.
build:linux:riscv64:gcc-15:default:smoketest:
  extends: build:linux:riscv64:gcc-15:default
  variables:
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules: !reference [.rules:libeigen:smoketest:upstream-runner, rules]
  tags:
    - saas-linux-large-amd64

build:linux:riscv64:clang-21:default:smoketest:
  extends: build:linux:riscv64:clang-21:default
  variables:
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules: !reference [.rules:libeigen:smoketest:upstream-runner, rules]
  tags:
    - saas-linux-large-amd64

######## MR Smoke Tests ########################################################
# aarch64 targets are cross-compiled via g++-10-aarch64-linux-gnu / clang-14.
# Tests run on their respective native runners (see test.linux.gitlab-ci.yml).

build:linux:cross:x86-64:gcc-10:default:smoketest:
  extends: build:linux:cross:x86-64:gcc-10:default
  image: ${EIGEN_CI_IMAGE_LINUX_AMD64_SMOKETEST_BUILD}
  variables:
    EIGEN_CI_SKIP_APT: "true"
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules: !reference [.rules:libeigen:smoketest, rules]
  tags:
    - saas-linux-large-amd64

build:linux:cross:x86-64:clang-14:default:smoketest:
  extends: build:linux:cross:x86-64:clang-14:default
  image: ${EIGEN_CI_IMAGE_LINUX_AMD64_SMOKETEST_BUILD}
  variables:
    EIGEN_CI_SKIP_APT: "true"
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules: !reference [.rules:libeigen:smoketest, rules]
  tags:
    - saas-linux-large-amd64

build:linux:aarch64:gcc-10:default:smoketest:
  extends: build:linux:cross:aarch64:gcc-10:default
  image: ${EIGEN_CI_IMAGE_LINUX_AMD64_SMOKETEST_BUILD}
  variables:
    EIGEN_CI_SKIP_APT: "true"
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules: !reference [.rules:libeigen:smoketest, rules]
  tags:
    - saas-linux-large-amd64

build:linux:aarch64:clang-14:default:smoketest:
  extends: build:linux:cross:aarch64:clang-14:default
  image: ${EIGEN_CI_IMAGE_LINUX_AMD64_SMOKETEST_BUILD}
  variables:
    EIGEN_CI_SKIP_APT: "true"
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules: !reference [.rules:libeigen:smoketest, rules]
  tags:
    - saas-linux-large-amd64

######## MR Affected Tests #####################################################
# Opt-in via the `affected-tests` label: build every test the merge request diff
# can reach.  The target list comes from the select:tests job; see
# scripts/affected_tests.py.
#
# The four jobs below always run under the label; the rest are gated on the
# platform they target.  Trigger rules are shared with the paired test jobs; see
# .rules:libeigen:affected-tests:* in ci/common.gitlab-ci.yml, and .agents/ci.md
# for which label selects what and how this tier relates to the smoke matrix it
# suppresses.
#
# Every job here names its parent's ccache pool (EIGEN_CI_CCACHE_POOL): the
# selection is a subset of the parent's targets compiled with the same flags,
# so it hits in, and feeds, the pool the parent's full builds fill. Under the
# default `$CI_JOB_NAME_SLUG` pool it would have an `-affected` pool of its own
# that no full build ever warms.

##### Always, under the label ##################################################

build:linux:cross:x86-64:gcc-10:avx2:affected:
  extends: [ build:linux:cross:x86-64:gcc-10:avx2, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-gcc-10-avx2
  rules: !reference [.rules:libeigen:affected-tests, rules]

build:linux:cross:x86-64:clang-14:default:affected:
  extends: [ build:linux:cross:x86-64:clang-14:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-clang-14-default
  rules: !reference [.rules:libeigen:affected-tests, rules]

build:linux:cross:aarch64:gcc-10:default:affected:
  extends: [ build:linux:cross:aarch64:gcc-10:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-aarch64-gcc-10-default
  rules: !reference [.rules:libeigen:affected-tests, rules]

build:linux:cross:aarch64:clang-14:default:affected:
  extends: [ build:linux:cross:aarch64:clang-14:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-aarch64-clang-14-default
  rules: !reference [.rules:libeigen:affected-tests, rules]

##### Platform-triggered #######################################################

build:linux:cross:x86-64:gcc-10:default:affected:
  extends: [ build:linux:cross:x86-64:gcc-10:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-gcc-10-default
  rules: !reference [.rules:libeigen:affected-tests:sse, rules]

build:linux:cross:x86-64:gcc-10:avx:affected:
  extends: [ build:linux:cross:x86-64:gcc-10:avx, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-gcc-10-avx
  rules: !reference [.rules:libeigen:affected-tests:avx, rules]

build:linux:cross:x86-64:gcc-10:avx512dq:affected:
  extends: [ build:linux:cross:x86-64:gcc-10:avx512dq, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-gcc-10-avx512dq
  rules: !reference [.rules:libeigen:affected-tests:avx512, rules]

# The FP16 builds reuse the existing split compile-only jobs; there is no runner
# with AVX512-FP16 hardware for a paired test job.
build:linux:cross:x86-64:gcc-13:avx512fp16:official:affected:
  extends: build:linux:cross:x86-64:gcc-13:avx512fp16:official
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-gcc-13-avx512fp16-official
  rules: !reference [.rules:libeigen:affected-tests:avx512fp16, rules]

build:linux:cross:x86-64:gcc-13:avx512fp16:unsupported:affected:
  extends: build:linux:cross:x86-64:gcc-13:avx512fp16:unsupported
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-x86-64-gcc-13-avx512fp16-unsupported
  rules: !reference [.rules:libeigen:affected-tests:avx512fp16, rules]

# 32-bit arm: a distinct NEON code path from the aarch64 job above.
build:linux:cross:arm:gcc-10:default:affected:
  extends: [ build:linux:cross:arm:gcc-10:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-arm-gcc-10-default
  rules: !reference [.rules:libeigen:affected-tests:neon, rules]

build:linux:cross:ppc64le:gcc-14:default:affected:
  extends: [ build:linux:cross:ppc64le:gcc-14:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-ppc64le-gcc-14-default
  rules: !reference [.rules:libeigen:affected-tests:altivec, rules]

build:linux:cross:loongarch64:gcc-14:default:affected:
  extends: [ build:linux:cross:loongarch64:gcc-14:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-loongarch64-gcc-14-default
  rules: !reference [.rules:libeigen:affected-tests:lsx, rules]

build:linux:riscv64:gcc-15:default:affected:
  extends: [ build:linux:riscv64:gcc-15:default, .affected:build ]
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-riscv64-gcc-15-default
  rules: !reference [.rules:libeigen:affected-tests:rvv10, rules]

# SME gets compile coverage of the whole suite under the streaming-mode flags
# rather than a selection: the per-SVL test jobs run a curated target subset
# through EIGEN_CI_CTEST_REGEX, which a selection would conflict with.
build:linux:cross:sme:gcc-14:full:affected:
  extends: build:linux:cross:sme:gcc-14:full
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-sme-gcc-14-full
  rules: !reference [.rules:libeigen:affected-tests:sme, rules]

# One product_sme build, so a change to the gate is caught by the affected tier
# rather than only by the nightly run.
build:linux:cross:sme:gcc-14:no-f64f64:affected:
  extends: build:linux:cross:sme:gcc-14:no-f64f64
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-sme-gcc-14-no-f64f64
  rules: !reference [.rules:libeigen:affected-tests:sme, rules]

# The VL sweep is the point of the affected tier for SVE: a change to the packet
# code is exactly what breaks at one vector length and not another.
build:linux:cross:sve:gcc-13:vl128:affected:
  extends: build:linux:cross:sve:gcc-13:vl128
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-sve-gcc-13-vl128
  rules: !reference [.rules:libeigen:affected-tests:sve, rules]

build:linux:cross:sve:gcc-13:vl512:affected:
  extends: build:linux:cross:sve:gcc-13:vl512
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-sve-gcc-13-vl512
  rules: !reference [.rules:libeigen:affected-tests:sve, rules]

build:linux:cross:sve:gcc-13:vl256:affected:
  extends: build:linux:cross:sve:gcc-13:vl256
  variables:
    EIGEN_CI_CCACHE_POOL: build-linux-cross-sve-gcc-13-vl256
  rules: !reference [.rules:libeigen:affected-tests:sve, rules]
