1 /* Make sure the vector load and zero instruction is being used for
2    initializing a 32 bit vector with the first element taken from
3    memory.  */
4 
5 /* { dg-do run } */
6 /* { dg-options "-O3 -mzarch -march=arch12 --save-temps" } */
7 /* { dg-require-effective-target s390_vxe } */
8 
9 typedef unsigned int       uv4si __attribute__((vector_size(16)));
10 
11 uv4si __attribute__((noinline))
foo(int * a)12 foo (int *a)
13 {
14   return (uv4si){ *a, 0, 0, 0 };
15 }
16 
17 int
main()18 main ()
19 {
20   int b = 4;
21   uv4si a = (uv4si){ 1, 2, 3, 4 };
22 
23   a = foo (&b);
24 
25   if (a[0] != 4 || a[1] != 0 || a[2] != 0 || a[3] != 0)
26     __builtin_abort ();
27 
28   return 0;
29 }
30 /* { dg-final { scan-assembler-times "vllezlf\t%v24,0\\(%r2\\)" 1 } } */
31