Lines Matching defs:container

49  * The design is having a basic vector register container that holds the
54 * This file also describes two views of the container that have semantic
60 * underlying container. As VecRegT has some degree of type information it
63 * The second view of a container implemented in this file is VecLaneT, which
64 * is a view of a subset of the container.
166 * of VecRegT to view the container as a vector of NumElems elems of type
170 * @tparam Const Indicate if the underlying container can be modified through
186 /** Reference to container. */
187 Container& container;
191 VecRegT(Container& cnt) : container(cnt) {};
193 /** Zero the container. */
196 zero() { container.zero(); }
202 container = that.container;
209 return container.template raw_ptr<VecElem>()[idx];
217 return container.template raw_ptr<VecElem>()[idx];
227 return container == that.container;
254 * It is useful to get the reference to the container for ISA tricks,
257 operator Container&() { return container; }
269 * @tparam Sz Size of the container in bytes.
282 Container container;
291 std::memcpy(container.data(), &that[0], SIZE);
294 /** Zero the container. */
295 void zero() { memset(container.data(), 0, SIZE); }
304 memcpy(container.data(), that.container.data(), SIZE);
311 std::memcpy(container.data(), that.data(), SIZE);
321 std::memcpy(container.data(), that.data(), SIZE);
331 std::memcpy(dst.data(), container.data(), SIZE);
340 std::memcpy(dst.data(), container.data(), SIZE);
352 !memcmp(container.data(), that.container.data(), SIZE);
367 const Ret* raw_ptr() const { return (const Ret*)container.data(); }
370 Ret* raw_ptr() { return (Ret*)container.data(); }
374 * Create a view of this container as a vector of VecElems with an
376 * the size of the container is checked, to test bounds. If it is not
377 * provided, the length is inferred from the container size and the
418 for (auto& b: v.container) {
502 * Another view of a container. This time only a partial part of it is exposed.
504 * @tparam Const Indicate if the underlying container can be modified through
541 Cont& container;
544 VecLaneT(Cont& cont) : container(cont) { }
548 * Assignment operators are only enabled if the underlying container is
555 container = that;
570 container = static_cast<VecElem>(that);
575 operator VecElem() const { return container; }
581 return VecLaneT<VecElem, true>(container);