Skip to content

Commit

Permalink
Merge pull request tesseract-ocr#3061 from stweil/neon
Browse files Browse the repository at this point in the history
Always use NEON by default for ARMv8
  • Loading branch information
zdenop authored Jul 11, 2020
2 parents 875bd48 + 2db2223 commit 135c8a4
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ noinst_LTLIBRARIES += libtesseract_sse.la
endif

if HAVE_NEON
libtesseract_neon_la_CXXFLAGS = -mfpu=neon
libtesseract_neon_la_CXXFLAGS = $(NEON_CXXFLAGS)
libtesseract_neon_la_SOURCES = src/arch/intsimdmatrixneon.cpp
libtesseract_la_LIBADD += libtesseract_neon.la
noinst_LTLIBRARIES += libtesseract_neon.la
Expand Down
9 changes: 9 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -160,12 +160,21 @@ case "${host_cpu}" in

;;

aarch64)

# ARMv8 always has NEON and does not need special compiler flags.
AM_CONDITIONAL([HAVE_NEON], true)
AC_DEFINE([HAVE_NEON], [1], [Enable NEON instructions])
;;

arm*)

AX_CHECK_COMPILE_FLAG([-mfpu=neon], [neon=true], [neon=false], [$WERROR])
AM_CONDITIONAL([HAVE_NEON], $neon)
if $neon; then
AC_DEFINE([HAVE_NEON], [1], [Enable NEON instructions])
NEON_CXXFLAGS="-mfpu=neon"
AC_SUBST([NEON_CXXFLAGS])
fi

;;
Expand Down
9 changes: 6 additions & 3 deletions src/arch/simddetect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
#endif
#endif

#ifdef HAVE_NEON
#if defined(HAVE_NEON) && !defined(__aarch64__)
#ifdef ANDROID
#include <cpufeatures.h>
#else
Expand Down Expand Up @@ -66,7 +66,10 @@ static STRING_VAR(dotproduct, "auto",

SIMDDetect SIMDDetect::detector;

#if defined(HAVE_NEON)
#if defined(__aarch64__)
// ARMv8 always has NEON.
bool SIMDDetect::neon_available_ = true;
#elif defined(HAVE_NEON)
// If true, then Neon has been detected.
bool SIMDDetect::neon_available_;
#else
Expand Down Expand Up @@ -177,7 +180,7 @@ SIMDDetect::SIMDDetect() {
#endif
#endif

#ifdef HAVE_NEON
#if defined(HAVE_NEON) && !defined(__aarch64__)
#ifdef ANDROID
{
AndroidCpuFamily family = android_getCpuFamily();
Expand Down

0 comments on commit 135c8a4

Please sign in to comment.