[Bug target/88836] [SVE] Redundant PTEST in loop test
kugan at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 22 05:23:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88836
--- Comment #2 from kugan at gcc dot gnu.org ---
Created attachment 45795
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45795&action=edit
RFC patch
AFIK, we need to:
1. Change the whilelo pattern in backend
2. Change RTL CSE
- Add support for VEC_DUPLICATE
- When handling PARALLEL rtx, we may kill CSE defined in the first set so that
it docent reach
Attached patch fix this. With the patch I now have:
.LFB0:
.cfi_startproc
cmp w3, 0
ble .L1
sub w4, w3, #1
cntw x3
lsr w4, w4, 1
add w4, w4, 1
whilelo p0.s, xzr, x4
.p2align 3,,7
.L3:
ld2w {z4.s - z5.s}, p0/z, [x1]
ld2w {z2.s - z3.s}, p0/z, [x2]
add z0.s, z4.s, z2.s
sub z1.s, z5.s, z3.s
st2w {z0.s - z1.s}, p0, [x0]
incb x1, all, mul #2
whilelo p0.s, x3, x4
incb x0, all, mul #2
incw x3
incb x2, all, mul #2
bne .L3
.L1:
ret
.cfi_endproc
More information about the Gcc-bugs
mailing list