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 --- |