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