https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99212
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- I guess cris-elf simply has different type sizes / bitfield layout here. The dumps hint at sizeof (ubits) == 1 for cris. So you should eventually get the same on x86_64 when you use unsigned char : ...; bitfields in ubits.