/* { dg-do run } */ /* { dg-options "-mno-sse2 -mno-popcnt -mno-avx" } */ __attribute__((always_inline,target("avx2"))) __inline int c1 () { return 0; } __attribute__((always_inline,target("avx"))) __inline int c2 () { return 0; } __attribute__((always_inline,target("popcnt"))) __inline int c3 () { return 0; } __attribute__((always_inline,target("sse4.2"))) __inline int c4 () { return 0; } __attribute__((always_inline,target("sse4.1"))) __inline int c5 () { return 0; } __attribute__((always_inline,target("ssse3"))) __inline int c6 () { return 0; } __attribute__((always_inline,target("sse3"))) __inline int c7 () { return 0; } __attribute__((always_inline,target("sse2"))) __inline int c8 () { return 0; } int nop () { return 1; } #pragma GCC push_options #pragma GCC target("sse2") int C8 () { return c8 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("sse3") int C7 () { return c7 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("ssse3") int C6 () { return c6 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("sse4.1") int C5 () { return c5 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("sse4.2") int C4 () { return c4 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("popcnt") int C3 () { return c3 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("avx") int C2 () { return c2 (); } #pragma GCC pop_options #pragma GCC push_options #pragma GCC target("avx2") int C1 () { return c1 (); } #pragma GCC pop_options int main () { return C1 () + C2 () + C3 () + C4 () + C5 () + C6 () + C7 () + C8 (); }