vec_reg.hh (13759:9941fca869a9) vec_reg.hh (14144:371f9982fe4c)
1/*
2 * Copyright (c) 2015-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 140 unchanged lines hidden (view full) ---

149#include <iostream>
150#include <string>
151#include <type_traits>
152#include <vector>
153
154#include "base/cprintf.hh"
155#include "base/logging.hh"
156
1/*
2 * Copyright (c) 2015-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 140 unchanged lines hidden (view full) ---

149#include <iostream>
150#include <string>
151#include <type_traits>
152#include <vector>
153
154#include "base/cprintf.hh"
155#include "base/logging.hh"
156
157constexpr unsigned MaxVecRegLenInBytes = 256;
157constexpr unsigned MaxVecRegLenInBytes = 4096;
158
159template <size_t Sz>
160class VecRegContainer;
161
162/** Vector Register Abstraction
163 * This generic class is a view in a particularization of MVC, to vector
164 * registers. There is a VecRegContainer that implements the model, and
165 * contains the data. To that model we can interpose different instantiations

--- 352 unchanged lines hidden (view full) ---

518
519 /*template <size_t Sz>
520 friend class VecRegContainer;*/
521 friend class VecRegContainer<8>;
522 friend class VecRegContainer<16>;
523 friend class VecRegContainer<32>;
524 friend class VecRegContainer<64>;
525 friend class VecRegContainer<128>;
158
159template <size_t Sz>
160class VecRegContainer;
161
162/** Vector Register Abstraction
163 * This generic class is a view in a particularization of MVC, to vector
164 * registers. There is a VecRegContainer that implements the model, and
165 * contains the data. To that model we can interpose different instantiations

--- 352 unchanged lines hidden (view full) ---

518
519 /*template <size_t Sz>
520 friend class VecRegContainer;*/
521 friend class VecRegContainer<8>;
522 friend class VecRegContainer<16>;
523 friend class VecRegContainer<32>;
524 friend class VecRegContainer<64>;
525 friend class VecRegContainer<128>;
526 friend class VecRegContainer<256>;
526 friend class VecRegContainer<MaxVecRegLenInBytes>;
527
528 /** My type alias. */
529 using MyClass = VecLaneT<VecElem, Const>;
530
531 private:
532 using Cont = typename std::conditional<Const,
533 const VecElem,

--- 137 unchanged lines hidden ---
527 friend class VecRegContainer<MaxVecRegLenInBytes>;
528
529 /** My type alias. */
530 using MyClass = VecLaneT<VecElem, Const>;
531
532 private:
533 using Cont = typename std::conditional<Const,
534 const VecElem,

--- 137 unchanged lines hidden ---