> I see some regressions most likely with this change on i686-linux, > in particular: > +FAIL: gcc.dg/pr107547.c (test for excess errors) > +FAIL: gcc.dg/torture/floatn-convert.c -O0 (test for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O0 compilation failed to > produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -O1 (test for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O1 compilation failed to > produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -O2 (test for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O2 compilation failed to > produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -O2 -flto (test for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O2 -flto compilation failed to > produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -O2 -flto -flto-partition=none (test > for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O2 -flto -flto-partition=none > compilation failed to produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -O3 -fomit-frame-pointer > -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess > errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O3 -fomit-frame-pointer > -funroll-loops -fpeel-loops -ftracer -finline-functions compilation failed to > produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -O3 -g (test for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -O3 -g compilation failed to > produce executable > +FAIL: gcc.dg/torture/floatn-convert.c -Os (test for excess errors) > +UNRESOLVED: gcc.dg/torture/floatn-convert.c -Os compilation failed to > produce executable > +FAIL: gcc.target/i386/float16-7.c (test for errors, line 7) >
> Perhaps we need to tweak > gcc/testsuite/lib/target-supports.exp (add_options_for_float16) > so that it adds -msse2 for i?86-*-* x86_64-*-* (that would likely > fix up floatn-convert) and for the others perhaps > /* { dg-add-options float16 } */ > ? I've verified the change fixed those failures. Ready to push to trunk if there's no objections. gcc/testsuite/ChangeLog: * gcc.dg/pr107547.c: Add { dg-add-options float16 }. * gcc.target/i386/float16-7.c: Add -msse2 to dg-options. * lib/target-supports.exp (add_options_for_float16): Add -msse2 for i?86-*-* || x86_64-*-*. --- gcc/testsuite/gcc.dg/pr107547.c | 1 + gcc/testsuite/gcc.target/i386/float16-7.c | 2 +- gcc/testsuite/lib/target-supports.exp | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/pr107547.c b/gcc/testsuite/gcc.dg/pr107547.c index c6992c8674b..7cd68afc0af 100644 --- a/gcc/testsuite/gcc.dg/pr107547.c +++ b/gcc/testsuite/gcc.dg/pr107547.c @@ -1,6 +1,7 @@ /* PR tree-optimization/107547 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ +/* { dg-add-options float16 } */ int x; diff --git a/gcc/testsuite/gcc.target/i386/float16-7.c b/gcc/testsuite/gcc.target/i386/float16-7.c index 86641afeba9..660021b6ccc 100644 --- a/gcc/testsuite/gcc.target/i386/float16-7.c +++ b/gcc/testsuite/gcc.target/i386/float16-7.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfpmath=387 -fexcess-precision=16" } */ +/* { dg-options "-O2 -msse2 -mfpmath=387 -fexcess-precision=16" } */ /* { dg-excess-errors "'-fexcess-precision=16' is not compatible with '-mfpmath=387'" } */ _Float16 foo (_Float16 a, _Float16 b) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 8ea0d9feb1c..42024474091 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -3487,6 +3487,9 @@ proc add_options_for_float16 { flags } { if { [istarget arm*-*-*] } { return "$flags -mfp16-format=ieee" } + if { [istarget i?86-*-*] || [istarget x86_64-*-*] } { + return "$flags -msse2" + } return "$flags" } -- 2.39.1.388.g2fc9e9ca3c