aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.h
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2008-03-13 10:49:43 +0100
committerUros Bizjak <uros@gcc.gnu.org>2008-03-13 10:49:43 +0100
commit8a6c843029229e6d289b1a0f31eedbceb3f73d62 (patch)
tree00e1a4f280957573f0753c2ca1663b6b508d2af3 /gcc/config/i386/i386.h
parent22aee8c5a9dabc4d5a716eaa0a6a65e71c4e0f03 (diff)
downloadgcc-8a6c843029229e6d289b1a0f31eedbceb3f73d62.zip
gcc-8a6c843029229e6d289b1a0f31eedbceb3f73d62.tar.gz
gcc-8a6c843029229e6d289b1a0f31eedbceb3f73d62.tar.bz2
re PR c++/35553 (-fkeep-inline-functions and -O errors out in SSE headers)
PR target/35553 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define __SSE_USE_INLINED_FUNC__ when using -flag-keep-inline-functions together with optimization. * config/i386/xmmintrin.h: Use __SSE_USE_INLINED_FUNC__ instead of __OPTIMIZE__ to choose between inlined intrinsic SSE function having immediate arguments and its equivalent macro definition. * config/i386/bmintrin.h: Ditto. * config/i386/smmintrin.h: Ditto. * config/i386/tmmintrin.h: Ditto. * config/i386/mmintrin-common.h: Ditto. * config/i386/ammintrin.h: Ditto. * config/i386/emmintrin.h: Ditto. testsuite/ChangeLog: PR target/35553 * g++.dg/other/i386-3.C: New test. From-SVN: r133164
Diffstat (limited to 'gcc/config/i386/i386.h')
-rw-r--r--gcc/config/i386/i386.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 98cb72a..ea0a820 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -691,6 +691,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
builtin_define ("__SSE_MATH__"); \
if (TARGET_SSE_MATH && TARGET_SSE2) \
builtin_define ("__SSE2_MATH__"); \
+ \
+ /* Use inlined intrinsic SSE function having immediate \
+ arguments instead of a macro definition. */ \
+ if (optimize && !flag_keep_inline_functions) \
+ builtin_define ("__SSE_USE_INLINED_FUNC__"); \
} \
while (0)