ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
avx512vlcdintrin.h
Go to the documentation of this file.
1/*===---- avx512vlcdintrin.h - AVX512VL and AVX512CD intrinsics ------------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9#ifndef __IMMINTRIN_H
10#error "Never use <avx512vlcdintrin.h> directly; include <immintrin.h> instead."
11#endif
12
13#ifndef __AVX512VLCDINTRIN_H
14#define __AVX512VLCDINTRIN_H
15
16/* Define the default attributes for the functions in this file. */
17#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128)))
18#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256)))
19
20
21static __inline__ __m128i __DEFAULT_FN_ATTRS128
23{
24 return (__m128i) _mm_set1_epi64x((long long) __A);
25}
26
27static __inline__ __m256i __DEFAULT_FN_ATTRS256
29{
30 return (__m256i) _mm256_set1_epi64x((long long)__A);
31}
32
33static __inline__ __m128i __DEFAULT_FN_ATTRS128
35{
36 return (__m128i) _mm_set1_epi32((int)__A);
37}
38
39static __inline__ __m256i __DEFAULT_FN_ATTRS256
41{
42 return (__m256i) _mm256_set1_epi32((int)__A);
43}
44
45
46static __inline__ __m128i __DEFAULT_FN_ATTRS128
47_mm_conflict_epi64 (__m128i __A)
48{
49 return (__m128i) __builtin_ia32_vpconflictdi_128 ((__v2di) __A);
50}
51
52static __inline__ __m128i __DEFAULT_FN_ATTRS128
53_mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
54{
55 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
56 (__v2di)_mm_conflict_epi64(__A),
57 (__v2di)__W);
58}
59
60static __inline__ __m128i __DEFAULT_FN_ATTRS128
62{
63 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
64 (__v2di)_mm_conflict_epi64(__A),
65 (__v2di)_mm_setzero_si128());
66}
67
68static __inline__ __m256i __DEFAULT_FN_ATTRS256
70{
71 return (__m256i) __builtin_ia32_vpconflictdi_256 ((__v4di) __A);
72}
73
74static __inline__ __m256i __DEFAULT_FN_ATTRS256
75_mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
76{
77 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
78 (__v4di)_mm256_conflict_epi64(__A),
79 (__v4di)__W);
80}
81
82static __inline__ __m256i __DEFAULT_FN_ATTRS256
84{
85 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
86 (__v4di)_mm256_conflict_epi64(__A),
87 (__v4di)_mm256_setzero_si256());
88}
89
90static __inline__ __m128i __DEFAULT_FN_ATTRS128
91_mm_conflict_epi32 (__m128i __A)
92{
93 return (__m128i) __builtin_ia32_vpconflictsi_128 ((__v4si) __A);
94}
95
96static __inline__ __m128i __DEFAULT_FN_ATTRS128
97_mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
98{
99 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
100 (__v4si)_mm_conflict_epi32(__A),
101 (__v4si)__W);
102}
103
104static __inline__ __m128i __DEFAULT_FN_ATTRS128
106{
107 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
108 (__v4si)_mm_conflict_epi32(__A),
109 (__v4si)_mm_setzero_si128());
110}
111
112static __inline__ __m256i __DEFAULT_FN_ATTRS256
114{
115 return (__m256i) __builtin_ia32_vpconflictsi_256 ((__v8si) __A);
116}
117
118static __inline__ __m256i __DEFAULT_FN_ATTRS256
119_mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
120{
121 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
122 (__v8si)_mm256_conflict_epi32(__A),
123 (__v8si)__W);
124}
125
126static __inline__ __m256i __DEFAULT_FN_ATTRS256
128{
129 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
130 (__v8si)_mm256_conflict_epi32(__A),
131 (__v8si)_mm256_setzero_si256());
132}
133
134static __inline__ __m128i __DEFAULT_FN_ATTRS128
135_mm_lzcnt_epi32 (__m128i __A)
136{
137 return (__m128i) __builtin_ia32_vplzcntd_128 ((__v4si) __A);
138}
139
140static __inline__ __m128i __DEFAULT_FN_ATTRS128
141_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
142{
143 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
144 (__v4si)_mm_lzcnt_epi32(__A),
145 (__v4si)__W);
146}
147
148static __inline__ __m128i __DEFAULT_FN_ATTRS128
150{
151 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
152 (__v4si)_mm_lzcnt_epi32(__A),
153 (__v4si)_mm_setzero_si128());
154}
155
156static __inline__ __m256i __DEFAULT_FN_ATTRS256
158{
159 return (__m256i) __builtin_ia32_vplzcntd_256 ((__v8si) __A);
160}
161
162static __inline__ __m256i __DEFAULT_FN_ATTRS256
163_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
164{
165 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
166 (__v8si)_mm256_lzcnt_epi32(__A),
167 (__v8si)__W);
168}
169
170static __inline__ __m256i __DEFAULT_FN_ATTRS256
172{
173 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
174 (__v8si)_mm256_lzcnt_epi32(__A),
175 (__v8si)_mm256_setzero_si256());
176}
177
178static __inline__ __m128i __DEFAULT_FN_ATTRS128
179_mm_lzcnt_epi64 (__m128i __A)
180{
181 return (__m128i) __builtin_ia32_vplzcntq_128 ((__v2di) __A);
182}
183
184static __inline__ __m128i __DEFAULT_FN_ATTRS128
185_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
186{
187 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
188 (__v2di)_mm_lzcnt_epi64(__A),
189 (__v2di)__W);
190}
191
192static __inline__ __m128i __DEFAULT_FN_ATTRS128
194{
195 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
196 (__v2di)_mm_lzcnt_epi64(__A),
197 (__v2di)_mm_setzero_si128());
198}
199
200static __inline__ __m256i __DEFAULT_FN_ATTRS256
202{
203 return (__m256i) __builtin_ia32_vplzcntq_256 ((__v4di) __A);
204}
205
206static __inline__ __m256i __DEFAULT_FN_ATTRS256
207_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
208{
209 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
210 (__v4di)_mm256_lzcnt_epi64(__A),
211 (__v4di)__W);
212}
213
214static __inline__ __m256i __DEFAULT_FN_ATTRS256
216{
217 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
218 (__v4di)_mm256_lzcnt_epi64(__A),
219 (__v4di)_mm256_setzero_si256());
220}
221
222#undef __DEFAULT_FN_ATTRS128
223#undef __DEFAULT_FN_ATTRS256
224
225#endif /* __AVX512VLCDINTRIN_H */
unsigned char __mmask8
unsigned short __mmask16
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_lzcnt_epi64(__m128i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_conflict_epi32(__m256i __W, __mmask8 __U, __m256i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_conflict_epi32(__mmask8 __U, __m128i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_lzcnt_epi64(__m128i __W, __mmask8 __U, __m128i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_lzcnt_epi32(__m128i __W, __mmask8 __U, __m128i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_lzcnt_epi64(__mmask8 __U, __m256i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_conflict_epi32(__m256i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_conflict_epi32(__mmask8 __U, __m256i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_lzcnt_epi64(__mmask8 __U, __m128i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_broadcastmb_epi64(__mmask8 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_broadcastmb_epi64(__mmask8 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_conflict_epi64(__mmask8 __U, __m256i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_conflict_epi64(__m256i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_lzcnt_epi64(__m256i __W, __mmask8 __U, __m256i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_conflict_epi64(__m128i __W, __mmask8 __U, __m128i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_conflict_epi64(__mmask8 __U, __m128i __A)
#define __DEFAULT_FN_ATTRS256
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_conflict_epi64(__m128i __A)
#define __DEFAULT_FN_ATTRS128
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_lzcnt_epi32(__mmask8 __U, __m256i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_lzcnt_epi32(__m128i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_conflict_epi32(__m128i __W, __mmask8 __U, __m128i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_lzcnt_epi32(__m256i __W, __mmask8 __U, __m256i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_lzcnt_epi32(__m256i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_broadcastmw_epi32(__mmask16 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_lzcnt_epi32(__mmask8 __U, __m128i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_broadcastmw_epi32(__mmask16 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_lzcnt_epi64(__m256i __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_conflict_epi32(__m128i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_conflict_epi64(__m256i __W, __mmask8 __U, __m256i __A)
static __inline __m256i __DEFAULT_FN_ATTRS _mm256_set1_epi64x(long long __q)
Constructs a 256-bit integer vector of [4 x i64], with each of the 64-bit integral vector elements se...
Definition avxintrin.h:4239
static __inline __m256i __DEFAULT_FN_ATTRS _mm256_setzero_si256(void)
Constructs a 256-bit integer vector initialized to zero.
Definition avxintrin.h:4281
static __inline __m256i __DEFAULT_FN_ATTRS _mm256_set1_epi32(int __i)
Constructs a 256-bit integer vector of [8 x i32], with each of the 32-bit integral vector elements se...
Definition avxintrin.h:4182
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi32(int __i)
Initializes all values in a 128-bit vector of [4 x i32] with the specified 32-bit value.
Definition emmintrin.h:3804
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi64x(long long __q)
Initializes both values in a 128-bit integer vector with the specified 64-bit integer value.
Definition emmintrin.h:3766
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_setzero_si128(void)
Creates a 128-bit integer vector initialized to zero.
Definition emmintrin.h:3977