Wow, it works! Thank you. New patch attached. ChangeLogs were not touched. Tests pass both on ia32/x86-64 with and without simulator. Thanks, K On Thu, Oct 6, 2011 at 2:07 PM, Uros Bizjak wrote: > On Thu, Oct 6, 2011 at 11:38 AM, Kirill Yukhin 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. >