https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102450
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Eric Botcazou from comment #12) > > > So what's the 16-byte integer mode for this target (MAX_MODE_INT)? > > > > MIN_MODE_INT = E_QImode, > > MAX_MODE_INT = E_TImode, > > So the problem is with OImode, not TImode, in the end? the folding is capped to MOVE_MAX * MOVE_RATIO which for pa is 8 * (TARGET_64BIT ? 8 : 4), which would be up to XImode. So the code really relies on type_for_size returning NULL for unsupported types at the moment. That works fine with all but Ada (and maybe Go) because everybody else just compares against standard type precisions/signs and never builds a new type in type_for_size.