Add test for vectorization opportunities
parent
20c5824807
commit
05153d9740
74
cryptest.sh
74
cryptest.sh
|
|
@ -39,6 +39,9 @@ fi
|
||||||
if [[ (-z "$BENCHMARK_RESULTS") ]]; then
|
if [[ (-z "$BENCHMARK_RESULTS") ]]; then
|
||||||
BENCHMARK_RESULTS=cryptest-bench.txt
|
BENCHMARK_RESULTS=cryptest-bench.txt
|
||||||
fi
|
fi
|
||||||
|
if [[ (-z "$VECTORIZATION_RESULTS") ]]; then
|
||||||
|
VECTORIZATION_RESULTS=cryptest-vector.txt
|
||||||
|
fi
|
||||||
if [[ (-z "$WARN_RESULTS") ]]; then
|
if [[ (-z "$WARN_RESULTS") ]]; then
|
||||||
WARN_RESULTS=cryptest-warn.txt
|
WARN_RESULTS=cryptest-warn.txt
|
||||||
fi
|
fi
|
||||||
|
|
@ -514,6 +517,20 @@ if [[ (-z "$HAVE_BOUNDS_SAN") ]]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Vectorization opportunities: GCC 4.x; maybe Clang
|
||||||
|
# http://lwn.net/Articles/691932/
|
||||||
|
rm -f "$TMP/adhoc.exe" > /dev/null 2>&1
|
||||||
|
if [[ (-z "$HAVE_INFO_VEC") ]]; then
|
||||||
|
HAVE_INFO_VEC=0
|
||||||
|
"$CXX" -DCRYPTOPP_ADHOC_MAIN -fopt-info-vec adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1
|
||||||
|
if [[ ("$?" -eq "0") ]]; then
|
||||||
|
"$TMP/adhoc.exe" > /dev/null 2>&1
|
||||||
|
if [[ ("$?" -eq "0") ]]; then
|
||||||
|
HAVE_INFO_VEC=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
rm -f "$TMP/adhoc.exe" > /dev/null 2>&1
|
rm -f "$TMP/adhoc.exe" > /dev/null 2>&1
|
||||||
if [[ (-z "$HAVE_OMP") ]]; then
|
if [[ (-z "$HAVE_OMP") ]]; then
|
||||||
HAVE_OMP=0
|
HAVE_OMP=0
|
||||||
|
|
@ -3231,6 +3248,63 @@ if [[ ("$HAVE_OMP" -ne "0") ]]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
############################################
|
||||||
|
# Vectorization opportunities (requires -O3, OPT_O3)
|
||||||
|
if [[ ("$HAVE_O3" && "$HAVE_INFO_VEC" -ne "0") ]]; then
|
||||||
|
|
||||||
|
############################################
|
||||||
|
# Debug build
|
||||||
|
echo
|
||||||
|
echo "************************************" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
echo "Testing: Debug, vectorization opportunities" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
echo
|
||||||
|
|
||||||
|
"$MAKE" clean > /dev/null 2>&1
|
||||||
|
rm -f adhoc.cpp > /dev/null 2>&1
|
||||||
|
|
||||||
|
CXXFLAGS="$DEBUG_CXXFLAGS -O3 -fopt-info-vec ${PLATFORM_CXXFLAGS[@]} $USER_CXXFLAGS ${DEPRECATED_CXXFLAGS[@]}"
|
||||||
|
CXX="$CXX" CXXFLAGS="$CXXFLAGS" "$MAKE" "${MAKEARGS[@]}" static dynamic cryptest.exe 2>&1 | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
|
||||||
|
if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then
|
||||||
|
echo "ERROR: failed to make cryptest.exe" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
else
|
||||||
|
./cryptest.exe v 2>&1 | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then
|
||||||
|
echo "ERROR: failed to execute validation suite" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
fi
|
||||||
|
./cryptest.exe tv all 2>&1 | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then
|
||||||
|
echo "ERROR: failed to execute test vectors" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
############################################
|
||||||
|
# Release build
|
||||||
|
echo
|
||||||
|
echo "************************************" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
echo "Testing: Release, vectorization opportunities" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
echo
|
||||||
|
|
||||||
|
"$MAKE" clean > /dev/null 2>&1
|
||||||
|
rm -f adhoc.cpp > /dev/null 2>&1
|
||||||
|
|
||||||
|
CXXFLAGS="$RELEASE_CXXFLAGS -O3 -fopt-info-vec ${PLATFORM_CXXFLAGS[@]} $USER_CXXFLAGS ${DEPRECATED_CXXFLAGS[@]}"
|
||||||
|
CXX="$CXX" CXXFLAGS="$CXXFLAGS" "$MAKE" "${MAKEARGS[@]}" static dynamic cryptest.exe 2>&1 | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
|
||||||
|
if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then
|
||||||
|
echo "ERROR: failed to make cryptest.exe" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
else
|
||||||
|
./cryptest.exe v 2>&1 | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then
|
||||||
|
echo "ERROR: failed to execute validation suite" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
fi
|
||||||
|
./cryptest.exe tv all 2>&1 | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then
|
||||||
|
echo "ERROR: failed to execute test vectors" | tee -a "$VECTORIZATION_RESULTS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
# UBSan, c++03
|
# UBSan, c++03
|
||||||
if [[ ("$HAVE_CXX03" -ne "0" && "$HAVE_UBSAN" -ne "0") ]]; then
|
if [[ ("$HAVE_CXX03" -ne "0" && "$HAVE_UBSAN" -ne "0") ]]; then
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue