From 7cb4fae8da8f541f43d39896c989b06c69fd7821 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 14 Jul 2013 05:41:45 +0000 Subject: [PATCH] Add missing include guards into headers in lib/Headers. While it may appear that these headers should not be included more than once, they are in fact included twice when building our builtins module (in order for it to generate submodules for them), and without this, any modular build enabling AVX and including any builtin header fails. Testing this is tricky because including any of these headers in a modular build is liable to fail, due to unrelated builtin headers in the same module including headers which might not be available on the system running the tests. Suggestion on that front are welcome (but we're getting close to being able to run a buildbot that has modules enabled for all tests, which would nicely solve the testing problem). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186275 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Headers/avx2intrin.h | 5 +++++ lib/Headers/avxintrin.h | 5 +++++ lib/Headers/rdseedintrin.h | 4 ++++ lib/Headers/rtmintrin.h | 5 +++++ 4 files changed, 19 insertions(+) diff --git a/lib/Headers/avx2intrin.h b/lib/Headers/avx2intrin.h index 63b1efc105..1887fc80e6 100644 --- a/lib/Headers/avx2intrin.h +++ b/lib/Headers/avx2intrin.h @@ -25,6 +25,9 @@ #error "Never use directly; include instead." #endif +#ifndef __AVX2INTRIN_H +#define __AVX2INTRIN_H + /* SSE4 Multiple Packed Sums of Absolute Difference. */ #define _mm256_mpsadbw_epu8(X, Y, M) __builtin_ia32_mpsadbw256((X), (Y), (M)) @@ -1199,3 +1202,5 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) (__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_setzero_si256(), \ (const __v4di *)__m, (__v4di)__i, \ (__v4di)_mm256_set1_epi64x(-1), (s)); }) + +#endif /* __AVX2INTRIN_H */ diff --git a/lib/Headers/avxintrin.h b/lib/Headers/avxintrin.h index 0683a65fac..f522ac72f2 100644 --- a/lib/Headers/avxintrin.h +++ b/lib/Headers/avxintrin.h @@ -25,6 +25,9 @@ #error "Never use directly; include instead." #endif +#ifndef __AVXINTRIN_H +#define __AVXINTRIN_H + typedef double __v4df __attribute__ ((__vector_size__ (32))); typedef float __v8sf __attribute__ ((__vector_size__ (32))); typedef long long __v4di __attribute__ ((__vector_size__ (32))); @@ -1220,3 +1223,5 @@ _mm256_storeu2_m128i(__m128i *__addr_hi, __m128i *__addr_lo, __m256i __a) __v128 = _mm256_extractf128_si256(__a, 1); __builtin_ia32_storedqu((char *)__addr_hi, (__v16qi)__v128); } + +#endif /* __AVXINTRIN_H */ diff --git a/lib/Headers/rdseedintrin.h b/lib/Headers/rdseedintrin.h index 54aabd177a..0fef1fa496 100644 --- a/lib/Headers/rdseedintrin.h +++ b/lib/Headers/rdseedintrin.h @@ -25,6 +25,9 @@ #error "Never use directly; include instead." #endif +#ifndef __RDSEEDINTRIN_H +#define __RDSEEDINTRIN_H + #ifdef __RDSEED__ static __inline__ int __attribute__((__always_inline__, __nodebug__)) _rdseed16_step(unsigned short *__p) @@ -46,3 +49,4 @@ _rdseed64_step(unsigned long long *__p) } #endif #endif /* __RDSEED__ */ +#endif /* __RDSEEDINTRIN_H */ diff --git a/lib/Headers/rtmintrin.h b/lib/Headers/rtmintrin.h index bdc2b99426..26149ca852 100644 --- a/lib/Headers/rtmintrin.h +++ b/lib/Headers/rtmintrin.h @@ -25,6 +25,9 @@ #error "Never use directly; include instead." #endif +#ifndef __RTMINTRIN_H +#define __RTMINTRIN_H + #define _XBEGIN_STARTED (~0u) #define _XABORT_EXPLICIT (1 << 0) #define _XABORT_RETRY (1 << 1) @@ -47,3 +50,5 @@ _xend(void) } #define _xabort(imm) __builtin_ia32_xabort((imm)) + +#endif /* __RTMINTRIN_H */ -- 2.40.0