1 /* { dg-options "-O2" } */ 2 3 #include <arm_sve.h> 4 #include <string.h> 5 6 inline void copy(void * dst,svbool_t src)7copy (void *dst, svbool_t src) 8 { 9 memcpy (dst, &src, svcntd ()); 10 } 11 12 uint64_t f(int32_t * x,int32_t * y)13f (int32_t *x, int32_t *y) 14 { 15 union { uint64_t x; char c[8]; } u; 16 svbool_t pg = svptrue_b32 (); 17 copy (u.c, svcmpeq (pg, svld1 (pg, x), 0)); 18 copy (u.c + 4, svcmpeq (pg, svld1 (pg, y), 1)); 19 return u.x; 20 } 21