11---
22title: Arm C Language Extensions
3- version: 2024Q2
4- date-of-issue: 21 June 2024
3+ version: 2024Q3
4+ date-of-issue: 30 September 2024
55# LaTeX specific variables
66copyright-text: "Copyright: see section \\texorpdfstring{\\nameref{copyright}}{Copyright}."
77draftversion: true
@@ -178,6 +178,7 @@ unless a different support level is specified in the text.
178178| 2023Q2 | 04 August 2023 | Arm | See [Changes between ACLE Q4 2022 and ACLE Q2 2023](#changes-between-acle-q4-2022-and-acle-q2-2023) |
179179| 2024Q1 | 11 April 2024 | Arm | See [Changes between ACLE Q2 2023 and ACLE Q1 2024](#changes-between-acle-q2-2023-and-acle-q1-2024) |
180180| 2024Q2 | 21 June 2024 | Arm | See [Changes between ACLE Q1 2024 and ACLE Q2 2024](#changes-between-acle-q1-2024-and-acle-q2-2024) |
181+ | 2024Q3 | 30 September 2024 | Arm | See [Changes between ACLE Q2 2024 and ACLE Q3 2024](#changes-between-acle-q2-2024-and-acle-q3-2024) |
181182
182183#### Changes between ACLE Q2 2017 and ACLE Q2 2018
183184
@@ -394,23 +395,21 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
394395* Added [**Alpha**](#current-status-and-anticipated-changes)
395396 support for SVE2.1 (FEAT_SVE2p1).
396397
397- #### Changes for next release
398+ #### Changes between ACLE Q2 2024 and ACLE Q3 2024
398399
399400* Fixed incorrect system register dependencies in Function Multi Versioning.
400401* Added a requirement for function version declaration in Function Multi Versioning.
401- * Fixed some rendering issues in the online Markdown documentation and fixed
402- a misplaced anchor.
403402* Added `__FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL` to indicate the support
404403 level of the [Function Multi Versioning](#function-multi-versioning).
405- * Unified Function Multi Versioning features sha1, sha2.
406- * Unified Function Multi Versioning features ls64, ls64_v, ls64_accdata.
404+ * Unified Function Multi Versioning features sha1 and sha2.
405+ * Unified Function Multi Versioning features ls64, ls64_v, and ls64_accdata.
407406* Added [**Alpha**](#current-status-and-anticipated-changes)
408407 support for SME2.1 (FEAT_SME2p1).
409408* Removed requirement to add preprocessor guards for header files.
410409* Added specifications for floating-point absolute minimum
411410 and maximum intrinsics (FEAT_FAMINMAX).
412411* Added specifications for table lookup intrinsics (FEAT_LUT, FEAT_SME_LUTv2).
413- * Release support level of the [Custom Datapath Extension](#custom-datapath-extension).
412+ * Added Release support level for the [Custom Datapath Extension](#custom-datapath-extension).
414413* Added [**Alpha**](#current-status-and-anticipated-changes)
415414 support for modal 8-bit floating point intrinsics.
416415
@@ -1035,8 +1034,9 @@ Including `<arm_sve.h>` also includes the following header files:
10351034
10361035`<arm_neon_sve_bridge.h>` defines intrinsics for moving data between
10371036Neon and SVE vector types; see [NEON-SVE Bridge](#neon-sve-bridge)
1038- for details. The `__ARM_NEON_SVE_BRIDGE` macro should be tested
1039- before including the header:
1037+ for details. Before including the header, you should test the
1038+ `__ARM_NEON_SVE_BRIDGE` macro.
1039+ :
10401040
10411041``` c
10421042 #ifdef __ARM_NEON_SVE_BRIDGE
@@ -1099,12 +1099,12 @@ context in which the preprocessor macros are evaluated. For example:
10991099 void foo() {
11001100 #ifdef __ARM_FEATURE_SVE
11011101 // The user should make no assumptions that the target attribute
1102- // has enabled the __ARM_FEATURE_SVE macro.
1102+ // enables the __ARM_FEATURE_SVE macro.
11031103 #endif
11041104}
11051105```
11061106
1107- The compiler may add additional restrictions to the intrinsics beyond what is
1107+ The compiler might add additional restrictions to the intrinsics beyond what is
11081108captured by the ACLE macros depending on the context in which the intrinsics
11091109are used. For example:
11101110
@@ -1118,7 +1118,7 @@ are used. For example:
11181118```
11191119
11201120If `__ARM_FEATURE_SME` evaluates to `true` the SME intrinsic `svst1_hor_za8`
1121- is available, but `foo` may still fail to compile because the call does not
1121+ is available, but `foo` might still fail to compile because the call does not
11221122occur in a [streaming statement](#streaming-statement).
11231123
11241124## Attributes
@@ -5897,11 +5897,11 @@ float16 types are only available when the `__fp16` type is defined, that is,
58975897when supported by the hardware.
58985898
58995899bfloat types are only available when the `__bf16` type is defined, that is,
5900- when supported by the hardware. The bfloat types are all opaque types. That is
5901- to say they can only be used by intrinsics.
5900+ when supported by the hardware. The bfloat types are all opaque types. That is,
5901+ they can only be used by intrinsics.
59025902
5903- The FP8 types are all opaque types. That is to say they can only be used
5904- by intrinsics.
5903+ The FP8 types are all opaque types. That is, they can only be used by
5904+ intrinsics.
59055905
59065906### Advanced SIMD Scalar data types
59075907
@@ -6713,7 +6713,7 @@ single vectors:
67136713
67146714| **Signed integer** | **Unsigned integer** | **Floating-point** | |
67156715| -------------------- | -------------------- | -------------------- | -------------------- |
6716- | `svint8_t` | `svuint8_t` | | `svmfloat8_t |
6716+ | `svint8_t` | `svuint8_t` | | `svmfloat8_t` |
67176717| `svint16_t` | `svuint16_t` | `svfloat16_t` | `svbfloat16_t` |
67186718| `svint32_t` | `svuint32_t` | `svfloat32_t` | |
67196719| `svint64_t` | `svuint64_t` | `svfloat64_t` | |
@@ -12320,8 +12320,8 @@ element types.
1232012320### SME2.1 instruction intrinsics
1232112321
1232212322The specification for SME2.1 is in
12323- [**Alpha** state](#current-status-and-anticipated-changes) and may change or be
12324- extended in the future.
12323+ [**Alpha** state](#current-status-and-anticipated-changes) and might change or
12324+ be extended in the future.
1232512325
1232612326The intrinsics in this section are defined by the header file
1232712327[`<arm_sme.h>`](#arm_sme.h) when `__ARM_FEATURE_SME2p1` is defined.
@@ -13083,7 +13083,7 @@ intrinsics may have additional target feature requirements.
1308313083
1308413084#### BFCVTN, FCVTN
1308513085
13086- Half-precision and BFloat16 convert, narrow and interleave to 8-bit
13086+ Half-precision and BFloat16 convert, narrow, and interleave to 8-bit
1308713087floating-point.
1308813088``` c
1308913089 // Variant is also available for: _bf16_x2
@@ -13092,7 +13092,7 @@ floating-point.
1309213092
1309313093#### FCVTNT, FCVTNB
1309413094
13095- Single-precision convert, narrow and interleave to 8-bit floating-point (top and bottom).
13095+ Single-precision convert, narrow, and interleave to 8-bit floating-point (top and bottom).
1309613096``` c
1309713097 svmfloat8_t svcvtnt_mf8[_f32_x2]_fpm(svmfloat8_t zd, svfloat32x2_t zn, fpm_t fpm);
1309813098 svmfloat8_t svcvtnb_mf8[_f32_x2]_fpm(svmfloat8_t zd, svfloat32x2_t zn, fpm_t fpm);
0 commit comments