aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwarakanath Rajagopal <dwarak.rajagopal@amd.com>2008-12-12 16:53:27 +0000
committerDwarakanath Rajagopal <dwarak@gcc.gnu.org>2008-12-12 16:53:27 +0000
commit0f2dc4ccd7682ddb4f12a19e4554a797c405da4f (patch)
treeab1115a89d33d187e6f50e896d9a30fb8f81cb1d
parentc5245af511b0747b8d48f21663dca86d81570b95 (diff)
downloadgcc-0f2dc4ccd7682ddb4f12a19e4554a797c405da4f.zip
gcc-0f2dc4ccd7682ddb4f12a19e4554a797c405da4f.tar.gz
gcc-0f2dc4ccd7682ddb4f12a19e4554a797c405da4f.tar.bz2
x86intrin.h: New header file to support all x86 intrinsics
2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> * config/i386/x86intrin.h: New header file to support all x86 intrinsics * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h From-SVN: r142713
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config.gcc6
-rw-r--r--gcc/config/i386/x86intrin.h73
3 files changed, 83 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f20038d..c386069 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * config/i386/x86intrin.h: New header file to support all x86
+ intrinsics
+ * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
+
2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
PR target/38402
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 5e9e89d..ba44a951 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -298,7 +298,8 @@ 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 immintrin.h avxintrin.h cross-stdarg.h"
+ wmmintrin.h immintrin.h x86intrin.h avxintrin.h
+ cross-stdarg.h"
;;
x86_64-*-*)
cpu_type=i386
@@ -307,7 +308,8 @@ 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 immintrin.h avxintrin.h cross-stdarg.h"
+ wmmintrin.h immintrin.h x86intrin.h avxintrin.h
+ cross-stdarg.h"
need_64bit_hwint=yes
;;
ia64-*-*)
diff --git a/gcc/config/i386/x86intrin.h b/gcc/config/i386/x86intrin.h
new file mode 100644
index 0000000..ab18869
--- /dev/null
+++ b/gcc/config/i386/x86intrin.h
@@ -0,0 +1,73 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header file does not by itself cause
+ the resulting executable to be covered by the GNU General Public
+ License. This exception does not however invalidate any other
+ reasons why the executable file might be covered by the GNU General
+ Public License. */
+
+#ifndef _X86INTRIN_H_INCLUDED
+#define _X86INTRIN_H_INCLUDED
+
+#ifdef __MMX__
+#include <mmintrin.h>
+#endif
+
+#ifdef __SSE__
+#include <xmmintrin.h>
+#endif
+
+#ifdef __SSE2__
+#include <emmintrin.h>
+#endif
+
+#ifdef __SSE3__
+#include <pmmintrin.h>
+#endif
+
+#ifdef __SSSE3__
+#include <tmmintrin.h>
+#endif
+
+#ifdef __SSE4a__
+#include <ammintrin.h>
+#endif
+
+#if defined (__SSE4_2__) || defined (__SSE4_1__)
+#include <smmintrin.h>
+#endif
+
+#ifdef __SSE5__
+#include <bmmintrin.h>
+#endif
+
+#if defined (__AES__) || defined (__PCLMUL__)
+#include <wmmintrin.h>
+#endif
+
+/* For including AVX instructions */
+#include <immintrin.h>
+
+#ifdef __3dNOW__
+#include <mm3dnow.h>
+#endif
+
+#endif /* _X86INTRIN_H_INCLUDED */