/* { dg-do compile } */
/* { dg-options "-O -fdump-tree-dse1-details" } */

void f(int n, char *p0, char *p1, char *p2, char *o)
{
  int t0, t1;
  __builtin_memcpy(&t0, p0, 1);
  __builtin_memcpy(&t1, p1, 1);
  if (n==3)
    __builtin_memcpy(o+2, p2, 1);
  __builtin_memcpy(o+0, &t0, 1);
  __builtin_memcpy(o+1, &t1, 1);
}

/* { dg-final { scan-tree-dump-times "Deleted dead store" 2 "dse1" } } */