Daily bump.
[official-gcc.git] / libstdc++-v3 / scripts / check_simd
blob25acf64c841718df87848f8d74f2f55b4f50aba6
1 #!/bin/sh
3 # check_simd <srcdir> <builddir> <CXXFLAGS>
4 # Read config from $CHECK_SIMD_CONFIG file or $target_list
6 scriptdir="$(cd "${0%/*}" && pwd)"
7 srcdir="$1"
8 builddir="$2"
9 shift 2
10 testdir="$builddir/testsuite"
12 CXX="$("$builddir/scripts/testsuite_flags" --build-cxx)"
13 CXXFLAGS="$("$builddir/scripts/testsuite_flags" --cxxflags) $1 -Wno-psabi"
14 shift
15 INCLUDES="$("$builddir/scripts/testsuite_flags" --build-includes)"
17 target_triplet=$($CXX -dumpmachine)
19 define_target() {
20 name="$1"
21 flags="$2"
22 sim="$3"
23 eval "$name=\"flags=\\\"$flags\\\"
24 sim=\\\"$sim\\\"\""
27 if [ -f "$CHECK_SIMD_CONFIG" ]; then
28 . "$CHECK_SIMD_CONFIG"
29 elif [ -z "$CHECK_SIMD_CONFIG" ]; then
30 if [ -z "$target_list" ]; then
31 target_list="unix"
32 case "$target_triplet" in
33 x86_64-*) target_list="unix/-march=native" ;;
34 i?86-*) target_list="unix/-march=native" ;;
35 powerpc64le-*) target_list="unix/-mcpu=power8" ;;
36 aarch64-*) target_list="unix/-mcpu=cortex-a53" ;;
37 arm-*) target_list="unix/-mcpu=cortex-a7" ;;
38 esac
40 else
41 echo "Error: File not found: \$CHECK_SIMD_CONFIG='$CHECK_SIMD_CONFIG'" 1>&2
42 exit 1
45 # define unix with no flags and no simulator:
46 define_target unix
48 list="$target_list"
50 # expand a{b,c} to a/b a/c
51 while [ "${list#*\{}" != "${list}" ]; do
52 list="$(echo "$list" | \
53 sed -e 's#\([^ ]\+\){\([^{},]*\),\([^{}]*\)}\(/[^ ]*\)\?#\1/\2\4 \1{\3}\4#g' \
54 -e 's#{\([^{},]*\)}#/\1#g' \
55 -e 's#/ # #g' -e 's#/$##')"
56 done
58 # per a/b/c block extract flags and simulator, then make check-simd
59 while [ ${#list} -gt 0 ]; do
60 a="${list%% *}"
61 if [ "$a" = "$list" ]; then
62 list=""
63 else
64 list="${list#${a} }"
66 b="${a%%/*}"
67 eval "eval \"\$$b\""
68 flags="${flags}$(echo "${a#${b}}"|sed 's#/# #g')"
69 subdir="simd/$(echo "$flags" | sed 's#[= /-]##g')"
70 rm -f "${subdir}/Makefile"
71 $srcdir/testsuite/experimental/simd/generate_makefile.sh \
72 --destination="$testdir/$subdir" --sim="$sim" --testflags="$flags" \
73 $CXX $INCLUDES $CXXFLAGS -static-libgcc -static-libstdc++
74 echo "$subdir"
75 done