> I'm very skeptical... In any case, having a type whose TYPE_SIZE is smaller > than the size of its MODE is a lie which will bite you back at some point.
Except gcc now knows the size of partial int modes. In this case, PSImode is 20 bits and TYPE_SIZE is 20 bits, so they match. The code was biting me when TYPE_SIZE was bigger than PSImode, and the code kept choosing SImode instead.