Updates namespace in type_helpers.

Change the namespace for type_helpers.h which was mpact::riscv to
mpact::sim::generic, which aligns with its location.

General cleanup of include files.

PiperOrigin-RevId: 563156458
diff --git a/sim/decoder.cc b/sim/decoder.cc
index eeb1d43..a98f6b3 100644
--- a/sim/decoder.cc
+++ b/sim/decoder.cc
@@ -1,7 +1,11 @@
 #include "sim/decoder.h"
 
+#include "mpact/sim/generic/type_helpers.h"
+
 namespace kelvin::sim {
 
+using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
+
 KelvinDecoder::KelvinDecoder(KelvinState *state,
                              mpact::sim::util::MemoryInterface *memory)
     : state_(state), memory_(memory) {
diff --git a/sim/kelvin_instructions.cc b/sim/kelvin_instructions.cc
index dbc25d6..1d2605a 100644
--- a/sim/kelvin_instructions.cc
+++ b/sim/kelvin_instructions.cc
@@ -4,9 +4,14 @@
 #include <string>
 
 #include "sim/kelvin_state.h"
+#include "riscv/riscv_state.h"
+#include "mpact/sim/generic/instruction.h"
+#include "mpact/sim/generic/type_helpers.h"
 
 namespace kelvin::sim {
 
+using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
+
 void KelvinIllegalInstruction(mpact::sim::generic::Instruction *inst) {
   auto *state = static_cast<KelvinState *>(inst->state());
   state->Trap(/*is_interrupt*/ false, /*trap_value*/ 0,
diff --git a/sim/kelvin_top.cc b/sim/kelvin_top.cc
index d3b7f03..a18cc08 100644
--- a/sim/kelvin_top.cc
+++ b/sim/kelvin_top.cc
@@ -46,7 +46,7 @@
 
 namespace kelvin::sim {
 
-using ::mpact::sim::riscv::operator*;  // NOLINT: clang-tidy false positive.
+using ::mpact::sim::generic::operator*;  // NOLINT: clang-tidy false positive.
 
 constexpr char kKelvinName[] = "Kelvin";
 
diff --git a/sim/kelvin_vector_convolution_instructions.cc b/sim/kelvin_vector_convolution_instructions.cc
index 2f7fbf1..4557362 100644
--- a/sim/kelvin_vector_convolution_instructions.cc
+++ b/sim/kelvin_vector_convolution_instructions.cc
@@ -10,9 +10,12 @@
 #include "riscv/riscv_state.h"
 #include "mpact/sim/generic/data_buffer.h"
 #include "mpact/sim/generic/instruction.h"
+#include "mpact/sim/generic/type_helpers.h"
 
 namespace kelvin::sim {
 
+using ::mpact::sim::generic::operator*;  // NOLINT: is used below (clang error).
+
 using mpact::sim::generic::GetInstructionSource;
 using mpact::sim::riscv::RV32VectorSourceOperand;
 
diff --git a/sim/kelvin_vector_instructions.cc b/sim/kelvin_vector_instructions.cc
index 241789d..fb3f361 100644
--- a/sim/kelvin_vector_instructions.cc
+++ b/sim/kelvin_vector_instructions.cc
@@ -18,6 +18,7 @@
 
 namespace kelvin::sim {
 
+using ::mpact::sim::generic::operator*;
 using mpact::sim::generic::DataBuffer;
 using mpact::sim::generic::GetInstructionSource;
 using mpact::sim::riscv::RV32VectorDestinationOperand;
@@ -532,7 +533,7 @@
 // Halving addition with optional rounding bit.
 template <typename T>
 T KelvinVHaddHelper(bool round, T vs1, T vs2) {
-  using WT = typename mpact::sim::riscv::WideType<T>::type;
+  using WT = typename mpact::sim::generic::WideType<T>::type;
   return static_cast<T>(
       (static_cast<WT>(vs1) + static_cast<WT>(vs2) + (round ? 1 : 0)) >> 1);
 }
@@ -553,7 +554,7 @@
 // Halving subtraction with optional rounding bit.
 template <typename T>
 T KelvinVHsubHelper(bool round, T vs1, T vs2) {
-  using WT = typename mpact::sim::riscv::WideType<T>::type;
+  using WT = typename mpact::sim::generic::WideType<T>::type;
   return static_cast<T>(
       (static_cast<WT>(vs1) - static_cast<WT>(vs2) + (round ? 1 : 0)) >> 1);
 }
@@ -712,7 +713,7 @@
 // result.
 template <typename T>
 T KelvinVShiftHelper(bool round, T vs1, T vs2) {
-  using WT = typename mpact::sim::riscv::WideType<T>::type;
+  using WT = typename mpact::sim::generic::WideType<T>::type;
   if (std::is_signed<T>::value == true) {
     constexpr int kMaxShiftBit = sizeof(T) * 8;
     int shamt = vs2;
@@ -734,7 +735,7 @@
       CHECK_LE(ushamt, kMaxShiftBit);
       CHECK_GE(ushamt, 0);
       // Use unsigned WideType to prevent undefined negative shift.
-      using UWT = typename mpact::sim::riscv::WideType<UT>::type;
+      using UWT = typename mpact::sim::generic::WideType<UT>::type;
       shift = static_cast<WT>(static_cast<UWT>(vs1) << ushamt);
     }
     T neg_max = std::numeric_limits<T>::min();
@@ -863,7 +864,7 @@
   static_assert(2 * sizeof(Td) == sizeof(Ts) || 4 * sizeof(Td) == sizeof(Ts));
   constexpr int src_bits = sizeof(Ts) * 8;
   vs2 &= (src_bits - 1);
-  using WTs = typename mpact::sim::riscv::WideType<Ts>::type;
+  using WTs = typename mpact::sim::generic::WideType<Ts>::type;
   WTs res = (static_cast<WTs>(vs1) +
              (vs2 && round ? static_cast<WTs>(1ll << (vs2 - 1)) : 0)) >>
             vs2;
@@ -897,7 +898,7 @@
 void KelvinVMul(bool scalar, bool strip_mine, Instruction *inst) {
   KelvinBinaryVectorOp(
       inst, scalar, strip_mine, std::function<T(T, T)>([](T vs1, T vs2) -> T {
-        using WT = typename mpact::sim::riscv::WideType<T>::type;
+        using WT = typename mpact::sim::generic::WideType<T>::type;
 
         return static_cast<T>(static_cast<WT>(vs1) * static_cast<WT>(vs2));
       }));
@@ -911,7 +912,7 @@
 void KelvinVMuls(bool scalar, bool strip_mine, Instruction *inst) {
   KelvinBinaryVectorOp(
       inst, scalar, strip_mine, std::function<T(T, T)>([](T vs1, T vs2) -> T {
-        using WT = typename mpact::sim::riscv::WideType<T>::type;
+        using WT = typename mpact::sim::generic::WideType<T>::type;
         WT result = static_cast<WT>(vs1) * static_cast<WT>(vs2);
         if (std::is_signed<T>::value) {
           result = std::max(
@@ -949,7 +950,7 @@
 // Returns high half.
 template <typename T>
 T KelvinVMulhHelper(bool round, T vs1, T vs2) {
-  using WT = typename mpact::sim::riscv::WideType<T>::type;
+  using WT = typename mpact::sim::generic::WideType<T>::type;
   constexpr int n = sizeof(T) * 8;
 
   WT result = static_cast<WT>(vs1) * static_cast<WT>(vs2);
@@ -975,7 +976,7 @@
 template <typename T>
 T KelvinVDmulhHelper(bool round, bool round_neg, T vs1, T vs2) {
   constexpr int n = sizeof(T) * 8;
-  using WT = typename mpact::sim::riscv::WideType<T>::type;
+  using WT = typename mpact::sim::generic::WideType<T>::type;
   WT result = static_cast<WT>(vs1) * static_cast<WT>(vs2);
   if (round) {
     WT rnd = static_cast<WT>(0x40000000ll >> (32 - n));
@@ -1008,7 +1009,7 @@
   KelvinBinaryVectorOp<false /* halftype */, false /* widen_dst */, T, T, T, T>(
       inst, scalar, strip_mine,
       std::function<T(T, T, T)>([](T vd, T vs1, T vs2) -> T {
-        using WT = typename mpact::sim::riscv::WideType<T>::type;
+        using WT = typename mpact::sim::generic::WideType<T>::type;
         return static_cast<WT>(vd) +
                static_cast<WT>(vs1) * static_cast<WT>(vs2);
       }));
@@ -1023,7 +1024,7 @@
   KelvinBinaryVectorOp<false /* halftype */, false /* widen_dst */, T, T, T, T>(
       inst, scalar, strip_mine,
       std::function<T(T, T, T)>([](T vd, T vs1, T vs2) -> T {
-        using WT = typename mpact::sim::riscv::WideType<T>::type;
+        using WT = typename mpact::sim::generic::WideType<T>::type;
         return static_cast<WT>(vs1) +
                static_cast<WT>(vd) * static_cast<WT>(vs2);
       }));
diff --git a/sim/renode/kelvin_renode_reigster_info.cc b/sim/renode/kelvin_renode_reigster_info.cc
index 8a3be56..5af05bb 100644
--- a/sim/renode/kelvin_renode_reigster_info.cc
+++ b/sim/renode/kelvin_renode_reigster_info.cc
@@ -4,6 +4,8 @@
 
 namespace kelvin::sim {
 
+using ::mpact::sim::generic::operator*;  // NOLINT: used below (clange error).
+
 KelvinRenodeRegisterInfo *KelvinRenodeRegisterInfo::instance_ = nullptr;
 
 void KelvinRenodeRegisterInfo::InitializeRenodeRegisterInfo() {
diff --git a/sim/renode/renode_mpact.cc b/sim/renode/renode_mpact.cc
index e01903f..f8a796d 100644
--- a/sim/renode/renode_mpact.cc
+++ b/sim/renode/renode_mpact.cc
@@ -243,7 +243,7 @@
   // If the previous halt reason was a semihost halt request, then we shouldn't
   // step any further. Just return with "waiting for interrupt" code.
   using HaltReason = RenodeDebugInterface::HaltReason;
-  using mpact::sim::riscv::operator*;  // NOLINT: used below.
+  using mpact::sim::generic::operator*;  // NOLINT: used below.
   if (halt_res.value() == *HaltReason::kSemihostHaltRequest) {
     if (status != nullptr) {
       *status = static_cast<int32_t>(ExecutionResult::kAborted);
@@ -334,7 +334,7 @@
   }
   // Map the halt status appropriately.
   using HaltReason = RenodeDebugInterface::HaltReason;
-  using mpact::sim::riscv::operator*;  // NOLINT: used below.
+  using mpact::sim::generic::operator*;  // NOLINT: used below.
   if (status != nullptr) {
     switch (halt_res.value()) {
       case *HaltReason::kSemihostHaltRequest:
diff --git a/sim/test/kelvin_vector_instructions_test_base.h b/sim/test/kelvin_vector_instructions_test_base.h
index d5c4f70..8c9fb57 100644
--- a/sim/test/kelvin_vector_instructions_test_base.h
+++ b/sim/test/kelvin_vector_instructions_test_base.h
@@ -202,7 +202,7 @@
       SetRegisterValues<RV32Register::ValueType>({{kRs1Name, rs2_reg_value}});
       // Cast the value to the appropriate width, sign-extending if needed.
       rs2_value = static_cast<Ts2>(
-          static_cast<typename mpact::sim::riscv::SameSignedType<
+          static_cast<typename mpact::sim::generic::SameSignedType<
               RV32Register::ValueType, Ts2>::type>(rs2_reg_value));
     } else if (!halftype_op) {
       // Use the value slightly greater than min so VShift won't complain