https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28367
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Yeah, something along that line would be needed. The issue is that the partial value is not "available" (as in: it doesn't have a SSA name) and thus there is nothing to CSE the load to. I suppose that we should generalize this support for real-/imag-part of complex values as well. Not sure if it is worth using BIT_FIELD_REF for getting at pieces of scalar registers (maybe it would pay off for targets that can efficiently compute lowpart subregs).