1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- This file documents the GNU Assembler "as".
4
5Copyright (C) 1991-2021 Free Software Foundation, Inc.
6
7Permission is granted to copy, distribute and/or modify this document
8under the terms of the GNU Free Documentation License, Version 1.3
9or any later version published by the Free Software Foundation;
10with no Invariant Sections, with no Front-Cover Texts, and with no
11Back-Cover Texts.  A copy of the license is included in the
12section entitled "GNU Free Documentation License".
13 -->
14<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
15<head>
16<title>Using as: AArch64 Extensions</title>
17
18<meta name="description" content="Using as: AArch64 Extensions">
19<meta name="keywords" content="Using as: AArch64 Extensions">
20<meta name="resource-type" content="document">
21<meta name="distribution" content="global">
22<meta name="Generator" content="makeinfo">
23<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
24<link href="index.html#Top" rel="start" title="Top">
25<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
26<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
27<link href="AArch64_002dDependent.html#AArch64_002dDependent" rel="up" title="AArch64-Dependent">
28<link href="AArch64-Syntax.html#AArch64-Syntax" rel="next" title="AArch64 Syntax">
29<link href="AArch64-Options.html#AArch64-Options" rel="previous" title="AArch64 Options">
30<style type="text/css">
31<!--
32a.summary-letter {text-decoration: none}
33blockquote.smallquotation {font-size: smaller}
34div.display {margin-left: 3.2em}
35div.example {margin-left: 3.2em}
36div.indentedblock {margin-left: 3.2em}
37div.lisp {margin-left: 3.2em}
38div.smalldisplay {margin-left: 3.2em}
39div.smallexample {margin-left: 3.2em}
40div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
41div.smalllisp {margin-left: 3.2em}
42kbd {font-style:oblique}
43pre.display {font-family: inherit}
44pre.format {font-family: inherit}
45pre.menu-comment {font-family: serif}
46pre.menu-preformatted {font-family: serif}
47pre.smalldisplay {font-family: inherit; font-size: smaller}
48pre.smallexample {font-size: smaller}
49pre.smallformat {font-family: inherit; font-size: smaller}
50pre.smalllisp {font-size: smaller}
51span.nocodebreak {white-space:nowrap}
52span.nolinebreak {white-space:nowrap}
53span.roman {font-family:serif; font-weight:normal}
54span.sansserif {font-family:sans-serif; font-weight:normal}
55ul.no-bullet {list-style: none}
56-->
57</style>
58
59
60</head>
61
62<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
63<a name="AArch64-Extensions"></a>
64<div class="header">
65<p>
66Next: <a href="AArch64-Syntax.html#AArch64-Syntax" accesskey="n" rel="next">AArch64 Syntax</a>, Previous: <a href="AArch64-Options.html#AArch64-Options" accesskey="p" rel="previous">AArch64 Options</a>, Up: <a href="AArch64_002dDependent.html#AArch64_002dDependent" accesskey="u" rel="up">AArch64-Dependent</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
67</div>
68<hr>
69<a name="Architecture-Extensions"></a>
70<h4 class="subsection">9.1.2 Architecture Extensions</h4>
71
72<p>The table below lists the permitted architecture extensions that are
73supported by the assembler and the conditions under which they are
74automatically enabled.
75</p>
76<p>Multiple extensions may be specified, separated by a <code>+</code>.
77Extension mnemonics may also be removed from those the assembler
78accepts.  This is done by prepending <code>no</code> to the option that adds
79the extension.  Extensions that are removed must be listed after all
80extensions that have been added.
81</p>
82<p>Enabling an extension that requires other extensions will
83automatically cause those extensions to be enabled.  Similarly,
84disabling an extension that is required by other extensions will
85automatically cause those extensions to be disabled.
86</p>
87<table>
88<thead><tr><th width="12%">Extension</th><th width="17%">Minimum Architecture</th><th width="17%">Enabled by default</th><th width="54%">Description</th></tr></thead>
89<tr><td width="12%"><code>i8mm</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.6-A or later</td><td width="54%">Enable Int8 Matrix Multiply extension.</td></tr>
90<tr><td width="12%"><code>f32mm</code></td><td width="17%">ARMv8.2-A</td><td width="17%">No</td><td width="54%">Enable F32 Matrix Multiply extension.</td></tr>
91<tr><td width="12%"><code>f64mm</code></td><td width="17%">ARMv8.2-A</td><td width="17%">No</td><td width="54%">Enable F64 Matrix Multiply extension.</td></tr>
92<tr><td width="12%"><code>bf16</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.6-A or later</td><td width="54%">Enable BFloat16 extension.</td></tr>
93<tr><td width="12%"><code>compnum</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.3-A or later</td><td width="54%">Enable the complex number SIMD extensions.  This implies
94 <code>fp16</code> and <code>simd</code>.</td></tr>
95<tr><td width="12%"><code>crc</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.1-A or later</td><td width="54%">Enable CRC instructions.</td></tr>
96<tr><td width="12%"><code>crypto</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable cryptographic extensions.  This implies <code>fp</code>, <code>simd</code>, <code>aes</code> and <code>sha2</code>.</td></tr>
97<tr><td width="12%"><code>aes</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable the AES cryptographic extensions. This implies <code>fp</code> and <code>simd</code>.</td></tr>
98<tr><td width="12%"><code>sha2</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable the SHA2 cryptographic extensions. This implies <code>fp</code> and <code>simd</code>.</td></tr>
99<tr><td width="12%"><code>sha3</code></td><td width="17%">ARMv8.2-A</td><td width="17%">No</td><td width="54%">Enable the ARMv8.2-A SHA2 and SHA3 cryptographic extensions. This implies <code>fp</code>, <code>simd</code> and <code>sha2</code>.</td></tr>
100<tr><td width="12%"><code>sm4</code></td><td width="17%">ARMv8.2-A</td><td width="17%">No</td><td width="54%">Enable the ARMv8.2-A SM3 and SM4 cryptographic extensions. This implies <code>fp</code> and <code>simd</code>.</td></tr>
101<tr><td width="12%"><code>fp</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8-A or later</td><td width="54%">Enable floating-point extensions.</td></tr>
102<tr><td width="12%"><code>fp16</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.2-A or later</td><td width="54%">Enable ARMv8.2 16-bit floating-point support.  This implies
103 <code>fp</code>.</td></tr>
104<tr><td width="12%"><code>lor</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.1-A or later</td><td width="54%">Enable Limited Ordering Regions extensions.</td></tr>
105<tr><td width="12%"><code>lse</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.1-A or later</td><td width="54%">Enable Large System extensions.</td></tr>
106<tr><td width="12%"><code>pan</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.1-A or later</td><td width="54%">Enable Privileged Access Never support.</td></tr>
107<tr><td width="12%"><code>profile</code></td><td width="17%">ARMv8.2-A</td><td width="17%">No</td><td width="54%">Enable statistical profiling extensions.</td></tr>
108<tr><td width="12%"><code>ras</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.2-A or later</td><td width="54%">Enable the Reliability, Availability and Serviceability
109 extension.</td></tr>
110<tr><td width="12%"><code>rcpc</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.3-A or later</td><td width="54%">Enable the weak release consistency extension.</td></tr>
111<tr><td width="12%"><code>rdma</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.1-A or later</td><td width="54%">Enable ARMv8.1 Advanced SIMD extensions.  This implies <code>simd</code>.</td></tr>
112<tr><td width="12%"><code>simd</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8-A or later</td><td width="54%">Enable Advanced SIMD extensions.  This implies <code>fp</code>.</td></tr>
113<tr><td width="12%"><code>sve</code></td><td width="17%">ARMv8.2-A</td><td width="17%">No</td><td width="54%">Enable the Scalable Vector Extensions.  This implies <code>fp16</code>,
114 <code>simd</code> and <code>compnum</code>.</td></tr>
115<tr><td width="12%"><code>dotprod</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.4-A or later</td><td width="54%">Enable the Dot Product extension.  This implies <code>simd</code>.</td></tr>
116<tr><td width="12%"><code>fp16fml</code></td><td width="17%">ARMv8.2-A</td><td width="17%">ARMv8.4-A or later</td><td width="54%">Enable ARMv8.2 16-bit floating-point multiplication variant support.
117 This implies <code>fp16</code>.</td></tr>
118<tr><td width="12%"><code>sb</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.5-A or later</td><td width="54%">Enable the speculation barrier instruction sb.</td></tr>
119<tr><td width="12%"><code>predres</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.5-A or later</td><td width="54%">Enable the Execution and Data and Prediction instructions.</td></tr>
120<tr><td width="12%"><code>rng</code></td><td width="17%">ARMv8.5-A</td><td width="17%">No</td><td width="54%">Enable ARMv8.5-A random number instructions.</td></tr>
121<tr><td width="12%"><code>ssbs</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.5-A or later</td><td width="54%">Enable Speculative Store Bypassing Safe state read and write.</td></tr>
122<tr><td width="12%"><code>memtag</code></td><td width="17%">ARMv8.5-A</td><td width="17%">No</td><td width="54%">Enable ARMv8.5-A Memory Tagging Extensions.</td></tr>
123<tr><td width="12%"><code>tme</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable Transactional Memory Extensions.</td></tr>
124<tr><td width="12%"><code>sve2</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable the SVE2 Extension.</td></tr>
125<tr><td width="12%"><code>sve2-bitperm</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable SVE2 BITPERM Extension.</td></tr>
126<tr><td width="12%"><code>sve2-sm4</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable SVE2 SM4 Extension.</td></tr>
127<tr><td width="12%"><code>sve2-aes</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable SVE2 AES Extension.  This also enables the .Q-&gt;.B form of the
128 <code>pmullt</code> and <code>pmullb</code> instructions.</td></tr>
129<tr><td width="12%"><code>sve2-sha3</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable SVE2 SHA3 Extension.</td></tr>
130<tr><td width="12%"><code>flagm</code></td><td width="17%">ARMv8-A</td><td width="17%">ARMv8.4-A or later</td><td width="54%">Enable Flag Manipulation instructions.</td></tr>
131<tr><td width="12%"><code>ls64</code></td><td width="17%">ARMv8.6-A</td><td width="17%">ARMv8.7-A or later</td><td width="54%">Enable 64 Byte Loads/Stores.</td></tr>
132<tr><td width="12%"><code>pauth</code></td><td width="17%">ARMv8-A</td><td width="17%">No</td><td width="54%">Enable Pointer Authentication.</td></tr>
133</table>
134
135<hr>
136<div class="header">
137<p>
138Next: <a href="AArch64-Syntax.html#AArch64-Syntax" accesskey="n" rel="next">AArch64 Syntax</a>, Previous: <a href="AArch64-Options.html#AArch64-Options" accesskey="p" rel="previous">AArch64 Options</a>, Up: <a href="AArch64_002dDependent.html#AArch64_002dDependent" accesskey="u" rel="up">AArch64-Dependent</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
139</div>
140
141
142
143</body>
144</html>
145