[MIR] Fix printing INLINEASM dialects. (#186797)
diff --git a/llvm/include/llvm/IR/InlineAsm.h b/llvm/include/llvm/IR/InlineAsm.h
index fed0ccc..564f2e7 100644
--- a/llvm/include/llvm/IR/InlineAsm.h
+++ b/llvm/include/llvm/IR/InlineAsm.h
@@ -444,6 +444,10 @@
     }
   };
 
+  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 @@
     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 b36d950..1042856 100644
--- a/llvm/lib/CodeGen/MachineInstr.cpp
+++ b/llvm/lib/CodeGen/MachineInstr.cpp
@@ -927,7 +927,7 @@
 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 b4eddbb..6318a39 100644
--- a/llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir
+++ b/llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir
@@ -1,6 +1,4 @@
 # RUN: llc -run-pass=none -o - %s | FileCheck --match-full-lines %s
-# FIXME: this currently fails on UBSan
-# XFAIL: ubsan
 
 ---
 name: test_attdialect
@@ -33,9 +31,8 @@
 name: test_inteldialect
 body: |
   bb.0:
-    ; TODO: Fix printing inteldialect.
     ; CHECK-LABEL: name: test_inteldialect
-    ; CHECK: INLINEASM &"", 4
+    ; CHECK: INLINEASM &"", 4 /* inteldialect */
     INLINEASM &"", 4
 ...
 
@@ -80,6 +77,6 @@
 body: |
   bb.0:
     ; CHECK-LABEL: name: test_combined
-    ; CHECK: INLINEASM &"", 13 /* sideeffect mayload */
+    ; CHECK: INLINEASM &"", 13 /* sideeffect mayload inteldialect */
     INLINEASM &"", 13
 ...