Lines Matching defs:VPUser
13 /// VPValue VPUser VPDef
38 class VPUser;
61 SmallVector<VPUser *, 1> Users;
118 void addUser(VPUser &User) { Users.push_back(&User); }
121 void removeUser(VPUser &User) {
123 // is used twice by the same VPUser. Remove a single one.
129 typedef SmallVectorImpl<VPUser *>::iterator user_iterator;
130 typedef SmallVectorImpl<VPUser *>::const_iterator const_user_iterator;
159 /// by a pair of (VPUser, the use index).
162 llvm::function_ref<bool(VPUser &U, unsigned Idx)> ShouldReplace);
206 class VPUser {
215 VPUser(ArrayRef<VPValue *> Operands) {
220 VPUser(std::initializer_list<VPValue *> Operands)
221 : VPUser(ArrayRef<VPValue *>(Operands)) {}
223 template <typename IterT> VPUser(iterator_range<IterT> Operands) {
229 VPUser() = delete;
230 VPUser(const VPUser &) = delete;
231 VPUser &operator=(const VPUser &) = delete;
232 virtual ~VPUser() {
268 /// Returns true if the VPUser uses scalars of operand \p Op. Conservatively
276 /// Returns true if the VPUser only uses the first lane of operand \p Op.
284 /// Returns true if the VPUser only uses the first part of operand \p Op.