blob: 0227d8ff402da273071d7f4479e4f11982daa591 [file] [log] [blame]
/* { 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 ();
}