This is a follow up to D62510 where UnaryOperator was added. It was suggested that we have common handling for UnaryOperator and BinaryOperator
LGTM, IMO it makes sense to add this helper here.
Maybe worth a comment that it either creates a binop or unaryop and Opc must be valid accordingly.
nit: Could be just `
for (Value *Op : operands()) Ops.push_back(getOrCreateVectorValue(Op, Part));