The code in widenMemoryInstruction has already been transitioned
to only rely on information provided by VPWidenMemoryInstructionRecipe
directly.
Moving the code directly to VPWidenMemoryInstructionRecipe::execute
completes the transition for the recipe.
It provides the following advantages:
- Less indirection, easier to see what's going on.
- Removes accesses to fields of ILV.
- in particular ensures that no dependencies on
fields in ILV for vector code generation are re-introduced.
The assert(Vec->getType()->isVectorTy() && "Invalid type"); of reverseVector() being dropped will be taken care of by Builder.CreateVectorReverse() anyhow?