[Bug target/116033] New: [14/15] RISC-V: -march=rv64gv_xtheadmemidx generates illegal vse8.v insn
patrick at rivosinc dot com
gcc-bugzilla@gcc.gnu.org
Mon Jul 22 17:46:06 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116033
Bug ID: 116033
Summary: [14/15] RISC-V: -march=rv64gv_xtheadmemidx generates
illegal vse8.v insn
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: patrick at rivosinc dot com
Target Milestone: ---
Testcase:
char arr_3[20][20];
void init() {
for (int i_0 = 0; i_0 < 20; ++i_0)
for (int i_1 = 0; i_0 < 20; ++i_0)
for (int i_1 = 0; i_1 < 20; ++i_0)
for (int i_1 = 0; i_1 < 20; ++i_1)
arr_3[i_0][i_1] = i_1;
}
Command:
> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/riscv64-unknown-linux-gnu-gcc -march=rv64gv_xtheadmemidx -mabi=lp64d driver.c -c -O3
/scratch/tmp/cc4KI0Jh.s: Assembler messages:
/scratch/tmp/cc4KI0Jh.s:27: Error: illegal operands `vse8.v v1,(a5),10,1'
/scratch/tmp/cc4KI0Jh.s:28: Error: illegal operands `vse8.v v5,(a1),10,1'
/scratch/tmp/cc4KI0Jh.s:29: Error: illegal operands `vse8.v v4,(a2),10,1'
/scratch/tmp/cc4KI0Jh.s:30: Error: illegal operands `vse8.v v3,(a3),10,1'
/scratch/tmp/cc4KI0Jh.s:31: Error: illegal operands `vse8.v v2,(a4),10,1'
Generated asm:
init:
vsetivli zero,4,e8,mf4,ta,ma
vid.v v1
lui a5,%hi(.LANCHOR0)
vadd.vi v5,v1,4
vadd.vi v4,v1,8
vadd.vi v3,v1,12
addi a5,a5,%lo(.LANCHOR0)
li a4,16
vadd.vx v2,v1,a4
addi a1,a5,4
addi a2,a5,8
addi a3,a5,12
addi a4,a5,16
.L2:
vse8.v v1,(a5),10,1
vse8.v v5,(a1),10,1
vse8.v v4,(a2),10,1
vse8.v v3,(a3),10,1
vse8.v v2,(a4),10,1
j .L2
arr_3:
.zero 400
Godbolt:
https://godbolt.org/z/qGqxrTr3K
Using -march=rv64gcv generates the expected syntax of vse8.v v1,(a5):
https://godbolt.org/z/4Pda4fc6E
Found via fuzzer.
More information about the Gcc-bugs
mailing list