+2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
+ Xuepeng Guo <xuepeng.guo@intel.com>
+
+ * config.gcc (extra_headers): For x86 and x86-64, remove
+ gmmintrin.h, add immintrin.h and avxintrin.h.
+
+ * config/i386/gmmintrin.h: Renamed to ...
+ * config/i386/avxintrin.h: This. Don't include intrinsics if
+ _IMMINTRIN_H_INCLUDED is undedined.
+
+ * config/i386/immintrin.h: New.
+
2008-11-21 Jakub Jelinek <jakub@redhat.com>
PR target/38208
extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
nmmintrin.h bmmintrin.h mmintrin-common.h
- wmmintrin.h gmmintrin.h cross-stdarg.h"
+ wmmintrin.h immintrin.h avxintrin.h cross-stdarg.h"
;;
x86_64-*-*)
cpu_type=i386
extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
nmmintrin.h bmmintrin.h mmintrin-common.h
- wmmintrin.h gmmintrin.h cross-stdarg.h"
+ wmmintrin.h immintrin.h avxintrin.h cross-stdarg.h"
need_64bit_hwint=yes
;;
ia64-*-*)
/* Implemented from the specification included in the Intel C++ Compiler
User Guide and Reference, version 11.0. */
-#ifndef _GMMINTRIN_H_INCLUDED
-#define _GMMINTRIN_H_INCLUDED
-
-#ifndef __AVX__
-# error "AVX instruction set not enabled"
-#else
-
-/* We need definitions from the SSE4, SSSE3, SSE3, SSE2 and SSE header
- files. */
-#include <smmintrin.h>
+#ifndef _IMMINTRIN_H_INCLUDED
+# error "Never use <avxintrin.h> directly; include <immintrin.h> instead."
+#endif
/* Internal data types for implementing the intrinsics. */
typedef double __v4df __attribute__ ((__vector_size__ (32)));
{
return (__m256i) __builtin_ia32_si256_si ((__v4si)__A);
}
-
-#endif /* __AVX__ */
-
-#endif /* _GMMINTRIN_H_INCLUDED */
+2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/avx-1.c: Include <immintrin.h> instead of
+ <gmmintrin.h>.
+ * gcc.target/i386/avx-2.c: Likewise.
+ * gcc.target/i386/m256-check.h: Likewise.
+ * g++.dg/other/i386-5.C: Likewise.
+ * g++.dg/other/i386-6.C: Likewise.
+
2008-11-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/37472
#include <wmmintrin.h>
#include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
#include <mm3dnow.h>
#include <wmmintrin.h>
#include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
#include <mm3dnow.h>
int dummy;
#define __builtin_ia32_extrqi(X, I, L) __builtin_ia32_extrqi(X, 1, 1)
#define __builtin_ia32_insertqi(X, Y, I, L) __builtin_ia32_insertqi(X, Y, 1, 1)
-/* gmmintrin.h */
+/* immintrin.h */
#define __builtin_ia32_blendpd256(X, Y, M) __builtin_ia32_blendpd256(X, Y, 1)
#define __builtin_ia32_blendps256(X, Y, M) __builtin_ia32_blendps256(X, Y, 1)
#define __builtin_ia32_dpps256(X, Y, M) __builtin_ia32_dpps256(X, Y, 1)
#include <wmmintrin.h>
#include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
#include <mm3dnow.h>
#include <wmmintrin.h>
#include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
#include <mm3dnow.h>
#define _CONCAT(x,y) x ## y
test_1x (_mm_extracti_si64, __m128i, __m128i, 1, 1)
test_2x (_mm_inserti_si64, __m128i, __m128i, __m128i, 1, 1)
-/* gmmintrin.h */
+/* immintrin.h */
test_2 (_mm256_blend_pd, __m256d, __m256d, __m256d, 1)
test_2 (_mm256_blend_ps, __m256, __m256, __m256, 1)
test_2 (_mm256_dp_ps, __m256, __m256, __m256, 1)
-#include <gmmintrin.h>
+#include <immintrin.h>
#include "m128-check.h"
#ifndef max