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)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