[DAGCombiner] Try to partition ISD::EXTRACT_VECTOR_ELT to accomodate it's ISD::BUILD_VECTOR users
This mainly cleans up a few patterns that are legalized by scalarization from a wide-element vector, but then are further split apart to build a more narrow-sized-element vector. In particular this happens in some cases for illegal ISD::ZERO_EXTEND_VECTOR_INREG. Given a ISD::EXTRACT_VECTOR_ELT, which is a glorified bit sequence extract, recursively analyse all of it's users. and try to model themselves as bit sequence extractions. If all of them agree on the new, narrower element type, and all of them can be modelled as ISD::EXTRACT_VECTOR_ELT's of that new element type, do that, but only if unmodelled users are ISD::BUILD_VECTOR.
Loading
Please sign in to comment