[Mlir-commits] [mlir] 63d25f4 - [MLIR][LLVM] Preserve inline asm call attributes with operand_attrs (#233770)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Nov 2 07:52:23 PST 2026


Author: Arseniy Obolenskiy
Date: 2026-11-02T16:52:18+01:00
New Revision: 63d25f40f59c7ad630aae6d2d1530a065bab5fc6

URL: https://github.com/llvm/llvm-project/commit/63d25f40f59c7ad630aae6d2d1530a065bab5fc6
DIFF: https://github.com/llvm/llvm-project/commit/63d25f40f59c7ad630aae6d2d1530a065bab5fc6.diff

LOG: [MLIR][LLVM] Preserve inline asm call attributes with operand_attrs (#233770)

Added: 
    

Modified: 
    mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
    mlir/test/Target/LLVMIR/llvmir.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
index 7833d8857699ce..7c04a1e2a6d785 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
@@ -669,7 +669,7 @@ convertOperationImpl(Operation &opInst, llvm::IRBuilderBase &builder,
     if (inlineAsmOp.getConvergent())
       inst->addFnAttr(llvm::Attribute::Convergent);
     if (auto maybeOperandAttrs = inlineAsmOp.getOperandAttrs()) {
-      llvm::AttributeList attrList;
+      llvm::AttributeList attrList = inst->getAttributes();
       for (const auto &it : llvm::enumerate(*maybeOperandAttrs)) {
         Attribute attr = it.value();
         if (!attr)

diff  --git a/mlir/test/Target/LLVMIR/llvmir.mlir b/mlir/test/Target/LLVMIR/llvmir.mlir
index 85b96c06a9a9af..9ba0e8cad7d1cc 100644
--- a/mlir/test/Target/LLVMIR/llvmir.mlir
+++ b/mlir/test/Target/LLVMIR/llvmir.mlir
@@ -2250,6 +2250,9 @@ llvm.func @useInlineAsm(%arg0: i32, %arg1 : !llvm.ptr) {
   // CHECK-NEXT:  call i8 asm "foo", "=r,r"(i32 {{.*}}) #[[$CONVERGENT:.*]]
   %9 = llvm.inline_asm convergent "foo", "=r,r" %arg0 : (i32) -> i8
 
+  // CHECK-NEXT:  call void asm "", "*m"(ptr elementtype(ptr) %1) #[[$CONVERGENT]]
+  llvm.inline_asm convergent operand_attrs = [{elementtype = !llvm.ptr}] "", "*m" %arg1 : (!llvm.ptr) -> !llvm.void
+
   llvm.return
 }
 


        


More information about the Mlir-commits mailing list