]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/i386/funcspec-5.c
Add ability to set target options (ix86 only) and optimization options on a function...
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / i386 / funcspec-5.c
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 ilp32 } */
5
6 extern void test_abm (void) __attribute__((__option__("abm")));
7 extern void test_aes (void) __attribute__((__option__("aes")));
8 extern void test_fused_madd (void) __attribute__((__option__("fused-madd")));
9 extern void test_mmx (void) __attribute__((__option__("mmx")));
10 extern void test_pclmul (void) __attribute__((__option__("pclmul")));
11 extern void test_popcnt (void) __attribute__((__option__("popcnt")));
12 extern void test_recip (void) __attribute__((__option__("recip")));
13 extern void test_sse (void) __attribute__((__option__("sse")));
14 extern void test_sse2 (void) __attribute__((__option__("sse2")));
15 extern void test_sse3 (void) __attribute__((__option__("sse3")));
16 extern void test_sse4 (void) __attribute__((__option__("sse4")));
17 extern void test_sse4_1 (void) __attribute__((__option__("sse4.1")));
18 extern void test_sse4_2 (void) __attribute__((__option__("sse4.2")));
19 extern void test_sse4a (void) __attribute__((__option__("sse4a")));
20 extern void test_sse5 (void) __attribute__((__option__("sse5")));
21 extern void test_ssse3 (void) __attribute__((__option__("ssse3")));
22
23 extern void test_no_abm (void) __attribute__((__option__("no-abm")));
24 extern void test_no_aes (void) __attribute__((__option__("no-aes")));
25 extern void test_no_fused_madd (void) __attribute__((__option__("no-fused-madd")));
26 extern void test_no_mmx (void) __attribute__((__option__("no-mmx")));
27 extern void test_no_pclmul (void) __attribute__((__option__("no-pclmul")));
28 extern void test_no_popcnt (void) __attribute__((__option__("no-popcnt")));
29 extern void test_no_recip (void) __attribute__((__option__("no-recip")));
30 extern void test_no_sse (void) __attribute__((__option__("no-sse")));
31 extern void test_no_sse2 (void) __attribute__((__option__("no-sse2")));
32 extern void test_no_sse3 (void) __attribute__((__option__("no-sse3")));
33 extern void test_no_sse4 (void) __attribute__((__option__("no-sse4")));
34 extern void test_no_sse4_1 (void) __attribute__((__option__("no-sse4.1")));
35 extern void test_no_sse4_2 (void) __attribute__((__option__("no-sse4.2")));
36 extern void test_no_sse4a (void) __attribute__((__option__("no-sse4a")));
37 extern void test_no_sse5 (void) __attribute__((__option__("no-sse5")));
38 extern void test_no_ssse3 (void) __attribute__((__option__("no-ssse3")));
39
40 extern void test_arch_i386 (void) __attribute__((__option__("arch=i386")));
41 extern void test_arch_i486 (void) __attribute__((__option__("arch=i486")));
42 extern void test_arch_i586 (void) __attribute__((__option__("arch=i586")));
43 extern void test_arch_pentium (void) __attribute__((__option__("arch=pentium")));
44 extern void test_arch_pentium_mmx (void) __attribute__((__option__("arch=pentium-mmx")));
45 extern void test_arch_winchip_c6 (void) __attribute__((__option__("arch=winchip-c6")));
46 extern void test_arch_winchip2 (void) __attribute__((__option__("arch=winchip2")));
47 extern void test_arch_c3 (void) __attribute__((__option__("arch=c3")));
48 extern void test_arch_c3_2 (void) __attribute__((__option__("arch=c3-2")));
49 extern void test_arch_i686 (void) __attribute__((__option__("arch=i686")));
50 extern void test_arch_pentiumpro (void) __attribute__((__option__("arch=pentiumpro")));
51 extern void test_arch_pentium2 (void) __attribute__((__option__("arch=pentium2")));
52 extern void test_arch_pentium3 (void) __attribute__((__option__("arch=pentium3")));
53 extern void test_arch_pentium3m (void) __attribute__((__option__("arch=pentium3m")));
54 extern void test_arch_pentium_m (void) __attribute__((__option__("arch=pentium-m")));
55 extern void test_arch_pentium4 (void) __attribute__((__option__("arch=pentium4")));
56 extern void test_arch_pentium4m (void) __attribute__((__option__("arch=pentium4m")));
57 extern void test_arch_prescott (void) __attribute__((__option__("arch=prescott")));
58 extern void test_arch_nocona (void) __attribute__((__option__("arch=nocona")));
59 extern void test_arch_core2 (void) __attribute__((__option__("arch=core2")));
60 extern void test_arch_geode (void) __attribute__((__option__("arch=geode")));
61 extern void test_arch_k6 (void) __attribute__((__option__("arch=k6")));
62 extern void test_arch_k6_2 (void) __attribute__((__option__("arch=k6-2")));
63 extern void test_arch_k6_3 (void) __attribute__((__option__("arch=k6-3")));
64 extern void test_arch_athlon (void) __attribute__((__option__("arch=athlon")));
65 extern void test_arch_athlon_tbird (void) __attribute__((__option__("arch=athlon-tbird")));
66 extern void test_arch_athlon_4 (void) __attribute__((__option__("arch=athlon-4")));
67 extern void test_arch_athlon_xp (void) __attribute__((__option__("arch=athlon-xp")));
68 extern void test_arch_athlon_mp (void) __attribute__((__option__("arch=athlon-mp")));
69 extern void test_arch_k8 (void) __attribute__((__option__("arch=k8")));
70 extern void test_arch_k8_sse3 (void) __attribute__((__option__("arch=k8-sse3")));
71 extern void test_arch_opteron (void) __attribute__((__option__("arch=opteron")));
72 extern void test_arch_opteron_sse3 (void) __attribute__((__option__("arch=opteron-sse3")));
73 extern void test_arch_athlon64 (void) __attribute__((__option__("arch=athlon64")));
74 extern void test_arch_athlon64_sse3 (void) __attribute__((__option__("arch=athlon64-sse3")));
75 extern void test_arch_athlon_fx (void) __attribute__((__option__("arch=athlon-fx")));
76 extern void test_arch_amdfam10 (void) __attribute__((__option__("arch=amdfam10")));
77 extern void test_arch_barcelona (void) __attribute__((__option__("arch=barcelona")));
78 extern void test_arch_foo (void) __attribute__((__option__("arch=foo"))); /* { dg-error "bad value" } */
79
80 extern void test_tune_i386 (void) __attribute__((__option__("tune=i386")));
81 extern void test_tune_i486 (void) __attribute__((__option__("tune=i486")));
82 extern void test_tune_i586 (void) __attribute__((__option__("tune=i586")));
83 extern void test_tune_pentium (void) __attribute__((__option__("tune=pentium")));
84 extern void test_tune_pentium_mmx (void) __attribute__((__option__("tune=pentium-mmx")));
85 extern void test_tune_winchip_c6 (void) __attribute__((__option__("tune=winchip-c6")));
86 extern void test_tune_winchip2 (void) __attribute__((__option__("tune=winchip2")));
87 extern void test_tune_c3 (void) __attribute__((__option__("tune=c3")));
88 extern void test_tune_c3_2 (void) __attribute__((__option__("tune=c3-2")));
89 extern void test_tune_i686 (void) __attribute__((__option__("tune=i686")));
90 extern void test_tune_pentiumpro (void) __attribute__((__option__("tune=pentiumpro")));
91 extern void test_tune_pentium2 (void) __attribute__((__option__("tune=pentium2")));
92 extern void test_tune_pentium3 (void) __attribute__((__option__("tune=pentium3")));
93 extern void test_tune_pentium3m (void) __attribute__((__option__("tune=pentium3m")));
94 extern void test_tune_pentium_m (void) __attribute__((__option__("tune=pentium-m")));
95 extern void test_tune_pentium4 (void) __attribute__((__option__("tune=pentium4")));
96 extern void test_tune_pentium4m (void) __attribute__((__option__("tune=pentium4m")));
97 extern void test_tune_prescott (void) __attribute__((__option__("tune=prescott")));
98 extern void test_tune_nocona (void) __attribute__((__option__("tune=nocona")));
99 extern void test_tune_core2 (void) __attribute__((__option__("tune=core2")));
100 extern void test_tune_geode (void) __attribute__((__option__("tune=geode")));
101 extern void test_tune_k6 (void) __attribute__((__option__("tune=k6")));
102 extern void test_tune_k6_2 (void) __attribute__((__option__("tune=k6-2")));
103 extern void test_tune_k6_3 (void) __attribute__((__option__("tune=k6-3")));
104 extern void test_tune_athlon (void) __attribute__((__option__("tune=athlon")));
105 extern void test_tune_athlon_tbird (void) __attribute__((__option__("tune=athlon-tbird")));
106 extern void test_tune_athlon_4 (void) __attribute__((__option__("tune=athlon-4")));
107 extern void test_tune_athlon_xp (void) __attribute__((__option__("tune=athlon-xp")));
108 extern void test_tune_athlon_mp (void) __attribute__((__option__("tune=athlon-mp")));
109 extern void test_tune_k8 (void) __attribute__((__option__("tune=k8")));
110 extern void test_tune_k8_sse3 (void) __attribute__((__option__("tune=k8-sse3")));
111 extern void test_tune_opteron (void) __attribute__((__option__("tune=opteron")));
112 extern void test_tune_opteron_sse3 (void) __attribute__((__option__("tune=opteron-sse3")));
113 extern void test_tune_athlon64 (void) __attribute__((__option__("tune=athlon64")));
114 extern void test_tune_athlon64_sse3 (void) __attribute__((__option__("tune=athlon64-sse3")));
115 extern void test_tune_athlon_fx (void) __attribute__((__option__("tune=athlon-fx")));
116 extern void test_tune_amdfam10 (void) __attribute__((__option__("tune=amdfam10")));
117 extern void test_tune_barcelona (void) __attribute__((__option__("tune=barcelona")));
118 extern void test_tune_generic (void) __attribute__((__option__("tune=generic")));
119 extern void test_tune_foo (void) __attribute__((__option__("tune=foo"))); /* { dg-error "bad value" } */
120
121 extern void test_fpmath_sse (void) __attribute__((__option__("sse2,fpmath=sse")));
122 extern void test_fpmath_387 (void) __attribute__((__option__("sse2,fpmath=387")));
123 extern void test_fpmath_sse_387 (void) __attribute__((__option__("sse2,fpmath=sse+387")));
124 extern void test_fpmath_387_sse (void) __attribute__((__option__("sse2,fpmath=387+sse")));
125 extern void test_fpmath_both (void) __attribute__((__option__("sse2,fpmath=both")));