https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98542
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- What do you mean with "twice"? We seem to do interleaving here (on x86_64) but since 'v' and 'i' have different types they do not belong to the same interleaving chain (but we have two that "interleave" - heh). x.c:6:21: note: === vect_analyze_data_ref_accesses === x.c:6:21: note: Detected single element interleaving _3->v step 16 x.c:6:21: note: Detected single element interleaving _3->i step 16 so if that's the main complaint then a testcase w/o gather is probably more relevant at first? For x86 the two loads are offsetted by one element, for your asm that looks like to be the same (x5 vs x0).