Fix vect_float markup for a couple of tests (PR 83888)
authorRichard Sandiford <richard.sandiford@linaro.org>
Tue, 23 Jan 2018 10:42:32 +0000 (10:42 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 23 Jan 2018 10:42:32 +0000 (10:42 +0000)
vect_float is true for arm*-*-* targets, but the support is only
available when -funsafe-math-optimizations is on.  This caused
failures in two tests that disable fast-math.

The easiest fix seemed to be to add a new target selector for
"vect_float without special options".

2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR testsuite/83888
* doc/sourcebuild.texi (vect_float): Say that the selector
only describes the situation when -funsafe-math-optimizations is on.
(vect_float_strict): Document.

gcc/testsuite/
PR testsuite/83888
* lib/target-supports.exp (check_effective_target_vect_float): Say
that the result only holds when -funsafe-math-optimizations is on.
(check_effective_target_vect_float_strict): New procedure.
* gcc.dg/vect/no-fast-math-vect16.c: Use vect_float_strict instead
of vect_float.
* gcc.dg/vect/vect-reduc-6.c: Likewise.

From-SVN: r256977

gcc/ChangeLog
gcc/doc/sourcebuild.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
gcc/testsuite/gcc.dg/vect/vect-reduc-6.c
gcc/testsuite/lib/target-supports.exp

index bf5743b4dc47bd0fdda53d1985457a2b39b18247..94f2ad75ce1506285e1cca500c3575d5c7acdb21 100644 (file)
@@ -1,3 +1,10 @@
+2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR testsuite/83888
+       * doc/sourcebuild.texi (vect_float): Say that the selector
+       only describes the situation when -funsafe-math-optimizations is on.
+       (vect_float_strict): Document.
+
 2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
 
        PR tree-optimization/83965
index 69fbf6ac76842ae90fcf4f07638755c18ecc23c9..bf44d158683dfb4047dfdd446db39e692b69584f 100644 (file)
@@ -1403,7 +1403,13 @@ The target's preferred vector alignment is the same as the element
 alignment.
 
 @item vect_float
-Target supports hardware vectors of @code{float}.
+Target supports hardware vectors of @code{float} when
+@option{-funsafe-math-optimizations} is in effect.
+
+@item vect_float_strict
+Target supports hardware vectors of @code{float} when
+@option{-funsafe-math-optimizations} is not in effect.
+This implies @code{vect_float}.
 
 @item vect_int
 Target supports hardware vectors of @code{int}.
index b42031bbd65101c8ffeba41a39249911b7d3ad45..b684430fccb87322d8eb2e8904ba01f7e791fe7c 100644 (file)
@@ -1,3 +1,13 @@
+2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR testsuite/83888
+       * lib/target-supports.exp (check_effective_target_vect_float): Say
+       that the result only holds when -funsafe-math-optimizations is on.
+       (check_effective_target_vect_float_strict): New procedure.
+       * gcc.dg/vect/no-fast-math-vect16.c: Use vect_float_strict instead
+       of vect_float.
+       * gcc.dg/vect/vect-reduc-6.c: Likewise.
+
 2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
 
        PR tree-optimization/83965
index 2445d605534cc096d6f9a0c560ef961aa29db433..7a148e41d513ea1d78693fc54a74b761ace81c3b 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-require-effective-target vect_float } */
+/* { dg-require-effective-target vect_float_strict } */
 
 #include <stdarg.h>
 #include "tree-vect.h"
index f80d5ba8114d69f99c9b87a6a465aba245b3a3f7..ad148046a8eca15bfdb41335f4f91c219c31b71a 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-require-effective-target vect_float } */
+/* { dg-require-effective-target vect_float_strict } */
 /* { dg-additional-options "-fno-fast-math" } */
 
 #include <stdarg.h>
index 720914b0c4c6173d989fa1c8f3362ff5a22c3e71..24514233ceaadcd9d727b02e0ad9fd023c291d67 100644 (file)
@@ -5492,7 +5492,8 @@ proc check_effective_target_vect_long { } {
     return $answer
 }
 
-# Return 1 if the target supports hardware vectors of float, 0 otherwise.
+# Return 1 if the target supports hardware vectors of float when
+# -funsafe-math-optimizations is enabled, 0 otherwise.
 #
 # This won't change for different subtargets so cache the result.
 
@@ -5525,6 +5526,14 @@ proc check_effective_target_vect_float { } {
     return $et_vect_float_saved($et_index)
 }
 
+# Return 1 if the target supports hardware vectors of float without
+# -funsafe-math-optimizations being enabled, 0 otherwise.
+
+proc check_effective_target_vect_float_strict { } {
+    return [expr { [check_effective_target_vect_float]
+                  && ![istarget arm*-*-*] }]
+}
+
 # Return 1 if the target supports hardware vectors of double, 0 otherwise.
 #
 # This won't change for different subtargets so cache the result.