/* Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation. You should have received a copy of the GNU General Public License and a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ /* Implemented from the specification included in the Intel C++ Compiler User Guide and Reference, version 9.1. */ #ifndef _TMMINTRIN_H_INCLUDED #define _TMMINTRIN_H_INCLUDED /* We need definitions from the SSE3, SSE2 and SSE header files*/ #include <pmmintrin.h> #ifndef __SSSE3__ #pragma GCC push_options #pragma GCC target("ssse3") #define __DISABLE_SSSE3__ #endif /* __SSSE3__ */ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_phaddw128 ((__v8hi)__X, (__v8hi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_epi32 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_phaddd128 ((__v4si)__X, (__v4si)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadds_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_phaddsw128 ((__v8hi)__X, (__v8hi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_phaddw ((__v4hi)__X, (__v4hi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_pi32 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_phaddd ((__v2si)__X, (__v2si)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadds_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_phaddsw ((__v4hi)__X, (__v4hi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_phsubw128 ((__v8hi)__X, (__v8hi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_epi32 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_phsubd128 ((__v4si)__X, (__v4si)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsubs_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_phsubsw128 ((__v8hi)__X, (__v8hi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_phsubw ((__v4hi)__X, (__v4hi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_pi32 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_phsubd ((__v2si)__X, (__v2si)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsubs_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_phsubsw ((__v4hi)__X, (__v4hi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maddubs_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_pmaddubsw128 ((__v16qi)__X, (__v16qi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maddubs_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_pmaddubsw ((__v8qi)__X, (__v8qi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhrs_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_pmulhrsw128 ((__v8hi)__X, (__v8hi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhrs_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_pmulhrsw ((__v4hi)__X, (__v4hi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_epi8 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_pshufb128 ((__v16qi)__X, (__v16qi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pi8 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_pshufb ((__v8qi)__X, (__v8qi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sign_epi8 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_psignb128 ((__v16qi)__X, (__v16qi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sign_epi16 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_psignw128 ((__v8hi)__X, (__v8hi)__Y); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sign_epi32 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_psignd128 ((__v4si)__X, (__v4si)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sign_pi8 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_psignb ((__v8qi)__X, (__v8qi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sign_pi16 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_psignw ((__v4hi)__X, (__v4hi)__Y); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sign_pi32 (__m64 __X, __m64 __Y) { return (__m64) __builtin_ia32_psignd ((__v2si)__X, (__v2si)__Y); } #ifdef __OPTIMIZE__ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_alignr_epi8(__m128i __X, __m128i __Y, const int __N) { return (__m128i) __builtin_ia32_palignr128 ((__v2di)__X, (__v2di)__Y, __N * 8); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_alignr_pi8(__m64 __X, __m64 __Y, const int __N) { return (__m64) __builtin_ia32_palignr ((__v1di)__X, (__v1di)__Y, __N * 8); } #else #define _mm_alignr_epi8(X, Y, N) \ ((__m128i) __builtin_ia32_palignr128 ((__v2di)(__m128i)(X), \ (__v2di)(__m128i)(Y), \ (int)(N) * 8)) #define _mm_alignr_pi8(X, Y, N) \ ((__m64) __builtin_ia32_palignr ((__v1di)(__m64)(X), \ (__v1di)(__m64)(Y), \ (int)(N) * 8)) #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_abs_epi8 (__m128i __X) { return (__m128i) __builtin_ia32_pabsb128 ((__v16qi)__X); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_abs_epi16 (__m128i __X) { return (__m128i) __builtin_ia32_pabsw128 ((__v8hi)__X); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_abs_epi32 (__m128i __X) { return (__m128i) __builtin_ia32_pabsd128 ((__v4si)__X); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_abs_pi8 (__m64 __X) { return (__m64) __builtin_ia32_pabsb ((__v8qi)__X); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_abs_pi16 (__m64 __X) { return (__m64) __builtin_ia32_pabsw ((__v4hi)__X); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_abs_pi32 (__m64 __X) { return (__m64) __builtin_ia32_pabsd ((__v2si)__X); } #ifdef __DISABLE_SSSE3__ #undef __DISABLE_SSSE3__ #pragma GCC pop_options #endif /* __DISABLE_SSSE3__ */ #endif /* _TMMINTRIN_H_INCLUDED */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
sanitizer | Folder | 0755 |
|
|
adxintrin.h | File | 2.8 KB | 0644 |
|
ammintrin.h | File | 3.14 KB | 0644 |
|
avx2intrin.h | File | 57.26 KB | 0644 |
|
avx5124fmapsintrin.h | File | 6.38 KB | 0644 |
|
avx5124vnniwintrin.h | File | 4.16 KB | 0644 |
|
avx512bitalgintrin.h | File | 8.64 KB | 0644 |
|
avx512bwintrin.h | File | 99.13 KB | 0644 |
|
avx512cdintrin.h | File | 5.69 KB | 0644 |
|
avx512dqintrin.h | File | 83.37 KB | 0644 |
|
avx512erintrin.h | File | 12.66 KB | 0644 |
|
avx512fintrin.h | File | 475.38 KB | 0644 |
|
avx512ifmaintrin.h | File | 3.35 KB | 0644 |
|
avx512ifmavlintrin.h | File | 5.26 KB | 0644 |
|
avx512pfintrin.h | File | 10.05 KB | 0644 |
|
avx512vbmi2intrin.h | File | 19.35 KB | 0644 |
|
avx512vbmi2vlintrin.h | File | 36.25 KB | 0644 |
|
avx512vbmiintrin.h | File | 4.81 KB | 0644 |
|
avx512vbmivlintrin.h | File | 8.17 KB | 0644 |
|
avx512vlbwintrin.h | File | 140.48 KB | 0644 |
|
avx512vldqintrin.h | File | 59.88 KB | 0644 |
|
avx512vlintrin.h | File | 414.04 KB | 0644 |
|
avx512vnniintrin.h | File | 4.85 KB | 0644 |
|
avx512vnnivlintrin.h | File | 8.05 KB | 0644 |
|
avx512vpopcntdqintrin.h | File | 3.04 KB | 0644 |
|
avx512vpopcntdqvlintrin.h | File | 4.56 KB | 0644 |
|
avxintrin.h | File | 49.43 KB | 0644 |
|
bmi2intrin.h | File | 3.31 KB | 0644 |
|
bmiintrin.h | File | 5.5 KB | 0644 |
|
bmmintrin.h | File | 1.13 KB | 0644 |
|
cet.h | File | 2.6 KB | 0644 |
|
cetintrin.h | File | 3.25 KB | 0644 |
|
clflushoptintrin.h | File | 1.62 KB | 0644 |
|
clwbintrin.h | File | 1.55 KB | 0644 |
|
clzerointrin.h | File | 1.46 KB | 0644 |
|
cpuid.h | File | 8.72 KB | 0644 |
|
cross-stdarg.h | File | 2.5 KB | 0644 |
|
emmintrin.h | File | 49.84 KB | 0644 |
|
f16cintrin.h | File | 3.33 KB | 0644 |
|
float.h | File | 16.52 KB | 0644 |
|
fma4intrin.h | File | 8.92 KB | 0644 |
|
fmaintrin.h | File | 10.29 KB | 0644 |
|
fxsrintrin.h | File | 2.06 KB | 0644 |
|
gcov.h | File | 1.36 KB | 0644 |
|
gfniintrin.h | File | 14.7 KB | 0644 |
|
ia32intrin.h | File | 7.69 KB | 0644 |
|
immintrin.h | File | 5.33 KB | 0644 |
|
iso646.h | File | 1.24 KB | 0644 |
|
limits.h | File | 5.95 KB | 0644 |
|
lwpintrin.h | File | 3.32 KB | 0644 |
|
lzcntintrin.h | File | 2.34 KB | 0644 |
|
mm3dnow.h | File | 6.91 KB | 0644 |
|
mm_malloc.h | File | 1.74 KB | 0644 |
|
mmintrin.h | File | 30.62 KB | 0644 |
|
movdirintrin.h | File | 2.29 KB | 0644 |
|
mwaitxintrin.h | File | 1.71 KB | 0644 |
|
nmmintrin.h | File | 1.26 KB | 0644 |
|
omp.h | File | 5.85 KB | 0644 |
|
openacc.h | File | 4.53 KB | 0644 |
|
pconfigintrin.h | File | 2.29 KB | 0644 |
|
pkuintrin.h | File | 1.7 KB | 0644 |
|
pmmintrin.h | File | 4.27 KB | 0644 |
|
popcntintrin.h | File | 1.71 KB | 0644 |
|
prfchwintrin.h | File | 1.41 KB | 0644 |
|
rdseedintrin.h | File | 1.97 KB | 0644 |
|
rtmintrin.h | File | 2.67 KB | 0644 |
|
sgxintrin.h | File | 6.92 KB | 0644 |
|
shaintrin.h | File | 3.13 KB | 0644 |
|
smmintrin.h | File | 27.74 KB | 0644 |
|
stdalign.h | File | 1.18 KB | 0644 |
|
stdarg.h | File | 3.98 KB | 0644 |
|
stdatomic.h | File | 9.1 KB | 0644 |
|
stdbool.h | File | 1.49 KB | 0644 |
|
stddef.h | File | 13.81 KB | 0644 |
|
stdfix.h | File | 5.86 KB | 0644 |
|
stdint-gcc.h | File | 9.24 KB | 0644 |
|
stdint.h | File | 328 B | 0644 |
|
stdnoreturn.h | File | 1.11 KB | 0644 |
|
syslimits.h | File | 330 B | 0644 |
|
tbmintrin.h | File | 5.12 KB | 0644 |
|
tmmintrin.h | File | 8.15 KB | 0644 |
|
unwind.h | File | 10.65 KB | 0644 |
|
vaesintrin.h | File | 4.55 KB | 0644 |
|
varargs.h | File | 139 B | 0644 |
|
vpclmulqdqintrin.h | File | 3.4 KB | 0644 |
|
wbnoinvdintrin.h | File | 1.58 KB | 0644 |
|
wmmintrin.h | File | 4.55 KB | 0644 |
|
x86intrin.h | File | 2.06 KB | 0644 |
|
xmmintrin.h | File | 41.22 KB | 0644 |
|
xopintrin.h | File | 27.9 KB | 0644 |
|
xsavecintrin.h | File | 1.78 KB | 0644 |
|
xsaveintrin.h | File | 2.46 KB | 0644 |
|
xsaveoptintrin.h | File | 1.86 KB | 0644 |
|
xsavesintrin.h | File | 2.11 KB | 0644 |
|
xtestintrin.h | File | 1.65 KB | 0644 |
|