support popcnt on armv8
authorNiklas Fiekas <niklas.fiekas@backscattering.de>
Thu, 25 Jun 2020 10:42:25 +0000 (12:42 +0200)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sat, 27 Jun 2020 08:19:29 +0000 (10:19 +0200)
* Supports popcnt (thanks @daylen)
* bits = 64 is now the default

Tested with g++ (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 on ThunderX CN8890,
yields about 9% speedup.

Also tested with clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final).

closes https://github.com/official-stockfish/Stockfish/pull/2770

No functional change.

src/Makefile

index 81731e6675c0134d21a994da1c5c048adbd4db8b..492403d3ce875b60e4027710c951b9b94a5e3f64 100644 (file)
@@ -134,8 +134,8 @@ endif
 
 ifeq ($(ARCH),armv8)
        arch = armv8-a
-       bits = 64
        prefetch = yes
+       popcnt = yes
 endif
 
 ifeq ($(ARCH),ppc-32)
@@ -322,7 +322,7 @@ endif
 
 ### 3.6 popcnt
 ifeq ($(popcnt),yes)
-       ifeq ($(arch),ppc64)
+       ifeq ($(arch),$(filter $(arch),ppc64 armv8-a))
                CXXFLAGS += -DUSE_POPCNT
        else ifeq ($(comp),icc)
                CXXFLAGS += -msse3 -DUSE_POPCNT