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