O << "\"WIDEN "
<< Instruction::getOpcodeName(getUnderlyingInstr()->getOpcode()) << " ";
- bool First = true;
- for (VPValue *Op : operands()) {
- if (!First)
- O << ", ";
- Op->printAsOperand(O, SlotTracker);
- First = false;
- }
+ printOperands(O, SlotTracker);
}
void VPWidenCanonicalIVRecipe::execute(VPTransformState &State) {
OS << "vp<%" << Tracker.getSlot(this) << ">";
}
+void VPUser::printOperands(raw_ostream &O, VPSlotTracker &SlotTracker) const {
+ bool First = true;
+ for (VPValue *Op : operands()) {
+ if (!First)
+ O << ", ";
+ Op->printAsOperand(O, SlotTracker);
+ First = false;
+ }
+}
+
void VPInterleavedAccessInfo::visitRegion(VPRegionBlock *Region,
Old2NewTy &Old2New,
InterleavedAccessInfo &IAI) {
class VPUser {
SmallVector<VPValue *, 2> Operands;
+protected:
+ /// Print the operands to \p O.
+ void printOperands(raw_ostream &O, VPSlotTracker &SlotTracker) const;
+
public:
VPUser() {}
VPUser(ArrayRef<VPValue *> Operands) {