[Bug c/112438] New: RISC-V: Failed to AVL propagation through induction variable
juzhe.zhong at rivai dot ai
gcc-bugzilla@gcc.gnu.org
Wed Nov 8 06:43:35 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112438
Bug ID: 112438
Summary: RISC-V: Failed to AVL propagation through induction
variable
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: juzhe.zhong at rivai dot ai
Target Milestone: ---
void
foo (int n, int * __restrict in, int * __restrict out)
{
for (int i = 0; i < n; i += 1)
{
out[i] = in[i] + i;
}
}
ASM:
foo(int, int*, int*):
ble a0,zero,.L5
csrr a5,vlenb
srli a5,a5,2
vsetvli a3,zero,e32,m1,ta,ma
vmv.v.x v4,a5
vid.v v2
.L3:
vsetvli a5,a0,e32,m1,ta,ma
slli a4,a5,2
vle32.v v1,0(a1)
sub a0,a0,a5
vadd.vv v1,v1,v2
vse32.v v1,0(a2)
add a1,a1,a4
vsetvli a5,zero,e32,m1,ta,ma --- > redundant
add a2,a2,a4
vadd.vv v2,v2,v4
bne a0,zero,.L3
.L5:
ret
It's known issue that I realized it when I was supporting AVL propagation.
Now, I find the time to support AVL propagation now.
More information about the Gcc-bugs
mailing list