Continue the convergence between LLVM dialect and built-in types by using the
built-in vector type whenever possible, that is for fixed vectors of built-in
integers and built-in floats. LLVM dialect vector type is still in use for
pointers, less frequent floating point types that do not have a built-in
equivalent, and scalable vectors. However, the top-level LLVMVectorType class
has been removed in favor of free functions capable of inspecting both built-in
and LLVM dialect vector types: LLVM::getVectorElementType,
LLVM::getNumVectorElements and LLVM::getFixedVectorType. Additional work is
necessary to design an implemented the extensions to built-in types so as to
remove the LLVMFixedVectorType entirely.
Note that the default output format for the built-in vectors does not have
whitespace around the x separator, e.g., vector<4xf32> as opposed to the
LLVM dialect vector type format that does, e.g., !llvm.vec<4 x fp128>. This
required changing the FileCheck patterns in several tests.
I think this section might require a bit more updating. Should we touch on the use of LLVMFixedVectorType vs VectorType and when they are currently used?