annotate clang/test/CodeGen/target-builtin-noerror.c @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 0572611fdcc8
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // REQUIRES: x86-registered-target
anatofuz
parents:
diff changeset
2 // RUN: %clang_cc1 %s -triple=x86_64-linux-gnu -S -o -
anatofuz
parents:
diff changeset
3 #define __MM_MALLOC_H
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 #include <x86intrin.h>
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // No warnings.
anatofuz
parents:
diff changeset
8 extern __m256i a;
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
9 int __attribute__((target("avx"))) bar() {
150
anatofuz
parents:
diff changeset
10 return _mm256_extract_epi32(a, 3);
anatofuz
parents:
diff changeset
11 }
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 int baz() {
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
14 return bar();
150
anatofuz
parents:
diff changeset
15 }
anatofuz
parents:
diff changeset
16
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
17 int __attribute__((target("avx"))) qq_avx() {
150
anatofuz
parents:
diff changeset
18 return _mm256_extract_epi32(a, 3);
anatofuz
parents:
diff changeset
19 }
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 int qq_noavx() {
anatofuz
parents:
diff changeset
22 return 0;
anatofuz
parents:
diff changeset
23 }
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 extern __m256i a;
anatofuz
parents:
diff changeset
26 int qq() {
anatofuz
parents:
diff changeset
27 if (__builtin_cpu_supports("avx"))
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
28 return qq_avx();
150
anatofuz
parents:
diff changeset
29 else
anatofuz
parents:
diff changeset
30 return qq_noavx();
anatofuz
parents:
diff changeset
31 }
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 // Test that fma and fma4 are both separately and combined valid for an fma intrinsic.
anatofuz
parents:
diff changeset
34 __m128 __attribute__((target("fma"))) fma_1(__m128 a, __m128 b, __m128 c) {
anatofuz
parents:
diff changeset
35 return __builtin_ia32_vfmaddps(a, b, c);
anatofuz
parents:
diff changeset
36 }
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 __m128 __attribute__((target("fma4"))) fma_2(__m128 a, __m128 b, __m128 c) {
anatofuz
parents:
diff changeset
39 return __builtin_ia32_vfmaddps(a, b, c);
anatofuz
parents:
diff changeset
40 }
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 __m128 __attribute__((target("fma,fma4"))) fma_3(__m128 a, __m128 b, __m128 c) {
anatofuz
parents:
diff changeset
43 return __builtin_ia32_vfmaddps(a, b, c);
anatofuz
parents:
diff changeset
44 }
anatofuz
parents:
diff changeset
45
anatofuz
parents:
diff changeset
46 void verifyfeaturestrings() {
anatofuz
parents:
diff changeset
47 (void)__builtin_cpu_supports("cmov");
anatofuz
parents:
diff changeset
48 (void)__builtin_cpu_supports("mmx");
anatofuz
parents:
diff changeset
49 (void)__builtin_cpu_supports("popcnt");
anatofuz
parents:
diff changeset
50 (void)__builtin_cpu_supports("sse");
anatofuz
parents:
diff changeset
51 (void)__builtin_cpu_supports("sse2");
anatofuz
parents:
diff changeset
52 (void)__builtin_cpu_supports("sse3");
anatofuz
parents:
diff changeset
53 (void)__builtin_cpu_supports("ssse3");
anatofuz
parents:
diff changeset
54 (void)__builtin_cpu_supports("sse4.1");
anatofuz
parents:
diff changeset
55 (void)__builtin_cpu_supports("sse4.2");
anatofuz
parents:
diff changeset
56 (void)__builtin_cpu_supports("avx");
anatofuz
parents:
diff changeset
57 (void)__builtin_cpu_supports("avx2");
anatofuz
parents:
diff changeset
58 (void)__builtin_cpu_supports("sse4a");
anatofuz
parents:
diff changeset
59 (void)__builtin_cpu_supports("fma4");
anatofuz
parents:
diff changeset
60 (void)__builtin_cpu_supports("xop");
anatofuz
parents:
diff changeset
61 (void)__builtin_cpu_supports("fma");
anatofuz
parents:
diff changeset
62 (void)__builtin_cpu_supports("avx512f");
anatofuz
parents:
diff changeset
63 (void)__builtin_cpu_supports("bmi");
anatofuz
parents:
diff changeset
64 (void)__builtin_cpu_supports("bmi2");
anatofuz
parents:
diff changeset
65 (void)__builtin_cpu_supports("aes");
anatofuz
parents:
diff changeset
66 (void)__builtin_cpu_supports("pclmul");
anatofuz
parents:
diff changeset
67 (void)__builtin_cpu_supports("avx512vl");
anatofuz
parents:
diff changeset
68 (void)__builtin_cpu_supports("avx512bw");
anatofuz
parents:
diff changeset
69 (void)__builtin_cpu_supports("avx512dq");
anatofuz
parents:
diff changeset
70 (void)__builtin_cpu_supports("avx512cd");
anatofuz
parents:
diff changeset
71 (void)__builtin_cpu_supports("avx512er");
anatofuz
parents:
diff changeset
72 (void)__builtin_cpu_supports("avx512pf");
anatofuz
parents:
diff changeset
73 (void)__builtin_cpu_supports("avx512vbmi");
anatofuz
parents:
diff changeset
74 (void)__builtin_cpu_supports("avx512ifma");
anatofuz
parents:
diff changeset
75 (void)__builtin_cpu_supports("avx5124vnniw");
anatofuz
parents:
diff changeset
76 (void)__builtin_cpu_supports("avx5124fmaps");
anatofuz
parents:
diff changeset
77 (void)__builtin_cpu_supports("avx512vpopcntdq");
anatofuz
parents:
diff changeset
78 (void)__builtin_cpu_supports("avx512vbmi2");
anatofuz
parents:
diff changeset
79 (void)__builtin_cpu_supports("gfni");
anatofuz
parents:
diff changeset
80 (void)__builtin_cpu_supports("vpclmulqdq");
anatofuz
parents:
diff changeset
81 (void)__builtin_cpu_supports("avx512vnni");
anatofuz
parents:
diff changeset
82 (void)__builtin_cpu_supports("avx512bitalg");
anatofuz
parents:
diff changeset
83 (void)__builtin_cpu_supports("avx512bf16");
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
84 (void)__builtin_cpu_supports("avx512vp2intersect");
150
anatofuz
parents:
diff changeset
85 }
anatofuz
parents:
diff changeset
86
anatofuz
parents:
diff changeset
87 void verifycpustrings() {
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
88 (void)__builtin_cpu_is("alderlake");
150
anatofuz
parents:
diff changeset
89 (void)__builtin_cpu_is("amd");
anatofuz
parents:
diff changeset
90 (void)__builtin_cpu_is("amdfam10h");
anatofuz
parents:
diff changeset
91 (void)__builtin_cpu_is("amdfam15h");
anatofuz
parents:
diff changeset
92 (void)__builtin_cpu_is("amdfam17h");
anatofuz
parents:
diff changeset
93 (void)__builtin_cpu_is("atom");
anatofuz
parents:
diff changeset
94 (void)__builtin_cpu_is("barcelona");
anatofuz
parents:
diff changeset
95 (void)__builtin_cpu_is("bdver1");
anatofuz
parents:
diff changeset
96 (void)__builtin_cpu_is("bdver2");
anatofuz
parents:
diff changeset
97 (void)__builtin_cpu_is("bdver3");
anatofuz
parents:
diff changeset
98 (void)__builtin_cpu_is("bdver4");
anatofuz
parents:
diff changeset
99 (void)__builtin_cpu_is("bonnell");
anatofuz
parents:
diff changeset
100 (void)__builtin_cpu_is("broadwell");
anatofuz
parents:
diff changeset
101 (void)__builtin_cpu_is("btver1");
anatofuz
parents:
diff changeset
102 (void)__builtin_cpu_is("btver2");
anatofuz
parents:
diff changeset
103 (void)__builtin_cpu_is("cannonlake");
anatofuz
parents:
diff changeset
104 (void)__builtin_cpu_is("cascadelake");
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
105 (void)__builtin_cpu_is("cooperlake");
150
anatofuz
parents:
diff changeset
106 (void)__builtin_cpu_is("core2");
anatofuz
parents:
diff changeset
107 (void)__builtin_cpu_is("corei7");
anatofuz
parents:
diff changeset
108 (void)__builtin_cpu_is("goldmont");
anatofuz
parents:
diff changeset
109 (void)__builtin_cpu_is("goldmont-plus");
anatofuz
parents:
diff changeset
110 (void)__builtin_cpu_is("haswell");
anatofuz
parents:
diff changeset
111 (void)__builtin_cpu_is("icelake-client");
anatofuz
parents:
diff changeset
112 (void)__builtin_cpu_is("icelake-server");
anatofuz
parents:
diff changeset
113 (void)__builtin_cpu_is("intel");
anatofuz
parents:
diff changeset
114 (void)__builtin_cpu_is("istanbul");
anatofuz
parents:
diff changeset
115 (void)__builtin_cpu_is("ivybridge");
anatofuz
parents:
diff changeset
116 (void)__builtin_cpu_is("knl");
anatofuz
parents:
diff changeset
117 (void)__builtin_cpu_is("knm");
anatofuz
parents:
diff changeset
118 (void)__builtin_cpu_is("nehalem");
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
119 (void)__builtin_cpu_is("rocketlake");
150
anatofuz
parents:
diff changeset
120 (void)__builtin_cpu_is("sandybridge");
anatofuz
parents:
diff changeset
121 (void)__builtin_cpu_is("shanghai");
anatofuz
parents:
diff changeset
122 (void)__builtin_cpu_is("silvermont");
anatofuz
parents:
diff changeset
123 (void)__builtin_cpu_is("skylake");
anatofuz
parents:
diff changeset
124 (void)__builtin_cpu_is("skylake-avx512");
anatofuz
parents:
diff changeset
125 (void)__builtin_cpu_is("slm");
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
126 (void)__builtin_cpu_is("tigerlake");
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
127 (void)__builtin_cpu_is("sapphirerapids");
150
anatofuz
parents:
diff changeset
128 (void)__builtin_cpu_is("tremont");
anatofuz
parents:
diff changeset
129 (void)__builtin_cpu_is("westmere");
anatofuz
parents:
diff changeset
130 (void)__builtin_cpu_is("znver1");
anatofuz
parents:
diff changeset
131 (void)__builtin_cpu_is("znver2");
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
132 (void)__builtin_cpu_is("znver3");
150
anatofuz
parents:
diff changeset
133 }