Thanks for response. I think it depends on how we implement TargetLowering. As you know, if it is not easy to match ISD node with native target instructions, we usually lower ISD nodes. The CodeGen’s split function checks custom lowering first and try to split the EXTRACT_VECTOR_ELT node. At this moment, I am not sure how the ISD node is split with custom lowering because we need to manage the SpliVectors on DAGTypeLegalizer. I could scalarize all vector type on IR level. Additionally, several existing targets are using “MVT::i1” register class.