[Mlir-commits] [mlir] [mlir][SPIR-V] Collapse TanPattern/TanhPattern into DirectConversionPattern (PR #203830)
Arseniy Obolenskiy
llvmlistbot at llvm.org
Sun Jun 14 22:58:47 PDT 2026
https://github.com/aobolensk created https://github.com/llvm/llvm-project/pull/203830
None
>From 41832c6f48083186e7194e7e0911d8ee0b1a9495 Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: Mon, 15 Jun 2026 07:58:18 +0200
Subject: [PATCH] [mlir][SPIR-V] Collapse TanPattern/TanhPattern into
DirectConversionPattern
---
.../Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp | 39 ++-----------------
1 file changed, 3 insertions(+), 36 deletions(-)
diff --git a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
index c43415b27b1b3..76bbe7edf50aa 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
@@ -1509,41 +1509,6 @@ class ShiftPattern : public SPIRVToLLVMConversion<SPIRVOp> {
}
};
-class TanPattern : public SPIRVToLLVMConversion<spirv::GLTanOp> {
-public:
- using SPIRVToLLVMConversion<spirv::GLTanOp>::SPIRVToLLVMConversion;
-
- LogicalResult
- matchAndRewrite(spirv::GLTanOp tanOp, OpAdaptor adaptor,
- ConversionPatternRewriter &rewriter) const override {
- auto dstType = getTypeConverter()->convertType(tanOp.getType());
- if (!dstType)
- return rewriter.notifyMatchFailure(tanOp, "type conversion failed");
-
- rewriter.replaceOpWithNewOp<LLVM::TanOp>(tanOp, dstType,
- adaptor.getOperands());
- return success();
- }
-};
-
-class TanhPattern : public SPIRVToLLVMConversion<spirv::GLTanhOp> {
-public:
- using SPIRVToLLVMConversion<spirv::GLTanhOp>::SPIRVToLLVMConversion;
-
- LogicalResult
- matchAndRewrite(spirv::GLTanhOp tanhOp, OpAdaptor adaptor,
- ConversionPatternRewriter &rewriter) const override {
- auto srcType = tanhOp.getType();
- auto dstType = getTypeConverter()->convertType(srcType);
- if (!dstType)
- return rewriter.notifyMatchFailure(tanhOp, "type conversion failed");
-
- rewriter.replaceOpWithNewOp<LLVM::TanhOp>(tanhOp, dstType,
- adaptor.getOperands());
- return success();
- }
-};
-
// `llvm.intr.abs` requires an `is_int_min_poison` immarg that `spirv.GL.SAbs`
// does not carry; default to `false` to preserve SPIR-V's well-defined
// behavior on INT_MIN.
@@ -1916,7 +1881,9 @@ void mlir::populateSPIRVToLLVMConversionPatterns(
DirectConversionPattern<spirv::GLAsinOp, LLVM::ASinOp>,
DirectConversionPattern<spirv::GLAcosOp, LLVM::ACosOp>,
DirectConversionPattern<spirv::GLAtanOp, LLVM::ATanOp>,
- InverseSqrtPattern, SAbsPattern, TanPattern, TanhPattern,
+ DirectConversionPattern<spirv::GLTanOp, LLVM::TanOp>,
+ DirectConversionPattern<spirv::GLTanhOp, LLVM::TanhOp>,
+ InverseSqrtPattern, SAbsPattern,
// OpenCL extended instruction set ops
DirectConversionPattern<spirv::CLCeilOp, LLVM::FCeilOp>,
More information about the Mlir-commits
mailing list