]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/i386/immintrin.h
rs6000.c (rs6000_gimple_fold_builtin): Formatting fixes.
[thirdparty/gcc.git] / gcc / config / i386 / immintrin.h
CommitLineData
cbe34bb5 1/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
21898431
L
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
748086b7 7 the Free Software Foundation; either version 3, or (at your option)
21898431
L
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
748086b7
JJ
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/>. */
21898431
L
23
24#ifndef _IMMINTRIN_H_INCLUDED
25#define _IMMINTRIN_H_INCLUDED
26
21898431 27#include <mmintrin.h>
21898431 28
21898431 29#include <xmmintrin.h>
21898431 30
21898431 31#include <emmintrin.h>
21898431 32
21898431 33#include <pmmintrin.h>
21898431 34
21898431 35#include <tmmintrin.h>
21898431 36
21898431 37#include <smmintrin.h>
21898431 38
21898431 39#include <wmmintrin.h>
21898431 40
21898431 41#include <avxintrin.h>
21898431 42
977e83a3 43#include <avx2intrin.h>
977e83a3 44
756c5857
AI
45#include <avx512fintrin.h>
46
47#include <avx512erintrin.h>
48
49#include <avx512pfintrin.h>
50
51#include <avx512cdintrin.h>
52
936c0fe4
AI
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
4190ea38
IT
63#include <avx512ifmaintrin.h>
64
65#include <avx512ifmavlintrin.h>
66
3dcc8af5
IT
67#include <avx512vbmiintrin.h>
68
69#include <avx512vbmivlintrin.h>
70
5fbb13a7
KY
71#include <avx5124fmapsintrin.h>
72
73#include <avx5124vnniwintrin.h>
74
79fc8ffe
AS
75#include <avx512vpopcntdqintrin.h>
76
c1618f82
AI
77#include <shaintrin.h>
78
f13677ba 79#include <lzcntintrin.h>
f13677ba 80
f13677ba 81#include <bmiintrin.h>
f13677ba 82
f13677ba 83#include <bmi2intrin.h>
f13677ba 84
2ddd46d6 85#include <fmaintrin.h>
2ddd46d6 86
87ca01b7 87#include <f16cintrin.h>
87ca01b7 88
bf2eaa3f 89#include <rtmintrin.h>
bf2eaa3f 90
bf2eaa3f 91#include <xtestintrin.h>
bf2eaa3f 92
2a25448c
IT
93#include <cetintrin.h>
94
9d54607a
JK
95#include <gfniintrin.h>
96
97db2bf7
ST
97#ifndef __RDRND__
98#pragma GCC push_options
99#pragma GCC target("rdrnd")
100#define __DISABLE_RDRND__
101#endif /* __RDRND__ */
11c4a1c0 102extern __inline int
4ee89d5f 103__attribute__((__gnu_inline__, __always_inline__, __artificial__))
11c4a1c0 104_rdrand16_step (unsigned short *__P)
4ee89d5f 105{
11c4a1c0 106 return __builtin_ia32_rdrand16_step (__P);
4ee89d5f
L
107}
108
11c4a1c0 109extern __inline int
4ee89d5f 110__attribute__((__gnu_inline__, __always_inline__, __artificial__))
11c4a1c0 111_rdrand32_step (unsigned int *__P)
4ee89d5f 112{
11c4a1c0 113 return __builtin_ia32_rdrand32_step (__P);
4ee89d5f 114}
97db2bf7
ST
115#ifdef __DISABLE_RDRND__
116#undef __DISABLE_RDRND__
117#pragma GCC pop_options
118#endif /* __DISABLE_RDRND__ */
4ee89d5f 119
1d516992
JK
120#ifndef __RDPID__
121#pragma GCC push_options
122#pragma GCC target("rdpid")
123#define __DISABLE_RDPID__
124#endif /* __RDPID__ */
125extern __inline unsigned int
126__attribute__((__gnu_inline__, __always_inline__, __artificial__))
127_rdpid_u32 (void)
128{
129 return __builtin_ia32_rdpid ();
130}
131#ifdef __DISABLE_RDPID__
132#undef __DISABLE_RDPID__
133#pragma GCC pop_options
134#endif /* __DISABLE_RDPID__ */
135
4ee89d5f 136#ifdef __x86_64__
97db2bf7
ST
137
138#ifndef __FSGSBASE__
139#pragma GCC push_options
140#pragma GCC target("fsgsbase")
141#define __DISABLE_FSGSBASE__
142#endif /* __FSGSBASE__ */
4ee89d5f
L
143extern __inline unsigned int
144__attribute__((__gnu_inline__, __always_inline__, __artificial__))
145_readfsbase_u32 (void)
146{
147 return __builtin_ia32_rdfsbase32 ();
148}
149
150extern __inline unsigned long long
151__attribute__((__gnu_inline__, __always_inline__, __artificial__))
152_readfsbase_u64 (void)
153{
154 return __builtin_ia32_rdfsbase64 ();
155}
156
157extern __inline unsigned int
158__attribute__((__gnu_inline__, __always_inline__, __artificial__))
159_readgsbase_u32 (void)
160{
161 return __builtin_ia32_rdgsbase32 ();
162}
163
164extern __inline unsigned long long
165__attribute__((__gnu_inline__, __always_inline__, __artificial__))
166_readgsbase_u64 (void)
167{
168 return __builtin_ia32_rdgsbase64 ();
169}
170
171extern __inline void
172__attribute__((__gnu_inline__, __always_inline__, __artificial__))
173_writefsbase_u32 (unsigned int __B)
174{
175 __builtin_ia32_wrfsbase32 (__B);
176}
177
178extern __inline void
179__attribute__((__gnu_inline__, __always_inline__, __artificial__))
180_writefsbase_u64 (unsigned long long __B)
181{
182 __builtin_ia32_wrfsbase64 (__B);
183}
184
185extern __inline void
186__attribute__((__gnu_inline__, __always_inline__, __artificial__))
187_writegsbase_u32 (unsigned int __B)
188{
189 __builtin_ia32_wrgsbase32 (__B);
190}
191
192extern __inline void
193__attribute__((__gnu_inline__, __always_inline__, __artificial__))
194_writegsbase_u64 (unsigned long long __B)
195{
196 __builtin_ia32_wrgsbase64 (__B);
197}
97db2bf7
ST
198#ifdef __DISABLE_FSGSBASE__
199#undef __DISABLE_FSGSBASE__
200#pragma GCC pop_options
201#endif /* __DISABLE_FSGSBASE__ */
202
203#ifndef __RDRND__
204#pragma GCC push_options
205#pragma GCC target("rdrnd")
206#define __DISABLE_RDRND__
207#endif /* __RDRND__ */
11c4a1c0 208extern __inline int
4ee89d5f 209__attribute__((__gnu_inline__, __always_inline__, __artificial__))
11c4a1c0 210_rdrand64_step (unsigned long long *__P)
4ee89d5f 211{
11c4a1c0 212 return __builtin_ia32_rdrand64_step (__P);
4ee89d5f 213}
97db2bf7
ST
214#ifdef __DISABLE_RDRND__
215#undef __DISABLE_RDRND__
216#pragma GCC pop_options
217#endif /* __DISABLE_RDRND__ */
218
4ee89d5f
L
219#endif /* __x86_64__ */
220
21898431 221#endif /* _IMMINTRIN_H_INCLUDED */