1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mavx -mtune=generic -dp" } */
3 
4 typedef struct bitmap_element_def {
5   struct bitmap_element_def *next;
6   unsigned int indx;
7 } bitmap_element;
8 typedef struct bitmap_head_def {
9   bitmap_element *first;
10   bitmap_element *current;
11   unsigned int indx;
12 } bitmap_head;
13 typedef struct bitmap_head_def *bitmap;
14 typedef const struct bitmap_head_def *const_bitmap;
15 extern void bar (void) __attribute__ ((__noreturn__));
16 unsigned char
bitmap_and_compl_into(bitmap a,const_bitmap b)17 bitmap_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