------- 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

Reply via email to