From 917559442633484e045497b47ac03e15bb016a70 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Thu, 16 Jun 2016 03:40:13 -0400 Subject: [PATCH] Add explicit ARMv7a/NEON test --- cryptest.sh | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/cryptest.sh b/cryptest.sh index f393faa6..b82f6ec7 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -25,7 +25,7 @@ touch "$WARN_RESULTS" # Respect user's preferred flags, but filter the stuff we expliclty test FILTERED_CXXFLAGS=("-DDEBUG" "-DNDEBUG" "-g" "-g0" "-g1" "-g2" "-g3" "-O0" "-O1" "-O2" "-O3" "-Os" "-Og" "-xO0" "-xO1" "-xO2" "-xO3" "-xOs" "-xOg" "-std=c++03" "-std=c++11" "-std=c++14" "-std=c++17" - "-m32" "-m64" "-mx32" "-maes" "-mrdrand" "-mrdrnd" "-mrdseed" "-mpclmul" "-Wa,-q" + "-m32" "-m64" "-mx32" "-maes" "-mrdrand" "-mrdrnd" "-mrdseed" "-mpclmul" "-Wa,-q" "-mfpu=neon" "-DCRYPTOPP_DISABLE_ASM" "-DCRYPTOPP_DISABLE_SSSE3" "-DCRYPTOPP_DISABLE_AESNI" "-fsanitize=address" "-fsanitize=undefined" "-march=armv8-a+crypto" "-march=armv8-a+crc" "-DDCRYPTOPP_NO_BACKWARDS_COMPATIBILITY_562" "-DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS") @@ -404,7 +404,7 @@ fi # Add to exercise NEON more thoroughly if [ "$IS_ARM32" -ne "0" ] && [ "$HAVE_ARM_NEON" -ne "0" ]; then - RETAINED_CXXFLAGS+=("-fpu=neon") + RETAINED_CXXFLAGS+=("-mfpu=neon") fi ############################################ @@ -414,6 +414,35 @@ TEST_BEGIN=$(date) echo | tee -a "$TEST_RESULTS" echo "Start time: $TEST_BEGIN" | tee -a "$TEST_RESULTS" +############################################ +# Basic NEON build +if [ "$IS_ARM32" -ne "0" ] && [ "$HAVE_ARM_NEON" -ne "0" ]; then + echo + echo "************************************" | tee -a "$TEST_RESULTS" + echo "Testing: NEON, default CXXFLAGS" | tee -a "$TEST_RESULTS" + echo + + unset CXXFLAGS + "$MAKE" clean > /dev/null 2>&1 + rm -f adhoc.cpp > /dev/null 2>&1 + + export CXXFLAGS="-g2 -O2 -mfpu=neon" + "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" + + if [ "${PIPESTATUS[0]}" -ne "0" ]; then + echo "ERROR: failed to make cryptest.exe" | tee -a "$TEST_RESULTS" + else + ./cryptest.exe v 2>&1 | tee -a "$TEST_RESULTS" + if [ "${PIPESTATUS[0]}" -ne "0" ]; then + echo "ERROR: failed to execute validation suite" | tee -a "$TEST_RESULTS" + fi + ./cryptest.exe tv all 2>&1 | tee -a "$TEST_RESULTS" + if [ "${PIPESTATUS[0]}" -ne "0" ]; then + echo "ERROR: failed to execute test vectors" | tee -a "$TEST_RESULTS" + fi + fi +fi + ############################################ # Basic debug build echo @@ -2587,18 +2616,18 @@ if [ "$HAVE_X86_AES" -ne "0" ] || [ "$HAVE_X86_RDRAND" -ne "0" ] || [ "$HAVE_X86 fi ############################################ -# ARM NEON -if [ "$HAVE_ARM_NEON" -ne "0" ]; then +# Explicit ARMv7a NEON +if [ "$IS_ARM32" -ne "0" ] && [ "$HAVE_ARM_NEON" -ne "0" ]; then echo echo "************************************" | tee -a "$TEST_RESULTS" - echo "Testing: ARM NEON" | tee -a "$TEST_RESULTS" + echo "Testing: ARM ARMv7a NEON" | tee -a "$TEST_RESULTS" echo unset CXXFLAGS "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - export CXXFLAGS="-DNDEBUG -g2 -O2 -march=armv7a -fpu=neon ${RETAINED_CXXFLAGS[@]}" + export CXXFLAGS="-DNDEBUG -g2 -O2 -march=armv7a -mfpu=neon ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" static cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" if [ "${PIPESTATUS[0]}" -ne "0" ]; then