Alan Li
Alan Li
@benvanik Getting back to this PR: I have done some investigation and I think the transformation in my above comment is correct in the LLVM part. But it hit nullptr...
> I think a better solution could be using std::optional padFactor. It's more aligned with how we define the padFactor in EncodingBased.td. @hanhanW I it is much better to do...
Dropping this in favor of https://github.com/iree-org/iree/issues/17729
> So, I think what should be done there is that the slow path should be guarded by a runtime condition as in [llvm/llvm-project#135014](https://github.com/llvm/llvm-project/pull/135014) > > But, in addition, the...
> To clarify, which "other cases"? All the cases with a non-constant storing index.
@raikonenfnu Was the emulation in the case of non-constant/dynamic indexing already working before? I think it was not working as intended even before this problematic patch.
@hanhanW @MaheshRavishankar if we can figure out by simply looking at the source op type, then we probably don't need this change?
Tracking this issue: it seems to be that the discrepancy in the dimension happens when trying to fold `memref.subview` with `vetor.load`. In the bad path with dynamic shape, the `subview`...
In `computeMemRefRankReductionMask`, it is trying to figure out which dimension is dropped by looking at strides. * In the dynamic shaped case, it is trying to figure out which dimension...
Edit: I was wrong with previous comment. The dynamic dims are lowered correctly after materialization. The issue is with the memref.subview