blob: 14ea4f7e40820d34d86473a949c8b7c82b17b5af [file] [log] [blame]
/* Make sure the vector load and zero instruction is being used for
initializing a 32 bit vector with the first element taken from
memory. */
/* { dg-do run } */
/* { dg-options "-O3 -mzarch -march=arch12 --save-temps" } */
/* { dg-require-effective-target s390_vxe } */
typedef unsigned int uv4si __attribute__((vector_size(16)));
uv4si __attribute__((noinline))
foo (int *a)
{
return (uv4si){ *a, 0, 0, 0 };
}
int
main ()
{
int b = 4;
uv4si a = (uv4si){ 1, 2, 3, 4 };
a = foo (&b);
if (a[0] != 4 || a[1] != 0 || a[2] != 0 || a[3] != 0)
__builtin_abort ();
return 0;
}
/* { dg-final { scan-assembler-times "vllezlf\t%v24,0\\(%r2\\)" 1 } } */