[PATCH, testsuite, i386] FMA3 testcases + typo fix in MD

Kirill Yukhin kirill.yukhin@gmail.com
Thu Oct 6 09:48:00 GMT 2011


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 <kirill.yukhin@intel.com>
	    Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>

	* 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.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fma3_typo_tests-2.gcc.patch
Type: application/octet-stream
Size: 124915 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20111006/7711ca72/attachment.obj>


More information about the Gcc-patches mailing list