1/* Test whether all of the 32-bit function specific options are accepted
2   without error.  */
3/* { dg-do compile } */
4/* { dg-require-effective-target ia32 } */
5
6extern void test_abm (void)			__attribute__((__target__("abm")));
7extern void test_aes (void)			__attribute__((__target__("aes")));
8extern void test_bmi (void)			__attribute__((__target__("bmi")));
9extern void test_mmx (void)			__attribute__((__target__("mmx")));
10extern void test_pclmul (void)			__attribute__((__target__("pclmul")));
11extern void test_popcnt (void)			__attribute__((__target__("popcnt")));
12extern void test_recip (void)			__attribute__((__target__("recip")));
13extern void test_sse (void)			__attribute__((__target__("sse")));
14extern void test_sse2 (void)			__attribute__((__target__("sse2")));
15extern void test_sse3 (void)			__attribute__((__target__("sse3")));
16extern void test_sse4 (void)			__attribute__((__target__("sse4")));
17extern void test_sse4_1 (void)			__attribute__((__target__("sse4.1")));
18extern void test_sse4_2 (void)			__attribute__((__target__("sse4.2")));
19extern void test_sse4a (void)			__attribute__((__target__("sse4a")));
20extern void test_fma (void)			__attribute__((__target__("fma")));
21extern void test_fma4 (void)			__attribute__((__target__("fma4")));
22extern void test_xop (void)			__attribute__((__target__("xop")));
23extern void test_ssse3 (void)			__attribute__((__target__("ssse3")));
24extern void test_tbm (void)			__attribute__((__target__("tbm")));
25extern void test_avx (void)			__attribute__((__target__("avx")));
26extern void test_avx2 (void)			__attribute__((__target__("avx2")));
27extern void test_avx512f (void)			__attribute__((__target__("avx512f")));
28extern void test_bmi (void)			__attribute__((__target__("bmi")));
29extern void test_bmi2 (void)			__attribute__((__target__("bmi2")));
30
31extern void test_no_abm (void)			__attribute__((__target__("no-abm")));
32extern void test_no_aes (void)			__attribute__((__target__("no-aes")));
33extern void test_no_bmi (void)			__attribute__((__target__("no-bmi")));
34extern void test_no_mmx (void)			__attribute__((__target__("no-mmx")));
35extern void test_no_pclmul (void)		__attribute__((__target__("no-pclmul")));
36extern void test_no_popcnt (void)		__attribute__((__target__("no-popcnt")));
37extern void test_no_recip (void)		__attribute__((__target__("no-recip")));
38extern void test_no_sse (void)			__attribute__((__target__("no-sse")));
39extern void test_no_sse2 (void)			__attribute__((__target__("no-sse2")));
40extern void test_no_sse3 (void)			__attribute__((__target__("no-sse3")));
41extern void test_no_sse4 (void)			__attribute__((__target__("no-sse4")));
42extern void test_no_sse4_1 (void)		__attribute__((__target__("no-sse4.1")));
43extern void test_no_sse4_2 (void)		__attribute__((__target__("no-sse4.2")));
44extern void test_no_sse4a (void)		__attribute__((__target__("no-sse4a")));
45extern void test_no_fma (void)			__attribute__((__target__("no-fma")));
46extern void test_no_fma4 (void)			__attribute__((__target__("no-fma4")));
47extern void test_no_xop (void)			__attribute__((__target__("no-xop")));
48extern void test_no_ssse3 (void)		__attribute__((__target__("no-ssse3")));
49extern void test_no_tbm (void)			__attribute__((__target__("no-tbm")));
50extern void test_no_avx (void)			__attribute__((__target__("no-avx")));
51extern void test_no_avx2 (void)   		__attribute__((__target__("no-avx2")));
52extern void test_no_avx512f (void)   		__attribute__((__target__("no-avx512f")));
53extern void test_no_bmi (void)			__attribute__((__target__("no-bmi")));
54extern void test_no_bmi2 (void)			__attribute__((__target__("no-bmi2")));
55
56extern void test_arch_i386 (void)		__attribute__((__target__("arch=i386")));
57extern void test_arch_i486 (void)		__attribute__((__target__("arch=i486")));
58extern void test_arch_i586 (void)		__attribute__((__target__("arch=i586")));
59extern void test_arch_pentium (void)		__attribute__((__target__("arch=pentium")));
60extern void test_arch_pentium_mmx (void)	__attribute__((__target__("arch=pentium-mmx")));
61extern void test_arch_winchip_c6 (void)		__attribute__((__target__("arch=winchip-c6")));
62extern void test_arch_winchip2 (void)		__attribute__((__target__("arch=winchip2")));
63extern void test_arch_c3 (void)			__attribute__((__target__("arch=c3")));
64extern void test_arch_c3_2 (void)		__attribute__((__target__("arch=c3-2")));
65extern void test_arch_i686 (void)		__attribute__((__target__("arch=i686")));
66extern void test_arch_pentiumpro (void)		__attribute__((__target__("arch=pentiumpro")));
67extern void test_arch_pentium2 (void)		__attribute__((__target__("arch=pentium2")));
68extern void test_arch_pentium3 (void)		__attribute__((__target__("arch=pentium3")));
69extern void test_arch_pentium3m (void)		__attribute__((__target__("arch=pentium3m")));
70extern void test_arch_pentium_m (void)		__attribute__((__target__("arch=pentium-m")));
71extern void test_arch_pentium4 (void)		__attribute__((__target__("arch=pentium4")));
72extern void test_arch_pentium4m (void)		__attribute__((__target__("arch=pentium4m")));
73extern void test_arch_prescott (void)		__attribute__((__target__("arch=prescott")));
74extern void test_arch_nocona (void)		__attribute__((__target__("arch=nocona")));
75extern void test_arch_core2 (void)		__attribute__((__target__("arch=core2")));
76extern void test_arch_corei7 (void)		__attribute__((__target__("arch=corei7")));
77extern void test_arch_corei7_avx (void)		__attribute__((__target__("arch=corei7-avx")));
78extern void test_arch_core_avx2 (void)		__attribute__((__target__("arch=core-avx2")));
79extern void test_arch_knl (void)		__attribute__((__target__("arch=knl")));
80extern void test_arch_geode (void)		__attribute__((__target__("arch=geode")));
81extern void test_arch_k6 (void)			__attribute__((__target__("arch=k6")));
82extern void test_arch_k6_2 (void)		__attribute__((__target__("arch=k6-2")));
83extern void test_arch_k6_3 (void)		__attribute__((__target__("arch=k6-3")));
84extern void test_arch_athlon (void)		__attribute__((__target__("arch=athlon")));
85extern void test_arch_athlon_tbird (void)	__attribute__((__target__("arch=athlon-tbird")));
86extern void test_arch_athlon_4 (void)		__attribute__((__target__("arch=athlon-4")));
87extern void test_arch_athlon_xp (void)		__attribute__((__target__("arch=athlon-xp")));
88extern void test_arch_athlon_mp (void)		__attribute__((__target__("arch=athlon-mp")));
89extern void test_arch_k8 (void)			__attribute__((__target__("arch=k8")));
90extern void test_arch_k8_sse3 (void)		__attribute__((__target__("arch=k8-sse3")));
91extern void test_arch_opteron (void)		__attribute__((__target__("arch=opteron")));
92extern void test_arch_opteron_sse3 (void)	__attribute__((__target__("arch=opteron-sse3")));
93extern void test_arch_athlon64 (void)		__attribute__((__target__("arch=athlon64")));
94extern void test_arch_athlon64_sse3 (void)	__attribute__((__target__("arch=athlon64-sse3")));
95extern void test_arch_athlon_fx (void)		__attribute__((__target__("arch=athlon-fx")));
96extern void test_arch_amdfam10 (void)		__attribute__((__target__("arch=amdfam10")));
97extern void test_arch_barcelona (void)		__attribute__((__target__("arch=barcelona")));
98extern void test_arch_bdver1 (void)		__attribute__((__target__("arch=bdver1")));
99extern void test_arch_bdver2 (void)		__attribute__((__target__("arch=bdver2")));
100extern void test_arch_bdver3 (void)		__attribute__((__target__("arch=bdver3")));
101extern void test_arch_foo (void)		__attribute__((__target__("arch=foo"))); /* { dg-error "bad value" } */
102
103extern void test_tune_i386 (void)		__attribute__((__target__("tune=i386")));
104extern void test_tune_i486 (void)		__attribute__((__target__("tune=i486")));
105extern void test_tune_i586 (void)		__attribute__((__target__("tune=i586")));
106extern void test_tune_pentium (void)		__attribute__((__target__("tune=pentium")));
107extern void test_tune_pentium_mmx (void)	__attribute__((__target__("tune=pentium-mmx")));
108extern void test_tune_winchip_c6 (void)		__attribute__((__target__("tune=winchip-c6")));
109extern void test_tune_winchip2 (void)		__attribute__((__target__("tune=winchip2")));
110extern void test_tune_c3 (void)			__attribute__((__target__("tune=c3")));
111extern void test_tune_c3_2 (void)		__attribute__((__target__("tune=c3-2")));
112extern void test_tune_i686 (void)		__attribute__((__target__("tune=i686")));
113extern void test_tune_pentiumpro (void)		__attribute__((__target__("tune=pentiumpro")));
114extern void test_tune_pentium2 (void)		__attribute__((__target__("tune=pentium2")));
115extern void test_tune_pentium3 (void)		__attribute__((__target__("tune=pentium3")));
116extern void test_tune_pentium3m (void)		__attribute__((__target__("tune=pentium3m")));
117extern void test_tune_pentium_m (void)		__attribute__((__target__("tune=pentium-m")));
118extern void test_tune_pentium4 (void)		__attribute__((__target__("tune=pentium4")));
119extern void test_tune_pentium4m (void)		__attribute__((__target__("tune=pentium4m")));
120extern void test_tune_prescott (void)		__attribute__((__target__("tune=prescott")));
121extern void test_tune_nocona (void)		__attribute__((__target__("tune=nocona")));
122extern void test_tune_core2 (void)		__attribute__((__target__("tune=core2")));
123extern void test_tune_corei7 (void)		__attribute__((__target__("tune=corei7")));
124extern void test_tune_corei7_avx (void)		__attribute__((__target__("tune=corei7-avx")));
125extern void test_tune_core_avx2 (void)		__attribute__((__target__("tune=core-avx2")));
126extern void test_tune_geode (void)		__attribute__((__target__("tune=geode")));
127extern void test_tune_k6 (void)			__attribute__((__target__("tune=k6")));
128extern void test_tune_k6_2 (void)		__attribute__((__target__("tune=k6-2")));
129extern void test_tune_k6_3 (void)		__attribute__((__target__("tune=k6-3")));
130extern void test_tune_athlon (void)		__attribute__((__target__("tune=athlon")));
131extern void test_tune_athlon_tbird (void)	__attribute__((__target__("tune=athlon-tbird")));
132extern void test_tune_athlon_4 (void)		__attribute__((__target__("tune=athlon-4")));
133extern void test_tune_athlon_xp (void)		__attribute__((__target__("tune=athlon-xp")));
134extern void test_tune_athlon_mp (void)		__attribute__((__target__("tune=athlon-mp")));
135extern void test_tune_k8 (void)			__attribute__((__target__("tune=k8")));
136extern void test_tune_k8_sse3 (void)		__attribute__((__target__("tune=k8-sse3")));
137extern void test_tune_opteron (void)		__attribute__((__target__("tune=opteron")));
138extern void test_tune_opteron_sse3 (void)	__attribute__((__target__("tune=opteron-sse3")));
139extern void test_tune_athlon64 (void)		__attribute__((__target__("tune=athlon64")));
140extern void test_tune_athlon64_sse3 (void)	__attribute__((__target__("tune=athlon64-sse3")));
141extern void test_tune_athlon_fx (void)		__attribute__((__target__("tune=athlon-fx")));
142extern void test_tune_amdfam10 (void)		__attribute__((__target__("tune=amdfam10")));
143extern void test_tune_barcelona (void)		__attribute__((__target__("tune=barcelona")));
144extern void test_tune_bdver1 (void)		__attribute__((__target__("tune=bdver1")));
145extern void test_tune_bdver2 (void)		__attribute__((__target__("tune=bdver2")));
146extern void test_tune_bdver3 (void)		__attribute__((__target__("tune=bdver3")));
147extern void test_tune_generic (void)		__attribute__((__target__("tune=generic")));
148extern void test_tune_foo (void)		__attribute__((__target__("tune=foo"))); /* { dg-error "bad value" } */
149
150extern void test_fpmath_sse (void)		__attribute__((__target__("sse2,fpmath=sse")));
151extern void test_fpmath_387 (void)		__attribute__((__target__("sse2,fpmath=387")));
152extern void test_fpmath_sse_387 (void)		__attribute__((__target__("sse2,fpmath=sse+387")));
153extern void test_fpmath_387_sse (void)		__attribute__((__target__("sse2,fpmath=387+sse")));
154extern void test_fpmath_both (void)		__attribute__((__target__("sse2,fpmath=both")));
155