Updated test scripts for ARM NEON
parent
a59e32be73
commit
5b81b5c66c
|
|
@ -1461,46 +1461,50 @@ if [[ ("$HAVE_DISASS" -ne "0" && ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0")) ]
|
|||
echo "Testing: ARM NEON code generation" | tee -a "$TEST_RESULTS"
|
||||
echo
|
||||
|
||||
OBJFILE=blake2.o; rm -f "$OBJFILE" 2>/dev/null
|
||||
OBJFILE=aria.o; rm -f "$OBJFILE" 2>/dev/null
|
||||
CXX="$CXX" CXXFLAGS="$RELEASE_CXXFLAGS ${PLATFORM_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" $OBJFILE 2>&1 | tee -a "$TEST_RESULTS"
|
||||
|
||||
COUNT=0
|
||||
FAILED=0
|
||||
DISASS_TEXT=$("$DISASS" "${DISASSARGS[@]}" "$OBJFILE" 2>/dev/null)
|
||||
|
||||
# BLAKE2_NEON_Compress32: 30 each vld1q_u8 and vld1q_u64
|
||||
# BLAKE2_NEON_Compress64: 22 each vld1q_u8 and vld1q_u64
|
||||
COUNT1=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'ldr.*q|vld.*128')
|
||||
COUNT2=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'ldp.*q')
|
||||
COUNT=$(($COUNT1 + $(($COUNT2 + $COUNT2))))
|
||||
if [[ ("$COUNT" -lt "25") ]]; then
|
||||
# ARIA::UncheckedKeySet: 8 vld1q.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vld')
|
||||
if [[ ("$COUNT" -lt "8") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector load instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# BLAKE2_NEON_Compress{32|64}: 6 each vst1q_u32 and vst1q_u64
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'str.*q|vstr')
|
||||
if [[ ("$COUNT" -lt "6") ]]; then
|
||||
# ARIA::UncheckedKeySet: 24 vstr1q.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vst')
|
||||
if [[ ("$COUNT" -lt "24") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector store instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# BLAKE2_NEON_Compress{32|64}: 409 each vaddq_u32 and vaddq_u64
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'add.*v|vadd')
|
||||
if [[ ("$COUNT" -lt "400") ]]; then
|
||||
# ARIA::UncheckedKeySet: 17 vshl.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vshl')
|
||||
if [[ ("$COUNT" -lt "17") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector add instructions" | tee -a "$TEST_RESULTS"
|
||||
echo "ERROR: failed to generate expected vector shift left instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# BLAKE2_NEON_Compress{32|64}: 559 each veorq_u32 and veorq_u64
|
||||
# ARIA::UncheckedKeySet: 17 vshr.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vshl')
|
||||
if [[ ("$COUNT" -lt "17") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector shift right instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# ARIA::UncheckedKeySet: 34 veor
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'eor.*v|veor')
|
||||
if [[ ("$COUNT" -lt "550") ]]; then
|
||||
if [[ ("$COUNT" -lt "34") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector xor instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
if [[ ("$FAILED" -eq "0") ]]; then
|
||||
echo "Verified vector load, store, add, xor machine instructions" | tee -a "$TEST_RESULTS"
|
||||
echo "Verified vector load, store, shfit left, shift right, xor machine instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
38
cryptest.sh
38
cryptest.sh
|
|
@ -1461,46 +1461,50 @@ if [[ ("$HAVE_DISASS" -ne "0" && ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0")) ]
|
|||
echo "Testing: ARM NEON code generation" | tee -a "$TEST_RESULTS"
|
||||
echo
|
||||
|
||||
OBJFILE=blake2.o; rm -f "$OBJFILE" 2>/dev/null
|
||||
OBJFILE=aria.o; rm -f "$OBJFILE" 2>/dev/null
|
||||
CXX="$CXX" CXXFLAGS="$RELEASE_CXXFLAGS ${PLATFORM_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" $OBJFILE 2>&1 | tee -a "$TEST_RESULTS"
|
||||
|
||||
COUNT=0
|
||||
FAILED=0
|
||||
DISASS_TEXT=$("$DISASS" "${DISASSARGS[@]}" "$OBJFILE" 2>/dev/null)
|
||||
|
||||
# BLAKE2_NEON_Compress32: 30 each vld1q_u8 and vld1q_u64
|
||||
# BLAKE2_NEON_Compress64: 22 each vld1q_u8 and vld1q_u64
|
||||
COUNT1=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'ldr.*q|vld.*128')
|
||||
COUNT2=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'ldp.*q')
|
||||
COUNT=$(($COUNT1 + $(($COUNT2 + $COUNT2))))
|
||||
if [[ ("$COUNT" -lt "25") ]]; then
|
||||
# ARIA::UncheckedKeySet: 8 vld1q.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vld')
|
||||
if [[ ("$COUNT" -lt "8") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector load instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# BLAKE2_NEON_Compress{32|64}: 6 each vst1q_u32 and vst1q_u64
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'str.*q|vstr')
|
||||
if [[ ("$COUNT" -lt "6") ]]; then
|
||||
# ARIA::UncheckedKeySet: 24 vstr1q.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vst')
|
||||
if [[ ("$COUNT" -lt "24") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector store instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# BLAKE2_NEON_Compress{32|64}: 409 each vaddq_u32 and vaddq_u64
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'add.*v|vadd')
|
||||
if [[ ("$COUNT" -lt "400") ]]; then
|
||||
# ARIA::UncheckedKeySet: 17 vshl.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vshl')
|
||||
if [[ ("$COUNT" -lt "17") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector add instructions" | tee -a "$TEST_RESULTS"
|
||||
echo "ERROR: failed to generate expected vector shift left instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# BLAKE2_NEON_Compress{32|64}: 559 each veorq_u32 and veorq_u64
|
||||
# ARIA::UncheckedKeySet: 17 vshr.32
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'vshl')
|
||||
if [[ ("$COUNT" -lt "17") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector shift right instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
# ARIA::UncheckedKeySet: 34 veor
|
||||
COUNT=$(echo -n "$DISASS_TEXT" | "$EGREP" -i -c 'eor.*v|veor')
|
||||
if [[ ("$COUNT" -lt "550") ]]; then
|
||||
if [[ ("$COUNT" -lt "34") ]]; then
|
||||
FAILED=1
|
||||
echo "ERROR: failed to generate expected vector xor instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
|
||||
if [[ ("$FAILED" -eq "0") ]]; then
|
||||
echo "Verified vector load, store, add, xor machine instructions" | tee -a "$TEST_RESULTS"
|
||||
echo "Verified vector load, store, shfit left, shift right, xor machine instructions" | tee -a "$TEST_RESULTS"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue