From: Craig Topper Date: Wed, 23 May 2018 18:32:58 +0000 (+0000) Subject: [X86] Move all Intel defined intrinsic includes into immintrin.h X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7eb6f679d1b5344e56c2401170a3a9cfeac8b802;p=clang [X86] Move all Intel defined intrinsic includes into immintrin.h This matches the Intel documentation which shows them available by importing immintrin.h. x86intrin.h also includes immintrin.h so anyone including x86intrin.h will still get them. This is different than gcc, but I don't think we were a perfect match there already. I'm unclear what gcc's policy is about how they choose which to add things to. Differential Revision: https://reviews.llvm.org/D47182 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@333110 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/cldemoteintrin.h b/lib/Headers/cldemoteintrin.h index 1b54dd43b3..fa78148ebf 100644 --- a/lib/Headers/cldemoteintrin.h +++ b/lib/Headers/cldemoteintrin.h @@ -21,7 +21,7 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/clzerointrin.h b/lib/Headers/clzerointrin.h index 9fb1610090..07628acd80 100644 --- a/lib/Headers/clzerointrin.h +++ b/lib/Headers/clzerointrin.h @@ -20,7 +20,7 @@ * *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/immintrin.h b/lib/Headers/immintrin.h index e5127181be..6d3407f743 100644 --- a/lib/Headers/immintrin.h +++ b/lib/Headers/immintrin.h @@ -90,6 +90,10 @@ #include #endif +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__POPCNT__) +#include +#endif + #if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA__) #include #endif @@ -339,4 +343,41 @@ _writegsbase_u64(unsigned long long __V) * whereas others are also available at all times. */ #include +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLZERO__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WBNOINVD__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLDEMOTE__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WAITPKG__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || \ + defined(__MOVDIRI__) || defined(__MOVDIR64B__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PCONFIG__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SGX__) +#include +#endif + +#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PTWRITE__) +#include +#endif + #endif /* __IMMINTRIN_H */ diff --git a/lib/Headers/movdirintrin.h b/lib/Headers/movdirintrin.h index 10322e17e4..ba0978f46c 100644 --- a/lib/Headers/movdirintrin.h +++ b/lib/Headers/movdirintrin.h @@ -20,7 +20,7 @@ * *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/pconfigintrin.h b/lib/Headers/pconfigintrin.h index 6267ec1f9d..fee3cad388 100644 --- a/lib/Headers/pconfigintrin.h +++ b/lib/Headers/pconfigintrin.h @@ -21,7 +21,7 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/ptwriteintrin.h b/lib/Headers/ptwriteintrin.h index 4dacf1743f..1bb1df0a2e 100644 --- a/lib/Headers/ptwriteintrin.h +++ b/lib/Headers/ptwriteintrin.h @@ -21,7 +21,7 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/rdseedintrin.h b/lib/Headers/rdseedintrin.h index 421f4ea487..419466932c 100644 --- a/lib/Headers/rdseedintrin.h +++ b/lib/Headers/rdseedintrin.h @@ -21,7 +21,7 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/sgxintrin.h b/lib/Headers/sgxintrin.h index 20694f5d37..20aee76610 100644 --- a/lib/Headers/sgxintrin.h +++ b/lib/Headers/sgxintrin.h @@ -21,7 +21,7 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/waitpkgintrin.h b/lib/Headers/waitpkgintrin.h index 184c4aa462..e29d6cfa5a 100644 --- a/lib/Headers/waitpkgintrin.h +++ b/lib/Headers/waitpkgintrin.h @@ -20,7 +20,7 @@ * *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/wbnoinvdintrin.h b/lib/Headers/wbnoinvdintrin.h index 0852dc1729..cad83368db 100644 --- a/lib/Headers/wbnoinvdintrin.h +++ b/lib/Headers/wbnoinvdintrin.h @@ -21,7 +21,7 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __X86INTRIN_H +#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H #error "Never use directly; include instead." #endif diff --git a/lib/Headers/x86intrin.h b/lib/Headers/x86intrin.h index afece4c66d..ec3e384364 100644 --- a/lib/Headers/x86intrin.h +++ b/lib/Headers/x86intrin.h @@ -32,26 +32,6 @@ #include #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI2__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__LZCNT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__POPCNT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__) -#include -#endif - #if !defined(_MSC_VER) || __has_feature(modules) || defined(__PRFCHW__) #include #endif @@ -76,45 +56,8 @@ #include #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__F16C__) -#include -#endif - #if !defined(_MSC_VER) || __has_feature(modules) || defined(__MWAITX__) #include #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLZERO__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WBNOINVD__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLDEMOTE__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WAITPKG__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - defined(__MOVDIRI__) || defined(__MOVDIR64B__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PCONFIG__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SGX__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PTWRITE__) -#include -#endif - #endif /* __X86INTRIN_H */