2 /* { dg-options "-mno-sse2 -mno-popcnt -mno-avx" } */
5 __attribute__((always_inline
,target("avx2")))
11 __attribute__((always_inline
,target("avx")))
17 __attribute__((always_inline
,target("popcnt")))
23 __attribute__((always_inline
,target("sse4.2")))
29 __attribute__((always_inline
,target("sse4.1")))
35 __attribute__((always_inline
,target("ssse3")))
41 __attribute__((always_inline
,target("sse3")))
47 __attribute__((always_inline
,target("sse2")))
58 #pragma GCC push_options
59 #pragma GCC target("sse2")
64 #pragma GCC pop_options
67 #pragma GCC push_options
68 #pragma GCC target("sse3")
73 #pragma GCC pop_options
76 #pragma GCC push_options
77 #pragma GCC target("ssse3")
82 #pragma GCC pop_options
85 #pragma GCC push_options
86 #pragma GCC target("sse4.1")
91 #pragma GCC pop_options
94 #pragma GCC push_options
95 #pragma GCC target("sse4.2")
100 #pragma GCC pop_options
103 #pragma GCC push_options
104 #pragma GCC target("popcnt")
109 #pragma GCC pop_options
112 #pragma GCC push_options
113 #pragma GCC target("avx")
118 #pragma GCC pop_options
121 #pragma GCC push_options
122 #pragma GCC target("avx2")
127 #pragma GCC pop_options
131 return C1 () + C2 () + C3 () + C4 () + C5 () + C6 () + C7 () + C8 ();