Merge branch 'release-0.3.0' into develop
[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), ARMV8SVE)
24 CCOMMON_OPT += -march=armv8-a+sve
25 ifneq ($(F_COMPILER), NAG)
26 FCOMMON_OPT += -march=armv8-a+sve
27 endif
28 endif
29
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
34 endif
35 endif
36
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
41 endif
42 endif
43
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
48 endif
49 endif
50
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
55 endif
56 endif
57
58 # Use a72 tunings because Neoverse-N1 is only available
59 # in GCC>=9
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
66 endif
67 else
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
71 endif
72 endif
73 else
74 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
75 ifneq ($(F_COMPILER), NAG)
76 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
77 endif
78 endif
79 endif
80
81 # Use a53 tunings because a55 is only available in GCC>=8.1
82 ifeq ($(CORE), CORTEXA55)
83 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
84 ifeq ($(GCCVERSIONGTEQ8), 1)
85 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
86 ifneq ($(F_COMPILER), NAG)
87 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
88 endif
89 else
90 CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a53
91 ifneq ($(F_COMPILER), NAG)
92 FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a53
93 endif
94 endif
95 else
96 CCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
97 ifneq ($(F_COMPILER), NAG)
98 FCOMMON_OPT += -march=armv8-a -mtune=cortex-a53
99 endif
100 endif
101 endif
102
103 ifeq ($(CORE), THUNDERX)
104 CCOMMON_OPT += -march=armv8-a -mtune=thunderx
105 ifneq ($(F_COMPILER), NAG)
106 FCOMMON_OPT += -march=armv8-a -mtune=thunderx
107 endif
108 endif
109
110 ifeq ($(CORE), FALKOR)
111 CCOMMON_OPT += -march=armv8-a -mtune=falkor
112 ifneq ($(F_COMPILER), NAG)
113 FCOMMON_OPT += -march=armv8-a -mtune=falkor
114 endif
115 endif
116
117 ifeq ($(CORE), THUNDERX2T99)
118 CCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
119 ifneq ($(F_COMPILER), NAG)
120 FCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
121 endif
122 endif
123
124 ifeq ($(CORE), THUNDERX3T110)
125 ifeq ($(GCCVERSIONGTEQ10), 1)
126 CCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
127 ifneq ($(F_COMPILER), NAG)
128 FCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
129 endif
130 else
131 CCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
132 ifneq ($(F_COMPILER), NAG)
133 FCOMMON_OPT += -march=armv8.1-a -mtune=thunderx2t99
134 endif
135 endif
136 endif
137
138 ifeq ($(CORE), VORTEX)
139 CCOMMON_OPT += -march=armv8.3-a
140 ifneq ($(F_COMPILER), NAG)
141 FCOMMON_OPT += -march=armv8.3-a
142 endif
143 endif
144
145 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ9) $(ISCLANG)))
146 ifeq ($(CORE), TSV110)
147 CCOMMON_OPT += -march=armv8.2-a -mtune=tsv110
148 ifneq ($(F_COMPILER), NAG)
149 FCOMMON_OPT += -march=armv8.2-a -mtune=tsv110
150 endif
151 endif
152 endif
153
154 ifeq ($(GCCVERSIONGTEQ9), 1)
155 ifeq ($(CORE), EMAG8180)
156 CCOMMON_OPT += -march=armv8-a -mtune=emag
157 ifneq ($(F_COMPILER), NAG)
158 FCOMMON_OPT += -march=armv8-a -mtune=emag
159 endif
160 endif
161 endif
162
163 ifeq (1, $(filter 1,$(GCCVERSIONGTEQ11) $(ISCLANG)))
164 ifeq ($(CORE), A64FX)
165 CCOMMON_OPT += -march=armv8.2-a+sve -mtune=a64fx
166 ifneq ($(F_COMPILER), NAG)
167 FCOMMON_OPT += -march=armv8.2-a+sve -mtune=a64fx
168 endif
169 endif
170 endif
171
172 endif
173
174 endif