1 # CPU, FPU and architecture specifications for ARM.
3 # Copyright (C) 2011-2018 Free Software Foundation, Inc.
5 # This file is part of GCC.
7 # GCC is free software; you can redistribute it and/or modify it under
8 # the terms of the GNU General Public License as published by the Free
9 # Software Foundation; either version 3, or (at your option) any later
12 # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 # You should have received a copy of the GNU General Public License
18 # along with GCC; see the file COPYING3. If not see
19 # <http://www.gnu.org/licenses/>.
21 # This file describes all the various CPUs, FPUs and architectures supported
22 # by the compiler. It is pre-processed by parsecpu.awk for a number of
25 # The general form is a sequence of begin..end blocks with the following
27 # begin <object-type> <name>
28 # attribute-statement*
29 # end <object-type> <name>
31 # where object type is one of "cpu" "arch" "fpu". Each object type has
32 # a specific set of permitted attributes, some of which are optional; further
33 # details can be found below.
35 # Some objects cross-reference other objects by name. Objects are permitted
36 # in any order and it is not necessary to place a cross-referenced object
37 # earlier in the file.
39 # The object names for cpu, arch and fpu objects are used for the public option
40 # names in the final compiler. The order within each group is preserved and
41 # forms the order for the list within the compiler.
43 # Most objects in this file support forward references. The major
44 # exception is feature groups, which may only refer to previously
45 # defined features or feature groups. This is done to avoid the risk
46 # of feature groups recursively referencing each other and causing
49 # Features - general convention: all lower case.
57 # Architecture rel 5t.
60 # Architecture rel 5te.
61 define feature armv5te
69 # Architecture rel 6k.
75 # Instructions not present in 'M' profile.
78 # Architecture uses be8 mode in big-endian.
81 # Thumb division instructions.
84 # Architecture rel 7e-m.
85 define feature armv7em
90 # ARM division instructions.
96 # ARMv8 CRC32 instructions.
99 # XScale v2 (Wireless MMX).
100 define feature iwmmxt
102 # XScale Wireless MMX2.
103 define feature iwmmxt2
105 # Architecture rel 8.1.
106 define feature armv8_1
108 # Architecture rel 8.2.
109 define feature armv8_2
111 # Architecture rel 8.3.
112 define feature armv8_3
114 # Architecture rel 8.4.
115 define feature armv8_4
117 # M-Profile security extensions.
120 # Floating point and Neon extensions.
121 # VFPv1 is not supported in GCC.
123 # Vector floating point v2.
126 # Vector floating point v3.
129 # Vector floating point v4.
138 # Advanced SIMD instructions.
141 # Conversions to/from fp16 (VFPv3 extension).
142 define feature fp16conv
144 # Double precision operations supported.
145 define feature fp_dbl
147 # 32 Double precision registers.
148 define feature fp_d32
150 # Crypto extension to ARMv8.
151 define feature crypto
153 # FP16 data processing (half-precision float).
156 # Dot Product instructions extension to ARMv8.2-a.
157 define feature dotprod
159 # Half-precision floating-point instructions in ARMv8.4-A.
160 define feature fp16fml
162 # ISA Quirks (errata?). Don't forget to add this to the fgroup
165 # No volatile memory in IT blocks.
166 define feature quirk_no_volatile_ce
168 # Previously mis-identified by GCC.
169 define feature quirk_armv6kz
171 # Cortex-M3 LDRD quirk.
172 define feature quirk_cm3_ldrd
174 # (Very) slow multiply operations. Should probably be a tuning bit.
175 define feature smallmul
177 # Feature groups. Conventionally all (or mostly) upper case.
178 # ALL_FPU lists all the feature bits associated with the floating-point
179 # unit; these will all be removed if the floating-point unit is disabled
180 # (eg -mfloat-abi=soft). ALL_FPU_INTERNAL must ONLY contain features that
181 # form part of a named -mfpu option; it is used to map the capabilities
182 # back to a named FPU for the benefit of the assembler.
184 # ALL_SIMD_INTERNAL and ALL_SIMD are similarly defined to help with the
185 # construction of ALL_FPU and ALL_FPU_INTERNAL; they describe the SIMD
186 # extensions that are either part of a named FPU or optional extensions
190 # List of all cryptographic extensions to stripout if crypto is
191 # disabled. Currently, that's trivial, but we define it anyway for
192 # consistency with the SIMD and FP disable lists.
193 define fgroup ALL_CRYPTO crypto
195 # List of all SIMD bits to strip out if SIMD is disabled. This does
196 # strip off 32 D-registers, but does not remove support for
197 # double-precision FP.
198 define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO
199 define fgroup ALL_SIMD ALL_SIMD_INTERNAL dotprod fp16fml
201 # List of all FPU bits to strip out if -mfpu is used to override the
202 # default. fp16 is deliberately missing from this list.
203 define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL
205 # Similarly, but including fp16 and other extensions that aren't part of
207 define fgroup ALL_FP fp16 ALL_FPU_INTERNAL
209 define fgroup ARMv4 armv4 notm
210 define fgroup ARMv4t ARMv4 thumb
211 define fgroup ARMv5t ARMv4t armv5t
212 define fgroup ARMv5te ARMv5t armv5te
213 define fgroup ARMv5tej ARMv5te
214 define fgroup ARMv6 ARMv5te armv6 be8
215 define fgroup ARMv6j ARMv6
216 define fgroup ARMv6k ARMv6 armv6k
217 define fgroup ARMv6z ARMv6
218 define fgroup ARMv6kz ARMv6k quirk_armv6kz
219 define fgroup ARMv6zk ARMv6k
220 define fgroup ARMv6t2 ARMv6 thumb2
221 # This is suspect. ARMv6-m doesn't really pull in any useful features
222 # from ARMv5* or ARMv6.
223 define fgroup ARMv6m armv4 thumb armv5t armv5te armv6 be8
224 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and
225 # integer SIMD instructions that are in ARMv6T2. */
226 define fgroup ARMv7 ARMv6m thumb2 armv7
228 define fgroup ARMv7a ARMv7 notm armv6k
229 define fgroup ARMv7ve ARMv7a adiv tdiv lpae
230 define fgroup ARMv7r ARMv7a tdiv
231 define fgroup ARMv7m ARMv7 tdiv
232 define fgroup ARMv7em ARMv7m armv7em
233 define fgroup ARMv8a ARMv7ve armv8
234 define fgroup ARMv8_1a ARMv8a crc32 armv8_1
235 define fgroup ARMv8_2a ARMv8_1a armv8_2
236 define fgroup ARMv8_3a ARMv8_2a armv8_3
237 define fgroup ARMv8_4a ARMv8_3a armv8_4
238 define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
239 define fgroup ARMv8m_main ARMv7m armv8 cmse
240 define fgroup ARMv8r ARMv8a
242 # Useful combinations.
243 define fgroup VFPv2 vfpv2
244 define fgroup VFPv3 VFPv2 vfpv3
245 define fgroup VFPv4 VFPv3 vfpv4 fp16conv
246 define fgroup FPv5 VFPv4 fpv5
248 define fgroup FP_DBL fp_dbl
249 define fgroup FP_D32 FP_DBL fp_d32
250 define fgroup FP_ARMv8 FPv5 FP_D32
251 define fgroup NEON FP_D32 neon
252 define fgroup CRYPTO NEON crypto
253 define fgroup DOTPROD NEON dotprod
255 # List of all quirk bits to strip out when comparing CPU features with
257 # xscale isn't really a 'quirk', but it isn't an architecture either and we
258 # need to ignore it for matching purposes.
259 define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale
261 # Architecture entries
265 # [tune flags <list>]
268 # isa <isa-flags-list>
298 option fp add VFPv2 FP_DBL
300 option nofp remove ALL_FP
308 option fp add VFPv2 FP_DBL
310 option nofp remove ALL_FP
318 option fp add VFPv2 FP_DBL
320 option nofp remove ALL_FP
328 option fp add VFPv2 FP_DBL
330 option nofp remove ALL_FP
338 option fp add VFPv2 FP_DBL
340 option nofp remove ALL_FP
348 option fp add VFPv2 FP_DBL
350 option nofp remove ALL_FP
358 option fp add VFPv2 FP_DBL
360 option nofp remove ALL_FP
368 option fp add VFPv2 FP_DBL
370 option nofp remove ALL_FP
378 option fp add VFPv2 FP_DBL
380 option nofp remove ALL_FP
390 # This is now equivalent to armv6-m, but we keep it because some
391 # versions of GAS still distinguish between the two.
404 # fp => VFPv3-d16 (only useful for the A+R profile subset).
405 option fp add VFPv3 FP_DBL
406 optalias vfpv3-d16 fp
407 option nofp remove ALL_FP
416 # fp => VFPv3-d16, simd => neon-vfpv3
417 option fp add VFPv3 FP_DBL
418 optalias vfpv3-d16 fp
419 option vfpv3 add VFPv3 FP_D32
420 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
421 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
422 option vfpv4-d16 add VFPv4 FP_DBL
423 option vfpv4 add VFPv4 FP_D32
424 option simd add VFPv3 NEON
426 optalias neon-vfpv3 simd
427 option neon-fp16 add VFPv3 NEON fp16conv
428 option neon-vfpv4 add VFPv4 NEON
429 option nosimd remove ALL_SIMD
430 option nofp remove ALL_FP
439 # fp => VFPv4-d16, simd => neon-vfpv4
440 option vfpv3-d16 add VFPv3 FP_DBL
441 option vfpv3 add VFPv3 FP_D32
442 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
443 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
444 option fp add VFPv4 FP_DBL
445 optalias vfpv4-d16 fp
446 option vfpv4 add VFPv4 FP_D32
447 option neon add VFPv3 NEON
448 optalias neon-vfpv3 neon
449 option neon-fp16 add VFPv3 NEON fp16conv
450 option simd add VFPv4 NEON
451 optalias neon-vfpv4 simd
452 option nosimd remove ALL_SIMD
453 option nofp remove ALL_FP
462 # ARMv7-r uses VFPv3-d16
463 option fp.sp add VFPv3
464 optalias vfpv3xd fp.sp
465 option fp add VFPv3 FP_DBL
466 optalias vfpv3-d16 fp
468 option nofp remove ALL_FP
469 option noidiv remove adiv
478 # In theory FP is permitted in v7-m, but in practice no implementations exist.
479 # leave it out for now.
488 # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16
490 optalias vfpv4-sp-d16 fp
492 option fp.dp add FPv5 FP_DBL
493 optalias fpv5-d16 fp.dp
494 option nofp remove ALL_FP
504 option simd add FP_ARMv8 NEON
505 option crypto add FP_ARMv8 CRYPTO
506 option nocrypto remove ALL_CRYPTO
507 option nofp remove ALL_FP
516 option simd add FP_ARMv8 NEON
517 option crypto add FP_ARMv8 CRYPTO
518 option nocrypto remove ALL_CRYPTO
519 option nofp remove ALL_FP
528 option simd add FP_ARMv8 NEON
529 option fp16 add fp16 FP_ARMv8 NEON
530 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
531 option crypto add FP_ARMv8 CRYPTO
532 option nocrypto remove ALL_CRYPTO
533 option nofp remove ALL_FP
534 option dotprod add FP_ARMv8 DOTPROD
543 option simd add FP_ARMv8 NEON
544 option fp16 add fp16 FP_ARMv8 NEON
545 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
546 option crypto add FP_ARMv8 CRYPTO
547 option nocrypto remove ALL_CRYPTO
548 option nofp remove ALL_FP
549 option dotprod add FP_ARMv8 DOTPROD
558 option simd add FP_ARMv8 DOTPROD
559 option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
560 option crypto add FP_ARMv8 CRYPTO DOTPROD
561 option nocrypto remove ALL_CRYPTO
562 option nofp remove ALL_FP
565 begin arch armv8-m.base
570 end arch armv8-m.base
572 begin arch armv8-m.main
578 option dsp add armv7em
579 # fp => FPv5-sp-d16; fp.dp => FPv5-d16
581 option fp.dp add FPv5 FP_DBL
582 option nofp remove ALL_FP
583 option nodsp remove armv7em
584 end arch armv8-m.main
593 # fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision
594 # note: no fp option for fp-armv8 (d16) + double precision at the moment
595 option fp.sp add FPv5
596 option simd add FP_ARMv8 NEON
597 option crypto add FP_ARMv8 CRYPTO
598 option nocrypto remove ALL_CRYPTO
599 option nofp remove ALL_FP
604 tune flags LDSCHED STRONG XSCALE
606 isa ARMv5te xscale iwmmxt
611 tune flags LDSCHED STRONG XSCALE
613 isa ARMv5te xscale iwmmxt iwmmxt2
619 # [cname <c-compatible-name>]
620 # [tune for <cpu-name>]
621 # [tune flags <list>]
622 # architecture <name>
623 # [isa <additional-isa-flags-list>]
624 # [option <name> add|remove <isa-list>]*
625 # [optalias <name> <optname>]*
627 # [vendor <vendor-id>
628 # [part <part-id> [minrev [maxrev]]]
631 # If omitted, cname is formed from transforming the cpuname to convert
632 # non-valid punctuation characters to '_'.
633 # If specified, tune for specifies a CPU target to use for tuning this core.
634 # isa flags are appended to those defined by the architecture.
635 # Each add option must have a distinct feature set and each remove
636 # option must similarly have a distinct feature set. Option aliases can be
637 # added with the optalias statement.
638 # Vendor, part and revision information is used for native CPU and architecture
639 # detection. All values must be in hex (lower case) with the leading '0x'
640 # omitted. For example the cortex-a9 will have vendor 41 and part c09.
641 # Revision information is used to match a subrange of part
642 # revisions: minrev <= detected <= maxrev.
643 # If a minrev or maxrev are omitted then minrev defaults to zero and maxrev
645 # Revision information is not implemented yet; no part uses it.
647 # V4 Architecture Processors
661 tune flags LDSCHED STRONG
666 begin cpu strongarm110
667 tune flags LDSCHED STRONG
672 begin cpu strongarm1100
673 tune flags LDSCHED STRONG
676 end cpu strongarm1100
678 begin cpu strongarm1110
679 tune flags LDSCHED STRONG
682 end cpu strongarm1110
697 # V4T Architecture Processors
772 # V5T Architecture Processors
773 # These used VFPv1 which isn't supported by GCC
787 # V5TE Architecture Processors
790 architecture armv5te+fp
791 option nofp remove ALL_FP
798 architecture armv5te+fp
799 option nofp remove ALL_FP
806 architecture armv5te+fp
807 option nofp remove ALL_FP
814 architecture armv5te+fp
815 option nofp remove ALL_FP
821 architecture armv5te+fp
822 option nofp remove ALL_FP
828 architecture armv5te+fp
829 option nofp remove ALL_FP
835 architecture armv5te+fp
836 option nofp remove ALL_FP
841 tune flags LDSCHED XSCALE
848 tune flags LDSCHED XSCALE
854 tune flags LDSCHED XSCALE
884 # V5TEJ Architecture Processors
888 architecture armv5tej+fp
889 option nofp remove ALL_FP
895 begin cpu arm1026ej-s
898 architecture armv5tej+fp
899 option nofp remove ALL_FP
906 # V6 Architecture Processors
914 begin cpu arm1136jf-s
917 architecture armv6j+fp
923 begin cpu arm1176jz-s
930 begin cpu arm1176jzf-s
933 architecture armv6kz+fp
939 begin cpu mpcorenovfp
947 architecture armv6k+fp
953 begin cpu arm1156t2-s
960 begin cpu arm1156t2f-s
963 architecture armv6t2+fp
970 # V6M Architecture Processors
974 architecture armv6s-m
983 architecture armv6s-m
989 begin cpu cortex-m0plus
992 architecture armv6s-m
994 end cpu cortex-m0plus
997 # V6M Architecture Processors for small-multiply implementations.
998 begin cpu cortex-m1.small-multiply
999 cname cortexm1smallmultiply
1001 tune flags LDSCHED SMALLMUL
1002 architecture armv6s-m
1004 end cpu cortex-m1.small-multiply
1006 begin cpu cortex-m0.small-multiply
1007 cname cortexm0smallmultiply
1009 tune flags LDSCHED SMALLMUL
1010 architecture armv6s-m
1012 end cpu cortex-m0.small-multiply
1014 begin cpu cortex-m0plus.small-multiply
1015 cname cortexm0plussmallmultiply
1016 tune for cortex-m0plus
1017 tune flags LDSCHED SMALLMUL
1018 architecture armv6s-m
1020 end cpu cortex-m0plus.small-multiply
1023 # V7 Architecture Processors
1024 begin cpu generic-armv7-a
1027 architecture armv7-a+fp
1028 option vfpv3-d16 add VFPv3 FP_DBL
1029 option vfpv3 add VFPv3 FP_D32
1030 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
1031 option vfpv3-fp16 add VFPv3 FP_D32 fp16conv
1032 option vfpv4-d16 add VFPv4 FP_DBL
1033 option vfpv4 add VFPv4 FP_D32
1034 option simd add VFPv3 NEON
1036 optalias neon-vfpv3 simd
1037 option neon-fp16 add VFPv3 NEON fp16conv
1038 option neon-vfpv4 add VFPv4 NEON
1039 option nosimd remove ALL_SIMD
1040 option nofp remove ALL_FP
1042 end cpu generic-armv7-a
1047 architecture armv7-a+neon-fp16
1048 option nosimd remove ALL_SIMD
1049 option nofp remove ALL_FP
1058 architecture armv7ve+simd
1059 option nosimd remove ALL_SIMD
1060 option nofp remove ALL_FP
1069 architecture armv7-a+simd
1070 option nofp remove ALL_FP
1079 architecture armv7-a+neon-fp16
1080 option nosimd remove ALL_SIMD
1081 option nofp remove ALL_FP
1087 begin cpu cortex-a12
1091 architecture armv7ve+simd
1092 option nofp remove ALL_FP
1098 begin cpu cortex-a15
1101 architecture armv7ve+simd
1102 option nofp remove ALL_FP
1108 begin cpu cortex-a17
1111 architecture armv7ve+simd
1112 option nofp remove ALL_FP
1121 architecture armv7-r
1125 begin cpu cortex-r4f
1128 architecture armv7-r+fp
1137 architecture armv7-r+idiv+fp
1138 option nofp.dp remove FP_DBL
1139 option nofp remove ALL_FP
1148 architecture armv7-r+idiv+fp
1149 option nofp remove ALL_FP
1159 architecture armv7-r+idiv+fp
1160 option nofp remove ALL_FP
1169 architecture armv7e-m+fp.dp
1170 isa quirk_no_volatile_ce
1171 option nofp.dp remove FP_DBL
1172 option nofp remove ALL_FP
1179 architecture armv7e-m+fp
1180 option nofp remove ALL_FP
1189 architecture armv7-m
1196 begin cpu marvell-pj4
1198 architecture armv7-a
1203 # V7 big.LITTLE implementations
1204 begin cpu cortex-a15.cortex-a7
1205 cname cortexa15cortexa7
1208 architecture armv7ve+simd
1209 option nofp remove ALL_FP
1211 end cpu cortex-a15.cortex-a7
1213 begin cpu cortex-a17.cortex-a7
1214 cname cortexa17cortexa7
1217 architecture armv7ve+simd
1218 option nofp remove ALL_FP
1220 end cpu cortex-a17.cortex-a7
1223 # V8 A-profile Architecture Processors
1224 begin cpu cortex-a32
1228 architecture armv8-a+crc+simd
1229 option crypto add FP_ARMv8 CRYPTO
1230 option nofp remove ALL_FP
1236 begin cpu cortex-a35
1240 architecture armv8-a+crc+simd
1241 option crypto add FP_ARMv8 CRYPTO
1242 option nofp remove ALL_FP
1248 begin cpu cortex-a53
1251 architecture armv8-a+crc+simd
1252 option crypto add FP_ARMv8 CRYPTO
1253 option nofp remove ALL_FP
1259 begin cpu cortex-a57
1262 architecture armv8-a+crc+simd
1263 option crypto add FP_ARMv8 CRYPTO
1269 begin cpu cortex-a72
1273 architecture armv8-a+crc+simd
1274 option crypto add FP_ARMv8 CRYPTO
1280 begin cpu cortex-a73
1284 architecture armv8-a+crc+simd
1285 option crypto add FP_ARMv8 CRYPTO
1294 architecture armv8-a+crc+simd
1295 option crypto add FP_ARMv8 CRYPTO
1301 architecture armv8-a+simd
1302 option crypto add FP_ARMv8 CRYPTO
1306 # V8 A-profile big.LITTLE implementations
1307 begin cpu cortex-a57.cortex-a53
1308 cname cortexa57cortexa53
1311 architecture armv8-a+crc+simd
1312 option crypto add FP_ARMv8 CRYPTO
1314 end cpu cortex-a57.cortex-a53
1316 begin cpu cortex-a72.cortex-a53
1317 cname cortexa72cortexa53
1320 architecture armv8-a+crc+simd
1321 option crypto add FP_ARMv8 CRYPTO
1323 end cpu cortex-a72.cortex-a53
1325 begin cpu cortex-a73.cortex-a35
1326 cname cortexa73cortexa35
1329 architecture armv8-a+crc+simd
1330 option crypto add FP_ARMv8 CRYPTO
1332 end cpu cortex-a73.cortex-a35
1334 begin cpu cortex-a73.cortex-a53
1335 cname cortexa73cortexa53
1338 architecture armv8-a+crc+simd
1339 option crypto add FP_ARMv8 CRYPTO
1341 end cpu cortex-a73.cortex-a53
1344 # ARMv8.2 A-profile Architecture Processors
1345 begin cpu cortex-a55
1349 architecture armv8.2-a+fp16+dotprod+simd
1350 option crypto add FP_ARMv8 CRYPTO
1351 option nofp remove ALL_FP
1357 begin cpu cortex-a75
1361 architecture armv8.2-a+fp16+dotprod+simd
1362 option crypto add FP_ARMv8 CRYPTO
1368 begin cpu cortex-a76
1372 architecture armv8.2-a+fp16+dotprod+simd
1373 option crypto add FP_ARMv8 CRYPTO
1379 # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations
1380 begin cpu cortex-a75.cortex-a55
1381 cname cortexa75cortexa55
1384 architecture armv8.2-a+fp16+dotprod+simd
1385 option crypto add FP_ARMv8 CRYPTO
1387 end cpu cortex-a75.cortex-a55
1389 begin cpu cortex-a76.cortex-a55
1390 cname cortexa76cortexa55
1393 architecture armv8.2-a+fp16+dotprod+simd
1394 option crypto add FP_ARMv8 CRYPTO
1396 end cpu cortex-a76.cortex-a55
1398 # V8 M-profile implementations.
1399 begin cpu cortex-m23
1402 architecture armv8-m.base
1406 begin cpu cortex-m33
1409 architecture armv8-m.main+dsp+fp
1410 option nofp remove ALL_FP
1411 option nodsp remove armv7em
1415 # V8 R-profile implementations.
1416 begin cpu cortex-r52
1419 architecture armv8-r+crc+simd
1420 option nofp.dp remove FP_DBL ALL_SIMD
1429 # isa <isa-flags-list>
1444 begin fpu vfpv3-fp16
1445 isa VFPv3 FP_D32 fp16conv
1452 begin fpu vfpv3-d16-fp16
1453 isa VFPv3 FP_DBL fp16conv
1454 end fpu vfpv3-d16-fp16
1460 begin fpu vfpv3xd-fp16
1462 end fpu vfpv3xd-fp16
1468 begin fpu neon-vfpv3
1473 isa VFPv3 NEON fp16conv
1480 begin fpu neon-vfpv4
1488 begin fpu fpv4-sp-d16
1492 begin fpu fpv5-sp-d16
1504 begin fpu neon-fp-armv8
1506 end fpu neon-fp-armv8
1508 begin fpu crypto-neon-fp-armv8
1510 end fpu crypto-neon-fp-armv8
1512 # Compatibility aliases.