10b57cec5SDimitry Andric /*===---- x86intrin.h - X86 intrinsics -------------------------------------=== 20b57cec5SDimitry Andric * 30b57cec5SDimitry Andric * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric * See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric * 70b57cec5SDimitry Andric *===-----------------------------------------------------------------------=== 80b57cec5SDimitry Andric */ 90b57cec5SDimitry Andric 100b57cec5SDimitry Andric #ifndef __X86INTRIN_H 110b57cec5SDimitry Andric #define __X86INTRIN_H 120b57cec5SDimitry Andric 130b57cec5SDimitry Andric #include <ia32intrin.h> 140b57cec5SDimitry Andric 150b57cec5SDimitry Andric #include <immintrin.h> 160b57cec5SDimitry Andric 175ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 185ffd83dbSDimitry Andric defined(__3dNOW__) 190b57cec5SDimitry Andric #include <mm3dnow.h> 200b57cec5SDimitry Andric #endif 210b57cec5SDimitry Andric 225ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 235ffd83dbSDimitry Andric defined(__PRFCHW__) 240b57cec5SDimitry Andric #include <prfchwintrin.h> 250b57cec5SDimitry Andric #endif 260b57cec5SDimitry Andric 275ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 285ffd83dbSDimitry Andric defined(__SSE4A__) 290b57cec5SDimitry Andric #include <ammintrin.h> 300b57cec5SDimitry Andric #endif 310b57cec5SDimitry Andric 325ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 335ffd83dbSDimitry Andric defined(__FMA4__) 340b57cec5SDimitry Andric #include <fma4intrin.h> 350b57cec5SDimitry Andric #endif 360b57cec5SDimitry Andric 375ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 385ffd83dbSDimitry Andric defined(__XOP__) 390b57cec5SDimitry Andric #include <xopintrin.h> 400b57cec5SDimitry Andric #endif 410b57cec5SDimitry Andric 425ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 435ffd83dbSDimitry Andric defined(__TBM__) 440b57cec5SDimitry Andric #include <tbmintrin.h> 450b57cec5SDimitry Andric #endif 460b57cec5SDimitry Andric 475ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 485ffd83dbSDimitry Andric defined(__LWP__) 490b57cec5SDimitry Andric #include <lwpintrin.h> 500b57cec5SDimitry Andric #endif 510b57cec5SDimitry Andric 525ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 535ffd83dbSDimitry Andric defined(__MWAITX__) 540b57cec5SDimitry Andric #include <mwaitxintrin.h> 550b57cec5SDimitry Andric #endif 560b57cec5SDimitry Andric 575ffd83dbSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 585ffd83dbSDimitry Andric defined(__CLZERO__) 590b57cec5SDimitry Andric #include <clzerointrin.h> 600b57cec5SDimitry Andric #endif 610b57cec5SDimitry Andric 62*753f127fSDimitry Andric #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ 63*753f127fSDimitry Andric defined(__RDPRU__) 64*753f127fSDimitry Andric #include <rdpruintrin.h> 65*753f127fSDimitry Andric #endif 660b57cec5SDimitry Andric 670b57cec5SDimitry Andric #endif /* __X86INTRIN_H */ 68