[llvm-branch-commits] [llvm] [MIR][NFC] Fix printing INLINEASM dialects. (PR #186797)

Ivan Kosarev via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Mar 16 06:28:49 PDT 2026


https://github.com/kosarev created https://github.com/llvm/llvm-project/pull/186797

None

>From 2708ff003ed321b86415f14c3e5d88277f67539c Mon Sep 17 00:00:00 2001
From: Ivan Kosarev <ivan.kosarev at amd.com>
Date: Mon, 16 Mar 2026 13:22:23 +0000
Subject: [PATCH] [MIR][NFC] Fix printing INLINEASM dialects.

---
 llvm/include/llvm/IR/InlineAsm.h                        | 8 +++++---
 llvm/lib/CodeGen/MachineInstr.cpp                       | 2 +-
 llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir | 5 ++---
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/llvm/include/llvm/IR/InlineAsm.h b/llvm/include/llvm/IR/InlineAsm.h
index fed0ccc5818f8..564f2e7df2dd3 100644
--- a/llvm/include/llvm/IR/InlineAsm.h
+++ b/llvm/include/llvm/IR/InlineAsm.h
@@ -444,6 +444,10 @@ class InlineAsm final : public Value {
     }
   };
 
+  static AsmDialect getDialect(unsigned ExtraInfo) {
+    return ExtraInfo & Extra_AsmDialect ? AD_Intel : AD_ATT;
+  }
+
   static std::vector<StringRef> getExtraInfoNames(unsigned ExtraInfo) {
     std::vector<StringRef> Result;
     if (ExtraInfo & InlineAsm::Extra_HasSideEffects)
@@ -459,9 +463,7 @@ class InlineAsm final : public Value {
     if (ExtraInfo & InlineAsm::Extra_MayUnwind)
       Result.push_back("unwind");
 
-    AsmDialect Dialect =
-        InlineAsm::AsmDialect((ExtraInfo & InlineAsm::Extra_AsmDialect));
-
+    AsmDialect Dialect = getDialect(ExtraInfo);
     if (Dialect == InlineAsm::AD_ATT)
       Result.push_back("attdialect");
     if (Dialect == InlineAsm::AD_Intel)
diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp
index b36d950438fa5..1042856454adf 100644
--- a/llvm/lib/CodeGen/MachineInstr.cpp
+++ b/llvm/lib/CodeGen/MachineInstr.cpp
@@ -927,7 +927,7 @@ bool MachineInstr::isStackAligningInlineAsm() const {
 InlineAsm::AsmDialect MachineInstr::getInlineAsmDialect() const {
   assert(isInlineAsm() && "getInlineAsmDialect() only works for inline asms!");
   unsigned ExtraInfo = getOperand(InlineAsm::MIOp_ExtraInfo).getImm();
-  return InlineAsm::AsmDialect((ExtraInfo & InlineAsm::Extra_AsmDialect) != 0);
+  return InlineAsm::getDialect(ExtraInfo);
 }
 
 int MachineInstr::findInlineAsmFlagIdx(unsigned OpIdx,
diff --git a/llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir b/llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir
index fce71d62455db..6318a397b58d9 100644
--- a/llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir
+++ b/llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir
@@ -31,9 +31,8 @@ body: |
 name: test_inteldialect
 body: |
   bb.0:
-    ; TODO: Fix printing inteldialect.
     ; CHECK-LABEL: name: test_inteldialect
-    ; CHECK: INLINEASM &"", 4
+    ; CHECK: INLINEASM &"", 4 /* inteldialect */
     INLINEASM &"", 4
 ...
 
@@ -78,6 +77,6 @@ name: test_combined
 body: |
   bb.0:
     ; CHECK-LABEL: name: test_combined
-    ; CHECK: INLINEASM &"", 13 /* sideeffect mayload */
+    ; CHECK: INLINEASM &"", 13 /* sideeffect mayload inteldialect */
     INLINEASM &"", 13
 ...



More information about the llvm-branch-commits mailing list