Essentially, this patches changes the anchor point of the extract_strided_metadata(subview) pattern from extract_strided_metadata to subview.
In details, this means that instead of replacing:
base, offset, sizes, strides = extract_strided_metadata(subview(src))
With
base, ... = extract_strided_metadata(src) offset = <some math> sizes = subSizes strides = <some math>
We replace only the subview part and connect it back with a reinterpret_cast:
val = subview(src)
>
base, ... = extract_strided_metadata(src) offset = <some math> sizes = subSizes strides = <some math> val = reinterpret_cast base, offset, sizes, strides
Note: This patch is part of a series that replaces the lowering of view like operations in MemRefToLLVM with composable patterns.
Note2: This patch depends on other patches in that series but mostly only because of the output of the tests.