llvm-project
7ad2c6db - [mlir][arith] Add `exact` to `index_cast{,ui}` (#183395)

Commit
78 days ago
[mlir][arith] Add `exact` to `index_cast{,ui}` (#183395) The `exact` flag with the following semantics > If the `exact` attribute is present, it is assumed that the index type width > is such that the conversion does not lose information. When this assumption > is violated, the result is poison. can be added to index_cast and index_castui operations. This unlocks the following lowerings: * index_cast (signed) exact -> trunc nsw * index_castui (unsigned) exact -> trunc nuw * index_castui nneg exact -> trunc nuw nsw Changes: * Adds ArithExactFlagInterface. * Updates Arith_IntBinaryOpWithExactFlag to use ArithExactFlagInterface * Update IndexCastOp and IndexCastUIOp to declare `ArithExactFlagInterface` * Update canonicalization patterns * Update roundtrip, lowering, and canonicalization tests.
Author
Parents
Loading