diff mbox

Fix various x86 tests for --with-arch=bdver3

Message ID Pine.LNX.4.64.1403282143360.750@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers March 28, 2014, 9:46 p.m. UTC
If you build an x86_64 toolchain with --with-arch enabling various
instruction set extensions by default, this causes some tests to fail
that aren't expecting those extensions to be enabled.  This patch
fixes various tests failing like that for an x86_64-linux-gnu
toolchain configured --with-arch=bdver3, generally by using
appropriate -mno-* options in the tests, or in the case of
gcc.dg/pr45416.c by adjusting the scan-assembler to allow the
alternative instruction that gets used in this case.  It's quite
likely other such failures appear for other --with-arch choices.

Tested x86_64-linux-gnu.  OK to commit?

In addition to the failures fixed by this patch, there are many
gcc.dg/vect tests where having additional vector extensions enabled
breaks their expectations; I'm not sure of the best way to handle
those.  And you get

FAIL: gcc.target/i386/avx512f-vfmaddXXXpd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmaddXXXps-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmaddsubXXXpd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmaddsubXXXps-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmsubXXXpd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmsubXXXps-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmsubaddXXXpd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfmsubaddXXXps-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfnmaddXXXpd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfnmaddXXXps-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfnmsubXXXpd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vfnmsubXXXps-2.c (test for excess errors)

