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

struct S { unsigned char b[2]; unsigned short c; unsigned char d[4]; unsigned long e; };

__attribute__((noipa)) void
foo (struct S *p)
{
  p->b[1] = 1;
  p->c = 23;
  p->d[0] = 4;
  p->d[1] = 5;
  p->d[2] = 6;
  p->d[3] = 7;
  p->e = 8;
}

__attribute__((noipa)) void
bar (struct S *p)
{
  p->b[1] = 9;
  p->c = 112;
  p->d[0] = 10;
  p->d[1] = 11;
}

struct S s = { { 30, 31 }, 32, { 33, 34, 35, 36 }, 37 };

int
main ()
{
  asm volatile ("" : : : "memory");
  foo (&s);
  asm volatile ("" : : : "memory");
  if (s.b[0] != 30 || s.b[1] != 1 || s.c != 23 || s.d[0] != 4 || s.d[1] != 5
      || s.d[2] != 6 || s.d[3] != 7 || s.e != 8)
    __builtin_abort ();
  bar (&s);
  asm volatile ("" : : : "memory");
  if (s.b[0] != 30 || s.b[1] != 9 || s.c != 112 || s.d[0] != 10 || s.d[1] != 11
      || s.d[2] != 6 || s.d[3] != 7 || s.e != 8)
    __builtin_abort ();
  return 0;
}

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