Hi Uros, 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. Rest your objections were applied. gcc's ChangeLog was not changed. Updated patch is attached. Updated testsuite/ChangeLog entry: 2011-10-04 Kirill Yukhin Yakovlev Vladimir * gcc.target/i386/fma_1.h: New header. * gcc.target/i386/fma_2.h: Ditto. * gcc.target/i386/fma_3.h: Ditto. * gcc.target/i386/fma_4.h: Ditto. * gcc.target/i386/fma_5.h: Ditto. * gcc.target/i386/fma_6.h: Ditto. * gcc.target/i386/fma_run_double_results_1.h: Ditto. * gcc.target/i386/fma_run_double_results_2.h: Ditto. * gcc.target/i386/fma_run_double_results_3.h: Ditto. * gcc.target/i386/fma_run_double_results_4.h: Ditto. * gcc.target/i386/fma_run_double_results_5.h: Ditto. * gcc.target/i386/fma_run_double_results_6.h: Ditto. * gcc.target/i386/fma_run_float_1.c: Ditto. * gcc.target/i386/fma_run_float_2.c: Ditto. * gcc.target/i386/fma_run_float_3.c: Ditto. * gcc.target/i386/fma_run_float_4.c: Ditto. * gcc.target/i386/fma_run_float_5.c: Ditto. * gcc.target/i386/fma_run_float_6.c: Ditto. * gcc.target/i386/fma_run_float_results_1.h: Ditto. * gcc.target/i386/fma_run_float_results_2.h: Ditto. * gcc.target/i386/fma_run_float_results_3.h: Ditto. * gcc.target/i386/fma_run_float_results_4.h: Ditto. * gcc.target/i386/fma_run_float_results_5.h: Ditto. * gcc.target/i386/fma_run_float_results_6.h: Ditto. * gcc.target/i386/l_fma_1.h: Ditto. * gcc.target/i386/l_fma_2.h: Ditto. * gcc.target/i386/l_fma_3.h: Ditto. * gcc.target/i386/l_fma_4.h: Ditto. * gcc.target/i386/l_fma_5.h: Ditto. * gcc.target/i386/l_fma_6.h: Ditto. * gcc.target/i386/l_fma_main.h: Ditto. * gcc.target/i386/fma_main.h: Ditto. * gcc.target/i386/fma_double_1.c: New test. * gcc.target/i386/fma_double_2.c: Ditto. * gcc.target/i386/fma_double_3.c: Ditto. * gcc.target/i386/fma_double_4.c: Ditto. * gcc.target/i386/fma_double_5.c: Ditto. * gcc.target/i386/fma_double_6.c: Ditto. * gcc.target/i386/fma_float_1.c: Ditto. * gcc.target/i386/fma_float_2.c: Ditto. * gcc.target/i386/fma_float_3.c: Ditto. * gcc.target/i386/fma_float_4.c: Ditto. * gcc.target/i386/fma_float_5.c: Ditto. * gcc.target/i386/fma_float_6.c: Ditto. * gcc.target/i386/fma_run_double_1.c: Ditto. * gcc.target/i386/fma_run_double_2.c: Ditto. * gcc.target/i386/fma_run_double_3.c: Ditto. * gcc.target/i386/fma_run_double_4.c: Ditto. * gcc.target/i386/fma_run_double_5.c: Ditto. * gcc.target/i386/fma_run_double_6.c: Ditto. * gcc.target/i386/l_fma_double_1.c: Ditto. * gcc.target/i386/l_fma_double_2.c: Ditto. * gcc.target/i386/l_fma_double_3.c: Ditto. * gcc.target/i386/l_fma_double_4.c: Ditto. * gcc.target/i386/l_fma_double_5.c: Ditto. * gcc.target/i386/l_fma_double_6.c: Ditto. * gcc.target/i386/l_fma_float_1.c: Ditto. * gcc.target/i386/l_fma_float_2.c: Ditto. * gcc.target/i386/l_fma_float_3.c: Ditto. * gcc.target/i386/l_fma_float_4.c: Ditto. * gcc.target/i386/l_fma_float_5.c: Ditto. * gcc.target/i386/l_fma_float_6.c: Ditto. * gcc.target/i386/l_fma_run_double_1.c: Ditto. * gcc.target/i386/l_fma_run_double_2.c: Ditto. * gcc.target/i386/l_fma_run_double_3.c: Ditto. * gcc.target/i386/l_fma_run_double_4.c: Ditto. * gcc.target/i386/l_fma_run_double_5.c: Ditto. * gcc.target/i386/l_fma_run_double_6.c: Ditto. * gcc.target/i386/l_fma_run_float_1.c: Ditto. * gcc.target/i386/l_fma_run_float_2.c: Ditto. * gcc.target/i386/l_fma_run_float_3.c: Ditto. * gcc.target/i386/l_fma_run_float_4.c: Ditto. * gcc.target/i386/l_fma_run_float_5.c: Ditto. * gcc.target/i386/l_fma_run_float_6.c: Ditto. Updated patch is attached. It is passing tests with and without simulator. What do you think? Thanks, K > > Otherwise, the patch looks OK. > > Uros. >