http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60089

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ubizjak at gmail dot com

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Richard Biener from comment #1)

> For the disabling I'd suggest adding a target hook (if it at any point is
> supposed to go upstream).

This target hook would be handy also for x86_64, which passes packed complex
SFmode values to and from function:

Following test:

_Complex float testf (_Complex float a, _Complex float b)
{
        return a + b;
}

produces (-O2):

testf:
        movq    %xmm0, -8(%rsp)
        movq    %xmm1, -16(%rsp)
        movss   -4(%rsp), %xmm0
        movss   -8(%rsp), %xmm1
        addss   -12(%rsp), %xmm0
        addss   -16(%rsp), %xmm1
        movss   %xmm0, -20(%rsp)
        movss   %xmm1, -24(%rsp)
        movq    -24(%rsp), %xmm0
        ret

Yes, indeed.

Reply via email to