Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
screetsec
GitHub Repository: screetsec/TheFatRat
Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512cdintrin.h
496 views
1
/*===------------- avx512cdintrin.h - AVX512CD intrinsics ------------------===
2
*
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a copy
5
* of this software and associated documentation files (the "Software"), to deal
6
* in the Software without restriction, including without limitation the rights
7
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
* copies of the Software, and to permit persons to whom the Software is
9
* furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice shall be included in
12
* all copies or substantial portions of the Software.
13
*
14
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
* THE SOFTWARE.
21
*
22
*===-----------------------------------------------------------------------===
23
*/
24
#ifndef __IMMINTRIN_H
25
#error "Never use <avx512cdintrin.h> directly; include <immintrin.h> instead."
26
#endif
27
28
#ifndef __AVX512CDINTRIN_H
29
#define __AVX512CDINTRIN_H
30
31
/* Define the default attributes for the functions in this file. */
32
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512cd")))
33
34
static __inline__ __m512i __DEFAULT_FN_ATTRS
35
_mm512_conflict_epi64 (__m512i __A)
36
{
37
return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A,
38
(__v8di) _mm512_setzero_si512 (),
39
(__mmask8) -1);
40
}
41
42
static __inline__ __m512i __DEFAULT_FN_ATTRS
43
_mm512_mask_conflict_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
44
{
45
return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A,
46
(__v8di) __W,
47
(__mmask8) __U);
48
}
49
50
static __inline__ __m512i __DEFAULT_FN_ATTRS
51
_mm512_maskz_conflict_epi64 (__mmask8 __U, __m512i __A)
52
{
53
return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A,
54
(__v8di) _mm512_setzero_si512 (),
55
(__mmask8) __U);
56
}
57
58
static __inline__ __m512i __DEFAULT_FN_ATTRS
59
_mm512_conflict_epi32 (__m512i __A)
60
{
61
return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A,
62
(__v16si) _mm512_setzero_si512 (),
63
(__mmask16) -1);
64
}
65
66
static __inline__ __m512i __DEFAULT_FN_ATTRS
67
_mm512_mask_conflict_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
68
{
69
return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A,
70
(__v16si) __W,
71
(__mmask16) __U);
72
}
73
74
static __inline__ __m512i __DEFAULT_FN_ATTRS
75
_mm512_maskz_conflict_epi32 (__mmask16 __U, __m512i __A)
76
{
77
return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A,
78
(__v16si) _mm512_setzero_si512 (),
79
(__mmask16) __U);
80
}
81
82
static __inline__ __m512i __DEFAULT_FN_ATTRS
83
_mm512_lzcnt_epi32 (__m512i __A)
84
{
85
return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A,
86
(__v16si) _mm512_setzero_si512 (),
87
(__mmask16) -1);
88
}
89
90
static __inline__ __m512i __DEFAULT_FN_ATTRS
91
_mm512_mask_lzcnt_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
92
{
93
return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A,
94
(__v16si) __W,
95
(__mmask16) __U);
96
}
97
98
static __inline__ __m512i __DEFAULT_FN_ATTRS
99
_mm512_maskz_lzcnt_epi32 (__mmask16 __U, __m512i __A)
100
{
101
return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A,
102
(__v16si) _mm512_setzero_si512 (),
103
(__mmask16) __U);
104
}
105
106
static __inline__ __m512i __DEFAULT_FN_ATTRS
107
_mm512_lzcnt_epi64 (__m512i __A)
108
{
109
return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A,
110
(__v8di) _mm512_setzero_si512 (),
111
(__mmask8) -1);
112
}
113
114
static __inline__ __m512i __DEFAULT_FN_ATTRS
115
_mm512_mask_lzcnt_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
116
{
117
return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A,
118
(__v8di) __W,
119
(__mmask8) __U);
120
}
121
122
static __inline__ __m512i __DEFAULT_FN_ATTRS
123
_mm512_maskz_lzcnt_epi64 (__mmask8 __U, __m512i __A)
124
{
125
return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A,
126
(__v8di) _mm512_setzero_si512 (),
127
(__mmask8) __U);
128
}
129
130
static __inline__ __m512i __DEFAULT_FN_ATTRS
131
_mm512_broadcastmb_epi64 (__mmask8 __A)
132
{
133
return (__m512i) __builtin_ia32_broadcastmb512 (__A);
134
}
135
136
static __inline__ __m512i __DEFAULT_FN_ATTRS
137
_mm512_broadcastmw_epi32 (__mmask16 __A)
138
{
139
return (__m512i) __builtin_ia32_broadcastmw512 (__A);
140
}
141
142
#undef __DEFAULT_FN_ATTRS
143
144
#endif
145
146