1/* { dg-do compile } */
2/* { dg-options "-O2 -mavx -mtune=generic -dp" } */
3
4typedef struct bitmap_element_def {
5  struct bitmap_element_def *next;
6  unsigned int indx;
7} bitmap_element;
8typedef struct bitmap_head_def {
9  bitmap_element *first;
10  bitmap_element *current;
11  unsigned int indx;
12} bitmap_head;
13typedef struct bitmap_head_def *bitmap;
14typedef const struct bitmap_head_def *const_bitmap;
15extern void bar (void) __attribute__ ((__noreturn__));
16unsigned char
17bitmap_and_compl_into (bitmap a, const_bitmap b)
18{
19  bitmap_element *a_elt = a->first;
20  const bitmap_element *b_elt = b->first;
21  if (a == b)
22    {
23      if ((!(a)->first))
24	return 0;
25      else
26	return 1;
27    }
28  while (a_elt && b_elt)
29    {
30      if (a_elt->indx < b_elt->indx)
31	a_elt = a_elt->next;
32    }
33  if (a->indx == a->current->indx)
34    bar ();
35  return 0;
36}
37
38/* { dg-final { scan-assembler-not "avx_vzeroupper" } } */
39