Hi, Kito. Could you take a look at this issue? -march parser is consistent between non-linux and linux. You can simplify verify it with these cases: FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-run.c -std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax (test for excess errors) FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-runu.c -std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax (test for excess errors) FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-zvfh-run.c -std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax (test for excess errors) FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-run.c -std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax (test for excess errors) FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-zvfh-run.c -std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax (test for excess errors) FAIL: gcc.target/riscv/rvv/autovec/vmv-imm-run.c -O3 -ftree-vectorize (test for excess errors) These cases failed on non-linux toolchain, but pass on linux toolchain. This consistency is caused by your previous multilib patch as Lehua said: https://github.com/gcc-mirror/gcc/commit/17d683d juzhe.zhong@rivai.ai From: Lehua Ding Date: 2023-11-13 19:27 To: kito.cheng; Robin Dapp CC: juzhe.zhong@rivai.ai; gcc-patches; palmer; jeffreyalaw Subject: Re: [PATCH] RISC-V: testsuite: Fix 32-bit FAILs. Hi Kito, On 2023/11/13 19:13, Lehua Ding wrote: > Hi Robin, > > On 2023/11/13 18:33, Robin Dapp wrote: >>> On 2023/11/13 18:22, juzhe.zhong@rivai.ai wrote: >>>> If there is a difference between them. I think we should fix >>>> riscv-common.cc. >>>> Since I think "zvfh_zfh" should not be different with "zfh_zvfh" >>> >>> It's possible. Let me debug it and see if there's a problem. >> >> I don't think it is different. Just checked and it still works for me. >> >> Could you please tell me how you invoke the testsuite? > > This looks to be the difference between the linux and elf versions of > gcc. The elf version of gcc we are build will have this problem, the > linux version of gcc will not. I think the linux version of gcc has a > wrong behavior.: > > ➜ riscv-gnu-toolchain-push git:(tintin-dev) > ./build/dev-rv32gcv_zfh_zvfh-ilp32d-medany-newlib-spike-debug/install/bin/riscv32-unknown-elf-gcc -march=rv32gcv_zfh build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/hello.c > riscv32-unknown-elf-gcc: fatal error: Cannot find suitable multilib set > for > '-march=rv32imafdcv_zicsr_zifencei_zfh_zfhmin_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b'/'-mabi=ilp32d' > compilation terminated. > ➜ riscv-gnu-toolchain-push git:(tintin-dev) > ./build/dev-rv32gcv_zfh_zvfh-ilp32d-medany-linux-spike-debug/install/bin/riscv32-unknown-linux-gnu-gcc -march=rv32gcv_zfh build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/hello.c > It looks like this commit[1] from you make the difference between elf and linux. Can you help to see if it makes sense to behave differently now? elf version --with-arch is rv32gcv_zvfh_zfh, and the user will get an error with -march=rv32gcv_zfh. linux version will not. [1] https://github.com/gcc-mirror/gcc/commit/17d683d -- Best, Lehua (RiVAI) lehua.ding@rivai.ai