/* { dg-do compile } */
/* { dg-require-effective-target store_merge } */
/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */

struct baz {
  struct bar {
      int a;
      char b;
      char c;
      char d;
      char e;
      char f;
      char g;
  } a[4];
} x;
struct baz *xx = &x;

void
foo1 (int i)
{
  x.a[i].b = 0;
  x.a[i].a = 0;
  x.a[i].c = 0;
  x.a[i].d = 0;
  x.a[i].e = 0;
}

void
foo2 (int i)
{
  x.a[i].b = 0;
  x.a[i].a = 0;
  x.a[i].c = 1;
  x.a[i].d = 0;
  x.a[i].e = 0;
}

/* { dg-final { scan-tree-dump-times "Merging successful" 2 "store-merging" } } */
