[01/16] Support skip, only, expensive, and xfail markers

Message ID 7036910.unVi0tRuQf@excalibur
State New
Headers show
Series
  • stdx::simd fixes and testsuite improvements
Related show

Commit Message

Matthias Kretz Jan. 27, 2021, 8:41 p.m.
From: Matthias Kretz <kretz@kde.org>


libstdc++-v3/ChangeLog:
	* testsuite/experimental/simd/driver.sh: Implement skip, only,
	expensive, and xfail markers. They can select on type, ABI tag
	subset number, target-triplet, and compiler flags.
	* testsuite/experimental/simd/generate_makefile.sh: The summary
	now includes lines for unexpected passes and expected failures.
	If the skip or only markers are only conditional on the type, do
	not generate rules for those types.
	* testsuite/experimental/simd/tests/abs.cc: Mark test expensive
	for ABI tag subsets 1-9.
	* testsuite/experimental/simd/tests/algorithms.cc: Ditto.
	* testsuite/experimental/simd/tests/broadcast.cc: Ditto.
	* testsuite/experimental/simd/tests/casts.cc: Ditto.
	* testsuite/experimental/simd/tests/generator.cc: Ditto.
	* testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
	* testsuite/experimental/simd/tests/loadstore.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
	* testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
	* testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
	* testsuite/experimental/simd/tests/operators.cc: Ditto.
	* testsuite/experimental/simd/tests/reductions.cc: Ditto.
	* testsuite/experimental/simd/tests/simd.cc: Ditto.
	* testsuite/experimental/simd/tests/split_concat.cc: Ditto.
	* testsuite/experimental/simd/tests/splits.cc: Ditto.
	* testsuite/experimental/simd/tests/where.cc: Ditto.
	* testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
	addition replace "test only floattypes" marker by unconditional
	"float|double|ldouble" only marker.
	* testsuite/experimental/simd/tests/frexp.cc: Ditto.
	* testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
	Ditto.
	* testsuite/experimental/simd/tests/logarithm.cc: Ditto.
	* testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
	* testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
	* testsuite/experimental/simd/tests/remqo.cc: Ditto.
	* testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
	* testsuite/experimental/simd/tests/sincos.cc: Ditto. In
	addition, xfail on run because the reference data is missing.
---
 .../testsuite/experimental/simd/driver.sh     | 114 +++++++++++++---
 .../experimental/simd/generate_makefile.sh    | 122 ++++++++++++------
 .../testsuite/experimental/simd/tests/abs.cc  |   1 +
 .../experimental/simd/tests/algorithms.cc     |   1 +
 .../experimental/simd/tests/broadcast.cc      |   1 +
 .../experimental/simd/tests/casts.cc          |   1 +
 .../experimental/simd/tests/fpclassify.cc     |   3 +-
 .../experimental/simd/tests/frexp.cc          |   3 +-
 .../experimental/simd/tests/generator.cc      |   1 +
 .../experimental/simd/tests/hypot3_fma.cc     |   3 +-
 .../simd/tests/integer_operators.cc           |   1 +
 .../simd/tests/ldexp_scalbn_scalbln_modf.cc   |   3 +-
 .../experimental/simd/tests/loadstore.cc      |   1 +
 .../experimental/simd/tests/logarithm.cc      |   3 +-
 .../experimental/simd/tests/mask_broadcast.cc |   1 +
 .../simd/tests/mask_conversions.cc            |   1 +
 .../simd/tests/mask_implicit_cvt.cc           |   1 +
 .../experimental/simd/tests/mask_loadstore.cc |   1 +
 .../simd/tests/mask_operator_cvt.cc           |   1 +
 .../experimental/simd/tests/mask_operators.cc |   1 +
 .../simd/tests/mask_reductions.cc             |   1 +
 .../experimental/simd/tests/math_1arg.cc      |   3 +-
 .../experimental/simd/tests/math_2arg.cc      |   3 +-
 .../experimental/simd/tests/operator_cvt.cc   |   1 +
 .../experimental/simd/tests/operators.cc      |   1 +
 .../experimental/simd/tests/reductions.cc     |   1 +
 .../experimental/simd/tests/remqo.cc          |   3 +-
 .../testsuite/experimental/simd/tests/simd.cc |   1 +
 .../experimental/simd/tests/sincos.cc         |   4 +-
 .../experimental/simd/tests/split_concat.cc   |   1 +
 .../experimental/simd/tests/splits.cc         |   1 +
 .../experimental/simd/tests/trigonometric.cc  |   3 +-
 .../simd/tests/trunc_ceil_floor.cc            |   3 +-
 .../experimental/simd/tests/where.cc          |   1 +
 34 files changed, 225 insertions(+), 66 deletions(-)


