This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello! It turns out that we need to switch definitions of SSE intrinsics with immediate arguments from inline functions to macros for -fkeep-inline-functions. Otherwise we error out with "emmintrin.h:1382: error: mask must be an immediate" and similar errors involving immediates. Fixed by introducing __SSE_USE_INLINED_FUNC__ builtin define that is defined when appropriate and by using this define through SSE headers. 2008-03-13 Uros Bizjak <ubizjak@gmail.com> 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: 2008-03-13 Uros Bizjak <ubizjak@gmail.com> PR target/35553 * g++.dg/other/i386-3.C: New test. Tested on i686-pc-linux-gnu. Patch is committed to SVN mainline, will commit to 4.3 branch when tests finish. Uros.
Attachment:
p.diff.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |