SLPVectorizer: Make it a function pass and add code for hoisting the vector-gather sequence out of loops.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179562 91177308-0d34-0410-b5e6-96231b3b80d8