Warning: That file was not part of the compilation database. It may have many parsing errors.

1/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
9
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
18
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
23
24#ifndef _IMMINTRIN_H_INCLUDED
25#define _IMMINTRIN_H_INCLUDED
26
27#include <mmintrin.h>
28
29#include <xmmintrin.h>
30
31#include <emmintrin.h>
32
33#include <pmmintrin.h>
34
35#include <tmmintrin.h>
36
37#include <smmintrin.h>
38
39#include <wmmintrin.h>
40
41#include <avxintrin.h>
42
43#include <avx2intrin.h>
44
45#include <avx512fintrin.h>
46
47#include <avx512erintrin.h>
48
49#include <avx512pfintrin.h>
50
51#include <avx512cdintrin.h>
52
53#include <avx512vlintrin.h>
54
55#include <avx512bwintrin.h>
56
57#include <avx512dqintrin.h>
58
59#include <avx512vlbwintrin.h>
60
61#include <avx512vldqintrin.h>
62
63#include <avx512ifmaintrin.h>
64
65#include <avx512ifmavlintrin.h>
66
67#include <avx512vbmiintrin.h>
68
69#include <avx512vbmivlintrin.h>
70
71#include <avx5124fmapsintrin.h>
72
73#include <avx5124vnniwintrin.h>
74
75#include <avx512vpopcntdqintrin.h>
76
77#include <avx512vbmi2intrin.h>
78
79#include <avx512vbmi2vlintrin.h>
80
81#include <avx512vnniintrin.h>
82
83#include <avx512vnnivlintrin.h>
84
85#include <shaintrin.h>
86
87#include <lzcntintrin.h>
88
89#include <bmiintrin.h>
90
91#include <bmi2intrin.h>
92
93#include <fmaintrin.h>
94
95#include <f16cintrin.h>
96
97#include <rtmintrin.h>
98
99#include <xtestintrin.h>
100
101#include <cetintrin.h>
102
103#include <gfniintrin.h>
104
105#include <vaesintrin.h>
106
107#ifndef __RDRND__
108#pragma GCC push_options
109#pragma GCC target("rdrnd")
110#define __DISABLE_RDRND__
111#endif /* __RDRND__ */
112extern __inline int
113__attribute__((__gnu_inline__, __always_inline__, __artificial__))
114_rdrand16_step (unsigned short *__P)
115{
116 return __builtin_ia32_rdrand16_step (__P);
117}
118
119extern __inline int
120__attribute__((__gnu_inline__, __always_inline__, __artificial__))
121_rdrand32_step (unsigned int *__P)
122{
123 return __builtin_ia32_rdrand32_step (__P);
124}
125#ifdef __DISABLE_RDRND__
126#undef __DISABLE_RDRND__
127#pragma GCC pop_options
128#endif /* __DISABLE_RDRND__ */
129
130#ifndef __RDPID__
131#pragma GCC push_options
132#pragma GCC target("rdpid")
133#define __DISABLE_RDPID__
134#endif /* __RDPID__ */
135extern __inline unsigned int
136__attribute__((__gnu_inline__, __always_inline__, __artificial__))
137_rdpid_u32 (void)
138{
139 return __builtin_ia32_rdpid ();
140}
141#ifdef __DISABLE_RDPID__
142#undef __DISABLE_RDPID__
143#pragma GCC pop_options
144#endif /* __DISABLE_RDPID__ */
145
146#ifdef __x86_64__
147
148#ifndef __FSGSBASE__
149#pragma GCC push_options
150#pragma GCC target("fsgsbase")
151#define __DISABLE_FSGSBASE__
152#endif /* __FSGSBASE__ */
153extern __inline unsigned int
154__attribute__((__gnu_inline__, __always_inline__, __artificial__))
155_readfsbase_u32 (void)
156{
157 return __builtin_ia32_rdfsbase32 ();
158}
159
160extern __inline unsigned long long
161__attribute__((__gnu_inline__, __always_inline__, __artificial__))
162_readfsbase_u64 (void)
163{
164 return __builtin_ia32_rdfsbase64 ();
165}
166
167extern __inline unsigned int
168__attribute__((__gnu_inline__, __always_inline__, __artificial__))
169_readgsbase_u32 (void)
170{
171 return __builtin_ia32_rdgsbase32 ();
172}
173
174extern __inline unsigned long long
175__attribute__((__gnu_inline__, __always_inline__, __artificial__))
176_readgsbase_u64 (void)
177{
178 return __builtin_ia32_rdgsbase64 ();
179}
180
181extern __inline void
182__attribute__((__gnu_inline__, __always_inline__, __artificial__))
183_writefsbase_u32 (unsigned int __B)
184{
185 __builtin_ia32_wrfsbase32 (__B);
186}
187
188extern __inline void
189__attribute__((__gnu_inline__, __always_inline__, __artificial__))
190_writefsbase_u64 (unsigned long long __B)
191{
192 __builtin_ia32_wrfsbase64 (__B);
193}
194
195extern __inline void
196__attribute__((__gnu_inline__, __always_inline__, __artificial__))
197_writegsbase_u32 (unsigned int __B)
198{
199 __builtin_ia32_wrgsbase32 (__B);
200}
201
202extern __inline void
203__attribute__((__gnu_inline__, __always_inline__, __artificial__))
204_writegsbase_u64 (unsigned long long __B)
205{
206 __builtin_ia32_wrgsbase64 (__B);
207}
208#ifdef __DISABLE_FSGSBASE__
209#undef __DISABLE_FSGSBASE__
210#pragma GCC pop_options
211#endif /* __DISABLE_FSGSBASE__ */
212
213#ifndef __RDRND__
214#pragma GCC push_options
215#pragma GCC target("rdrnd")
216#define __DISABLE_RDRND__
217#endif /* __RDRND__ */
218extern __inline int
219__attribute__((__gnu_inline__, __always_inline__, __artificial__))
220_rdrand64_step (unsigned long long *__P)
221{
222 return __builtin_ia32_rdrand64_step (__P);
223}
224#ifdef __DISABLE_RDRND__
225#undef __DISABLE_RDRND__
226#pragma GCC pop_options
227#endif /* __DISABLE_RDRND__ */
228
229#endif /* __x86_64__ */
230
231#endif /* _IMMINTRIN_H_INCLUDED */
232

Warning: That file was not part of the compilation database. It may have many parsing errors.