Skip to content

Conversation

@CarolineConcatto
Copy link
Contributor

This patch follows the PR#421[1] from the ACLE

These 2 FP8 intrinsics had single removed from them: from svmla[_single]_za16[_mf8]_vg2x1_fpm to svmla_za16[_mf8]_vg2x1_fpm and from svmla[_single]_za32[_mf8]_vg4x1_fpm to svmla_za32[_mf8]_vg4x1_fpm

[1]ARM-software/acle#421

@llvmbot llvmbot added clang Clang issues not falling into any other category clang:frontend Language frontend issues, e.g. anything involving "Sema" labels Nov 6, 2025
@llvmbot
Copy link
Member

llvmbot commented Nov 6, 2025

@llvm/pr-subscribers-llvm-ir
@llvm/pr-subscribers-backend-aarch64

@llvm/pr-subscribers-clang

Author: None (CarolineConcatto)

Changes

This patch follows the PR#421[1] from the ACLE

These 2 FP8 intrinsics had single removed from them: from svmla[_single]_za16[_mf8]_vg2x1_fpm to svmla_za16[_mf8]_vg2x1_fpm and from svmla[_single]_za32[_mf8]_vg4x1_fpm to svmla_za32[_mf8]_vg4x1_fpm

[1]ARM-software/acle#421


Full diff: https://github.com/llvm/llvm-project/pull/166799.diff

2 Files Affected:

  • (modified) clang/include/clang/Basic/arm_sme.td (+2-2)
  • (modified) clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_mla.c (+2-2)
diff --git a/clang/include/clang/Basic/arm_sme.td b/clang/include/clang/Basic/arm_sme.td
index 5f6a6eaab80a3..8fdb93519e8ec 100644
--- a/clang/include/clang/Basic/arm_sme.td
+++ b/clang/include/clang/Basic/arm_sme.td
@@ -992,7 +992,7 @@ let SMETargetGuard = "sme-f8f32" in {
   def SVMLA_FP8_LANE_ZA16_VG4x4 : Inst<"svmla_lane_za32[_mf8]_vg4x4", "vm4di>", "m", MergeNone, "aarch64_sme_fp8_fmlall_lane_za32_vg4x4",
                                        [IsStreaming, IsInOutZA, IsOverloadNone], [ImmCheck<3, ImmCheck0_15>]>;
   // FMLALL (single)
-  def SVMLA_FP8_SINGLE_ZA32_VG4x1 : Inst<"svmla[_single]_za32[_mf8]_vg4x1", "vmdd>", "m", MergeNone, "aarch64_sme_fp8_fmlall_single_za32_vg4x1",
+  def SVMLA_FP8_SINGLE_ZA32_VG4x1 : Inst<"svmla_za32[_mf8]_vg4x1", "vmdd>", "m", MergeNone, "aarch64_sme_fp8_fmlall_single_za32_vg4x1",
                                          [IsStreaming, IsInOutZA, IsOverloadNone], []>;
   def SVMLA_FP8_SINGLE_ZA32_VG4x2 : Inst<"svmla[_single]_za32[_mf8]_vg4x2", "vm2d>", "m", MergeNone, "aarch64_sme_fp8_fmlall_single_za32_vg4x2",
                                          [IsStreaming, IsInOutZA, IsOverloadNone], []>;
@@ -1016,7 +1016,7 @@ let SMETargetGuard = "sme-f8f16" in {
   def SVMLA_FP8_LANE_ZA16_VG2x4 : Inst<"svmla_lane_za16[_mf8]_vg2x4", "vm4di>", "m", MergeNone, "aarch64_sme_fp8_fmlal_lane_za16_vg2x4",
                                        [IsStreaming, IsInOutZA, IsOverloadNone], [ImmCheck<3, ImmCheck0_15>]>;
   // FMLAL (single)
-  def SVMLA_FP8_SINGLE_ZA16_VG2x1 : Inst<"svmla[_single]_za16[_mf8]_vg2x1", "vmdd>", "m", MergeNone, "aarch64_sme_fp8_fmlal_single_za16_vg2x1",
+  def SVMLA_FP8_SINGLE_ZA16_VG2x1 : Inst<"svmla_za16[_mf8]_vg2x1", "vmdd>", "m", MergeNone, "aarch64_sme_fp8_fmlal_single_za16_vg2x1",
                                          [IsStreaming, IsInOutZA, IsOverloadNone], []>;
   def SVMLA_FP8_SINGLE_ZA16_VG2x2 : Inst<"svmla[_single]_za16[_mf8]_vg2x2", "vm2d>", "m", MergeNone, "aarch64_sme_fp8_fmlal_single_za16_vg2x2",
                                          [IsStreaming, IsInOutZA, IsOverloadNone], []>;
diff --git a/clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_mla.c b/clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_mla.c
index d603045edf282..601b66710f6ff 100644
--- a/clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_mla.c
+++ b/clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_mla.c
@@ -144,7 +144,7 @@ void test_svmla_lane_za32_vg4x4(uint32_t slice, svmfloat8x4_t zn, svmfloat8_t zm
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svmla_single_za16_vg2x1(uint32_t slice, svmfloat8_t zn, svmfloat8_t zm, fpm_t fpm) __arm_streaming __arm_inout("za") {
-    SME_ACLE_FUNC(svmla,_single,_za16,_mf8,_vg2x1_fpm)(slice, zn, zm, fpm);
+    SME_ACLE_FUNC(svmla_za16,_mf8,_vg2x1_fpm,,)(slice, zn, zm, fpm);
 }
 
 // CHECK-LABEL: define dso_local void @test_svmla_single_za16_vg2x2(
@@ -200,7 +200,7 @@ void test_svmla_single_za16_vg2x4(uint32_t slice, svmfloat8x4_t zn, svmfloat8_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svmla_single_za32_vg4x1(uint32_t slice, svmfloat8_t zn, svmfloat8_t zm, fpm_t fpm) __arm_streaming __arm_inout("za") {
-    SME_ACLE_FUNC(svmla,_single,_za32,_mf8,_vg4x1_fpm)(slice, zn, zm, fpm);
+    SME_ACLE_FUNC(svmla_za32,_mf8,_vg4x1_fpm,,)(slice, zn, zm, fpm);
 }
 
 // CHECK-LABEL: define dso_local void @test_svmla_single_za32_vg4x2(

Copy link
Contributor

@jthackray jthackray left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@SpencerAbson SpencerAbson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there are references to the '_single' names in clang/test/Sema. Aside from that this LGTM :).

This patch follows the PR#421[1] from the ACLE

These 2 FP8 intrinsics had single removed from them:
from ``svmla[_single]_za16[_mf8]_vg2x1_fpm`` to ``svmla_za16[_mf8]_vg2x1_fpm``
and  from ``svmla[_single]_za32[_mf8]_vg4x1_fpm`` to  ``svmla_za32[_mf8]_vg4x1_fpm``

[1]ARM-software/acle#421
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:AArch64 clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category llvm:ir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants