[MLIR] Simplify Semi-affine expressions by rule based matching and replacing "expr...
authorArnab Dutta <arnab.dutta@cerebras.net>
Sat, 20 Nov 2021 15:34:59 +0000 (21:04 +0530)
committerUday Bondhugula <uday@polymagelabs.com>
Sat, 20 Nov 2021 15:35:36 +0000 (21:05 +0530)
commitec7b0d4d3458cf42c4e40da2ea391b29ba1731dd
treea08e8f1e7a50e3d379259f6f7a7c844a01b292e4
parentfbfe8fcbc31d492d5538c09782b787bba89d01e5
[MLIR] Simplify Semi-affine expressions by rule based matching and replacing "expr - q * (expr floordiv q)" with  "expr mod q" expression.

Add rule based matching for detecting and transforming "expr - q * (expr floordiv q)"
to "expr mod q", where q is a symbolic exxpression, in simplifyAdd function.

Reviewed By: bondhugula, dcaballe

Differential Revision: https://reviews.llvm.org/D112985
mlir/lib/IR/AffineExpr.cpp
mlir/test/Dialect/Affine/simplify-affine-structures.mlir