1 /* { dg-do run } */
2 /* { dg-options "-O3 -save-temps -fno-inline -fno-vect-cost-model" } */
3
4 #pragma GCC target "+nosve"
5
6 extern void abort ();
7
8 void
9 count_lz_v4si (unsigned *__restrict a, int *__restrict b)
10 {
11 int i;
12
13 for (i = 0; i < 4; i++)
14 b[i] = __builtin_clz (a[i]);
15 }
16
17 /* { dg-final { scan-assembler "clz\tv\[0-9\]+\.4s" } } */
18
19 int
20 main ()
21 {
22 unsigned int x[4] = { 0x0, 0xFFFF, 0x1FFFF, 0xFFFFFFFF };
23 int r[4] = { 32, 16, 15, 0 };
24 int d[4], i;
25
26 count_lz_v4si (x, d);
27
28 for (i = 0; i < 4; i++)
29 {
30 if (d[i] != r[i])
31 abort ();
32 }
33
34 return 0;
35 }
36