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)12foo (int *a) 13 { 14 return (uv4si){ *a, 0, 0, 0 }; 15 } 16 17 int main()18main () 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