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

typedef int v4si __attribute__((vector_size(16)));

void foo (v4si *dst, int x)
{
  v4si v[2];
  v[0][0] = 1;
  v[0][1] = x;
  v[0][2] = 2;
  v[0][3] = 3;
  v[0][1] = 0;
  *dst = v[0];
}

/* The shadowed non-constant assign to v[0][1] shouldn't prevent us from
   value-numbering the load to a constant.  */
/* { dg-final { scan-tree-dump "\\*dst_\[0-9\]*\\\(D\\) = { 1, 0, 2, 3 };" "fre1" } } */