On Sat, 31 Jan 2009, Kaveh R. Ghazi wrote:

> From: "Joseph S. Myers" <jos...@codesourcery.com>
> 
> > On Thu, 29 Jan 2009, Kaveh R. GHAZI wrote:
> > 
> > > I don't think these results are a bug, rather it's just an artifact of the
> > > way complex multiplcation is done and having these special values in
> > 
> > See bug 24581.  Some aspects are a bug (GCC doesn't handle mixed
> > real/complex arithmetic the way it should), some are the lack of imaginary
> > types (though the only use of imaginary types I know of is this one for
> > building up constants, and no-one on the Power ABI working group could
> > find any implementation for Power Architecture that actually supports
> > imaginary types).
> 
> Thanks for the PR pointer.  I'm going to ask the obvious question, if there's
> an obvious answer please excuse me.  :-)
> 
> Would it be sufficient and correct to treat (0.0 + I) * y as a special case
> for MULT_EXPR and just swap the real and imaginary parts of "y" in the result?

(0.0 + I) * y should definitely be handled as a multiplication complex*y, 
not imaginary*y, in accordance with the standard semantics.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to