which are assembler errors such as "operand type mismatch for
`vfmaddpd'" - it looks like the compiler isn't really prepared for the
-mavx512f -mfma4 combination, but I'm not sure what the best way to
handle it is (producing invalid output doesn't seem right, however).

If you test with -march=bdver3 in the multilib options (runtest
--target_board=unix/-march=bdver3) rather than as the configured
default, you get extra failures for the usual reason of multilib
options going after the options from dg-options (which I propose to
address in the usual way using dg-skip-if for -march= options
different from the one present in dg-options).

2014-03-28  Joseph Myers  <joseph@codesourcery.com>

	* gcc.dg/pr45416.c: Allow bextr on x86.
	* gcc.target/i386/fma4-builtin.c, gcc.target/i386/fma4-fma-2.c,
	gcc.target/i386/fma4-fma.c, gcc.target/i386/fma4-vector-2.c,
	gcc.target/i386/fma4-vector.c: Use -mno-fma.
	* gcc.target/i386/l_fma_double_1.c,
	gcc.target/i386/l_fma_double_2.c,
	gcc.target/i386/l_fma_double_3.c,
	gcc.target/i386/l_fma_double_4.c,
	gcc.target/i386/l_fma_double_5.c,
	gcc.target/i386/l_fma_double_6.c, gcc.target/i386/l_fma_float_1.c,
	gcc.target/i386/l_fma_float_2.c, gcc.target/i386/l_fma_float_3.c,
	gcc.target/i386/l_fma_float_4.c, gcc.target/i386/l_fma_float_5.c,
	gcc.target/i386/l_fma_float_6.c: Use -mno-fma4.
	* gcc.target/i386/pr27971.c: Use -mno-tbm.
	* gcc.target/i386/pr42542-4a.c: Use -mno-avx.
	* gcc.target/i386/pr59390.c: Use -mno-fma -mno-fma4.

Comments

H.J. Lu March 28, 2014, 10:11 p.m. UTC | #1
On Fri, Mar 28, 2014 at 2:46 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> If you build an x86_64 toolchain with --with-arch enabling various
> instruction set extensions by default, this causes some tests to fail
> that aren't expecting those extensions to be enabled.  This patch
> fixes various tests failing like that for an x86_64-linux-gnu
> toolchain configured --with-arch=bdver3, generally by using
> appropriate -mno-* options in the tests, or in the case of
> gcc.dg/pr45416.c by adjusting the scan-assembler to allow the
> alternative instruction that gets used in this case.  It's quite
> likely other such failures appear for other --with-arch choices.
>
> Tested x86_64-linux-gnu.  OK to commit?
>
> In addition to the failures fixed by this patch, there are many
> gcc.dg/vect tests where having additional vector extensions enabled
> breaks their expectations; I'm not sure of the best way to handle
> those.  And you get
>
> FAIL: gcc.target/i386/avx512f-vfmaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddsubXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmsubXXXps-2.c (test for excess errors)
>
> which are assembler errors such as "operand type mismatch for
> `vfmaddpd'" - it looks like the compiler isn't really prepared for the
> -mavx512f -mfma4 combination, but I'm not sure what the best way to
> handle it is (producing invalid output doesn't seem right, however).
>
> If you test with -march=bdver3 in the multilib options (runtest
> --target_board=unix/-march=bdver3) rather than as the configured
> default, you get extra failures for the usual reason of multilibhttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=59971

This is

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59971

> options going after the options from dg-options (which I propose to
> address in the usual way using dg-skip-if for -march= options
> different from the one present in dg-options).

Here is a patch:

http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01891.html
Uros Bizjak March 29, 2014, 8 a.m. UTC | #2
On Fri, Mar 28, 2014 at 10:46 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> If you build an x86_64 toolchain with --with-arch enabling various
> instruction set extensions by default, this causes some tests to fail
> that aren't expecting those extensions to be enabled.  This patch
> fixes various tests failing like that for an x86_64-linux-gnu
> toolchain configured --with-arch=bdver3, generally by using
> appropriate -mno-* options in the tests, or in the case of
> gcc.dg/pr45416.c by adjusting the scan-assembler to allow the
> alternative instruction that gets used in this case.  It's quite
> likely other such failures appear for other --with-arch choices.
>
> Tested x86_64-linux-gnu.  OK to commit?
>
> In addition to the failures fixed by this patch, there are many
> gcc.dg/vect tests where having additional vector extensions enabled
> breaks their expectations; I'm not sure of the best way to handle
> those.  And you get
>
> FAIL: gcc.target/i386/avx512f-vfmaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddsubXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmsubXXXps-2.c (test for excess errors)
>
> which are assembler errors such as "operand type mismatch for
> `vfmaddpd'" - it looks like the compiler isn't really prepared for the
> -mavx512f -mfma4 combination, but I'm not sure what the best way to
> handle it is (producing invalid output doesn't seem right, however).

I will look into these.

> If you test with -march=bdver3 in the multilib options (runtest
> --target_board=unix/-march=bdver3) rather than as the configured
> default, you get extra failures for the usual reason of multilib
> options going after the options from dg-options (which I propose to
> address in the usual way using dg-skip-if for -march= options
> different from the one present in dg-options).
>
> 2014-03-28  Joseph Myers  <joseph@codesourcery.com>
>
>         * gcc.dg/pr45416.c: Allow bextr on x86.
>         * gcc.target/i386/fma4-builtin.c, gcc.target/i386/fma4-fma-2.c,
>         gcc.target/i386/fma4-fma.c, gcc.target/i386/fma4-vector-2.c,
>         gcc.target/i386/fma4-vector.c: Use -mno-fma.
>         * gcc.target/i386/l_fma_double_1.c,
>         gcc.target/i386/l_fma_double_2.c,
>         gcc.target/i386/l_fma_double_3.c,
>         gcc.target/i386/l_fma_double_4.c,
>         gcc.target/i386/l_fma_double_5.c,
>         gcc.target/i386/l_fma_double_6.c, gcc.target/i386/l_fma_float_1.c,
>         gcc.target/i386/l_fma_float_2.c, gcc.target/i386/l_fma_float_3.c,
>         gcc.target/i386/l_fma_float_4.c, gcc.target/i386/l_fma_float_5.c,
>         gcc.target/i386/l_fma_float_6.c: Use -mno-fma4.
>         * gcc.target/i386/pr27971.c: Use -mno-tbm.
>         * gcc.target/i386/pr42542-4a.c: Use -mno-avx.
>         * gcc.target/i386/pr59390.c: Use -mno-fma -mno-fma4.

OK.

Thanks,
Uros.
diff mbox

Patch

Index: gcc/testsuite/gcc.dg/pr45416.c
===================================================================
--- gcc/testsuite/gcc.dg/pr45416.c	(revision 208882)
+++ gcc/testsuite/gcc.dg/pr45416.c	(working copy)
@@ -9,7 +9,7 @@ 
    return 0;
 }
 
-/* { dg-final { scan-assembler "andl" { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } } " */
+/* { dg-final { scan-assembler "andl|bextr" { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } } " */
 /* { dg-final { scan-assembler-not "setne" { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } }" */
 /* { dg-final { scan-assembler "and|ubfx"  { target arm*-*-* } } } */
 /* { dg-final { scan-assembler-not "moveq" { target arm*-*-* } } }" */
Index: gcc/testsuite/gcc.target/i386/pr27971.c
===================================================================
--- gcc/testsuite/gcc.target/i386/pr27971.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/pr27971.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -mno-tbm" } */
 
 unsigned array[4];
 
Index: gcc/testsuite/gcc.target/i386/l_fma_double_5.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_double_5.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_double_5.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_float_6.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_float_6.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_float_6.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/pr42542-4a.c
===================================================================
--- gcc/testsuite/gcc.target/i386/pr42542-4a.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/pr42542-4a.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O1 -msse4.2 -ftree-vectorize" } */
+/* { dg-options "-O1 -msse4.2 -ftree-vectorize -mno-avx" } */
 
 #include "pr42542-4.c"
 
Index: gcc/testsuite/gcc.target/i386/fma4-vector-2.c
===================================================================
--- gcc/testsuite/gcc.target/i386/fma4-vector-2.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/fma4-vector-2.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile { target { ! { ia32 } } } } */
-/* { dg-options "-O2 -mfma4 -ftree-vectorize -mtune=generic" } */
+/* { dg-options "-O2 -mfma4 -ftree-vectorize -mtune=generic -mno-fma" } */
 
 float r[256], s[256];
 float x[256];
Index: gcc/testsuite/gcc.target/i386/fma4-builtin.c
===================================================================
--- gcc/testsuite/gcc.target/i386/fma4-builtin.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/fma4-builtin.c	(working copy)
@@ -2,7 +2,7 @@ 
    and add instructions FMA4 systems.  */
 
 /* { dg-do compile { target { ! { ia32 } } } } */
-/* { dg-options "-O2 -mfma4" } */
+/* { dg-options "-O2 -mfma4 -mno-fma" } */
 
 #ifndef __FP_FAST_FMAF
 # error "__FP_FAST_FMAF should be defined"
Index: gcc/testsuite/gcc.target/i386/l_fma_double_2.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_double_2.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_double_2.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_float_3.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_float_3.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_float_3.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_double_6.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_double_6.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_double_6.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/fma4-fma.c
===================================================================
--- gcc/testsuite/gcc.target/i386/fma4-fma.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/fma4-fma.c	(working copy)
@@ -3,7 +3,7 @@ 
    vfnmsubss on FMA4 systems.  */
 
 /* { dg-do compile { target { ! { ia32 } } } } */
-/* { dg-options "-O2 -mfma4" } */
+/* { dg-options "-O2 -mfma4 -mno-fma" } */
 
 extern void exit (int);
 
Index: gcc/testsuite/gcc.target/i386/fma4-fma-2.c
===================================================================
--- gcc/testsuite/gcc.target/i386/fma4-fma-2.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/fma4-fma-2.c	(working copy)
@@ -3,7 +3,7 @@ 
    vfnmsubss on FMA4 systems.  */
 
 /* { dg-do compile { target { ! { ia32 } } } } */
-/* { dg-options "-O2 -funsafe-math-optimizations -mfma4" } */
+/* { dg-options "-O2 -funsafe-math-optimizations -mfma4 -mno-fma" } */
 
 extern void exit (int);
 
Index: gcc/testsuite/gcc.target/i386/l_fma_double_3.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_double_3.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_double_3.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_float_4.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_float_4.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_float_4.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/pr59390.c
===================================================================
--- gcc/testsuite/gcc.target/i386/pr59390.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/pr59390.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-std=c99 -O3" } */
+/* { dg-options "-std=c99 -O3 -mno-fma -mno-fma4" } */
 
 extern double fma (double, double, double);
 void fun() __attribute__((target("fma")));
Index: gcc/testsuite/gcc.target/i386/l_fma_float_1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_float_1.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_float_1.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_double_4.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_double_4.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_double_4.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_float_5.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_float_5.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_float_5.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/fma4-vector.c
===================================================================
--- gcc/testsuite/gcc.target/i386/fma4-vector.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/fma4-vector.c	(working copy)
@@ -2,7 +2,7 @@ 
    instructions vector into vfmaddps on FMA4 systems.  */
 
 /* { dg-do compile { target { ! { ia32 } } } } */
-/* { dg-options "-O2 -mfma4 -ftree-vectorize -mtune=generic" } */
+/* { dg-options "-O2 -mfma4 -ftree-vectorize -mtune=generic -mno-fma" } */
 
 extern void exit (int);
 
Index: gcc/testsuite/gcc.target/i386/l_fma_double_1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_double_1.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_double_1.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */
Index: gcc/testsuite/gcc.target/i386/l_fma_float_2.c
===================================================================
--- gcc/testsuite/gcc.target/i386/l_fma_float_2.c	(revision 208882)
+++ gcc/testsuite/gcc.target/i386/l_fma_float_2.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic" } */
+/* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */
 
 /* Test that the compiler properly optimizes floating point multiply
    and add instructions into FMA3 instructions.  */