Lines Matching defs:Lane

156   /// Kind describes how to interpret Lane.
158 /// For First, Lane is the index into the first N elements of a
161 /// For ScalableLast, Lane is the offset from the start of the last
163 /// example, a Lane of 0 corresponds to lane `(vscale - 1) * N`, a Lane of
170 unsigned Lane;
172 /// Indicates how the Lane should be interpreted, as described above.
176 VPLane(unsigned Lane) : Lane(Lane), LaneKind(VPLane::Kind::First) {}
177 VPLane(unsigned Lane, Kind LaneKind) : Lane(Lane), LaneKind(LaneKind) {}
203 return Lane;
214 bool isFirstLane() const { return Lane == 0 && LaneKind == Kind::First; }
220 assert(VF.isScalable() && Lane < VF.getKnownMinValue());
221 return VF.getKnownMinValue() + Lane;
223 assert(Lane < VF.getKnownMinValue());
224 return Lane;
245 std::optional<VPLane> Lane;
259 /// Get the generated Value for a given VPValue and given Part and Lane.
260 Value *get(VPValue *Def, const VPLane &Lane);
264 bool hasScalarValue(VPValue *Def, VPLane Lane) {
268 unsigned CacheIdx = Lane.mapToCacheIndex(VF);
290 /// Set the generated scalar \p V for \p Def and the given \p Lane.
291 void set(VPValue *Def, Value *V, const VPLane &Lane) {
293 unsigned CacheIdx = Lane.mapToCacheIndex(VF);
300 /// Reset an existing scalar value for \p Def and a given \p Lane.
301 void reset(VPValue *Def, Value *V, const VPLane &Lane) {
305 unsigned CacheIdx = Lane.mapToCacheIndex(VF);
329 void packScalarIntoVectorValue(VPValue *Def, const VPLane &Lane);
1254 /// value for lane \p Lane.
1255 Value *generatePerLane(VPTransformState &State, const VPLane &Lane);