[Mlir-commits] [mlir] [mlir][AMDGPU] Support vector<2xf16> inputs to buffer atomic fadd (PR #108238)
Jakub Kuderski
llvmlistbot at llvm.org
Wed Sep 11 10:24:09 PDT 2024
================
@@ -115,15 +115,18 @@ struct RawBufferOpLowering : public ConvertOpToLLVMPattern<GpuOp> {
rewriter.getIntegerType(floatType.getWidth()));
}
if (auto dataVector = dyn_cast<VectorType>(wantedDataType)) {
+ uint32_t vecLen = dataVector.getNumElements();
uint32_t elemBits = dataVector.getElementTypeBitWidth();
- uint32_t totalBits = elemBits * dataVector.getNumElements();
+ uint32_t totalBits = elemBits * vecLen;
+ bool usePackedFp16 =
+ dyn_cast_or_null<RawBufferAtomicFaddOp>(*gpuOp) && vecLen == 2;
if (totalBits > maxVectorOpWidth)
return gpuOp.emitOpError(
"Total width of loads or stores must be no more than " +
Twine(maxVectorOpWidth) + " bits, but we call for " +
Twine(totalBits) +
" bits. This should've been caught in validation");
- if (elemBits < 32) {
+ else if (!usePackedFp16 && elemBits < 32) {
----------------
kuhar wrote:
nit: no else after return: https://llvm.org/docs/CodingStandards.html#don-t-use-else-after-a-return
https://github.com/llvm/llvm-project/pull/108238
More information about the Mlir-commits
mailing list