https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70396
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |jakub at gcc dot gnu.org Resolution|FIXED |--- --- Comment #7 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?