Skip to content

Commit 1fcfd5c

Browse files
amd-eochoalokuhar
andauthored
[mlir][amdgpu] Sink op creation in scaled conversion intrinsics (NFC) (#168542)
Where possible: * notifyMatchFailure happen first * then op.emitOpError * finally assertions / op creation. --------- Co-authored-by: Jakub Kuderski <[email protected]>
1 parent 40645ed commit 1fcfd5c

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1738,15 +1738,11 @@ LogicalResult ScaledExtPacked816OpLowering::matchAndRewrite(
17381738
auto sourceType = cast<VectorType>(op.getSource().getType());
17391739
auto srcElemType = cast<FloatType>(sourceType.getElementType());
17401740
unsigned bitWidth = srcElemType.getWidth();
1741-
int32_t scaleSel =
1742-
getScaleSel(blockSize, bitWidth, firstScaleLane, firstScaleByte);
17431741

17441742
auto targetType = cast<VectorType>(op.getResult().getType());
17451743
auto destElemType = cast<FloatType>(targetType.getElementType());
1746-
IntegerType i32 = rewriter.getI32Type();
1747-
Value castedScale =
1748-
LLVM::BitcastOp::create(rewriter, loc, i32, adaptor.getScale());
17491744

1745+
IntegerType i32 = rewriter.getI32Type();
17501746
Value source = adaptor.getSource();
17511747
Type llvmResultType = typeConverter->convertType(op.getResult().getType());
17521748
Type packedType = nullptr;
@@ -1767,15 +1763,19 @@ LogicalResult ScaledExtPacked816OpLowering::matchAndRewrite(
17671763
return rewriter.notifyMatchFailure(op, "type conversion failed");
17681764
}
17691765

1770-
Value castedSource =
1771-
LLVM::BitcastOp::create(rewriter, loc, packedType, source);
1772-
17731766
std::optional<StringRef> maybeIntrinsic =
17741767
scaledExtPacked816ToIntrinsic(srcElemType, destElemType);
17751768
if (!maybeIntrinsic.has_value())
17761769
return op.emitOpError(
17771770
"no intrinsic matching packed scaled conversion on the given chipset");
17781771

1772+
int32_t scaleSel =
1773+
getScaleSel(blockSize, bitWidth, firstScaleLane, firstScaleByte);
1774+
Value castedScale =
1775+
LLVM::BitcastOp::create(rewriter, loc, i32, adaptor.getScale());
1776+
Value castedSource =
1777+
LLVM::BitcastOp::create(rewriter, loc, packedType, source);
1778+
17791779
OperationState loweredOp(loc, *maybeIntrinsic);
17801780
loweredOp.addTypes({llvmResultType});
17811781
loweredOp.addOperands({castedSource, castedScale});

0 commit comments

Comments
 (0)