@@ -11,7 +11,7 @@ toc: true
11
11
---
12
12
13
13
<!--
14
- SPDX-FileCopyrightText: Copyright 2011-
2024 Arm Limited and/or its affiliates <
[email protected] >
14
+ SPDX-FileCopyrightText: Copyright 2011-
2025 Arm Limited and/or its affiliates <
[email protected] >
15
15
SPDX-FileCopyrightText: Copyright 2022 Google LLC.
16
16
CC-BY-SA-4.0 AND Apache-Patent-License
17
17
See LICENSE.md file for details
@@ -435,6 +435,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
435
435
* Added [`__arm_agnostic`](#arm_agnostic) keyword attribute.
436
436
* Refined function versioning scope and signature rules to use the default
437
437
version scope and signature.
438
+ * Added mf8 variants of SME 2.1 intrinsics.
438
439
439
440
### References
440
441
@@ -12509,7 +12510,7 @@ The intrinsics in this section are defined by the header file
12509
12510
Move and zero ZA tile slice to vector register.
12510
12511
12511
12512
```
12512
- // And similarly for u8.
12513
+ // And similarly for u8 and mf8 .
12513
12514
svint8_t svreadz_hor_za8_s8(uint64_t tile, uint32_t slice)
12514
12515
__arm_streaming __arm_inout("za");
12515
12516
@@ -12525,11 +12526,12 @@ Move and zero ZA tile slice to vector register.
12525
12526
svint64_t svreadz_hor_za64_s64(uint64_t tile, uint32_t slice)
12526
12527
__arm_streaming __arm_inout("za");
12527
12528
12528
- // And similarly for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64
12529
+ // And similarly for s16, s32, s64, u8, u16, u32, u64,
12530
+ // mf8, bf16, f16, f32, f64
12529
12531
svint8_t svreadz_hor_za128_s8(uint64_t tile, uint32_t slice)
12530
12532
__arm_streaming __arm_inout("za");
12531
12533
12532
- // And similarly for u8.
12534
+ // And similarly for u8 and mf8 .
12533
12535
svint8_t svreadz_ver_za8_s8(uint64_t tile, uint32_t slice)
12534
12536
__arm_streaming __arm_inout("za");
12535
12537
@@ -12545,7 +12547,8 @@ Move and zero ZA tile slice to vector register.
12545
12547
svint64_t svreadz_ver_za64_s64(uint64_t tile, uint32_t slice)
12546
12548
__arm_streaming __arm_inout("za");
12547
12549
12548
- // And similarly for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64
12550
+ // And similarly for s16, s32, s64, u8, u16, u32, u64,
12551
+ // mf8, bf16, f16, f32, f64
12549
12552
svint8_t svreadz_ver_za128_s8(uint64_t tile, uint32_t slice)
12550
12553
__arm_streaming __arm_inout("za");
12551
12554
```
@@ -12555,28 +12558,28 @@ Move and zero ZA tile slice to vector register.
12555
12558
Move and zero multiple ZA tile slices to vector registers
12556
12559
12557
12560
``` c
12558
- // Variants are also available for _za8_u8, _za16_s16, _za16_u16,
12561
+ // Variants are also available for _za8_u8, _za8_mf8, _za16_s16, _za16_u16,
12559
12562
// _za16_f16, _za16_bf16, _za32_s32, _za32_u32, _za32_f32,
12560
12563
// _za64_s64, _za64_u64 and _za64_f64
12561
12564
svint8x2_t svreadz_hor_za8_s8_vg2(uint64_t tile, uint32_t slice)
12562
12565
__arm_streaming __arm_inout("za");
12563
12566
12564
12567
12565
- // Variants are also available for _za8_u8, _za16_s16, _za16_u16,
12568
+ // Variants are also available for _za8_u8, _za8_mf8, _za16_s16, _za16_u16,
12566
12569
// _za16_f16, _za16_bf16, _za32_s32, _za32_u32, _za32_f32,
12567
12570
// _za64_s64, _za64_u64 and _za64_f64
12568
12571
svint8x4_t svreadz_hor_za8_s8_vg4(uint64_t tile, uint32_t slice)
12569
12572
__arm_streaming __arm_inout("za");
12570
12573
12571
12574
12572
- // Variants are also available for _za8_u8, _za16_s16, _za16_u16,
12575
+ // Variants are also available for _za8_u8, _za8_mf8, _za16_s16, _za16_u16,
12573
12576
// _za16_f16, _za16_bf16, _za32_s32, _za32_u32, _za32_f32,
12574
12577
// _za64_s64, _za64_u64 and _za64_f64
12575
12578
svint8x2_t svreadz_ver_za8_s8_vg2(uint64_t tile, uint32_t slice)
12576
12579
__arm_streaming __arm_inout("za");
12577
12580
12578
12581
12579
- // Variants are also available for _za8_u8, _za16_s16, _za16_u16,
12582
+ // Variants are also available for _za8_u8, _za8_mf8, _za16_s16, _za16_u16,
12580
12583
// _za16_f16, _za16_bf16, _za32_s32, _za32_u32, _za32_f32,
12581
12584
// _za64_s64, _za64_u64 and _za64_f64
12582
12585
svint8x4_t svreadz_ver_za8_s8_vg4(uint64_t tile, uint32_t slice)
@@ -12588,14 +12591,14 @@ Move and zero multiple ZA tile slices to vector registers
12588
12591
Move and zero multiple ZA single-vector groups to vector registers
12589
12592
12590
12593
```
12591
- // Variants are also available for _za8_u8, _za16_s16, _za16_u16,
12594
+ // Variants are also available for _za8_u8, _za8_mf8, _za16_s16, _za16_u16,
12592
12595
// _za16_f16, _za16_bf16, _za32_s32, _za32_u32, _za32_f32,
12593
12596
// _za64_s64, _za64_u64 and _za64_f64
12594
12597
svint8x2_t svreadz_za8_s8_vg1x2(uint32_t slice)
12595
12598
__arm_streaming __arm_inout("za");
12596
12599
12597
12600
12598
- // Variants are also available for _za8_u8, _za16_s16, _za16_u16,
12601
+ // Variants are also available for _za8_u8, _za8_mf8, _za16_s16, _za16_u16,
12599
12602
// _za16_f16, _za16_bf16, _za32_s32, _za32_u32, _za32_f32,
12600
12603
// _za64_s64, _za64_u64 and _za64_f64
12601
12604
svint8x4_t svreadz_za8_s8_vg1x4(uint32_t slice)
0 commit comments