[Mlir-commits] [mlir] [MLIR][ROCDL] Add math.clampf -> rocdl.fmed3 conversion (PR #163259)
Krzysztof Drewniak
llvmlistbot at llvm.org
Tue Oct 14 08:57:04 PDT 2025
================
@@ -42,8 +44,65 @@ static void populateOpPatterns(const LLVMTypeConverter &converter,
f32ApproxFunc, f16Func);
}
+struct ClampFOpConversion final
+ : public ConvertOpToLLVMPattern<math::ClampFOp> {
+ using ConvertOpToLLVMPattern::ConvertOpToLLVMPattern;
+ ClampFOpConversion(const LLVMTypeConverter &converter,
+ amdgpu::Chipset chipset)
+ : ConvertOpToLLVMPattern<math::ClampFOp>(converter), chipset(chipset) {}
+
+ LogicalResult
+ matchAndRewrite(math::ClampFOp op, OpAdaptor adaptor,
+ ConversionPatternRewriter &rewriter) const override {
+ // Only f16 and f32 types are supported by fmed3
+ Type opTy = op.getType();
+ auto resultType = getTypeConverter()->convertType(opTy);
+
+ if (auto vectorType = dyn_cast<VectorType>(opTy)) {
+ opTy = vectorType.getElementType();
+ }
+
+ if (!opTy.isF16() && !opTy.isF32()) {
----------------
krzysz00 wrote:
```suggestion
if (!isa<Float16Type, Float32Type>(opTy) {
```
https://github.com/llvm/llvm-project/pull/163259
More information about the Mlir-commits
mailing list