[llvm] [AArch64][SME] Use reportFatalUsageError rather than assert (NFC) (PR #145491)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 24 03:25:04 PDT 2025


https://github.com/MacDue updated https://github.com/llvm/llvm-project/pull/145491

>From 30d0f848facd652a3052a88107267e147b65b80c Mon Sep 17 00:00:00 2001
From: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: Tue, 24 Jun 2025 10:07:36 +0000
Subject: [PATCH 1/3] [AArch64][SME] Use reportFatalUsageError rather than
 assert (NFC)

Fixes #144351
---
 llvm/lib/Target/AArch64/AArch64TargetMachine.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
index 8150e91c8ba52..65c3417cbb69f 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
@@ -481,7 +481,8 @@ AArch64TargetMachine::getSubtargetImpl(const Function &F) const {
         MaxSVEVectorSize, IsStreaming, IsStreamingCompatible, HasMinSize);
   }
 
-  assert((!IsStreaming || I->hasSME()) && "Expected SME to be available");
+  if (IsStreaming && !I->hasSME())
+    reportFatalUsageError("Streaming SVE functions require SME");
 
   return I.get();
 }

>From 98b05042d334e841068f297b23097d3c23d3db25 Mon Sep 17 00:00:00 2001
From: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: Tue, 24 Jun 2025 10:23:06 +0000
Subject: [PATCH 2/3] Fixup

---
 llvm/lib/Target/AArch64/AArch64TargetMachine.cpp   | 2 +-
 llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll

diff --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
index 65c3417cbb69f..281a1457fe57e 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
@@ -482,7 +482,7 @@ AArch64TargetMachine::getSubtargetImpl(const Function &F) const {
   }
 
   if (IsStreaming && !I->hasSME())
-    reportFatalUsageError("Streaming SVE functions require SME");
+    reportFatalUsageError("streaming SVE functions require SME");
 
   return I.get();
 }
diff --git a/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll b/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll
new file mode 100644
index 0000000000000..13f18c10655f3
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll
@@ -0,0 +1,7 @@
+; RUN: not llc -mtriple aarch64-none-linux-gnu %s 2>&1 | FileCheck %s
+
+; CHECK: LLVM ERROR: streaming SVE functions require SME
+define void @streaming(i64 noundef %n) "aarch64_pstate_sm_enabled" nounwind {
+entry:
+  ret void
+}
\ No newline at end of file

>From e408dbb50cafc79d9a354864f915050fc8e22bf4 Mon Sep 17 00:00:00 2001
From: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: Tue, 24 Jun 2025 10:24:53 +0000
Subject: [PATCH 3/3] newline

---
 llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll b/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll
index 13f18c10655f3..968adcb7cc21b 100644
--- a/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll
+++ b/llvm/test/CodeGen/AArch64/streaming-func-no-sme.ll
@@ -4,4 +4,4 @@
 define void @streaming(i64 noundef %n) "aarch64_pstate_sm_enabled" nounwind {
 entry:
   ret void
-}
\ No newline at end of file
+}



More information about the llvm-commits mailing list