@@ -465,6 +465,8 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
465465
466466* Added feature test macro for FEAT_SSVE_FEXPA.
467467* Added feature test macro for FEAT_CSSC.
468+ * Added support for modal 8-bit floating point matrix multiply-accumulate widening intrinsics.
469+ * Added support for 16-bit floating point matrix multiply-accumulate widening intrinsics.
468470
469471### References
470472
@@ -2346,6 +2348,26 @@ is hardware support for the SVE forms of these instructions and if the
23462348associated ACLE intrinsics are available. This implies that
23472349`__ARM_FEATURE_MATMUL_INT8` and `__ARM_FEATURE_SVE` are both nonzero.
23482350
2351+ ##### Multiplication of modal 8-bit floating-point matrices
2352+
2353+ This section is in
2354+ [**Alpha** state](#current-status-and-anticipated-changes) and might change or be
2355+ extended in the future.
2356+
2357+ `__ARM_FEATURE_F8F16MM` is defined to `1` if there is hardware support
2358+ for the NEON and SVE modal 8-bit floating-point matrix multiply-accumulate to half-precision (FEAT_F8F16MM)
2359+ instructions and if the associated ACLE intrinsics are available.
2360+
2361+ `__ARM_FEATURE_F8F32MM` is defined to `1` if there is hardware support
2362+ for the NEON and SVE modal 8-bit floating-point matrix multiply-accumulate to single-precision (FEAT_F8F32MM)
2363+ instructions and if the associated ACLE intrinsics are available.
2364+
2365+ ##### Multiplication of 16-bit floating-point matrices
2366+
2367+ `__ARM_FEATURE_SVE_F16F32MM` is defined to `1` if there is hardware support
2368+ for the SVE 16-bit floating-point to 32-bit floating-point matrix multiply and add
2369+ (FEAT_SVE_F16F32MM) instructions and if the associated ACLE intrinsics are available.
2370+
23492371##### Multiplication of 32-bit floating-point matrices
23502372
23512373`__ARM_FEATURE_SVE_MATMUL_FP32` is defined to `1` if there is hardware support
@@ -2637,6 +2659,9 @@ be found in [[BA]](#BA).
26372659| [`__ARM_FEATURE_SVE_BITS`](#scalable-vector-extension-sve) | The number of bits in an SVE vector, when known in advance | 256 |
26382660| [`__ARM_FEATURE_SVE_MATMUL_FP32`](#multiplication-of-32-bit-floating-point-matrices) | 32-bit floating-point matrix multiply extension (FEAT_F32MM) | 1 |
26392661| [`__ARM_FEATURE_SVE_MATMUL_FP64`](#multiplication-of-64-bit-floating-point-matrices) | 64-bit floating-point matrix multiply extension (FEAT_F64MM) | 1 |
2662+ | [`__ARM_FEATURE_F8F16MM`](#multiplication-of-modal-8-bit-floating-point-matrices) | Modal 8-bit floating-point matrix multiply-accumulate to half-precision extension (FEAT_F8F16MM) | 1 |
2663+ | [`__ARM_FEATURE_F8F32MM`](#multiplication-of-modal-8-bit-floating-point-matrices) | Modal 8-bit floating-point matrix multiply-accumulate to single-precision extension (FEAT_F8F32MM) | 1 |
2664+ | [`__ARM_FEATURE_SVE_F16F32MM`](#multiplication-of-16-bit-floating-point-matrices) | 16-bit floating-point matrix multiply-accumulate to single-precision extension (FEAT_SVE_F16F32MM) | 1 |
26402665| [`__ARM_FEATURE_SVE_MATMUL_INT8`](#multiplication-of-8-bit-integer-matrices) | SVE support for the integer matrix multiply extension (FEAT_I8MM) | 1 |
26412666| [`__ARM_FEATURE_SVE_PREDICATE_OPERATORS`](#scalable-vector-extension-sve) | Level of support for C and C++ operators on SVE vector types | 1 |
26422667| [`__ARM_FEATURE_SVE_VECTOR_OPERATORS`](#scalable-vector-extension-sve) | Level of support for C and C++ operators on SVE predicate types | 1 |
@@ -9374,6 +9399,31 @@ BFloat16 floating-point multiply vectors.
93749399 uint64_t imm_idx);
93759400 ```
93769401
9402+ ### SVE2 floating-point matrix multiply-accumulate instructions.
9403+
9404+ #### FMMLA (widening, FP8 to FP16)
9405+
9406+ Modal 8-bit floating-point matrix multiply-accumulate to half-precision.
9407+ ```c
9408+ // Only if (__ARM_FEATURE_SVE2 && __ARM_FEATURE_F8F16MM)
9409+ svfloat16_t svmmla[_f16_mf8]_fpm(svfloat16_t zda, svmfloat8_t zn, svmfloat8_t zm, fpm_t fpm);
9410+ ```
9411+
9412+ #### FMMLA (widening, FP8 to FP32)
9413+
9414+ Modal 8-bit floating-point matrix multiply-accumulate to single-precision.
9415+ ```c
9416+ // Only if (__ARM_FEATURE_SVE2 && __ARM_FEATURE_F8F32MM)
9417+ svfloat32_t svmmla[_f32_mf8]_fpm(svfloat32_t zda, svmfloat8_t zn, svmfloat8_t zm, fpm_t fpm);
9418+ ```
9419+ #### FMMLA (widening, FP16 to FP32)
9420+
9421+ 16-bit floating-point matrix multiply-accumulate to single-precision.
9422+ ```c
9423+ // Only if __ARM_FEATURE_SVE_F16F32MM
9424+ svfloat32_t svmmla[_f32_f16](svfloat32_t zda, svfloat16_t zn, svfloat16_t zm);
9425+ ```
9426+
93779427### SVE2.1 instruction intrinsics
93789428
93799429The specification for SVE2.1 is in
0 commit comments