https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112536
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
unsigned a[4];
void
foo (void)
{
int i = a[0];
int j = a[1];
int k = a[2];
int l = a[3];
int e = i ? __builtin_clz (i) : __SIZEOF_INT__ * __CHAR_BIT__;
int f = j ? __builtin_clz (j) : __SIZEOF_INT__ * __CHAR_BIT__;
int g = k ? __builtin_clz (k) : __SIZEOF_INT__ * __CHAR_BIT__;
int h = l ? __builtin_clz (l) : __SIZEOF_INT__ * __CHAR_BIT__;
a[0] = e;
a[1] = f;
a[2] = g;
a[3] = h;
}
ICEs on x86_64-linux as well with -mlzcnt -mavx512cd -mavx512vl