On Wed, Oct 5, 2011 at 12:49 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote:

> We're prepared and bunch of tests which checks autogeneration of FMA3
> instructions family.
> FMA3 typo in .md file is fixed as well (it was catched by tests).
>
> ChangeLog entry:
>
> 2011-10-04  Kirill Yukhin <kirill.yuk...@intel.com>
>            Yakovlev Vladimir <vladimir.b.yakov...@intel.com>
>
>        * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
>
> testsuite/ChangeLog entry:
>
> 2011-10-04  Kirill Yukhin <kirill.yuk...@intel.com>
>            Yakovlev Vladimir <vladimir.b.yakov...@intel.com>
>
>        * gcc.target/i386/fma_1.h: New test.
>        * 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.

Just say "New file." for various headers. They are not standalone tests...

>        * gcc.target/i386/fma_double_1.c: Ditto.
>        * 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_main.h: 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/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_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_main.h: 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.
>
> Could you please have a look?

+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-require-effective-target fma } */
+/* { dg-options "-O2 -mfma" } */

{ dg-require-effective-target fma } directive is not needed for
compile-only tests, as they stop at generating assembly file. Also,
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.

Otherwise, the patch looks OK.

Uros.

Reply via email to