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