This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/17603] [4.0 Regression] cpowf and cpowl give wrong results
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Dec 2004 01:09:18 -0000
- Subject: [Bug target/17603] [4.0 Regression] cpowf and cpowl give wrong results
- References: <20040922093853.17603.pcarlini@suse.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2004-12-16 01:09 -------
This patch caused it:
+2004-07-09 Jan Beulich <jbeulich@novell.com>
+
+ * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
+ their base modes. CTImode, TCmode, and XCmode must be passed in
memory.
+ TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
+ and V8QI are class SSE. All sufficiently small remaining vector modes
+ must be passed in one or two integer registers.
+ (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
+ returned in memory.
+ (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
+ __builtin_ia32_pmuludq128 have non-uniform argument and return types
+ and must thus be handled explicitly.
+ * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
+ MMX and XMM regs.
+ (movv8qi_internal, movv4hi_internal, movv2si_internal,
+ movv2sf_internal): Permit moving between MMX and XMM registers (since
+ MMX areguments and return values are passed in XMM registers).
+ (sse2_umulsidi3): Correct type and mode.
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |jbeulich at novell dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17603