11188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker/*===---- x86intrin.h - X86 intrinsics -------------------------------------===
21188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker *
31188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * Permission is hereby granted, free of charge, to any person obtaining a copy
41188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * of this software and associated documentation files (the "Software"), to deal
51188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * in the Software without restriction, including without limitation the rights
61188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
71188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * copies of the Software, and to permit persons to whom the Software is
81188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * furnished to do so, subject to the following conditions:
91188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker *
101188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * The above copyright notice and this permission notice shall be included in
111188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * all copies or substantial portions of the Software.
121188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker *
131188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
141188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
151188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
161188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
171188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
181188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
191188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * THE SOFTWARE.
201188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker *
211188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker *===-----------------------------------------------------------------------===
221188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker */
231188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
241188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#ifndef __X86INTRIN_H
251188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#define __X86INTRIN_H
261188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
271188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <ia32intrin.h>
281188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
291188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <immintrin.h>
301188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
311188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__3dNOW__)
321188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <mm3dnow.h>
331188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
341188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
351188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI__)
361188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <bmiintrin.h>
371188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
381188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
391188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI2__)
401188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <bmi2intrin.h>
411188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
421188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
431188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__LZCNT__)
441188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <lzcntintrin.h>
451188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
461188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
471188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__POPCNT__)
481188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <popcntintrin.h>
491188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
501188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
511188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__)
521188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <rdseedintrin.h>
531188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
541188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
551188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PRFCHW__)
561188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <prfchwintrin.h>
571188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
581188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
591188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE4A__)
601188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <ammintrin.h>
611188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
621188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
631188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA4__)
641188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <fma4intrin.h>
651188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
661188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
671188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XOP__)
681188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <xopintrin.h>
691188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
701188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
711188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__TBM__)
721188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <tbmintrin.h>
731188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
741188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
751188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__F16C__)
761188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <f16cintrin.h>
771188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
781188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
791188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MWAITX__)
801188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#include <mwaitxintrin.h>
811188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif
821188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
831188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker/* FIXME: LWP */
841188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker
851188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif /* __X86INTRIN_H */
86