[mlir] Avoid folding `index.remu` and `index.rems` for 0 rhs
As discussed in https://github.com/llvm/llvm-project/issues/59714#issuecomment-1369518768, the folder for the remainder operations should be resillient when the rhs is 0. The file `IndexOps.cpp` was already checking for multiple divisions by zero, so I tried to stick to the code style from those checks. Fixes #59714. As a side note, is it correct that remainder operations are never optimized away? I would expect that the following code ``` func.func @remu_test() -> index { %c3 = index.constant 2 %c0 = index.constant 1 %0 = index.remu %c3, %c0 return %0 : index } ``` would be optimized to ``` func.func @remu_test() -> index { return index.constant 0 : index } ``` when called with `mlir-opt --convert-scf-to-openmp temp.mlir`, but maybe I'm misunderstanding something. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D151476
Loading
Please sign in to comment