------- Comment #38 from guenter at roeck-us dot net 2006-09-02 13:23 ------- (In reply to comment #36) > Subject: Re: [4.1/4.2 Regression] returning constant double > > What is confusing to me is that the r->r case is using evmergehi > and evmergelo. This is placing the value in both halves of the SIMD > register. It seems like this could have been done with two "mr". > > It is ambiguous whether the pattern is trying to load the full 64 > bit register or not. > I think it is supposed to move the upper part of %1 to %0, and the lower part of %1 to %L0. So it might be possible to replace it with evmergehi %0,%1,%1\;mr %L0,%1 (In reply to comment #36) > Subject: Re: [4.1/4.2 Regression] returning constant double > > What is confusing to me is that the r->r case is using evmergehi > and evmergelo. This is placing the value in both halves of the SIMD > register. It seems like this could have been done with two "mr". > > It is ambiguous whether the pattern is trying to load the full 64 > bit register or not. >
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27287