csigg added inline comments.

================
Comment at: mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp:158
+// by the same divisor.
+struct ExpandDivF16 : public ConvertOpToLLVMPattern<LLVM::FDivOp> {
+  using ConvertOpToLLVMPattern<LLVM::FDivOp>::ConvertOpToLLVMPattern;
----------------
herhut wrote:
> This pattern is a bit misplaced here, as `LLVM::FDivOp` is not really a GPU 
> dialect operation. Instead, should this be a special lowering of the arith 
> dialect to NVVM (which we do not have yet) or a rewrite at the LLVM dialect 
> level?
> 
> When lowering to LLVM, we already typically configure a different lowering 
> for math dialect, so configuring the lowering of arith dialect differently 
> seems like an OK option. That would mean a specialized pattern for 
> `arith.divf` with higher priority. That would also give users a choice.
Yes, I agree it's a bit misplaced. I considered it the best of all questionable 
options.

Adding it to ArithToLLVM doesn't really work, because we don't want it to 
depend on the NVVM dialect.

How about adding it as a separate pass to 
`mlir/include/mlir/Dialect/LLVMIR/Transforms/Passes.td`?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126158/new/

https://reviews.llvm.org/D126158

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to