Hello! The gcc.target/i386/fma-compile.c test did not escape [ and ] correctly. Unfortunately, this problem terminated dejagnu testing early, hiding the problem with -mfma target attribute handling.
Attached patch fixes both problems. 2011-08-30 Uros Bizjak <ubiz...@gmail.com> * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Handle FMA option. testsuite/ChangeLog: 2011-08-30 Uros Bizjak <ubiz...@gmail.com> * gcc.target/i386/fma-compile.c: Escape [ and ] correctly. Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline.
Index: config/i386/i386.c =================================================================== --- config/i386/i386.c (revision 178319) +++ config/i386/i386.c (working copy) @@ -4076,6 +4076,7 @@ ix86_valid_target_attribute_inner_p (tree args, ch IX86_ATTR_ISA ("sse4a", OPT_msse4a), IX86_ATTR_ISA ("ssse3", OPT_mssse3), IX86_ATTR_ISA ("fma4", OPT_mfma4), + IX86_ATTR_ISA ("fma", OPT_mfma), IX86_ATTR_ISA ("xop", OPT_mxop), IX86_ATTR_ISA ("lwp", OPT_mlwp), IX86_ATTR_ISA ("fsgsbase", OPT_mfsgsbase), Index: testsuite/gcc.target/i386/fma-compile.c =================================================================== --- testsuite/gcc.target/i386/fma-compile.c (revision 178319) +++ testsuite/gcc.target/i386/fma-compile.c (working copy) @@ -199,23 +199,23 @@ check_mm256_fmsubadd_ps (__m256 a, __m256 b, __m25 } -/* { dg-final { scan-assembler-times "vfmadd[^s]..ps" 2 } } */ -/* { dg-final { scan-assembler-times "vfmsub[^s]..ps" 2 } } */ +/* { dg-final { scan-assembler-times "vfmadd\[^s\]..ps" 2 } } */ +/* { dg-final { scan-assembler-times "vfmsub\[^s\]..ps" 2 } } */ /* { dg-final { scan-assembler-times "vfnmadd...ps" 2 } } */ /* { dg-final { scan-assembler-times "vfnmsub...ps" 2 } } */ /* { dg-final { scan-assembler-times "vfmaddsub...ps" 2 } } */ /* { dg-final { scan-assembler-times "vfmsubadd...ps" 2 } } */ -/* { dg-final { scan-assembler-times "vfmadd[^s]..pd" 2 } } */ -/* { dg-final { scan-assembler-times "vfmsub[^s]..pd" 2 } } */ +/* { dg-final { scan-assembler-times "vfmadd\[^s\]..pd" 2 } } */ +/* { dg-final { scan-assembler-times "vfmsub\[^s\]..pd" 2 } } */ /* { dg-final { scan-assembler-times "vfnmadd...pd" 2 } } */ /* { dg-final { scan-assembler-times "vfnmsub...pd" 2 } } */ /* { dg-final { scan-assembler-times "vfmaddsub...pd" 2 } } */ /* { dg-final { scan-assembler-times "vfmsubadd...pd" 2 } } */ -/* { dg-final { scan-assembler-times "vfmadd[^s]..ss" 1 } } */ -/* { dg-final { scan-assembler-times "vfmsub[^s]..ss" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd\[^s\]..ss" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub\[^s\]..ss" 1 } } */ /* { dg-final { scan-assembler-times "vfnmadd...ss" 1 } } */ /* { dg-final { scan-assembler-times "vfnmsub...ss" 1 } } */ -/* { dg-final { scan-assembler-times "vfmadd[^s]..sd" 1 } } */ -/* { dg-final { scan-assembler-times "vfmsub[^s]..sd" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd\[^s\]..sd" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub\[^s\]..sd" 1 } } */ /* { dg-final { scan-assembler-times "vfnmadd...sd" 1 } } */ /* { dg-final { scan-assembler-times "vfnmsub...sd" 1 } } */