https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88834
--- Comment #6 from kugan at gcc dot gnu.org ---
>
> Note the difference in mode for aarch64_classify_address. Not sure if this
> is because of the way my patch changes ivopt.
Yes, it ws my mistake in iv-use. with attached patch, I now get
cmp w3, 0
ble .L1
sub w3, w3, #1
mov x4, 0
cntw x5
ptrue p1.s, all
lsr w3, w3, 1
add w3, w3, 1
whilelo p0.s, xzr, x3
.p2align 3,,7
.L3:
ld2w {z4.s - z5.s}, p0/z, [x1, x4, lsl 2]
ld2w {z2.s - z3.s}, p0/z, [x2, x4, lsl 2]
add z0.s, z4.s, z2.s
sub z1.s, z5.s, z3.s
st2w {z0.s - z1.s}, p0, [x0, x4, lsl 2]
whilelo p0.s, x5, x3
incb x4, all, mul #2
incw x5
ptest p1, p0.b
bne .L3
.L1:
ret
.cfi_endproc
I will post the patch for review after stage-1 opens. In the meantime any
review is appreciated. Especially the part where iv-use is setup and
get_alias_ptr_type_for_ptr_address.