[mlir][Vector] Generalize and improve folding of ExtractOp from Insert/Transpose chain.
This revision fixes a bug where the iterative algorithm would walk back def-use chains to an incorrect operand. This exposed opportunities for a larger refactoring and behavior improvement. The new algorithm has improved folding behavior and proceeds by tracking both the permutation of the extraction position and the internal vector permutation. Multiple partial intersection cases with a candidate insertOp are supported. The refactoring of the implementation should also help it generalize to strided insert/extract op. This also subsumes the previous `foldExtractOpFromTranspose` which is now a simple special case and can be deleted. Differential Revision: https://reviews.llvm.org/D117322
Loading
Please register or sign in to comment