https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #9 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #6) > if we change the cast patterns so that they are a > vec_concat of the operand and UNSPEC_CAST that then represents just the > uninitialized higher part, simplify-rtx.c is able to deal with it on its own. Yes, I like that better as well. The name UNSPEC_CAST looks a bit strange though, it could be renamed UNSPEC_UNDEF for instance? If someone tries to extract the high part of such a vector, I expect simplification yields just the unspec, which doesn't have a matching pattern, so the simplification is cancelled? Any connection with _mm_undefined_si128? (random dump of thoughts, ignore most of it)