Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/tree-ssa/vrp88.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-vrp1-details" } */ typedef const struct bitmap_head_def *const_bitmap; typedef unsigned long BITMAP_WORD; typedef struct bitmap_element_def { struct bitmap_element_def *next; BITMAP_WORD bits[((128 + (8 * 8 * 1u) - 1) / (8 * 8 * 1u))]; } bitmap_element; typedef struct bitmap_head_def { bitmap_element *first; } bitmap_head; unsigned char bitmap_single_bit_set_p (const_bitmap a) { unsigned long count = 0; const bitmap_element *elt; unsigned ix; if ((!(a)->first)) return 0; elt = a->first; if (elt->next != ((void *)0)) return 0; for (ix = 0; ix != ((128 + (8 * 8 * 1u) - 1) / (8 * 8 * 1u)); ix++) { count += __builtin_popcountl (elt->bits[ix]); if (count > 1) return 0; } return count == 1; } /* Verify that VRP simplified an "if" statement. */ /* { dg-final { scan-tree-dump "Folded into: if.*" "vrp1"} } */