/* PR tree-optimization/36991 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ typedef float V __attribute__ ((vector_size (16))); typedef union { V v[4][4]; } U; void foo (float x, float y, U *z) { z->v[1][0] = z->v[0][1] = (V) { x, y, 0, 0 }; }