1616 env :
1717 triple : riscv64-unknown-linux-gnu
1818 riscv_gnu_toolchain : https://github.com/riscv-collab/riscv-gnu-toolchain
19- riscv_gnu_toolchain_version : 13.2 .0
19+ riscv_gnu_toolchain_version : 15.1 .0
2020 riscv_gnu_toolchain_nightly_download_path : /releases/download/2025.08.29/riscv64-glibc-ubuntu-22.04-llvm-nightly-2025.08.29-nightly.tar.xz
2121 strategy :
2222 fail-fast : false
2727 qemu_cpu : rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=128,elen=64
2828 - target : RISCV64_ZVL256B
2929 opts : TARGET=RISCV64_ZVL256B BINARY=64 ARCH=riscv64 BUILD_BFLOAT16=1 BUILD_HFLOAT16=1
30- qemu_cpu : rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64
30+ qemu_cpu : rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64,zfh=true,zvfh=true,zvfbfwma=true
3131 - target : DYNAMIC_ARCH=1
3232 opts : TARGET=RISCV64_GENERIC BINARY=64 ARCH=riscv64 DYNAMIC_ARCH=1
3333 qemu_cpu : rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64
@@ -40,10 +40,13 @@ jobs:
4040 run : |
4141 sudo apt-get update
4242 sudo apt-get install autoconf automake autotools-dev ninja-build make \
43- libgomp1-riscv64-cross ccache qemu-kvm
43+ libgomp1-riscv64-cross ccache qemu-kvm qemu-user libc6-riscv64-cross
4444 wget ${riscv_gnu_toolchain}/${riscv_gnu_toolchain_nightly_download_path}
4545 tar -xvf $(basename ${riscv_gnu_toolchain_nightly_download_path}) -C /opt
46-
46+ wget https://gist.github.com/martin-frbg/bb630e0de34978e578eeb496b1538d4e/raw/7fd8d971f327f7a517b8f5f7989479ff2b36f71f/qemu-riscv64-10.1-ubuntu24 -P /opt/riscv/bin -o riscv64-qemu
47+ mv /opt/riscv/bin/qemu-riscv64-10.1-ubuntu24 /opt/riscv/bin/qemu-riscv64
48+ chmod +x /opt/riscv/bin/qemu-riscv64
49+
4750 - name : Compilation cache
4851 uses : actions/cache@v3
4952 with :
7477 run : |
7578 export PATH="/opt/riscv/bin:$PATH"
7679 make TARGET=${{ matrix.target }} CFLAGS="-DTARGET=${{ matrix.target }}" \
77- CC='${triple}- gcc' \
80+ CC='ccache clang --rtlib=compiler-rt -target ${triple} --sysroot /opt/riscv/sysroot -- gcc-toolchain=/opt/riscv/lib/gcc/riscv64-unknown-linux-gnu/${riscv_gnu_toolchain_version}/ ' \
7881 AR='ccache ${triple}-ar' AS='ccache ${triple}-gcc' LD='ccache ${triple}-gcc' \
7982 RANLIB='ccache ${triple}-ranlib' \
8083 FC='ccache ${triple}-gfortran' ${{ matrix.opts }} \
98101 shell : bash
99102 run : |
100103 export PATH="/opt/riscv/bin:$PATH"
104+ export LD_LIBRARY_PATH=/opt/riscv/sysroot/lib
105+ sudo ln -s /opt/riscv/sysroot/lib/ld-linux-riscv64-lp64d.so.1 /lib
101106 export QEMU_CPU=${{ matrix.qemu_cpu }}
102107 rm -rf ./test_out
103108 mkdir -p ./test_out
@@ -134,6 +139,12 @@ jobs:
134139 wait
135140 while IFS= read -r -d $'\0' LOG; do cat $LOG ; FAILURES=1 ; done < <(grep -lZ FAIL ./test_out/*)
136141 if [[ ! -z $FAILURES ]]; then echo "==========" ; echo "== FAIL ==" ; echo "==========" ; echo ; exit 1 ; fi
142+ if [ "${{matrix.target}}" == "RISCV64_ZVL256B" ]; then
143+ qemu-riscv64 test/test_shgemm &
144+ qemu-riscv64 test/test_shgemv &
145+ qemu-riscv64 test/test_bgemm
146+ fi
147+
137148
138149 - name : netlib tests
139150 shell : bash
0 commit comments