1 ifneq ($(C_COMPILER), PGI)
3 ifeq ($(C_COMPILER), CLANG)
6 ifneq (1, $(filter 1,$(GCCVERSIONGT4) $(ISCLANG)))
7 CCOMMON_OPT += -march=armv8-a
8 ifneq ($(F_COMPILER), NAG)
9 FCOMMON_OPT += -march=armv8-a
17 CCOMMON_OPT += -march=armv8-a
18 ifneq ($(F_COMPILER), NAG)
19 FCOMMON_OPT += -march=armv8-a
23 ifeq ($(CORE), ARMV8SVE)
24 CCOMMON_OPT += -march=armv8-a+sve
25 ifneq ($(F_COMPILER), NAG)
26 FCOMMON_OPT += -march=armv8-a+sve
30 ifeq ($(CORE), CORTEXA53)
31 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
32 ifneq ($(F_COMPILER), NAG)
33 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
37 ifeq ($(CORE), CORTEXA57)
38 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a57
39 ifneq ($(F_COMPILER), NAG)
40 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a57
44 ifeq ($(CORE), CORTEXA72)
45 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
46 ifneq ($(F_COMPILER), NAG)
47 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
51 ifeq ($(CORE), CORTEXA73)
52 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a73
53 ifneq ($(F_COMPILER), NAG)
54 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a73
58 # Use a72 tunings because Neoverse-N1 is only available
60 ifeq ($(CORE), NEOVERSEN1)
61 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
62 ifeq ($(GCCVERSIONGTEQ9), 1)
63 CCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
64 ifneq ($(F_COMPILER), NAG)
65 FCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
68 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
69 ifneq ($(F_COMPILER), NAG)
70 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
74 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
75 ifneq ($(F_COMPILER), NAG)
76 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
81 # Use a72 tunings because Neoverse-V1 is only available
83 ifeq ($(CORE), NEOVERSEV1)
84 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
85 ifeq ($(GCCVERSIONGTEQ9), 1)
86 ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ10)))
87 CCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
88 ifneq ($(F_COMPILER), NAG)
89 FCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
92 CCOMMON_OPT += -march=armv8.4-a -mtune=native
93 ifneq ($(F_COMPILER), NAG)
94 FCOMMON_OPT += -march=armv8.4-a -mtune=native
98 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
99 ifneq ($(F_COMPILER), NAG)
100 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
104 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
105 ifneq ($(F_COMPILER), NAG)
106 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
111 # Use a72 tunings because Neoverse-N2 is only available
113 ifeq ($(CORE), NEOVERSEN2)
114 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
115 ifeq ($(GCCVERSIONGTEQ9), 1)
116 ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ10)))
117 CCOMMON_OPT += -march=armv8.5-a -mtune=neoverse-n2
118 ifneq ($(F_COMPILER), NAG)
119 FCOMMON_OPT += -march=armv8.5-a -mtune=neoverse-n2
122 CCOMMON_OPT += -march=armv8.5-a -mtune=native
123 ifneq ($(F_COMPILER), NAG)
124 FCOMMON_OPT += -march=armv8.5-a -mtune=native
128 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
129 ifneq ($(F_COMPILER), NAG)
130 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
134 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
135 ifneq ($(F_COMPILER), NAG)
136 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
141 # Use a53 tunings because a55 is only available in GCC>=8.1
142 ifeq ($(CORE), CORTEXA55)
143 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
144 ifeq ($(GCCVERSIONGTEQ8), 1)
145 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
146 ifneq ($(F_COMPILER), NAG)
147 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
150 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a53
151 ifneq ($(F_COMPILER), NAG)
152 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a53
156 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
157 ifneq ($(F_COMPILER), NAG)
158 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
163 ifeq ($(CORE), THUNDERX)
164 CCOMMON_OPT += -march=armv8-a -mtune=thunderx
165 ifneq ($(F_COMPILER), NAG)
166 FCOMMON_OPT += -march=armv8-a -mtune=thunderx
170 ifeq ($(CORE), FALKOR)
171 CCOMMON_OPT += -march=armv8-a -mtune=falkor
172 ifneq ($(F_COMPILER), NAG)
173 FCOMMON_OPT += -march=armv8-a -mtune=falkor
177 ifeq ($(CORE), THUNDERX2T99)
178 CCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
179 ifneq ($(F_COMPILER), NAG)
180 FCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
184 ifeq ($(CORE), THUNDERX3T110)
185 ifeq ($(GCCVERSIONGTEQ10), 1)
186 CCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
187 ifneq ($(F_COMPILER), NAG)
188 FCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
191 CCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
192 ifneq ($(F_COMPILER), NAG)
193 FCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
198 ifeq ($(CORE), VORTEX)
199 CCOMMON_OPT += -march=armv8.3-a
200 ifneq ($(F_COMPILER), NAG)
201 FCOMMON_OPT += -march=armv8.3-a
205 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ9) $(ISCLANG)))
206 ifeq ($(CORE), TSV110)
207 CCOMMON_OPT += -march=armv8.2-a -mtune=tsv110
208 ifneq ($(F_COMPILER), NAG)
209 FCOMMON_OPT += -march=armv8.2-a -mtune=tsv110
214 ifeq ($(GCCVERSIONGTEQ9), 1)
215 ifeq ($(CORE), EMAG8180)
216 CCOMMON_OPT += -march=armv8-a -mtune=emag
217 ifneq ($(F_COMPILER), NAG)
218 FCOMMON_OPT += -march=armv8-a -mtune=emag
223 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ11) $(ISCLANG)))
224 ifeq ($(CORE), A64FX)
225 CCOMMON_OPT += -march=armv8.2-a+sve -mtune=a64fx
226 ifneq ($(F_COMPILER), NAG)
227 FCOMMON_OPT += -march=armv8.2-a+sve -mtune=a64fx