[mlir][LLVM] Make `SplitIntegerStores` capable of splitting vectors as well
The original plan was to turn this into its own pattern, but one of the difficulties was deeming when splitting the vector is required. `SplitIntegerStores` essentially already did that by checking for field overlap. Therefore, it was renamed to `SplitStores` and extended to splitting stores with values of vector and integer type. The vector splitting is done in a simple manner by simply using `extractelement` to get each vector element. Subsequent pattern applications are responsible for further cleaning up the output and making it type-consistent. Worst case, if the code cannot be transformed into a type-consistent form (due to e.g. the code explicitly doing partial writes to elements or similar), we might needlessly do a vector split. Differential Revision: https://reviews.llvm.org/D154583
Loading
Please sign in to comment