name: Ubuntu rvv VLEN=1024 (clang 18)

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@v4
    - name: Install packages
      run: |
        sudo apt-get update -q -y
        sudo apt-get install -y cmake make g++-riscv64-linux-gnu qemu-user-static clang-18
    - name: Build
      run: |
        CC=clang-18 CXX=clang++-18 CFLAGS="--target=riscv64-linux-gnu -march=rv64gcv_zvbb" CXXFLAGS="${CFLAGS}" \
        cmake --toolchain=cmake/toolchains-ci/riscv64-linux-gnu.cmake -DSIMDJSON_DEVELOPER_MODE=ON -B build
        cmake --build build/ -j$(nproc) --config Release
    - name: Test VLEN=1024
      run: |
        QEMU_LD_PREFIX="/usr/riscv64-linux-gnu" \
        QEMU_CPU="rv64,v=on,zvbb=on,vlen=1024,rvv_ta_all_1s=on,rvv_ma_all_1s=on" \
        ctest --timeout 1800 --output-on-failure --test-dir build -j $(nproc)
