https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114041
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- unsigned a[24], b[24]; __attribute__((noipa)) unsigned foo (unsigned char x) { for (int i = 0; i < 24; ++i) a[i] = i; unsigned e = __builtin_stdc_bit_ceil (x); for (int i = 0; i < 24; ++i) b[i] = i; return e; } int main () { if (foo (0) != 1) __builtin_abort (); } works right, but s/unsigned char/unsigned _BitInt(8)/ does not, so it must be something in graphite that handles INTEGER_TYPE and not all integral types.