38#ifndef __ARCH_ARM_REGS_MAT_HH__
39#define __ARCH_ARM_REGS_MAT_HH__
44#include "debug/MatRegs.hh"
63template<
typename ElemType>
67template<
typename ElemType>
72template<
typename ElemType>
77template<
typename ElemType>
82template<
typename ElemType>
95 regType<MatRegContainer>();
102template<
typename ElemType>
106 return reg.asTile<ElemType>(tile_idx);
108template<
typename ElemType>
112 return reg.asTile<ElemType>(tile_idx).asHSlice(row_idx);
114template<
typename ElemType>
118 return reg.asTile<ElemType>(tile_idx).asVSlice(col_idx);
120template<
typename ElemType>
124 return reg.asHSlice<ElemType>(row_idx);
126template<
typename ElemType>
130 return reg.asVSlice<ElemType>(col_idx);
Provides a view of a horizontal slice of either a MatStore or a Tile.
Backing store for matrices.
Provides a view of a matrix that is row-interleaved onto a MatStore.
Provides a view of a vertical slice of either a MatStore or a Tile.
Matrix Register Specification.
constexpr unsigned MaxSmeVecLenInBytes
constexpr RegClass matRegClass
MatTileCol< ElemType > getTileVSlice(MatRegContainer ®, uint8_t tile_idx, uint8_t col_idx)
gem5::MatStore< MaxSmeVecLenInBytes, MaxSmeVecLenInBytes > MatRegContainer
MatRow< ElemType > getHSlice(MatRegContainer ®, uint8_t row_idx)
static TypedRegClassOps< ArmISA::MatRegContainer > matRegClassOps
MatTile< ElemType > getTile(MatRegContainer ®, uint8_t tile_idx)
MatTileRow< ElemType > getTileHSlice(MatRegContainer ®, uint8_t tile_idx, uint8_t row_idx)
MatCol< ElemType > getVSlice(MatRegContainer ®, uint8_t col_idx)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
constexpr char MatRegClassName[]
@ MatRegClass
Matrix Register.