https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117955
Bug ID: 117955
Summary: [15 Regression] GCC generate illegal riscv instruction
`vsetvli zero,zero,e64,mf4,ta,ma` with -O2 and -O3
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: rvismith1115 at gmail dot com
Target Milestone: ---
Created attachment 59819
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59819&action=edit
reduced testcase
The test case is large and I have tried my best to reduce the case.
In the assembly file I report, line 1405 `vsetvli
zero,zero,e64,mf4,ta,ma` is illegal. No `e64mf4` in current riscv vector
extension.
command:
```
$ riscv64-unknown-elf-gcc --version
gcc () 15.0.0 20241117 (experimental)
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ riscv64-unknown-elf-gcc -O3 -march=rv64gcv_zvfh -mabi=lp64d -Wno-psabi
-static -save-temps bug.c
$ qemu-riscv64 a.out
Illegal instruction (core dumped)
```