diff options
Diffstat (limited to 'mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp')
-rw-r--r-- | mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp b/mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp index 83770641bd4..119479d7ec1 100644 --- a/mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp +++ b/mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp @@ -51,12 +51,19 @@ public: GPUIndexIntrinsicOpLowering<gpu::GridDimOp, ROCDL::GridDimXOp, ROCDL::GridDimYOp, ROCDL::GridDimZOp>>( converter); + patterns.insert<OpToFuncCallLowering<AbsFOp>>(converter, "_ocml_fabs_f32", + "_ocml_fabs_f64"); + patterns.insert<OpToFuncCallLowering<CeilFOp>>(converter, "_ocml_ceil_f32", + "_ocml_ceil_f64"); + patterns.insert<OpToFuncCallLowering<CosOp>>(converter, "_ocml_cos_f32", + "_ocml_cos_f64"); patterns.insert<OpToFuncCallLowering<ExpOp>>(converter, "_ocml_exp_f32", "_ocml_exp_f64"); ConversionTarget target(getContext()); target.addLegalDialect<LLVM::LLVMDialect, ROCDL::ROCDLDialect>(); - target.addIllegalOp<LLVM::ExpOp>(); + target.addIllegalOp<LLVM::FAbsOp, LLVM::FCeilOp, LLVM::CosOP, + LLVM::ExpOp>(); target.addDynamicallyLegalOp<FuncOp>( [&](FuncOp op) { return converter.isSignatureLegal(op.getType()); }); if (failed(applyPartialConversion(m, target, patterns, &converter))) |