Merge pull request #3811 from martin-frbg/issue3805
Improve gcc arch option selecting for Neoverse cpus
This commit is contained in:
commit
9a31faf420
|
@ -89,11 +89,11 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Use a72 tunings because Neoverse-V1 is only available
|
# Use a72 tunings because Neoverse-V1 is only available
|
||||||
# in GCC>=9.4
|
# in GCC>=10.4
|
||||||
ifeq ($(CORE), NEOVERSEV1)
|
ifeq ($(CORE), NEOVERSEV1)
|
||||||
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
|
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
|
||||||
ifeq ($(GCCVERSIONGTEQ9), 1)
|
ifeq ($(GCCVERSIONGTEQ10), 1)
|
||||||
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ10)))
|
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11)))
|
||||||
CCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
|
CCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
|
||||||
ifneq ($(F_COMPILER), NAG)
|
ifneq ($(F_COMPILER), NAG)
|
||||||
FCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
|
FCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
|
||||||
|
@ -119,11 +119,11 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Use a72 tunings because Neoverse-N2 is only available
|
# Use a72 tunings because Neoverse-N2 is only available
|
||||||
# in GCC>=9.4
|
# in GCC>=10.4
|
||||||
ifeq ($(CORE), NEOVERSEN2)
|
ifeq ($(CORE), NEOVERSEN2)
|
||||||
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
|
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
|
||||||
ifeq ($(GCCVERSIONGTEQ9), 1)
|
ifeq ($(GCCVERSIONGTEQ10), 1)
|
||||||
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ10)))
|
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11)))
|
||||||
ifneq ($(OSNAME), Darwin)
|
ifneq ($(OSNAME), Darwin)
|
||||||
CCOMMON_OPT += -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2
|
CCOMMON_OPT += -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2
|
||||||
else
|
else
|
||||||
|
|
|
@ -155,6 +155,39 @@ if (${CORE} STREQUAL A64FX)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (${CORE} STREQUAL NEOVERSEN2)
|
||||||
|
if (NOT DYNAMIC_ARCH)
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4)
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2")
|
||||||
|
else ()
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve")
|
||||||
|
endif()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (${CORE} STREQUAL NEOVERSEV1)
|
||||||
|
if (NOT DYNAMIC_ARCH)
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4)
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.4-a+sve -mtune=neoverse-v1")
|
||||||
|
else ()
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve")
|
||||||
|
endif()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (${CORE} STREQUAL NEOVERSEN1)
|
||||||
|
if (NOT DYNAMIC_ARCH)
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
if (${GCC_VERSION} VERSION_GREATER 9.4 OR ${GCC_VERSION} VERSION_EQUAL 9.4)
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=neoverse-n1")
|
||||||
|
else ()
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve")
|
||||||
|
endif()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (${CORE} STREQUAL ARMV8SVE)
|
if (${CORE} STREQUAL ARMV8SVE)
|
||||||
if (NOT DYNAMIC_ARCH)
|
if (NOT DYNAMIC_ARCH)
|
||||||
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8-a+sve")
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8-a+sve")
|
||||||
|
|
Loading…
Reference in New Issue