On Fri, 26 Apr 2013, Richard Biener wrote: > The test scanning for * 4 would not be fixed with int32plus indeed (if > int is larger than 32bits). Using int32_t would be better than > SImode as SImode is not guaranteed to be 32bits either.
SImode should (if it exists) always be four times QImode, even if the minimum addressable unit (which is QImode) is not 8 bits. (I don't know whether the * 4 is supposed to be counting in QImode units or in "char", but generally I'd expect the middle-end / back-end to be counting in QImode, and support for char wider than QImode is even more bitrotten / less likely to work than support for QImode not being 8 bits.) Abstractly, the existence of a particular set of machine modes wider than QImode should in principle be something machine-dependent (rather than being in machmode.def, there should be a separate .def file with those modes that all existing targets use). I don't really expect that sort of thing to be cleaned up unless and until someone with sufficient GCC expertise works on a port to a non-8-bit-byte target; there are plenty of much easier areas to clean up the target interface (most of the existing target macros...). -- Joseph S. Myers jos...@codesourcery.com