> This seems mostly plausible, though I don't see anything to ensure that 
> __intN does not exist at all if the size matches one of the standard C 
> types, or if the mode fails targetm.scalar_mode_supported_p.

What do we check against for this?  Is there some table of standard
types we can read the bitsize of in toplev.c, or should we use the
macros as below?  What about float/vector/complex types?  I assume we
don't check those since the __intN types are integer types.

Also, should we special-case the int128 case so we always get __int128
if the backend supports TImode?

static bool
standard_type_bitsize (int bitsize)
{
  if (bitsize == 128)
    return false;
  if (bitsize == CHAR_TYPE_SIZE
      || bitsize == SHORT_TYPE_SIZE
      || bitsize == INT_TYPE_SIZE
      || bitsize == LONG_TYPE_SIZE
      || bitsize == LONG_LONG_TYPE_SIZE)
    return true;
  return false;
}

Reply via email to