Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
screetsec
GitHub Repository: screetsec/TheFatRat
Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512pfintrin.h
496 views
1
/*===------------- avx512pfintrin.h - PF 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 <avx512pfintrin.h> directly; include <immintrin.h> instead."
26
#endif
27
28
#ifndef __AVX512PFINTRIN_H
29
#define __AVX512PFINTRIN_H
30
31
/* Define the default attributes for the functions in this file. */
32
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512pf")))
33
34
#define _mm512_mask_prefetch_i32gather_pd(index, mask, addr, scale, hint) __extension__ ({\
35
__builtin_ia32_gatherpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \
36
(long long const *)(addr), (int)(scale), \
37
(int)(hint)); })
38
39
#define _mm512_prefetch_i32gather_pd(index, addr, scale, hint) __extension__ ({\
40
__builtin_ia32_gatherpfdpd((__mmask8) -1, (__v8si)(__m256i)(index), \
41
(long long const *)(addr), (int)(scale), \
42
(int)(hint)); })
43
44
#define _mm512_mask_prefetch_i32gather_ps(index, mask, addr, scale, hint) ({\
45
__builtin_ia32_gatherpfdps((__mmask16)(mask), \
46
(__v16si)(__m512i)(index), (int const *)(addr), \
47
(int)(scale), (int)(hint)); })
48
49
#define _mm512_prefetch_i32gather_ps(index, addr, scale, hint) ({\
50
__builtin_ia32_gatherpfdps((__mmask16) -1, \
51
(__v16si)(__m512i)(index), (int const *)(addr), \
52
(int)(scale), (int)(hint)); })
53
54
#define _mm512_mask_prefetch_i64gather_pd(index, mask, addr, scale, hint) __extension__ ({\
55
__builtin_ia32_gatherpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \
56
(long long const *)(addr), (int)(scale), \
57
(int)(hint)); })
58
59
#define _mm512_prefetch_i64gather_pd(index, addr, scale, hint) __extension__ ({\
60
__builtin_ia32_gatherpfqpd((__mmask8) -1, (__v8di)(__m512i)(index), \
61
(long long const *)(addr), (int)(scale), \
62
(int)(hint)); })
63
64
#define _mm512_mask_prefetch_i64gather_ps(index, mask, addr, scale, hint) ({\
65
__builtin_ia32_gatherpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \
66
(int const *)(addr), (int)(scale), (int)(hint)); })
67
68
#define _mm512_prefetch_i64gather_ps(index, addr, scale, hint) ({\
69
__builtin_ia32_gatherpfqps((__mmask8) -1, (__v8di)(__m512i)(index), \
70
(int const *)(addr), (int)(scale), (int)(hint)); })
71
72
#define _mm512_prefetch_i32scatter_pd(addr, index, scale, hint) __extension__ ({\
73
__builtin_ia32_scatterpfdpd((__mmask8)-1, (__v8si)(__m256i)(index), \
74
(long long *)(addr), (int)(scale), \
75
(int)(hint)); })
76
77
#define _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, scale, hint) __extension__ ({\
78
__builtin_ia32_scatterpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \
79
(long long *)(addr), (int)(scale), \
80
(int)(hint)); })
81
82
#define _mm512_prefetch_i32scatter_ps(addr, index, scale, hint) __extension__ ({\
83
__builtin_ia32_scatterpfdps((__mmask16)-1, (__v16si)(__m512i)(index), \
84
(int *)(addr), (int)(scale), (int)(hint)); })
85
86
#define _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, scale, hint) __extension__ ({\
87
__builtin_ia32_scatterpfdps((__mmask16)(mask), \
88
(__v16si)(__m512i)(index), (int *)(addr), \
89
(int)(scale), (int)(hint)); })
90
91
#define _mm512_prefetch_i64scatter_pd(addr, index, scale, hint) __extension__ ({\
92
__builtin_ia32_scatterpfqpd((__mmask8)-1, (__v8di)(__m512i)(index), \
93
(long long *)(addr), (int)(scale), \
94
(int)(hint)); })
95
96
#define _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, scale, hint) __extension__ ({\
97
__builtin_ia32_scatterpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \
98
(long long *)(addr), (int)(scale), \
99
(int)(hint)); })
100
101
#define _mm512_prefetch_i64scatter_ps(addr, index, scale, hint) __extension__ ({\
102
__builtin_ia32_scatterpfqps((__mmask8)-1, (__v8di)(__m512i)(index), \
103
(int *)(addr), (int)(scale), (int)(hint)); })
104
105
#define _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, scale, hint) __extension__ ({\
106
__builtin_ia32_scatterpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \
107
(int *)(addr), (int)(scale), (int)(hint)); })
108
109
#undef __DEFAULT_FN_ATTRS
110
111
#endif
112
113