Swift and perhaps other users of LLVM do not leave cl::opt style command-line option parsing enabled due to C++ global constructor overhead, therefore let's convert the VZEROUPPER option to a target attribute.
Furthermore, this change stops the conflation of VZEROUPPER emission with enabling/disabling fast partial YMM/ZMM updates. The compiler doesn't intentionally emit partial updates at the moment, but it could.
This patch also verifies that clang can pass arbitrary target features.
Just say "some X86 processors" like above.