https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82989
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Indeed, with -march=armv7-a -mcpu=cortex-a8 -mfpu=neon -O2 pr82989.c -mfloat-abi=hard -mprint-tune-info I can reproduce. prefer_neon_for_64bits seems to be false, and LRA first says: Choosing alt 4 in insn 7: (0) ?&r (1) r (2) i (3) X (4) X (5) X {lshrdi3_neon} which I assume would be with GPRs, but then decides to pick: Choosing alt 6 in insn 7: (0) ?w (1) w (2) i (3) X (4) X (5) X {lshrdi3_neon} instead. That alternative has avoid_neon_for_64bits arch, even when it uses neon registers, just has ? to disparage it slightly.