https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84101
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- #c4 has another thing: struct S { float a, b; }; struct S foo (float x) { return (struct S) { x, x }; } where we generate bad code mainly because we have DImode as DECL_MODE of the RESULT_DECL, even when it is a structure containing two floats. Not sure what we'd get e.g. if we treated it like V2SFmode instead, but that is problematic because it is MMX-ish mode, or if it would be possible to combine it into a vec_concatv2sf somehow. Though, that should be really tracked in a different PR.