1 /* { dg-add-options vect_early_break } */
2 /* { dg-require-effective-target vect_early_break_hw } */
3 /* { dg-require-effective-target vect_int } */
5 /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { ! "x86_64-*-* i?86-*-*" } } } } */
10 #include "tree-vect.h"
12 # define BITSIZEOF_INT 32
13 # define BITSIZEOF_LONG 64
14 # define BITSIZEOF_LONG_LONG 64
16 #define MAKE_FUNS(suffix, type) \
17 __attribute__((noinline)) \
18 int my_clz##suffix(type x) { \
20 for (i = 0; i < CHAR_BIT * sizeof (type); i++) \
21 if (x & ((type) 1 << ((CHAR_BIT * sizeof (type)) - i - 1))) \
27 MAKE_FUNS (, unsigned);
29 extern void abort (void);
30 extern void exit (int);
50 unsigned int ints
[] = NUMS32
;
52 #define N(table) (sizeof (table) / sizeof (table[0]))
59 for (i
= 0; i
< N(ints
); i
++)
62 && __builtin_clz (ints
[i
]) != my_clz (ints
[i
]))