1/* Test whether all of the 64-bit function specific options are accepted
2   without error.  */
3/* { dg-do compile } */
4/* { dg-require-effective-target lp64 } */
5
6extern void test_abm (void)			__attribute__((__target__("abm")));
7extern void test_aes (void)			__attribute__((__target__("aes")));
8extern void test_mmx (void)			__attribute__((__target__("mmx")));
9extern void test_pclmul (void)			__attribute__((__target__("pclmul")));
10extern void test_popcnt (void)			__attribute__((__target__("popcnt")));
11extern void test_recip (void)			__attribute__((__target__("recip")));
12extern void test_sse (void)			__attribute__((__target__("sse")));
13extern void test_sse2 (void)			__attribute__((__target__("sse2")));
14extern void test_sse3 (void)			__attribute__((__target__("sse3")));
15extern void test_sse4 (void)			__attribute__((__target__("sse4")));
16extern void test_sse4_1 (void)			__attribute__((__target__("sse4.1")));
17extern void test_sse4_2 (void)			__attribute__((__target__("sse4.2")));
18extern void test_sse4a (void)			__attribute__((__target__("sse4a")));
19extern void test_fma4 (void)			__attribute__((__target__("fma4")));
20extern void test_ssse3 (void)			__attribute__((__target__("ssse3")));
21
22extern void test_no_abm (void)			__attribute__((__target__("no-abm")));
23extern void test_no_aes (void)			__attribute__((__target__("no-aes")));
24extern void test_no_mmx (void)			__attribute__((__target__("no-mmx")));
25extern void test_no_pclmul (void)		__attribute__((__target__("no-pclmul")));
26extern void test_no_popcnt (void)		__attribute__((__target__("no-popcnt")));
27extern void test_no_recip (void)		__attribute__((__target__("no-recip")));
28extern void test_no_sse (void)			__attribute__((__target__("no-sse")));
29extern void test_no_sse2 (void)			__attribute__((__target__("no-sse2")));
30extern void test_no_sse3 (void)			__attribute__((__target__("no-sse3")));
31extern void test_no_sse4 (void)			__attribute__((__target__("no-sse4")));
32extern void test_no_sse4_1 (void)		__attribute__((__target__("no-sse4.1")));
33extern void test_no_sse4_2 (void)		__attribute__((__target__("no-sse4.2")));
34extern void test_no_sse4a (void)		__attribute__((__target__("no-sse4a")));
35extern void test_no_fma4 (void)			__attribute__((__target__("no-fma4")));
36extern void test_no_ssse3 (void)		__attribute__((__target__("no-ssse3")));
37
38extern void test_arch_nocona (void)		__attribute__((__target__("arch=nocona")));
39extern void test_arch_core2 (void)		__attribute__((__target__("arch=core2")));
40extern void test_arch_k8 (void)			__attribute__((__target__("arch=k8")));
41extern void test_arch_k8_sse3 (void)		__attribute__((__target__("arch=k8-sse3")));
42extern void test_arch_opteron (void)		__attribute__((__target__("arch=opteron")));
43extern void test_arch_opteron_sse3 (void)	__attribute__((__target__("arch=opteron-sse3")));
44extern void test_arch_athlon64 (void)		__attribute__((__target__("arch=athlon64")));
45extern void test_arch_athlon64_sse3 (void)	__attribute__((__target__("arch=athlon64-sse3")));
46extern void test_arch_athlon_fx (void)		__attribute__((__target__("arch=athlon-fx")));
47extern void test_arch_amdfam10 (void)		__attribute__((__target__("arch=amdfam10")));
48extern void test_arch_barcelona (void)		__attribute__((__target__("arch=barcelona")));
49extern void test_arch_foo (void)		__attribute__((__target__("arch=foo"))); /* { dg-error "bad value" } */
50
51extern void test_tune_nocona (void)		__attribute__((__target__("tune=nocona")));
52extern void test_tune_core2 (void)		__attribute__((__target__("tune=core2")));
53extern void test_tune_k8 (void)			__attribute__((__target__("tune=k8")));
54extern void test_tune_k8_sse3 (void)		__attribute__((__target__("tune=k8-sse3")));
55extern void test_tune_opteron (void)		__attribute__((__target__("tune=opteron")));
56extern void test_tune_opteron_sse3 (void)	__attribute__((__target__("tune=opteron-sse3")));
57extern void test_tune_athlon64 (void)		__attribute__((__target__("tune=athlon64")));
58extern void test_tune_athlon64_sse3 (void)	__attribute__((__target__("tune=athlon64-sse3")));
59extern void test_tune_athlon_fx (void)		__attribute__((__target__("tune=athlon-fx")));
60extern void test_tune_amdfam10 (void)		__attribute__((__target__("tune=amdfam10")));
61extern void test_tune_barcelona (void)		__attribute__((__target__("tune=barcelona")));
62extern void test_tune_generic (void)		__attribute__((__target__("tune=generic")));
63extern void test_tune_foo (void)		__attribute__((__target__("tune=foo"))); /* { dg-error "bad value" } */
64
65extern void test_fpmath_sse (void)		__attribute__((__target__("sse2,fpmath=sse")));
66extern void test_fpmath_387 (void)		__attribute__((__target__("sse2,fpmath=387")));
67extern void test_fpmath_sse_387 (void)		__attribute__((__target__("sse2,fpmath=sse+387")));
68extern void test_fpmath_387_sse (void)		__attribute__((__target__("sse2,fpmath=387+sse")));
69extern void test_fpmath_both (void)		__attribute__((__target__("sse2,fpmath=both")));
70