Matthew Poremba has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/47100 )
Change subject: arch-vega: Simplify VecRegContainer in Vega
......................................................................
arch-vega: Simplify VecRegContainer in Vega
VecRegContainer was simplified while this patch was still in review and
these files were not changed.
Change-Id: I350ac94dc14e3ba0fb9619fa084e80cc8cbd7660
---
M src/arch/amdgpu/vega/gpu_registers.hh
M src/arch/amdgpu/vega/operand.hh
2 files changed, 6 insertions(+), 33 deletions(-)
diff --git a/src/arch/amdgpu/vega/gpu_registers.hh
b/src/arch/amdgpu/vega/gpu_registers.hh
index 0d2f948..6118fb2 100644
--- a/src/arch/amdgpu/vega/gpu_registers.hh
+++ b/src/arch/amdgpu/vega/gpu_registers.hh
@@ -174,33 +174,10 @@
*/
const int RegSizeDWords = sizeof(VecElemU32) / DWordSize;
- // typedefs for the various sizes/types of vector regs
- using VecRegU8 = ::VecRegT<VecElemU8, NumVecElemPerVecReg, false>;
- using VecRegI8 = ::VecRegT<VecElemI8, NumVecElemPerVecReg, false>;
- using VecRegU16 = ::VecRegT<VecElemU16, NumVecElemPerVecReg, false>;
- using VecRegI16 = ::VecRegT<VecElemI16, NumVecElemPerVecReg, false>;
- using VecRegU32 = ::VecRegT<VecElemU32, NumVecElemPerVecReg, false>;
- using VecRegI32 = ::VecRegT<VecElemI32, NumVecElemPerVecReg, false>;
- using VecRegF32 = ::VecRegT<VecElemF32, NumVecElemPerVecReg, false>;
- using VecRegU64 = ::VecRegT<VecElemU64, NumVecElemPerVecReg, false>;
- using VecRegI64 = ::VecRegT<VecElemI64, NumVecElemPerVecReg, false>;
- using VecRegF64 = ::VecRegT<VecElemF64, NumVecElemPerVecReg, false>;
- // non-writeable versions of vector regs
- using ConstVecRegU8 = ::VecRegT<VecElemU8, NumVecElemPerVecReg, true>;
- using ConstVecRegI8 = ::VecRegT<VecElemI8, NumVecElemPerVecReg, true>;
- using ConstVecRegU16 = ::VecRegT<VecElemU16, NumVecElemPerVecReg,
true>;
- using ConstVecRegI16 = ::VecRegT<VecElemI16, NumVecElemPerVecReg,
true>;
- using ConstVecRegU32 = ::VecRegT<VecElemU32, NumVecElemPerVecReg,
true>;
- using ConstVecRegI32 = ::VecRegT<VecElemI32, NumVecElemPerVecReg,
true>;
- using ConstVecRegF32 = ::VecRegT<VecElemF32, NumVecElemPerVecReg,
true>;
- using ConstVecRegU64 = ::VecRegT<VecElemU64, NumVecElemPerVecReg,
true>;
- using ConstVecRegI64 = ::VecRegT<VecElemI64, NumVecElemPerVecReg,
true>;
- using ConstVecRegF64 = ::VecRegT<VecElemF64, NumVecElemPerVecReg,
true>;
-
- using VecRegContainerU8 = VecRegU8::Container;
- using VecRegContainerU16 = VecRegU16::Container;
- using VecRegContainerU32 = VecRegU32::Container;
- using VecRegContainerU64 = VecRegU64::Container;
+ using VecRegContainerU32 =
+ VecRegContainer<sizeof(VecElemU32) * NumVecElemPerVecReg>;
+ using VecRegContainerU64 =
+ VecRegContainer<sizeof(VecElemU64) * NumVecElemPerVecReg>;
struct StatusReg
{
diff --git a/src/arch/amdgpu/vega/operand.hh
b/src/arch/amdgpu/vega/operand.hh
index a4517ea..bb89fb3 100644
--- a/src/arch/amdgpu/vega/operand.hh
+++ b/src/arch/amdgpu/vega/operand.hh
@@ -326,12 +326,8 @@
scRegData.read();
}
- using VecRegCont = typename std::conditional_t<NumDwords == 2,
- VecRegContainerU64, typename
std::conditional_t<sizeof(DataType)
- == sizeof(VecElemU16), VecRegContainerU16,
- typename std::conditional_t<sizeof(DataType)
- == sizeof(VecElemU8), VecRegContainerU8,
- VecRegContainerU32>>>;
+ using VecRegCont =
+ VecRegContainer<sizeof(DataType) * NumVecElemPerVecReg>;
/**
* whether this operand a scalar or not.
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/47100
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I350ac94dc14e3ba0fb9619fa084e80cc8cbd7660
Gerrit-Change-Number: 47100
Gerrit-PatchSet: 1
Gerrit-Owner: Matthew Poremba <matthew.pore...@amd.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s