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.
69 # Architecture rel 5e.
78 # Architecture rel 6k.
84 # Instructions not present in 'M' profile.
87 # Architecture uses be8 mode in big-endian.
90 # Thumb division instructions.
93 # Architecture rel 7e-m.
94 define feature armv7em
99 # ARM division instructions.
102 # Architecture rel 8.
105 # ARMv8 CRC32 instructions.
108 # XScale v2 (Wireless MMX).
109 define feature iwmmxt
111 # XScale Wireless MMX2.
112 define feature iwmmxt2
114 # Architecture rel 8.1.
115 define feature armv8_1
117 # Architecture rel 8.2.
118 define feature armv8_2
120 # Architecture rel 8.3.
121 define feature armv8_3
123 # Architecture rel 8.4.
124 define feature armv8_4
126 # M-Profile security extensions.
129 # Floating point and Neon extensions.
130 # VFPv1 is not supported in GCC.
132 # Vector floating point v2.
135 # Vector floating point v3.
138 # Vector floating point v4.
147 # Advanced SIMD instructions.
150 # Conversions to/from fp16 (VFPv3 extension).
151 define feature fp16conv
153 # Double precision operations supported.
154 define feature fp_dbl
156 # 32 Double precision registers.
157 define feature fp_d32
159 # Crypto extension to ARMv8.
160 define feature crypto
162 # FP16 data processing (half-precision float).
165 # Dot Product instructions extension to ARMv8.2-a.
166 define feature dotprod
168 # Half-precision floating-point instructions in ARMv8.4-A.
169 define feature fp16fml
171 # ISA Quirks (errata?). Don't forget to add this to the fgroup
174 # No volatile memory in IT blocks.
175 define feature quirk_no_volatile_ce
177 # Previously mis-identified by GCC.
178 define feature quirk_armv6kz
180 # Cortex-M3 LDRD quirk.
181 define feature quirk_cm3_ldrd
183 # (Very) slow multiply operations. Should probably be a tuning bit.
184 define feature smallmul
186 # Feature groups. Conventionally all (or mostly) upper case.
187 # ALL_FPU lists all the feature bits associated with the floating-point
188 # unit; these will all be removed if the floating-point unit is disabled
189 # (eg -mfloat-abi=soft). ALL_FPU_INTERNAL must ONLY contain features that
190 # form part of a named -mfpu option; it is used to map the capabilities
191 # back to a named FPU for the benefit of the assembler.
193 # ALL_SIMD_INTERNAL and ALL_SIMD are similarly defined to help with the
194 # construction of ALL_FPU and ALL_FPU_INTERNAL; they describe the SIMD
195 # extensions that are either part of a named FPU or optional extensions
199 # List of all cryptographic extensions to stripout if crypto is
200 # disabled. Currently, that's trivial, but we define it anyway for
201 # consistency with the SIMD and FP disable lists.
202 define fgroup ALL_CRYPTO crypto
204 # List of all SIMD bits to strip out if SIMD is disabled. This does
205 # strip off 32 D-registers, but does not remove support for
206 # double-precision FP.
207 define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO
208 define fgroup ALL_SIMD ALL_SIMD_INTERNAL dotprod fp16fml
210 # List of all FPU bits to strip out if -mfpu is used to override the
211 # default. fp16 is deliberately missing from this list.
212 define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL
214 # Similarly, but including fp16 and other extensions that aren't part of
216 define fgroup ALL_FP fp16 ALL_FPU_INTERNAL
218 define fgroup ARMv2 notm
219 define fgroup ARMv3 ARMv2 mode32
220 define fgroup ARMv3m ARMv3 armv3m
221 define fgroup ARMv4 ARMv3m armv4
222 define fgroup ARMv4t ARMv4 thumb
223 define fgroup ARMv5 ARMv4 armv5
224 define fgroup ARMv5t ARMv5 thumb
225 define fgroup ARMv5e ARMv5 armv5e
226 define fgroup ARMv5te ARMv5e thumb
227 define fgroup ARMv5tej ARMv5te
228 define fgroup ARMv6 ARMv5te armv6 be8
229 define fgroup ARMv6j ARMv6
230 define fgroup ARMv6k ARMv6 armv6k
231 define fgroup ARMv6z ARMv6
232 define fgroup ARMv6kz ARMv6k quirk_armv6kz
233 define fgroup ARMv6zk ARMv6k
234 define fgroup ARMv6t2 ARMv6 thumb2
235 # This is suspect. ARMv6-m doesn't really pull in any useful features
236 # from ARMv5* or ARMv6.
237 define fgroup ARMv6m mode32 armv3m armv4 thumb armv5 armv5e armv6
238 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and
239 # integer SIMD instructions that are in ARMv6T2. */
240 define fgroup ARMv7 ARMv6m thumb2 armv7
242 define fgroup ARMv7a ARMv7 notm armv6k
243 define fgroup ARMv7ve ARMv7a adiv tdiv lpae
244 define fgroup ARMv7r ARMv7a tdiv
245 define fgroup ARMv7m ARMv7 tdiv
246 define fgroup ARMv7em ARMv7m armv7em
247 define fgroup ARMv8a ARMv7ve armv8
248 define fgroup ARMv8_1a ARMv8a crc32 armv8_1
249 define fgroup ARMv8_2a ARMv8_1a armv8_2
250 define fgroup ARMv8_3a ARMv8_2a armv8_3
251 define fgroup ARMv8_4a ARMv8_3a armv8_4
252 define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
253 define fgroup ARMv8m_main ARMv7m armv8 cmse
254 define fgroup ARMv8r ARMv8a
256 # Useful combinations.
257 define fgroup VFPv2 vfpv2
258 define fgroup VFPv3 VFPv2 vfpv3
259 define fgroup VFPv4 VFPv3 vfpv4 fp16conv
260 define fgroup FPv5 VFPv4 fpv5
262 define fgroup FP_DBL fp_dbl
263 define fgroup FP_D32 FP_DBL fp_d32
264 define fgroup FP_ARMv8 FPv5 FP_D32
265 define fgroup NEON FP_D32 neon
266 define fgroup CRYPTO NEON crypto
267 define fgroup DOTPROD NEON dotprod
269 # List of all quirk bits to strip out when comparing CPU features with
271 define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd
273 # Architecture entries
277 # [tune flags <list>]
280 # isa <isa-flags-list>
286 tune flags CO_PROC NO_MODE32
293 tune flags CO_PROC NO_MODE32
319 # Strictly, mode26 is a permitted option for v4t, but there are no
320 # implementations that support it, so we will leave it out for now.
347 option fp add VFPv2 FP_DBL
349 option nofp remove ALL_FP
357 option fp add VFPv2 FP_DBL
359 option nofp remove ALL_FP
367 option fp add VFPv2 FP_DBL
369 option nofp remove ALL_FP
377 option fp add VFPv2 FP_DBL
379 option nofp remove ALL_FP
387 option fp add VFPv2 FP_DBL
389 option nofp remove ALL_FP
397 option fp add VFPv2 FP_DBL
399 option nofp remove ALL_FP
407 option fp add VFPv2 FP_DBL
409 option nofp remove ALL_FP
417 option fp add VFPv2 FP_DBL
419 option nofp remove ALL_FP
427 option fp add VFPv2 FP_DBL
429 option nofp remove ALL_FP
437 option fp add VFPv2 FP_DBL
439 option nofp remove ALL_FP
461 # fp => VFPv3-d16 (only useful for the A+R profile subset).
462 option fp add VFPv3 FP_DBL
463 optalias vfpv3-d16 fp
464 option nofp remove ALL_FP
473 # fp => VFPv3-d16, simd => neon-vfpv3
474 option fp add VFPv3 FP_DBL
475 optalias vfpv3-d16 fp
476 option vfpv3 add VFPv3 FP_D32
477 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
478 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
479 option vfpv4-d16 add VFPv4 FP_DBL
480 option vfpv4 add VFPv4 FP_D32
481 option simd add VFPv3 NEON
483 optalias neon-vfpv3 simd
484 option neon-fp16 add VFPv3 NEON fp16conv
485 option neon-vfpv4 add VFPv4 NEON
486 option nosimd remove ALL_SIMD
487 option nofp remove ALL_FP
496 # fp => VFPv4-d16, simd => neon-vfpv4
497 option vfpv3-d16 add VFPv3 FP_DBL
498 option vfpv3 add VFPv3 FP_D32
499 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
500 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
501 option fp add VFPv4 FP_DBL
502 optalias vfpv4-d16 fp
503 option vfpv4 add VFPv4 FP_D32
504 option neon add VFPv3 NEON
505 optalias neon-vfpv3 neon
506 option neon-fp16 add VFPv3 NEON fp16conv
507 option simd add VFPv4 NEON
508 optalias neon-vfpv4 simd
509 option nosimd remove ALL_SIMD
510 option nofp remove ALL_FP
519 # ARMv7-r uses VFPv3-d16
520 option fp.sp add VFPv3
521 optalias vfpv3xd fp.sp
522 option fp add VFPv3 FP_DBL
523 optalias vfpv3-d16 fp
525 option nofp remove ALL_FP
526 option noidiv remove adiv
535 # In theory FP is permitted in v7-m, but in practice no implementations exist.
536 # leave it out for now.
545 # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16
547 optalias vfpv4-sp-d16 fp
549 option fp.dp add FPv5 FP_DBL
550 optalias fpv5-d16 fp.dp
551 option nofp remove ALL_FP
561 option simd add FP_ARMv8 NEON
562 option crypto add FP_ARMv8 CRYPTO
563 option nocrypto remove ALL_CRYPTO
564 option nofp remove ALL_FP
573 option simd add FP_ARMv8 NEON
574 option crypto add FP_ARMv8 CRYPTO
575 option nocrypto remove ALL_CRYPTO
576 option nofp remove ALL_FP
585 option simd add FP_ARMv8 NEON
586 option fp16 add fp16 FP_ARMv8 NEON
587 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
588 option crypto add FP_ARMv8 CRYPTO
589 option nocrypto remove ALL_CRYPTO
590 option nofp remove ALL_FP
591 option dotprod add FP_ARMv8 DOTPROD
600 option simd add FP_ARMv8 NEON
601 option fp16 add fp16 FP_ARMv8 NEON
602 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
603 option crypto add FP_ARMv8 CRYPTO
604 option nocrypto remove ALL_CRYPTO
605 option nofp remove ALL_FP
606 option dotprod add FP_ARMv8 DOTPROD
615 option simd add FP_ARMv8 DOTPROD
616 option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
617 option crypto add FP_ARMv8 CRYPTO DOTPROD
618 option nocrypto remove ALL_CRYPTO
619 option nofp remove ALL_FP
622 begin arch armv8-m.base
627 end arch armv8-m.base
629 begin arch armv8-m.main
635 option dsp add armv7em
636 # fp => FPv5-sp-d16; fp.dp => FPv5-d16
638 option fp.dp add FPv5 FP_DBL
639 option nofp remove ALL_FP
640 option nodsp remove armv7em
641 end arch armv8-m.main
650 # fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision
651 # note: no fp option for fp-armv8 (d16) + double precision at the moment
652 option fp.sp add FPv5
653 option simd add FP_ARMv8 NEON
654 option crypto add FP_ARMv8 CRYPTO
655 option nocrypto remove ALL_CRYPTO
656 option nofp remove ALL_FP
661 tune flags LDSCHED STRONG XSCALE
663 isa ARMv5te xscale iwmmxt
668 tune flags LDSCHED STRONG XSCALE
670 isa ARMv5te xscale iwmmxt iwmmxt2
676 # [cname <c-compatible-name>]
677 # [tune for <cpu-name>]
678 # [tune flags <list>]
679 # architecture <name>
681 # [isa <additional-isa-flags-list>]
682 # [option <name> add|remove <isa-list>]*
683 # [optalias <name> <optname>]*
687 # If omitted, cname is formed from transforming the cpuname to convert
688 # non-valid punctuation characters to '_'.
689 # If specified, tune for specifies a CPU target to use for tuning this core.
690 # isa flags are appended to those defined by the architecture.
691 # Each add option must have a distinct feature set and each remove
692 # option must similarly have a distinct feature set. Option aliases can be
693 # added with the optalias statement
695 # V2/V2A Architecture Processors
697 tune flags CO_PROC NO_MODE32
703 tune flags CO_PROC NO_MODE32
709 tune flags CO_PROC NO_MODE32
715 # V3 Architecture Processors
729 tune flags CO_PROC WBUF
741 tune flags CO_PROC WBUF
771 tune flags CO_PROC WBUF
777 tune flags CO_PROC WBUF
812 # Doesn't have an external co-proc, but does have embedded FPA
813 # (the FPA part is no-longer supported).
815 tune flags CO_PROC WBUF
821 # V3M Architecture Processors
822 # arm7m doesn't exist on its own, but only with "D", (and "I"), but
823 # those don't alter the code, so arm7m is sometimes used.
843 # V4 Architecture Processors
857 tune flags LDSCHED STRONG
862 begin cpu strongarm110
863 tune flags LDSCHED STRONG
868 begin cpu strongarm1100
869 tune flags LDSCHED STRONG
872 end cpu strongarm1100
874 begin cpu strongarm1110
875 tune flags LDSCHED STRONG
878 end cpu strongarm1110
893 # V4T Architecture Processors
968 # V5T Architecture Processors
969 # These used VFPv1 which isn't supported by GCC
983 # V5TE Architecture Processors
988 option nofp remove ALL_FP
997 option nofp remove ALL_FP
1004 architecture armv5te
1006 option nofp remove ALL_FP
1013 architecture armv5te
1015 option nofp remove ALL_FP
1021 architecture armv5te
1023 option nofp remove ALL_FP
1029 architecture armv5te
1031 option nofp remove ALL_FP
1037 architecture armv5te
1039 option nofp remove ALL_FP
1044 tune flags LDSCHED XSCALE
1045 architecture armv5te
1051 tune flags LDSCHED XSCALE
1057 tune flags LDSCHED XSCALE
1058 architecture iwmmxt2
1064 architecture armv5te
1070 architecture armv5te
1076 architecture armv5te
1082 architecture armv5te
1087 # V5TEJ Architecture Processors
1088 begin cpu arm926ej-s
1091 architecture armv5tej
1093 option nofp remove ALL_FP
1097 begin cpu arm1026ej-s
1100 architecture armv5tej
1102 option nofp remove ALL_FP
1107 # V6 Architecture Processors
1108 begin cpu arm1136j-s
1115 begin cpu arm1136jf-s
1123 begin cpu arm1176jz-s
1126 architecture armv6kz
1130 begin cpu arm1176jzf-s
1133 architecture armv6kz
1136 end cpu arm1176jzf-s
1138 begin cpu mpcorenovfp
1151 begin cpu arm1156t2-s
1154 architecture armv6t2
1158 begin cpu arm1156t2f-s
1161 architecture armv6t2
1164 end cpu arm1156t2f-s
1167 # V6M Architecture Processors
1171 architecture armv6-m
1178 architecture armv6-m
1182 begin cpu cortex-m0plus
1185 architecture armv6-m
1187 end cpu cortex-m0plus
1190 # V6M Architecture Processors for small-multiply implementations.
1191 begin cpu cortex-m1.small-multiply
1192 cname cortexm1smallmultiply
1194 tune flags LDSCHED SMALLMUL
1195 architecture armv6-m
1197 end cpu cortex-m1.small-multiply
1199 begin cpu cortex-m0.small-multiply
1200 cname cortexm0smallmultiply
1202 tune flags LDSCHED SMALLMUL
1203 architecture armv6-m
1205 end cpu cortex-m0.small-multiply
1207 begin cpu cortex-m0plus.small-multiply
1208 cname cortexm0plussmallmultiply
1209 tune for cortex-m0plus
1210 tune flags LDSCHED SMALLMUL
1211 architecture armv6-m
1213 end cpu cortex-m0plus.small-multiply
1216 # V7 Architecture Processors
1217 begin cpu generic-armv7-a
1220 architecture armv7-a
1222 option vfpv3-d16 add VFPv3 FP_DBL
1223 option vfpv3 add VFPv3 FP_D32
1224 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
1225 option vfpv3-fp16 add VFPv3 FP_D32 fp16conv
1226 option vfpv4-d16 add VFPv4 FP_DBL
1227 option vfpv4 add VFPv4 FP_D32
1228 option simd add VFPv3 NEON
1230 optalias neon-vfpv3 simd
1231 option neon-fp16 add VFPv3 NEON fp16conv
1232 option neon-vfpv4 add VFPv4 NEON
1233 option nosimd remove ALL_SIMD
1234 option nofp remove ALL_FP
1236 end cpu generic-armv7-a
1241 architecture armv7-a
1243 option nosimd remove ALL_SIMD
1244 option nofp remove ALL_FP
1251 architecture armv7ve
1253 option nosimd remove ALL_SIMD
1254 option nofp remove ALL_FP
1261 architecture armv7-a
1263 option nofp remove ALL_FP
1270 architecture armv7-a
1272 option nosimd remove ALL_SIMD
1273 option nofp remove ALL_FP
1277 begin cpu cortex-a12
1281 architecture armv7ve
1283 option nofp remove ALL_FP
1287 begin cpu cortex-a15
1290 architecture armv7ve
1292 option nofp remove ALL_FP
1296 begin cpu cortex-a17
1299 architecture armv7ve
1301 option nofp remove ALL_FP
1308 architecture armv7-r
1312 begin cpu cortex-r4f
1315 architecture armv7-r
1323 architecture armv7-r+idiv
1325 option nofp.dp remove FP_DBL
1326 option nofp remove ALL_FP
1333 architecture armv7-r+idiv
1335 option nofp remove ALL_FP
1343 architecture armv7-r+idiv
1345 option nofp remove ALL_FP
1352 architecture armv7e-m
1353 isa quirk_no_volatile_ce
1355 option nofp.dp remove FP_DBL
1356 option nofp remove ALL_FP
1363 architecture armv7e-m
1365 option nofp remove ALL_FP
1372 architecture armv7-m
1377 begin cpu marvell-pj4
1379 architecture armv7-a
1384 # V7 big.LITTLE implementations
1385 begin cpu cortex-a15.cortex-a7
1386 cname cortexa15cortexa7
1389 architecture armv7ve
1391 option nofp remove ALL_FP
1393 end cpu cortex-a15.cortex-a7
1395 begin cpu cortex-a17.cortex-a7
1396 cname cortexa17cortexa7
1399 architecture armv7ve
1401 option nofp remove ALL_FP
1403 end cpu cortex-a17.cortex-a7
1406 # V8 A-profile Architecture Processors
1407 begin cpu cortex-a32
1411 architecture armv8-a+crc
1413 option crypto add FP_ARMv8 CRYPTO
1414 option nofp remove ALL_FP
1418 begin cpu cortex-a35
1422 architecture armv8-a+crc
1424 option crypto add FP_ARMv8 CRYPTO
1425 option nofp remove ALL_FP
1429 begin cpu cortex-a53
1432 architecture armv8-a+crc
1434 option crypto add FP_ARMv8 CRYPTO
1435 option nofp remove ALL_FP
1439 begin cpu cortex-a57
1442 architecture armv8-a+crc
1444 option crypto add FP_ARMv8 CRYPTO
1448 begin cpu cortex-a72
1452 architecture armv8-a+crc
1454 option crypto add FP_ARMv8 CRYPTO
1458 begin cpu cortex-a73
1462 architecture armv8-a+crc
1464 option crypto add FP_ARMv8 CRYPTO
1471 architecture armv8-a+crc
1473 option crypto add FP_ARMv8 CRYPTO
1479 architecture armv8-a
1481 option crypto add FP_ARMv8 CRYPTO
1485 # V8 A-profile big.LITTLE implementations
1486 begin cpu cortex-a57.cortex-a53
1487 cname cortexa57cortexa53
1490 architecture armv8-a+crc
1492 option crypto add FP_ARMv8 CRYPTO
1494 end cpu cortex-a57.cortex-a53
1496 begin cpu cortex-a72.cortex-a53
1497 cname cortexa72cortexa53
1500 architecture armv8-a+crc
1502 option crypto add FP_ARMv8 CRYPTO
1504 end cpu cortex-a72.cortex-a53
1506 begin cpu cortex-a73.cortex-a35
1507 cname cortexa73cortexa35
1510 architecture armv8-a+crc
1512 option crypto add FP_ARMv8 CRYPTO
1514 end cpu cortex-a73.cortex-a35
1516 begin cpu cortex-a73.cortex-a53
1517 cname cortexa73cortexa53
1520 architecture armv8-a+crc
1522 option crypto add FP_ARMv8 CRYPTO
1524 end cpu cortex-a73.cortex-a53
1527 # ARMv8.2 A-profile Architecture Processors
1528 begin cpu cortex-a55
1532 architecture armv8.2-a+fp16+dotprod
1534 option crypto add FP_ARMv8 CRYPTO
1535 option nofp remove ALL_FP
1539 begin cpu cortex-a75
1543 architecture armv8.2-a+fp16+dotprod
1545 option crypto add FP_ARMv8 CRYPTO
1550 # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations
1551 begin cpu cortex-a75.cortex-a55
1552 cname cortexa75cortexa55
1555 architecture armv8.2-a+fp16+dotprod
1557 option crypto add FP_ARMv8 CRYPTO
1559 end cpu cortex-a75.cortex-a55
1561 # V8 M-profile implementations.
1562 begin cpu cortex-m23
1565 architecture armv8-m.base
1569 begin cpu cortex-m33
1572 architecture armv8-m.main+dsp
1574 option nofp remove ALL_FP
1575 option nodsp remove armv7em
1579 # V8 R-profile implementations.
1580 begin cpu cortex-r52
1583 architecture armv8-r+crc+simd
1585 option nofp.dp remove FP_DBL ALL_SIMD
1592 # isa <isa-flags-list>
1607 begin fpu vfpv3-fp16
1608 isa VFPv3 FP_D32 fp16conv
1615 begin fpu vfpv3-d16-fp16
1616 isa VFPv3 FP_DBL fp16conv
1617 end fpu vfpv3-d16-fp16
1623 begin fpu vfpv3xd-fp16
1625 end fpu vfpv3xd-fp16
1631 begin fpu neon-vfpv3
1636 isa VFPv3 NEON fp16conv
1643 begin fpu neon-vfpv4
1651 begin fpu fpv4-sp-d16
1655 begin fpu fpv5-sp-d16
1667 begin fpu neon-fp-armv8
1669 end fpu neon-fp-armv8
1671 begin fpu crypto-neon-fp-armv8
1673 end fpu crypto-neon-fp-armv8
1675 # Compatibility aliases.