https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108185
Bug ID: 108185
Summary: [RISC-V]RVV assemble not set vsetvli correct.
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: jiawei at iscas dot ac.cn
Target Milestone: ---
Currently, when use gcc13 to compile follow code with rvv
extension(-march=rv64gcv -O3),
void foo5_3 (int32_t * restrict in, int32_t * restrict out, size_t n, int
cond)
{
vint8m1_t v = *(vint8m1_t*)in;
*(vint8m1_t*)out = v;
vbool8_t v3 = *(vbool8_t*)in;
*(vbool8_t*)(out + 200) = v3;
}
it will generate asm as:
vl1re8.v v25,0(a0)
sub a5,a3,a5
vs1r.v v25,0(a1)
vs1r.v v25,0(a5)
seems not use vsetvli correctly, any suggestions?