This patch fixes the issue https://github.com/llvm/llvm-project/issues/59455.
We could omit the un-changed dimensions in offsets and sizes, so llvm::zip_equal would fail in this case.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Thanks for the fix! Can you add the reproducer from the bug as test in the vector dialect test directory?
mlir/lib/Dialect/Vector/IR/VectorOps.cpp | ||
---|---|---|
2965 | I don't quite get how do these have a different size? |
Done.
Done.
mlir/lib/Dialect/Vector/IR/VectorOps.cpp | ||
---|---|---|
2965 | In this case, maskDimSizes contains 2 dimensions but sliceOffsets and sliceSizes only have one. For the last unchanged dimension, we could omit it in offsets and sizes input of extract_strided_slice. |
I don't quite get how do these have a different size?
The bug report has:
%261 = vector.extract_strided_slice %256 {offsets = [3], sizes = [5], strides = [1]} : vector<12x7xi1> to vector<5x7xi1>
where all the array attributes seem to have the same size?