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.