https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70944
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I'd say we really don't want vector mode ZERO_EXTRACTs/SIGN_EXTRACTs, so perhaps make_extraction could give up in that case, maybe: /* Never narrow an object, since that might not be safe. */ if (mode != VOIDmode && GET_MODE_SIZE (extraction_mode) < GET_MODE_SIZE (mode)) extraction_mode = mode; and inside of if just do { /* Avoid vector mode extractions. */ if (VECTOR_MODE_P (mode)) return NULL_RTX; extraction_mode = mode; } Or should we punt even earlier?