1*e4b17023SJohn Marino /* Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. 2*e4b17023SJohn Marino 3*e4b17023SJohn Marino This file is part of GCC. 4*e4b17023SJohn Marino 5*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify 6*e4b17023SJohn Marino it under the terms of the GNU General Public License as published by 7*e4b17023SJohn Marino the Free Software Foundation; either version 3, or (at your option) 8*e4b17023SJohn Marino any later version. 9*e4b17023SJohn Marino 10*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful, 11*e4b17023SJohn Marino but WITHOUT ANY WARRANTY; without even the implied warranty of 12*e4b17023SJohn Marino MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*e4b17023SJohn Marino GNU General Public License for more details. 14*e4b17023SJohn Marino 15*e4b17023SJohn Marino Under Section 7 of GPL version 3, you are granted additional 16*e4b17023SJohn Marino permissions described in the GCC Runtime Library Exception, version 17*e4b17023SJohn Marino 3.1, as published by the Free Software Foundation. 18*e4b17023SJohn Marino 19*e4b17023SJohn Marino You should have received a copy of the GNU General Public License and 20*e4b17023SJohn Marino a copy of the GCC Runtime Library Exception along with this program; 21*e4b17023SJohn Marino see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 22*e4b17023SJohn Marino <http://www.gnu.org/licenses/>. */ 23*e4b17023SJohn Marino 24*e4b17023SJohn Marino #ifndef _X86INTRIN_H_INCLUDED 25*e4b17023SJohn Marino #define _X86INTRIN_H_INCLUDED 26*e4b17023SJohn Marino 27*e4b17023SJohn Marino #include <ia32intrin.h> 28*e4b17023SJohn Marino 29*e4b17023SJohn Marino #ifdef __MMX__ 30*e4b17023SJohn Marino #include <mmintrin.h> 31*e4b17023SJohn Marino #endif 32*e4b17023SJohn Marino 33*e4b17023SJohn Marino #ifdef __SSE__ 34*e4b17023SJohn Marino #include <xmmintrin.h> 35*e4b17023SJohn Marino #endif 36*e4b17023SJohn Marino 37*e4b17023SJohn Marino #ifdef __SSE2__ 38*e4b17023SJohn Marino #include <emmintrin.h> 39*e4b17023SJohn Marino #endif 40*e4b17023SJohn Marino 41*e4b17023SJohn Marino #ifdef __SSE3__ 42*e4b17023SJohn Marino #include <pmmintrin.h> 43*e4b17023SJohn Marino #endif 44*e4b17023SJohn Marino 45*e4b17023SJohn Marino #ifdef __SSSE3__ 46*e4b17023SJohn Marino #include <tmmintrin.h> 47*e4b17023SJohn Marino #endif 48*e4b17023SJohn Marino 49*e4b17023SJohn Marino #ifdef __SSE4A__ 50*e4b17023SJohn Marino #include <ammintrin.h> 51*e4b17023SJohn Marino #endif 52*e4b17023SJohn Marino 53*e4b17023SJohn Marino #if defined (__SSE4_2__) || defined (__SSE4_1__) 54*e4b17023SJohn Marino #include <smmintrin.h> 55*e4b17023SJohn Marino #endif 56*e4b17023SJohn Marino 57*e4b17023SJohn Marino #if defined (__AES__) || defined (__PCLMUL__) 58*e4b17023SJohn Marino #include <wmmintrin.h> 59*e4b17023SJohn Marino #endif 60*e4b17023SJohn Marino 61*e4b17023SJohn Marino /* For including AVX instructions */ 62*e4b17023SJohn Marino #include <immintrin.h> 63*e4b17023SJohn Marino 64*e4b17023SJohn Marino #ifdef __3dNOW__ 65*e4b17023SJohn Marino #include <mm3dnow.h> 66*e4b17023SJohn Marino #endif 67*e4b17023SJohn Marino 68*e4b17023SJohn Marino #ifdef __FMA4__ 69*e4b17023SJohn Marino #include <fma4intrin.h> 70*e4b17023SJohn Marino #endif 71*e4b17023SJohn Marino 72*e4b17023SJohn Marino #ifdef __XOP__ 73*e4b17023SJohn Marino #include <xopintrin.h> 74*e4b17023SJohn Marino #endif 75*e4b17023SJohn Marino 76*e4b17023SJohn Marino #ifdef __LWP__ 77*e4b17023SJohn Marino #include <lwpintrin.h> 78*e4b17023SJohn Marino #endif 79*e4b17023SJohn Marino 80*e4b17023SJohn Marino #ifdef __BMI__ 81*e4b17023SJohn Marino #include <bmiintrin.h> 82*e4b17023SJohn Marino #endif 83*e4b17023SJohn Marino 84*e4b17023SJohn Marino #ifdef __BMI2__ 85*e4b17023SJohn Marino #include <bmi2intrin.h> 86*e4b17023SJohn Marino #endif 87*e4b17023SJohn Marino 88*e4b17023SJohn Marino #ifdef __TBM__ 89*e4b17023SJohn Marino #include <tbmintrin.h> 90*e4b17023SJohn Marino #endif 91*e4b17023SJohn Marino 92*e4b17023SJohn Marino #ifdef __LZCNT__ 93*e4b17023SJohn Marino #include <lzcntintrin.h> 94*e4b17023SJohn Marino #endif 95*e4b17023SJohn Marino 96*e4b17023SJohn Marino #ifdef __POPCNT__ 97*e4b17023SJohn Marino #include <popcntintrin.h> 98*e4b17023SJohn Marino #endif 99*e4b17023SJohn Marino 100*e4b17023SJohn Marino #endif /* _X86INTRIN_H_INCLUDED */ 101