[MergedLoadStoreMotion] Sink stores to BB with more than 2 predecessors
If we have:
br i1 %arg3, label %bb6, label %bb7
%tmp = getelementptr inbounds i32, i32* %arg1, i64 2 store i32 3, i32* %tmp, align 4 br label %bb9
%tmp8 = getelementptr inbounds i32, i32* %arg1, i64 2 store i32 3, i32* %tmp8, align 4 br label %bb9
bb9: ; preds = %bb4, %bb6, %bb7
We can't sink stores directly into bb9.
This patch creates new BB that is successor of %bb6 and %bb7
and sinks stores into that block.
SplitFooterBB is the parameter to the pass that controls