blob: 1598c49fc549df7a89bd924856dd872916d9bc00 [file] [log] [blame]
/* PR tree-optimization/112374 */
/* { dg-do compile } */
/* { dg-options "-fcompare-debug -gno-statement-frontiers -O2" } */
/* { dg-additional-options "-march=skylake-avx512" { target i?86-*-* x86_64-*-* } } */
/* { dg-additional-options "-march=armv9-a" { target aarch64*-*-* } } */
void foo (int, int);
struct S { char s[64]; } *p;
char a, b;
unsigned char c;
int d, e;
void
bar (void)
{
unsigned i;
long j = 0;
for (i = 0; i < b; ++i)
j |= (p->s[i] ? 3 : 0) << i;
if (p->s[i + 1])
lab:
for (;;)
;
for (i = 0; i < 4; ++i)
j |= p->s[i] << i;
for (; i; i += 2)
if (c + 1 != a)
goto lab;
for (; i < 8; ++i)
j |= p->s[i] >= 6;
if (j)
foo (d, e);
}