config.gcc (extra_headers): For x86 and x86-64, remove gmmintrin.h, add immintrin...
authorH.J. Lu <hongjiu.lu@intel.com>
Fri, 21 Nov 2008 14:05:02 +0000 (14:05 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Fri, 21 Nov 2008 14:05:02 +0000 (06:05 -0800)
gcc/

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.

gcc/testsuite/

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.

Co-Authored-By: Xuepeng Guo <xuepeng.guo@intel.com>
From-SVN: r142090

gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/avxintrin.h [moved from gcc/config/i386/gmmintrin.h with 99% similarity]
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/i386-5.C
gcc/testsuite/g++.dg/other/i386-6.C
gcc/testsuite/gcc.target/i386/avx-1.c
gcc/testsuite/gcc.target/i386/avx-2.c
gcc/testsuite/gcc.target/i386/m256-check.h

index 3967476..b73d83c 100644 (file)
@@ -1,3 +1,15 @@
+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
index a78dcc0..b0e9340 100644 (file)
@@ -298,7 +298,7 @@ i[34567]86-*-*)
        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
@@ -307,7 +307,7 @@ x86_64-*-*)
        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-*-*)
similarity index 99%
rename from gcc/config/i386/gmmintrin.h
rename to gcc/config/i386/avxintrin.h
index 1c6bb18..7aea85d 100644 (file)
 /* 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)));
@@ -1476,7 +1469,3 @@ _mm256_castsi128_si256 (__m128i __A)
 {
   return (__m256i) __builtin_ia32_si256_si ((__v4si)__A);
 }
-
-#endif /* __AVX__ */
-
-#endif /* _GMMINTRIN_H_INCLUDED */
index 38c36f2..3f99b5a 100644 (file)
@@ -1,3 +1,12 @@
+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
index 2556e7e..d9b5460 100644 (file)
@@ -5,5 +5,5 @@
 
 #include <wmmintrin.h>
 #include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
 #include <mm3dnow.h>
index 905ac97..15f1d52 100644 (file)
@@ -5,7 +5,7 @@
 
 #include <wmmintrin.h>
 #include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
 #include <mm3dnow.h>
 
 int dummy;
index 3cda080..d093d6c 100644 (file)
@@ -18,7 +18,7 @@
 #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>
index 6699558..62f6538 100644 (file)
@@ -14,7 +14,7 @@
 
 #include <wmmintrin.h>
 #include <bmmintrin.h>
-#include <gmmintrin.h>
+#include <immintrin.h>
 #include <mm3dnow.h>
 
 #define _CONCAT(x,y) x ## y
@@ -53,7 +53,7 @@
 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)
index 324af75..e184355 100644 (file)
@@ -1,4 +1,4 @@
-#include <gmmintrin.h>
+#include <immintrin.h>
 #include "m128-check.h"
 
 #ifndef max