Previously when attempting to legalize operations on architectures that
don't have true vector operation support the backend would need to do
the lowering by itself. This allows the legalizer to handle this situation by itself.
Here's the bugzilla for this: https://bugs.llvm.org/show_bug.cgi?id=36618
Just a nit pick: I think "scalarizeVector" sounds more natural and in a similar style as the other methods here than "scalarElementsVector".
What do you think?