On Thu, Oct 6, 2011 at 11:38 AM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote:

> Thanks for review. I did all but one
>
>> you have disabled all tests on ia32 - unconditionally use "-O2 -mfma
>> -mfpmath=sse" for dg-options, and these instructions will magically
>> appear on all targets.
>
> I am enabling these tests to run on ia32, they all fail to scan-assembler,
> since assemler is completely different, here is instance:
> test_neg_sub_neg_sub:
> .LFB15:
>        .cfi_startproc
>        subl    $12, %esp
>        .cfi_def_cfa_offset 16
>        vmovsd  16(%esp), %xmm2
>        vmovsd  24(%esp), %xmm1
>        vmovapd %xmm2, %xmm0
>        vfnmsub213sd    32(%esp), %xmm1, %xmm0
>        vfnmsub132sd    %xmm2, %xmm1, %xmm0
>        vmovsd  %xmm0, (%esp)
>        fldl    (%esp)
>        addl    $12, %esp
>        .cfi_def_cfa_offset 4
>        ret
>        .cfi_endproc
>
> On ia32 params are passed completely different and therefore code differs.

You can add __attribute__((sseregparm)) to function declaration. This
will force arguments to/from function to SSE registers. The problem
is, that it will result in "warning: 'sseregparm' attribute ignored",
but this can be ignored using dg-prune-output dg directive. Please see
many examples in the testsuite.

Uros.

Reply via email to