[Mlir-commits] [mlir] [MLIR][LLVM] Preserve inline asm call attributes with operand_attrs (PR #233770)
Arseniy Obolenskiy
llvmlistbot at llvm.org
Tue Oct 20 02:51:37 PDT 2026
https://github.com/aobolensk created https://github.com/llvm/llvm-project/pull/233770
None
>From d4cdb261f929dfb60e36d426f9de3b778af76a5f Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: Tue, 20 Oct 2026 11:49:50 +0200
Subject: [PATCH] [MLIR][LLVM] Preserve inline asm call attributes with
operand_attrs
---
.../Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp | 2 +-
mlir/test/Target/LLVMIR/llvmir.mlir | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
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 7d0fc4c5207086..6daf265a69fbe8 100644
--- a/mlir/test/Target/LLVMIR/llvmir.mlir
+++ b/mlir/test/Target/LLVMIR/llvmir.mlir
@@ -2273,6 +2273,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