1 /* { dg-do run { target aarch64_sve_hw } } */
2 /* { dg-options "-O2 -ftree-vectorize" } */
6 extern void abort (void) __attribute__ ((noreturn
));
8 unsigned int data
[] = {
20 int __attribute__ ((optimize (1)))
23 unsigned int count
= sizeof (data
) / sizeof (data
[0]) / 2;
26 unsigned int out32
[count
];
27 for (unsigned int i
= 0; i
< count
; ++i
)
29 in32
[i
] = data
[i
* 2];
30 asm volatile ("" ::: "memory");
32 clz_32 (out32
, in32
, count
);
33 for (unsigned int i
= 0; i
< count
; ++i
)
34 if (out32
[i
] != data
[i
* 2 + 1])
38 unsigned int out64
[count
];
39 for (unsigned int i
= 0; i
< count
; ++i
)
41 in64
[i
] = (uint64_t) data
[i
* 2] << 10;
42 asm volatile ("" ::: "memory");
44 clz_64 (out64
, in64
, count
);
45 for (unsigned int i
= 0; i
< count
; ++i
)
46 if (out64
[i
] != (data
[i
* 2] ? data
[i
* 2 + 1] + 22 : 64))