32#ifndef __VECTOR_REGISTER_FILE_HH__
33#define __VECTOR_REGISTER_FILE_HH__
35#include "arch/gpu_isa.hh"
36#include "config/the_gpu_isa.hh"
37#include "debug/GPUTrace.hh"
38#include "debug/GPUVRF.hh"
45struct VectorRegisterFileParams;
94 const auto &vec_reg_cont =
regFile[regIdx];
95 auto vgpr = vec_reg_cont.as<TheGpuISA::VecElemU32>();
97 for (
int lane = 0; lane < TheGpuISA::NumVecElemPerVecReg; ++lane) {
99 DPRINTF(GPUVRF,
"WF[%d][%d]: WV[%d] v[%d][%d] = %#x\n",
102 DPRINTF(GPUTrace,
"WF[%d][%d]: WV[%d] v[%d][%d] = %#x (%f)\n",
104 vgpr[lane], *
reinterpret_cast<const float*
>(&vgpr[lane]));
RegisterFile(const RegisterFileParams &p)
virtual void setParent(ComputeUnit *_computeUnit)
Vector Register Abstraction This generic class is the model in a particularization of MVC,...
virtual void scheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii) override
void printReg(Wavefront *wf, int regIdx) const
VectorRegisterFile(const VectorRegisterFileParams &p)
VecRegContainer & readWriteable(int regIdx)
virtual bool operandsReady(Wavefront *w, GPUDynInstPtr ii) const override
const VecRegContainer & read(int regIdx) const
void write(int regIdx, const VecRegContainer &value)
std::vector< VecRegContainer > regFile
TheGpuISA::VecRegContainerU32 VecRegContainer
void setParent(ComputeUnit *_computeUnit) override
virtual void waveExecuteInst(Wavefront *w, GPUDynInstPtr ii) override
virtual void scheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii) override
Copyright (c) 2024 Arm Limited All rights reserved.
std::shared_ptr< GPUDynInst > GPUDynInstPtr