Enable SVE for A64FX
[platform/upstream/openblas.git] / Makefile.arm64
1 ifneq ($(C_COMPILER), PGI)
2
3 ifeq ($(C_COMPILER), CLANG)
4 ISCLANG=1
5 endif
6 ifneq (1, $(filter 1,$(GCCVERSIONGT4) $(ISCLANG)))
7 CCOMMON_OPT += -march=armv8-a
8 ifneq ($(F_COMPILER), NAG)
9 FCOMMON_OPT += -march=armv8-a
10 endif
11
12
13 else 
14
15
16 ifeq ($(CORE), ARMV8)
17 CCOMMON_OPT += -march=armv8-a
18 ifneq ($(F_COMPILER), NAG)
19 FCOMMON_OPT += -march=armv8-a
20 endif
21 endif
22
23 ifeq ($(CORE), CORTEXA53)
24 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
25 ifneq ($(F_COMPILER), NAG)
26 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
27 endif
28 endif
29
30 ifeq ($(CORE), CORTEXA57)
31 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a57
32 ifneq ($(F_COMPILER), NAG)
33 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a57
34 endif
35 endif
36
37 ifeq ($(CORE), CORTEXA72)
38 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
39 ifneq ($(F_COMPILER), NAG)
40 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
41 endif
42 endif
43
44 ifeq ($(CORE), CORTEXA73)
45 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a73
46 ifneq ($(F_COMPILER), NAG)
47 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a73
48 endif
49 endif
50
51 # Use a72 tunings because Neoverse-N1 is only available
52 # in GCC>=9
53 ifeq ($(CORE), NEOVERSEN1)
54 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
55 ifeq ($(GCCVERSIONGTEQ9), 1)
56 CCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
57 ifneq ($(F_COMPILER), NAG)
58 FCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
59 endif
60 else
61 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
62 ifneq ($(F_COMPILER), NAG)
63 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
64 endif
65 endif
66 else
67 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
68 ifneq ($(F_COMPILER), NAG)
69 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
70 endif
71 endif
72 endif
73
74 # Use a53 tunings because a55 is only available in GCC>=8.1
75 ifeq ($(CORE), CORTEXA55)
76 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
77 ifeq ($(GCCVERSIONGTEQ8), 1)
78 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
79 ifneq ($(F_COMPILER), NAG)
80 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
81 endif
82 else
83 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a53
84 ifneq ($(F_COMPILER), NAG)
85 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a53
86 endif
87 endif
88 else
89 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
90 ifneq ($(F_COMPILER), NAG)
91 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
92 endif
93 endif
94 endif
95
96 ifeq ($(CORE), THUNDERX)
97 CCOMMON_OPT += -march=armv8-a -mtune=thunderx
98 ifneq ($(F_COMPILER), NAG)
99 FCOMMON_OPT += -march=armv8-a -mtune=thunderx
100 endif
101 endif
102
103 ifeq ($(CORE), FALKOR)
104 CCOMMON_OPT += -march=armv8-a -mtune=falkor
105 ifneq ($(F_COMPILER), NAG)
106 FCOMMON_OPT += -march=armv8-a -mtune=falkor
107 endif
108 endif
109
110 ifeq ($(CORE), THUNDERX2T99)
111 CCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
112 ifneq ($(F_COMPILER), NAG)
113 FCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
114 endif
115 endif
116
117 ifeq ($(CORE), THUNDERX3T110)
118 ifeq ($(GCCVERSIONGTEQ10), 1)
119 CCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
120 ifneq ($(F_COMPILER), NAG)
121 FCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
122 endif
123 else
124 CCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
125 ifneq ($(F_COMPILER), NAG)
126 FCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
127 endif
128 endif
129 endif
130
131 ifeq ($(CORE), VORTEX)
132 CCOMMON_OPT += -march=armv8.3-a
133 ifneq ($(F_COMPILER), NAG)
134 FCOMMON_OPT += -march=armv8.3-a
135 endif
136 endif
137
138 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ9) $(ISCLANG)))
139 ifeq ($(CORE), TSV110)
140 CCOMMON_OPT += -march=armv8.2-a -mtune=tsv110
141 ifneq ($(F_COMPILER), NAG)
142 FCOMMON_OPT += -march=armv8.2-a -mtune=tsv110
143 endif
144 endif
145 endif
146
147 ifeq ($(GCCVERSIONGTEQ9), 1)
148 ifeq ($(CORE), EMAG8180)
149 CCOMMON_OPT += -march=armv8-a -mtune=emag
150 ifneq ($(F_COMPILER), NAG)
151 FCOMMON_OPT += -march=armv8-a -mtune=emag
152 endif
153 endif
154 endif
155
156 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ11) $(ISCLANG)))
157 ifeq ($(CORE), A64FX)
158 CCOMMON_OPT += -march=armv8.2-a+sve -mtune=a64fx
159 ifneq ($(F_COMPILER), NAG)
160 FCOMMON_OPT += -march=armv8.2-a+sve -mtune=a64fx
161 endif
162 endif
163 endif
164
165 endif
166
167 endif