data: Updated LLVM/Clang config headers to release 8.0.1
This commit is contained in:
@@ -461,11 +461,17 @@ _mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
|
||||
(__v4si)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_and_epi32(__m256i __a, __m256i __b)
|
||||
{
|
||||
return (__m256i)((__v8su)__a & (__v8su)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
|
||||
(__v8si)_mm256_and_si256(__A, __B),
|
||||
(__v8si)_mm256_and_epi32(__A, __B),
|
||||
(__v8si)__W);
|
||||
}
|
||||
|
||||
@@ -475,11 +481,17 @@ _mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_and_epi32(__m128i __a, __m128i __b)
|
||||
{
|
||||
return (__m128i)((__v4su)__a & (__v4su)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
|
||||
(__v4si)_mm_and_si128(__A, __B),
|
||||
(__v4si)_mm_and_epi32(__A, __B),
|
||||
(__v4si)__W);
|
||||
}
|
||||
|
||||
@@ -489,11 +501,17 @@ _mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_andnot_epi32(__m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)(~(__v8su)__A & (__v8su)__B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
|
||||
(__v8si)_mm256_andnot_si256(__A, __B),
|
||||
(__v8si)_mm256_andnot_epi32(__A, __B),
|
||||
(__v8si)__W);
|
||||
}
|
||||
|
||||
@@ -504,25 +522,37 @@ _mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
__U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_andnot_epi32(__m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)(~(__v4su)__A & (__v4su)__B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
|
||||
(__v4si)_mm_andnot_si128(__A, __B),
|
||||
(__v4si)_mm_andnot_epi32(__A, __B),
|
||||
(__v4si)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
|
||||
_mm_maskz_andnot_epi32(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_or_epi32(__m256i __a, __m256i __b)
|
||||
{
|
||||
return (__m256i)((__v8su)__a | (__v8su)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
|
||||
(__v8si)_mm256_or_si256(__A, __B),
|
||||
(__v8si)_mm256_or_epi32(__A, __B),
|
||||
(__v8si)__W);
|
||||
}
|
||||
|
||||
@@ -532,11 +562,17 @@ _mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_or_epi32(__m128i __a, __m128i __b)
|
||||
{
|
||||
return (__m128i)((__v4su)__a | (__v4su)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
|
||||
(__v4si)_mm_or_si128(__A, __B),
|
||||
(__v4si)_mm_or_epi32(__A, __B),
|
||||
(__v4si)__W);
|
||||
}
|
||||
|
||||
@@ -546,11 +582,17 @@ _mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_xor_epi32(__m256i __a, __m256i __b)
|
||||
{
|
||||
return (__m256i)((__v8su)__a ^ (__v8su)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
|
||||
(__v8si)_mm256_xor_si256(__A, __B),
|
||||
(__v8si)_mm256_xor_epi32(__A, __B),
|
||||
(__v8si)__W);
|
||||
}
|
||||
|
||||
@@ -561,11 +603,16 @@ _mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A,
|
||||
__m128i __B)
|
||||
_mm_xor_epi32(__m128i __a, __m128i __b)
|
||||
{
|
||||
return (__m128i)((__v4su)__a ^ (__v4su)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
|
||||
(__v4si)_mm_xor_si128(__A, __B),
|
||||
(__v4si)_mm_xor_epi32(__A, __B),
|
||||
(__v4si)__W);
|
||||
}
|
||||
|
||||
@@ -575,11 +622,17 @@ _mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_and_epi64(__m256i __a, __m256i __b)
|
||||
{
|
||||
return (__m256i)((__v4du)__a & (__v4du)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
|
||||
(__v4di)_mm256_and_si256(__A, __B),
|
||||
(__v4di)_mm256_and_epi64(__A, __B),
|
||||
(__v4di)__W);
|
||||
}
|
||||
|
||||
@@ -589,11 +642,17 @@ _mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_and_epi64(__m128i __a, __m128i __b)
|
||||
{
|
||||
return (__m128i)((__v2du)__a & (__v2du)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
|
||||
(__v2di)_mm_and_si128(__A, __B),
|
||||
(__v2di)_mm_and_epi64(__A, __B),
|
||||
(__v2di)__W);
|
||||
}
|
||||
|
||||
@@ -603,11 +662,17 @@ _mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_andnot_epi64(__m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)(~(__v4du)__A & (__v4du)__B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
|
||||
(__v4di)_mm256_andnot_si256(__A, __B),
|
||||
(__v4di)_mm256_andnot_epi64(__A, __B),
|
||||
(__v4di)__W);
|
||||
}
|
||||
|
||||
@@ -618,11 +683,17 @@ _mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
__U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_andnot_epi64(__m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)(~(__v2du)__A & (__v2du)__B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
|
||||
(__v2di)_mm_andnot_si128(__A, __B),
|
||||
(__v2di)_mm_andnot_epi64(__A, __B),
|
||||
(__v2di)__W);
|
||||
}
|
||||
|
||||
@@ -632,11 +703,17 @@ _mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_or_epi64(__m256i __a, __m256i __b)
|
||||
{
|
||||
return (__m256i)((__v4du)__a | (__v4du)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
|
||||
(__v4di)_mm256_or_si256(__A, __B),
|
||||
(__v4di)_mm256_or_epi64(__A, __B),
|
||||
(__v4di)__W);
|
||||
}
|
||||
|
||||
@@ -646,11 +723,17 @@ _mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_or_epi64(__m128i __a, __m128i __b)
|
||||
{
|
||||
return (__m128i)((__v2du)__a | (__v2du)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
|
||||
(__v2di)_mm_or_si128(__A, __B),
|
||||
(__v2di)_mm_or_epi64(__A, __B),
|
||||
(__v2di)__W);
|
||||
}
|
||||
|
||||
@@ -660,11 +743,17 @@ _mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
|
||||
return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_xor_epi64(__m256i __a, __m256i __b)
|
||||
{
|
||||
return (__m256i)((__v4du)__a ^ (__v4du)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
|
||||
{
|
||||
return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
|
||||
(__v4di)_mm256_xor_si256(__A, __B),
|
||||
(__v4di)_mm256_xor_epi64(__A, __B),
|
||||
(__v4di)__W);
|
||||
}
|
||||
|
||||
@@ -674,12 +763,18 @@ _mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
|
||||
return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_xor_epi64(__m128i __a, __m128i __b)
|
||||
{
|
||||
return (__m128i)((__v2du)__a ^ (__v2du)__b);
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
|
||||
__m128i __B)
|
||||
{
|
||||
return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
|
||||
(__v2di)_mm_xor_si128(__A, __B),
|
||||
(__v2di)_mm_xor_epi64(__A, __B),
|
||||
(__v2di)__W);
|
||||
}
|
||||
|
||||
@@ -3389,162 +3484,162 @@ _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
|
||||
}
|
||||
|
||||
#define _mm_i64scatter_pd(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)-1, \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__v2df)(__m128d)(v1), (int)(scale))
|
||||
|
||||
#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)(mask), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__v2df)(__m128d)(v1), (int)(scale))
|
||||
|
||||
#define _mm_i64scatter_epi64(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)-1, \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__v2di)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)(mask), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__v2di)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_i64scatter_pd(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)-1, \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__v4df)(__m256d)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__v4df)(__m256d)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_i64scatter_epi64(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)-1, \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__v4di)(__m256i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__v4di)(__m256i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_i64scatter_ps(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)-1, \
|
||||
(__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)(mask), \
|
||||
(__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm_i64scatter_epi32(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)-1, \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__v4si)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)(mask), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__v4si)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_i64scatter_ps(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)-1, \
|
||||
(__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm256_i64scatter_epi32(addr, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)-1, \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__v4si)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__v4si)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_i32scatter_pd(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)-1, \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v2df)(__m128d)(v1), (int)(scale))
|
||||
|
||||
#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v2df)(__m128d)(v1), (int)(scale))
|
||||
|
||||
#define _mm_i32scatter_epi64(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)-1, \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v2di)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v2di)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_i32scatter_pd(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)-1, \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v4df)(__m256d)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v4df)(__m256d)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_i32scatter_epi64(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)-1, \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v4di)(__m256i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v4di)(__m256i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_i32scatter_ps(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)-1, \
|
||||
(__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm_i32scatter_epi32(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)-1, \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v4si)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)(mask), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__v4si)(__m128i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_i32scatter_ps(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)-1, \
|
||||
(__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)(mask), \
|
||||
(__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
|
||||
(int)(scale))
|
||||
|
||||
#define _mm256_i32scatter_epi32(addr, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
|
||||
__builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)-1, \
|
||||
(__v8si)(__m256i)(index), \
|
||||
(__v8si)(__m256i)(v1), (int)(scale))
|
||||
|
||||
#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
|
||||
__builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
|
||||
__builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)(mask), \
|
||||
(__v8si)(__m256i)(index), \
|
||||
(__v8si)(__m256i)(v1), (int)(scale))
|
||||
|
||||
@@ -4989,6 +5084,12 @@ _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
|
||||
(__v8si) _mm256_setzero_si256 ());
|
||||
}
|
||||
|
||||
static __inline __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_load_epi32 (void const *__P)
|
||||
{
|
||||
return *(__m128i *) __P;
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5008,6 +5109,12 @@ _mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
|
||||
__U);
|
||||
}
|
||||
|
||||
static __inline __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_load_epi32 (void const *__P)
|
||||
{
|
||||
return *(__m256i *) __P;
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5027,6 +5134,12 @@ _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
|
||||
__U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS128
|
||||
_mm_store_epi32 (void *__P, __m128i __A)
|
||||
{
|
||||
*(__m128i *) __P = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
@@ -5035,6 +5148,12 @@ _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS256
|
||||
_mm256_store_epi32 (void *__P, __m256i __A)
|
||||
{
|
||||
*(__m256i *) __P = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
|
||||
{
|
||||
@@ -5075,6 +5194,12 @@ _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
|
||||
(__v4di) _mm256_setzero_si256 ());
|
||||
}
|
||||
|
||||
static __inline __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_load_epi64 (void const *__P)
|
||||
{
|
||||
return *(__m128i *) __P;
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5094,6 +5219,12 @@ _mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
|
||||
__U);
|
||||
}
|
||||
|
||||
static __inline __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_load_epi64 (void const *__P)
|
||||
{
|
||||
return *(__m256i *) __P;
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5113,6 +5244,12 @@ _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
|
||||
__U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS128
|
||||
_mm_store_epi64 (void *__P, __m128i __A)
|
||||
{
|
||||
*(__m128i *) __P = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
@@ -5121,6 +5258,12 @@ _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS256
|
||||
_mm256_store_epi64 (void *__P, __m256i __A)
|
||||
{
|
||||
*(__m256i *) __P = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
|
||||
{
|
||||
@@ -5366,6 +5509,15 @@ _mm256_maskz_load_ps (__mmask8 __U, void const *__P)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_loadu_epi64 (void const *__P)
|
||||
{
|
||||
struct __loadu_epi64 {
|
||||
__m128i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
return ((struct __loadu_epi64*)__P)->__v;
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5383,6 +5535,15 @@ _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_loadu_epi64 (void const *__P)
|
||||
{
|
||||
struct __loadu_epi64 {
|
||||
__m256i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
return ((struct __loadu_epi64*)__P)->__v;
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5400,6 +5561,15 @@ _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_loadu_epi32 (void const *__P)
|
||||
{
|
||||
struct __loadu_epi32 {
|
||||
__m128i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
return ((struct __loadu_epi32*)__P)->__v;
|
||||
}
|
||||
|
||||
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5417,6 +5587,15 @@ _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_loadu_epi32 (void const *__P)
|
||||
{
|
||||
struct __loadu_epi32 {
|
||||
__m256i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
return ((struct __loadu_epi32*)__P)->__v;
|
||||
}
|
||||
|
||||
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
|
||||
{
|
||||
@@ -5534,6 +5713,15 @@ _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS128
|
||||
_mm_storeu_epi64 (void *__P, __m128i __A)
|
||||
{
|
||||
struct __storeu_epi64 {
|
||||
__m128i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
((struct __storeu_epi64*)__P)->__v = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
@@ -5542,6 +5730,15 @@ _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS256
|
||||
_mm256_storeu_epi64 (void *__P, __m256i __A)
|
||||
{
|
||||
struct __storeu_epi64 {
|
||||
__m256i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
((struct __storeu_epi64*)__P)->__v = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
|
||||
{
|
||||
@@ -5550,6 +5747,15 @@ _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS128
|
||||
_mm_storeu_epi32 (void *__P, __m128i __A)
|
||||
{
|
||||
struct __storeu_epi32 {
|
||||
__m128i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
((struct __storeu_epi32*)__P)->__v = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS128
|
||||
_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
@@ -5558,6 +5764,15 @@ _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
|
||||
(__mmask8) __U);
|
||||
}
|
||||
|
||||
static __inline void __DEFAULT_FN_ATTRS256
|
||||
_mm256_storeu_epi32 (void *__P, __m256i __A)
|
||||
{
|
||||
struct __storeu_epi32 {
|
||||
__m256i __v;
|
||||
} __attribute__((__packed__, __may_alias__));
|
||||
((struct __storeu_epi32*)__P)->__v = __A;
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS256
|
||||
_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
|
||||
{
|
||||
@@ -7769,97 +7984,97 @@ _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
|
||||
|
||||
#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
|
||||
(__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
|
||||
(double const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
|
||||
(__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
|
||||
(long long const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
|
||||
(__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
|
||||
(double const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
|
||||
(__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
|
||||
(long long const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
|
||||
(__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
|
||||
(float const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
|
||||
(__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
|
||||
(int const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v2di)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
|
||||
(__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
|
||||
(float const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
|
||||
(__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
|
||||
(int const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4di)(__m256i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
|
||||
(__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
|
||||
(double const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
|
||||
(__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
|
||||
(long long const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
|
||||
(__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
|
||||
(double const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
|
||||
(__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
|
||||
(long long const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
|
||||
(__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
|
||||
(float const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
|
||||
(__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
|
||||
(int const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v4si)(__m128i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
|
||||
(__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
|
||||
(float const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v8si)(__m256i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
|
||||
(__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
|
||||
(int const *)(addr), \
|
||||
(void const *)(addr), \
|
||||
(__v8si)(__m256i)(index), \
|
||||
(__mmask8)(mask), (int)(scale))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user