summaryrefslogtreecommitdiff
path: root/gcc/config/i386/emmintrin.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386/emmintrin.h')
-rw-r--r--gcc/config/i386/emmintrin.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
index cf404a13536..c30f05657d6 100644
--- a/gcc/config/i386/emmintrin.h
+++ b/gcc/config/i386/emmintrin.h
@@ -27,13 +27,15 @@
#ifndef _EMMINTRIN_H_INCLUDED
#define _EMMINTRIN_H_INCLUDED
-#ifndef __SSE2__
-# error "SSE2 instruction set not enabled"
-#else
-
/* We need definitions from the SSE header files*/
#include <xmmintrin.h>
+#ifndef __SSE2__
+#pragma GCC push_options
+#pragma GCC target("sse2")
+#define __DISABLE_SSE2__
+#endif /* __SSE2__ */
+
/* SSE2 */
typedef double __v2df __attribute__ ((__vector_size__ (16)));
typedef long long __v2di __attribute__ ((__vector_size__ (16)));
@@ -1515,6 +1517,9 @@ _mm_castsi128_pd(__m128i __A)
return (__m128d) __A;
}
-#endif /* __SSE2__ */
+#ifdef __DISABLE_SSE2__
+#undef __DISABLE_SSE2__
+#pragma GCC pop_options
+#endif /* __DISABLE_SSE2__ */
#endif /* _EMMINTRIN_H_INCLUDED */