https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122871
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note shift by over half for the double register is always just one shift in one register. (Assuming left shift or logical right shift; arthemic (signed) left shift is 2 shifts, one to splat the sign bit for the upper half, and then shift for the lower half).
