[Mlir-commits] [mlir] [mlir][SPIRV] Add sub-element-byte lowering support for atomic_rmw ori/andi ops (PR #179831)
Eric Feng
llvmlistbot at llvm.org
Mon Feb 23 18:00:54 PST 2026
================
@@ -427,27 +427,137 @@ AtomicRMWOpPattern::matchAndRewrite(memref::AtomicRMWOp atomicOp,
if (!ptr)
return failure();
+ // Determine the source and destination bitwidths. The source is the original
+ // memref element type and the destination is the SPIR-V storage type (e.g.,
+ // i32 for Vulkan).
+ int srcBits = memrefType.getElementType().getIntOrFloatBitWidth();
+ auto pointerType = typeConverter.convertType<spirv::PointerType>(memrefType);
+ if (!pointerType)
+ return rewriter.notifyMatchFailure(atomicOp,
+ "failed to convert memref type");
+
+ Type pointeeType = pointerType.getPointeeType();
+ IntegerType dstType;
+ if (typeConverter.allows(spirv::Capability::Kernel)) {
----------------
efric wrote:
At least; this is consistent with existing similar checks in `SPIRVConversion.cpp` as well
https://github.com/llvm/llvm-project/pull/179831
More information about the Mlir-commits
mailing list