Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512ifmavlintrin.h
496 views
/*===------------- avx512ifmavlintrin.h - IFMA intrinsics ------------------===1*2*3* Permission is hereby granted, free of charge, to any person obtaining a copy4* of this software and associated documentation files (the "Software"), to deal5* in the Software without restriction, including without limitation the rights6* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell7* copies of the Software, and to permit persons to whom the Software is8* furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice shall be included in11* all copies or substantial portions of the Software.12*13* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR14* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,15* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE16* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER17* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,18* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN19* THE SOFTWARE.20*21*===-----------------------------------------------------------------------===22*/23#ifndef __IMMINTRIN_H24#error "Never use <avx512ifmavlintrin.h> directly; include <immintrin.h> instead."25#endif2627#ifndef __IFMAVLINTRIN_H28#define __IFMAVLINTRIN_H2930/* Define the default attributes for the functions in this file. */31#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl")))32333435static __inline__ __m128i __DEFAULT_FN_ATTRS36_mm_madd52hi_epu64 (__m128i __X, __m128i __Y, __m128i __Z)37{38return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __X,39(__v2di) __Y,40(__v2di) __Z,41(__mmask8) -1);42}4344static __inline__ __m128i __DEFAULT_FN_ATTRS45_mm_mask_madd52hi_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)46{47return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __W,48(__v2di) __X,49(__v2di) __Y,50(__mmask8) __M);51}5253static __inline__ __m128i __DEFAULT_FN_ATTRS54_mm_maskz_madd52hi_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z)55{56return (__m128i) __builtin_ia32_vpmadd52huq128_maskz ((__v2di) __X,57(__v2di) __Y,58(__v2di) __Z,59(__mmask8) __M);60}6162static __inline__ __m256i __DEFAULT_FN_ATTRS63_mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z)64{65return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __X,66(__v4di) __Y,67(__v4di) __Z,68(__mmask8) -1);69}7071static __inline__ __m256i __DEFAULT_FN_ATTRS72_mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X,73__m256i __Y)74{75return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __W,76(__v4di) __X,77(__v4di) __Y,78(__mmask8) __M);79}8081static __inline__ __m256i __DEFAULT_FN_ATTRS82_mm256_maskz_madd52hi_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z)83{84return (__m256i) __builtin_ia32_vpmadd52huq256_maskz ((__v4di) __X,85(__v4di) __Y,86(__v4di) __Z,87(__mmask8) __M);88}8990static __inline__ __m128i __DEFAULT_FN_ATTRS91_mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z)92{93return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __X,94(__v2di) __Y,95(__v2di) __Z,96(__mmask8) -1);97}9899static __inline__ __m128i __DEFAULT_FN_ATTRS100_mm_mask_madd52lo_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)101{102return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __W,103(__v2di) __X,104(__v2di) __Y,105(__mmask8) __M);106}107108static __inline__ __m128i __DEFAULT_FN_ATTRS109_mm_maskz_madd52lo_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z)110{111return (__m128i) __builtin_ia32_vpmadd52luq128_maskz ((__v2di) __X,112(__v2di) __Y,113(__v2di) __Z,114(__mmask8) __M);115}116117static __inline__ __m256i __DEFAULT_FN_ATTRS118_mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z)119{120return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __X,121(__v4di) __Y,122(__v4di) __Z,123(__mmask8) -1);124}125126static __inline__ __m256i __DEFAULT_FN_ATTRS127_mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X,128__m256i __Y)129{130return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __W,131(__v4di) __X,132(__v4di) __Y,133(__mmask8) __M);134}135136static __inline__ __m256i __DEFAULT_FN_ATTRS137_mm256_maskz_madd52lo_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z)138{139return (__m256i) __builtin_ia32_vpmadd52luq256_maskz ((__v4di) __X,140(__v4di) __Y,141(__v4di) __Z,142(__mmask8) __M);143}144145146#undef __DEFAULT_FN_ATTRS147148#endif149150151