/* PR tree-optimization/112536 */ /* { dg-do compile } */ /* { dg-options "-O2 -fno-ipa-icf" } */ /* { dg-additional-options "-mlzcnt -mavx512cd -mavx512vl" { target { i?86-*-* x86_64-*-* } } } */ /* { dg-final { scan-assembler-times "\tvplzcntd\t" 3 { target { i?86-*-* x86_64-*-* } } } } */ unsigned a[12]; 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; } void bar (void) { int i = a[4]; int j = a[5]; int k = a[6]; int l = a[7]; int e = i ? __builtin_clz (i) : __SIZEOF_INT__ * __CHAR_BIT__; int f = __builtin_clz (j); int g = __builtin_clz (k); int h = l ? __builtin_clz (l) : __SIZEOF_INT__ * __CHAR_BIT__; a[4] = e; a[5] = f; a[6] = g; a[7] = h; } void baz (void) { int i = a[8]; int j = a[9]; int k = a[10]; int l = a[11]; int e = __builtin_clz (i); int f = j ? __builtin_clz (j) : __SIZEOF_INT__ * __CHAR_BIT__; int g = __builtin_clz (k); int h = l ? __builtin_clz (l) : __SIZEOF_INT__ * __CHAR_BIT__; a[8] = e; a[9] = f; a[10] = g; a[11] = h; }