summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Conversion/GPUToROCDL
diff options
context:
space:
mode:
authorJulian Gross <julian.gross@dfki.de>2020-01-09 09:52:50 +0100
committerJulian Gross <julian.gross@dfki.de>2020-01-13 17:10:54 +0100
commit202ab273e6eca134b69882f100c666fcd3affbcf (patch)
tree2edb29eab3d9aabb02936ed00ed446704ea8b048 /mlir/lib/Conversion/GPUToROCDL
parent6b686703e63f0e992438ce445cbe4b3e78b94ea4 (diff)
downloadbcm5719-llvm-202ab273e6eca134b69882f100c666fcd3affbcf.tar.gz
bcm5719-llvm-202ab273e6eca134b69882f100c666fcd3affbcf.zip
[mlir] Added missing GPU lowering ops.
Summary: This diff adds missing GPU lowering ops to MLIR. Reviewers: herhut, pifon2a, ftynse Tags: #pre-merge_beta_testing, #llvm Differential Revision: https://reviews.llvm.org/D72439
Diffstat (limited to 'mlir/lib/Conversion/GPUToROCDL')
-rw-r--r--mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp9
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)))
OpenPOWER on IntegriCloud