[Mlir-commits] [mlir] [MLIR][XeVM] Update HandleVectorExtract pattern. (PR #191052)
Sang Ik Lee
llvmlistbot at llvm.org
Wed Apr 8 14:10:38 PDT 2026
https://github.com/silee2 created https://github.com/llvm/llvm-project/pull/191052
Split loads only if pointer address space is private.
>From 5ae6c0bef9f76fcf561c7cf91cc40044f4734d41 Mon Sep 17 00:00:00 2001
From: "Lee, Sang Ik" <sang.ik.lee at intel.com>
Date: Wed, 8 Apr 2026 21:06:23 +0000
Subject: [PATCH] [MLIR][XeVM] Update HandleVectorExtract pattern. Split loads
only if pointer address space is private.
---
mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp b/mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
index e6acc0525fdd5..034692653a387 100644
--- a/mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
+++ b/mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
@@ -1249,6 +1249,9 @@ class HandleVectorExtractPattern
// 3. Merge with load as a smaller load
auto loadOp = cast<LLVM::LoadOp>(srcOp);
auto loadPtr = loadOp.getAddr();
+ auto loadAddrSpace = loadPtr.getType().getAddressSpace();
+ if (loadAddrSpace != 0)
+ return failure();
auto loadTy = dyn_cast<VectorType>(loadOp.getType());
auto elemTy = loadTy.getElementType();
auto firstIndex = mask[0];
@@ -1257,8 +1260,7 @@ class HandleVectorExtractPattern
if (firstIndex) {
auto newPtr = LLVM::GEPOp::create(
rewriter, loc,
- LLVM::LLVMPointerType::get(rewriter.getContext(),
- loadPtr.getType().getAddressSpace()),
+ LLVM::LLVMPointerType::get(rewriter.getContext(), loadAddrSpace),
elemTy, loadPtr, ArrayRef<LLVM::GEPArg>{firstIndex});
auto newLoad = LLVM::LoadOp::create(rewriter, loc, newVecTy, newPtr);
rewriter.replaceOp(op, newLoad);
More information about the Mlir-commits
mailing list