Skip to content
Permalink
Browse files

Add NEON and ASIMD intrinsics for SPECK-128 (GH #538)

Performance increased by about 115% on a 980 MHz BananaPi dev-board. Throughput went from about 46.2 cpb to about 21.5 cpb.
  • Loading branch information...
noloader committed Nov 23, 2017
1 parent b08596d commit 304809a65dc34a73160edcf9f568e35d6e1af9b5
Showing with 430 additions and 8 deletions.
  1. +2 −0 GNUmakefile
  2. +390 −2 speck-simd.cpp
  3. +32 −4 speck.cpp
  4. +6 −2 speck.h
@@ -360,6 +360,7 @@ ifeq ($(IS_NEON),1)
GCM_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
ARIA_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
BLAKE2_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
SPECK_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
endif
endif

@@ -369,6 +370,7 @@ ifeq ($(IS_ARMV8),1)
ARIA_FLAG = -march=armv8-a
BLAKE2_FLAG = -march=armv8-a
NEON_FLAG = -march=armv8-a
SPECK_FLAG = -march=armv8-a
endif
HAVE_CRC = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crc -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRC32)
ifeq ($(HAVE_CRC),1)
Oops, something went wrong.

0 comments on commit 304809a

Please sign in to comment.
You can’t perform that action at this time.