This patch updates the handling of vectors in getPreferredVectorAction():
- For single-element and scalable vectors, fall back to default vector legalization handling.
- For vNi1 vectors, add handling to either split or promote them in order to prevent the production of wide v256i1/v512i1 types.
The following assertion is fixed by this patch, as we ended up producing the wide vector types
(that are used for MMA) in the backend prior to this fix.
Assertion failed: VT.getSizeInBits() == Operand.getValueSizeInBits() && "Cannot BITCAST between types of different sizes!", file /home/amyk/llvm/Community/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 5138, llvm::SDValue llvm::SelectionDAG::getNode(unsigned int, const llvm::SDLoc &, llvm::EVT, llvm::SDValue, const llvm::SDNodeFlags)()