]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/i386/builtin_target.c
This patch adds new builtins to check for cpu type and features.
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / i386 / builtin_target.c
1 /* This test checks if the __builtin_cpu_is and __builtin_cpu_supports calls
2 are recognized. */
3
4 /* { dg-do run } */
5
6 #include <assert.h>
7
8 int
9 fn1 ()
10 {
11 /* Check CPU Features. */
12 assert (__builtin_cpu_supports ("cmov") >= 0);
13
14 assert (__builtin_cpu_supports ("mmx") >= 0);
15
16 assert (__builtin_cpu_supports ("popcnt") >= 0);
17
18 assert (__builtin_cpu_supports ("sse") >= 0);
19
20 assert (__builtin_cpu_supports ("sse2") >= 0);
21
22 assert (__builtin_cpu_supports ("sse3") >= 0);
23
24 assert (__builtin_cpu_supports ("ssse3") >= 0);
25
26 assert (__builtin_cpu_supports ("sse4.1") >= 0);
27
28 assert (__builtin_cpu_supports ("sse4.2") >= 0);
29
30 assert (__builtin_cpu_supports ("avx") >= 0);
31
32 /* Check CPU type. */
33 assert (__builtin_cpu_is ("amd") >= 0);
34
35 assert (__builtin_cpu_is ("intel") >= 0);
36
37 assert (__builtin_cpu_is ("atom") >= 0);
38
39 assert (__builtin_cpu_is ("core2") >= 0);
40
41 assert (__builtin_cpu_is ("corei7") >= 0);
42
43 assert (__builtin_cpu_is ("nehalem") >= 0);
44
45 assert (__builtin_cpu_is ("westmere") >= 0);
46
47 assert (__builtin_cpu_is ("sandybridge") >= 0);
48
49 assert (__builtin_cpu_is ("amdfam10h") >= 0);
50
51 assert (__builtin_cpu_is ("barcelona") >= 0);
52
53 assert (__builtin_cpu_is ("shanghai") >= 0);
54
55 assert (__builtin_cpu_is ("istanbul") >= 0);
56
57 assert (__builtin_cpu_is ("amdfam15h") >= 0);
58
59 assert (__builtin_cpu_is ("bdver1") >= 0);
60
61 assert (__builtin_cpu_is ("bdver2") >= 0);
62
63 return 0;
64 }
65
66 int main ()
67 {
68 __builtin_cpu_init ();
69 return fn1 ();
70 }