https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91202
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- As for TARGET_SHIFT_TRUNCATION_MASK, I'm not sure it can be safely used, because different instructions on x86 work differently. The old scalar shifts do the & 31 masking for QImode/HImode, but e.g. vector shifts don't do any masking, but out of bound shift counts are basically infinity shift count. So, if we wanted to use say truncation mask of 31 for QI/HI/SImode, we'd need to make sure we never do for those what say STV does and use vector instructions instead, because those have different behavior.