diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/i386/avx-vzeroupper-24.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/i386/avx-vzeroupper-24.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx-vzeroupper-24.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx-vzeroupper-24.c new file mode 100644 index 000000000..4fdd37446 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx-vzeroupper-24.c @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx -mtune=generic -dp" } */ + +typedef struct bitmap_element_def { + struct bitmap_element_def *next; + unsigned int indx; +} bitmap_element; +typedef struct bitmap_head_def { + bitmap_element *first; + bitmap_element *current; + unsigned int indx; +} bitmap_head; +typedef struct bitmap_head_def *bitmap; +typedef const struct bitmap_head_def *const_bitmap; +extern void bar (void) __attribute__ ((__noreturn__)); +unsigned char +bitmap_and_compl_into (bitmap a, const_bitmap b) +{ + bitmap_element *a_elt = a->first; + const bitmap_element *b_elt = b->first; + if (a == b) + { + if ((!(a)->first)) + return 0; + else + return 1; + } + while (a_elt && b_elt) + { + if (a_elt->indx < b_elt->indx) + a_elt = a_elt->next; + } + if (a->indx == a->current->indx) + bar (); + return 0; +} + +/* { dg-final { scan-assembler-not "avx_vzeroupper" } } */ |