An ideal SplitReduction interface will contain two controls instead of a single insertSplitDimension control: one for specifying the position of the inserted parallel dimension in the tensor, and one for specifying the position of the inserted parallel loop among the loops in linalg. Unfortunately, SplitReduction currently has only one control and we use it to infer information pertaining to both the controls. This differential fixes the implementation to explicitly use two controls, while the interface still has only one control for both.
Performance-wise, it is desirable to have two two variations of SplitReduction (innerParallel, and non-innerParallel) use different heuristics for the position where loop dimensions are inserted: for innerParallel it has to be right after the reduce loop and for non-innerParallel, it has to be the place where the tensor dimension for the intermediate tensor is introduced. (Loop order was changed previously in https://reviews.llvm.org/D137478).