/* PR tree-optimization/52267 */ /* { dg-do run } */ /* { dg-options "-O3 -fdump-tree-ldist-details" } */ int a = 0, b = 0, c = 0; struct S { signed m : 7; signed e : 2; }; struct S f[2] = {{0, 0}, {0, 0}}; struct S g = {0, 0}; void __attribute__((noinline)) k() { for (; c <= 1; c++) { f[b] = g; f[b].e ^= 1; } } int main() { k(); if (f[b].e != 1) __builtin_abort (); } /* { dg-final { scan-tree-dump-not "Loop 1 distributed: split to 3 loops" "ldist" } } */