Skip to content

Conversation

@DharuniRAcharya
Copy link
Contributor

This patch moves the print functions from NVVMIntrinsicUtils.h to NVVMIntrinsicUtils.cpp, a file created in the llvm/lib/IR directory.

This patch moves the print functions from NVVMIntrinsicUtils.h to NVVMIntrinsicUtils.cpp, a file created in the llvm/lib/IR directory.

Signed-off-by: Dharuni R Acharya <dharunira@nvidia.com>
@llvmbot
Copy link
Member

llvmbot commented Nov 21, 2025

@llvm/pr-subscribers-llvm-ir

@llvm/pr-subscribers-backend-nvptx

Author: Dharuni R Acharya (DharuniRAcharya)

Changes

This patch moves the print functions from NVVMIntrinsicUtils.h to NVVMIntrinsicUtils.cpp, a file created in the llvm/lib/IR directory.


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

3 Files Affected:

  • (modified) llvm/include/llvm/IR/NVVMIntrinsicUtils.h (+2-43)
  • (modified) llvm/lib/IR/CMakeLists.txt (+1)
  • (added) llvm/lib/IR/NVVMIntrinsicUtils.cpp (+61)
diff --git a/llvm/include/llvm/IR/NVVMIntrinsicUtils.h b/llvm/include/llvm/IR/NVVMIntrinsicUtils.h
index d383769043605..a6356a99b9c77 100644
--- a/llvm/include/llvm/IR/NVVMIntrinsicUtils.h
+++ b/llvm/include/llvm/IR/NVVMIntrinsicUtils.h
@@ -662,50 +662,9 @@ inline APFloat::roundingMode GetFMARoundingMode(Intrinsic::ID IntrinsicID) {
   llvm_unreachable("Invalid FP instrinsic rounding mode for NVVM fma");
 }
 
-inline void printTcgen05MMAKind(raw_ostream &OS, const Constant *ImmArgVal) {
-  if (const auto *CI = dyn_cast<ConstantInt>(ImmArgVal)) {
-    uint64_t Val = CI->getZExtValue();
-    switch (static_cast<Tcgen05MMAKind>(Val)) {
-    case Tcgen05MMAKind::F16:
-      OS << "f16";
-      return;
-    case Tcgen05MMAKind::TF32:
-      OS << "tf32";
-      return;
-    case Tcgen05MMAKind::F8F6F4:
-      OS << "f8f6f4";
-      return;
-    case Tcgen05MMAKind::I8:
-      OS << "i8";
-      return;
-    }
-  }
-  llvm_unreachable(
-      "printTcgen05MMAKind called with invalid value for immediate argument");
-}
+void printTcgen05MMAKind(raw_ostream &OS, const Constant *ImmArgVal);
 
-inline void printTcgen05CollectorUsageOp(raw_ostream &OS,
-                                         const Constant *ImmArgVal) {
-  if (const auto *CI = dyn_cast<ConstantInt>(ImmArgVal)) {
-    uint64_t Val = CI->getZExtValue();
-    switch (static_cast<Tcgen05CollectorUsageOp>(Val)) {
-    case Tcgen05CollectorUsageOp::DISCARD:
-      OS << "discard";
-      return;
-    case Tcgen05CollectorUsageOp::LASTUSE:
-      OS << "lastuse";
-      return;
-    case Tcgen05CollectorUsageOp::FILL:
-      OS << "fill";
-      return;
-    case Tcgen05CollectorUsageOp::USE:
-      OS << "use";
-      return;
-    }
-  }
-  llvm_unreachable("printTcgen05CollectorUsageOp called with invalid value for "
-                   "immediate argument");
-}
+void printTcgen05CollectorUsageOp(raw_ostream &OS, const Constant *ImmArgVal);
 
 } // namespace nvvm
 } // namespace llvm
diff --git a/llvm/lib/IR/CMakeLists.txt b/llvm/lib/IR/CMakeLists.txt
index 10572ff708bd3..31821a2d6b208 100644
--- a/llvm/lib/IR/CMakeLists.txt
+++ b/llvm/lib/IR/CMakeLists.txt
@@ -35,6 +35,7 @@ add_llvm_component_library(LLVMCore
   GVMaterializer.cpp
   Globals.cpp
   Intrinsics.cpp
+  NVVMIntrinsicUtils.cpp
   IRBuilder.cpp
   IRPrintingPasses.cpp
   SSAContext.cpp
diff --git a/llvm/lib/IR/NVVMIntrinsicUtils.cpp b/llvm/lib/IR/NVVMIntrinsicUtils.cpp
new file mode 100644
index 0000000000000..bf5c25c891cea
--- /dev/null
+++ b/llvm/lib/IR/NVVMIntrinsicUtils.cpp
@@ -0,0 +1,61 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements functions associated with NVVM Intrinsics.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/IR/NVVMIntrinsicUtils.h"
+
+using namespace llvm;
+using namespace nvvm;
+
+void nvvm::printTcgen05MMAKind(raw_ostream &OS, const Constant *ImmArgVal) {
+  if (const auto *CI = dyn_cast<ConstantInt>(ImmArgVal)) {
+    uint64_t Val = CI->getZExtValue();
+    switch (static_cast<Tcgen05MMAKind>(Val)) {
+    case Tcgen05MMAKind::F16:
+      OS << "f16";
+      return;
+    case Tcgen05MMAKind::TF32:
+      OS << "tf32";
+      return;
+    case Tcgen05MMAKind::F8F6F4:
+      OS << "f8f6f4";
+      return;
+    case Tcgen05MMAKind::I8:
+      OS << "i8";
+      return;
+    }
+  }
+  llvm_unreachable(
+      "printTcgen05MMAKind called with invalid value for immediate argument");
+}
+
+void nvvm::printTcgen05CollectorUsageOp(raw_ostream &OS,
+                                  const Constant *ImmArgVal) {
+  if (const auto *CI = dyn_cast<ConstantInt>(ImmArgVal)) {
+    uint64_t Val = CI->getZExtValue();
+    switch (static_cast<Tcgen05CollectorUsageOp>(Val)) {
+    case Tcgen05CollectorUsageOp::DISCARD:
+      OS << "discard";
+      return;
+    case Tcgen05CollectorUsageOp::LASTUSE:
+      OS << "lastuse";
+      return;
+    case Tcgen05CollectorUsageOp::FILL:
+      OS << "fill";
+      return;
+    case Tcgen05CollectorUsageOp::USE:
+      OS << "use";
+      return;
+    }
+  }
+  llvm_unreachable("printTcgen05CollectorUsageOp called with invalid value for "
+                   "immediate argument");
+}

@github-actions
Copy link

github-actions bot commented Nov 21, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@github-actions
Copy link

github-actions bot commented Nov 21, 2025

🐧 Linux x64 Test Results

  • 186432 tests passed
  • 4868 tests skipped

@durga4github durga4github requested a review from jurahul November 21, 2025 07:55
Copy link
Contributor

@durga4github durga4github left a comment

Choose a reason for hiding this comment

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

Let us wait for @jurahul to have a look

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants