The scenario is vector store of splat value on Power8 LE. It is not expected that we see swap instruction before the store.
Vector store on P8 little endian created by expandVSXStoreForLE() will have swap instruction added before the store in PPCISelLowring. If the vector is generated by splat, the swap instruction can be eliminated.
Ideally those swaps should have been removed by ppc-vsx-swaps pass. However due to its limitation, that removal did not happen. This patch does the removal in peephole.
Can this branch be merged to the above one at line 627? Splat a double word and the double word is a splat of a small unit should also can be removed?