--
──────────────────────────────────────────────────────────────────────────
 Dr. Matthias Kretz                           https://mattkretz.github.io
 GSI Helmholtz Centre for Heavy Ion Research               https://gsi.de
 std::experimental::simd              https://github.com/VcDevel/std-simd
──────────────────────────────────────────────────────────────────────────

Patch

diff --git a/libstdc++-v3/testsuite/experimental/simd/driver.sh b/libstdc++-v3/testsuite/experimental/simd/driver.sh
index aabef316f47..84f3829c2d4 100755
--- a/libstdc++-v3/testsuite/experimental/simd/driver.sh
+++ b/libstdc++-v3/testsuite/experimental/simd/driver.sh
@@ -138,28 +138,38 @@  if [ -n "$only" ]; then
 fi
 
 if [ $abi -eq 0 ]; then
-  abi=""
+  abiflag=""
 elif [ $abi -gt 0 -a $abi -lt 10 ]; then
-  abi="-DEXTENDEDTESTS=$((abi-1))"
+  abiflag="-DEXTENDEDTESTS=$((abi-1))"
 else
   echo "Error: The -a argument must be a value between 0 and 9 (inclusive)." >&2
   exit 1
 fi
 
 fail() {
-  echo "FAIL: $src $type $abi ($*)" | tee -a "$sum" "$log"
+  echo "FAIL: $src $type $abiflag ($*)" | tee -a "$sum" "$log"
+}
+
+xpass() {
+  echo "XPASS: $src $type $abiflag ($*)" | tee -a "$sum" "$log"
+}
+
+xfail() {
+  $quiet || echo "XFAIL: $src $type $abiflag ($*)"
+  echo "XFAIL: $src $type $abiflag ($*)" >> "$sum"
+  echo "XFAIL: $src $type $abiflag ($*)" >> "$log"
 }
 
 pass() {
-  $quiet || echo "PASS: $src $type $abi ($*)"
-  echo "PASS: $src $type $abi ($*)" >> "$sum"
-  echo "PASS: $src $type $abi ($*)" >> "$log"
+  $quiet || echo "PASS: $src $type $abiflag ($*)"
+  echo "PASS: $src $type $abiflag ($*)" >> "$sum"
+  echo "PASS: $src $type $abiflag ($*)" >> "$log"
 }
 
 unsupported() {
-  $quiet || echo "UNSUPPORTED: $src $type $abi ($*)"
-  echo "UNSUPPORTED: $src $type $abi ($*)" >> "$sum"
-  echo "UNSUPPORTED: $src $type $abi ($*)" >> "$log"
+  $quiet || echo "UNSUPPORTED: $src $type $abiflag ($*)"
+  echo "UNSUPPORTED: $src $type $abiflag ($*)" >> "$sum"
+  echo "UNSUPPORTED: $src $type $abiflag ($*)" >> "$log"
 }
 
 verify_compilation() {
@@ -173,6 +183,8 @@  verify_compilation() {
       elif ! $quiet; then
         grep -i 'warning:' "$log" | head -n5
       fi
+    elif [ "$xfail" = "compile" ]; then
+      xpass "test for excess errors"
     else
       pass "test for excess errors"
     fi
@@ -181,7 +193,12 @@  verify_compilation() {
       fail "timeout: test for excess errors"
     else
       errors=$(grep -ic 'error:' "$log")
-      fail "excess errors:" $errors
+      if [ "$xfail" = "compile" ]; then
+        xfail "excess errors:" $errors
+        exit 0
+      else
+        fail "excess errors:" $errors
+      fi
     fi
     if $verbose; then
       cat "$log"
@@ -196,11 +213,18 @@  verify_test() {
   failed=$1
   if [ $failed -eq 0 ]; then
     rm "$exe"
-    pass "execution test"
+    if [ "$xfail" = "run" ]; then
+      xpass "execution test"
+    else
+      pass "execution test"
+    fi
   else
     $keep_failed || rm "$exe"
     if [ $failed -eq 124 ]; then
       fail "timeout: execution test"
+    elif [ "$xfail" = "run" ]; then
+      xfail "execution test"
+      exit 0
     else
       fail "execution test"
     fi
@@ -225,16 +249,74 @@  write_log_and_verbose() {
   fi
 }
 
+matches() {
+  eval "case '$1' in
+    $2) return 0;; esac"
+  return 1
+}
+
+test_selector() {
+  string="$1"
+  pat_type="${string%% *}"
+  if matches "$shorttype" "$pat_type"; then
+    string="${string#* }"
+    pat_abi="${string%% *}"
+    if matches "$abi" "$pat_abi"; then
+      string="${string#* }"
+      pat_triplet="${string%% *}"
+      [ -z "$target_triplet" ] && target_triplet=$($CXX -dumpmachine)
+      if matches "$target_triplet" "$pat_triplet"; then
+        pat_flags="${string#* }"
+        if matches "$CXXFLAGS" "$pat_flags"; then
+          return 0
+        fi
+      fi
+    fi
+  fi
+  return 1
+}
+
 rm -f "$log" "$sum"
 touch "$log" "$sum"
 
-if ! $run_expensive && [ -n "$abi" ]; then
-  unsupported "skip expensive tests"
-  exit 0
+skip="$(head -n25 "$src" | grep '^//\s*skip: ')"
+if [ -n "$skip" ]; then
+  skip="$(echo "$skip" | sed -e 's/^.*:\s*//' -e 's/ \+/ /g')"
+  if test_selector "$skip"; then
+    # silently skip this test
+    exit 0
+  fi
+fi
+only="$(head -n25 "$src" | grep '^//\s*only: ')"
+if [ -n "$only" ]; then
+  only="$(echo "$only" | sed -e 's/^.*:\s*//' -e 's/ \+/ /g')"
+  if ! test_selector "$only"; then
+    # silently skip this test
+    exit 0
+  fi
+fi
+if ! $run_expensive; then
+  expensive="$(head -n25 "$src" | grep '^//\s*expensive: ')"
+  if [ -n "$expensive" ]; then
+    expensive="$(echo "$expensive" | sed -e 's/^.*:\s*//' -e 's/ \+/ /g')"
+    if test_selector "$expensive"; then
+      unsupported "skip expensive tests"
+      exit 0
+    fi
+  fi
+fi
+xfail="$(head -n25 "$src" | grep '^//\s*xfail: ')"
+if [ -n "$xfail" ]; then
+  xfail="$(echo "$xfail" | sed -e 's/^.*:\s*//' -e 's/ \+/ /g')"
+  if test_selector "${xfail#* }"; then
+    xfail="${xfail%% *}"
+  else
+    unset xfail
+  fi
 fi
 
-write_log_and_verbose "$CXX $src $@ -D_GLIBCXX_SIMD_TESTTYPE=$type $abi -o $exe"
-timeout $timeout "$CXX" "$src" "$@" "-D_GLIBCXX_SIMD_TESTTYPE=$type" $abi -o "$exe" >> "$log" 2>&1
+write_log_and_verbose "$CXX $src $@ -D_GLIBCXX_SIMD_TESTTYPE=$type $abiflag -o $exe"
+timeout $timeout "$CXX" "$src" "$@" "-D_GLIBCXX_SIMD_TESTTYPE=$type" $abiflag -o "$exe" >> "$log" 2>&1
 verify_compilation $?
 if [ -n "$sim" ]; then
   write_log_and_verbose "$sim ./$exe"
diff --git a/libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh b/libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
index ab5970554c3..553bc98f60b 100755
--- a/libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
+++ b/libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
@@ -99,53 +99,97 @@  all: simd_testsuite.sum
 simd_testsuite.sum: simd_testsuite.log
 	@printf "\n\t\t=== simd_testsuite \$(TESTFLAGS) Summary ===\n\n"\\
 	"# of expected passes:\t\t\$(shell grep -c '^PASS:' \$@)\n"\\
+	"# of unexpected passes:\t\t\$(shell grep -c '^XPASS:' \$@)\n"\\
 	"# of unexpected failures:\t\$(shell grep -c '^FAIL:' \$@)\n"\\
+	"# of expected failures:\t\t\$(shell grep -c '^XFAIL:' \$@)\n"\\
 	"# of unsupported tests:\t\t\$(shell grep -c '^UNSUPPORTED:' \$@)\n"\\
 	  | tee -a \$@
 
 EOF
 
+matches() {
+  eval "case '$1' in
+    $2) return 0;; esac"
+  return 1
+}
+
+cxx_type() {
+  case "$1" in
+    ldouble) echo "long double";;
+    ullong)  echo "unsigned long long";;
+    ulong)   echo "unsigned long";;
+    llong)   echo "long long";;
+    uint)    echo "unsigned int";;
+    ushort)  echo "unsigned short";;
+    uchar)   echo "unsigned char";;
+    schar)   echo "signed char";;
+    *)       echo "$1";;
+  esac
+}
+
+filter_types() {
+  only="$1"
+  skip="$2"
+  shift 2
+  if [ -z "$only" -a -z "$skip" ]; then
+    for x in "$@"; do
+      cxx_type "$x"
+      echo "$x"
+    done
+  elif [ -z "$skip" ]; then
+    for x in "$@"; do
+      if matches "$x" "$only"; then
+        cxx_type "$x"
+        echo "$x"
+      fi
+    done
+  elif [ -z "$only" ]; then
+    for x in "$@"; do
+      matches "$x" "$skip" && continue
+      cxx_type "$x"
+      echo "$x"
+    done
+  else
+    for x in "$@"; do
+      matches "$x" "$skip" && continue
+      if matches "$x" "$only"; then
+        cxx_type "$x"
+        echo "$x"
+      fi
+    done
+  fi
+}
+
 all_types() {
   src="$1"
-  cat <<EOF
-long double
-ldouble
-double
-double
-float
-float
-EOF
-  ([ -n "$src" ] && grep -q "test only floattypes" "$src") || \
-  cat <<EOF
-long long
-llong
-unsigned long long
-ullong
-unsigned long
-ulong
-long
-long
-int
-int
-unsigned int
-uint
-short
-short
-unsigned short
-ushort
-char
-char
-signed char
-schar
-unsigned char
-uchar
-char32_t
-char32_t
-char16_t
-char16_t
-wchar_t
-wchar_t
-EOF
+  only=
+  skip=
+  if [ -n "$src" ]; then
+    only="$(head -n25 "$src"| grep '^//\s*only: [^ ]* \* \* \*')"
+    only="${only#*: }"
+    only="${only%% *}"
+    skip="$(head -n25 "$src"| grep '^//\s*skip: [^ ]* \* \* \*')"
+    skip="${skip#*: }"
+    skip="${skip%% *}"
+  fi
+  filter_types "$only" "$skip" \
+    "ldouble" \
+    "double" \
+    "float" \
+    "llong" \
+    "ullong" \
+    "ulong" \
+    "long" \
+    "int" \
+    "uint" \
+    "short" \
+    "ushort" \
+    "char" \
+    "schar" \
+    "uchar" \
+    "char32_t" \
+    "char16_t" \
+    "wchar_t"
 }
 
 all_tests() {
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/abs.cc b/libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
index 7d94cf47e1c..fc91fc3917b 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include <cmath>    // abs & sqrt
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc b/libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
index 78bce35f59c..0762686d5e8 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc b/libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
index c107de3380b..6060ade8e7a 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/casts.cc b/libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
index df169e100de..49d56009081 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/conversions.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc b/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
index eef26108f5f..b367073168a 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc b/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
index e2d90dd1e3f..028ca80a71a 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/generator.cc b/libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
index 221064dc476..f4780de38b2 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc b/libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
index 0c8e55983a2..689a90c10a5 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc b/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
index 975e69a9e35..21380c4e13e 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/make_vec.h"
 #include "bits/metahelpers.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc b/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
index 6d994572bf8..c867d365f39 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc b/libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
index 994227c7d5a..dd7d6c30e8c 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/make_vec.h"
 #include "bits/conversions.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc b/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
index 29c686db697..2065d1cd7ac 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/mathreference.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
index 7fc8201caf6..494b582633c 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
index 8cec912250a..a44753adf9a 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 
 namespace stdx = std::experimental;
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
index e1760e3f37f..562be4b3293 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
index 0f43428b7c6..0590d7a16d0 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 
 // simd_mask generator functions
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
index 738b97c3dca..ab08a047e8c 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
index 58255cf1e1b..ce4b61f8a4d 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc b/libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
index 1190eaf5457..be1ed9fd742 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc b/libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
index bce01264f3c..441b3406a22 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/test_values.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc b/libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
index 57b7b3aeb5c..018328de6cb 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc b/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
index a04cd34e3d4..1836af56f1b 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc b/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
index cee696cc69b..27fdbbb01f9 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/make_vec.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc b/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
index 6f4ba40133f..9d897d5ccd6 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc b/libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
index bdbacc6ef8e..0a666b2c329 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/simd.cc b/libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
index 657646c0ac5..5f30a43a6e5 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 
 template <typename V>
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc b/libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
index acef488e214..bcf6c738f19 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,9 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// xfail: run * * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/mathreference.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc b/libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
index 3a79a1f8e3d..477221f515a 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/conversions.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/splits.cc b/libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
index 8b61635c2a6..5c662b00121 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 
 template <typename V>
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc b/libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
index 24730f1856c..f8b1d2a45ec 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/metahelpers.h"
 #include "bits/test_values.h"
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc b/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
index e516926ae1d..2dbc89364e7 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
@@ -1,4 +1,3 @@ 
-// test only floattypes
 // Copyright (C) 2020 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -16,6 +15,8 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// only: float|double|ldouble * * *
+// expensive: * [1-9] * *
 #include "bits/test_values.h"
 #include "bits/verify.h"
 
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/where.cc b/libstdc++-v3/testsuite/experimental/simd/tests/where.cc
index 5e73a3b1989..5eab176ba4c 100644
--- a/libstdc++-v3/testsuite/experimental/simd/tests/where.cc
+++ b/libstdc++-v3/testsuite/experimental/simd/tests/where.cc
@@ -15,6 +15,7 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
+// expensive: * [1-9] * *
 #include "bits/verify.h"
 #include "bits/make_vec.h"
 #include "bits/metahelpers.h"