1 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-vrp1-details" } */
6 typedef const struct bitmap_head_def
*const_bitmap
;
7 typedef unsigned long BITMAP_WORD
;
8 typedef struct bitmap_element_def
{
9 struct bitmap_element_def
*next
;
10 BITMAP_WORD bits
[((128 + (8 * 8 * 1u) - 1) / (8 * 8 * 1u))];
12 typedef struct bitmap_head_def
{
13 bitmap_element
*first
;
16 bitmap_single_bit_set_p (const_bitmap a
)
18 unsigned long count
= 0;
19 const bitmap_element
*elt
;
24 if (elt
->next
!= ((void *)0))
26 for (ix
= 0; ix
!= ((128 + (8 * 8 * 1u) - 1) / (8 * 8 * 1u)); ix
++)
28 count
+= __builtin_popcountl (elt
->bits
[ix
]);
35 /* Verify that VRP simplified an "if" statement. */
36 /* { dg-final { scan-tree-dump "Folded into: if.*" "vrp1"} } */
37 /* { dg-final { cleanup-tree-dump "vrp1" } } */